ef2b7ea1c0cf02337b6e414d0edec54dbc4d876d
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-11-17  Antti Koivisto  <antti@apple.com>
2
3         REGRESSION (r158774): Iteration over element children is broken
4         https://bugs.webkit.org/show_bug.cgi?id=124145
5
6         Reviewed by Anders Carlsson.
7         
8         Mutation during traversal invalidates the position cache. After the mid-point we start
9         traversing backwards as it the shortest path. However backward traversal of children-only
10         HTMLCollection was wrong and would end up going to descendants.
11         
12         Reduction by yannick.poirier@inverto.tv.
13
14         Test: fast/dom/htmlcollection-children-mutation.html
15
16         * html/HTMLCollection.cpp:
17         (WebCore::HTMLCollection::collectionTraverseBackward):
18         
19             Traverse direct children only when m_shouldOnlyIncludeDirectChildren bit is set.
20
21 2013-11-17  Zoltan Horvath  <zoltan@webkit.org>
22
23         Move LineLayoutState.h into rendering/line
24         <https://webkit.org/b/124458>
25
26         Reviewed by Mihnea Ovidenie.
27
28         LineLayoutState is a helper class of RenderBlockLineLayout, so I'm moving it into line subdirectory.
29
30         No new tests, no behavior change.
31
32         * GNUmakefile.list.am:
33         * WebCore.vcxproj/WebCore.vcxproj:
34         * WebCore.xcodeproj/project.pbxproj:
35         * rendering/line/LineLayoutState.h: Renamed from Source/WebCore/rendering/LineLayoutState.h.
36         (WebCore::FloatWithRect::FloatWithRect):
37         (WebCore::LineLayoutState::LineLayoutState):
38         (WebCore::LineLayoutState::lineInfo):
39         (WebCore::LineLayoutState::endLineLogicalTop):
40         (WebCore::LineLayoutState::setEndLineLogicalTop):
41         (WebCore::LineLayoutState::endLine):
42         (WebCore::LineLayoutState::setEndLine):
43         (WebCore::LineLayoutState::lastFloat):
44         (WebCore::LineLayoutState::setLastFloat):
45         (WebCore::LineLayoutState::floats):
46         (WebCore::LineLayoutState::floatIndex):
47         (WebCore::LineLayoutState::setFloatIndex):
48         (WebCore::LineLayoutState::adjustedLogicalLineTop):
49         (WebCore::LineLayoutState::setAdjustedLogicalLineTop):
50         (WebCore::LineLayoutState::flowThread):
51         (WebCore::LineLayoutState::setFlowThread):
52         (WebCore::LineLayoutState::endLineMatched):
53         (WebCore::LineLayoutState::setEndLineMatched):
54         (WebCore::LineLayoutState::checkForFloatsFromLastLine):
55         (WebCore::LineLayoutState::setCheckForFloatsFromLastLine):
56         (WebCore::LineLayoutState::markForFullLayout):
57         (WebCore::LineLayoutState::isFullLayout):
58         (WebCore::LineLayoutState::usesRepaintBounds):
59         (WebCore::LineLayoutState::setRepaintRange):
60         (WebCore::LineLayoutState::updateRepaintRangeFromBox):
61
62 2013-11-17  Antti Koivisto  <antti@apple.com>
63
64         Simple line path does not respect visibility:hidden
65         https://bugs.webkit.org/show_bug.cgi?id=124467
66
67         Reviewed by Anders Carlsson.
68
69         Test: fast/text/text-visibility.html
70
71         * rendering/SimpleLineLayoutFunctions.cpp:
72         (WebCore::SimpleLineLayout::paintFlow):
73
74 2013-11-16  Alexey Proskuryakov  <ap@apple.com>
75
76         WebCrypto no longer uses sequences of ArrayBuffers
77         https://bugs.webkit.org/show_bug.cgi?id=124451
78
79         Build fix.
80
81         * crypto/mac/CryptoAlgorithmHMACMac.cpp: (WebCore::calculateSignature):
82         Now that the function became shorter, clang realized that a variable was used
83         uninitialized in an impossible code path.
84
85 2013-11-16  Alexey Proskuryakov  <ap@apple.com>
86
87         WebCrypto no longer uses sequences of ArrayBuffers
88         https://bugs.webkit.org/show_bug.cgi?id=124451
89
90         Reviewed by Sam Weinig.
91
92         Covered by existing tests.
93
94         Changed all operations to take single CryptoOperationData objects.
95
96         * bindings/js/JSCryptoOperationData.cpp:
97         * bindings/js/JSCryptoOperationData.h:
98         * bindings/js/JSSubtleCryptoCustom.cpp:
99         (WebCore::JSSubtleCrypto::encrypt):
100         (WebCore::JSSubtleCrypto::decrypt):
101         (WebCore::JSSubtleCrypto::sign):
102         (WebCore::JSSubtleCrypto::verify):
103         (WebCore::JSSubtleCrypto::digest):
104         * crypto/CryptoAlgorithm.cpp:
105         (WebCore::CryptoAlgorithm::encrypt):
106         (WebCore::CryptoAlgorithm::decrypt):
107         (WebCore::CryptoAlgorithm::sign):
108         (WebCore::CryptoAlgorithm::verify):
109         (WebCore::CryptoAlgorithm::digest):
110         * crypto/CryptoAlgorithm.h:
111         * crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
112         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
113         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
114         * crypto/algorithms/CryptoAlgorithmAES_CBC.h:
115         * crypto/algorithms/CryptoAlgorithmHMAC.h:
116         * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
117         * crypto/algorithms/CryptoAlgorithmSHA1.cpp:
118         (WebCore::CryptoAlgorithmSHA1::digest):
119         * crypto/algorithms/CryptoAlgorithmSHA1.h:
120         * crypto/algorithms/CryptoAlgorithmSHA224.cpp:
121         (WebCore::CryptoAlgorithmSHA224::digest):
122         * crypto/algorithms/CryptoAlgorithmSHA224.h:
123         * crypto/algorithms/CryptoAlgorithmSHA256.cpp:
124         (WebCore::CryptoAlgorithmSHA256::digest):
125         * crypto/algorithms/CryptoAlgorithmSHA256.h:
126         * crypto/algorithms/CryptoAlgorithmSHA384.cpp:
127         (WebCore::CryptoAlgorithmSHA384::digest):
128         * crypto/algorithms/CryptoAlgorithmSHA384.h:
129         * crypto/algorithms/CryptoAlgorithmSHA512.cpp:
130         (WebCore::CryptoAlgorithmSHA512::digest):
131         * crypto/algorithms/CryptoAlgorithmSHA512.h:
132         * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
133         (WebCore::transformAES_CBC):
134         (WebCore::CryptoAlgorithmAES_CBC::encrypt):
135         (WebCore::CryptoAlgorithmAES_CBC::decrypt):
136         * crypto/mac/CryptoAlgorithmHMACMac.cpp:
137         (WebCore::calculateSignature):
138         (WebCore::CryptoAlgorithmHMAC::sign):
139         (WebCore::CryptoAlgorithmHMAC::verify):
140         * crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h:
141
142 2013-11-16  Zoltan Horvath  <zoltan@webkit.org>
143
144         Remove the include of LineWidth.h from SimpleLineLayoutFunctions.cpp
145         <https://webkit.org/b/124449>
146
147         Reviewed by Antti Koivisto.
148
149         I removed the include of LineWidth, since SimpleLineLayoutFunctions.cpp doesn't use it.
150
151         No new tests, no behavior change.
152
153         * rendering/SimpleLineLayoutFunctions.cpp:
154
155 2013-11-15  Alexey Proskuryakov  <ap@apple.com>
156
157         Support exporting symmetric keys as JWK
158         https://bugs.webkit.org/show_bug.cgi?id=124442
159
160         Reviewed by Sam Weinig.
161
162         Error handling is not consistent yet - some errors cause exceptions, and others
163         result in rejected promises. This part of spec is incomplete, so I basically did
164         what was most straightforward in each case.
165
166         * bindings/js/JSCryptoKeySerializationJWK.h: 
167         * bindings/js/JSCryptoKeySerializationJWK.cpp:
168         (WebCore::JSCryptoKeySerializationJWK::reconcileUsages): Updated a comment with a better link.
169         (WebCore::JSCryptoKeySerializationJWK::buildJSONForOctetSequence): A helper to building JWK.
170         (WebCore::JSCryptoKeySerializationJWK::addToJSON): Ditto.
171         (WebCore::JSCryptoKeySerializationJWK::addBoolToJSON): Ditto.
172         (WebCore::JSCryptoKeySerializationJWK::addJWKAlgorithmToJSON): Ditto. The code for
173         mapping is my best guess, this all needs to be specified.
174         (WebCore::JSCryptoKeySerializationJWK::addJWKUseToJSON): A helper to building JWK.
175         (WebCore::JSCryptoKeySerializationJWK::serialize): Build a JSON string for the key.
176
177         * bindings/js/JSSubtleCryptoCustom.cpp:
178         (WebCore::JSSubtleCrypto::importKey): Updated a comment.
179         (WebCore::JSSubtleCrypto::exportKey): Use CryptoKeySerialization (also for raw keys,
180         for consistency).
181
182         * crypto/CryptoKey.h:
183         (WebCore::CryptoKey::algorithmIdentifier):
184         (WebCore::CryptoKey::usagesBitmap):
185         Exposed data needed for building JWK (it used to be only exposed in a form suitable
186         for DOM accessors).
187
188         * crypto/keys/CryptoKeyHMAC.h: Ditto, added an accessor for JWK.
189
190         * crypto/keys/CryptoKeySerializationRaw.cpp: (WebCore::CryptoKeySerializationRaw::serialize):
191         * crypto/keys/CryptoKeySerializationRaw.h:
192         Moved from JSSubtleCryptoCustom.cpp for consistency.
193
194 2013-11-15  Brady Eidson  <beidson@apple.com>
195
196         Move IDBCursorBackend operations into their own files
197         https://bugs.webkit.org/show_bug.cgi?id=124444
198
199         Reviewed by Tim Horton.
200
201         * CMakeLists.txt:
202         * GNUmakefile.list.am:
203         * WebCore.xcodeproj/project.pbxproj:
204
205         * Modules/indexeddb/IDBCursorBackend.cpp:
206         * Modules/indexeddb/IDBCursorBackend.h:
207         (WebCore::IDBCursorBackend::cursorType):
208         (WebCore::IDBCursorBackend::deprecatedBackingStoreCursor):
209         (WebCore::IDBCursorBackend::deprecatedSetBackingStoreCursor):
210         (WebCore::IDBCursorBackend::deprecatedSetSavedBackingStoreCursor):
211
212         * Modules/indexeddb/IDBCursorBackendOperations.cpp: Added.
213         (WebCore::CallOnDestruct::CallOnDestruct):
214         (WebCore::CallOnDestruct::~CallOnDestruct):
215         (WebCore::CursorAdvanceOperation::perform):
216         (WebCore::CursorIterationOperation::perform):
217         (WebCore::CursorPrefetchIterationOperation::perform):
218         * Modules/indexeddb/IDBCursorBackendOperations.h: Added.
219         (WebCore::CursorIterationOperation::create):
220         (WebCore::CursorIterationOperation::CursorIterationOperation):
221         (WebCore::CursorAdvanceOperation::create):
222         (WebCore::CursorAdvanceOperation::CursorAdvanceOperation):
223         (WebCore::CursorPrefetchIterationOperation::create):
224         (WebCore::CursorPrefetchIterationOperation::CursorPrefetchIterationOperation):
225
226 2013-11-14  David Farler  <dfarler@apple.com>
227
228         Copy ASAN flag settings to WebCore and JavaScriptCore intermediate build tools
229         https://bugs.webkit.org/show_bug.cgi?id=124362
230
231         Reviewed by David Kilzer.
232
233         No new tests needed.
234
235         * WebCore.xcodeproj/project.pbxproj:
236         Use ASAN_C*FLAGS for WebCoreExportFileGenerator.
237
238 2013-11-15  Jer Noble  <jer.noble@apple.com>
239
240         [Mac][AVF] Allow video and audio tracks to be initialized with an AVAssetTrack.
241         https://bugs.webkit.org/show_bug.cgi?id=124421
242
243         Reviewed by Eric Carlson.
244
245         Currently, VideoTrackPrivateAVFObjC and AudioTrackPrivateAVFObjC are initialized with an
246         AVPlayerItemTrack, but most of its methods use the AVAssetTrack wrapped by the
247         AVPlayerItemTrack. Allow these objects to be alternatively initialized with an AVAssetTrack.
248
249         Add factory methods taking an AVAssetTrack:
250         * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h:
251         (WebCore::AudioTrackPrivateAVFObjC::create):
252         * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
253         (WebCore::AudioTrackPrivateAVFObjC::AudioTrackPrivateAVFObjC):
254         (WebCore::AudioTrackPrivateAVFObjC::setAssetTrack):
255         (WebCore::AudioTrackPrivateAVFObjC::assetTrack):
256         * platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp:
257         (WebCore::VideoTrackPrivateAVFObjC::VideoTrackPrivateAVFObjC):
258         (WebCore::VideoTrackPrivateAVFObjC::setAssetTrack):
259         (WebCore::VideoTrackPrivateAVFObjC::assetTrack):
260         * platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h:
261
262         Use m_assetTrack instead of [m_playerItemTrack assetTrack]:
263         * platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h:
264         (WebCore::AVTrackPrivateAVFObjCImpl::assetTrack):
265         * platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:
266         (WebCore::AVTrackPrivateAVFObjCImpl::AVTrackPrivateAVFObjCImpl):
267         (WebCore::AVTrackPrivateAVFObjCImpl::enabled):
268         (WebCore::AVTrackPrivateAVFObjCImpl::setEnabled):
269         (WebCore::AVTrackPrivateAVFObjCImpl::audioKind):
270         (WebCore::AVTrackPrivateAVFObjCImpl::videoKind):
271         (WebCore::AVTrackPrivateAVFObjCImpl::id):
272         (WebCore::AVTrackPrivateAVFObjCImpl::label):
273         (WebCore::AVTrackPrivateAVFObjCImpl::language):
274         (WebCore::AVTrackPrivateAVFObjCImpl::trackID):
275
276
277 2013-11-15  Brady Eidson  <beidson@apple.com>
278
279         Let IDBDatabaseBackend create IDBTransactionBackend's directly
280         https://bugs.webkit.org/show_bug.cgi?id=124438
281
282         Reviewed by Beth Dakin.
283
284         Create IDBTransactionBackends directly:
285         * Modules/indexeddb/IDBDatabaseBackend.cpp:
286         (WebCore::IDBDatabaseBackend::createTransaction):
287         * Modules/indexeddb/IDBDatabaseBackend.h:
288
289         Remove maybeCreateTransactionBackend():
290         * Modules/indexeddb/IDBFactoryBackendInterface.h:
291         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
292         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
293
294 2013-11-15  Jer Noble  <jer.noble@apple.com>
295
296         HTMLMediaElement should not throw an exception from setCurrentTime or fastSeek.
297         https://bugs.webkit.org/show_bug.cgi?id=124294
298
299         Reviewed by Eric Carlson.
300
301         Update the seek logic to match the current specification. This means removing exception
302         throwing from both the .idl and the implementation. 
303
304         Remove the ExceptionCode parameter from setCurrentTime and fastSeek:
305         * html/HTMLMediaElement.cpp:
306         (HTMLMediaElement::fastSeek):
307         (HTMLMediaElement::seek):
308         (HTMLMediaElement::seekWithTolerance):
309         (HTMLMediaElement::setCurrentTime):
310         * html/HTMLMediaElement.h:
311         * html/HTMLMediaElement.idl:
312         * html/MediaController.cpp:
313         (MediaController::setCurrentTime):
314         * html/MediaController.h:
315         * html/MediaController.idl:
316         * html/MediaControllerInterface.h:
317
318         Do not pass in an ExceptionCode placeholder when calling seek:
319         * html/HTMLMediaElement.cpp:
320         (HTMLMediaElement::rewind):
321         (HTMLMediaElement::returnToRealtime):
322         (HTMLMediaElement::finishSeek):
323         (HTMLMediaElement::playInternal):
324         (HTMLMediaElement::mediaPlayerTimeChanged):
325         (HTMLMediaElement::mediaPlayerDurationChanged):
326         (HTMLMediaElement::applyMediaFragmentURI):
327         * html/HTMLMediaElement.h:
328         * html/HTMLMediaElement.idl:
329         * html/MediaController.cpp:
330         (MediaController::bringElementUpToSpeed):
331         * html/MediaController.h:
332         * html/MediaController.idl:
333         * html/MediaControllerInterface.h:
334         * html/shadow/MediaControlElementTypes.cpp:
335         (WebCore::MediaControlSeekButtonElement::seekTimerFired):
336         * html/shadow/MediaControlElements.cpp:
337         (WebCore::MediaControlRewindButtonElement::defaultEventHandler):
338         (WebCore::MediaControlTimelineElement::defaultEventHandler):
339         * platform/mac/WebVideoFullscreenHUDWindowController.mm:
340         (-[WebVideoFullscreenHUDWindowController setCurrentTime:]):
341
342 2013-11-15  Brady Eidson  <beidson@apple.com>
343
344         Remove last vestiges of IDBBackingStore* from IDBTransactionBackend.
345         https://bugs.webkit.org/show_bug.cgi?id=124436
346
347         Reviewed by Tim Horton.
348
349         * Modules/indexeddb/IDBFactoryBackendInterface.h: Removed createCursorBackend.
350         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp: Removed createCursorBackend.
351         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h: Removed createCursorBackend.
352
353         * Modules/indexeddb/IDBCursorBackend.h:
354
355         * Modules/indexeddb/IDBTransactionBackend.cpp:
356         * Modules/indexeddb/IDBTransactionBackend.h:
357
358         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
359         (WebCore::IDBServerConnectionLevelDB::openCursor):
360
361 2013-11-15  Brady Eidson  <beidson@apple.com>
362
363         Make IDBIndexWriter a LevelDB specific concept
364         https://bugs.webkit.org/show_bug.cgi?id=124434
365
366         Reviewed by Tim Horton.
367
368         This includes renaming the class and moving it into the leveldb subdirectory.
369
370         * CMakeLists.txt:
371         * GNUmakefile.list.am:
372         * WebCore.xcodeproj/project.pbxproj:
373
374         * Modules/indexeddb/IDBBackingStoreInterface.h:
375         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
376
377         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
378         (WebCore::IDBBackingStoreLevelDB::makeIndexWriters):
379         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
380
381         * Modules/indexeddb/leveldb/IDBIndexWriterLevelDB.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBIndexWriter.cpp.
382         (WebCore::IDBIndexWriterLevelDB::IDBIndexWriterLevelDB):
383         (WebCore::IDBIndexWriterLevelDB::writeIndexKeys):
384         (WebCore::IDBIndexWriterLevelDB::verifyIndexKeys):
385         (WebCore::IDBIndexWriterLevelDB::addingKeyAllowed):
386         * Modules/indexeddb/leveldb/IDBIndexWriterLevelDB.h: Renamed from Source/WebCore/Modules/indexeddb/IDBIndexWriter.h.
387         (WebCore::IDBIndexWriterLevelDB::create):
388
389         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
390         (WebCore::IDBServerConnectionLevelDB::setIndexKeys):
391         (WebCore::IDBServerConnectionLevelDB::put):
392
393 2013-11-15  Alexandru Chiculita  <achicu@adobe.com>
394
395         Web Inspector: DOM.performSearch should accept a list of context nodes
396         https://bugs.webkit.org/show_bug.cgi?id=124390
397
398         Reviewed by Timothy Hatcher.
399
400         Extracted the code in InspectorDOMAgent::performSearch into its own helper class
401         called InspectorNodeFinder. Also added a new array parameter called "nodeIds"
402         that can be used to limit the search results to just partial subtrees.
403
404         Tests: inspector-protocol/dom/dom-search-crash.html
405                inspector-protocol/dom/dom-search-with-context.html
406                inspector-protocol/dom/dom-search.html
407
408         * CMakeLists.txt:
409         * GNUmakefile.list.am:
410         * WebCore.vcxproj/WebCore.vcxproj:
411         * WebCore.vcxproj/WebCore.vcxproj.filters:
412         * WebCore.xcodeproj/project.pbxproj:
413         * inspector/protocol/DOM.json:
414         * inspector/InspectorAllInOne.cpp:
415         * inspector/InspectorDOMAgent.cpp:
416         (WebCore::InspectorDOMAgent::performSearch):
417         * inspector/InspectorDOMAgent.h:
418         * inspector/InspectorNodeFinder.cpp: Added.
419         (WebCore::stripCharacters):
420         (WebCore::InspectorNodeFinder::InspectorNodeFinder):
421         (WebCore::InspectorNodeFinder::performSearch):
422         (WebCore::InspectorNodeFinder::searchUsingDOMTreeTraversal):
423         (WebCore::InspectorNodeFinder::matchesAttribute):
424         (WebCore::InspectorNodeFinder::matchesElement):
425         (WebCore::InspectorNodeFinder::searchUsingXPath):
426         (WebCore::InspectorNodeFinder::searchUsingCSSSelectors):
427         * inspector/InspectorNodeFinder.h: Added.
428         (WebCore::InspectorNodeFinder::results):
429
430 2013-11-15  Brady Eidson  <beidson@apple.com>
431
432         Remove IDBBackingStoreInterface.h includes that are no longer needed
433         https://bugs.webkit.org/show_bug.cgi?id=124433
434
435         Reviewed by Tim Horton.
436
437         * Modules/indexeddb/IDBCursorBackend.cpp:
438         * Modules/indexeddb/IDBCursorBackend.h:
439         * Modules/indexeddb/IDBFactoryBackendInterface.h:
440         * Modules/indexeddb/IDBTransactionBackend.h:
441
442 2013-11-15  Zoltan Horvath  <zoltan@webkit.org>
443
444         Move BreakingContext and LineBreaker into their own files
445         <https://webkit.org/b/124336>
446
447         Reviewed by David Hyatt.
448
449         In this change I introduced 'line' subdirectory inside 'rendering', this directory will contain all the classes
450         which have been refactored from RenderBlockLineLayout.cpp. This change contains the separation of BreakingContext,
451         and the separation of LineBreaker classes. Since I wanted to keep the helper functions organized, I also added a
452         new file called LineInlineHeaders.h, which contains the functions which used in LineBreaker.h and BreakingContext.h.
453         I moved LineInfo class into line directory. It was necessary this time, since I added a cpp for it. I'll move the
454         rest of the line layout related helper classes later. (I wanted to minimize merge conflicts.)
455
456         No new tests, no behavior change.
457
458         * CMakeLists.txt:
459         * GNUmakefile.am:
460         * GNUmakefile.list.am:
461         * WebCore.vcxproj/WebCore.vcxproj:
462         * WebCore.vcxproj/WebCoreCommon.props:
463         * WebCore.xcodeproj/project.pbxproj:
464         * rendering/RenderBlockLineLayout.cpp:
465         (WebCore::createRun):
466         * rendering/line/BreakingContextInlineHeaders.h: Added.
467         (WebCore::WordMeasurement::WordMeasurement):
468         (WebCore::TrailingObjects::TrailingObjects):
469         (WebCore::TrailingObjects::setTrailingWhitespace):
470         (WebCore::TrailingObjects::clear):
471         (WebCore::TrailingObjects::appendBoxIfNeeded):
472         (WebCore::deprecatedAddMidpoint):
473         (WebCore::startIgnoringSpaces):
474         (WebCore::stopIgnoringSpaces):
475         (WebCore::ensureLineBoxInsideIgnoredSpaces):
476         (WebCore::TrailingObjects::updateMidpointsForTrailingBoxes):
477         (WebCore::BreakingContext::BreakingContext):
478         (WebCore::BreakingContext::currentObject):
479         (WebCore::BreakingContext::lineBreak):
480         (WebCore::BreakingContext::lineBreakRef):
481         (WebCore::BreakingContext::lineWidth):
482         (WebCore::BreakingContext::atEnd):
483         (WebCore::BreakingContext::clearLineBreakIfFitsOnLine):
484         (WebCore::BreakingContext::commitLineBreakAtCurrentWidth):
485         (WebCore::BreakingContext::initializeForCurrentObject):
486         (WebCore::BreakingContext::increment):
487         (WebCore::BreakingContext::handleBR):
488         (WebCore::borderPaddingMarginStart):
489         (WebCore::borderPaddingMarginEnd):
490         (WebCore::shouldAddBorderPaddingMargin):
491         (WebCore::previousInFlowSibling):
492         (WebCore::inlineLogicalWidth):
493         (WebCore::BreakingContext::handleOutOfFlowPositioned):
494         (WebCore::BreakingContext::handleFloat):
495         (WebCore::shouldSkipWhitespaceAfterStartObject):
496         (WebCore::BreakingContext::handleEmptyInline):
497         (WebCore::BreakingContext::handleReplaced):
498         (WebCore::firstPositiveWidth):
499         (WebCore::updateSegmentsForShapes):
500         (WebCore::iteratorIsBeyondEndOfRenderCombineText):
501         (WebCore::nextCharacter):
502         (WebCore::updateCounterIfNeeded):
503         (WebCore::measureHyphenWidth):
504         (WebCore::textWidth):
505         (WebCore::ensureCharacterGetsLineBox):
506         (WebCore::tryHyphenating):
507         (WebCore::BreakingContext::handleText):
508         (WebCore::textBeginsWithBreakablePosition):
509         (WebCore::BreakingContext::canBreakAtThisPosition):
510         (WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded):
511         (WebCore::checkMidpoints):
512         (WebCore::BreakingContext::handleEndOfLine):
513         * rendering/line/LineBreaker.cpp: Added.
514         (WebCore::LineBreaker::reset):
515         (WebCore::LineBreaker::skipTrailingWhitespace):
516         (WebCore::LineBreaker::skipLeadingWhitespace):
517         * rendering/line/LineBreaker.h: Added.
518         (WebCore::LineBreaker::LineBreaker):
519         (WebCore::LineBreaker::lineWasHyphenated):
520         (WebCore::LineBreaker::positionedObjects):
521         (WebCore::LineBreaker::clear):
522         * rendering/line/LineInfo.cpp: Added.
523         (WebCore::LineInfo::setEmpty):
524         * rendering/line/LineInfo.h: Renamed from Source/WebCore/rendering/LineInfo.h.
525         (WebCore::LineInfo::LineInfo):
526         (WebCore::LineInfo::isFirstLine):
527         (WebCore::LineInfo::isLastLine):
528         (WebCore::LineInfo::isEmpty):
529         (WebCore::LineInfo::previousLineBrokeCleanly):
530         (WebCore::LineInfo::floatPaginationStrut):
531         (WebCore::LineInfo::runsFromLeadingWhitespace):
532         (WebCore::LineInfo::resetRunsFromLeadingWhitespace):
533         (WebCore::LineInfo::incrementRunsFromLeadingWhitespace):
534         (WebCore::LineInfo::setFirstLine):
535         (WebCore::LineInfo::setLastLine):
536         (WebCore::LineInfo::setPreviousLineBrokeCleanly):
537         (WebCore::LineInfo::setFloatPaginationStrut):
538         * rendering/line/LineInlineHeaders.h: Added.
539         (WebCore::hasInlineDirectionBordersPaddingOrMargin):
540         (WebCore::lineStyle):
541         (WebCore::requiresLineBoxForContent):
542         (WebCore::shouldCollapseWhiteSpace):
543         (WebCore::skipNonBreakingSpace):
544         (WebCore::alwaysRequiresLineBox):
545         (WebCore::requiresLineBox):
546         (WebCore::setStaticPositions):
547
548 2013-11-15  Brady Eidson  <beidson@apple.com>
549
550         Move execution of IDBTransactionBackendOperations to the IDBServerConnection
551         https://bugs.webkit.org/show_bug.cgi?id=124385
552
553         Reviewed by Tim Horton.
554
555         Each IDBOperation has it’s ::perform() moved to a method on IDBServerConnection.
556         This almost removes all knowledge of the backing stores from the front end.
557
558         * Modules/indexeddb/IDBDatabaseBackend.cpp:
559         (WebCore::IDBDatabaseBackend::clearObjectStore):
560         (WebCore::IDBDatabaseBackend::runIntVersionChangeTransaction):
561         * Modules/indexeddb/IDBDatabaseBackend.h:
562
563         * Modules/indexeddb/IDBObjectStore.cpp:
564         (WebCore::IDBObjectStore::clear):
565
566         Add methods to reflect each transaction backend operation:
567         * Modules/indexeddb/IDBServerConnection.h:
568
569         Schedule certain operations with callbacks:
570         * Modules/indexeddb/IDBTransactionBackend.cpp:
571         (WebCore::IDBTransactionBackend::scheduleVersionChangeOperation):
572         (WebCore::IDBTransactionBackend::schedulePutOperation):
573         (WebCore::IDBTransactionBackend::scheduleOpenCursorOperation):
574         (WebCore::IDBTransactionBackend::scheduleCountOperation):
575         (WebCore::IDBTransactionBackend::scheduleDeleteRangeOperation):
576         (WebCore::IDBTransactionBackend::scheduleClearObjectStoreOperation):
577         * Modules/indexeddb/IDBTransactionBackend.h:
578
579         Make each operation’s perform() method defer to the IDBServerConnection (with a callback):
580         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
581         (WebCore::CreateObjectStoreOperation::perform):
582         (WebCore::CreateIndexOperation::perform):
583         (WebCore::CreateIndexAbortOperation::perform):
584         (WebCore::DeleteIndexOperation::perform):
585         (WebCore::DeleteIndexAbortOperation::perform):
586         (WebCore::GetOperation::perform):
587         (WebCore::PutOperation::perform):
588         (WebCore::SetIndexesReadyOperation::perform):
589         (WebCore::OpenCursorOperation::perform):
590         (WebCore::CountOperation::perform):
591         (WebCore::DeleteRangeOperation::perform):
592         (WebCore::ClearObjectStoreOperation::perform):
593         (WebCore::DeleteObjectStoreOperation::perform):
594         (WebCore::IDBDatabaseBackend::VersionChangeOperation::perform):
595         (WebCore::CreateObjectStoreAbortOperation::perform):
596
597         Add accessors to each operation’s data members so the IDBServerConnection has everything it needs:
598         * Modules/indexeddb/IDBTransactionBackendOperations.h:
599         (WebCore::CreateObjectStoreOperation::objectStoreMetadata):
600         (WebCore::DeleteObjectStoreOperation::objectStoreMetadata):
601         (WebCore::IDBDatabaseBackend::VersionChangeOperation::create):
602         (WebCore::IDBDatabaseBackend::VersionChangeOperation::version):
603         (WebCore::IDBDatabaseBackend::VersionChangeOperation::callbacks):
604         (WebCore::IDBDatabaseBackend::VersionChangeOperation::databaseCallbacks):
605         (WebCore::IDBDatabaseBackend::VersionChangeOperation::VersionChangeOperation):
606         (WebCore::CreateObjectStoreAbortOperation::CreateObjectStoreAbortOperation):
607         (WebCore::CreateIndexOperation::objectStoreID):
608         (WebCore::CreateIndexOperation::idbIndexMetadata):
609         (WebCore::CreateIndexOperation::CreateIndexOperation):
610         (WebCore::CreateIndexAbortOperation::CreateIndexAbortOperation):
611         (WebCore::DeleteIndexOperation::objectStoreID):
612         (WebCore::DeleteIndexOperation::idbIndexMetadata):
613         (WebCore::DeleteIndexOperation::DeleteIndexOperation):
614         (WebCore::DeleteIndexAbortOperation::DeleteIndexAbortOperation):
615         (WebCore::GetOperation::objectStoreID):
616         (WebCore::GetOperation::indexID):
617         (WebCore::GetOperation::cursorType):
618         (WebCore::GetOperation::keyRange):
619         (WebCore::GetOperation::callbacks):
620         (WebCore::GetOperation::autoIncrement):
621         (WebCore::GetOperation::keyPath):
622         (WebCore::GetOperation::GetOperation):
623         (WebCore::PutOperation::create):
624         (WebCore::PutOperation::putMode):
625         (WebCore::PutOperation::objectStore):
626         (WebCore::PutOperation::key):
627         (WebCore::PutOperation::indexIDs):
628         (WebCore::PutOperation::indexKeys):
629         (WebCore::PutOperation::callbacks):
630         (WebCore::PutOperation::value):
631         (WebCore::PutOperation::PutOperation):
632         (WebCore::OpenCursorOperation::create):
633         (WebCore::OpenCursorOperation::objectStoreID):
634         (WebCore::OpenCursorOperation::indexID):
635         (WebCore::OpenCursorOperation::direction):
636         (WebCore::OpenCursorOperation::cursorType):
637         (WebCore::OpenCursorOperation::taskType):
638         (WebCore::OpenCursorOperation::keyRange):
639         (WebCore::OpenCursorOperation::cursorDirection):
640         (WebCore::OpenCursorOperation::callbacks):
641         (WebCore::OpenCursorOperation::OpenCursorOperation):
642         (WebCore::CountOperation::create):
643         (WebCore::CountOperation::objectStoreID):
644         (WebCore::CountOperation::indexID):
645         (WebCore::CountOperation::keyRange):
646         (WebCore::CountOperation::callbacks):
647         (WebCore::CountOperation::CountOperation):
648         (WebCore::DeleteRangeOperation::create):
649         (WebCore::DeleteRangeOperation::objectStoreID):
650         (WebCore::DeleteRangeOperation::callbacks):
651         (WebCore::DeleteRangeOperation::keyRange):
652         (WebCore::DeleteRangeOperation::DeleteRangeOperation):
653         (WebCore::ClearObjectStoreOperation::create):
654         (WebCore::ClearObjectStoreOperation::objectStoreID):
655         (WebCore::ClearObjectStoreOperation::callbacks):
656         (WebCore::ClearObjectStoreOperation::ClearObjectStoreOperation):
657
658         Implement each operation in terms of the appropriate backing store, then perform the callback:
659         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
660         (WebCore::IDBServerConnectionLevelDB::createObjectStore):
661         (WebCore::IDBServerConnectionLevelDB::createIndex):
662         (WebCore::IDBServerConnectionLevelDB::deleteIndex):
663         (WebCore::IDBServerConnectionLevelDB::get):
664         (WebCore::IDBServerConnectionLevelDB::put):
665         (WebCore::IDBServerConnectionLevelDB::openCursor):
666         (WebCore::IDBServerConnectionLevelDB::count):
667         (WebCore::IDBServerConnectionLevelDB::deleteRange):
668         (WebCore::IDBServerConnectionLevelDB::clearObjectStore):
669         (WebCore::IDBServerConnectionLevelDB::deleteObjectStore):
670         (WebCore::IDBServerConnectionLevelDB::changeDatabaseVersion):
671         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
672
673         * WebCore.xcodeproj/project.pbxproj:
674
675 2013-11-15  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
676
677         Modifying RTCIceCandidate object construction to match the spec
678         https://bugs.webkit.org/show_bug.cgi?id=124369
679
680         Reviewed by Eric Carlson.
681
682         According to the spec the RTCIceCandidateInit parameter in RTCSessionDescription constructor is optional,
683         which must not be nullable, and, if passed, must be a valid Dictionary. If the keys are not present, the string
684         object that stores them in the RTCIceCandidate class, must be null in those cases. Also, if a key is present
685         and its value is not valid an exception must be raised.
686
687         Existing test was updated.
688
689         * GNUmakefile.list.am:
690         * Modules/mediastream/RTCIceCandidate.cpp:
691         (WebCore::RTCIceCandidate::create):
692         * Modules/mediastream/RTCIceCandidate.idl:
693         * UseJSC.cmake:
694         * WebCore.vcxproj/WebCore.vcxproj:
695         * WebCore.vcxproj/WebCore.vcxproj.filters:
696         * WebCore.xcodeproj/project.pbxproj:
697         * bindings/js/JSRTCIceCandidateCustom.cpp: Added.
698         (WebCore::JSRTCIceCandidateConstructor::constructJSRTCIceCandidate):
699
700 2013-11-15  Commit Queue  <commit-queue@webkit.org>
701
702         Unreviewed, rolling out r159337.
703         http://trac.webkit.org/changeset/159337
704         https://bugs.webkit.org/show_bug.cgi?id=124423
705
706         broke a bunch of fast/regions tests on EFL/GTK (Requested by
707         philn on #webkit).
708
709         * rendering/InlineFlowBox.cpp:
710         (WebCore::InlineFlowBox::setLayoutOverflow):
711         (WebCore::InlineFlowBox::setVisualOverflow):
712         * rendering/InlineFlowBox.h:
713         * rendering/RenderBlock.cpp:
714         (WebCore::RenderBlock::addOverflowFromChildren):
715         (WebCore::RenderBlock::paint):
716         (WebCore::RenderBlock::paintObject):
717         (WebCore::RenderBlock::estimateRegionRangeForBoxChild):
718         (WebCore::RenderBlock::updateRegionRangeForBoxChild):
719         * rendering/RenderBlockFlow.cpp:
720         (WebCore::RenderBlockFlow::hasNextPage):
721         (WebCore::RenderBlockFlow::relayoutForPagination):
722         * rendering/RenderBlockLineLayout.cpp:
723         (WebCore::RenderBlockFlow::positionNewFloatOnLine):
724         * rendering/RenderBox.cpp:
725         (WebCore::RenderBox::borderBoxRectInRegion):
726         (WebCore::RenderBox::computeRectForRepaint):
727         (WebCore::RenderBox::addLayoutOverflow):
728         (WebCore::RenderBox::addVisualOverflow):
729         (WebCore::RenderBox::isUnsplittableForPagination):
730         (WebCore::RenderBox::overflowRectForPaintRejection):
731         * rendering/RenderBox.h:
732         * rendering/RenderBoxModelObject.cpp:
733         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
734         * rendering/RenderBoxModelObject.h:
735         * rendering/RenderBoxRegionInfo.h:
736         (WebCore::RenderBoxRegionInfo::createOverflow):
737         * rendering/RenderFlowThread.cpp:
738         (WebCore::RenderFlowThread::paintFlowThreadPortionInRegion):
739         (WebCore::RenderFlowThread::hitTestFlowThreadPortionInRegion):
740         (WebCore::RenderFlowThread::checkRegionsWithStyling):
741         (WebCore::RenderFlowThread::mapFromLocalToFlowThread):
742         (WebCore::RenderFlowThread::mapFromFlowThreadToLocal):
743         (WebCore::RenderFlowThread::addRegionsOverflowFromChild):
744         (WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
745         * rendering/RenderFlowThread.h:
746         * rendering/RenderLayer.cpp:
747         (WebCore::RenderLayer::updateLayerPositions):
748         (WebCore::expandClipRectForDescendantsAndReflection):
749         (WebCore::RenderLayer::paintLayer):
750         (WebCore::RenderLayer::paintLayerContents):
751         (WebCore::RenderLayer::updatePaintingInfoForFragments):
752         (WebCore::RenderLayer::paintForegroundForFragments):
753         (WebCore::RenderLayer::hitTest):
754         (WebCore::RenderLayer::hitTestLayer):
755         (WebCore::RenderLayer::calculateClipRects):
756         (WebCore::RenderLayer::parentClipRects):
757         (WebCore::RenderLayer::calculateRects):
758         (WebCore::RenderLayer::intersectsDamageRect):
759         (WebCore::RenderLayer::repaintIncludingDescendants):
760         * rendering/RenderLayer.h:
761         * rendering/RenderLayerCompositor.cpp:
762         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
763         * rendering/RenderListItem.cpp:
764         (WebCore::RenderListItem::addOverflowFromChildren):
765         * rendering/RenderMultiColumnSet.cpp:
766         (WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
767         (WebCore::RenderMultiColumnSet::repaintFlowThreadContent):
768         * rendering/RenderMultiColumnSet.h:
769         * rendering/RenderNamedFlowFragment.cpp:
770         (WebCore::RenderNamedFlowFragment::createStyle):
771         * rendering/RenderNamedFlowFragment.h:
772         * rendering/RenderOverflow.h:
773         * rendering/RenderRegion.cpp:
774         (WebCore::RenderRegion::flowThreadPortionOverflowRect):
775         (WebCore::RenderRegion::overflowRectForFlowThreadPortion):
776         (WebCore::shouldPaintRegionContentsInPhase):
777         (WebCore::RenderRegion::paintObject):
778         (WebCore::RenderRegion::hitTestContents):
779         (WebCore::RenderRegion::computeOverflowFromFlowThread):
780         (WebCore::RenderRegion::repaintFlowThreadContent):
781         (WebCore::RenderRegion::repaintFlowThreadContentRectangle):
782         (WebCore::RenderRegion::insertedIntoTree):
783         (WebCore::RenderRegion::ensureOverflowForBox):
784         (WebCore::RenderRegion::rectFlowPortionForBox):
785         (WebCore::RenderRegion::addLayoutOverflowForBox):
786         (WebCore::RenderRegion::addVisualOverflowForBox):
787         (WebCore::RenderRegion::layoutOverflowRectForBox):
788         (WebCore::RenderRegion::visualOverflowRectForBox):
789         (WebCore::RenderRegion::visualOverflowRectForBoxForPropagation):
790         * rendering/RenderRegion.h:
791         * rendering/RenderReplaced.cpp:
792         (WebCore::RenderReplaced::shouldPaint):
793         * rendering/RootInlineBox.cpp:
794         (WebCore::RootInlineBox::paint):
795
796 2013-11-15  Antti Koivisto  <antti@apple.com>
797
798         Hovering over text using simple line path should not cause switch to line boxes
799         https://bugs.webkit.org/show_bug.cgi?id=124418
800
801         Reviewed by Anders Carlsson.
802
803         Test: fast/text/simple-lines-hover.html
804
805         * rendering/RenderText.cpp:
806         (WebCore::RenderText::absoluteRects):
807         (WebCore::RenderText::absoluteQuadsClippedToEllipsis):
808         (WebCore::RenderText::absoluteQuads):
809         
810             Collect quads and rects directly from simple lines without requiring the line box switch.
811
812         * rendering/SimpleLineLayoutFunctions.cpp:
813         (WebCore::SimpleLineLayout::collectTextAbsoluteRects):
814         (WebCore::SimpleLineLayout::collectTextAbsoluteQuads):
815         
816             Add these.
817
818         * rendering/SimpleLineLayoutFunctions.h:
819         * rendering/SimpleLineLayoutResolver.h:
820         (WebCore::SimpleLineLayout::RunResolver::Run::start):
821         (WebCore::SimpleLineLayout::RunResolver::Run::end):
822         
823             For future use.
824
825 2013-11-15  Radu Stavila  <stavila@adobe.com>
826
827         [CSS Regions] Implement visual overflow for first & last regions
828         https://bugs.webkit.org/show_bug.cgi?id=118665
829
830         In order to properly propagate the visual overflow of elements flowed inside regions, 
831         the responsiblity of painting and hit-testing content inside flow threads has been
832         moved to the flow thread layer's level.
833         Each region keeps the associated overflow with each box in the RenderBoxRegionInfo
834         structure, including one for the flow thread itself. This data is used during
835         painting and hit-testing.
836
837         Reviewed by David Hyatt.
838
839         Tests: fast/regions/overflow-first-and-last-regions-in-container-hidden.html
840                fast/regions/overflow-first-and-last-regions.html
841                fast/regions/overflow-nested-regions.html
842                fast/regions/overflow-region-float.html
843                fast/regions/overflow-region-inline.html
844                fast/regions/overflow-region-transform.html
845
846         * rendering/InlineFlowBox.cpp:
847         (WebCore::InlineFlowBox::setLayoutOverflow):
848         (WebCore::InlineFlowBox::setVisualOverflow):
849         * rendering/InlineFlowBox.h:
850         * rendering/RenderBlock.cpp:
851         (WebCore::RenderBlock::addOverflowFromChildren):
852         (WebCore::RenderBlock::paint):
853         (WebCore::RenderBlock::paintObject):
854         (WebCore::RenderBlock::estimateRegionRangeForBoxChild):
855         (WebCore::RenderBlock::updateRegionRangeForBoxChild):
856         * rendering/RenderBlockFlow.cpp:
857         (WebCore::RenderBlockFlow::hasNextPage):
858         (WebCore::RenderBlockFlow::relayoutForPagination):
859         * rendering/RenderBlockLineLayout.cpp:
860         (WebCore::RenderBlockFlow::positionNewFloatOnLine):
861         * rendering/RenderBox.cpp:
862         (WebCore::RenderBox::borderBoxRectInRegion):
863         (WebCore::RenderBox::computeRectForRepaint):
864         (WebCore::RenderBox::addLayoutOverflow):
865         (WebCore::RenderBox::addVisualOverflow):
866         (WebCore::RenderBox::isUnsplittableForPagination):
867         (WebCore::RenderBox::overflowRectForPaintRejection):
868         * rendering/RenderBox.h:
869         (WebCore::RenderBox::canHaveOutsideRegionRange):
870         * rendering/RenderBoxModelObject.cpp:
871         (WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
872         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
873         * rendering/RenderBoxModelObject.h:
874         * rendering/RenderBoxRegionInfo.h:
875         (WebCore::RenderBoxRegionInfo::createOverflow):
876         * rendering/RenderFlowThread.cpp:
877         (WebCore::RenderFlowThread::objectShouldPaintInFlowRegion):
878         (WebCore::RenderFlowThread::mapFromLocalToFlowThread):
879         (WebCore::RenderFlowThread::mapFromFlowThreadToLocal):
880         (WebCore::RenderFlowThread::decorationsClipRectForBoxInRegion):
881         (WebCore::RenderFlowThread::flipForWritingModeLocalCoordinates):
882         (WebCore::RenderFlowThread::addRegionsOverflowFromChild):
883         (WebCore::RenderFlowThread::addRegionsVisualOverflow):
884         (WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
885         * rendering/RenderFlowThread.h:
886         * rendering/RenderLayer.cpp:
887         (WebCore::RenderLayer::updateLayerPositions):
888         (WebCore::expandClipRectForRegionAndReflection):
889         (WebCore::expandClipRectForDescendantsAndReflection):
890         (WebCore::RenderLayer::paintLayer):
891         (WebCore::RenderLayer::paintLayerContents):
892         (WebCore::RenderLayer::updatePaintingInfoForFragments):
893         (WebCore::RenderLayer::paintForegroundForFragments):
894         (WebCore::RenderLayer::hitTest):
895         (WebCore::RenderLayer::hitTestLayer):
896         (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
897         (WebCore::RenderLayer::calculateClipRects):
898         (WebCore::RenderLayer::parentClipRects):
899         (WebCore::RenderLayer::calculateRects):
900         (WebCore::RenderLayer::intersectsDamageRect):
901         (WebCore::RenderLayer::updateDescendantsLayerListsIfNeeded):
902         (WebCore::RenderLayer::repaintIncludingDescendants):
903         (WebCore::RenderLayer::paintNamedFlowThreadInsideRegion):
904         (WebCore::RenderLayer::paintFlowThreadIfRegion):
905         (WebCore::RenderLayer::hitTestFlowThreadIfRegion):
906         * rendering/RenderLayer.h:
907         (WebCore::ClipRect::inflateX):
908         (WebCore::ClipRect::inflateY):
909         (WebCore::ClipRect::inflate):
910         * rendering/RenderLayerCompositor.cpp:
911         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
912         * rendering/RenderListItem.cpp:
913         (WebCore::RenderListItem::addOverflowFromChildren):
914         * rendering/RenderMultiColumnSet.cpp:
915         (WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
916         (WebCore::RenderMultiColumnSet::repaintFlowThreadContent):
917         * rendering/RenderMultiColumnSet.h:
918         * rendering/RenderNamedFlowFragment.cpp:
919         (WebCore::RenderNamedFlowFragment::createStyle):
920         (WebCore::RenderNamedFlowFragment::namedFlowThread):
921         * rendering/RenderNamedFlowFragment.h:
922         * rendering/RenderOverflow.h:
923         * rendering/RenderRegion.cpp:
924         (WebCore::RenderRegion::flowThreadPortionOverflowRect):
925         (WebCore::RenderRegion::flowThreadPortionLocation):
926         (WebCore::RenderRegion::regionContainerLayer):
927         (WebCore::RenderRegion::overflowRectForFlowThreadPortion):
928         (WebCore::RenderRegion::computeOverflowFromFlowThread):
929         (WebCore::RenderRegion::repaintFlowThreadContent):
930         (WebCore::RenderRegion::repaintFlowThreadContentRectangle):
931         (WebCore::RenderRegion::insertedIntoTree):
932         (WebCore::RenderRegion::ensureOverflowForBox):
933         (WebCore::RenderRegion::rectFlowPortionForBox):
934         (WebCore::RenderRegion::addLayoutOverflowForBox):
935         (WebCore::RenderRegion::addVisualOverflowForBox):
936         (WebCore::RenderRegion::layoutOverflowRectForBox):
937         (WebCore::RenderRegion::visualOverflowRectForBox):
938         (WebCore::RenderRegion::visualOverflowRectForBoxForPropagation):
939         * rendering/RenderRegion.h:
940         * rendering/RenderReplaced.cpp:
941         (WebCore::RenderReplaced::shouldPaint):
942         * rendering/RootInlineBox.cpp:
943         (WebCore::RootInlineBox::paint):
944
945 2013-11-15  Stephane Jadaud  <sjadaud@sii.fr>
946
947         [GStreamer] Add support for Media Source API
948         https://bugs.webkit.org/show_bug.cgi?id=99065
949
950         The patch integrate a Media Source player for the GStreamer backend. The implementented architecture is:
951         - MediaPlayerPrivateGStreamer engine is modified to support Media Source URIs (change blob:// to mediasourceblob://), in addition to the existing support for web (http/https/blob) URIs
952         - Similar to the existing WebKitWebSrc gstreamer element that handles web URIs, a new gstreamer element named WebKitMediaSrc is implemented to handle Media Source URIs
953         - WebKitMediaSrc registers its URI protocol handler, allowing uridecodebin to dynamically create the appropriate source element.
954         - The WebKitMediaSrc element creates a bin with 2 appsrc: One for Audio and One for Video. Pads are dynamically linked at the reception of first video and audio buffers.
955
956         Reviewed by Philippe Normand.
957
958         Tests: Activate http/tests/media/media-source and media/media-source tests
959
960         * GNUmakefile.am:
961         * GNUmakefile.list.am:
962         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
963         (WebCore::initializeGStreamerAndRegisterWebKitElements):
964         (WebCore::MediaPlayerPrivateGStreamer::load):
965         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
966         * platform/graphics/gstreamer/MediaSourceGStreamer.cpp: Added.
967         (WebCore::MediaSourceGStreamer::open):
968         (WebCore::MediaSourceGStreamer::MediaSourceGStreamer):
969         (WebCore::MediaSourceGStreamer::~MediaSourceGStreamer):
970         (WebCore::MediaSourceGStreamer::addSourceBuffer):
971         (WebCore::MediaSourceGStreamer::setDuration):
972         (WebCore::MediaSourceGStreamer::markEndOfStream):
973         (WebCore::MediaSourceGStreamer::unmarkEndOfStream):
974         * platform/graphics/gstreamer/MediaSourceGStreamer.h: Added.
975         * platform/graphics/gstreamer/SourceBufferPrivateGStreamer.cpp: Added.
976         (WebCore::SourceBufferPrivateGStreamer::SourceBufferPrivateGStreamer):
977         (WebCore::SourceBufferPrivateGStreamer::append):
978         (WebCore::SourceBufferPrivateGStreamer::abort):
979         (WebCore::SourceBufferPrivateGStreamer::removedFromMediaSource):
980         * platform/graphics/gstreamer/SourceBufferPrivateGStreamer.h: Added.
981         * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp: Added.
982         (webKitMediaSrcAddSrc):
983         (webkit_media_src_init):
984         (webKitMediaSrcFinalize):
985         (webKitMediaSrcSetProperty):
986         (webKitMediaSrcGetProperty):
987         (webKitMediaVideoSrcStop):
988         (webKitMediaAudioSrcStop):
989         (webKitMediaVideoSrcStart):
990         (webKitMediaAudioSrcStart):
991         (webKitMediaSrcChangeState):
992         (webKitMediaSrcQueryWithParent):
993         (webKitMediaSrcUriGetType):
994         (webKitMediaSrcGetProtocols):
995         (webKitMediaSrcGetUri):
996         (webKitMediaSrcSetUri):
997         (webKitMediaSrcUriHandlerInit):
998         (webKitMediaVideoSrcNeedDataMainCb):
999         (webKitMediaAudioSrcNeedDataMainCb):
1000         (webKitMediaVideoSrcNeedDataCb):
1001         (webKitMediaAudioSrcNeedDataCb):
1002         (webKitMediaVideoSrcEnoughDataMainCb):
1003         (webKitMediaAudioSrcEnoughDataMainCb):
1004         (webKitMediaVideoSrcEnoughDataCb):
1005         (webKitMediaAudioSrcEnoughDataCb):
1006         (webKitMediaVideoSrcSeekMainCb):
1007         (webKitMediaAudioSrcSeekMainCb):
1008         (webKitMediaVideoSrcSeekDataCb):
1009         (webKitMediaAudioSrcSeekDataCb):
1010         (webKitMediaSrcSetMediaPlayer):
1011         (webKitMediaSrcSetPlayBin):
1012         (MediaSourceClientGstreamer::MediaSourceClientGstreamer):
1013         (MediaSourceClientGstreamer::~MediaSourceClientGstreamer):
1014         (MediaSourceClientGstreamer::didReceiveDuration):
1015         (MediaSourceClientGstreamer::didReceiveData):
1016         (MediaSourceClientGstreamer::didFinishLoading):
1017         (MediaSourceClientGstreamer::didFail):
1018         * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.h: Added.
1019
1020 2013-11-14  Victor Costan  <costan@gmail.com>
1021
1022         XMLSerializer escapes < > & correctly inside <script> and <style> tags.
1023         https://bugs.webkit.org/show_bug.cgi?id=123914
1024
1025         Reviewed by Darin Adler.
1026
1027         Test: fast/dom/XMLSerializer-entities.html
1028
1029         * editing/MarkupAccumulator.cpp:
1030         (WebCore::MarkupAccumulator::serializeNodesWithNamespaces): vim removed some whitespace.
1031         (WebCore::MarkupAccumulator::entityMaskForText): Fixed the returned value for <script> etc in XML.
1032
1033 2013-11-14  Bem Jones-Bey  <bjonesbe@adobe.com>
1034
1035         ASSERTION FAILED: rangesIntersect(m_renderer.pixelSnappedLogicalTopForFloat(floatingObject), m_renderer.pixelSnappedLogicalBottomForFloat(floatingObject), m_lineTop, m_lineBottom) ../../Source/WebCore/rendering/FloatingObjects.cpp(463)
1036         https://bugs.webkit.org/show_bug.cgi?id=124375
1037
1038         Reviewed by Alexandru Chiculita.
1039
1040         When moving the placed floats tree over to LayoutUnit, I forgot to
1041         update these asserts, which causes issues on ports with subpixel
1042         layout enabled. 
1043
1044         No new tests, no behavior change.
1045
1046         * rendering/FloatingObjects.cpp:
1047         (WebCore::FindNextFloatLogicalBottomAdapter::collectIfNeeded):
1048         (WebCore::::collectIfNeeded):
1049
1050 2013-11-14  Victor Costan  <costan@gmail.com>
1051
1052         Clean up sequence handling in Blob constructor
1053         https://bugs.webkit.org/show_bug.cgi?id=124343
1054
1055         Reviewed by Alexey Proskuryakov.
1056
1057         Added test case to LayoutTests/fast/files/blob-constructor.html
1058
1059         * bindings/js/JSBlobCustom.cpp:
1060         (WebCore::JSBlobConstructor::constructJSBlob):
1061             Handle exceptions in sequences, eliminate double type-checking for
1062             ArrayBuffer, ArrayBufferView and Blob parts.
1063
1064 2013-11-14  Oliver Hunt  <oliver@apple.com>
1065
1066         Make CLoop easier to build, and make it work
1067         https://bugs.webkit.org/show_bug.cgi?id=124359
1068
1069         Reviewed by Geoffrey Garen.
1070
1071         Add cloop configuration info to WebCore FeatureDefines
1072         so that it's consistent with JSC
1073
1074         * Configurations/FeatureDefines.xcconfig:
1075
1076 2013-11-14  Aloisio Almeida Jr  <aloisio.almeida@openbossa.org>
1077
1078         [Cairo] Avoid extra copy when drawing images
1079         https://bugs.webkit.org/show_bug.cgi?id=124209
1080
1081         Reviewed by Martin Robinson.
1082
1083         To solve the bug #58309 a cairo subsurface is being used to limit the
1084         source image boundaries.
1085         In many cases, when a cairo subsurface is used for drawing an image,
1086         it occurs an image copy, causing performance penalty. In the case of
1087         the function PlatformContextCairo::drawSurfaceToContext, the image
1088         copy always happens.
1089         So, we should use the subsurface only when it's really necessary.
1090         In cases where we're drawing the whole image, the subsurface is
1091         unnecessary.
1092
1093         The proposed patch avoid the use of subsurfaces when sampling the whole
1094         image.
1095
1096         No new tests. It's an enhancement. Already covered by existing tests.
1097
1098         * platform/graphics/cairo/PlatformContextCairo.cpp:
1099         (WebCore::PlatformContextCairo::drawSurfaceToContext):
1100
1101 2013-11-14  Alexey Proskuryakov  <ap@apple.com>
1102
1103         Implement raw format for WebCrypto key export
1104         https://bugs.webkit.org/show_bug.cgi?id=124376
1105
1106         Reviewed by Anders Carlsson.
1107
1108         Tests: crypto/subtle/aes-export-key.html
1109                crypto/subtle/hmac-export-key.html
1110
1111         A CryptoKey just exports its native CryptoKeyData, which will also work nicely for
1112         JWK format soon. For spki and pkcs8, we'll need to figure out the best way to
1113         utilize platform library support for ASN.1, but we are not there yet.
1114
1115         * bindings/js/JSSubtleCryptoCustom.cpp:
1116         (WebCore::JSSubtleCrypto::exportKey):
1117         * crypto/CryptoKey.h:
1118         * crypto/SubtleCrypto.idl:
1119         * crypto/keys/CryptoKeyAES.cpp:
1120         (WebCore::CryptoKeyAES::exportData):
1121         * crypto/keys/CryptoKeyAES.h:
1122         * crypto/keys/CryptoKeyHMAC.cpp:
1123         (WebCore::CryptoKeyHMAC::exportData):
1124         * crypto/keys/CryptoKeyHMAC.h:
1125
1126         * crypto/keys/CryptoKeyRSA.h:
1127         * crypto/mac/CryptoKeyRSAMac.cpp:
1128         (WebCore::CryptoKeyRSA::exportData):
1129         Added a dummy implementation for RSA.
1130
1131 2013-11-14  Joseph Pecoraro  <pecoraro@apple.com>
1132
1133         Web Inspector: Simply generated domain dispatch methods for domains with few commands
1134         https://bugs.webkit.org/show_bug.cgi?id=124374
1135
1136         Reviewed by Timothy Hatcher.
1137
1138         * inspector/CodeGeneratorInspector.py:
1139         (Generator.go):
1140         (Generator.process_command):
1141         * inspector/CodeGeneratorInspectorStrings.py:
1142
1143 2013-11-14  Bear Travis  <betravis@adobe.com>
1144
1145         [CSS Shapes] Accept the new <box> value for shape-outside
1146         https://bugs.webkit.org/show_bug.cgi?id=124227
1147
1148         Reviewed by David Hyatt.
1149
1150         The shape-outside property can now be set to the box values [margin/border/padding/content]-box.
1151         This patch adds the parsing code required to accept the new values, and the layout code
1152         to create a rectangle shape that has the size and position of the appropriate box.
1153
1154         Tests: fast/shapes/shape-outside-floats/shape-outside-boxes-001.html
1155                fast/shapes/shape-outside-floats/shape-outside-boxes-002.html
1156                fast/shapes/shape-outside-floats/shape-outside-boxes-003.html
1157
1158         * css/CSSComputedStyleDeclaration.cpp:
1159         (WebCore::ComputedStyleExtractor::propertyValue): Output the new box values.
1160         * css/CSSParser.cpp:
1161         (WebCore::CSSParser::parseValue): Accept the new box values.
1162         * css/CSSValueKeywords.in: Add margin-box value.
1163         * css/DeprecatedStyleBuilder.cpp:
1164         (WebCore::ApplyPropertyShape::applyValue): Accept the new box values.
1165         * rendering/RenderBoxModelObject.h:
1166         (WebCore::RenderBoxModelObject::borderLogicalWidth): Added new utility methods to help
1167         with box sizing.
1168         (WebCore::RenderBoxModelObject::borderLogicalHeight): Ditto.
1169         (WebCore::RenderBoxModelObject::paddingLogicalWidth): Ditto.
1170         (WebCore::RenderBoxModelObject::paddingLogicalHeight): Ditto.
1171         * rendering/shapes/Shape.cpp:
1172         (WebCore::Shape::createShape): You can create a shape from a box's dimensions, rather
1173         than always using a BasicShape or RasterShape value.
1174         * rendering/shapes/Shape.h:
1175         * rendering/shapes/ShapeInfo.cpp:
1176         (WebCore::::computedShape): Create the appropriate shape based on the box values.
1177         * rendering/shapes/ShapeInfo.h:
1178         (WebCore::ShapeInfo::setShapeSize): Adjust for the box size when using a box value.
1179         (WebCore::ShapeInfo::logicalTopOffset): Ditto.
1180         (WebCore::ShapeInfo::logicalLeftOffset): Ditto.
1181         * rendering/shapes/ShapeInsideInfo.cpp:
1182         (WebCore::ShapeInsideInfo::isEnabledFor): Enable for the box values.
1183         * rendering/shapes/ShapeOutsideInfo.cpp:
1184         (WebCore::ShapeOutsideInfo::isEnabledFor): Disable for shape-inside.
1185         * rendering/style/ShapeValue.h:
1186         (WebCore::ShapeValue::createBoxValue): Create the appropriate shape value for a box.
1187         (WebCore::ShapeValue::box): Return the box value for this ShapeValue.
1188         (WebCore::ShapeValue::ShapeValue): Create a ShapeValue from a box value.
1189
1190 2013-11-14  Beth Dakin  <bdakin@apple.com>
1191
1192         Rubber-stamped by Tim Horton.
1193
1194         Post-checkin review comment! StickToViewportBounds sounds better and more accurate 
1195         than StickToWindowBounds.
1196
1197         * platform/ScrollTypes.h:
1198
1199 2013-11-13  Jer Noble  <jer.noble@apple.com>
1200
1201         Unreviewed build failure; update MediaPlayerPrivateAVFFoundationCF::seekToTime after r159208.
1202
1203         After r159208, seekToTime takes tolerance parameters.
1204
1205         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
1206         (WebCore::MediaPlayerPrivateAVFoundationCF::seekToTime):
1207         (WebCore::AVFWrapper::seekToTime):
1208         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
1209
1210 2013-11-14  Beth Dakin  <bdakin@apple.com>
1211
1212         Add a new mode where fixed elements don't constrain their positions during a
1213         rubber band
1214         https://bugs.webkit.org/show_bug.cgi?id=124260
1215
1216         Reviewed by Tim Horton.
1217
1218         This patch adds a new enum called ScrollBehaviorForFixedElements, which has
1219         two values, StickToDocumentBounds or StickToWindowBounds. StickToDocumentBounds 
1220         corresponds to our current behavior, where fixed elements constrain 
1221         their positions during a rubber-band so that they stay stuck to the document.
1222         The new mode, StickToWindowBounds, will cause fixed elements to always stay
1223         fixed relative to the window.
1224
1225         scrollOffsetForFixedPosition() now takes a new parameter for the fixed behavior
1226         so that it knows whether or not to constrain the position.
1227         * page/FrameView.cpp:
1228         (WebCore::FrameView::scrollOffsetForFixedPosition):
1229         
1230         Right now, just return StickToDocumentBounds and retain existing behavior.
1231         (WebCore::FrameView::scrollBehaviorForFixedElements):
1232         * page/FrameView.h:
1233
1234         The scrolling thread needs to know about the fixed element scroll behavior,
1235         so this code makes ScrollingStateScrollingNodes keep track of that 
1236         information to pass over to the scrolling thread.
1237         * page/scrolling/ScrollingStateScrollingNode.cpp:
1238         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
1239         (WebCore::ScrollingStateScrollingNode::setScrollBehaviorForFixedElements):
1240         * page/scrolling/ScrollingStateScrollingNode.h:
1241         * page/scrolling/ScrollingTreeScrollingNode.cpp:
1242         (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
1243         (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
1244         * page/scrolling/ScrollingTreeScrollingNode.h:
1245         (WebCore::ScrollingTreeScrollingNode::scrollBehaviorForFixedElements):
1246         * page/scrolling/mac/ScrollingCoordinatorMac.h:
1247         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
1248         (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
1249         (WebCore::ScrollingCoordinatorMac::setScrollBehaviorForFixedElementsForNode):
1250         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
1251         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
1252         
1253         Here is the new enum.
1254         * platform/ScrollTypes.h:
1255         
1256         Another place where we only want to constrain scroll position if that is the
1257         mode we are in.
1258         * rendering/RenderLayerCompositor.cpp:
1259         (WebCore::RenderLayerCompositor::customPositionForVisibleRectComputation):
1260
1261 2013-11-14  Alexey Proskuryakov  <ap@apple.com>
1262
1263         [Mac] HMAC sign/verify crashes when key is empty
1264         https://bugs.webkit.org/show_bug.cgi?id=124372
1265
1266         Reviewed by Sam Weinig.
1267
1268         Test: crypto/subtle/hmac-sign-verify-empty-key.html
1269
1270         * crypto/mac/CryptoAlgorithmHMACMac.cpp: (WebCore::calculateSignature): Give it
1271         a non-null pointer then.
1272
1273 2013-11-14  Alexey Proskuryakov  <ap@apple.com>
1274
1275         Implement RSASSA-PKCS1-v1_5 sign/verify
1276         https://bugs.webkit.org/show_bug.cgi?id=124335
1277
1278         Build fix.
1279
1280         * crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
1281
1282 2013-11-14  Samuel White  <samuel_white@apple.com>
1283
1284         AX: Calling NSAccessibilityColumnsAttribute and NSAccessibilityRowsAttribute simply to get column/row count can be very expensive.
1285         https://bugs.webkit.org/show_bug.cgi?id=124293
1286
1287         Reviewed by Chris Fleizach.
1288
1289         Added ability to get accessibility table column or row count without fetching all columns or rows.
1290
1291         Test: platform/mac/accessibility/table-column-and-row-count.html
1292
1293         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
1294         (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
1295         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
1296
1297 2013-11-14  Alexey Proskuryakov  <ap@apple.com>
1298
1299         Implement RSASSA-PKCS1-v1_5 sign/verify
1300         https://bugs.webkit.org/show_bug.cgi?id=124335
1301
1302         Reviewed by Sam Weinig.
1303
1304         Test: crypto/subtle/rsassa-pkcs1-v1_5-sign-verify.html
1305
1306         * WebCore.xcodeproj/project.pbxproj: Added new files, removed Mac SHA algorithm files.
1307
1308         * crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
1309         (WebCore::getCommonCryptoDigestAlgorithm):
1310         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
1311         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
1312         Implemented. These take two steps, first a digest is computed, and then it's signed.
1313
1314         * crypto/CryptoDigest.h: Added.
1315         * crypto/mac/CryptoDigestMac.cpp: Added.
1316         (WebCore::CryptoDigest::CryptoDigest):
1317         (WebCore::CryptoDigest::~CryptoDigest):
1318         (WebCore::CryptoDigest::create):
1319         (WebCore::CryptoDigest::addBytes):
1320         (WebCore::CryptoDigest::computeHash):
1321         Added a cross-platform interface and Mac implementation to compute a digest. It
1322         should be possible to use it outside WebCrypto if we need to (perhaps even merge
1323         with  WTF SHA-1 class).
1324         The Mac implementation is kind of ugly, but at least it encapsulates the ugliness.
1325
1326         * crypto/algorithms/CryptoAlgorithmSHA1.cpp: (WebCore::CryptoAlgorithmSHA1::digest):
1327         * crypto/algorithms/CryptoAlgorithmSHA224.cpp: (WebCore::CryptoAlgorithmSHA224::digest):
1328         * crypto/algorithms/CryptoAlgorithmSHA256.cpp: (WebCore::CryptoAlgorithmSHA256::digest):
1329         * crypto/algorithms/CryptoAlgorithmSHA384.cpp: (WebCore::CryptoAlgorithmSHA384::digest):
1330         * crypto/algorithms/CryptoAlgorithmSHA512.cpp: (WebCore::CryptoAlgorithmSHA512::digest):
1331         * crypto/mac/CryptoAlgorithmSHA1Mac.cpp: Removed.
1332         * crypto/mac/CryptoAlgorithmSHA224Mac.cpp: Removed.
1333         * crypto/mac/CryptoAlgorithmSHA256Mac.cpp: Removed.
1334         * crypto/mac/CryptoAlgorithmSHA384Mac.cpp: Removed.
1335         * crypto/mac/CryptoAlgorithmSHA512Mac.cpp: Removed.
1336         These are all cross-platform now.
1337
1338 2013-11-14  Hans Muller  <hmuller@adobe.com>
1339
1340         [CSS Shapes] Empty polygons with non-zero shape-padding cause an ASSERT crash
1341         https://bugs.webkit.org/show_bug.cgi?id=124324
1342
1343         Reviewed by Andreas Kling.
1344
1345         PolygonShape::shapePaddingBounds() and PolygonShape::shapeMarginBounds() no
1346         longer attempt to compute a new FloatPolygon when the original is empty, i.e.
1347         when it has less than three vertices.
1348
1349         Tests: fast/shapes/shape-inside/shape-inside-empty-polygon-crash.html
1350                fast/shapes/shape-outside-floats/shape-outside-floats-empty-polygon-crash.html
1351
1352         * rendering/shapes/PolygonShape.cpp:
1353         (WebCore::PolygonShape::shapePaddingBounds): Don't compute a padding FloatPolygon if the original polygon is empty.
1354         (WebCore::PolygonShape::shapeMarginBounds): Don't compute a margin FloatPolygon if the original polygon is empty.
1355
1356 2013-11-14  Joseph Pecoraro  <pecoraro@apple.com>
1357
1358         Web Inspector: Cleaner Backend Method Calling Code Generation
1359         https://bugs.webkit.org/show_bug.cgi?id=124333
1360
1361         Reviewed by Timothy Hatcher.
1362
1363         No change in functionality, just improved generated code.
1364
1365         * inspector/CodeGeneratorInspector.py:
1366         (Generator.process_command):
1367         * inspector/CodeGeneratorInspectorStrings.py:
1368         * inspector/InspectorBackendDispatcher.cpp:
1369         * inspector/InspectorBackendDispatcher.h:
1370
1371 2013-11-14  Seokju Kwon  <seokju@webkit.org>
1372
1373         Use [ImplementedAs=defaultStatus] for Window.defaultstatus
1374         https://bugs.webkit.org/show_bug.cgi?id=124334
1375
1376         Reviewed by Christophe Dumez.
1377
1378         No new tests, this is just refactoring.
1379
1380         Use [ImplementedAs=defaultStatus] for Window.defaultstatus
1381         and remove unnecessary code from DOMWindow.
1382         Because 'defaultstatus' is an alias of defaultStatus.
1383
1384         * page/DOMWindow.h:
1385         * page/DOMWindow.idl:
1386
1387 2013-11-14  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1388
1389         Generate toSVGPolyline|gonElement() to replace static_cast<>
1390         https://bugs.webkit.org/show_bug.cgi?id=124341
1391
1392         Reviewed by Andreas Kling.
1393
1394         toSVGFoo() supports more plenty helper functions. So, toSVGFoo() needs
1395         to be used instead of static_cast<>.
1396
1397         Additionally, cleanup other static_cast<> as well.
1398
1399         No new tests, no behavior changes.
1400
1401         * rendering/svg/SVGPathData.cpp:
1402         (WebCore::updatePathFromEllipseElement):
1403         (WebCore::updatePathFromLineElement):
1404         (WebCore::updatePathFromPolygonElement):
1405         (WebCore::updatePathFromPolylineElement):
1406         * svg/SVGPolygonElement.h:
1407         * svg/SVGPolylineElement.h:
1408         * svg/svgtags.in: Add *generateTypeHelpers* keyword to polygon, polyline
1409
1410 2013-11-14  Andreas Kling  <akling@apple.com>
1411
1412         FontDescription copies should share families list, not duplicate it.
1413         <https://webkit.org/b/124338>
1414
1415         Turn FontDescription::m_families into a RefCountedArray<AtomicString>
1416         instead of a Vector<AtomicString, 1>. This allows FontDescription to
1417         share the families list between copies, instead of each object having
1418         its own Vector.
1419
1420         Also, FontDescription itself shrinks by 16 bytes.
1421
1422         Reviewed by Antti Koivisto.
1423
1424 2013-11-14  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1425
1426         Introduce FILTER_TYPE_CASTS for child filter class
1427         https://bugs.webkit.org/show_bug.cgi?id=124332
1428
1429         Reviewed by Andreas Kling.
1430
1431         To use TYPE_CASTS_BASE, define FILTER_TYPE_CASTS macro. Thanks to 
1432         it, static_cast<SVGFilter*> can be replaced by toSVGFilter().
1433
1434         No new tests, no behavior changes.
1435
1436         * platform/graphics/filters/Filter.h:
1437             Add isSVGFilter() to check if casting object is SVGFilter object.
1438         (WebCore::Filter::isSVGFilter):
1439         * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
1440         (WebCore::RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion):
1441         * svg/graphics/filters/SVGFEImage.cpp:
1442         (WebCore::FEImage::determineAbsolutePaintRect):
1443         (WebCore::FEImage::platformApplySoftware):
1444         * svg/graphics/filters/SVGFilter.h:
1445
1446 2013-11-13  Victor Costan  <costan@gmail.com>
1447
1448         Blob constructor accepts a sequence (array-like object) as first arg. 
1449         https://bugs.webkit.org/show_bug.cgi?id=124175
1450
1451         Reviewed by Christophe Dumez.
1452
1453         Added test cases to fast/files/script-tests/blob-constructor.js.
1454
1455         * bindings/js/JSBlobCustom.cpp: Make the constructor work with sequences.
1456         (WebCore::JSBlobConstructor::constructJSBlob):
1457         * bindings/js/JSDOMBinding.h:
1458         (WebCore::toJSSequence): Slightly better error message when conversion fails.
1459         (WebCore::toJS): Whitespace.
1460         (WebCore::jsArray): Whitespace.
1461
1462 2013-11-13  Joseph Pecoraro  <pecoraro@apple.com>
1463
1464         Web Inspector: InspectorBackendDispatcher improvements
1465         https://bugs.webkit.org/show_bug.cgi?id=124330
1466
1467         Reviewed by Timothy Hatcher.
1468
1469         * inspector/InspectorBackendDispatcher.cpp:
1470         (WebCore::InspectorBackendDispatcher::sendResponse):
1471         (WebCore::InspectorBackendDispatcher::reportProtocolError):
1472         * inspector/InspectorBackendDispatcher.h:
1473         (WebCore::InspectorSupplementalBackendDispatcher::InspectorSupplementalBackendDispatcher):
1474
1475 2013-11-13  Joseph Pecoraro  <pecoraro@apple.com>
1476
1477         Unreviewed Windows Build Fix after r159268.
1478
1479         Missed adding InspectorBackendDispatcher.h and cpp to the Windows build.
1480
1481         * WebCore.vcxproj/WebCore.vcxproj:
1482         * WebCore.vcxproj/WebCore.vcxproj.filters:
1483
1484 2013-11-13  Joseph Pecoraro  <pecoraro@apple.com>
1485
1486         Web Inspector: Generate Individual InspectorBackendDispatchers, add base InspectorBackendDispatcher
1487         https://bugs.webkit.org/show_bug.cgi?id=124296
1488
1489         Reviewed by Timothy Hatcher.
1490
1491         No new tests, this is just refactoring without changing functionality.
1492         Set of changes made:
1493
1494           - Add inspector/InspectorBackendDispatcher.{h,cpp}. This used to be almost entirely
1495             written in the code generator strings file, but make it actual source files
1496             because there is nothing changing in the code. Also clean this up a bit.
1497           - Give the base dispatcher a list of domain dispatchers and a way to register.
1498           - Make InspectorBackendDispatcher::dispatch read the domain of incoming request
1499             and pass the request on to the domain dispatcher.
1500           - Create per-domain dispatcher classes named "InspectorFooBackendDispatcher"
1501           - Convert "InspectorBackendDispatcher::FooCommandHandler" interfaces to
1502             "InspectorFooBackendDispatcherHandler" interfaces.
1503           - Convert all "InspectorBackendDispatcherImpl::FooDomain_fooMethod" methods to
1504             "InspectorFooBackendDispatcher::fooMethod" methods. These can also remove their
1505             "if (!agent)" checks because that can never be the case anymore.
1506           - Remove InspectorBackendDispatcherImpl, now that there are base and domain dispatchers.
1507           - Add ASCIILiteral in many places in generated code where possible.
1508           - In all agents, create dispatchers in didCreateFrontendAndBackend and clear
1509             them in willDestroyFrontendAndBackend, right alongside frontend dispatchers.
1510
1511         * inspector/CodeGeneratorInspector.py:
1512         (DomainNameFixes.get_fixed_data.Res):
1513         (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator.generate_type_builder):
1514         (Generator):
1515         (Generator.go):
1516         (Generator.process_command):
1517         (Generator.generate_send_method):
1518         * inspector/CodeGeneratorInspectorStrings.py:
1519         (void):
1520         (HashMap):
1521         (InspectorBackendDispatchers_h):
1522         * inspector/InspectorAgent.cpp:
1523         (WebCore::InspectorAgent::didCreateFrontendAndBackend):
1524         (WebCore::InspectorAgent::willDestroyFrontendAndBackend):
1525         * inspector/InspectorAgent.h:
1526         * inspector/InspectorAllInOne.cpp:
1527         * inspector/InspectorApplicationCacheAgent.cpp:
1528         (WebCore::InspectorApplicationCacheAgent::didCreateFrontendAndBackend):
1529         (WebCore::InspectorApplicationCacheAgent::willDestroyFrontendAndBackend):
1530         * inspector/InspectorApplicationCacheAgent.h:
1531         * inspector/InspectorBackendDispatcher.cpp: Added.
1532         (WebCore::InspectorBackendDispatcher::CallbackBase::CallbackBase):
1533         (WebCore::InspectorBackendDispatcher::CallbackBase::isActive):
1534         (WebCore::InspectorBackendDispatcher::CallbackBase::sendFailure):
1535         (WebCore::InspectorBackendDispatcher::CallbackBase::sendIfActive):
1536         (WebCore::InspectorBackendDispatcher::create):
1537         (WebCore::InspectorBackendDispatcher::registerDispatcherForDomain):
1538         (WebCore::InspectorBackendDispatcher::dispatch):
1539         (WebCore::InspectorBackendDispatcher::sendResponse):
1540         (WebCore::InspectorBackendDispatcher::reportProtocolError):
1541         (WebCore::InspectorBackendDispatcher::getPropertyValue):
1542         (WebCore::AsMethodBridges::asInt):
1543         (WebCore::AsMethodBridges::asDouble):
1544         (WebCore::AsMethodBridges::asString):
1545         (WebCore::AsMethodBridges::asBoolean):
1546         (WebCore::AsMethodBridges::asObject):
1547         (WebCore::AsMethodBridges::asArray):
1548         (WebCore::InspectorBackendDispatcher::getInt):
1549         (WebCore::InspectorBackendDispatcher::getDouble):
1550         (WebCore::InspectorBackendDispatcher::getString):
1551         (WebCore::InspectorBackendDispatcher::getBoolean):
1552         (WebCore::InspectorBackendDispatcher::getObject):
1553         (WebCore::InspectorBackendDispatcher::getArray):
1554         * inspector/InspectorBackendDispatcher.h: Added.
1555         (WebCore::InspectorSupplementalBackendDispatcher::InspectorSupplementalBackendDispatcher):
1556         (WebCore::InspectorSupplementalBackendDispatcher::~InspectorSupplementalBackendDispatcher):
1557         (WebCore::InspectorBackendDispatcher::~InspectorBackendDispatcher):
1558         (WebCore::InspectorBackendDispatcher::clearFrontend):
1559         (WebCore::InspectorBackendDispatcher::isActive):
1560         (WebCore::InspectorBackendDispatcher::InspectorBackendDispatcher):
1561         * inspector/InspectorCSSAgent.cpp:
1562         (WebCore::InspectorCSSAgent::didCreateFrontendAndBackend):
1563         (WebCore::InspectorCSSAgent::willDestroyFrontendAndBackend):
1564         * inspector/InspectorCSSAgent.h:
1565         * inspector/InspectorCanvasAgent.cpp:
1566         (WebCore::InspectorCanvasAgent::didCreateFrontendAndBackend):
1567         (WebCore::InspectorCanvasAgent::willDestroyFrontendAndBackend):
1568         * inspector/InspectorCanvasAgent.h:
1569         * inspector/InspectorConsoleAgent.cpp:
1570         (WebCore::InspectorConsoleAgent::didCreateFrontendAndBackend):
1571         (WebCore::InspectorConsoleAgent::willDestroyFrontendAndBackend):
1572         * inspector/InspectorConsoleAgent.h:
1573         * inspector/InspectorDOMAgent.cpp:
1574         (WebCore::InspectorDOMAgent::didCreateFrontendAndBackend):
1575         (WebCore::InspectorDOMAgent::willDestroyFrontendAndBackend):
1576         * inspector/InspectorDOMAgent.h:
1577         * inspector/InspectorDOMDebuggerAgent.cpp:
1578         (WebCore::InspectorDOMDebuggerAgent::didCreateFrontendAndBackend):
1579         (WebCore::InspectorDOMDebuggerAgent::willDestroyFrontendAndBackend):
1580         * inspector/InspectorDOMDebuggerAgent.h:
1581         * inspector/InspectorDOMStorageAgent.cpp:
1582         (WebCore::InspectorDOMStorageAgent::didCreateFrontendAndBackend):
1583         (WebCore::InspectorDOMStorageAgent::willDestroyFrontendAndBackend):
1584         * inspector/InspectorDOMStorageAgent.h:
1585         * inspector/InspectorDatabaseAgent.cpp:
1586         (WebCore::InspectorDatabaseAgent::didCreateFrontendAndBackend):
1587         (WebCore::InspectorDatabaseAgent::willDestroyFrontendAndBackend):
1588         * inspector/InspectorDatabaseAgent.h:
1589         * inspector/InspectorDebuggerAgent.cpp:
1590         (WebCore::InspectorDebuggerAgent::didCreateFrontendAndBackend):
1591         (WebCore::InspectorDebuggerAgent::willDestroyFrontendAndBackend):
1592         * inspector/InspectorDebuggerAgent.h:
1593         * inspector/InspectorHeapProfilerAgent.cpp:
1594         (WebCore::InspectorHeapProfilerAgent::didCreateFrontendAndBackend):
1595         (WebCore::InspectorHeapProfilerAgent::willDestroyFrontendAndBackend):
1596         * inspector/InspectorHeapProfilerAgent.h:
1597         * inspector/InspectorIndexedDBAgent.cpp:
1598         (WebCore::InspectorIndexedDBAgent::didCreateFrontendAndBackend):
1599         (WebCore::InspectorIndexedDBAgent::willDestroyFrontendAndBackend):
1600         * inspector/InspectorIndexedDBAgent.h:
1601         * inspector/InspectorInputAgent.cpp:
1602         (WebCore::InspectorInputAgent::didCreateFrontendAndBackend):
1603         (WebCore::InspectorInputAgent::willDestroyFrontendAndBackend):
1604         * inspector/InspectorInputAgent.h:
1605         * inspector/InspectorLayerTreeAgent.cpp:
1606         (WebCore::InspectorLayerTreeAgent::didCreateFrontendAndBackend):
1607         (WebCore::InspectorLayerTreeAgent::willDestroyFrontendAndBackend):
1608         * inspector/InspectorLayerTreeAgent.h:
1609         * inspector/InspectorMemoryAgent.cpp:
1610         (WebCore::InspectorMemoryAgent::didCreateFrontendAndBackend):
1611         (WebCore::InspectorMemoryAgent::willDestroyFrontendAndBackend):
1612         * inspector/InspectorMemoryAgent.h:
1613         * inspector/InspectorPageAgent.cpp:
1614         (WebCore::InspectorPageAgent::didCreateFrontendAndBackend):
1615         (WebCore::InspectorPageAgent::willDestroyFrontendAndBackend):
1616         (WebCore::InspectorPageAgent::getScriptExecutionStatus):
1617         * inspector/InspectorPageAgent.h:
1618         * inspector/InspectorProfilerAgent.cpp:
1619         (WebCore::InspectorProfilerAgent::didCreateFrontendAndBackend):
1620         (WebCore::InspectorProfilerAgent::willDestroyFrontendAndBackend):
1621         * inspector/InspectorProfilerAgent.h:
1622         * inspector/InspectorResourceAgent.cpp:
1623         (WebCore::InspectorResourceAgent::didCreateFrontendAndBackend):
1624         (WebCore::InspectorResourceAgent::willDestroyFrontendAndBackend):
1625         * inspector/InspectorResourceAgent.h:
1626         * inspector/InspectorRuntimeAgent.h:
1627         * inspector/InspectorTimelineAgent.cpp:
1628         (WebCore::InspectorTimelineAgent::didCreateFrontendAndBackend):
1629         (WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
1630         * inspector/InspectorTimelineAgent.h:
1631         * inspector/InspectorWorkerAgent.cpp:
1632         (WebCore::InspectorWorkerAgent::didCreateFrontendAndBackend):
1633         (WebCore::InspectorWorkerAgent::willDestroyFrontendAndBackend):
1634         * inspector/InspectorWorkerAgent.h:
1635         * inspector/PageRuntimeAgent.cpp:
1636         (WebCore::PageRuntimeAgent::didCreateFrontendAndBackend):
1637         (WebCore::PageRuntimeAgent::willDestroyFrontendAndBackend):
1638         * inspector/PageRuntimeAgent.h:
1639         * inspector/WorkerRuntimeAgent.cpp:
1640         (WebCore::WorkerRuntimeAgent::didCreateFrontendAndBackend):
1641         (WebCore::WorkerRuntimeAgent::willDestroyFrontendAndBackend):
1642         * inspector/WorkerRuntimeAgent.h:
1643
1644 2013-11-13  Andy Estes  <aestes@apple.com>
1645
1646         Use NSCalendarIdentifierGregorian instead of NSGregorianCalendar on OS X 10.9 and iOS
1647         https://bugs.webkit.org/show_bug.cgi?id=124323
1648
1649         Reviewed by Mark Rowe.
1650
1651         NSGregorianCalendar was deprecated in OS X 10.9 and iOS 7.
1652
1653         * platform/text/mac/LocaleMac.mm:
1654         (WebCore::LocaleMac::LocaleMac):
1655
1656 2013-11-13  Joseph Pecoraro  <pecoraro@apple.com>
1657
1658         Web Inspector: Rename InspectorBackendDispatcher.h to InspectorBackendDispatchers.h
1659         https://bugs.webkit.org/show_bug.cgi?id=124257
1660
1661         Reviewed by Timothy Hatcher.
1662
1663         Soon each domain will generate its own dispatcher, and the generic
1664         InspectorBackendDispatcher will no longer be generated, it will just
1665         live in WebCore/inspector.
1666
1667         * CMakeLists.txt:
1668         * GNUmakefile.am:
1669         * GNUmakefile.list.am:
1670         * WebCore.vcxproj/WebCore.vcxproj:
1671         * WebCore.vcxproj/WebCore.vcxproj.filters:
1672         * WebCore.xcodeproj/project.pbxproj:
1673         * inspector/CodeGeneratorInspector.py:
1674         * inspector/CodeGeneratorInspectorStrings.py:
1675         (InspectorBackendDispatchers_h):
1676         * inspector/InspectorBaseAgent.h:
1677         * inspector/InspectorController.cpp:
1678         * inspector/InspectorFrontendClientLocal.cpp:
1679         * inspector/WorkerInspectorController.cpp:
1680
1681 2013-11-13  Andreas Kling  <akling@apple.com>
1682
1683         Remove Document::m_savedRenderView pointer.
1684         <https://webkit.org/b/124310>
1685
1686         This pointer held a copy of m_renderView while the document was in
1687         page cache, and null while it wasn't. It was not used for anything.
1688
1689         Reviewed by Anders Carlsson.
1690
1691 2013-11-13  Brady Eidson  <beidson@apple.com>
1692
1693         Move setIndexKeys() to the IDBServerConnection
1694         https://bugs.webkit.org/show_bug.cgi?id=124301
1695
1696         Reviewed by Anders Carlsson.
1697
1698         This is a big step towards moving knowledge of the backing store out of the frontend.
1699
1700         * Modules/indexeddb/IDBBackingStoreInterface.h:
1701
1702         * Modules/indexeddb/IDBDatabaseBackend.cpp:
1703         (WebCore::IDBDatabaseBackend::setIndexKeys):
1704
1705         * Modules/indexeddb/IDBServerConnection.h:
1706         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
1707         (WebCore::IDBServerConnectionLevelDB::setIndexKeys):
1708         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
1709
1710         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
1711         (WebCore::PutOperation::perform):
1712
1713         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
1714         (WebCore::IDBBackingStoreLevelDB::makeIndexWriters):
1715         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
1716
1717 2013-11-13  Joseph Pecoraro  <pecoraro@apple.com>
1718
1719         Web Inspector: Extract InspectorFrontendDispatchers from InspectorFrontend
1720         https://bugs.webkit.org/show_bug.cgi?id=124246
1721
1722         Reviewed by Timothy Hatcher.
1723
1724         No new tests, this is just refactoring without changing functionality.
1725         Set of changes made:
1726
1727           - Remove "class InspectorFrontend" that currently does nothing but hold
1728             sub-frontend dispatcher classes. Catches some stale code.
1729           - Generate individual "class InspectorFooFrontendDispatcher" classes for
1730             domains that have events. Catches some unnecessary classes.
1731           - Simplify the Base Agent interface from optional set/clearFrontend/register
1732             to required didCreateFrontendAndBackend/willDestroyFrontendAndBackend.
1733             New agents must implement this and this will be their cue to setup
1734             frontend and backend dispatchers.
1735           - Base Agent no longer needs to be templated or have an Interface class.
1736           - While we are changing subclass BaseAgent superclass calls, use ASCIILiteral
1737           - In agents with events, convert "InspectorFrontend::Foo* m_frontend" to
1738             "unique_ptr<InspectorFooFrontendDispatcher> m_frontendDispatcher" and
1739             update uses as appropriate within the classes.
1740           - In agents with events, create dispatchers in didCreateFrontendAndBackend
1741             and clear them in willDestroyFrontendAndBackend.
1742
1743         * inspector/CodeGeneratorInspector.py:
1744         (Generator):
1745         (Generator.go):
1746         (Generator.process_event):
1747         * inspector/CodeGeneratorInspectorStrings.py:
1748         (InspectorFrontendChannel):
1749         * inspector/ConsoleMessage.cpp:
1750         (WebCore::ConsoleMessage::addToFrontend):
1751         (WebCore::ConsoleMessage::updateRepeatCountInConsole):
1752         * inspector/ConsoleMessage.h:
1753         * inspector/InjectedScriptHost.h:
1754         * inspector/InspectorAgent.cpp:
1755         (WebCore::InspectorAgent::InspectorAgent):
1756         (WebCore::InspectorAgent::didCreateFrontendAndBackend):
1757         (WebCore::InspectorAgent::willDestroyFrontendAndBackend):
1758         (WebCore::InspectorAgent::enable):
1759         (WebCore::InspectorAgent::evaluateForTestInFrontend):
1760         (WebCore::InspectorAgent::inspect):
1761         * inspector/InspectorAgent.h:
1762         (WebCore::InspectorAgent::hasFrontend):
1763         * inspector/InspectorAgentRegistry.cpp:
1764         (WebCore::InspectorAgentRegistry::append):
1765         (WebCore::InspectorAgentRegistry::didCreateFrontendAndBackend):
1766         (WebCore::InspectorAgentRegistry::willDestroyFrontendAndBackend):
1767         * inspector/InspectorAgentRegistry.h:
1768         * inspector/InspectorApplicationCacheAgent.cpp:
1769         (WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent):
1770         (WebCore::InspectorApplicationCacheAgent::didCreateFrontendAndBackend):
1771         (WebCore::InspectorApplicationCacheAgent::willDestroyFrontendAndBackend):
1772         (WebCore::InspectorApplicationCacheAgent::updateApplicationCacheStatus):
1773         (WebCore::InspectorApplicationCacheAgent::networkStateChanged):
1774         * inspector/InspectorApplicationCacheAgent.h:
1775         * inspector/InspectorBaseAgent.h:
1776         (WebCore::InspectorBaseAgent::discardAgent):
1777         (WebCore::InspectorBaseAgent::InspectorBaseAgent):
1778         * inspector/InspectorCSSAgent.cpp:
1779         (WebCore::InspectorCSSAgent::InspectorCSSAgent):
1780         (WebCore::InspectorCSSAgent::didCreateFrontendAndBackend):
1781         (WebCore::InspectorCSSAgent::willDestroyFrontendAndBackend):
1782         (WebCore::InspectorCSSAgent::mediaQueryResultChanged):
1783         (WebCore::InspectorCSSAgent::didCreateNamedFlow):
1784         (WebCore::InspectorCSSAgent::willRemoveNamedFlow):
1785         (WebCore::InspectorCSSAgent::regionLayoutUpdated):
1786         (WebCore::InspectorCSSAgent::regionOversetChanged):
1787         (WebCore::InspectorCSSAgent::didRegisterNamedFlowContentElement):
1788         (WebCore::InspectorCSSAgent::didUnregisterNamedFlowContentElement):
1789         (WebCore::InspectorCSSAgent::stopSelectorProfilerImpl):
1790         (WebCore::InspectorCSSAgent::styleSheetChanged):
1791         * inspector/InspectorCSSAgent.h:
1792         * inspector/InspectorCanvasAgent.cpp:
1793         (WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
1794         (WebCore::InspectorCanvasAgent::didCreateFrontendAndBackend):
1795         (WebCore::InspectorCanvasAgent::willDestroyFrontendAndBackend):
1796         (WebCore::InspectorCanvasAgent::notifyRenderingContextWasWrapped):
1797         (WebCore::InspectorCanvasAgent::findFramesWithUninstrumentedCanvases):
1798         (WebCore::InspectorCanvasAgent::frameNavigated):
1799         * inspector/InspectorCanvasAgent.h:
1800         * inspector/InspectorConsoleAgent.cpp:
1801         (WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
1802         (WebCore::InspectorConsoleAgent::enable):
1803         (WebCore::InspectorConsoleAgent::clearMessages):
1804         (WebCore::InspectorConsoleAgent::didCreateFrontendAndBackend):
1805         (WebCore::InspectorConsoleAgent::willDestroyFrontendAndBackend):
1806         (WebCore::InspectorConsoleAgent::addMessageToConsole):
1807         (WebCore::InspectorConsoleAgent::didFinishXHRLoading):
1808         (WebCore::InspectorConsoleAgent::addConsoleMessage):
1809         * inspector/InspectorConsoleAgent.h:
1810         * inspector/InspectorController.cpp:
1811         (WebCore::InspectorController::InspectorController):
1812         (WebCore::InspectorController::connectFrontend):
1813         (WebCore::InspectorController::disconnectFrontend):
1814         (WebCore::InspectorController::show):
1815         (WebCore::InspectorController::close):
1816         * inspector/InspectorController.h:
1817         (WebCore::InspectorController::hasFrontend):
1818         * inspector/InspectorDOMAgent.cpp:
1819         (WebCore::InspectorDOMAgent::InspectorDOMAgent):
1820         (WebCore::InspectorDOMAgent::didCreateFrontendAndBackend):
1821         (WebCore::InspectorDOMAgent::willDestroyFrontendAndBackend):
1822         (WebCore::InspectorDOMAgent::setDocument):
1823         (WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
1824         (WebCore::InspectorDOMAgent::pushNodePathToFrontend):
1825         (WebCore::InspectorDOMAgent::focusNode):
1826         (WebCore::InspectorDOMAgent::mainFrameDOMContentLoaded):
1827         (WebCore::InspectorDOMAgent::didCommitLoad):
1828         (WebCore::InspectorDOMAgent::didInsertDOMNode):
1829         (WebCore::InspectorDOMAgent::didRemoveDOMNode):
1830         (WebCore::InspectorDOMAgent::didModifyDOMAttr):
1831         (WebCore::InspectorDOMAgent::didRemoveDOMAttr):
1832         (WebCore::InspectorDOMAgent::styleAttributeInvalidated):
1833         (WebCore::InspectorDOMAgent::characterDataModified):
1834         (WebCore::InspectorDOMAgent::didPushShadowRoot):
1835         (WebCore::InspectorDOMAgent::willPopShadowRoot):
1836         * inspector/InspectorDOMAgent.h:
1837         * inspector/InspectorDOMDebuggerAgent.cpp:
1838         (WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
1839         (WebCore::InspectorDOMDebuggerAgent::didCreateFrontendAndBackend):
1840         (WebCore::InspectorDOMDebuggerAgent::willDestroyFrontendAndBackend):
1841         (WebCore::InspectorDOMDebuggerAgent::didInvalidateStyleAttr):
1842         (WebCore::InspectorDOMDebuggerAgent::willInsertDOMNode):
1843         (WebCore::InspectorDOMDebuggerAgent::willRemoveDOMNode):
1844         (WebCore::InspectorDOMDebuggerAgent::willModifyDOMAttr):
1845         (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
1846         (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
1847         * inspector/InspectorDOMDebuggerAgent.h:
1848         * inspector/InspectorDOMStorageAgent.cpp:
1849         (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
1850         (WebCore::InspectorDOMStorageAgent::didCreateFrontendAndBackend):
1851         (WebCore::InspectorDOMStorageAgent::willDestroyFrontendAndBackend):
1852         (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
1853         * inspector/InspectorDOMStorageAgent.h:
1854         * inspector/InspectorDatabaseAgent.cpp:
1855         (WebCore::InspectorDatabaseAgent::didOpenDatabase):
1856         (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
1857         (WebCore::InspectorDatabaseAgent::didCreateFrontendAndBackend):
1858         (WebCore::InspectorDatabaseAgent::willDestroyFrontendAndBackend):
1859         (WebCore::InspectorDatabaseAgent::enable):
1860         * inspector/InspectorDatabaseAgent.h:
1861         * inspector/InspectorDatabaseResource.cpp:
1862         (WebCore::InspectorDatabaseResource::bind):
1863         * inspector/InspectorDatabaseResource.h:
1864         * inspector/InspectorDebuggerAgent.cpp:
1865         (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
1866         (WebCore::InspectorDebuggerAgent::enable):
1867         (WebCore::InspectorDebuggerAgent::didCreateFrontendAndBackend):
1868         (WebCore::InspectorDebuggerAgent::willDestroyFrontendAndBackend):
1869         (WebCore::InspectorDebuggerAgent::addMessageToConsole):
1870         (WebCore::InspectorDebuggerAgent::schedulePauseOnNextStatement):
1871         (WebCore::InspectorDebuggerAgent::scriptExecutionBlockedByCSP):
1872         (WebCore::InspectorDebuggerAgent::didParseSource):
1873         (WebCore::InspectorDebuggerAgent::failedToParseSource):
1874         (WebCore::InspectorDebuggerAgent::didPause):
1875         (WebCore::InspectorDebuggerAgent::didContinue):
1876         (WebCore::InspectorDebuggerAgent::breakProgram):
1877         (WebCore::InspectorDebuggerAgent::clearBreakDetails):
1878         (WebCore::InspectorDebuggerAgent::reset):
1879         * inspector/InspectorDebuggerAgent.h:
1880         * inspector/InspectorHeapProfilerAgent.cpp:
1881         (WebCore::InspectorHeapProfilerAgent::InspectorHeapProfilerAgent):
1882         (WebCore::InspectorHeapProfilerAgent::resetFrontendProfiles):
1883         (WebCore::InspectorHeapProfilerAgent::didCreateFrontendAndBackend):
1884         (WebCore::InspectorHeapProfilerAgent::willDestroyFrontendAndBackend):
1885         (WebCore::InspectorHeapProfilerAgent::getHeapSnapshot):
1886         (WebCore::InspectorHeapProfilerAgent::takeHeapSnapshot):
1887         * inspector/InspectorHeapProfilerAgent.h:
1888         * inspector/InspectorIndexedDBAgent.cpp:
1889         (WebCore::InspectorIndexedDBAgent::InspectorIndexedDBAgent):
1890         (WebCore::InspectorIndexedDBAgent::didCreateFrontendAndBackend):
1891         (WebCore::InspectorIndexedDBAgent::willDestroyFrontendAndBackend):
1892         * inspector/InspectorIndexedDBAgent.h:
1893         * inspector/InspectorInputAgent.cpp:
1894         (WebCore::InspectorInputAgent::InspectorInputAgent):
1895         (WebCore::InspectorInputAgent::didCreateFrontendAndBackend):
1896         (WebCore::InspectorInputAgent::willDestroyFrontendAndBackend):
1897         * inspector/InspectorInputAgent.h:
1898         * inspector/InspectorLayerTreeAgent.cpp:
1899         (WebCore::InspectorLayerTreeAgent::InspectorLayerTreeAgent):
1900         (WebCore::InspectorLayerTreeAgent::didCreateFrontendAndBackend):
1901         (WebCore::InspectorLayerTreeAgent::willDestroyFrontendAndBackend):
1902         (WebCore::InspectorLayerTreeAgent::layerTreeDidChange):
1903         * inspector/InspectorLayerTreeAgent.h:
1904         * inspector/InspectorMemoryAgent.cpp:
1905         (WebCore::InspectorMemoryAgent::didCreateFrontendAndBackend):
1906         (WebCore::InspectorMemoryAgent::willDestroyFrontendAndBackend):
1907         (WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
1908         * inspector/InspectorMemoryAgent.h:
1909         * inspector/InspectorPageAgent.cpp:
1910         (WebCore::InspectorPageAgent::InspectorPageAgent):
1911         (WebCore::InspectorPageAgent::didCreateFrontendAndBackend):
1912         (WebCore::InspectorPageAgent::willDestroyFrontendAndBackend):
1913         (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
1914         (WebCore::InspectorPageAgent::domContentEventFired):
1915         (WebCore::InspectorPageAgent::loadEventFired):
1916         (WebCore::InspectorPageAgent::frameNavigated):
1917         (WebCore::InspectorPageAgent::frameDetached):
1918         (WebCore::InspectorPageAgent::frameStartedLoading):
1919         (WebCore::InspectorPageAgent::frameStoppedLoading):
1920         (WebCore::InspectorPageAgent::frameScheduledNavigation):
1921         (WebCore::InspectorPageAgent::frameClearedScheduledNavigation):
1922         (WebCore::InspectorPageAgent::willRunJavaScriptDialog):
1923         (WebCore::InspectorPageAgent::didRunJavaScriptDialog):
1924         (WebCore::InspectorPageAgent::scriptsEnabled):
1925         * inspector/InspectorPageAgent.h:
1926         * inspector/InspectorProfilerAgent.cpp:
1927         (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
1928         (WebCore::InspectorProfilerAgent::addProfile):
1929         (WebCore::InspectorProfilerAgent::addProfileFinishedMessageToConsole):
1930         (WebCore::InspectorProfilerAgent::addStartProfilingMessageToConsole):
1931         (WebCore::InspectorProfilerAgent::getHeapSnapshot):
1932         (WebCore::InspectorProfilerAgent::resetFrontendProfiles):
1933         (WebCore::InspectorProfilerAgent::didCreateFrontendAndBackend):
1934         (WebCore::InspectorProfilerAgent::willDestroyFrontendAndBackend):
1935         (WebCore::InspectorProfilerAgent::takeHeapSnapshot):
1936         (WebCore::InspectorProfilerAgent::toggleRecordButton):
1937         * inspector/InspectorProfilerAgent.h:
1938         * inspector/InspectorResourceAgent.cpp:
1939         (WebCore::InspectorResourceAgent::didCreateFrontendAndBackend):
1940         (WebCore::InspectorResourceAgent::willDestroyFrontendAndBackend):
1941         (WebCore::InspectorResourceAgent::willSendRequest):
1942         (WebCore::InspectorResourceAgent::markResourceAsCached):
1943         (WebCore::InspectorResourceAgent::didReceiveResponse):
1944         (WebCore::InspectorResourceAgent::didReceiveData):
1945         (WebCore::InspectorResourceAgent::didFinishLoading):
1946         (WebCore::InspectorResourceAgent::didFailLoading):
1947         (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
1948         (WebCore::InspectorResourceAgent::didCreateWebSocket):
1949         (WebCore::InspectorResourceAgent::willSendWebSocketHandshakeRequest):
1950         (WebCore::InspectorResourceAgent::didReceiveWebSocketHandshakeResponse):
1951         (WebCore::InspectorResourceAgent::didCloseWebSocket):
1952         (WebCore::InspectorResourceAgent::didReceiveWebSocketFrame):
1953         (WebCore::InspectorResourceAgent::didSendWebSocketFrame):
1954         (WebCore::InspectorResourceAgent::didReceiveWebSocketFrameError):
1955         (WebCore::InspectorResourceAgent::enable):
1956         (WebCore::InspectorResourceAgent::InspectorResourceAgent):
1957         * inspector/InspectorResourceAgent.h:
1958         * inspector/InspectorRuntimeAgent.cpp:
1959         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
1960         * inspector/InspectorRuntimeAgent.h:
1961         * inspector/InspectorTimelineAgent.cpp:
1962         (WebCore::InspectorTimelineAgent::~InspectorTimelineAgent):
1963         (WebCore::InspectorTimelineAgent::didCreateFrontendAndBackend):
1964         (WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
1965         (WebCore::InspectorTimelineAgent::start):
1966         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
1967         (WebCore::InspectorTimelineAgent::sendEvent):
1968         * inspector/InspectorTimelineAgent.h:
1969         * inspector/InspectorWorkerAgent.cpp:
1970         (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::WorkerFrontendChannel):
1971         (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::dispatchMessageFromWorker):
1972         (WebCore::InspectorWorkerAgent::InspectorWorkerAgent):
1973         (WebCore::InspectorWorkerAgent::didCreateFrontendAndBackend):
1974         (WebCore::InspectorWorkerAgent::willDestroyFrontendAndBackend):
1975         (WebCore::InspectorWorkerAgent::enable):
1976         (WebCore::InspectorWorkerAgent::disable):
1977         (WebCore::InspectorWorkerAgent::didStartWorkerGlobalScope):
1978         (WebCore::InspectorWorkerAgent::workerGlobalScopeTerminated):
1979         (WebCore::InspectorWorkerAgent::createWorkerFrontendChannel):
1980         * inspector/InspectorWorkerAgent.h:
1981         * inspector/PageRuntimeAgent.cpp:
1982         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
1983         (WebCore::PageRuntimeAgent::didCreateFrontendAndBackend):
1984         (WebCore::PageRuntimeAgent::willDestroyFrontendAndBackend):
1985         (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
1986         (WebCore::PageRuntimeAgent::didCreateIsolatedContext):
1987         (WebCore::PageRuntimeAgent::notifyContextCreated):
1988         * inspector/PageRuntimeAgent.h:
1989         * inspector/TimelineRecordFactory.h:
1990         * inspector/WorkerInspectorController.cpp:
1991         (WebCore::WorkerInspectorController::connectFrontend):
1992         (WebCore::WorkerInspectorController::disconnectFrontend):
1993         * inspector/WorkerInspectorController.h:
1994         (WebCore::WorkerInspectorController::hasFrontend):
1995         * inspector/WorkerRuntimeAgent.cpp:
1996         (WebCore::WorkerRuntimeAgent::didCreateFrontendAndBackend):
1997         (WebCore::WorkerRuntimeAgent::willDestroyFrontendAndBackend):
1998         * inspector/WorkerRuntimeAgent.h:
1999         * inspector/protocol/Input.json:
2000
2001 2013-11-13  Simon Fraser  <simon.fraser@apple.com>
2002
2003         Rename FrameView's repaintFixedElementsAfterScrolling and updateFixedElementsAfterScrolling
2004         https://bugs.webkit.org/show_bug.cgi?id=124306
2005
2006         Reviewed by Tim Horton.
2007         
2008         FrameView::repaintFixedElementsAfterScrolling() didn't do any repainting, and didn't
2009         just apply to fixed elements. Rename it to updateLayerPositionsAfterScrolling().
2010         
2011         updateFixedElementsAfterScrolling() was also confusingly named; rename it
2012         to updateCompositingLayersAfterScrolling().
2013
2014         * page/FrameView.cpp:
2015         (WebCore::FrameView::setFixedVisibleContentRect):
2016         (WebCore::FrameView::scrollPositionChangedViaPlatformWidget):
2017         (WebCore::FrameView::updateLayerPositionsAfterScrolling):
2018         (WebCore::FrameView::shouldUpdateCompositingLayersAfterScrolling):
2019         (WebCore::FrameView::updateCompositingLayersAfterScrolling):
2020         * page/FrameView.h:
2021         * platform/ScrollView.cpp:
2022         (WebCore::ScrollView::scrollTo):
2023         * platform/ScrollView.h:
2024         (WebCore::ScrollView::updateLayerPositionsAfterScrolling):
2025         (WebCore::ScrollView::updateCompositingLayersAfterScrolling):
2026
2027 2013-11-13  Andreas Kling  <akling@apple.com>
2028
2029         Generate casting helpers for SVGPaint and SVGColor.
2030         <https://webkit.org/b/124285>
2031
2032         Use CSS_VALUE_TYPE_CASTS to generate type casting helpers for the
2033         SVGPaint and SVGColor classes.
2034
2035         Reviewed by Anders Carlsson.
2036
2037 2013-11-13  Benjamin Poulain  <bpoulain@apple.com>
2038
2039         Update ResourceHandleCF to use the didReceiveBuffer() callback
2040         https://bugs.webkit.org/show_bug.cgi?id=124256
2041
2042         Reviewed by Alexey Proskuryakov.
2043
2044         Use didReceiveBuffer() instead of didReceiveData() to pass data back to
2045         the ResourceHandleClient. This unify the update code with the NSURLConnection loader.
2046
2047         * platform/network/cf/ResourceHandleCFNet.cpp:
2048         (WebCore::didReceiveData):
2049         (WebCore::ResourceHandle::handleDataArray):
2050
2051 2013-11-13  Joseph Pecoraro  <pecoraro@apple.com>
2052
2053         Web Inspector: Split Inspector.json into individual domain json files
2054         https://bugs.webkit.org/show_bug.cgi?id=124098
2055
2056         Reviewed by Timothy Hatcher.
2057
2058         Split the Inspector domains into their own json file. Generate a
2059         combined Inspector.json from all of the json files at build time
2060         so that the CodeGenerator is unchanged.
2061
2062         * .gitattributes:
2063         * CMakeLists.txt:
2064         * DerivedSources.make:
2065         * GNUmakefile.am:
2066         * WebCore.xcodeproj/project.pbxproj:
2067         * inspector/CodeGeneratorInspector.py:
2068         (TypeMap.__init__):
2069         * inspector/Inspector.json: Removed.
2070         * inspector/Scripts/generate-combined-inspector-json.py: Added.
2071         * inspector/protocol/ApplicationCache.json: Added.
2072         * inspector/protocol/CSS.json: Added.
2073         * inspector/protocol/Canvas.json: Added.
2074         * inspector/protocol/Console.json: Added.
2075         * inspector/protocol/DOM.json: Added.
2076         * inspector/protocol/DOMDebugger.json: Added.
2077         * inspector/protocol/DOMStorage.json: Added.
2078         * inspector/protocol/Database.json: Added.
2079         * inspector/protocol/Debugger.json: Added.
2080         * inspector/protocol/FileSystem.json: Added.
2081         * inspector/protocol/HeapProfiler.json: Added.
2082         * inspector/protocol/IndexedDB.json: Added.
2083         * inspector/protocol/Input.json: Added.
2084         * inspector/protocol/InspectorDomain.json: Added.
2085         * inspector/protocol/LayerTree.json: Added.
2086         * inspector/protocol/Memory.json: Added.
2087         * inspector/protocol/Network.json: Added.
2088         * inspector/protocol/Page.json: Added.
2089         * inspector/protocol/Profiler.json: Added.
2090         * inspector/protocol/Runtime.json: Added.
2091         * inspector/protocol/Timeline.json: Added.
2092         * inspector/protocol/Worker.json: Added.
2093
2094 2013-11-13  Zalan Bujtas  <zalan@apple.com>
2095
2096         Code cleanup: change FrameView::doLayoutWithFrameFlattening() to make it more explicit.
2097         https://bugs.webkit.org/show_bug.cgi?id=124238
2098
2099         Reviewed by Simon Fraser.
2100
2101         Rename doLayoutWithFrameFlattening() and change its signature so that it's inline with
2102         what it does.
2103
2104         Covered by existing tests.
2105
2106         * page/FrameView.cpp:
2107         (WebCore::FrameView::layout):
2108         (WebCore::FrameView::startLayoutAtMainFrameViewIfNeeded):
2109         * page/FrameView.h:
2110
2111 2013-11-13  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
2112
2113         Modifying RTCSessionDescription object construction to match the spec
2114         https://bugs.webkit.org/show_bug.cgi?id=124212
2115
2116         Reviewed by Eric Carlson.
2117
2118         According to the spec the RTCSessionDescriptionInit parameter in RTCSessionDescription constructor is optional,
2119         which must not be nullable. If the 'type' and/or 'sdp' keys are not present, the string object that stores
2120         them in the RTCSessionDescription class, must be null in those cases. Also, if an object that is not a
2121         Dictionary is passed as argument to the constructor, an exception must be raised.
2122
2123         Existing test was updated.
2124
2125         * GNUmakefile.list.am:
2126         * Modules/mediastream/RTCSessionDescription.cpp:
2127         (WebCore::RTCSessionDescription::create):
2128         * Modules/mediastream/RTCSessionDescription.idl:
2129         * UseJSC.cmake:
2130         * WebCore.vcxproj/WebCore.vcxproj:
2131         * WebCore.vcxproj/WebCore.vcxproj.filters:
2132         * WebCore.xcodeproj/project.pbxproj:
2133         * bindings/js/JSRTCSessionDescriptionCustom.cpp: Added.
2134         (WebCore::JSRTCSessionDescriptionConstructor::constructJSRTCSessionDescription):
2135
2136 2013-11-13  Tim Horton  <timothy_horton@apple.com>
2137
2138         Fix release build after r159224.
2139
2140         * WebCore.exp.in:
2141
2142 2013-11-13  Anders Carlsson  <andersca@apple.com>
2143
2144         Remove ChromeClient::paintCustomOverhangArea
2145         https://bugs.webkit.org/show_bug.cgi?id=124304
2146
2147         Reviewed by Beth Dakin.
2148
2149         This function always returns false now; get rid of it.
2150
2151         * page/Chrome.cpp:
2152         * page/ChromeClient.h:
2153         * page/FrameView.cpp:
2154         (WebCore::FrameView::paintOverhangAreas):
2155
2156 2013-11-09  Martin Robinson  <mrobinson@igalia.com>
2157
2158         [MathML] The double bar vertical delimiter does not stretch properly
2159         https://bugs.webkit.org/show_bug.cgi?id=123543
2160
2161         Reviewed by Chris Fleizach.
2162
2163         * rendering/mathml/RenderMathMLOperator.cpp: Add stretching support for U+2225, which
2164         is another version of the vertical bar.
2165
2166 2013-11-13  Simon Fraser  <simon.fraser@apple.com>
2167
2168         ASSERTION FAILED: m_repaintRect == renderer().clippedOverflowRectForRepaint(renderer().containerForRepaint()) after r135816
2169         https://bugs.webkit.org/show_bug.cgi?id=103432
2170
2171         Reviewed by Dave Hyatt.
2172
2173         RenderLayer caches repaint rects in m_repaintRect, and on updating layer
2174         positions after scrolling, asserts that the cached rect is correct. However,
2175         this assertion would sometimes fail if we were scrolling as a result of
2176         doing adjustViewSize() in the middle of layout, because we haven't updated
2177         layer positions post-layout yet.
2178         
2179         Fix by having the poorly named FrameView::repaintFixedElementsAfterScrolling()
2180         skip the layer updating if this FrameView is inside of adjusetViewSize() in
2181         layout.
2182         
2183         In order to know if we're inside view size adjusting, add a LayoutPhase
2184         member to FrameView, replacing two existing bools that track laying out state.
2185
2186         Investigative work showed that there are many, many ways to re-enter FrameView::layout(),
2187         which makes it hard (but desirable) to more assertions about state changes, but
2188         indicated that saving and restoring the state (via TemporaryChange<LayoutPhase>)
2189         was a good idea.
2190
2191         * page/FrameView.cpp:
2192         (WebCore::FrameView::FrameView):
2193         (WebCore::FrameView::reset):
2194         (WebCore::FrameView::updateCompositingLayersAfterStyleChange):
2195         (WebCore::FrameView::layout):
2196         (WebCore::FrameView::repaintFixedElementsAfterScrolling):
2197         * page/FrameView.h:
2198
2199 2013-11-13  Myles C. Maxfield  <mmaxfield@apple.com>
2200
2201         Delete unused TextPainter function
2202         https://bugs.webkit.org/show_bug.cgi?id=124292
2203
2204         Reviewed by Tim Horton.
2205
2206         New tests are unnecessary since there is no behavior change
2207
2208         * rendering/TextPainter.cpp:
2209         (WebCore::TextPainter::paintText):
2210         * rendering/TextPainter.h:
2211
2212 2013-11-13  Alexey Proskuryakov  <ap@apple.com>
2213
2214         Check WebCrypto parameter types when casting
2215         https://bugs.webkit.org/show_bug.cgi?id=124297
2216
2217         Reviewed by Sam Weinig.
2218
2219         Also changed existing toCryptoXXX functions to use TYPE_CASTS_BASE mechanism.
2220
2221         * bindings/js/JSCryptoAlgorithmDictionary.cpp:
2222         (WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey):
2223         And sure enough, there was a bug caught by the added checks.
2224
2225         * bindings/js/JSCryptoKeySerializationJWK.cpp:
2226         (WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
2227         * crypto/CryptoAlgorithmParameters.h:
2228         (WebCore::CryptoAlgorithmParameters::ENUM_CLASS):
2229         (WebCore::CryptoAlgorithmParameters::parametersClass):
2230         * crypto/CryptoKey.h:
2231         * crypto/CryptoKeyData.h:
2232         * crypto/CryptoKeySerialization.h:
2233         * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
2234         (WebCore::CryptoAlgorithmAES_CBC::generateKey):
2235         * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
2236         (WebCore::CryptoAlgorithmHMAC::generateKey):
2237         (WebCore::CryptoAlgorithmHMAC::importKey):
2238         * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
2239         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey):
2240         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey):
2241         * crypto/keys/CryptoKeyAES.h:
2242         * crypto/keys/CryptoKeyDataOctetSequence.h:
2243         (WebCore::isCryptoKeyDataOctetSequence):
2244         * crypto/keys/CryptoKeyDataRSAComponents.h:
2245         (WebCore::isCryptoKeyDataRSAComponents):
2246         * crypto/keys/CryptoKeyHMAC.h:
2247         * crypto/keys/CryptoKeyRSA.h:
2248         * crypto/keys/CryptoKeySerializationRaw.h:
2249         * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
2250         (WebCore::CryptoAlgorithmAES_CBC::encrypt):
2251         (WebCore::CryptoAlgorithmAES_CBC::decrypt):
2252         * crypto/mac/CryptoAlgorithmHMACMac.cpp:
2253         (WebCore::CryptoAlgorithmHMAC::sign):
2254         (WebCore::CryptoAlgorithmHMAC::verify):
2255         * crypto/parameters/CryptoAlgorithmAesCbcParams.h:
2256         * crypto/parameters/CryptoAlgorithmAesKeyGenParams.h:
2257         * crypto/parameters/CryptoAlgorithmHmacKeyParams.h:
2258         * crypto/parameters/CryptoAlgorithmHmacParams.h:
2259         * crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h:
2260         * crypto/parameters/CryptoAlgorithmRsaSsaKeyParams.h:
2261         * crypto/parameters/CryptoAlgorithmRsaSsaParams.h:
2262
2263 2013-11-13  Alexey Proskuryakov  <ap@apple.com>
2264
2265         crypto/subtle/rsassa-pkcs1-v1_5-import-jwk.html is failing on Maverics release bot
2266         https://bugs.webkit.org/show_bug.cgi?id=124280
2267
2268         Reviewed by Anders Carlsson.
2269
2270         * crypto/mac/CryptoKeyRSAMac.cpp: (WebCore::CryptoKeyRSA::buildAlgorithmDescription):
2271         Don't be a muppet, initialize your variables.
2272
2273 2013-11-12  Jer Noble  <jer.noble@apple.com>
2274
2275         Add support for HTMLMediaElement.fastSeek()
2276         https://bugs.webkit.org/show_bug.cgi?id=124262
2277
2278         Reviewed by Eric Carlson.
2279
2280         Test: media/video-fast-seek.html
2281
2282         Add the fastSeek() method to HTMLMediaElement, and use fastSeek() in
2283         the JavaScript media controls.
2284
2285         Add the new fastSeek() method:
2286         * html/HTMLMediaElement.cpp:
2287         (HTMLMediaElement::fastSeek): Call seekWithTolerance.
2288         (HTMLMediaElement::seek): Call seekWithTolerance with 0 tolerance.
2289         (HTMLMediaElement::seekWithTolerance): Renamed from seek().
2290         * html/HTMLMediaElement.h:
2291         * html/HTMLMediaElement.idl:
2292
2293         Add seekWithTolerance() to MediaPlayer:
2294         * platform/graphics/MediaPlayer.cpp:
2295         (WebCore::MediaPlayer::seekWithTolerance): Pass to MediaPlayerPrivate.
2296         * platform/graphics/MediaPlayer.h:
2297         * platform/graphics/MediaPlayerPrivate.h:
2298         (WebCore::MediaPlayerPrivateInterface::seekWithTolerance): Default implementation which
2299             calls seek().
2300         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
2301         (WebCore::MediaPlayerPrivateAVFoundation::seek): Call seekWithTolerance with 0 tolerance.
2302         (WebCore::MediaPlayerPrivateAVFoundation::seekWithTolerance): Renamed from seek().
2303         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
2304         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2305         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2306         (WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime): Take tolerance parameters.
2307
2308         Use the new fastSeek() method while actively scrubbing.
2309         * Modules/mediacontrols/mediaControlsApple.js:
2310         (Controller.prototype.createControls): Add mouse up and down handlers.
2311         (Controller.prototype.handleTimeUpdate): Only update the timeline when not scrubbing.
2312         (Controller.prototype.handleTimelineChange): Use fastSeek().
2313         (Controller.prototype.handleTimelineMouseDown): Start scrubbing.
2314         (Controller.prototype.handleTimelineMouseUp): Stop scrubbing.
2315
2316 2013-11-13  Andreas Kling  <akling@apple.com>
2317
2318         Generate casting helpers for scrolling tree classes.
2319         <https://webkit.org/b/124286>
2320
2321         Added SCROLLING_STATE_NODE_TYPE_CASTS and used it to replace the
2322         hand-written toFoo() casts for ScrollingStateNode subclasses.
2323
2324         Reviewed by Anders Carlsson.
2325
2326 2013-11-13  Hans Muller  <hmuller@adobe.com>
2327
2328         [CSS Shapes] Determining if a line is inside of a shape should only happen in one place
2329         https://bugs.webkit.org/show_bug.cgi?id=121708
2330
2331         Reviewed by Andreas Kling.
2332
2333         The ShapeInfo::lineOverlapsShapeBounds() methods now delegate to the Shape object. The
2334         logic for the Shape overlap test is now the same for ShapeInsideInfo and ShapeOutsideInfo.
2335
2336         No new tests, this is just a refactoring of existing code.
2337
2338         * rendering/shapes/Shape.h:
2339         (WebCore::Shape::lineOverlapsShapeMarginBounds): Apply lineOverlapsLayoutRect() to the shape-margin bounds LayoutRect.
2340         (WebCore::Shape::lineOverlapsShapePaddingBounds): Apply lineOverlapsLayoutRect() to the shape-padding bounds LayoutRect.
2341         (WebCore::Shape::lineOverlapsLayoutRect): The common code for checking if a line and a LayoutRect overlap.
2342         * rendering/shapes/ShapeInsideInfo.h: Use lineOverlapsShapePaddingBounds() for lineOverlapShapeBounds().
2343         * rendering/shapes/ShapeOutsideInfo.h: Use lineOverlapsShapeMarginBounds() for lineOverlapShapeBounds().
2344
2345 2013-11-13  Jochen Eisinger  <jochen@chromium.org>
2346
2347         Restrict UserGestureIndicator to main thread
2348         https://bugs.webkit.org/show_bug.cgi?id=124277
2349
2350         Reviewed by Andreas Kling.
2351
2352         Certain classes that interact with UserGestureIndicators, e.g.
2353         the DOMTimer, can also live on worker threads. Since a
2354         background thread cannot possible get a user gesture in the
2355         first place, and to avoid races, we turn a UserGestureIndicator
2356         on a background thread into a no-op.
2357
2358         * dom/UserGestureIndicator.cpp:
2359         (WebCore::UserGestureIndicator::UserGestureIndicator):
2360         (WebCore::UserGestureIndicator::~UserGestureIndicator):
2361         (WebCore::UserGestureIndicator::processingUserGesture):
2362         * dom/UserGestureIndicator.h:
2363
2364 2013-11-13  Antti Koivisto  <antti@apple.com>
2365
2366         Factor simple line creation loop to function
2367         https://bugs.webkit.org/show_bug.cgi?id=124279
2368
2369         Reviewed by Andreas Kling.
2370
2371         * rendering/SimpleLineLayout.cpp:
2372         (WebCore::SimpleLineLayout::Style::Style):
2373         
2374             Capture style that affects line layout to a struct.
2375
2376         (WebCore::SimpleLineLayout::textWidth):
2377         (WebCore::SimpleLineLayout::measureWord):
2378         (WebCore::SimpleLineLayout::createLineRuns):
2379         
2380             Factor the line loop here.
2381
2382         (WebCore::SimpleLineLayout::createTextRuns):
2383
2384 2013-11-12  Antti Koivisto  <antti@apple.com>
2385
2386         Support overflow-wrap:break-word on simple line path
2387         https://bugs.webkit.org/show_bug.cgi?id=124206
2388
2389         Reviewed by Andreas Kling.
2390
2391         Pure text documents are rendered with break-word. It is also common in discussion board type sites.
2392         
2393         This also makes many <textarea>'s rendered using the simple line path.
2394
2395         Tests: fast/forms/basic-textareas-quirks-simple-lines.html
2396                fast/forms/linebox-overflow-in-textarea-padding-simple-lines.html
2397                fast/forms/negativeLineHeight-simple-lines.html
2398                fast/forms/textAreaLineHeight-simple-lines.html
2399
2400         * rendering/RenderBlock.cpp:
2401         (WebCore::RenderBlock::updateShapeInsideInfoAfterStyleChange):
2402         (WebCore::RenderBlock::markShapeInsideDescendantsForLayout):
2403         
2404             Invalidate the cached line layout mode on shape-inside style change.
2405
2406         * rendering/SimpleLineLayout.cpp:
2407         (WebCore::SimpleLineLayout::canUseForText):
2408         (WebCore::SimpleLineLayout::canUseFor):
2409         (WebCore::SimpleLineLayout::createTextRuns):
2410
2411 2013-11-13  Andreas Kling  <akling@apple.com>
2412
2413         Turn some not-so-rare ElementRareData bits into Node flags.
2414         <https://webkit.org/b/124275>
2415
2416         The following 4 bits seem to be the most commonly set:
2417
2418         - childrenAffectedByHover()
2419         - childrenAffectedByFirstChildRules()
2420         - childrenAffectedByLastChildRules()
2421         - childrenAffectedByDirectAdjacentRules()
2422
2423         Turning them into Node flags means we don't have to allocate full
2424         ElementRareData object in many cases. I also took this opportunity
2425         to make Node's flag twiddling functions available to subclasses.
2426
2427         1.38 MB progression on HTML5-8266 locally.
2428
2429         Reviewed by Antti Koivisto.
2430
2431 2013-11-13  Tibor Meszaros  <mtibor@inf.u-szeged.hu>
2432
2433         Cleanup the build from unused parameters in WebCore
2434         https://bugs.webkit.org/show_bug.cgi?id=124199.
2435
2436         Reviewed by Csaba Osztrogonác.
2437
2438         * css/CSSCursorImageValue.cpp:
2439         (WebCore::CSSCursorImageValue::cachedOrPendingImage):
2440         * dom/Document.cpp:
2441         (WebCore::Document::scriptedAnimationControllerSetThrottled):
2442         * fileapi/ThreadableBlobRegistry.cpp:
2443         (WebCore::ThreadableBlobRegistry::registerBlobURL):
2444         * html/HTMLAnchorElement.cpp:
2445         (WebCore::shouldProhibitLinks):
2446         * html/parser/XSSAuditor.cpp:
2447         (WebCore::isSemicolonSeparatedAttribute):
2448         * inspector/InspectorConsoleInstrumentation.h:
2449         (WebCore::InspectorInstrumentation::addMessageToConsole):
2450         * loader/DocumentThreadableLoader.cpp:
2451         (WebCore::DocumentThreadableLoader::didReceiveData):
2452         (WebCore::DocumentThreadableLoader::didFail):
2453         (WebCore::DocumentThreadableLoader::preflightFailure):
2454         * loader/cache/CachedImage.cpp:
2455         (WebCore::CachedImage::imageSizeForRenderer):
2456         * page/animation/ImplicitAnimation.cpp:
2457         (WebCore::ImplicitAnimation::animate):
2458         * page/animation/KeyframeAnimation.cpp:
2459         (WebCore::KeyframeAnimation::animate):
2460         * platform/graphics/WidthIterator.cpp:
2461         (WebCore::applyFontTransforms):
2462         * rendering/RenderView.cpp:
2463         (WebCore::RenderView::setIsInWindow):
2464         * rendering/style/RenderStyle.cpp:
2465         (WebCore::RenderStyle::changeRequiresLayout):
2466         (WebCore::RenderStyle::changeRequiresLayerRepaint):
2467         (WebCore::RenderStyle::changeRequiresRecompositeLayer):
2468         * testing/Internals.cpp:
2469         (WebCore::Internals::setHeaderHeight):
2470         (WebCore::Internals::setCaptionsStyleSheetOverride):
2471
2472 2013-11-13  Andreas Kling  <akling@apple.com>
2473
2474         Refalize CSSCursorImageValue.
2475         <https://webkit.org/b/124272>
2476
2477         Make CSSCursorImageValue constructor return a PassRef, and have it
2478         take the image CSSValue as a PassRef (and store it internally in a
2479         Ref<CSSValue>.)
2480
2481         Had to add a Ref version of compareCSSValuePtr() to make this work.
2482
2483         Reviewed by Antti Koivisto.
2484
2485 2013-11-13  Andreas Kling  <akling@apple.com>
2486
2487         RenderTableSection: Cell structures don't need allocation padding.
2488         <https://webkit.org/b/124263>
2489
2490         The row structure data gets shrunk-to-fit once we get to layout,
2491         but per-row cell structures get no such luxury. Fortuntely we know
2492         ahead of time how many cells a row needs to accomodate, so we can
2493         just use Vector::resizeToFit() instead of Vector::grow().
2494
2495         1.25 MB progression on HTML5-8266 locally.
2496
2497         Reviewed by Antti Koivisto.
2498
2499 2013-11-13  Andreas Kling  <akling@apple.com>
2500
2501         Avoid unnecessarily padding the FontDescription families vector.
2502         <https://webkit.org/b/124267>
2503
2504         Use a bit of reserveInitialCapacity+uncheckedAppend grease to avoid
2505         jumping all the way to capacity=16 when a style has more than just
2506         a single font-family in it.
2507
2508         130 kB progression on HTML5-8266 locally.
2509
2510         Reviewed by Antti Koivisto.
2511
2512         * css/DeprecatedStyleBuilder.cpp:
2513         (WebCore::ApplyPropertyFontFamily::applyValue):
2514
2515 2013-11-13  Andreas Kling  <akling@apple.com>
2516
2517         Make remaining CSSPrimitiveValue constructors return PassRef.
2518         <https://webkit.org/b/124270>
2519
2520         ..and same with the corresponding CSSValuePool functions.
2521
2522         Reviewed by Antti Koivisto.
2523
2524 2013-11-13  Alexey Proskuryakov  <ap@apple.com>
2525
2526         Implement key generation and JWK import for RSASSA-PKCS1-v1_5
2527         https://bugs.webkit.org/show_bug.cgi?id=124236
2528
2529         Reviewed by Sam Weinig.
2530
2531         Tests: crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html
2532                crypto/subtle/rsassa-pkcs1-v1_5-import-jwk.html
2533
2534         * WebCore.xcodeproj/project.pbxproj: Added new files.
2535
2536         * bindings/js/JSCryptoAlgorithmBuilder.cpp:
2537         (WebCore::JSCryptoAlgorithmBuilder::add):
2538         * bindings/js/JSCryptoAlgorithmBuilder.h:
2539         * crypto/CryptoAlgorithmDescriptionBuilder.h:
2540         Added a way to add an Uint8Array, as needed for RSA key.algorithm.publicExponent.
2541
2542         * bindings/js/JSCryptoAlgorithmDictionary.cpp:
2543         (WebCore::createAesCbcParams): Removed unneeded JSC prefixes.
2544         (WebCore::createAesKeyGenParams): Ditto.
2545         (WebCore::createHmacParams): Ditto.
2546         (WebCore::createHmacKeyParams): Ditto.
2547         (WebCore::createRsaKeyGenParams): Added. 
2548         (WebCore::createRsaSsaKeyParams): Added. WebCrypto currently doesn't specify any
2549         parameters for importKey, so the structure remains blank (unlike with JWK).
2550         (WebCore::createRsaSsaParams): Added (currently unused, will be sued for sign/verify soon).
2551         (WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt): Removed unneeded JSC prefixes.
2552         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt): Ditto.
2553         (WebCore::JSCryptoAlgorithmDictionary::createParametersForSign): Added support for RSAES_PKCS1_v1_5.
2554         (WebCore::JSCryptoAlgorithmDictionary::createParametersForVerify): Ditto.
2555         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDigest): Removed unneeded JSC prefixes.
2556         (WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey): Ditto.
2557         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveKey): Ditto.
2558         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveBits): Ditto.
2559         (WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey): Added support for RSAES_PKCS1_v1_5.
2560         (WebCore::JSCryptoAlgorithmDictionary::createParametersForExportKey): Removed unneeded JSC prefixes.
2561         (WebCore::JSCryptoAlgorithmDictionary::createParametersForWrapKey): Ditto.
2562         (WebCore::JSCryptoAlgorithmDictionary::createParametersForUnwrapKey): Ditto.
2563
2564         * bindings/js/JSCryptoKeySerializationJWK.h:
2565         * bindings/js/JSCryptoKeySerializationJWK.cpp:
2566         (WebCore::getJSArrayFromJSON): Added.
2567         (WebCore::getBigIntegerVectorFromJSON): Added.
2568         (WebCore::createRSASSAKeyParameters): Create parameters for key import. The key
2569         will remember which algorithm it's allowed to be used with.
2570         (WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm): Added support for
2571         RS256...RS512 (tha is, RSAES_PKCS1_v1_5 with SHA-256...SHA-512).
2572         (WebCore::JSCryptoKeySerializationJWK::keyDataOctetSequence): Split out of keyData().
2573         (WebCore::JSCryptoKeySerializationJWK::keyDataRSAComponents): Added code to read
2574         RSA key components from JWK.
2575         (WebCore::JSCryptoKeySerializationJWK::keyData): Call one of the above functions.
2576
2577         * crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp: Added.
2578         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
2579         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
2580         Placeholders.
2581
2582         * crypto/CryptoKey.h: (WebCore::CryptoKeyClass): Added RSA key class for poor man's RTTI.
2583
2584         * crypto/CryptoKeyData.h: (WebCore::CryptoKeyData::FormatRSAComponents): Added RSAComponents
2585         for poor man's RTTI.
2586
2587         * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp: (WebCore::CryptoAlgorithmAES_CBC::importKey): 
2588         * crypto/algorithms/CryptoAlgorithmHMAC.cpp: (WebCore::CryptoAlgorithmHMAC::importKey):
2589         * crypto/keys/CryptoKeyAES.h:
2590         (WebCore::isCryptoKeyAES):
2591         (WebCore::toCryptoKeyAES):
2592         * crypto/keys/CryptoKeyDataOctetSequence.h:
2593         (WebCore::toCryptoKeyDataOctetSequence):
2594         * crypto/keys/CryptoKeyHMAC.h:
2595         (WebCore::isCryptoKeyHMAC):
2596         (WebCore::toCryptoKeyHMAC):
2597         * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
2598         (WebCore::CryptoAlgorithmAES_CBC::encrypt):
2599         (WebCore::CryptoAlgorithmAES_CBC::decrypt):
2600         * crypto/mac/CryptoAlgorithmHMACMac.cpp:
2601         (WebCore::CryptoAlgorithmHMAC::sign):
2602         (WebCore::CryptoAlgorithmHMAC::verify):
2603         Switched from "as" functions to "is" and "to" ones, as that's more idiomatic.
2604
2605         * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp: Added.
2606         * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h: Added.
2607         Glue code for importKey/generateKey for now.
2608
2609         * crypto/keys/CryptoKeyDataRSAComponents.cpp: Added.
2610         (WebCore::CryptoKeyDataRSAComponents::CryptoKeyDataRSAComponents):
2611         (WebCore::CryptoKeyDataRSAComponents::~CryptoKeyDataRSAComponents):
2612         * crypto/keys/CryptoKeyDataRSAComponents.h: Added.
2613         (WebCore::toCryptoKeyDataRSAComponents):
2614         Added a structure to hold RSA key components, extracted from JWK or another format.
2615
2616         * crypto/keys/CryptoKeyRSA.h: Added.
2617         * crypto/mac/CryptoKeyRSAMac.cpp: Added.
2618
2619         * crypto/mac/CryptoAlgorithmRegistryMac.cpp:
2620         (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
2621         Register RSASSA_PKCS1_v1_5.
2622
2623         * crypto/parameters/CryptoAlgorithmHmacKeyParams.h: Added a constructor to make
2624         sure that hasLength is never left uninitialized, even when reading formats that
2625         don't contain a length.
2626
2627         * crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h: Added.
2628         * crypto/parameters/CryptoAlgorithmRsaSsaKeyParams.h: Added.
2629         * crypto/parameters/CryptoAlgorithmRsaSsaParams.h: Added.
2630         Added parameter structures that are needed for RSASSA_PKCS1_v1_5.
2631
2632 2013-11-12  Alexey Proskuryakov  <ap@apple.com>
2633
2634         Disable WebCrypto on Mountain Lion
2635         https://bugs.webkit.org/show_bug.cgi?id=124261
2636
2637         Rubber-stamped by Sam Weinig.
2638
2639         * Configurations/FeatureDefines.xcconfig:
2640
2641 2013-11-12  Zan Dobersek  <zdobersek@igalia.com>
2642
2643         Manage XMLHttpRequestUpload, XSLImportRule, XMLErrors, XML pending callback classes through std::unique_ptr
2644         https://bugs.webkit.org/show_bug.cgi?id=124224
2645
2646         Reviewed by Anders Carlsson.
2647
2648         Use std::unique_ptr to handle objects of various XML classes that were previously managed by OwnPtr.
2649         This removes usage of OwnPtr and PassOwnPtr under Source/WebCore/xml/.
2650
2651         * xml/XMLHttpRequest.cpp:
2652         (WebCore::XMLHttpRequest::upload):
2653         * xml/XMLHttpRequest.h:
2654         * xml/XMLHttpRequestUpload.h:
2655         * xml/XSLImportRule.h:
2656         * xml/XSLStyleSheet.h:
2657         * xml/XSLStyleSheetLibxslt.cpp:
2658         (WebCore::XSLStyleSheet::loadChildSheet):
2659         * xml/parser/XMLDocumentParser.cpp:
2660         (WebCore::XMLDocumentParser::handleError):
2661         * xml/parser/XMLDocumentParser.h:
2662         * xml/parser/XMLDocumentParserLibxml2.cpp:
2663         (WebCore::PendingCallbacks::PendingCallbacks):
2664         (WebCore::PendingCallbacks::appendStartElementNSCallback):
2665         (WebCore::PendingCallbacks::appendEndElementNSCallback):
2666         (WebCore::PendingCallbacks::appendCharactersCallback):
2667         (WebCore::PendingCallbacks::appendProcessingInstructionCallback):
2668         (WebCore::PendingCallbacks::appendCDATABlockCallback):
2669         (WebCore::PendingCallbacks::appendCommentCallback):
2670         (WebCore::PendingCallbacks::appendInternalSubsetCallback):
2671         (WebCore::PendingCallbacks::appendErrorCallback):
2672         (WebCore::PendingCallbacks::callAndRemoveFirstCallback):
2673         (WebCore::XMLDocumentParser::XMLDocumentParser):
2674
2675 2013-11-12  Brady Eidson  <beidson@apple.com>
2676
2677         Move basic IDBBackingStoreTransaction operations to IDBServerConnection
2678         https://bugs.webkit.org/show_bug.cgi?id=124244
2679
2680         Reviewed by Tim Horton (and unofficially Anders Carlsson).
2681
2682         This patch:
2683         - Makes IDBBackingStore the owner of an IDBBackingStoreTransaction.
2684         - Adds the integer transaction ID to IDBBackingStoreTransaction for reference.
2685         - Removes IDBTransactionBackend’s reliance on IDBBackingStoreTransaction by moving
2686           necessary methods to IDBServerConnection.
2687         - Renames the IDBTransactionBackend::backingStoreTransaction() accessor to
2688           deprecatedBackingStoreTransaction to make it clear it’s on the way out.
2689
2690         * Modules/indexeddb/IDBBackingStoreInterface.h:
2691
2692         * Modules/indexeddb/IDBDatabaseBackend.cpp:
2693         (WebCore::IDBDatabaseBackend::setIndexKeys):
2694
2695         * Modules/indexeddb/IDBServerConnection.h:
2696
2697         * Modules/indexeddb/IDBTransactionBackend.cpp:
2698         (WebCore::IDBTransactionBackend::IDBTransactionBackend):
2699         (WebCore::IDBTransactionBackend::~IDBTransactionBackend):
2700         (WebCore::IDBTransactionBackend::deprecatedBackingStoreTransaction):
2701         (WebCore::IDBTransactionBackend::scheduleTask):
2702         (WebCore::IDBTransactionBackend::abort):
2703         (WebCore::IDBTransactionBackend::commit):
2704         (WebCore::IDBTransactionBackend::taskTimerFired):
2705         * Modules/indexeddb/IDBTransactionBackend.h:
2706
2707         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
2708         (WebCore::CreateObjectStoreOperation::perform):
2709         (WebCore::CreateIndexOperation::perform):
2710         (WebCore::DeleteIndexOperation::perform):
2711         (WebCore::GetOperation::perform):
2712         (WebCore::PutOperation::perform):
2713         (WebCore::OpenCursorOperation::perform):
2714         (WebCore::CountOperation::perform):
2715         (WebCore::DeleteRangeOperation::perform):
2716         (WebCore::ClearOperation::perform):
2717         (WebCore::DeleteObjectStoreOperation::perform):
2718         (WebCore::IDBDatabaseBackend::VersionChangeOperation::perform):
2719
2720         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
2721         (WebCore::IDBBackingStoreLevelDB::makeIndexWriters):
2722         (WebCore::IDBBackingStoreLevelDB::generateKey):
2723         (WebCore::IDBBackingStoreLevelDB::updateKeyGenerator):
2724         (WebCore::IDBBackingStoreLevelDB::establishBackingStoreTransaction):
2725         (WebCore::IDBBackingStoreLevelDB::deprecatedBackingStoreTransaction):
2726         (WebCore::IDBBackingStoreLevelDB::removeBackingStoreTransaction):
2727         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
2728
2729         * Modules/indexeddb/leveldb/IDBBackingStoreTransactionLevelDB.cpp:
2730         (WebCore::IDBBackingStoreTransactionLevelDB::IDBBackingStoreTransactionLevelDB):
2731         (WebCore::IDBBackingStoreTransactionLevelDB::~IDBBackingStoreTransactionLevelDB):
2732         (WebCore::IDBBackingStoreTransactionLevelDB::resetTransaction):
2733         * Modules/indexeddb/leveldb/IDBBackingStoreTransactionLevelDB.h:
2734
2735         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
2736         (WebCore::IDBServerConnectionLevelDB::IDBServerConnectionLevelDB):
2737         (WebCore::IDBServerConnectionLevelDB::deprecatedBackingStoreTransaction):
2738         (WebCore::IDBServerConnectionLevelDB::openTransaction):
2739         (WebCore::IDBServerConnectionLevelDB::beginTransaction):
2740         (WebCore::IDBServerConnectionLevelDB::commitTransaction):
2741         (WebCore::IDBServerConnectionLevelDB::resetTransaction):
2742         (WebCore::IDBServerConnectionLevelDB::rollbackTransaction):
2743         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
2744
2745 2013-11-12  Andy Estes  <aestes@apple.com>
2746
2747         Fix the Mountain Lion build after r159171.
2748
2749         * platform/mac/HTMLConverter.mm:
2750         (_dateForString): +[NSCalendar calendarWithIdentifier:] only exists on
2751         10.9. Use -[NSCalendar initWithIdentifier:] instead.
2752
2753 2013-11-12  Andy Estes  <aestes@apple.com>
2754
2755         [Mac] Fix some deprecation warnings
2756         https://bugs.webkit.org/show_bug.cgi?id=124252
2757
2758         Reviewed by Mark Rowe.
2759
2760         * loader/archive/cf/LegacyWebArchive.cpp:
2761         (WebCore::LegacyWebArchive::create): Use CFPropertyListCreateWithData()
2762         instead of CFPropertyListCreateFromXMLData().
2763         (WebCore::LegacyWebArchive::rawDataRepresentation): Use
2764         CFPropertyListWrite() instead of CFPropertyListWriteToStream().
2765         * platform/mac/HTMLConverter.mm:
2766         (_dateForString): Rewrite this method in terms of NSDateComponents and
2767         NSCalendar instead of using CFGregorianDate.
2768
2769 2013-11-12  Commit Queue  <commit-queue@webkit.org>
2770
2771         Unreviewed, rolling out r159160, r159161, and r159164.
2772         http://trac.webkit.org/changeset/159160
2773         http://trac.webkit.org/changeset/159161
2774         http://trac.webkit.org/changeset/159164
2775         https://bugs.webkit.org/show_bug.cgi?id=124253
2776
2777         Too many errors (make fewer) (Requested by ap on #webkit).
2778
2779         * WebCore.xcodeproj/project.pbxproj:
2780         * bindings/js/JSCryptoAlgorithmBuilder.cpp:
2781         * bindings/js/JSCryptoAlgorithmBuilder.h:
2782         * bindings/js/JSCryptoAlgorithmDictionary.cpp:
2783         (WebCore::createAesCbcParams):
2784         (WebCore::createAesKeyGenParams):
2785         (WebCore::createHmacParams):
2786         (WebCore::createHmacKeyParams):
2787         (WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt):
2788         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt):
2789         (WebCore::JSCryptoAlgorithmDictionary::createParametersForSign):
2790         (WebCore::JSCryptoAlgorithmDictionary::createParametersForVerify):
2791         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDigest):
2792         (WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey):
2793         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveKey):
2794         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveBits):
2795         (WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey):
2796         (WebCore::JSCryptoAlgorithmDictionary::createParametersForExportKey):
2797         (WebCore::JSCryptoAlgorithmDictionary::createParametersForWrapKey):
2798         (WebCore::JSCryptoAlgorithmDictionary::createParametersForUnwrapKey):
2799         * bindings/js/JSCryptoKeySerializationJWK.cpp:
2800         (WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
2801         (WebCore::JSCryptoKeySerializationJWK::keyData):
2802         * bindings/js/JSCryptoKeySerializationJWK.h:
2803         * crypto/CryptoAlgorithmDescriptionBuilder.h:
2804         * crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp: Removed.
2805         * crypto/CryptoKey.h:
2806         (WebCore::ENUM_CLASS):
2807         * crypto/CryptoKeyData.h:
2808         (WebCore::CryptoKeyData::ENUM_CLASS):
2809         * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
2810         (WebCore::CryptoAlgorithmAES_CBC::importKey):
2811         * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
2812         (WebCore::CryptoAlgorithmHMAC::importKey):
2813         * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp: Removed.
2814         * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h: Removed.
2815         * crypto/keys/CryptoKeyAES.h:
2816         (WebCore::asCryptoKeyAES):
2817         * crypto/keys/CryptoKeyDataOctetSequence.h:
2818         (WebCore::asCryptoKeyDataOctetSequence):
2819         * crypto/keys/CryptoKeyDataRSAComponents.cpp: Removed.
2820         * crypto/keys/CryptoKeyDataRSAComponents.h: Removed.
2821         * crypto/keys/CryptoKeyHMAC.h:
2822         (WebCore::asCryptoKeyHMAC):
2823         * crypto/keys/CryptoKeyRSA.h: Removed.
2824         * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
2825         (WebCore::CryptoAlgorithmAES_CBC::encrypt):
2826         (WebCore::CryptoAlgorithmAES_CBC::decrypt):
2827         * crypto/mac/CryptoAlgorithmHMACMac.cpp:
2828         (WebCore::CryptoAlgorithmHMAC::sign):
2829         (WebCore::CryptoAlgorithmHMAC::verify):
2830         * crypto/mac/CryptoAlgorithmRegistryMac.cpp:
2831         (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
2832         * crypto/mac/CryptoKeyRSAMac.cpp: Removed.
2833         * crypto/parameters/CryptoAlgorithmHmacKeyParams.h:
2834         * crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h: Removed.
2835         * crypto/parameters/CryptoAlgorithmRsaSsaKeyParams.h: Removed.
2836         * crypto/parameters/CryptoAlgorithmRsaSsaParams.h: Removed.
2837
2838 2013-11-12  Bem Jones-Bey  <bjonesbe@adobe.com>
2839
2840         Make the placed floats tree use LayoutUnit instead of int
2841         https://bugs.webkit.org/show_bug.cgi?id=124207
2842
2843         Reviewed by Alexandru Chiculita.
2844
2845         The dimensions of floats are in LayoutUnits, so it doesn't make sense
2846         to be converting to ints for use in the placed floats tree.
2847
2848         Also add missed "explicit" to single argument FloatingObjects
2849         constructor.
2850
2851         No new tests, no behavior change.
2852
2853         * rendering/FloatingObjects.cpp:
2854         (WebCore::rangesIntersect):
2855         (WebCore::ComputeFloatOffsetAdapter::ComputeFloatOffsetAdapter):
2856         (WebCore::ComputeFloatOffsetAdapter::lowValue):
2857         (WebCore::ComputeFloatOffsetAdapter::highValue):
2858         (WebCore::FindNextFloatLogicalBottomAdapter::FindNextFloatLogicalBottomAdapter):
2859         (WebCore::FindNextFloatLogicalBottomAdapter::lowValue):
2860         (WebCore::FindNextFloatLogicalBottomAdapter::highValue):
2861         * rendering/FloatingObjects.h:
2862         * rendering/RenderFlowThread.h:
2863
2864 2013-11-12  Alexey Proskuryakov  <ap@apple.com>
2865
2866         Implement key generation and JWK import for RSASSA-PKCS1-v1_5
2867         https://bugs.webkit.org/show_bug.cgi?id=124236
2868
2869         Build fix.
2870
2871         * crypto/mac/CryptoKeyRSAMac.cpp: (WebCore::CryptoKeyRSA::buildAlgorithmDescription):
2872         ifdef out some code on Mountain Lion. Bug 124249 track fixing this.
2873
2874 2013-11-12  Joseph Pecoraro  <pecoraro@apple.com>
2875
2876         Web Inspector: Extract InspectorAgentRegistry from InspectorBaseAgent
2877         https://bugs.webkit.org/show_bug.cgi?id=124190
2878
2879         Reviewed by Timothy Hatcher.
2880
2881         * CMakeLists.txt:
2882         * GNUmakefile.list.am:
2883         * WebCore.vcxproj/WebCore.vcxproj:
2884         * WebCore.vcxproj/WebCore.vcxproj.filters:
2885         * WebCore.xcodeproj/project.pbxproj:
2886         * inspector/InspectorAgentRegistry.cpp: Added.
2887         (WebCore::InspectorAgentRegistry::append):
2888         (WebCore::InspectorAgentRegistry::setFrontend):
2889         (WebCore::InspectorAgentRegistry::clearFrontend):
2890         (WebCore::InspectorAgentRegistry::registerInDispatcher):
2891         (WebCore::InspectorAgentRegistry::discardAgents):
2892         * inspector/InspectorAgentRegistry.h: Added.
2893         * inspector/InspectorAllInOne.cpp:
2894         * inspector/InspectorBaseAgent.cpp: Removed.
2895         * inspector/InspectorBaseAgent.h:
2896         (WebCore::InspectorBaseAgentInterface::InspectorBaseAgentInterface):
2897         (WebCore::InspectorBaseAgentInterface::~InspectorBaseAgentInterface):
2898         * inspector/InspectorController.h:
2899         * inspector/InspectorMemoryAgent.h:
2900         * inspector/WorkerInspectorController.h:
2901
2902 2013-11-12  Alexey Proskuryakov  <ap@apple.com>
2903
2904         Implement key generation and JWK import for RSASSA-PKCS1-v1_5
2905         https://bugs.webkit.org/show_bug.cgi?id=124236
2906
2907         Release build fix.
2908
2909         * bindings/js/JSCryptoAlgorithmBuilder.cpp: Include TypedArrayInlines.h
2910
2911 2013-11-12  Alexey Proskuryakov  <ap@apple.com>
2912
2913         Implement key generation and JWK import for RSASSA-PKCS1-v1_5
2914         https://bugs.webkit.org/show_bug.cgi?id=124236
2915
2916         Reviewed by Sam Weinig.
2917
2918         Tests: crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html
2919                crypto/subtle/rsassa-pkcs1-v1_5-import-jwk.html
2920
2921         * WebCore.xcodeproj/project.pbxproj: Added new files.
2922
2923         * bindings/js/JSCryptoAlgorithmBuilder.cpp:
2924         (WebCore::JSCryptoAlgorithmBuilder::add):
2925         * bindings/js/JSCryptoAlgorithmBuilder.h:
2926         * crypto/CryptoAlgorithmDescriptionBuilder.h:
2927         Added a way to add an Uint8Array, as needed for RSA key.algorithm.publicExponent.
2928
2929         * bindings/js/JSCryptoAlgorithmDictionary.cpp:
2930         (WebCore::createAesCbcParams): Removed unneeded JSC prefixes.
2931         (WebCore::createAesKeyGenParams): Ditto.
2932         (WebCore::createHmacParams): Ditto.
2933         (WebCore::createHmacKeyParams): Ditto.
2934         (WebCore::createRsaKeyGenParams): Added. 
2935         (WebCore::createRsaSsaKeyParams): Added. WebCrypto currently doesn't specify any
2936         parameters for importKey, so the structure remains blank (unlike with JWK).
2937         (WebCore::createRsaSsaParams): Added (currently unused, will be sued for sign/verify soon).
2938         (WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt): Removed unneeded JSC prefixes.
2939         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt): Ditto.
2940         (WebCore::JSCryptoAlgorithmDictionary::createParametersForSign): Added support for RSAES_PKCS1_v1_5.
2941         (WebCore::JSCryptoAlgorithmDictionary::createParametersForVerify): Ditto.
2942         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDigest): Removed unneeded JSC prefixes.
2943         (WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey): Ditto.
2944         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveKey): Ditto.
2945         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveBits): Ditto.
2946         (WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey): Added support for RSAES_PKCS1_v1_5.
2947         (WebCore::JSCryptoAlgorithmDictionary::createParametersForExportKey): Removed unneeded JSC prefixes.
2948         (WebCore::JSCryptoAlgorithmDictionary::createParametersForWrapKey): Ditto.
2949         (WebCore::JSCryptoAlgorithmDictionary::createParametersForUnwrapKey): Ditto.
2950
2951         * bindings/js/JSCryptoKeySerializationJWK.h:
2952         * bindings/js/JSCryptoKeySerializationJWK.cpp:
2953         (WebCore::getJSArrayFromJSON): Added.
2954         (WebCore::getBigIntegerVectorFromJSON): Added.
2955         (WebCore::createRSASSAKeyParameters): Create parameters for key import. The key
2956         will remember which algorithm it's allowed to be used with.
2957         (WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm): Added support for
2958         RS256...RS512 (tha is, RSAES_PKCS1_v1_5 with SHA-256...SHA-512).
2959         (WebCore::JSCryptoKeySerializationJWK::keyDataOctetSequence): Split out of keyData().
2960         (WebCore::JSCryptoKeySerializationJWK::keyDataRSAComponents): Added code to read
2961         RSA key components from JWK.
2962         (WebCore::JSCryptoKeySerializationJWK::keyData): Call one of the above functions.
2963
2964         * crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp: Added.
2965         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
2966         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
2967         Placeholders.
2968
2969         * crypto/CryptoKey.h: (WebCore::CryptoKeyClass): Added RSA key class for poor man's RTTI.
2970
2971         * crypto/CryptoKeyData.h: (WebCore::CryptoKeyData::FormatRSAComponents): Added RSAComponents
2972         for poor man's RTTI.
2973
2974         * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp: (WebCore::CryptoAlgorithmAES_CBC::importKey): 
2975         * crypto/algorithms/CryptoAlgorithmHMAC.cpp: (WebCore::CryptoAlgorithmHMAC::importKey):
2976         * crypto/keys/CryptoKeyAES.h:
2977         (WebCore::isCryptoKeyAES):
2978         (WebCore::toCryptoKeyAES):
2979         * crypto/keys/CryptoKeyDataOctetSequence.h:
2980         (WebCore::toCryptoKeyDataOctetSequence):
2981         * crypto/keys/CryptoKeyHMAC.h:
2982         (WebCore::isCryptoKeyHMAC):
2983         (WebCore::toCryptoKeyHMAC):
2984         * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
2985         (WebCore::CryptoAlgorithmAES_CBC::encrypt):
2986         (WebCore::CryptoAlgorithmAES_CBC::decrypt):
2987         * crypto/mac/CryptoAlgorithmHMACMac.cpp:
2988         (WebCore::CryptoAlgorithmHMAC::sign):
2989         (WebCore::CryptoAlgorithmHMAC::verify):
2990         Switched from "as" functions to "is" and "to" ones, as that's more idiomatic.
2991
2992         * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp: Added.
2993         * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h: Added.
2994         Glue code for importKey/generateKey for now.
2995
2996         * crypto/keys/CryptoKeyDataRSAComponents.cpp: Added.
2997         (WebCore::CryptoKeyDataRSAComponents::CryptoKeyDataRSAComponents):
2998         (WebCore::CryptoKeyDataRSAComponents::~CryptoKeyDataRSAComponents):
2999         * crypto/keys/CryptoKeyDataRSAComponents.h: Added.
3000         (WebCore::toCryptoKeyDataRSAComponents):
3001         Added a structure to hold RSA key components, extracted from JWK or another format.
3002
3003         * crypto/keys/CryptoKeyRSA.h: Added.
3004         * crypto/mac/CryptoKeyRSAMac.cpp: Added.
3005
3006         * crypto/mac/CryptoAlgorithmRegistryMac.cpp:
3007         (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
3008         Register RSASSA_PKCS1_v1_5.
3009
3010         * crypto/parameters/CryptoAlgorithmHmacKeyParams.h: Added a constructor to make
3011         sure that hasLength is never left uninitialized, even when reading formats that
3012         don't contain a length.
3013
3014         * crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h: Added.
3015         * crypto/parameters/CryptoAlgorithmRsaSsaKeyParams.h: Added.
3016         * crypto/parameters/CryptoAlgorithmRsaSsaParams.h: Added.
3017         Added parameter structures that are needed for RSASSA_PKCS1_v1_5.
3018
3019 2013-11-12  Bem Jones-Bey  <bjonesbe@adobe.com>
3020
3021         Move ValueToString out to its own header file to remove duplication
3022         https://bugs.webkit.org/show_bug.cgi?id=124237
3023
3024         Reviewed by Alexandru Chiculita.
3025
3026         The ValueToString struct is used in many places for debugging. Move it
3027         out to its own header file to remove all the duplicated definitions
3028         and make it possible for the specializations to be placed in the
3029         header files with the implementation of the classes they print.
3030
3031         No new tests, no behavior change.
3032
3033         * GNUmakefile.list.am:
3034         * WebCore.xcodeproj/project.pbxproj:
3035         * html/HTMLMediaElement.h:
3036         * platform/LayoutUnit.h:
3037         * platform/PODInterval.h:
3038         * platform/PODIntervalTree.h:
3039         * platform/PODRedBlackTree.h:
3040         * platform/ValueToString.h: Added.
3041         * platform/graphics/FloatPolygon.h:
3042         * rendering/FloatingObjects.cpp:
3043         * rendering/FloatingObjects.h:
3044         * rendering/RenderBlock.h:
3045         * rendering/RenderBlockFlow.h:
3046         * rendering/RenderFlowThread.h:
3047
3048 2013-11-11  David Hyatt  <hyatt@apple.com>
3049
3050         Make RenderBlockRareData be in a hashtable instead of being a member variable.
3051         https://bugs.webkit.org/show_bug.cgi?id=124056
3052
3053         Reviewed by Anders Carlsson.
3054
3055         Right now RenderBlock has 4 bytes taken up by a m_rareData member that is almost
3056         never allocated. This is better off in a separate hash, so that RenderBlock can
3057         get 4 bytes back.
3058         
3059         Since RenderBlockFlow's rare data member was recently removed and folded into
3060         RenderBlock, we need to undo that change and put the rare data member back in
3061         RenderBlockFlow. RenderBlockFlowRareData inheriting from RenderBlockRareData
3062         was not a good idea anyway, since RenderBlockFlows also very rarely need the
3063         RenderBlockRareData members, and were thus paying a heavier cost when the rare
3064         data was created than was necessary.
3065  
3066         * rendering/RenderBlock.cpp:
3067         (WebCore::RenderBlockRareData::RenderBlockRareData):
3068         (WebCore::RenderBlock::~RenderBlock):
3069         (WebCore::RenderBlock::hasRareData):
3070         (WebCore::getRareData):
3071         (WebCore::ensureRareData):
3072         (WebCore::RenderBlock::ensureShapeInsideInfo):
3073         (WebCore::RenderBlock::shapeInsideInfo):
3074         (WebCore::RenderBlock::setShapeInsideInfo):
3075         (WebCore::RenderBlock::paginationStrut):
3076         (WebCore::RenderBlock::pageLogicalOffset):
3077         (WebCore::RenderBlock::setPaginationStrut):
3078         (WebCore::RenderBlock::setPageLogicalOffset):
3079         * rendering/RenderBlock.h:
3080         * rendering/RenderBlockFlow.cpp:
3081         (WebCore::RenderBlockFlow::setMaxMarginBeforeValues):
3082         (WebCore::RenderBlockFlow::setMaxMarginAfterValues):
3083         (WebCore::RenderBlockFlow::setMustDiscardMarginBefore):
3084         (WebCore::RenderBlockFlow::setMustDiscardMarginAfter):
3085         (WebCore::RenderBlockFlow::mustDiscardMarginBefore):
3086         (WebCore::RenderBlockFlow::mustDiscardMarginAfter):
3087         (WebCore::RenderBlockFlow::setBreakAtLineToAvoidWidow):
3088         (WebCore::RenderBlockFlow::setDidBreakAtLineToAvoidWidow):
3089         (WebCore::RenderBlockFlow::clearDidBreakAtLineToAvoidWidow):
3090         (WebCore::RenderBlockFlow::clearShouldBreakAtLineToAvoidWidow):
3091         (WebCore::RenderBlockFlow::setRenderNamedFlowFragment):
3092         (WebCore::RenderBlockFlow::ensureRareBlockFlowData):
3093         (WebCore::RenderBlockFlow::materializeRareBlockFlowData):
3094         * rendering/RenderBlockFlow.h:
3095         (WebCore::RenderBlockFlow::shouldBreakAtLineToAvoidWidow):
3096         (WebCore::RenderBlockFlow::lineBreakToAvoidWidow):
3097         (WebCore::RenderBlockFlow::didBreakAtLineToAvoidWidow):
3098         (WebCore::RenderBlockFlow::lineGridBox):
3099         (WebCore::RenderBlockFlow::setLineGridBox):
3100         (WebCore::RenderBlockFlow::renderNamedFlowFragment):
3101         (WebCore::RenderBlockFlow::maxPositiveMarginBefore):
3102         (WebCore::RenderBlockFlow::maxNegativeMarginBefore):
3103         (WebCore::RenderBlockFlow::maxPositiveMarginAfter):
3104         (WebCore::RenderBlockFlow::maxNegativeMarginAfter):
3105         (WebCore::RenderBlockFlow::initMaxMarginValues):
3106         (WebCore::RenderBlockFlow::hasRareBlockFlowData):
3107         (WebCore::RenderBlockFlow::rareBlockFlowData):
3108
3109 2013-11-12  Alex Christensen  <achristensen@webkit.org>
3110
3111         Build GStreamer files on Windows.
3112         https://bugs.webkit.org/show_bug.cgi?id=124180
3113
3114         Reviewed by Brent Fulgham.
3115
3116         * WebCore.vcxproj/WebCore.vcxproj:
3117         * WebCore.vcxproj/WebCore.vcxproj.filters:
3118         * WebCore.vcxproj/copyForwardingHeaders.cmd:
3119         Include gstreamer files in WinCairo build.
3120
3121 2013-11-12  Brady Eidson  <beidson@apple.com>
3122
3123         Introduce IDBServerConnection (and start moving things to it).
3124         https://bugs.webkit.org/show_bug.cgi?id=124193
3125
3126         Reviewed by Alexey Proskuryakov.
3127
3128         IDBServerConnection will be a purely asynchronous interface for database connections, transactions, and cursors.
3129         Its interface will be 100% asynchronous and callback based - Perfect for an IPC divide.
3130         Eventually none of the IDB<Foo>Backend classes will need IDBBackingStore<Foo> classes at all, 
3131         and they’ll all use IDBServerConnection directly.
3132
3133         * CMakeLists.txt:
3134         * GNUmakefile.list.am:
3135         * WebCore.xcodeproj/project.pbxproj:
3136
3137         * Modules/indexeddb/IDBServerConnection.h: Added.
3138         (WebCore::IDBServerConnection::~IDBServerConnection):
3139
3140         Concrete implementation that - for now - wraps an IDBBackingStoreLevelDB:
3141         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp: Added.
3142         (WebCore::IDBServerConnectionLevelDB::IDBServerConnectionLevelDB):
3143         (WebCore::IDBServerConnectionLevelDB::deprecatedBackingStore):
3144         (WebCore::IDBServerConnectionLevelDB::isClosed):
3145         (WebCore::IDBServerConnectionLevelDB::getOrEstablishIDBDatabaseMetadata):
3146         (WebCore::IDBServerConnectionLevelDB::deleteDatabase):
3147         (WebCore::IDBServerConnectionLevelDB::close):
3148         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h: Added.
3149
3150         LevelDB created databases get LevelDB server connections:
3151         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
3152         (WebCore::IDBFactoryBackendLevelDB::deleteDatabase):
3153         (WebCore::IDBFactoryBackendLevelDB::open):
3154
3155         Replace most uses of IDBBackingStore with server connection:
3156         * Modules/indexeddb/IDBDatabaseBackend.cpp:
3157         (WebCore::IDBDatabaseBackend::create):
3158         (WebCore::IDBDatabaseBackend::IDBDatabaseBackend):
3159         (WebCore::IDBDatabaseBackend::openInternalAsync):
3160         (WebCore::IDBDatabaseBackend::setIndexKeys):
3161         (WebCore::IDBDatabaseBackend::openConnectionInternal):
3162         (WebCore::IDBDatabaseBackend::deleteDatabaseAsync):
3163         (WebCore::IDBDatabaseBackend::close):
3164         * Modules/indexeddb/IDBDatabaseBackend.h:
3165         (WebCore::IDBDatabaseBackend::serverConnection):
3166
3167         Change all the operations to access their DatabaseBackend’s server connection instead
3168         if hanging on to a backing store directly:
3169         * Modules/indexeddb/IDBTransactionBackend.cpp:
3170         (WebCore::IDBTransactionBackend::IDBTransactionBackend):
3171         (WebCore::IDBTransactionBackend::scheduleCreateObjectStoreOperation):
3172         (WebCore::IDBTransactionBackend::scheduleDeleteObjectStoreOperation):
3173         (WebCore::IDBTransactionBackend::scheduleCreateIndexOperation):
3174         (WebCore::IDBTransactionBackend::scheduleDeleteIndexOperation):
3175         (WebCore::IDBTransactionBackend::scheduleGetOperation):
3176         (WebCore::IDBTransactionBackend::schedulePutOperation):
3177         (WebCore::IDBTransactionBackend::scheduleOpenCursorOperation):
3178         (WebCore::IDBTransactionBackend::scheduleCountOperation):
3179         (WebCore::IDBTransactionBackend::scheduleDeleteRangeOperation):
3180         (WebCore::IDBTransactionBackend::scheduleClearOperation):
3181         * Modules/indexeddb/IDBTransactionBackend.h:
3182
3183         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
3184         (WebCore::CreateObjectStoreOperation::perform):
3185         (WebCore::CreateIndexOperation::perform):
3186         (WebCore::DeleteIndexOperation::perform):
3187         (WebCore::GetOperation::perform):
3188         (WebCore::PutOperation::perform):
3189         (WebCore::OpenCursorOperation::perform):
3190         (WebCore::CountOperation::perform):
3191         (WebCore::DeleteRangeOperation::perform):
3192         (WebCore::ClearOperation::perform):
3193         (WebCore::DeleteObjectStoreOperation::perform):
3194         (WebCore::IDBDatabaseBackend::VersionChangeOperation::perform):
3195         * Modules/indexeddb/IDBTransactionBackendOperations.h:
3196         (WebCore::CreateObjectStoreOperation::create):
3197         (WebCore::CreateObjectStoreOperation::CreateObjectStoreOperation):
3198         (WebCore::DeleteObjectStoreOperation::create):
3199         (WebCore::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
3200         (WebCore::CreateIndexOperation::create):
3201         (WebCore::CreateIndexOperation::CreateIndexOperation):
3202         (WebCore::DeleteIndexOperation::create):
3203         (WebCore::DeleteIndexOperation::DeleteIndexOperation):
3204         (WebCore::GetOperation::create):
3205         (WebCore::GetOperation::GetOperation):
3206         (WebCore::PutOperation::create):
3207         (WebCore::PutOperation::PutOperation):
3208         (WebCore::OpenCursorOperation::create):
3209         (WebCore::OpenCursorOperation::OpenCursorOperation):
3210         (WebCore::CountOperation::create):
3211         (WebCore::CountOperation::CountOperation):
3212         (WebCore::DeleteRangeOperation::create):
3213         (WebCore::DeleteRangeOperation::DeleteRangeOperation):
3214         (WebCore::ClearOperation::create):
3215         (WebCore::ClearOperation::ClearOperation):
3216         * Modules/indexeddb/IDBTransactionCoordinator.h:
3217
3218 2013-11-12  Brent Fulgham  <bfulgham@apple.com>
3219
3220         [Win] Unreviewed gardening.
3221
3222         * WebCore.vcxproj/WebCore.vcxproj.filters: Correct filter file so that source
3223         files show up in their proper directories in Visual Studio.
3224
3225 2013-11-12  Alex Christensen  <achristensen@webkit.org>
3226
3227         [WinCairo] Preparation for ENABLE(VIDEO).
3228         https://bugs.webkit.org/show_bug.cgi?id=57420
3229
3230         Reviewed by Martin Robinson.
3231
3232         * platform/FileSystem.h:
3233         * platform/graphics/MediaPlayer.cpp:
3234         * rendering/RenderMediaControls.cpp:
3235         * rendering/RenderThemeWin.cpp:
3236         (WebCore::RenderThemeWin::adjustSliderThumbSize):
3237         Separated CG code from GStreamer code.
3238
3239 2013-11-12  Tibor Meszaros  <mtibor@inf.u-szeged.hu>
3240
3241         Fix reported build warnings for GTK
3242         https://bugs.webkit.org/show_bug.cgi?id=123439
3243
3244         Reviewed by Carlos Garcia Campos.
3245
3246         There was a void method, that has return value in it's documentation, so I removed it.
3247
3248         * bindings/gobject/WebKitDOMCustom.h:
3249
3250 2013-11-12  Zan Dobersek  <zdobersek@igalia.com>
3251
3252         Manage StorageThread through std::unique_ptr
3253         https://bugs.webkit.org/show_bug.cgi?id=124197
3254
3255         Reviewed by Anders Carlsson.
3256
3257         New StorageThread objects are crafted through std::make_unique. This removes the need for the static
3258         StorageThread::create() method but requires that the StorageThread constructor is made public.
3259
3260         * storage/StorageSyncManager.cpp:
3261         (WebCore::StorageSyncManager::StorageSyncManager):
3262         * storage/StorageSyncManager.h:
3263         * storage/StorageThread.cpp:
3264         * storage/StorageThread.h:
3265         * storage/StorageTracker.cpp:
3266         (WebCore::StorageTracker::StorageTracker):
3267         * storage/StorageTracker.h:
3268
3269 2013-11-12  Zan Dobersek  <zdobersek@igalia.com>
3270
3271         Remove unnecessary PassOwnPtr.h header includes under Source/WebCore/fileapi
3272         https://bugs.webkit.org/show_bug.cgi?id=124196
3273
3274         Reviewed by Anders Carlsson.
3275
3276         PassOwnPtr is not used anywhere under Source/WebCore/fileapi/, so PassOwnPtr.h inclusions can be removed.
3277
3278         * fileapi/Blob.h:
3279         * fileapi/FileThread.h:
3280         * fileapi/FileThreadTask.h:
3281
3282 2013-11-12  Antti Koivisto  <antti@apple.com>
3283
3284         Text on simple lines sometimes paints one pixel off
3285         https://bugs.webkit.org/show_bug.cgi?id=124200
3286
3287         Reviewed by Andreas Kling.
3288
3289         Test: fast/text/line-runs-simple-lines.html
3290
3291         * rendering/SimpleLineLayout.cpp:
3292         (WebCore::SimpleLineLayout::adjustRunOffsets):
3293         
3294             Don't round on run construction time.
3295
3296         (WebCore::SimpleLineLayout::createTextRuns):
3297         * rendering/SimpleLineLayoutResolver.h:
3298         (WebCore::SimpleLineLayout::RunResolver::Run::rect):
3299         
3300             Instead round when generating rects.
3301
3302         (WebCore::SimpleLineLayout::RunResolver::Run::baseline):
3303         
3304             Provide the baseline (used by painting) as unrounded FloatPoint.
3305
3306 2013-11-11  Andreas Kling  <akling@apple.com>
3307
3308         Elements with class names automatically get unique ElementData.
3309         <https://webkit.org/b/124184>
3310
3311         We were calling Element::ensureUniqueElementData() for all Elements
3312         with a non-empty list of class names. Doing that on parser-fresh
3313         Elements caused us to upgrade them to UniqueElementData despite not
3314         needing it (ElementData::setClass() is a const function for caching
3315         the "cooked" class and can be called on ShareableElementData.)
3316
3317         1.09 MB progression on HTML5 spec at <http://whatwg.org/c>
3318
3319         Reviewed by Antti Koivisto.
3320
3321 2013-11-12  Zan Dobersek  <zdobersek@igalia.com>
3322
3323         JSC bindings generator should generate deletable JSC functions
3324         https://bugs.webkit.org/show_bug.cgi?id=122422
3325
3326         Reviewed by Geoffrey Garen.
3327
3328         The JSC functions that the JSC bindings generator generates should be deletable to conform to
3329         the WebIDL specification, which instructs that the WebIDL operations must be configurable (which
3330         translates to the JSC functions being deletable).
3331
3332         The generator will still produce a non-deletable JSC function for operations under almost all
3333         Web-facing interfaces since they're annotated with the OperationsNotDeletable attribute. The
3334         exception here is the Node interface that is having the attribute removed, with the provided
3335         test case testing that all the functions on the Node prototype object are writable, enumerable
3336         and configurable. This behavior conforms to the WebIDL specification and the behaviors of IE
3337         and Firefox. Chrome at the moment still provides non-configurable functions.
3338
3339         Test: fast/dom/webidl-operations-on-node-prototype.html
3340
3341         * bindings/scripts/CodeGeneratorJS.pm:
3342         (GenerateImplementation): Enforce the non-deletable behavior of the JSC function if either the
3343         operation's interface is annotated with the OperationsNotDeletable attribute or the operation itself
3344         is annotated with the NotDeletable attribute.
3345         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: Update the JSC generator test baselines.
3346         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: Ditto.
3347         * bindings/scripts/test/JS/JSTestEventTarget.cpp: Ditto.
3348         * bindings/scripts/test/JS/JSTestInterface.cpp: Ditto.
3349         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: Ditto.
3350         * bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
3351         * bindings/scripts/test/JS/JSTestTypedefs.cpp: Ditto.
3352         * dom/Node.idl: Remove the OperationsNotDeletable attribute.
3353
3354 2013-11-11  Brady Eidson  <beidson@apple.com>
3355
3356         Make IDBTransaction tasks asynchronous
3357         https://bugs.webkit.org/show_bug.cgi?id=124183
3358
3359         Reviewed by Tim Horton.
3360
3361         This is an almost zero-change in behavior.
3362
3363         The one thing that is different is that previously, IDBTransactionBackends would synchronously
3364         run through their entire set of IDBOperation’s without ever returning control to the runloop.
3365
3366         Now, they start one task and then wait for its completion to schedule the start of the next task.
3367
3368         Change IDBOperation’s perform() to take a completion handler so it can be asynchronous.
3369         Add an IDBSynchronousOperation class to handle "Abort" tasks, which never need to perform i/o
3370         and therefore can be entirely synchronous.
3371         * Modules/indexeddb/IDBOperation.h:
3372         (WebCore::IDBSynchronousOperation::~IDBSynchronousOperation):
3373
3374         * Modules/indexeddb/IDBTransactionBackend.cpp:
3375         (WebCore::IDBTransactionBackend::scheduleTask): "Abort tasks" are now IDBSynchronousOperations.
3376         (WebCore::IDBTransactionBackend::abort):
3377         (WebCore::IDBTransactionBackend::taskTimerFired): Instead of running through the entire set of tasks,
3378           perform a single task asynchronously. The completion handler for the task will reset the task timer
3379           to asynchronously start the next task.
3380         * Modules/indexeddb/IDBTransactionBackend.h:
3381         (WebCore::IDBTransactionBackend::scheduleTask): "Abort tasks" are now IDBSynchronousOperations.
3382
3383         Update all operations to take completion handlers.
3384         For now, perform things synchronously like before, calling the completion handler when complete.
3385         * Modules/indexeddb/IDBCursorBackend.cpp:
3386         (WebCore::CallOnDestruct::CallOnDestruct): Helper class to make sure completion callbacks are always called perform() exits.
3387         (WebCore::CallOnDestruct::~CallOnDestruct):
3388         (WebCore::IDBCursorBackend::CursorIterationOperation::create):
3389         (WebCore::IDBCursorBackend::CursorAdvanceOperation::create):
3390         (WebCore::IDBCursorBackend::CursorPrefetchIterationOperation::create):
3391         (WebCore::IDBCursorBackend::CursorAdvanceOperation::perform):
3392         (WebCore::IDBCursorBackend::CursorIterationOperation::perform):
3393         (WebCore::IDBCursorBackend::CursorPrefetchIterationOperation::perform):
3394
3395         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
3396         (WebCore::CallOnDestruct::CallOnDestruct): Helper class to make sure completion callbacks are always called when perform() exits.
3397         (WebCore::CallOnDestruct::~CallOnDestruct):
3398         (WebCore::CreateObjectStoreOperation::perform):
3399         (WebCore::CreateIndexOperation::perform):
3400         (WebCore::DeleteIndexOperation::perform):
3401         (WebCore::GetOperation::perform):
3402         (WebCore::PutOperation::perform):
3403         (WebCore::SetIndexesReadyOperation::perform):
3404         (WebCore::OpenCursorOperation::perform):
3405         (WebCore::CountOperation::perform):
3406         (WebCore::DeleteRangeOperation::perform):
3407         (WebCore::ClearOperation::perform):
3408         (WebCore::DeleteObjectStoreOperation::perform):
3409         (WebCore::IDBDatabaseBackend::VersionChangeOperation::perform):
3410
3411         * Modules/indexeddb/IDBTransactionBackendOperations.h:
3412         (WebCore::CreateObjectStoreOperation::create):
3413         (WebCore::DeleteObjectStoreOperation::create):
3414         (WebCore::IDBDatabaseBackend::VersionChangeOperation::create):
3415         (WebCore::CreateObjectStoreAbortOperation::create):
3416         (WebCore::DeleteObjectStoreAbortOperation::create):
3417         (WebCore::IDBDatabaseBackend::VersionChangeAbortOperation::create):
3418         (WebCore::CreateIndexOperation::create):
3419         (WebCore::CreateIndexAbortOperation::create):
3420         (WebCore::DeleteIndexOperation::create):
3421         (WebCore::DeleteIndexAbortOperation::create):
3422         (WebCore::GetOperation::create):
3423         (WebCore::PutOperation::create):
3424         (WebCore::SetIndexesReadyOperation::create):
3425         (WebCore::OpenCursorOperation::create):
3426         (WebCore::CountOperation::create):
3427         (WebCore::DeleteRangeOperation::create):
3428         (WebCore::ClearOperation::create):
3429
3430 2013-11-11  Joseph Pecoraro  <pecoraro@apple.com>
3431
3432         Web Inspector: Remove some unused generated code
3433         https://bugs.webkit.org/show_bug.cgi?id=124179
3434
3435         Reviewed by Timothy Hatcher.
3436
3437         * inspector/CodeGeneratorInspectorStrings.py:
3438
3439 2013-11-11  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3440
3441         Clean up static_cast<Element*> usage
3442         https://bugs.webkit.org/show_bug.cgi?id=124133
3443
3444         Reviewed by Andreas Kling.
3445
3446         We need to use toFoo cast function instead of static_cast<>. Though there is toElement(),
3447         static_cast<Element*> is still being used.
3448
3449         No new tests, no behavior changes.
3450
3451         * bindings/gobject/WebKitDOMPrivate.cpp:
3452         (WebKit::wrap):
3453         * dom/ElementTraversal.h:
3454         (WebCore::::lastWithinTemplate):
3455         (WebCore::::nextTemplate):
3456         (WebCore::::previousTemplate):
3457
3458 2013-11-11  Anders Carlsson  <andersca@apple.com>
3459
3460         FrameFilter can just be an std::function instead
3461         https://bugs.webkit.org/show_bug.cgi?id=124176
3462
3463         Reviewed by Tim Horton.
3464
3465         * WebCore.exp.in:
3466         * loader/archive/cf/LegacyWebArchive.cpp:
3467         (WebCore::LegacyWebArchive::create):
3468         * loader/archive/cf/LegacyWebArchive.h:
3469
3470 2013-11-11  Simon Fraser  <simon.fraser@apple.com>
3471
3472         REGRESSION (r155660): box-shadow causes overlay scrollbars to be in the wrong position when element is composited (85647)
3473         https://bugs.webkit.org/show_bug.cgi?id=124090
3474
3475         Reviewed by Beth Dakin.
3476         
3477         After r155660 we did fewer layouts, so were left with overlay scrollbars in the
3478         wrong locations because nothing would update them after RenderLayerBacking
3479         computed a new offsetFromRenderer.
3480         
3481         First part of the fix is to wean positionOverflowControlsLayers() off of
3482         an absolute offset from the root. Do this by not using Widget::frameRect()
3483         to position the layers, but instead RenderLayer::rectFor{Horizontal|Vertical}Scrollbar
3484         which is what we used to position the scrollbars in the first place.
3485         
3486         Second part of the fix is to call positionOverflowControlsLayers() from
3487         RenderLayerBacking::updateGraphicsLayerGeometry() if the offsetFromRenderer
3488         changed.
3489
3490         Test: compositing/overflow/overflow-scrollbar-layer-positions.html
3491
3492         * rendering/RenderLayer.cpp:
3493         (WebCore::RenderLayer::positionOverflowControls):
3494         * rendering/RenderLayerBacking.cpp:
3495         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
3496         (WebCore::RenderLayerBacking::positionOverflowControlsLayers):
3497         * rendering/RenderLayerBacking.h:
3498
3499 2013-11-11  Brent Fulgham  <bfulgham@apple.com>
3500
3501         [Win] m_isCompositeFontReference is uninitialized.
3502         https://bugs.webkit.org/show_bug.cgi?id=124170
3503
3504         Reviewed by Tim Horton.
3505
3506         Initialize value to false, as is done in the other constructors for this data type.
3507
3508         * platform/graphics/win/FontPlatformDataCGWin.cpp:
3509         (WebCore::FontPlatformData::FontPlatformData): 
3510         * platform/graphics/win/FontPlatformDataCairoWin.cpp:
3511         (WebCore::FontPlatformData::FontPlatformData):
3512         * platform/graphics/win/FontPlatformDataWin.cpp:
3513         (WebCore::FontPlatformData::FontPlatformData):
3514
3515 2013-11-11  Myles C. Maxfield  <mmaxfield@apple.com>
3516
3517         [Mac] Characters too close together in complex Arabic text
3518         https://bugs.webkit.org/show_bug.cgi?id=124057
3519
3520         Reviewed by Darin Adler.
3521
3522         We weren't updating our total width variable with run's initial
3523         advance information, leading to widths that were too narrow.
3524
3525         In addition, while initial advances for runs that aren't the first
3526         run are accounted for by baking in the initial advances into the
3527         previous character's advance, the initial advance for the first run
3528         has to be accounted for in ComplexTextController::offsetForPosition.
3529
3530         Test: fast/text/complex-grapheme-cluster-with-initial-advance.html
3531         Test: fast/text/selection-in-initial-advance-region.html
3532
3533         * platform/graphics/mac/ComplexTextController.cpp:
3534         (WebCore::ComplexTextController::adjustGlyphsAndAdvances): Update
3535         total width variable
3536         (WebCore::ComplexTextController::offsetOfPosition): Account for
3537         the first run's initial advance.
3538
3539 2013-11-11  Brady Eidson  <beidson@apple.com>
3540
3541         Make IDBBackingStoreTransaction be RefCounted
3542         https://bugs.webkit.org/show_bug.cgi?id=124168
3543
3544         Reviewed by Tim Horton.
3545
3546         This is necessarily to safely add a fully asynchronous interface into the IDB mechanism.
3547
3548         * Modules/indexeddb/IDBBackingStoreInterface.h:
3549         * Modules/indexeddb/IDBBackingStoreTransactionInterface.h:
3550         * Modules/indexeddb/IDBTransactionBackend.h:
3551
3552         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
3553         (WebCore::IDBBackingStoreLevelDB::createBackingStoreTransaction):
3554         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
3555         * Modules/indexeddb/leveldb/IDBBackingStoreTransactionLevelDB.h:
3556
3557 2013-11-11  Antti Koivisto  <antti@apple.com>
3558
3559         End of line whitespace should collapse with white-space:pre-wrap; overflow-wrap:break-word in all cases
3560         https://bugs.webkit.org/show_bug.cgi?id=124158
3561
3562         Reviewed by Dave Hyatt.
3563         
3564         If a word just fits the line but the following space overflows we fail to collapse whitespaces 
3565         at the end of the line. This happens because with break-word we end up taking word breaking
3566         code path that does not have pre-wrap whitespace handling.
3567         
3568         This patch makes the behavior consistent and also matches Firefox.
3569
3570         Test: fast/text/break-word-pre-wrap.html
3571
3572         * rendering/RenderBlockLineLayout.cpp:
3573         (WebCore::BreakingContext::handleText):
3574         
3575             Don't take the word break code path if we are pre-wrap and the current character is space.
3576             Instead proceed to break the line normally as this is a valid break position.
3577
3578 2013-11-11  Bear Travis  <betravis@adobe.com>
3579
3580         Web Inspector: [CSS Shapes] Highlight shape-outside when its element is selected in the Web Inspector
3581         https://bugs.webkit.org/show_bug.cgi?id=124071
3582
3583         Reviewed by Timothy Hatcher.
3584
3585         Adding code to pass computed shape information (path and bounds) to the Inspector overlay
3586         canvas, and the code to display it. The code creates a path based on ShapeInfo's computed
3587         shape. The shape highlight draws whenever an element is highlighted, via selection in
3588         the Inspector elements view.
3589
3590         Test: inspector-protocol/model/highlight-shape-outside.html
3591
3592         * inspector/InspectorOverlay.cpp:
3593         (WebCore::localPointToRoot): Convert a local point to be relative to the root view.
3594         (WebCore::appendPathCommandAndPoints): Helper for building a single segment's worth
3595         of the overall path.
3596         (WebCore::appendPathSegment): Build a single segment's worth of the overall path.
3597         (WebCore::buildObjectForShapeOutside): Build an object to pass to the Inspector overlay
3598         that represents the shape.
3599         (WebCore::buildObjectForElementInfo): Call buildObjectForShapeOutside and pass the
3600         resulting object along.
3601         * inspector/InspectorOverlayPage.js:
3602         (pathCommand): Draw a single path command.
3603         (drawPath): Draw the overall path.
3604         (_drawShapeHighlight): Draw the highlight for the given shapeInfo.
3605         (drawNodeHighlight): Call _drawShapeHighlight.
3606         * rendering/shapes/PolygonShape.h:
3607         (WebCore::PolygonShape::polygon): Expose the underlying vertex information for a
3608         PolygonShape.
3609         * rendering/shapes/RasterShape.h:
3610         * rendering/shapes/RectangleShape.h:
3611         (WebCore::RectangleShape::logicalRx): Expose the logical radii for a shape.
3612         (WebCore::RectangleShape::logicalRy): Ditto.
3613         * rendering/shapes/Shape.h:
3614         * rendering/shapes/ShapeInfo.h:
3615         (WebCore::ShapeInfo::computedShapePhysicalBoundingBox): The physical bounds of a
3616         shape in renderer coordinates.
3617         (WebCore::ShapeInfo::shapeToRendererPoint): Convert shape coordinates to renderer
3618         coordinates.
3619         (WebCore::ShapeInfo::shapeToRendererSize): Ditto.
3620         (WebCore::ShapeInfo::ShapeInfo):
3621
3622 2013-11-11  Alexey Proskuryakov  <ap@apple.com>
3623
3624         Support WebCrypto KeyPair interface
3625         https://bugs.webkit.org/show_bug.cgi?id=124161
3626
3627         Reviewed by Geoffrey Garen.
3628
3629         No new tests yet, will be tested once generateKey is implemented for any RSA algorithms.
3630
3631         * CMakeLists.txt:
3632         * DerivedSources.make:
3633         * GNUmakefile.list.am:
3634         * WebCore.xcodeproj/project.pbxproj:
3635         Added new files.
3636
3637         * bindings/js/JSDOMPromise.h: Support returning a key pair via a promise.
3638
3639         * bindings/js/JSCryptoKeyPairCustom.cpp: Added.
3640         (WebCore::JSCryptoKeyPair::visitChildren):
3641         * crypto/CryptoKey.idl:
3642         CryptoKey wrapper is reachable through KeyPair, but it doesn't have (or need)
3643         a back pointer.
3644
3645         * crypto/CryptoKeyPair.cpp: Added.
3646         (WebCore::CryptoKeyPair::CryptoKeyPair):
3647         (WebCore::CryptoKeyPair::~CryptoKeyPair):
3648         * crypto/CryptoKeyPair.h: Added.
3649         (WebCore::CryptoKeyPair::create):
3650         (WebCore::CryptoKeyPair::publicKey):
3651         (WebCore::CryptoKeyPair::privateKey):
3652         * crypto/CryptoKeyPair.idl: Added.
3653
3654 2013-11-11  Nick Diego Yamane  <nick.yamane@openbossa.org>
3655
3656         Fix build after r158967
3657         https://bugs.webkit.org/show_bug.cgi?id=124160
3658
3659         Reviewed by Anders Carlsson.
3660
3661         After r158967, gcc debug builds with "-Werror=type-limits" enabled
3662         fail. This patch fixes it.
3663
3664         * rendering/shapes/RasterShape.h:
3665         (WebCore::RasterShapeIntervals::intervalsAt):
3666
3667 2013-11-11  Zan Dobersek  <zdobersek@igalia.com>
3668
3669         Remove the OperationsNotDeletable attribute from most of the WebIDL interfaces
3670         https://bugs.webkit.org/show_bug.cgi?id=124151
3671
3672         Reviewed by Geoffrey Garen.
3673
3674         The OperationsNotDeletable attribute currently doesn't have any effect, but will soon enforce
3675         non-configurability of operations on the interface that uses the attribute. Non-configurability
3676         of operations is the default behavior at the moment, but will be changed to follow the WebIDL
3677         specification which requires that the operations are configurable (i.e. -- in JSC terms -- deletable).
3678         IE and Firefox already exhibit this behavior in the majority of cases, while Chrome and Opera don't.
3679
3680         The attribute remains in use on the Location interface to mimic the Unforgeable attribute which
3681         also makes operations of an interface non-configurable. Unforgeable attribute will be used instead
3682         when support for it will be added to the JSC bindings generator.
3683
3684         * Modules/battery/BatteryManager.idl:
3685         * Modules/encryptedmedia/MediaKeySession.idl:
3686         * Modules/encryptedmedia/MediaKeys.idl:
3687         * Modules/gamepad/GamepadList.idl:
3688         * Modules/geolocation/Geolocation.idl:
3689         * Modules/indexeddb/IDBCursor.idl:
3690         * Modules/indexeddb/IDBDatabase.idl:
3691         * Modules/indexeddb/IDBFactory.idl:
3692         * Modules/indexeddb/IDBIndex.idl:
3693         * Modules/indexeddb/IDBKeyRange.idl:
3694         * Modules/indexeddb/IDBObjectStore.idl:
3695         * Modules/indexeddb/IDBTransaction.idl:
3696         * Modules/indexeddb/IDBVersionChangeEvent.idl:
3697         * Modules/mediacontrols/MediaControlsHost.idl:
3698         * Modules/mediasource/MediaSource.idl:
3699         * Modules/mediasource/SourceBuffer.idl:
3700         * Modules/mediasource/SourceBufferList.idl:
3701         * Modules/mediastream/MediaStream.idl:
3702         * Modules/mediastream/MediaStreamTrack.idl:
3703         * Modules/mediastream/RTCDTMFSender.idl:
3704         * Modules/mediastream/RTCDataChannel.idl:
3705         * Modules/mediastream/RTCPeerConnection.idl:
3706         * Modules/mediastream/RTCStatsReport.idl:
3707         * Modules/mediastream/RTCStatsResponse.idl:
3708         * Modules/networkinfo/NetworkInfoConnection.idl:
3709         * Modules/notifications/Notification.idl:
3710         * Modules/notifications/NotificationCenter.idl:
3711         * Modules/proximity/DeviceProximityEvent.idl:
3712         * Modules/quota/StorageInfo.idl:
3713         * Modules/quota/StorageQuota.idl:
3714         * Modules/speech/SpeechGrammarList.idl:
3715         * Modules/speech/SpeechRecognition.idl:
3716         * Modules/speech/SpeechRecognitionResult.idl:
3717         * Modules/speech/SpeechRecognitionResultList.idl:
3718         * Modules/speech/SpeechSynthesis.idl:
3719         * Modules/webaudio/AnalyserNode.idl:
3720         * Modules/webaudio/AudioBuffer.idl:
3721         * Modules/webaudio/AudioBufferSourceNode.idl:
3722         * Modules/webaudio/AudioContext.idl:
3723         * Modules/webaudio/AudioListener.idl:
3724         * Modules/webaudio/AudioNode.idl:
3725         * Modules/webaudio/AudioParam.idl:
3726         * Modules/webaudio/BiquadFilterNode.idl:
3727         * Modules/webaudio/OscillatorNode.idl:
3728         * Modules/webaudio/PannerNode.idl:
3729         * Modules/webdatabase/Database.idl:
3730         * Modules/webdatabase/DatabaseSync.idl:
3731         * Modules/webdatabase/SQLResultSetRowList.idl:
3732         * Modules/webdatabase/SQLTransaction.idl:
3733         * Modules/webdatabase/SQLTransactionSync.idl:
3734         * Modules/websockets/WebSocket.idl:
3735         * crypto/CryptoKey.idl:
3736         * crypto/SubtleCrypto.idl:
3737         * css/CSSHostRule.idl:
3738         * css/CSSMediaRule.idl:
3739         * css/CSSPrimitiveValue.idl:
3740         * css/CSSRuleList.idl:
3741         * css/CSSStyleDeclaration.idl:
3742         * css/CSSStyleSheet.idl:
3743         * css/CSSSupportsRule.idl:
3744         * css/CSSValueList.idl:
3745         * css/DOMWindowCSS.idl:
3746         * css/FontLoader.idl:
3747         * css/MediaList.idl:
3748         * css/MediaQueryList.idl:
3749         * css/MediaQueryListListener.idl:
3750         * css/StyleMedia.idl:
3751         * css/StyleSheet.idl:
3752         * css/StyleSheetList.idl:
3753         * css/WebKitCSSFilterValue.idl:
3754         * css/WebKitCSSKeyframesRule.idl:
3755         * css/WebKitCSSMatrix.idl:
3756         * css/WebKitCSSTransformValue.idl:
3757         * dom/CharacterData.idl:
3758         * dom/ChildNode.idl:
3759         * dom/ClientRectList.idl:
3760         * dom/Clipboard.idl:
3761         * dom/CompositionEvent.idl:
3762         * dom/CustomEvent.idl:
3763         * dom/DOMCoreException.idl:
3764         * dom/DOMImplementation.idl:
3765         * dom/DOMNamedFlowCollection.idl:
3766         * dom/DOMStringList.idl:
3767         * dom/DOMStringMap.idl:
3768         * dom/DataTransferItem.idl:
3769         * dom/DataTransferItemList.idl:
3770         * dom/DeviceMotionEvent.idl:
3771         * dom/DeviceOrientationEvent.idl:
3772         * dom/Document.idl:
3773         * dom/DocumentFragment.idl:
3774         * dom/DocumentType.idl:
3775         * dom/Element.idl:
3776         * dom/Event.idl:
3777         * dom/EventException.idl:
3778         * dom/EventListener.idl:
3779         * dom/EventTarget.idl:
3780         * dom/HashChangeEvent.idl:
3781         * dom/KeyboardEvent.idl:
3782         * dom/MessageEvent.idl:
3783         * dom/MessagePort.idl:
3784         * dom/MouseEvent.idl:
3785         * dom/MutationEvent.idl:
3786         * dom/MutationObserver.idl:
3787         * dom/NamedNodeMap.idl:
3788         * dom/Node.idl:
3789         * dom/NodeFilter.idl:
3790         * dom/NodeIterator.idl:
3791         * dom/NodeList.idl:
3792         * dom/Range.idl:
3793         * dom/RangeException.idl:
3794         * dom/ShadowRoot.idl:
3795         * dom/Text.idl:
3796         * dom/TextEvent.idl:
3797         * dom/TouchEvent.idl:
3798         * dom/TouchList.idl:
3799         * dom/TreeWalker.idl:
3800         * dom/UIEvent.idl:
3801         * dom/WebKitNamedFlow.idl:
3802         * dom/WheelEvent.idl:
3803         * fileapi/Blob.idl:
3804         * fileapi/FileException.idl:
3805         * fileapi/FileList.idl:
3806         * fileapi/FileReader.idl:
3807         * fileapi/FileReaderSync.idl:
3808         * html/DOMFormData.idl:
3809         * html/DOMSettableTokenList.idl:
3810         * html/DOMTokenList.idl:
3811         * html/DOMURL.idl:
3812         * html/HTMLAllCollection.idl:
3813         * html/HTMLAnchorElement.idl:
3814         * html/HTMLButtonElement.idl:
3815         * html/HTMLCanvasElement.idl:
3816         * html/HTMLCollection.idl:
3817         * html/HTMLDocument.idl:
3818         * html/HTMLElement.idl:
3819         * html/HTMLEmbedElement.idl:
3820         * html/HTMLFieldSetElement.idl:
3821         * html/HTMLFormControlsCollection.idl:
3822         * html/HTMLFormElement.idl:
3823         * html/HTMLFrameElement.idl:
3824         * html/HTMLIFrameElement.idl:
3825         * html/HTMLInputElement.idl:
3826         * html/HTMLKeygenElement.idl:
3827         * html/HTMLMarqueeElement.idl:
3828         * html/HTMLMediaElement.idl:
3829         * html/HTMLObjectElement.idl:
3830         * html/HTMLOptionsCollection.idl:
3831         * html/HTMLOutputElement.idl:
3832         * html/HTMLSelectElement.idl:
3833         * html/HTMLTableElement.idl:
3834         * html/HTMLTableRowElement.idl:
3835         * html/HTMLTableSectionElement.idl:
3836         * html/HTMLTextAreaElement.idl:
3837         * html/HTMLVideoElement.idl:
3838         * html/MediaController.idl:
3839         * html/RadioNodeList.idl:
3840         * html/TimeRanges.idl:
3841         * html/canvas/CanvasGradient.idl:
3842         * html/canvas/CanvasRenderingContext2D.idl:
3843         * html/canvas/DOMPath.idl:
3844         * html/canvas/EXTDrawBuffers.idl:
3845         * html/canvas/OESVertexArrayObject.idl:
3846         * html/canvas/WebGLDebugShaders.idl:
3847         * html/canvas/WebGLLoseContext.idl:
3848         * html/canvas/WebGLRenderingContext.idl:
3849         * html/track/AudioTrackList.idl:
3850         * html/track/TextTrack.idl:
3851         * html/track/TextTrackCue.idl:
3852         * html/track/TextTrackCueList.idl:
3853         * html/track/TextTrackList.idl:
3854         * html/track/TextTrackRegionList.idl:
3855         * html/track/VideoTrackList.idl:
3856         * loader/appcache/DOMApplicationCache.idl:
3857         * page/Console.idl:
3858         * page/Crypto.idl:
3859         * page/DOMSecurityPolicy.idl:
3860         * page/DOMSelection.idl:
3861         * page/DOMWindow.idl:
3862         * page/EventSource.idl:
3863         * page/History.idl:
3864         * page/Navigator.idl:
3865         * page/Performance.idl:
3866         * page/PerformanceEntryList.idl:
3867         * page/SpeechInputResultList.idl:
3868         * page/WindowBase64.idl:
3869         * page/WindowTimers.idl:
3870         * plugins/DOMMimeTypeArray.idl:
3871         * plugins/DOMPlugin.idl:
3872         * plugins/DOMPluginArray.idl:
3873         * storage/Storage.idl:
3874         * storage/StorageEvent.idl:
3875         * svg/SVGAngle.idl:
3876         * svg/SVGAnimationElement.idl:
3877         * svg/SVGColor.idl:
3878         * svg/SVGCursorElement.idl:
3879         * svg/SVGDocument.idl:
3880         * svg/SVGElement.idl:
3881         * svg/SVGElementInstanceList.idl:
3882         * svg/SVGException.idl:
3883         * svg/SVGFEDropShadowElement.idl:
3884         * svg/SVGFEGaussianBlurElement.idl:
3885         * svg/SVGFEMorphologyElement.idl:
3886         * svg/SVGFilterElement.idl:
3887         * svg/SVGGraphicsElement.idl:
3888         * svg/SVGLength.idl:
3889         * svg/SVGLengthList.idl:
3890         * svg/SVGMarkerElement.idl:
3891         * svg/SVGMaskElement.idl:
3892         * svg/SVGMatrix.idl:
3893         * svg/SVGNumberList.idl:
3894         * svg/SVGPaint.idl:
3895         * svg/SVGPathElement.idl:
3896         * svg/SVGPathSegList.idl:
3897         * svg/SVGPatternElement.idl:
3898         * svg/SVGPoint.idl:
3899         * svg/SVGPointList.idl:
3900         * svg/SVGSVGElement.idl:
3901         * svg/SVGStringList.idl:
3902         * svg/SVGTests.idl:
3903         * svg/SVGTextContentElement.idl:
3904         * svg/SVGTransform.idl:
3905         * svg/SVGTransformList.idl:
3906         * workers/DedicatedWorkerGlobalScope.idl:
3907         * workers/Worker.idl:
3908         * workers/WorkerGlobalScope.idl:
3909         * workers/WorkerLocation.idl:
3910         * xml/DOMParser.idl:
3911         * xml/XMLHttpRequest.idl:
3912         * xml/XMLHttpRequestException.idl:
3913         * xml/XMLHttpRequestUpload.idl:
3914         * xml/XMLSerializer.idl:
3915         * xml/XPathEvaluator.idl:
3916         * xml/XPathException.idl:
3917         * xml/XPathExpression.idl:
3918         * xml/XPathNSResolver.idl:
3919         * xml/XPathResult.idl:
3920         * xml/XSLTProcessor.idl:
3921
3922 2013-11-11  Javier Fernandez  <jfernandez@igalia.com>
3923
3924         [CSS Regions] Selection focusNode set to the "region" block, instead of the "source" block
3925         https://bugs.webkit.org/show_bug.cgi?id=120769
3926
3927         Reviewed by David Hyatt.
3928
3929         When a point hits a Region block, current positionForPoint algorithm determines its
3930         position in the DOM and returns either the start or end offset for such block, since
3931         Region blocks have no children in the DOM.
3932
3933         It's necessary to map the point into Flow Thread coordinates in order to determine
3934         the DOM position of the specific element rendered by the Region.
3935
3936         Top margin, padding and border points should be mapped to the beginning of the Region
3937         block, while bottom points are mapped to the block end. The Left coordinate its just
3938         adjusted to fit in the Flow Thread boundaries, since its not affected by the Flow
3939         direction.
3940
3941         Besides, when inspecting the Flow Thread blocks looking for the last candidate box,
3942         the Region originally associated to the point might be taken into account. Only the
3943         blocks/boxes rendered by the Region are potential candidates.
3944
3945         Tests: fast/regions/selection/position-for-point-1-vert-lr.html
3946                fast/regions/selection/position-for-point-1-vert-rl.html
3947                fast/regions/selection/position-for-point-1.html
3948                fast/regions/selection/position-for-point-vert-lr.html
3949                fast/regions/selection/position-for-point-vert-rl.html
3950                fast/regions/selection/position-for-point.html
3951
3952         * rendering/RenderBlock.cpp:
3953         (WebCore::isChildHitTestCandidate):
3954         (WebCore::RenderBlock::positionForPoint):
3955         * rendering/RenderBlockFlow.cpp:
3956         (WebCore::RenderBlockFlow::positionForPoint): Added.
3957         It just redirects the call to the associated RenderNamedFlowFragment instance.
3958         * rendering/RenderBlockFlow.h:
3959         * rendering/RenderRegion.cpp:
3960         (WebCore::RenderRegion::mapRegionPointIntoFlowThreadCoordinates): Added.
3961         It performs the coordinates mapping.
3962         (WebCore::RenderRegion::positionForPoint): Added.
3963         It determines the corresponding LayoutPoint in the FlowThread the Region
3964         is associated to, forwarding the call to the RenderBlock class using the
3965         FlowThread's first child block and such new point.
3966         * rendering/RenderRegion.h:
3967
3968 2013-11-11  Gergo Balogh  <geryxyz@inf.u-szeged.hu>
3969
3970         [curl] Remove unused includes.
3971         https://bugs.webkit.org/show_bug.cgi?id=120415
3972
3973         Reviewed by Csaba Osztrogonác.
3974
3975         Original patch by 2013-08-28  Tamas Czene  <tczene@inf.u-szeged.hu>
3976
3977         * platform/network/curl/ProxyServerCurl.cpp:
3978         * platform/network/curl/ResourceHandleCurl.cpp:
3979         * platform/network/curl/ResourceHandleManager.cpp:
3980
3981 2013-11-11  Csaba Osztrogonác  <ossy@webkit.org>
3982
3983         URTBF after r159027 to make Apple Windows build happy.
3984
3985         * platform/graphics/cg/ImageSourceCG.cpp:
3986         (WebCore::sharedBufferGetBytesAtPosition):
3987
3988 2013-11-11  Andreas Kling  <akling@apple.com>
3989
3990         Kill InlineFlowBox::rendererLineBoxes().
3991         <https://webkit.org/b/124141>
3992
3993         We only ever used this to access the RenderLineBoxList for non-root
3994         boxes, and those always have a RenderInline renderer.
3995
3996         Tighten things up by losing the virtual rendererLineBoxes() and
3997         calling RenderInline::lineBoxes() directly.
3998
3999         Reviewed by Antti Koivisto.
4000
4001 2013-11-11  Andreas Kling  <akling@apple.com>
4002
4003         Bring the LineFragmentationData back to RootInlineBox.
4004         <https://webkit.org/b/124136>
4005
4006         Now that we have the simple line layout path, almost all the root
4007         line boxes end up with some kind of fragmentation data, so we might
4008         as well put the members back on RootInlineBox and avoid the extra
4009         allocation (and indirection.)
4010
4011         1.74 MB progression on HTML5 spec at <http://whatwg.org/c>
4012
4013         Reviewed by Antti Koivisto.
4014
4015 2013-11-10  Andreas Kling  <akling@apple.com>
4016
4017         Shrink RenderInline.
4018         <https://webkit.org/b/124134>
4019
4020         Move the "always create line boxes" bit from RenderInline up to
4021