[Win] Convert some NMake files to MSBuild project files
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-01-24  Brent Fulgham  <bfulgham@apple.com>
2
3         [Win] Convert some NMake files to MSBuild project files
4         https://bugs.webkit.org/show_bug.cgi?id=127579
5
6         Reviewed by Tim Horton.
7
8         * WebCore.vcxproj/WebCore.make: Removed.
9         * WebCore.vcxproj/WebCore.proj: Added.
10
11 2014-01-24  Joseph Pecoraro  <pecoraro@apple.com>
12
13         fast/profiler tests ASSERTing after moving recompileAllJSFunctions off a timer
14         https://bugs.webkit.org/show_bug.cgi?id=127566
15
16         Reviewed by Oliver Hunt.
17
18         Covered by existing tests.
19
20         * testing/Internals.cpp:
21         (WebCore::Internals::closeDummyInspectorFrontend):
22         Now that we don't have to fake that this is a page being destroyed to
23         avoid recompilation. Use the InspectorDestroyed reason.
24
25 2014-01-24  Anders Carlsson  <andersca@apple.com>
26
27         Get rid of monotonicallyIncreasingTimeMS and start using std::chrono instead
28         https://bugs.webkit.org/show_bug.cgi?id=127571
29
30         Reviewed by Antti Koivisto.
31
32         WebCore.exp.in:
33         Update symbols.
34
35         * dom/Document.cpp:
36         (WebCore::Document::Document):
37         (WebCore::Document::implicitClose):
38         (WebCore::Document::setParsing):
39         (WebCore::Document::isLayoutTimerActive):
40         (WebCore::Document::minimumLayoutDelay):
41         (WebCore::Document::elapsedTime):
42         (WebCore::Document::write):
43         (WebCore::Document::styleResolverChanged):
44         * dom/Document.h:
45         Use std::chrono instead of doubles for the times and durations.
46
47         * fileapi/FileReader.cpp:
48         (WebCore::FileReader::FileReader):
49         (WebCore::FileReader::didReceiveData):
50         * fileapi/FileReader.h:
51         Switch over to std::chrono.
52
53         * page/FrameView.cpp:
54         (WebCore::FrameView::layout):
55         (WebCore::FrameView::layoutTimerFired):
56         (WebCore::FrameView::scheduleRelayout):
57         (WebCore::FrameView::scheduleRelayoutOfSubtree):
58         Update for Document::elapsedTime() changes.
59
60         * page/Settings.cpp:
61         (WebCore::Settings::setLayoutInterval):
62         * page/Settings.h:
63         (WebCore::Settings::layoutInterval):
64         Change layoutInterval to be std::chrono::milliseconds instead of int.
65
66         * platform/Timer.h:
67         (WebCore::TimerBase::startOneShot):
68         Add an overload that takes std::chrono::milliseconds.
69
70 2014-01-24  Oliver Hunt  <oliver@apple.com>
71
72         Generic JSObject::put should handle static properties in the classinfo hierarchy
73         https://bugs.webkit.org/show_bug.cgi?id=127523
74
75         Reviewed by Geoffrey Garen.
76
77         Update the bindings generator to emit the flag indicating the presence
78         of setters, and remove the many (now unnecessary) put overrides.
79         Tested with run-jsc-benchmarks and shows neutral performance. A few of the
80         micro benchmarks actually get a significant performance increase which
81         is nice.
82
83         * bindings/js/JSDOMWindowCustom.cpp:
84         (WebCore::JSDOMWindow::put):
85             We still need a custom call to lookupPut here in order
86             to get the magic security semantics of the window object.
87         * bindings/scripts/CodeGeneratorJS.pm:
88         (hashTableAccessor):
89         (prototypeHashTableAccessor):
90         (constructorHashTableAccessor):
91         (GenerateImplementation):
92         (GenerateHashTable):
93         (GenerateConstructorHelperMethods):
94
95         * bindings/js/JSDOMWindowCustom.cpp:
96         (WebCore::JSDOMWindow::put):
97         * bindings/scripts/CodeGeneratorJS.pm:
98         (hashTableAccessor):
99         (prototypeHashTableAccessor):
100         (constructorHashTableAccessor):
101         (InstanceOverridesPutImplementation):
102         (InstanceOverridesPutDeclaration):
103         (GenerateHeader):
104         (GenerateImplementation):
105         (GenerateHashTable):
106         (GenerateConstructorHelperMethods):
107         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
108         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
109         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
110         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
111         * bindings/scripts/test/JS/JSTestException.cpp:
112         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
113         * bindings/scripts/test/JS/JSTestInterface.cpp:
114         (WebCore::JSTestInterface::put):
115         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
116         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
117         * bindings/scripts/test/JS/JSTestNode.cpp:
118         * bindings/scripts/test/JS/JSTestObj.cpp:
119         * bindings/scripts/test/JS/JSTestObj.h:
120         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
121         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
122         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
123         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
124         * bindings/scripts/test/JS/JSTestTypedefs.h:
125         * bindings/scripts/test/JS/JSattribute.cpp:
126         * bindings/scripts/test/JS/JSreadonly.cpp:
127         * html/canvas/WebGLRenderingContext.idl:
128           Remove bogus attribute, as it has never been in the spec and should not
129           have been added.
130
131 2014-01-24  David Hyatt  <hyatt@apple.com>
132
133         [New Multicolumn] Eliminate RenderMultiColumnBlock
134         https://bugs.webkit.org/show_bug.cgi?id=127565
135
136         Reviewed by Antti Koivisto.
137
138         This patch eliminates RenderMultiColumnBlock and folds all of its remaining code
139         back into RenderBlockFlow. This allows all block flows to support multi-column
140         layout, including table cells, list items, and the RenderView itself.
141
142         * CMakeLists.txt:
143         * WebCore.order:
144         * WebCore.vcxproj/WebCore.vcxproj:
145         * WebCore.vcxproj/WebCore.vcxproj.filters:
146         * WebCore.xcodeproj/project.pbxproj:
147         Remove RenderMultiColumnBlock from the makefiles.
148
149         * rendering/RenderBlock.cpp:
150         (WebCore::RenderBlock::adjustIntrinsicLogicalWidthsForColumns):
151         Tweak the comment, since it was no longer accurate.
152
153         * rendering/RenderBlock.h:
154         Move some functions down into RenderBlockFlow.
155
156         * rendering/RenderBlockFlow.cpp:
157         (WebCore::RenderBlockFlow::RenderBlockFlow):
158         (WebCore::RenderBlockFlow::createMultiColumnFlowThreadIfNeeded):
159         (WebCore::RenderBlockFlow::styleDidChange):
160         (WebCore::RenderBlockFlow::relayoutForPagination):
161         (WebCore::RenderBlockFlow::layoutSpecialExcludedChild):
162         (WebCore::RenderBlockFlow::updateLogicalWidthAndColumnWidth):
163         (WebCore::RenderBlockFlow::addChild):
164         (WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):
165          * rendering/RenderBlockFlow.h:
166          Move a bunch of functions from RenderMultiColumnBlock up into RenderBlockFlow.
167
168         * rendering/RenderBox.cpp:
169         (WebCore::RenderBox::isUnsplittableForPagination):
170         Calls isMultiColumnBlockFlow() now instead of testing for a specific renderer type.
171
172         * rendering/RenderElement.cpp:
173         (WebCore::RenderElement::createFor):
174         Remove the multicolumn block creation code, since we always make a block flow now.
175
176         * rendering/RenderMultiColumnBlock.cpp: Removed.
177         * rendering/RenderMultiColumnBlock.h: Removed.
178         Nuke the files.
179
180         * rendering/RenderMultiColumnFlowThread.cpp:
181         (WebCore::RenderMultiColumnFlowThread::initialLogicalWidth):
182         (WebCore::RenderMultiColumnFlowThread::autoGenerateRegionsToBlockOffset):
183         * rendering/RenderMultiColumnSet.cpp:
184         (WebCore::RenderMultiColumnSet::heightAdjustedForSetOffset):
185         (WebCore::RenderMultiColumnSet::addForcedBreak):
186         (WebCore::RenderMultiColumnSet::recalculateBalancedHeight):
187         (WebCore::RenderMultiColumnSet::updateLogicalWidth):
188         (WebCore::RenderMultiColumnSet::prepareForLayout):
189         (WebCore::RenderMultiColumnSet::columnGap):
190         (WebCore::RenderMultiColumnSet::paintColumnRules):
191         Change all of the functions in the multicolumnset and multicolumnflowthread classes
192         to cast the parent to a RenderBlockFlow now instead of a RenderMultiColumnBlock.
193         Change the code to call through to multiColumnFlowThread() for column-specific information
194         for that parent block.
195
196         * rendering/RenderObject.h:
197         (WebCore::RenderObject::isMultiColumnBlockFlow):
198         Remove isRenderMultiColumnBlock() and replace with isMultiColumnBlockFlow().
199
200         * rendering/RenderingAllInOne.cpp:
201         Remove RenderMultiColumnBlock include.
202         
203 2014-01-24  Brady Eidson  <beidson@apple.com>
204
205         IDB: support createIndex/deleteIndex messaging
206         https://bugs.webkit.org/show_bug.cgi?id=127546
207
208         Reviewed by Tim Horton.
209
210         * WebCore.exp.in: Export a needed CrossThreadCopier
211
212 2014-01-24  Daniel Bates  <dabates@apple.com>
213
214         Fix the Windows build after <http://trac.webkit.org/changeset/162704>
215         (https://bugs.webkit.org/show_bug.cgi?id=127293)
216
217         Only include TargetConditionals.h when building on a Darwin-based OS.
218         Also, check that TARGET_OS_IPHONE is defined before referencing its value
219         since it will be undefined when building on Windows.
220
221         * bindings/objc/PublicDOMInterfaces.h:
222
223 2014-01-24  Daniel Bates  <dabates@apple.com>
224
225         Bindings generation tests hit an error trying to include wtf/Platform.h after r161638
226         https://bugs.webkit.org/show_bug.cgi?id=127293
227
228         Reviewed by Alexey Proskuryakov.
229
230         Include TargetConditionals.h instead of wtf/Platform.h as the latter isn't available
231         in the public SDK.
232
233         As a side effect of this change, replace usage of PLATFORM(IOS) with TARGET_OS_IPHONE.
234
235         * bindings/objc/PublicDOMInterfaces.h:
236
237 2014-01-21  David Hyatt  <hyatt@apple.com>
238
239         [New Multicolumn] Table cells and list items need to work as multicolumn blocks.
240         https://bugs.webkit.org/show_bug.cgi?id=127365
241         
242         This patch is a first step towards eliminating RenderMultiColumnBlock and moving
243         all its functionality into RenderBlockFlow. Doing so will allow table cells, list
244         items and the RenderView to use the new multi-column layout.
245         
246         Reviewed by Simon Fraser.
247
248         * rendering/RenderBlockFlow.cpp:
249         (WebCore::RenderBlockFlow::setMultiColumnFlowThread):
250         * rendering/RenderBlockFlow.h:
251         (WebCore::RenderBlockFlow::RenderBlockFlowRareData::RenderBlockFlowRareData):
252         (WebCore::RenderBlockFlow::multiColumnFlowThread):
253         Add the flow thread pointer to the multi-column flow thread to RenderBlockFlow's
254         rare data. This lets us use only one pointer in the rare data to point to an object
255         that can hold all of the rest of the multi-column info.
256
257         * rendering/RenderMultiColumnBlock.cpp:
258         (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
259         Move the construction of the flow thread to the constructor. This ensures we
260         never have a null flow thread and lets us avoid having to null check it for
261         empty multi-column blocks.
262
263         (WebCore::RenderMultiColumnBlock::columnHeightAvailable):
264         (WebCore::RenderMultiColumnBlock::columnWidth):
265         (WebCore::RenderMultiColumnBlock::columnCount):
266         (WebCore::RenderMultiColumnBlock::updateLogicalWidthAndColumnWidth):
267         The above functions now call through to the multi-column flow thread for results.
268
269         (WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
270          Set the column height available on the flow thread.
271
272         (WebCore::RenderMultiColumnBlock::relayoutForPagination):
273         The balancing pass and guard is in the multi-column flow thread now.
274
275         (WebCore::RenderMultiColumnBlock::addChild):
276         Don't have to create the flow thread here any longer, since we do it up front
277         in the constructor of RenderMultiColumnBlock.
278
279         (WebCore::RenderMultiColumnBlock::layoutSpecialExcludedChild):
280         Don't need the null check of the flow thread any more.
281
282         * rendering/RenderMultiColumnBlock.h:
283         Change the inlined functions to not be inlined, since they need to call
284         RenderMultiColumnFlowThread functions now.
285
286         * rendering/RenderMultiColumnFlowThread.cpp:
287         (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
288         Init the new member variables we moved here from RenderMultiColumnBlock.
289
290         (WebCore::RenderMultiColumnFlowThread::computeColumnCountAndWidth):
291         Moved from RenderMultiColumnBlock.
292
293         * rendering/RenderMultiColumnFlowThread.h:
294         Add public getters/setters to the member variables so that RenderMultiColumnBlock can
295         still see them. Move the member variables here from RenderMultiColumnBlock.
296
297         * rendering/RenderMultiColumnSet.cpp:
298         (WebCore::RenderMultiColumnSet::calculateBalancedHeight):
299         (WebCore::RenderMultiColumnSet::prepareForLayout):
300         (WebCore::RenderMultiColumnSet::columnCount):
301         Call through to the flow thread instead.
302
303 2014-01-24  Zan Dobersek  <zdobersek@igalia.com>
304
305         Unreviewed GTK build fix after r162663.
306
307         * platform/gtk/ScrollViewGtk.cpp:
308         (WebCore::ScrollView::visibleContentRectInternal): Renamed from visibleContentRect.
309
310 2014-01-24  Zan Dobersek  <zdobersek@igalia.com>
311
312         Move HistoryItem to std::unique_ptr
313         https://bugs.webkit.org/show_bug.cgi?id=127275
314
315         Reviewed by Darin Adler.
316
317         Replace the uses of OwnPtr and PassOwnPtr in the HistoryItem class with std::unique_ptr.
318
319         * history/HistoryItem.cpp:
320         (WebCore::HistoryItem::HistoryItem):
321         (WebCore::HistoryItem::reset):
322         (WebCore::HistoryItem::addRedirectURL):
323         (WebCore::HistoryItem::setRedirectURLs):
324         * history/HistoryItem.h:
325         * history/mac/HistoryItemMac.mm:
326         (WebCore::HistoryItem::setTransientProperty):
327         WebCore.exp.in: Update the symbol.
328
329 2014-01-23  Morten Stenshorne  <mstensho@opera.com>
330
331         Region based multicol: unresolvable percent height results in 1px tall multicol
332         https://bugs.webkit.org/show_bug.cgi?id=122826
333
334         Reviewed by David Hyatt.
335
336         If a box has a percentage height, but the computed height of its
337         containing block is auto, the computed height of the box also becomes
338         auto. computeContentLogicalHeight() returns -1 if the height isn't
339         resolvable, and we need to make sure that such a value doesn't
340         constrain the height of the multicol container.
341
342         Tests: fast/multicol/newmulticol/unresolvable-percent-height-2.html
343                fast/multicol/newmulticol/unresolvable-percent-height.html
344                fast/multicol/newmulticol/unresolvable-percent-max-height-2.html
345                fast/multicol/newmulticol/unresolvable-percent-max-height.html
346
347         * rendering/RenderMultiColumnSet.cpp:
348         (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
349         (WebCore::RenderMultiColumnSet::calculateBalancedHeight):
350         (WebCore::RenderMultiColumnSet::recalculateBalancedHeight):
351         (WebCore::RenderMultiColumnSet::prepareForLayout):
352
353 2014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
354
355         Move ContentSearchUtils, ScriptBreakpoint, and ScriptDebugListener into JavaScriptCore for inspector
356         https://bugs.webkit.org/show_bug.cgi?id=127537
357
358         Reviewed by Timothy Hatcher.
359
360           - Rename ContentSearchUtils => ContentSearchUtilities and move to JavaScriptCore.
361           - Move ScriptBreakpoint and ScriptDebugListener to JavaScriptCore.
362           - Move them all to namespace Inspector.
363           - Update build files and users to the new names.
364
365         No change in functionality, just moving code.
366
367         * CMakeLists.txt:
368         * ForwardingHeaders/inspector/ContentSearchUtilities.h: Added.
369         * ForwardingHeaders/inspector/ScriptBreakpoint.h: Added.
370         * ForwardingHeaders/inspector/ScriptDebugListener.h: Added.
371         * GNUmakefile.list.am:
372         * WebCore.vcxproj/WebCore.vcxproj:
373         * WebCore.vcxproj/WebCore.vcxproj.filters:
374         * WebCore.xcodeproj/project.pbxproj:
375         * bindings/js/PageScriptDebugServer.cpp:
376         * bindings/js/PageScriptDebugServer.h:
377         * bindings/js/ScriptDebugServer.cpp:
378         * bindings/js/ScriptDebugServer.h:
379         * bindings/js/WorkerScriptDebugServer.cpp:
380         * bindings/js/WorkerScriptDebugServer.h:
381         * inspector/InspectorAllInOne.cpp:
382         * inspector/InspectorDebuggerAgent.cpp:
383         (WebCore::InspectorDebuggerAgent::searchInContent):
384         (WebCore::InspectorDebuggerAgent::sourceMapURLForScript):
385         (WebCore::InspectorDebuggerAgent::didParseSource):
386         * inspector/InspectorDebuggerAgent.h:
387         * inspector/InspectorPageAgent.cpp:
388         (WebCore::InspectorPageAgent::sourceMapURLForResource):
389         (WebCore::InspectorPageAgent::searchInResource):
390         (WebCore::InspectorPageAgent::searchInResources):
391         * inspector/InspectorStyleSheet.cpp:
392         (WebCore::buildSourceRangeObject):
393         (WebCore::InspectorStyleSheet::lineEndings):
394         (WebCore::InspectorStyleSheetForInlineStyle::lineEndings):
395
396 2014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
397
398         Move RegularExpression into JavaScriptCore for inspector
399         https://bugs.webkit.org/show_bug.cgi?id=127526
400
401         Reviewed by Geoffrey Garen.
402
403         Update as appropriate for the moved file and namespace
404         change for class RegularExpression.
405
406         * CMakeLists.txt:
407         * ForwardingHeaders/yarr/RegularExpression.h: Added.
408         * GNUmakefile.list.am:
409         * WebCore.exp.in:
410         * WebCore.vcxproj/WebCore.vcxproj:
411         * WebCore.vcxproj/WebCore.vcxproj.filters:
412         * WebCore.xcodeproj/project.pbxproj:
413         * dom/DOMImplementation.h:
414         * html/BaseCheckableInputType.cpp:
415         * html/BaseTextInputType.cpp:
416         (WebCore::BaseTextInputType::patternMismatch):
417         * html/EmailInputType.cpp:
418         (WebCore::isValidEmailAddress):
419         * html/InputType.cpp:
420         * inspector/ContentSearchUtils.cpp:
421         (WebCore::ContentSearchUtils::getRegularExpressionMatchesByLines):
422         (WebCore::ContentSearchUtils::createSearchRegex):
423         (WebCore::ContentSearchUtils::countRegularExpressionMatches):
424         (WebCore::ContentSearchUtils::searchInTextByLines):
425         * inspector/ContentSearchUtils.h:
426         * inspector/InspectorDebuggerAgent.cpp:
427         (WebCore::matches):
428         (WebCore::InspectorDebuggerAgent::breakpointActionLog):
429         (WebCore::InspectorDebuggerAgent::breakpointActionSound):
430         * inspector/InspectorDebuggerAgent.h:
431         * inspector/InspectorPageAgent.cpp:
432         (WebCore::InspectorPageAgent::searchInResources):
433         * inspector/InspectorPageAgent.h:
434         * inspector/InspectorRuntimeAgent.cpp:
435         * inspector/InspectorRuntimeAgent.h:
436         * inspector/InspectorStyleSheet.cpp:
437         (WebCore::selectorsFromSource):
438         * inspector/WorkerDebuggerAgent.cpp:
439         * page/Frame.cpp:
440         (WebCore::createRegExpForLabels):
441         (WebCore::Frame::searchForLabelsAboveCell):
442         (WebCore::Frame::searchForLabelsBeforeElement):
443         (WebCore::matchLabelsAgainstString):
444         * page/Frame.h:
445         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
446         (WebCore::GraphicsContext3D::getUnmangledInfoLog):
447
448 2014-01-23  Brady Eidson  <beidson@apple.com>
449
450         IDB: Support IDBObjectStore.clear()
451         https://bugs.webkit.org/show_bug.cgi?id=127541
452         
453         Reviewed by Anders Carlsson.
454
455         The backing store should never be performing callbacks directly:
456         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
457         (WebCore::IDBServerConnectionLevelDB::clearObjectStore):
458
459         Instead, the transaction operations should do that themselves:
460         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
461         (WebCore::ClearObjectStoreOperation::perform):
462         * Modules/indexeddb/IDBTransactionBackendOperations.h:
463         (WebCore::ClearObjectStoreOperation::transaction):
464
465 2014-01-23  Dan Bernstein  <mitz@apple.com>
466
467         <rdar://problem/15875326> REGRESSION (r162257): Assertion failure (should not be reached) in CSSPreloadScanner::tokenize()
468         https://bugs.webkit.org/show_bug.cgi?id=127540
469
470         Reviewed by Anders Carlsson.
471
472         No new tests, because I could not reproduce the bug reliably and I don’t know how to trigger
473         it.
474
475         * html/parser/CSSPreloadScanner.cpp:
476         (WebCore::CSSPreloadScanner::scan): Check for the DoneParsingImportRules before tokenizing
477         a character, not after. This restores the logic from before r162257.
478
479 2014-01-23  Jer Noble  <jer.noble@apple.com>
480
481         [iOS] Protect against possbile deadlock by delaying video layer creation
482         https://bugs.webkit.org/show_bug.cgi?id=127505
483
484         Reviewed by Eric Carlson.
485
486         Work around a possible deadlock on iOS when creating a media element
487         backed by AVFoundation by delaying creation of the AVPlayerLayer.
488         The deadlock can occur when the web thread is doing CALayer layout
489         while taking the web thread lock, while CoreMedia is doing property
490         access on an async thread while taking the CM lock, and each is waiting
491         for the other's lock to be released.
492
493         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
494         (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
495
496 2014-01-23  Jer Noble  <jer.noble@apple.com>
497
498         [MSE][Mac] Crash when reloading a page during playback
499         https://bugs.webkit.org/show_bug.cgi?id=126903
500
501         Reviewed by Eric Carlson.
502
503         Periodic time observers added to AVSampleBufferRenderSynchronizer will execute their
504         callback block even after being removed with -removeTimeObserver:, which is tracked by
505         <rdar://problem/15798050>. Work around this problem by passing a WeakPtr into the block
506         and bail early if the owning media player has been destroyed.
507
508         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
509         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::createWeakPtr):
510         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
511         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
512
513 2014-01-23  ChangSeok Oh  <changseok.oh@collabora.com>
514
515         Dragging from inner side of video to outside causes a crash
516         https://bugs.webkit.org/show_bug.cgi?id=126338
517
518         Reviewed by Jer Noble.
519
520         The crash happens while dragging mouse cursor through timeline control to outside
521         of video region. This is beacause media controls are selected with the drag.
522         The media controls disappear when mouse cursor goes outside of video though
523         the dragging/selection proceeds. If once media controls are hidden, related element
524         lose their renderers. However the drag is still under going. it requires shadowPseudoId
525         of the selected controls. Untorntunately, SliderThumbElement/SliderContainerElement
526         don't return a static value for the shadowPseudoId unlike other media controls,
527         but they need a renderer to determine it. This is the reason of crash.
528
529         Test: media/media-controller-drag-crash.html
530
531         * html/shadow/SliderThumbElement.cpp:
532         (WebCore::SliderThumbElement::shadowPseudoId):
533         (WebCore::SliderContainerElement::shadowPseudoId):
534
535 2014-01-23  Brady Eidson  <beidson@apple.com>
536
537         IDB: Implement SQLite backing store 'get' support
538         https://bugs.webkit.org/show_bug.cgi?id=127502
539
540         Reviewed by Tim Horton.
541
542         Get a KeyRange from a KeyRangeData:
543         * Modules/indexeddb/IDBKeyRangeData.cpp:
544         (WebCore::IDBKeyRangeData::maybeCreateIDBKeyRange):
545         * Modules/indexeddb/IDBKeyRangeData.h:
546
547         Add collation function support to SQLiteDatabase:
548         * platform/sql/SQLiteDatabase.cpp:
549         (WebCore::destroyCollationFunction):
550         (WebCore::callCollationFunction):
551         (WebCore::SQLiteDatabase::setCollationFunction):
552         (WebCore::SQLiteDatabase::removeCollationFunction):
553         * platform/sql/SQLiteDatabase.h:
554
555         * WebCore.exp.in:
556
557 2014-01-23  Jon Honeycutt  <jhoneycutt@apple.com>
558
559         Assertion failure in WebCore::PseudoElement::didRecalcStyle()
560         <https://bugs.webkit.org/show_bug.cgi?id=126761>
561         <rdar://problem/15793540>
562
563         Reviewed by Andy Estes.
564
565         Test: fast/images/animate-list-item-image-assertion.html
566
567         * dom/PseudoElement.cpp:
568         (WebCore::PseudoElement::didRecalcStyle):
569         Check isRenderImage() rather than isImage() before casting to
570         RenderImage.
571
572         * editing/ios/EditorIOS.mm:
573         (WebCore::getImage):
574         Ditto.
575
576         * editing/mac/EditorMac.mm:
577         (WebCore::getImage):
578         Ditto.
579
580         * html/HTMLImageElement.cpp:
581         (WebCore::HTMLImageElement::parseAttribute):
582         (WebCore::HTMLImageElement::didAttachRenderers):
583         Ditto.
584
585         * loader/ImageLoader.cpp:
586         (WebCore::ImageLoader::renderImageResource):
587         Ditto.
588
589         * page/DragController.cpp:
590         (WebCore::getCachedImage):
591         Ditto.
592
593         * rendering/RenderLayerBacking.cpp:
594         (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
595         (WebCore::RenderLayerBacking::updateImageContents):
596         Ditto.
597
598 2014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
599
600         Web Inspector: Remove recompileAllJSFunctions timer in ScriptDebugServer
601         https://bugs.webkit.org/show_bug.cgi?id=127409
602
603         Reviewed by Geoffrey Garen.
604
605         Covered by existing tests.
606
607         * bindings/js/ScriptDebugServer.h:
608         * bindings/js/ScriptDebugServer.cpp:
609         (WebCore::ScriptDebugServer::ScriptDebugServer):
610         Remove m_recompileTimer and the recompile soon function.
611         We can just recompile immediately in all existing cases.
612
613         * bindings/js/PageScriptDebugServer.h:
614         * bindings/js/PageScriptDebugServer.cpp:
615         (WebCore::PageScriptDebugServer::addListener):
616         (WebCore::PageScriptDebugServer::removeListener):
617         (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
618         (WebCore::PageScriptDebugServer::didAddFirstListener):
619         (WebCore::PageScriptDebugServer::didRemoveLastListener):
620         Add a "didAddFirstListener" to match "didRemoveLastListener".
621         Only recompile functions when we attach the debugger and when
622         we detach the last listener.
623
624         * bindings/js/WorkerScriptDebugServer.cpp:
625         (WebCore::WorkerScriptDebugServer::addListener):
626         (WebCore::WorkerScriptDebugServer::removeListener):
627         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
628         Same thing. Also rearrange the functions to read better.
629
630         * inspector/InspectorProfilerAgent.cpp:
631         Use the direct recompile function instead of the removed "soon" version.
632
633         * WebCore.exp.in:
634         Update disconnectFrontend symbol.
635
636         * page/PageDebuggable.cpp:
637         (WebCore::PageDebuggable::disconnect):
638         * testing/Internals.cpp:
639         (WebCore::Internals::closeDummyInspectorFrontend):
640         * workers/WorkerMessagingProxy.cpp:
641         (WebCore::disconnectFromWorkerGlobalScopeInspectorTask):
642         Include an InspectorDisconnectReason when calling disconnectFrontend.
643
644         * inspector/InspectorDatabaseAgent.h:
645         * inspector/InspectorDebuggerAgent.cpp:
646         (WebCore::InspectorDebuggerAgent::disable):
647         (WebCore::InspectorDebuggerAgent::willDestroyFrontendAndBackend):
648         If the disconnect reason is the page will be destroyed, don't recompile when disconnecting.
649
650         * inspector/InspectorProfilerAgent.h:
651         * inspector/InspectorProfilerAgent.cpp:
652         (WebCore::InspectorProfilerAgent::enable):
653         (WebCore::InspectorProfilerAgent::disable):
654         (WebCore::InspectorProfilerAgent::willDestroyFrontendAndBackend):
655         If the disconnect reason is the page will be destroyed, don't recompile when disconnecting.
656
657         * inspector/InspectorController.h:
658         * inspector/InspectorController.cpp:
659         (WebCore::InspectorController::inspectedPageDestroyed):
660         (WebCore::InspectorController::disconnectFrontend):
661         (WebCore::InspectorController::close):
662         Pass different reasons for the different disconnect reasons.
663
664         * inspector/WorkerInspectorController.h:
665         * inspector/WorkerInspectorController.cpp:
666         (WebCore::WorkerInspectorController::~WorkerInspectorController):
667         (WebCore::WorkerInspectorController::disconnectFrontend):
668         Pass different reasons for the different disconnect reasons.
669
670         * inspector/InspectorApplicationCacheAgent.cpp:
671         (WebCore::InspectorApplicationCacheAgent::willDestroyFrontendAndBackend):
672         * inspector/InspectorApplicationCacheAgent.h:
673         * inspector/InspectorCSSAgent.cpp:
674         (WebCore::InspectorCSSAgent::willDestroyFrontendAndBackend):
675         * inspector/InspectorCSSAgent.h:
676         * inspector/InspectorCanvasAgent.cpp:
677         (WebCore::InspectorCanvasAgent::willDestroyFrontendAndBackend):
678         * inspector/InspectorCanvasAgent.h:
679         * inspector/InspectorConsoleAgent.cpp:
680         (WebCore::InspectorConsoleAgent::willDestroyFrontendAndBackend):
681         * inspector/InspectorConsoleAgent.h:
682         * inspector/InspectorDOMAgent.cpp:
683         (WebCore::InspectorDOMAgent::willDestroyFrontendAndBackend):
684         * inspector/InspectorDOMAgent.h:
685         * inspector/InspectorDOMDebuggerAgent.cpp:
686         (WebCore::InspectorDOMDebuggerAgent::willDestroyFrontendAndBackend):
687         * inspector/InspectorDOMDebuggerAgent.h:
688         * inspector/InspectorDOMStorageAgent.cpp:
689         (WebCore::InspectorDOMStorageAgent::willDestroyFrontendAndBackend):
690         * inspector/InspectorDOMStorageAgent.h:
691         * inspector/InspectorDatabaseAgent.cpp:
692         (WebCore::InspectorDatabaseAgent::willDestroyFrontendAndBackend):
693         * inspector/InspectorDebuggerAgent.h:
694         * inspector/InspectorHeapProfilerAgent.cpp:
695         (WebCore::InspectorHeapProfilerAgent::willDestroyFrontendAndBackend):
696         * inspector/InspectorHeapProfilerAgent.h:
697         * inspector/InspectorIndexedDBAgent.cpp:
698         (WebCore::InspectorIndexedDBAgent::willDestroyFrontendAndBackend):
699         * inspector/InspectorIndexedDBAgent.h:
700         * inspector/InspectorInputAgent.cpp:
701         (WebCore::InspectorInputAgent::willDestroyFrontendAndBackend):
702         * inspector/InspectorInputAgent.h:
703         * inspector/InspectorLayerTreeAgent.cpp:
704         (WebCore::InspectorLayerTreeAgent::willDestroyFrontendAndBackend):
705         * inspector/InspectorLayerTreeAgent.h:
706         * inspector/InspectorMemoryAgent.cpp:
707         (WebCore::InspectorMemoryAgent::willDestroyFrontendAndBackend):
708         * inspector/InspectorMemoryAgent.h:
709         * inspector/InspectorPageAgent.cpp:
710         (WebCore::InspectorPageAgent::willDestroyFrontendAndBackend):
711         * inspector/InspectorPageAgent.h:
712         * inspector/InspectorResourceAgent.cpp:
713         (WebCore::InspectorResourceAgent::willDestroyFrontendAndBackend):
714         * inspector/InspectorResourceAgent.h:
715         * inspector/InspectorTimelineAgent.cpp:
716         (WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
717         * inspector/InspectorTimelineAgent.h:
718         * inspector/InspectorWorkerAgent.cpp:
719         (WebCore::InspectorWorkerAgent::willDestroyFrontendAndBackend):
720         * inspector/InspectorWorkerAgent.h:
721         * inspector/PageDebuggerAgent.cpp:
722         (WebCore::PageDebuggerAgent::disable):
723         (WebCore::PageDebuggerAgent::stopListeningScriptDebugServer):
724         * inspector/PageDebuggerAgent.h:
725         * inspector/PageRuntimeAgent.cpp:
726         (WebCore::PageRuntimeAgent::willDestroyFrontendAndBackend):
727         * inspector/PageRuntimeAgent.h:
728         * inspector/WorkerDebuggerAgent.cpp:
729         (WebCore::WorkerDebuggerAgent::stopListeningScriptDebugServer):
730         * inspector/WorkerDebuggerAgent.h:
731         * inspector/WorkerRuntimeAgent.cpp:
732         (WebCore::WorkerRuntimeAgent::willDestroyFrontendAndBackend):
733         * inspector/WorkerRuntimeAgent.h:
734         Include InspectorDisconnectReason param.
735
736 2014-01-23  Simon Fraser  <simon.fraser@apple.com>
737
738         Another Windows fix: include <algorithm> for std::min and std::max.
739         
740         * platform/graphics/IntSize.h:
741
742 2014-01-23  Simon Fraser  <simon.fraser@apple.com>
743
744         Try to fix Windows build.
745
746         * platform/win/PopupMenuWin.cpp:
747         (WebCore::PopupMenuWin::visibleSize):
748         * platform/win/PopupMenuWin.h:
749
750 2014-01-23  Simon Fraser  <simon.fraser@apple.com>
751
752         Make visibleContentRect() return actualVisibleContentRect() on iOS most of the time
753         https://bugs.webkit.org/show_bug.cgi?id=127456
754         
755         Reviewed by Antti Koivisto.
756         
757         On iOS, visibleContentRect() returns the entire document rect for historical
758         reasons, and actualVisibleContentRect() returns what visibleContentRect()
759         returns on other platforms.
760         
761         In addition, actualVisibleContentRect() was returning an empty rect in WK2.
762         
763         Reduce the confusion of #ifdefs by making visibleContentRect() behave like
764         actualVisibleContentRect() by default on iOS. Where it needs the old behavior,
765         an optional parameter, LegacyIOSDocumentVisibleRect, provides this.
766         
767         Achieve this by having the virtual ScrollableArea::visibleContentRectInternal(),
768         which is called by non-virtual visibleContentRect() and visibleContentRectIncludingScrollbars().
769         
770         Similarly clean up visibleHeight/visibleWidth functions by having visibleSize() be virtual,
771         with non-virtual visibleHeight() and visibleWidth().
772         
773         ScrollableArea subclasses override visibleContentRectInternal() and visibleSize() where necessary.
774         
775         Mechanically change all the call sites of actualVisibleContentRect() to
776         use visibleContentRect(), and the call sites of visibleContentRect()
777         to visibleContentRect(..., LegacyIOSDocumentVisibleRect), adding comments
778         where this may not be appropriate.
779         
780         Change callers of visibleContentRect(IncludeScrollbars...) to visibleContentRectIncludingScrollbars().
781         
782         Also add actualScrollPosition(), and clean up some actualScroll* call sites.
783         
784         No behavior change.
785
786         * WebCore.exp.in:
787         * accessibility/AccessibilityObject.cpp:
788         (WebCore::AccessibilityObject::isOnscreen):
789         (WebCore::AccessibilityObject::scrollToMakeVisibleWithSubFocus):
790         * accessibility/AccessibilityRenderObject.cpp:
791         (WebCore::AccessibilityRenderObject::isOffScreen):
792         * dom/Document.cpp:
793         (WebCore::Document::adjustFloatQuadsForScrollAndAbsoluteZoomAndFrameScale):
794         (WebCore::Document::adjustFloatRectForScrollAndAbsoluteZoomAndFrameScale):
795         * dom/MouseRelatedEvent.cpp:
796         (WebCore::MouseRelatedEvent::MouseRelatedEvent):
797         * editing/Editor.cpp:
798         (WebCore::Editor::countMatchesForText):
799         * editing/FrameSelection.cpp:
800         (WebCore::FrameSelection::bounds):
801         (WebCore::FrameSelection::getClippedVisibleTextRectangles):
802         * html/HTMLBodyElement.cpp:
803         (WebCore::HTMLBodyElement::scrollLeft):
804         (WebCore::HTMLBodyElement::scrollTop):
805         * html/ImageDocument.cpp:
806         (WebCore::ImageDocument::imageFitsInWindow):
807         (WebCore::ImageDocument::windowSizeChanged):
808         * inspector/InspectorOverlay.cpp:
809         (WebCore::InspectorOverlay::update):
810         * page/DOMWindow.cpp:
811         (WebCore::DOMWindow::innerHeight):
812         (WebCore::DOMWindow::innerWidth):
813         (WebCore::DOMWindow::scrollX):
814         (WebCore::DOMWindow::scrollY):
815         (WebCore::DOMWindow::scrollBy):
816         * page/FrameView.cpp:
817         (WebCore::FrameView::calculateScrollbarModesForLayout):
818         (WebCore::FrameView::layout):
819         (WebCore::FrameView::scrollContentsSlowPath):
820         (WebCore::FrameView::repaintContentRectangle):
821         (WebCore::FrameView::sendResizeEventIfNeeded):
822         (WebCore::FrameView::windowClipRect):
823         (WebCore::FrameView::isScrollable):
824         (WebCore::FrameView::paintControlTints):
825         * page/SpatialNavigation.cpp:
826         (WebCore::canScrollInDirection):
827         * platform/ScrollView.cpp:
828         (WebCore::ScrollView::unscaledVisibleContentSize):
829         (WebCore::ScrollView::visibleContentRectInternal):
830         (WebCore::ScrollView::updateScrollbars):
831         (WebCore::ScrollView::paint):
832         * platform/ScrollView.h:
833         (WebCore::ScrollView::scrollOffset):
834         (WebCore::ScrollView::actualScrollX):
835         (WebCore::ScrollView::actualScrollY):
836         (WebCore::ScrollView::actualScrollPosition):
837         * platform/ScrollableArea.cpp:
838         (WebCore::ScrollableArea::visibleContentRect):
839         (WebCore::ScrollableArea::visibleContentRectIncludingScrollbars):
840         (WebCore::ScrollableArea::visibleContentRectInternal):
841         * platform/ScrollableArea.h:
842         (WebCore::ScrollableArea::visibleWidth):
843         (WebCore::ScrollableArea::visibleHeight):
844         * platform/graphics/IntSize.h:
845         (WebCore::IntSize::expandedTo): Drive-by cleanup.
846         (WebCore::IntSize::shrunkTo):
847         * platform/gtk/ScrollViewGtk.cpp:
848         (WebCore::ScrollView::visibleContentRect):
849         * rendering/RenderLayer.cpp:
850         (WebCore::RenderLayer::scrollRectToVisible):
851         (WebCore::RenderLayer::maximumScrollPosition):
852         (WebCore::RenderLayer::visibleContentRectInternal):
853         (WebCore::RenderLayer::hitTest):
854         * rendering/RenderLayer.h:
855         * rendering/RenderLayerBacking.cpp:
856         (WebCore::RenderLayerBacking::updateCompositedBounds):
857         * rendering/RenderListBox.cpp:
858         * rendering/RenderListBox.h:
859         * rendering/RenderView.cpp:
860         (WebCore::RenderView::viewRect):
861         (WebCore::RenderView::viewportSize):
862
863 2014-01-20  Myles C. Maxfield  <mmaxfield@apple.com>
864
865        Turn text-decoration-skip: ink on for all underlines
866        https://bugs.webkit.org/show_bug.cgi?id=127331
867
868        Reviewed by Antti Koivisto.
869
870        No new tests are necessary because tests already exist
871
872        * rendering/style/RenderStyle.h:
873
874 2014-01-23  Hans Muller  <hmuller@adobe.com>
875
876         [CSS Shapes] Image valued shape size and position should conform to the spec
877         https://bugs.webkit.org/show_bug.cgi?id=123295
878
879         Reviewed by Andreas Kling.
880
881         Implement image valued shape-outside scaling and translation per the spec,
882         http://dev.w3.org/csswg/css-shapes/#shapes-from-image:
883
884         "The image is sized and positioned as if it were a replaced element whose
885         specified width and height are the same as the element’s used content box size."
886
887         This change doesn't completely fulfill the spec, it's limited to image elements
888         and shape-outside.
889
890         Tests: fast/shapes/shape-outside-floats/shape-outside-image-fit-001.html
891                fast/shapes/shape-outside-floats/shape-outside-image-fit-002.html
892                fast/shapes/shape-outside-floats/shape-outside-image-fit-003.html
893                fast/shapes/shape-outside-floats/shape-outside-image-fit-004.html
894
895         * rendering/shapes/Shape.h:
896         * rendering/shapes/Shape.cpp:
897         (WebCore::Shape::createRasterShape):
898         Added an imageRect parameter which specifies where the shape image is to
899         appear relative to the content box. The imageRect implies both scaling and
900         translation of the shape image.
901
902         * rendering/shapes/ShapeInfo.cpp:
903         (WebCore::ShapeInfo<RenderType>::computedShape):
904         (WebCore::getShapeImageRect):
905         For replaced elements, compute the shape's imageRect with
906         RenderReplaced::replacedContentRect().
907
908
909 2014-01-23  Max Vujovic  <mvujovic@adobe.com>
910
911         Remove CSS Custom Filters code and tests
912         https://bugs.webkit.org/show_bug.cgi?id=127382
913
914         Reviewed by Simon Fraser.
915
916         No new tests. Removing functionality.
917
918         * CMakeLists.txt:
919         * Configurations/FeatureDefines.xcconfig:
920         * DerivedSources.cpp:
921         * DerivedSources.make:
922         * GNUmakefile.list.am:
923         * WebCore.order:
924         * WebCore.vcxproj/WebCore.vcxproj:
925         * WebCore.vcxproj/WebCore.vcxproj.filters:
926         * WebCore.xcodeproj/project.pbxproj:
927         * bindings/js/JSCSSRuleCustom.cpp:
928         (WebCore::toJS):
929         * bindings/js/JSCSSValueCustom.cpp:
930         (WebCore::toJS):
931         * bindings/objc/DOMCSS.mm:
932         (kitClass):
933         * css/CSSComputedStyleDeclaration.cpp:
934         (WebCore::ComputedStyleExtractor::valueForFilter):
935         (WebCore::ComputedStyleExtractor::propertyValue):
936         * css/CSSComputedStyleDeclaration.h:
937         * css/CSSGrammar.y.in:
938         * css/CSSParser.cpp:
939         (WebCore::CSSParserContext::CSSParserContext):
940         (WebCore::operator==):
941         (WebCore::CSSParser::CSSParser):
942         (WebCore::CSSParser::parseValue):
943         (WebCore::filterInfoForName):
944         (WebCore::CSSParser::parseFilter):
945         (WebCore::CSSParser::detectAtToken):
946         * css/CSSParser.h:
947         * css/CSSParserMode.h:
948         * css/CSSPropertyNames.in:
949         * css/CSSPropertySourceData.h:
950         * css/CSSRule.h:
951         * css/CSSRule.idl:
952         * css/CSSValue.cpp:
953         (WebCore::CSSValue::equals):
954         (WebCore::CSSValue::cssText):
955         (WebCore::CSSValue::destroy):
956         (WebCore::CSSValue::cloneForCSSOM):
957         * css/CSSValue.h:
958         * css/CSSValueKeywords.in:
959         * css/StyleResolver.cpp:
960         (WebCore::StyleResolver::State::clear):
961         (WebCore::StyleResolver::applyProperty):
962         (WebCore::filterOperationForType):
963         (WebCore::StyleResolver::createFilterOperations):
964         (WebCore::StyleResolver::loadPendingResources):
965         * css/StyleResolver.h:
966         (WebCore::StyleResolver::State::State):
967         * css/StyleRule.cpp:
968         (WebCore::StyleRuleBase::destroy):
969         (WebCore::StyleRuleBase::copy):
970         (WebCore::StyleRuleBase::createCSSOMWrapper):
971         * css/StyleRule.h:
972         * css/StyleSheetContents.cpp:
973         (WebCore::childRulesHaveFailedOrCanceledSubresources):
974         * css/WebKitCSSArrayFunctionValue.cpp: Removed.
975         * css/WebKitCSSArrayFunctionValue.h: Removed.
976         * css/WebKitCSSFilterRule.cpp: Removed.
977         * css/WebKitCSSFilterRule.h: Removed.
978         * css/WebKitCSSFilterRule.idl: Removed.
979         * css/WebKitCSSFilterValue.cpp:
980         (WebCore::WebKitCSSFilterValue::WebKitCSSFilterValue):
981         (WebCore::WebKitCSSFilterValue::customCSSText):
982         * css/WebKitCSSFilterValue.h:
983         * css/WebKitCSSFilterValue.idl:
984         * css/WebKitCSSMatFunctionValue.cpp: Removed.
985         * css/WebKitCSSMatFunctionValue.h: Removed.
986         * css/WebKitCSSMixFunctionValue.cpp: Removed.
987         * css/WebKitCSSMixFunctionValue.h: Removed.
988         * css/WebKitCSSMixFunctionValue.idl: Removed.
989         * css/WebKitCSSShaderValue.cpp: Removed.
990         * css/WebKitCSSShaderValue.h: Removed.
991         * loader/cache/CachedResource.cpp:
992         (WebCore::defaultPriorityForResourceType):
993         * loader/cache/CachedResource.h:
994         * loader/cache/CachedResourceLoader.cpp:
995         (WebCore::createResource):
996         (WebCore::CachedResourceLoader::checkInsecureContent):
997         (WebCore::CachedResourceLoader::canRequest):
998         * loader/cache/CachedResourceLoader.h:
999         * loader/cache/CachedShader.cpp: Removed.
1000         * loader/cache/CachedShader.h: Removed.
1001         * page/Settings.cpp:
1002         (WebCore::Settings::Settings):
1003         * page/Settings.h:
1004         * page/animation/CSSPropertyAnimation.cpp:
1005         (WebCore::blendFilter):
1006         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1007         (PlatformCALayerMac::filtersCanBeComposited):
1008         * platform/graphics/filters/CustomFilterArrayParameter.h: Removed.
1009         * platform/graphics/filters/CustomFilterColorParameter.h: Removed.
1010         * platform/graphics/filters/CustomFilterCompiledProgram.cpp: Removed.
1011         * platform/graphics/filters/CustomFilterCompiledProgram.h: Removed.
1012         * platform/graphics/filters/CustomFilterConstants.h: Removed.
1013         * platform/graphics/filters/CustomFilterGlobalContext.cpp: Removed.
1014         * platform/graphics/filters/CustomFilterGlobalContext.h: Removed.
1015         * platform/graphics/filters/CustomFilterMesh.cpp: Removed.
1016         * platform/graphics/filters/CustomFilterMesh.h: Removed.
1017         * platform/graphics/filters/CustomFilterMeshGenerator.cpp: Removed.
1018         * platform/graphics/filters/CustomFilterMeshGenerator.h: Removed.
1019         * platform/graphics/filters/CustomFilterNumberParameter.h: Removed.
1020         * platform/graphics/filters/CustomFilterOperation.cpp: Removed.
1021         * platform/graphics/filters/CustomFilterOperation.h: Removed.
1022         * platform/graphics/filters/CustomFilterParameter.h: Removed.
1023         * platform/graphics/filters/CustomFilterParameterList.cpp: Removed.
1024         * platform/graphics/filters/CustomFilterParameterList.h: Removed.
1025         * platform/graphics/filters/CustomFilterProgram.cpp: Removed.
1026         * platform/graphics/filters/CustomFilterProgram.h: Removed.
1027         * platform/graphics/filters/CustomFilterProgramClient.h: Removed.
1028         * platform/graphics/filters/CustomFilterProgramInfo.cpp: Removed.
1029         * platform/graphics/filters/CustomFilterProgramInfo.h: Removed.
1030         * platform/graphics/filters/CustomFilterRenderer.cpp: Removed.
1031         * platform/graphics/filters/CustomFilterRenderer.h: Removed.
1032         * platform/graphics/filters/CustomFilterTransformParameter.h: Removed.
1033         * platform/graphics/filters/CustomFilterValidatedProgram.cpp: Removed.
1034         * platform/graphics/filters/CustomFilterValidatedProgram.h: Removed.
1035         * platform/graphics/filters/FECustomFilter.cpp: Removed.
1036         * platform/graphics/filters/FECustomFilter.h: Removed.
1037         * platform/graphics/filters/FilterOperation.h:
1038         * platform/graphics/filters/FilterOperations.cpp:
1039         (WebCore::FilterOperations::outsets):
1040         * platform/graphics/filters/FilterOperations.h:
1041         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Removed.
1042         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Removed.
1043         * platform/graphics/filters/texmap/CustomFilterValidatedProgramTextureMapper.cpp: Removed.
1044         * platform/graphics/filters/texmap/TextureMapperPlatformCompiledProgram.h: Removed.
1045         * platform/graphics/gpu/Texture.cpp:
1046         * platform/graphics/texmap/TextureMapper.h:
1047         * platform/graphics/texmap/TextureMapperGL.cpp:
1048         (WebCore::getPassesRequiredForFilter):
1049         (WebCore::BitmapTextureGL::applyFilters):
1050         * platform/graphics/texmap/TextureMapperGL.h:
1051         * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
1052         (WebCore::CompositingCoordinator::clearPendingStateChanges):
1053         (WebCore::CompositingCoordinator::syncLayerState):
1054         * platform/graphics/texmap/coordinated/CompositingCoordinator.h:
1055         * platform/graphics/texmap/coordinated/CoordinatedCustomFilterOperation.h: Removed.
1056         * platform/graphics/texmap/coordinated/CoordinatedCustomFilterProgram.h: Removed.
1057         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
1058         (WebCore::CoordinatedGraphicsScene::setLayerFiltersIfNeeded):
1059         (WebCore::CoordinatedGraphicsScene::commitSceneState):
1060         (WebCore::CoordinatedGraphicsScene::setLayerAnimationsIfNeeded):
1061         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
1062         * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
1063         * rendering/FilterEffectRenderer.cpp:
1064         (WebCore::FilterEffectRenderer::FilterEffectRenderer):
1065         (WebCore::FilterEffectRenderer::build):
1066         (WebCore::FilterEffectRenderer::computeSourceImageRectForDirtyRect):
1067         * rendering/FilterEffectRenderer.h:
1068         * rendering/RenderLayer.cpp:
1069         (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
1070         (WebCore::RenderLayer::calculateClipRects):
1071         * rendering/RenderLayer.h:
1072         * rendering/RenderLayerBacking.cpp:
1073         (WebCore::RenderLayerBacking::updateFilters):
1074         * rendering/RenderLayerFilterInfo.cpp:
1075         (WebCore::RenderLayer::FilterInfo::~FilterInfo):
1076         * rendering/RenderLayerFilterInfo.h:
1077         * rendering/RenderView.cpp:
1078         * rendering/RenderView.h:
1079         * rendering/style/StyleCachedShader.cpp: Removed.
1080         * rendering/style/StyleCachedShader.h: Removed.
1081         * rendering/style/StyleCustomFilterProgram.cpp: Removed.
1082         * rendering/style/StyleCustomFilterProgram.h: Removed.
1083         * rendering/style/StyleCustomFilterProgramCache.cpp: Removed.
1084         * rendering/style/StyleCustomFilterProgramCache.h: Removed.
1085         * rendering/style/StylePendingShader.h: Removed.
1086         * rendering/style/StyleShader.h: Removed.
1087
1088 2014-01-22  Jon Honeycutt  <jhoneycutt@apple.com>
1089
1090         REGRESSION(r161967): Crash in WebCore::CachedSVGDocumentReference::load
1091         <https://webkit.org/b/127151>
1092         <rdar://problem/15840760>
1093
1094         There were two issues introduced here; the first is a use-after-free of
1095         CachedSVGDocumentReference objects.
1096
1097         The previous code kept a map from FilterOperation ->
1098         RefPtr<WebKitCSSSVGDocumentValue>, which retained the
1099         CachedSVGDocument. In r161967, this was changed to use a weak HashSet,
1100         which allows stale CachedSVGDocumentReferences in the pending document
1101         set if the owning FilterOperation is deleted. To fix this, we'll keep a
1102         vector of RefPtr<FilterOperation> with pending SVG documents.
1103
1104         The second issue is a null deref in CachedSVGDocumentReference::load();
1105         CachedResourceLoader::requestSVGDocument() can return 0 if (for
1106         example) an invalid URL is passed. r161967 removed a null check as part
1107         of the refactoring.
1108
1109         Reviewed by Dirk Schulze.
1110
1111         Tests: css3/filters/crash-filter-animation-invalid-url.html
1112                css3/filters/crash-invalid-url.html
1113
1114         * css/StyleResolver.cpp:
1115         (WebCore::StyleResolver::State::clear):
1116         Use new member var name.
1117         (WebCore::StyleResolver::loadPendingSVGDocuments):
1118         For each FilterOperation with a pending SVG document, get or create a
1119         CachedSVGDocumentReference, and tell it to load. Changed to use new
1120         function names.
1121         (WebCore::StyleResolver::createFilterOperations):
1122         Append the FilterOperation to the list of FilterOperations with
1123         unloaded SVG documents.
1124
1125         * css/StyleResolver.h:
1126         Changed from using PendingSVGDocumentSet, a weak set, to
1127         a Vector<RefPtr<ReferenceFilterOperation>>.
1128         (WebCore::StyleResolver::State::filtersWithPendingSVGDocuments):
1129         Return the vector.
1130
1131         * loader/cache/CachedSVGDocumentReference.cpp:
1132         (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
1133         Null check m_document rather than checking m_loadRequested.
1134         m_loadRequested may be true when m_document is 0.
1135         (WebCore::CachedSVGDocumentReference::load):
1136         Null check the result of CachedResourceLoader::requestSVGDocument().
1137
1138         * platform/graphics/filters/FilterOperation.cpp:
1139         (WebCore::ReferenceFilterOperation::getOrCreateCachedSVGDocumentReference):
1140         Create, if necessary, and return the CachedSVGDocumentReference.
1141
1142         * platform/graphics/filters/FilterOperation.h:
1143         Replaced createCachedSVGDocumentReference() with
1144         getOrCreateCachedSVGDocumentReference(), which makes for slightly
1145         cleaner code.
1146
1147 2014-01-23  Antti Koivisto  <antti@apple.com>
1148
1149         Don't enable speculative tiles immediately after main load stops progressing
1150         https://bugs.webkit.org/show_bug.cgi?id=127507
1151
1152         Reviewed by Andreas Kling.
1153
1154         It is common for timers and events to trigger more loading after the initial main frame loading
1155         has completed. We should delay a bit before enabling speculative tiles and keep them disabled 
1156         if loading still continues.
1157
1158         * page/FrameView.cpp:
1159         (WebCore::FrameView::FrameView):
1160         (WebCore::FrameView::adjustTiledBackingCoverage):
1161         (WebCore::shouldEnableSpeculativeTilingDuringLoading):
1162         (WebCore::FrameView::enableSpeculativeTilingIfNeeded):
1163         
1164             When load progression stops wait 0.5s before enabling speculative tiles.
1165
1166         (WebCore::FrameView::speculativeTilingEnableTimerFired):
1167         
1168             Don't enable speculative tiles if the progression has started again. Instead restart the timer.
1169
1170         * page/FrameView.h:
1171         * rendering/RenderLayerBacking.cpp:
1172         (WebCore::RenderLayerBacking::RenderLayerBacking):
1173         (WebCore::computeTileCoverage):
1174         
1175             Move the FrameView level code to FrameView (so we don't need to add a timer to every RenderLayerBacking).
1176
1177         * rendering/RenderLayerBacking.h:
1178
1179 2014-01-23  Antti Koivisto  <antti@apple.com>
1180
1181         Loads started soon after main frame completion should be considered part of the main load
1182         https://bugs.webkit.org/show_bug.cgi?id=127504
1183
1184         Reviewed by Andreas Kling.
1185
1186         ProgressTracker currently decides that main load is complete when the main frame stops loading. 
1187         However it is common that timers and onload events trigger more loads immediately (for example 
1188         by inserting iframes) and loading continues visually. These should be considered as part of the
1189         main load for paint throttling and speculative tiling coverage purposes.
1190
1191         * loader/ProgressTracker.cpp:
1192         (WebCore::ProgressTracker::ProgressTracker):
1193         (WebCore::ProgressTracker::progressStarted):
1194         
1195             Track whether this is considered part of the main load or not with a boolean. 
1196             It is set for subframe loads too if they start loading soon (within 1s) after the main frame load completes.
1197
1198         (WebCore::ProgressTracker::finalProgressComplete):
1199         
1200             Get a timestamp.
1201
1202         (WebCore::ProgressTracker::isMainLoadProgressing):
1203
1204             New definition of "main load".
1205
1206         * loader/ProgressTracker.h:
1207
1208 2014-01-23  peavo@outlook.com  <peavo@outlook.com>
1209
1210         [WinCairo] Compile error.
1211         https://bugs.webkit.org/show_bug.cgi?id=127499
1212
1213         Reviewed by Brent Fulgham.
1214
1215         * platform/network/curl/ResourceError.h: Include <winsock2.h> before <curl/curl.h>.
1216
1217 2014-01-23  Brady Eidson  <beidson@apple.com>
1218
1219         IDB: Implement cross-thread and IPC plumbing for 'get' support
1220         https://bugs.webkit.org/show_bug.cgi?id=127501
1221
1222         Reviewed by Anders Carlsson.
1223
1224         Add isolatedCopy to the IDBGetResult object:
1225         * Modules/indexeddb/IDBGetResult.h:
1226         (WebCore::IDBGetResult::isolatedCopy):
1227
1228         Add a cross-thread and cross-IPC appropriate object for IDBKeyRanges:
1229         * Modules/indexeddb/IDBKeyRangeData.cpp: Copied from Source/WebCore/Modules/indexeddb/IDBGetResult.h.
1230         (WebCore::IDBKeyRangeData::isolatedCopy):
1231         * Modules/indexeddb/IDBKeyRangeData.h: Copied from Source/WebCore/Modules/indexeddb/IDBGetResult.h.
1232         (WebCore::IDBKeyRangeData::IDBKeyRangeData):
1233
1234         Add a few more cross-thread copiers:
1235         * platform/CrossThreadCopier.cpp:
1236         (WebCore::IDBGetResult>::copy):
1237         (WebCore::IDBKeyRangeData>::copy):
1238         * platform/CrossThreadCopier.h:
1239
1240         Project file gunk:
1241         * CMakeLists.txt:
1242         * GNUmakefile.list.am:
1243         * WebCore.exp.in:
1244         * WebCore.xcodeproj/project.pbxproj:
1245
1246 2014-01-23  Jer Noble  <jer.noble@apple.com>
1247
1248         [MSE][Mac] Adopt new AVStreamDataParser delegate API
1249         https://bugs.webkit.org/show_bug.cgi?id=127498
1250
1251         Reviewed by Eric Carlson.
1252
1253         Adopt a new delegate API which passes in whether or not the new AVAsset
1254         is discontinuous, implying the AVAsset is entirely new rather than
1255         just updated with new information.
1256
1257         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
1258         (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]):
1259
1260 2014-01-23  Tim Horton  <timothy_horton@apple.com>
1261
1262         PDFPlugin: Use PDFPlugin even if there's an external plugin installed, if it's blocked
1263         https://bugs.webkit.org/show_bug.cgi?id=127415
1264         <rdar://problem/12482452>
1265
1266         Reviewed by Sam Weinig.
1267
1268         * English.lproj/Localizable.strings:
1269         * WebCore.exp.in:
1270         * platform/LocalizedStrings.cpp:
1271         (WebCore::useBlockedPlugInContextMenuTitle):
1272         * platform/LocalizedStrings.h:
1273         Add a localizable string for the generic case, where the client
1274         didn't provide a more specific string for the context menu item.
1275
1276 2014-01-23  peavo@outlook.com  <peavo@outlook.com>
1277
1278         [Curl] There is no way to specify cache folder.
1279         https://bugs.webkit.org/show_bug.cgi?id=125028
1280
1281         Reviewed by Brent Fulgham.
1282
1283         Fixed logical test, disc cache should be disabled if creating cache folder fails.
1284
1285         * platform/network/curl/CurlCacheManager.cpp:
1286         (WebCore::CurlCacheManager::setCacheDirectory):
1287
1288 2014-01-23  Brady Eidson  <beidson@apple.com>
1289
1290         Unreviewed build fix.
1291
1292         * WebCore.xcodeproj/project.pbxproj: Export the new header so WebKit can see it
1293
1294 2014-01-22  Brent Fulgham  <bfulgham@apple.com>
1295
1296         [Win] Update project and solution files for 64-bit builds
1297         https://bugs.webkit.org/show_bug.cgi?id=127457
1298
1299         Reviewed by Eric Carlson.
1300
1301         * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj: Update for VS2013
1302         * WebCore.vcxproj/WebCore.submit.sln: Add x64 targets
1303         * WebCore.vcxproj/WebCore.vcxproj: Update for VS2013. Also exclude 32-bit specific
1304         assembly when building 64-bit target.
1305         * WebCore.vcxproj/WebCore.vcxproj.filters: Update for VS2013
1306         * config.h: Handle 64-bit type definitions.
1307         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
1308         (PlatformCAAnimation::setFromValue): Use CGFloat to support 64-bit builds
1309         (PlatformCAAnimation::setToValue): Ditto
1310         (PlatformCAAnimation::setValues): Ditto
1311         * platform/graphics/win/FontCustomPlatformData.cpp:
1312         (WebCore::FontCustomPlatformData::fontPlatformData): Add cast to
1313         support 32- and 64-bit targets.
1314         * platform/graphics/win/GraphicsContextCGWin.cpp:
1315         (WebCore::GraphicsContext::drawLineForDocumentMarker): Use CGFloat to
1316         support 64-bit builds.
1317         * platform/win/PasteboardWin.cpp:
1318         (WebCore::Pasteboard::writeURLToDataObject): Specialize std::min to
1319         work on 32- and 64-bit code.
1320         (WebCore::createGlobalImageFileDescriptor): Ditto
1321         * platform/win/StructuredExceptionHandlerSuppressor.cpp:
1322         (WebCore::StructuredExceptionHandlerSuppressor::StructuredExceptionHandlerSuppressor):
1323         Comment out 32-bit inline assembly.
1324         (WebCore::StructuredExceptionHandlerSuppressor::~StructuredExceptionHandlerSuppressor):
1325         Ditto
1326
1327 2014-01-23  Brady Eidson  <beidson@apple.com>
1328
1329         Make IDBGetResult work with IDBKeyData instead of IDBKey.
1330         https://bugs.webkit.org/show_bug.cgi?id=127493
1331
1332         Reviewed by Eric Carlson.
1333
1334         Also break it into its own header to work better with IPC messages.
1335
1336         * Modules/indexeddb/IDBGetResult.h: Added.
1337         (WebCore::IDBGetResult::IDBGetResult):
1338
1339         * Modules/indexeddb/IDBServerConnection.h:
1340
1341         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
1342         (WebCore::GetOperation::perform):
1343
1344         * WebCore.xcodeproj/project.pbxproj:
1345
1346 2014-01-23  Mátyás Mustoha  <mmatyas@inf.u-szeged.hu>
1347
1348         [curl] Add storage limit to cache manager
1349         https://bugs.webkit.org/show_bug.cgi?id=125779
1350
1351         Reviewed by Brent Fulgham.
1352
1353         Sets a local disc storage size limit for the cache manager
1354         used by the curl network backend.
1355
1356         * platform/network/curl/CurlCacheEntry.cpp:
1357         (WebCore::CurlCacheEntry::CurlCacheEntry):
1358         (WebCore::CurlCacheEntry::isCached):
1359         (WebCore::CurlCacheEntry::saveCachedData):
1360         (WebCore::CurlCacheEntry::readCachedData):
1361         (WebCore::CurlCacheEntry::didFail):
1362         (WebCore::CurlCacheEntry::didFinishLoading):
1363         (WebCore::CurlCacheEntry::loadFileToBuffer):
1364         (WebCore::CurlCacheEntry::parseResponseHeaders):
1365         (WebCore::CurlCacheEntry::entrySize):
1366         * platform/network/curl/CurlCacheEntry.h:
1367         (WebCore::CurlCacheEntry::requestHeaders):
1368         * platform/network/curl/CurlCacheManager.cpp:
1369         (WebCore::CurlCacheManager::CurlCacheManager):
1370         (WebCore::CurlCacheManager::setStorageSizeLimit):
1371         (WebCore::CurlCacheManager::loadIndex):
1372         (WebCore::CurlCacheManager::saveIndex):
1373         (WebCore::CurlCacheManager::makeRoomForNewEntry):
1374         (WebCore::CurlCacheManager::didReceiveResponse):
1375         (WebCore::CurlCacheManager::didReceiveData):
1376         (WebCore::CurlCacheManager::invalidateCacheEntry):
1377         (WebCore::CurlCacheManager::readCachedData):
1378         * platform/network/curl/CurlCacheManager.h:
1379         (WebCore::CurlCacheManager::cacheDirectory):
1380
1381 2014-01-23  Carlos Garcia Campos  <cgarcia@igalia.com>
1382
1383         Unreviewed. Fix automake warning.
1384
1385         * GNUmakefile.list.am: Remove trailing whitespaces.
1386
1387 2014-01-23  Mihai Maerean  <mmaerean@adobe.com>
1388
1389         [CSS Regions] Fix positioning composited layers when the region has overflow:hidden
1390         https://bugs.webkit.org/show_bug.cgi?id=124042
1391
1392         Reviewed by Mihnea Ovidenie.
1393
1394         If there's a clipping GraphicsLayer on the hierarchy, substract its offset, since it's its
1395         parent that positions us.
1396
1397         Tests: compositing/regions/position-layer-inside-region-overflow-hidden.html
1398                compositing/regions/position-layer-inside-overflow-hidden.html
1399                compositing/regions/position-layers-inside-region-overflow-hidden.html
1400                compositing/regions/position-layers-inside-regions-overflow-hidden.html
1401
1402         * rendering/RenderLayerBacking.cpp:
1403         (WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread): The position
1404         must also be correct when the region has box-shadow that inflates the region's layer. The
1405         composited layers from the flow thread should be rendered in the same position whether the
1406         associated region has clipping or not.
1407         Using the position of the clipping layer instead of the location of the clipbox makes it
1408         also work with box-shadow that inflates the region's graphics layer.
1409
1410 2014-01-23  Andrei Bucur  <abucur@adobe.com>
1411
1412         [CSS Regions] Convert regions iterator loops to range-based loops
1413         https://bugs.webkit.org/show_bug.cgi?id=127464
1414
1415         Reviewed by Antti Koivisto.
1416
1417         Replace most of the iterator loops in the region implementation with
1418         range based for loops. The for loops that iterate only over subsets
1419         of collections have not been changed.
1420
1421         Tests: no new tests, this is a refactoring patch.
1422
1423         * dom/WebKitNamedFlow.cpp:
1424         (WebCore::WebKitNamedFlow::firstEmptyRegionIndex):
1425         (WebCore::WebKitNamedFlow::getRegionsByContent):
1426         (WebCore::WebKitNamedFlow::getRegions):
1427         (WebCore::WebKitNamedFlow::getContent):
1428         * inspector/InspectorOverlay.cpp:
1429         (WebCore::buildObjectForCSSRegionsHighlight):
1430         * rendering/RenderFlowThread.cpp:
1431         (WebCore::RenderFlowThread::validateRegions):
1432         (WebCore::RenderFlowThread::updateLogicalWidth):
1433         (WebCore::RenderFlowThread::computeLogicalHeight):
1434         (WebCore::RenderFlowThread::repaintRectangleInRegions):
1435         (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
1436         (WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock):
1437         (WebCore::RenderFlowThread::clearRenderBoxRegionInfoAndCustomStyle):
1438         (WebCore::RenderFlowThread::isAutoLogicalHeightRegionsCountConsistent):
1439         (WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
1440         (WebCore::RenderFlowThread::markRegionsForOverflowLayoutIfNeeded):
1441         (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
1442         (WebCore::RenderFlowThread::collectLayerFragments):
1443         (WebCore::RenderFlowThread::fragmentsBoundingBox):
1444         * rendering/RenderNamedFlowFragment.cpp:
1445         (WebCore::RenderNamedFlowFragment::setRegionObjectsRegionStyle):
1446         (WebCore::RenderNamedFlowFragment::restoreRegionObjectsOriginalStyle):
1447         * rendering/RenderNamedFlowThread.cpp:
1448         (WebCore::RenderNamedFlowThread::clearContentElements):
1449         (WebCore::RenderNamedFlowThread::nextRendererForNode):
1450         (WebCore::RenderNamedFlowThread::dependsOn):
1451         (WebCore::RenderNamedFlowThread::computeOversetStateForRegions):
1452         (WebCore::RenderNamedFlowThread::checkInvalidRegions):
1453         (WebCore::RenderNamedFlowThread::pushDependencies):
1454         (WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):
1455         (WebCore::isContainedInElements):
1456         (WebCore::RenderNamedFlowThread::getRanges):
1457         (WebCore::RenderNamedFlowThread::checkRegionsWithStyling):
1458         (WebCore::RenderNamedFlowThread::clearRenderObjectCustomStyle):
1459         * rendering/RenderTreeAsText.cpp:
1460         (WebCore::writeRenderRegionList):
1461
1462 2014-01-23  László Langó  <llango.u-szeged@partner.samsung.com>
1463
1464         Range should be constructable.
1465         https://bugs.webkit.org/show_bug.cgi?id=115639
1466
1467         Reviewed by Ryosuke Niwa.
1468
1469         http://www.w3.org/TR/2013/WD-dom-20131107/#interface-range
1470         Now we can do `new Range()` instead of `document.createRange()`.
1471
1472         Backported from Blink: https://chromium.googlesource.com/chromium/blink/+/47ca40efdf58a4787aa33aa75a35778899b1c002%5E%21
1473
1474         Test: fast/dom/Range/range-constructor.html
1475
1476         * dom/Range.cpp:
1477         (WebCore::Range::create):
1478         * dom/Range.h:
1479         * dom/Range.idl:
1480
1481 2014-01-23  ChangSeok Oh  <changseok.oh@collabora.com>
1482
1483         Unreviewed build fix for gles after r162565. Add missing definitions.
1484
1485         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
1486         (WebCore::GraphicsContext3D::drawArraysInstanced):
1487         (WebCore::GraphicsContext3D::drawElementsInstanced):
1488         (WebCore::GraphicsContext3D::vertexAttribDivisor):
1489
1490 2014-01-22  Carlos Garcia Campos  <cgarcia@igalia.com>
1491
1492         [GLIB] Use GUniquePtr instead of GOwnPtr
1493         https://bugs.webkit.org/show_bug.cgi?id=127431
1494
1495         Reviewed by Martin Robinson.
1496
1497         GUniquePtr is a template alias of std::unique_ptr with a custom
1498         deleter that replaces GOwnPtr. GOwnPtr is still used for the cases
1499         where the output pointer is needed, but it will also be replaced soon.
1500
1501         * GNUmakefile.list.am:
1502         * PlatformGTK.cmake:
1503         * accessibility/atk/AXObjectCacheAtk.cpp:
1504         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
1505         (getAttributeSetForAccessibilityObject):
1506         (accessibilityObjectLength):
1507         (textExtents):
1508         (webkitAccessibleTextGetChar):
1509         (numberOfReplacedElementsBeforeOffset):
1510         * page/ContextMenuController.cpp:
1511         * platform/SharedBuffer.h:
1512         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
1513         (webKitWebAudioSrcConstructed):
1514         (webKitWebAudioSrcLoop):
1515         * platform/audio/gtk/AudioBusGtk.cpp:
1516         (WebCore::AudioBus::loadPlatformResource):
1517         * platform/geoclue/GeolocationProviderGeoclue.cpp:
1518         * platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
1519         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1520         (WebCore::MediaPlayerPrivateGStreamer::setAudioStreamProperties):
1521         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
1522         * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
1523         (webKitMediaSrcAddSrc):
1524         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
1525         (webKitWebSrcStart):
1526         (ResourceHandleStreamingClient::wasBlocked):
1527         (ResourceHandleStreamingClient::cannotShowURL):
1528         * platform/graphics/gtk/ImageBufferGtk.cpp:
1529         (WebCore::encodeImage):
1530         (WebCore::ImageBuffer::toDataURL):
1531         * platform/graphics/gtk/ImageGtk.cpp:
1532         (WebCore::getThemeIconFileName):
1533         (WebCore::Image::loadPlatformResource):
1534         * platform/gtk/ContextMenuGtk.cpp:
1535         (WebCore::ContextMenu::itemCount):
1536         (WebCore::contextMenuItemVector):
1537         * platform/gtk/ContextMenuItemGtk.cpp:
1538         (WebCore::createPlatformMenuItemDescription):
1539         * platform/gtk/DataObjectGtk.cpp:
1540         (WebCore::DataObjectGtk::setURIList):
1541         (WebCore::DataObjectGtk::setURL):
1542         * platform/gtk/FileSystemGtk.cpp:
1543         (WebCore::filenameToString):
1544         (WebCore::fileSystemRepresentation):
1545         (WebCore::filenameForDisplay):
1546         (WebCore::pathGetFileName):
1547         (WebCore::applicationDirectoryPath):
1548         (WebCore::sharedResourcesPath):
1549         (WebCore::directoryName):
1550         (WebCore::listDirectory):
1551         (WebCore::openTemporaryFile):
1552         * platform/gtk/GOwnPtrGtk.cpp: Removed.
1553         * platform/gtk/GOwnPtrGtk.h: Removed.
1554         * platform/gtk/GUniquePtrGtk.h: Added.
1555         * platform/gtk/GamepadsGtk.cpp:
1556         (WebCore::GamepadsGtk::GamepadsGtk):
1557         * platform/gtk/GtkClickCounter.cpp:
1558         (WebCore::GtkClickCounter::shouldProcessButtonEvent):
1559         * platform/gtk/GtkInputMethodFilter.cpp:
1560         (WebCore::GtkInputMethodFilter::sendCompositionAndPreeditWithFakeKeyEvents):
1561         * platform/gtk/GtkPopupMenu.cpp:
1562         (WebCore::GtkPopupMenu::popUp):
1563         (WebCore::GtkPopupMenu::typeAheadFind):
1564         * platform/gtk/LanguageGtk.cpp:
1565         (WebCore::platformLanguage):
1566         * platform/gtk/LocalizedStringsGtk.cpp:
1567         (WebCore::imageTitle):
1568         (WebCore::localizedMediaTimeDescription):
1569         * platform/gtk/PasteboardHelper.cpp:
1570         (WebCore::selectionDataToUTF8String):
1571         (WebCore::PasteboardHelper::getClipboardContents):
1572         (WebCore::PasteboardHelper::fillSelectionData):
1573         * platform/gtk/PopupMenuGtk.cpp:
1574         (WebCore::PopupMenuGtk::createGtkActionForMenuItem):
1575         (WebCore::PopupMenuGtk::show):
1576         * platform/gtk/WebKitAuthenticationWidget.cpp:
1577         (webkitAuthenticationWidgetInitialize):
1578         * platform/network/ResourceHandleInternal.h:
1579         * platform/network/gtk/CredentialBackingStore.cpp:
1580         (WebCore::credentialForChallengeAsyncReadyCallback):
1581         * platform/network/soup/CookieJarSoup.cpp:
1582         (WebCore::setCookiesFromDOM):
1583         (WebCore::cookiesForSession):
1584         (WebCore::getRawCookies):
1585         (WebCore::deleteCookie):
1586         (WebCore::getHostnamesWithCookies):
1587         (WebCore::deleteCookiesForHostname):
1588         (WebCore::deleteAllCookies):
1589         * platform/network/soup/DNSSoup.cpp:
1590         * platform/network/soup/GUniquePtrSoup.h: Added.
1591         * platform/network/soup/ResourceErrorSoup.cpp:
1592         (WebCore::failingURI):
1593         * platform/network/soup/ResourceHandleSoup.cpp:
1594         (WebCore::ResourceHandle::ensureReadBuffer):
1595         (WebCore::cleanupSoupRequestOperation):
1596         (WebCore::createSoupRequestAndMessageForHandle):
1597         * platform/network/soup/ResourceRequestSoup.cpp:
1598         (WebCore::ResourceRequest::updateSoupMessageMembers):
1599         (WebCore::ResourceRequest::updateSoupMessage):
1600         * platform/network/soup/ResourceResponseSoup.cpp:
1601         * platform/network/soup/SoupURIUtils.cpp:
1602         (WebCore::soupURIToKURL):
1603         * platform/soup/SharedBufferSoup.cpp:
1604         (WebCore::SharedBuffer::SharedBuffer):
1605         (WebCore::SharedBuffer::clearPlatformData):
1606         (WebCore::SharedBuffer::maybeTransferPlatformData):
1607         (WebCore::SharedBuffer::hasPlatformData):
1608         * plugins/gtk/PluginPackageGtk.cpp:
1609         (WebCore::PluginPackage::fetchInfo):
1610         (WebCore::PluginPackage::load):
1611
1612 2014-01-22  Simon Fraser  <simon.fraser@apple.com>
1613
1614         Surround fixedVisibleContentRect code with USE(TILED_BACKING_STORE)
1615         https://bugs.webkit.org/show_bug.cgi?id=127461
1616
1617         Reviewed by Andreas Kling.
1618
1619         The "fixedVisibleContentRect" code path is only used by platforms
1620         which enabled TILED_BACKING_STORE, so to reduce confusion, surround
1621         this code with #if USE(TILED_BACKING_STORE).
1622
1623         * page/Frame.cpp:
1624         (WebCore::Frame::createView):
1625         * page/FrameView.cpp:
1626         * page/FrameView.h:
1627         * platform/ScrollView.cpp:
1628         (WebCore::ScrollView::unscaledVisibleContentSize):
1629         (WebCore::ScrollView::visibleContentRect):
1630         * platform/ScrollView.h:
1631         (WebCore::ScrollView::visibleSize):
1632
1633 2014-01-22  Myles C. Maxfield  <mmaxfield@apple.com>
1634
1635         ASSERTION FAILED: v.isFixed() in WebCore::RenderStyle::setWordSpacing
1636         https://bugs.webkit.org/show_bug.cgi?id=126987
1637
1638         Reviewed by Simon Fraser.
1639
1640         When "inherit" is specified and there is no parent, Length values have an "Auto" type
1641
1642         Test: fast/css3-text/css3-word-spacing-percentage/word-spacing-crash.html
1643
1644         * rendering/style/RenderStyle.cpp:
1645         (WebCore::RenderStyle::setWordSpacing):
1646
1647 2014-01-22  Samuel White  <samuel_white@apple.com>
1648
1649         AX: Can't always increment web sliders.
1650         https://bugs.webkit.org/show_bug.cgi?id=127451
1651
1652         Reviewed by Chris Fleizach.
1653
1654         Clamping the decrement/increment amount to one when necessary (if a percent change would result in a change of less than one).
1655
1656         Test: accessibility/range-alter-by-percent.html
1657
1658         * accessibility/AccessibilityNodeObject.cpp:
1659         (WebCore::AccessibilityNodeObject::changeValueByPercent):
1660
1661 2014-01-22  Myles C. Maxfield  <mmaxfield@apple.com>
1662
1663         Remove CSS3_TEXT_DECORATION define
1664         https://bugs.webkit.org/show_bug.cgi?id=127333
1665
1666         Reviewed by Simon Fraser.
1667
1668         This is required for unprefixing the text-decoration-* CSS properties.
1669
1670         No new tests are necessary becase the flag was already on by default.
1671
1672         * Configurations/FeatureDefines.xcconfig:
1673         * css/CSSComputedStyleDeclaration.cpp:
1674         (WebCore::renderTextDecorationSkipFlagsToCSSValue):
1675         (WebCore::ComputedStyleExtractor::propertyValue):
1676         * css/CSSParser.cpp:
1677         (WebCore::isColorPropertyID):
1678         (WebCore::CSSParser::parseValue):
1679         (WebCore::CSSParser::addTextDecorationProperty):
1680         (WebCore::CSSParser::parseTextUnderlinePosition):
1681         * css/CSSParser.h:
1682         * css/CSSPrimitiveValueMappings.h:
1683         (WebCore::CSSPrimitiveValue::operator TextUnderlinePosition):
1684         * css/CSSPropertyNames.in:
1685         * css/CSSValueKeywords.in:
1686         * css/DeprecatedStyleBuilder.cpp:
1687         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
1688         * css/StylePropertyShorthand.cpp:
1689         (WebCore::webkitTextDecorationShorthand):
1690         (WebCore::shorthandForProperty):
1691         (WebCore::matchingShorthandsForLonghand):
1692         * css/StylePropertyShorthand.h:
1693         * css/StyleResolver.cpp:
1694         (WebCore::shouldApplyPropertyInParseOrder):
1695         (WebCore::isValidVisitedLinkProperty):
1696         (WebCore::StyleResolver::applyProperty):
1697         * platform/graphics/GraphicsContext.h:
1698         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1699         (WebCore::GraphicsContext::setPlatformStrokeStyle):
1700         * platform/graphics/cg/GraphicsContextCG.cpp:
1701         (WebCore::GraphicsContext::platformInit):
1702         * platform/graphics/wince/GraphicsContextWinCE.cpp:
1703         (WebCore::createPen):
1704         * rendering/InlineFlowBox.cpp:
1705         (WebCore::InlineFlowBox::computeMaxLogicalTop):
1706         * rendering/InlineFlowBox.h:
1707         * rendering/InlineTextBox.cpp:
1708         (WebCore::textDecorationStyleToStrokeStyle):
1709         (WebCore::boundingBoxForAllActiveDecorations):
1710         (WebCore::InlineTextBox::paintDecoration):
1711         * rendering/RenderObject.cpp:
1712         (WebCore::decorationColor):
1713         * rendering/RootInlineBox.cpp:
1714         (WebCore::RootInlineBox::maxLogicalTop):
1715         * rendering/RootInlineBox.h:
1716         * rendering/style/RenderStyle.cpp:
1717         (WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline):
1718         (WebCore::RenderStyle::colorIncludingFallback):
1719         (WebCore::RenderStyle::visitedDependentColor):
1720         * rendering/style/RenderStyle.h:
1721         * rendering/style/RenderStyleConstants.h:
1722         * rendering/style/StyleRareInheritedData.cpp:
1723         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
1724         (WebCore::StyleRareInheritedData::operator==):
1725         * rendering/style/StyleRareInheritedData.h:
1726         * rendering/style/StyleRareNonInheritedData.cpp:
1727         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
1728         (WebCore::StyleRareNonInheritedData::operator==):
1729         * rendering/style/StyleRareNonInheritedData.h:
1730
1731 2014-01-22  Chris Fleizach  <cfleizach@apple.com>
1732
1733         AX: Do not return an accessible name for an object just because it has tabindex=0
1734         https://bugs.webkit.org/show_bug.cgi?id=126914
1735
1736         Reviewed by Mario Sanchez Prada.
1737
1738         WebKit has code to return an accessible name for any object that is "generically" focusable (ie. tabindex=0).
1739         This behavior, which is not supported in ARIA, has caused many problems for VoiceOver. Often VoiceOver will
1740         speak all the text underneath any type of group.
1741
1742         I think we need to revert this behavior and follow the ARIA spec more closely.
1743
1744         Test: accessibility/aria-describedby-ensures-visibility.html
1745
1746         * accessibility/AccessibilityNodeObject.cpp:
1747         (WebCore::AccessibilityNodeObject::visibleText):
1748         (WebCore::AccessibilityNodeObject::title):
1749
1750 2014-01-22  Brady Eidson  <beidson@apple.com>
1751
1752         The IDB backing store get() method shouldn't call IDB callbacks directly
1753         https://bugs.webkit.org/show_bug.cgi?id=127453
1754
1755         Reviewed by Beth Dakin.
1756
1757         * Modules/indexeddb/IDBServerConnection.h:
1758         (WebCore::IDBGetResult::IDBGetResult): Add a new structure to hold all of the
1759           possible results of a get() call.
1760
1761         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
1762         (WebCore::IDBServerConnectionLevelDB::get): Don't call IDBCallbacks directly.
1763           Instead, return the GetResult to the GetOperation which will make IDBCallbacks.
1764         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
1765
1766         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
1767         (WebCore::GetOperation::perform): Get all of the IDBGetResults in the completion callback
1768           make the appropriate IDBCallback.
1769         * Modules/indexeddb/IDBTransactionBackendOperations.h:
1770
1771 2014-01-22  Dean Jackson  <dino@apple.com>
1772
1773         Unreviewed attempt to fix 32-bit builds.
1774
1775         Use long long rather than GC3Dintptr.
1776
1777         * html/canvas/ANGLEInstancedArrays.cpp:
1778         (WebCore::ANGLEInstancedArrays::drawElementsInstancedANGLE):
1779         * html/canvas/ANGLEInstancedArrays.h:
1780         * html/canvas/WebGLRenderingContext.cpp:
1781         (WebCore::WebGLRenderingContext::drawElementsInstanced):
1782         * html/canvas/WebGLRenderingContext.h:
1783
1784 2014-01-21  Brady Eidson  <beidson@apple.com>
1785
1786         IDB: "Put" support
1787         <rdar://problem/15779643> and https://bugs.webkit.org/show_bug.cgi?id=127401
1788
1789         Reviewed by Alexey Proskuryakov.
1790
1791         Add persistent encode/decode for storage to the database:
1792         * Modules/indexeddb/IDBKey.cpp:
1793         (WebCore::IDBKey::encode):
1794         (WebCore::IDBKey::decode):
1795         * Modules/indexeddb/IDBKey.h:
1796
1797         Add a data class to represent IDBKey suitable for crossing IPC:
1798         * Modules/indexeddb/IDBKeyData.cpp: Added.
1799         (WebCore::IDBKeyData::IDBKeyData):
1800         (WebCore::IDBKeyData::maybeCreateIDBKey):
1801         (WebCore::IDBKeyData::isolatedCopy):
1802         * Modules/indexeddb/IDBKeyData.h: Added.
1803         (WebCore::IDBKeyData::IDBKeyData):
1804
1805         * platform/CrossThreadCopier.cpp:
1806         (WebCore::IDBKeyData>::copy):
1807         * platform/CrossThreadCopier.h:
1808
1809         * WebCore.exp.in:
1810         * WebCore.xcodeproj/project.pbxproj:
1811
1812 2014-01-22  Dean Jackson  <dino@apple.com>
1813
1814         [WebGL] Implement ANGLE_instanced_arrays
1815         https://bugs.webkit.org/show_bug.cgi?id=127257
1816
1817         Reviewed by Brent Fulgham.
1818
1819         Implement the instanced drawing WebGL extension,
1820         ANGLE_instanced_arrays. This is currently Mac-only,
1821         but should be portable to other platforms if their
1822         OpenGL exposes the functions. It's also done in a way
1823         that will make exposing it to WebGL2 simple.
1824
1825         Test: fast/canvas/webgl/angle-instanced-arrays.html
1826
1827         * CMakeLists.txt:
1828         * DerivedSources.cpp:
1829         * DerivedSources.make:
1830         * GNUmakefile.list.am:
1831         * WebCore.vcxproj/WebCore.vcxproj:
1832         * WebCore.vcxproj/WebCore.vcxproj.filters:
1833         * WebCore.xcodeproj/project.pbxproj:
1834         Add the new files to all the build systems.
1835
1836         * bindings/js/JSWebGLRenderingContextCustom.cpp:
1837         (WebCore::toJS): Link JS side to C++ side.
1838
1839         * html/canvas/ANGLEInstancedArrays.cpp: Added.
1840         (WebCore::ANGLEInstancedArrays::ANGLEInstancedArrays):
1841         * html/canvas/ANGLEInstancedArrays.h: Added.
1842         * html/canvas/ANGLEInstancedArrays.idl: Added.
1843         New boilerplate files that expose the extension methods.
1844
1845         * html/canvas/WebGLExtension.h: New extension enum.
1846
1847         * html/canvas/WebGLRenderingContext.cpp:
1848         (WebCore::WebGLRenderingContext::validateVertexAttributes): Add an optional
1849         parameter representing the number of instance primitives we are asked
1850         to draw. Use that for the draw count if looking at an instanced attribute.
1851         Also make sure we see at least one non-instanced attribute.
1852         (WebCore::WebGLRenderingContext::validateDrawArrays): Update this so it could
1853         be used from either drawArrays or drawArraysInstanced.
1854         (WebCore::WebGLRenderingContext::drawArrays):
1855         (WebCore::WebGLRenderingContext::validateDrawElements): Same here, now can be
1856         used by the instanced and non-instanced versions.
1857         (WebCore::WebGLRenderingContext::drawElements):
1858         (WebCore::WebGLRenderingContext::getExtension): Create and return the new extension.
1859         (WebCore::WebGLRenderingContext::getSupportedExtensions): Add new extension to the list.
1860         (WebCore::WebGLRenderingContext::getVertexAttrib): Intercept a query to the divisor
1861         attribute and return the value we kept in the state.
1862         (WebCore::WebGLRenderingContext::drawArraysInstanced): Call the GC3D method.
1863         (WebCore::WebGLRenderingContext::drawElementsInstanced): Ditto.
1864         (WebCore::WebGLRenderingContext::vertexAttribDivisor): Ditto.
1865
1866         * html/canvas/WebGLRenderingContext.h: Define the new methods and parameters.
1867
1868         * html/canvas/WebGLVertexArrayObjectOES.cpp:
1869         (WebCore::WebGLVertexArrayObjectOES::setVertexAttribDivisor): Keep a record of the
1870         divisor if we set it.
1871         * html/canvas/WebGLVertexArrayObjectOES.h:
1872         (WebCore::WebGLVertexArrayObjectOES::VertexAttribState::VertexAttribState):
1873
1874         * platform/graphics/GraphicsContext3D.h: New enum.
1875         * platform/graphics/mac/GraphicsContext3DMac.mm:
1876         (WebCore::GraphicsContext3D::drawArraysInstanced): The actual calls into OpenGL.
1877         (WebCore::GraphicsContext3D::drawElementsInstanced): Ditto.
1878         (WebCore::GraphicsContext3D::vertexAttribDivisor): Ditto.
1879
1880         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp: Empty implementations
1881         for non-mac platforms.
1882
1883         * platform/graphics/ios/GraphicsContext3DIOS.h: Define the iOS names for the
1884         functions.
1885
1886 2014-01-22  Zalan Bujtas  <zalan@apple.com>
1887
1888         [CSS Shapes] shape-inside rectangle layout can fail
1889         https://bugs.webkit.org/show_bug.cgi?id=124784
1890
1891         Reviewed by Darin Adler.
1892
1893         Early subpixel rounding/flooring/ceiling can have unwanted
1894         side effect on the final pixel value. Delay pixel
1895         conversions as much as possible.
1896
1897         Existing test is changed to reflect subpixel functionality.
1898
1899         * rendering/shapes/RectangleShape.cpp:
1900         (WebCore::RectangleShape::firstIncludedIntervalLogicalTop):
1901
1902 2014-01-22  Jochen Eisinger  <jochen@chromium.org>
1903
1904         Add protocolIsInHTTPFamily for strings and use it where appropriate
1905         https://bugs.webkit.org/show_bug.cgi?id=127336
1906
1907         Reviewed by Alexey Proskuryakov.
1908
1909         * html/HTMLAnchorElement.cpp:
1910         (WebCore::HTMLAnchorElement::parseAttribute):
1911         * page/ContentSecurityPolicy.cpp:
1912         (WebCore::CSPSource::schemeMatches):
1913         * page/SecurityPolicy.cpp:
1914         (WebCore::SecurityPolicy::generateReferrerHeader):
1915         * platform/URL.cpp:
1916         (WebCore::protocolIsInHTTPFamily):
1917         * platform/URL.h:
1918
1919 2014-01-22  Zalan Bujtas  <zalan@apple.com>
1920
1921         Subpixel Layout: SimpleLineLayout needs more position rounding to match InlineFlowBox layout.
1922         https://bugs.webkit.org/show_bug.cgi?id=127404
1923
1924         Reviewed by Antti Koivisto.
1925
1926         In order to produce a CSS pixel perfect layout, SimpleLineLayout needs to
1927         round line positions to CSS (integral) position similarly to InlineFlowBox.
1928
1929         Existing tests cover it.
1930
1931         * rendering/SimpleLineLayoutResolver.h:
1932         (WebCore::SimpleLineLayout::RunResolver::Run::rect):
1933         (WebCore::SimpleLineLayout::RunResolver::Run::baseline):
1934
1935 2014-01-22  Joseph Pecoraro  <pecoraro@apple.com>
1936
1937         Unreviewed rollout of r162534, this caused inspector test failures.
1938
1939         * bindings/js/PageScriptDebugServer.cpp:
1940         (WebCore::PageScriptDebugServer::addListener):
1941         (WebCore::PageScriptDebugServer::removeListener):
1942         (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
1943         (WebCore::PageScriptDebugServer::didRemoveLastListener):
1944         * bindings/js/PageScriptDebugServer.h:
1945         * bindings/js/ScriptDebugServer.cpp:
1946         (WebCore::ScriptDebugServer::ScriptDebugServer):
1947         (WebCore::ScriptDebugServer::recompileAllJSFunctionsSoon):
1948         (WebCore::ScriptDebugServer::recompileAllJSFunctionsTimerFired):
1949         * bindings/js/ScriptDebugServer.h:
1950         * bindings/js/WorkerScriptDebugServer.cpp:
1951         (WebCore::WorkerScriptDebugServer::addListener):
1952         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
1953         (WebCore::WorkerScriptDebugServer::removeListener):
1954         * inspector/InspectorProfilerAgent.cpp:
1955
1956 2014-01-22  peavo@outlook.com  <peavo@outlook.com>
1957
1958         Crashes in setTextForIterator
1959         https://bugs.webkit.org/show_bug.cgi?id=127424
1960
1961         Reviewed by Brent Fulgham.
1962
1963         * platform/text/icu/UTextProviderLatin1.cpp:
1964         (WebCore::uTextLatin1Clone): Provide correct buffer size in utext_setup function call.
1965         (WebCore::uTextLatin1Access): Give correct buffer size to memset call.
1966         (WebCore::openLatin1UTextProvider): Ditto.
1967
1968 2014-01-22  Jer Noble  <jer.noble@apple.com>
1969
1970         [Mac] MediaPlayerPrivateMediaSourceAVFObjC::load ASSERTs on lots of tests
1971         https://bugs.webkit.org/show_bug.cgi?id=127430
1972
1973         Reviewed by Eric Carlson.
1974
1975         When other registered media engines cannot load a URL, the engine selection
1976         will eventually pick MediaPlayerPrivateMediaSourceAVFObjC and ask it to load
1977         the URL. Instead of ASSERTing here, simply reject the URL by setting the
1978         network state to FormatError.
1979
1980         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
1981         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load):
1982
1983 2014-01-22  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
1984
1985         [EFL][GTK] Get EFL and GTK compiling with ACCESSIBILITY disabled
1986         https://bugs.webkit.org/show_bug.cgi?id=127119
1987
1988         Reviewed by Mario Sanchez Prada.
1989
1990         At build time, the compiler was not able to determine which Timer's constructor to call in AXObjectCache when
1991         ACCESSIBILITY is not enabled, fixing that.
1992         Also guarding some members in AccessibilityObject that are only being used by EFL and GTK with ACCESSIBILITY.
1993
1994         * accessibility/AXObjectCache.h:
1995         (WebCore::AXObjectCache::AXObjectCache):
1996         * accessibility/AccessibilityObject.h:
1997
1998 2014-01-22  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
1999
2000         Refactor calculation of hasRx and hasRy values in SVGPathData
2001         https://bugs.webkit.org/show_bug.cgi?id=127423
2002
2003         Reviewed by Darin Adler.
2004
2005         This is a follow-up on https://bugs.webkit.org/show_bug.cgi?id=127337
2006
2007         * rendering/svg/SVGPathData.cpp:
2008         (WebCore::updatePathFromRectElement):
2009
2010 2014-01-21  Joseph Pecoraro  <pecoraro@apple.com>
2011
2012         Web Inspector: Remove recompileAllJSFunctions timer in ScriptDebugServer
2013         https://bugs.webkit.org/show_bug.cgi?id=127409
2014
2015         Reviewed by Timothy Hatcher.
2016
2017         * bindings/js/ScriptDebugServer.h:
2018         * bindings/js/ScriptDebugServer.cpp:
2019         (WebCore::ScriptDebugServer::ScriptDebugServer):
2020         Remove m_recompileTimer and the recompile soon function.
2021         We can just recompile immediately in all existing cases.
2022
2023         * bindings/js/PageScriptDebugServer.h:
2024         * bindings/js/PageScriptDebugServer.cpp:
2025         (WebCore::PageScriptDebugServer::addListener):
2026         (WebCore::PageScriptDebugServer::removeListener):
2027         (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
2028         (WebCore::PageScriptDebugServer::didAddFirstListener):
2029         (WebCore::PageScriptDebugServer::didRemoveLastListener):
2030         Add a "didAddFirstListener" to match "didRemoveLastListener".
2031         Only recompile functions when we attach the debugger and when
2032         we detach the last listener.
2033
2034         * bindings/js/WorkerScriptDebugServer.cpp:
2035         (WebCore::WorkerScriptDebugServer::addListener):
2036         (WebCore::WorkerScriptDebugServer::removeListener):
2037         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
2038         Same thing. Also rearrange the functions to read better.
2039
2040         * inspector/InspectorProfilerAgent.cpp:
2041         Use the direct recompile function instead of the removed "soon" version.
2042
2043 2014-01-22  Robert Sipka  <sipka@inf.u-szeged.hu>
2044
2045         [curl] Improve detecting and handling of SSL client certificate
2046         https://bugs.webkit.org/show_bug.cgi?id=125006
2047
2048         Reviewed by Brent Fulgham.
2049
2050         Add client certificate handling.
2051
2052         * platform/network/ResourceHandle.h:
2053         * platform/network/curl/ResourceError.h:
2054         (WebCore::ResourceError::hasSSLConnectError):
2055         * platform/network/curl/ResourceHandleCurl.cpp:
2056         (WebCore::ResourceHandle::setClientCertificateInfo):
2057         * platform/network/curl/ResourceHandleManager.cpp:
2058         (WebCore::ResourceHandleManager::initializeHandle):
2059         * platform/network/curl/SSLHandle.cpp:
2060         (WebCore::addAllowedClientCertificate):
2061         (WebCore::setSSLClientCertificate):
2062         * platform/network/curl/SSLHandle.h:
2063
2064 2014-01-22  Mihai Maerean  <mmaerean@adobe.com>
2065
2066         [CSS Regions] layerOwner in RenderNamedFlowFragment cannot return null
2067         https://bugs.webkit.org/show_bug.cgi?id=127343
2068
2069         Reviewed by Sam Weinig.
2070
2071         RenderNamedFlowFragment::layerOwner cannot return null because regions create stacking
2072         contexts which create layers.
2073
2074         No new tests, no functional change.
2075
2076         * rendering/RenderFlowThread.cpp:
2077         (WebCore::RenderFlowThread::hasCompositingRegionDescendant):
2078         * rendering/RenderLayer.cpp:
2079         (WebCore::RenderLayer::calculateClipRects):
2080         * rendering/RenderLayerBacking.cpp:
2081         (WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread):
2082         * rendering/RenderLayerCompositor.cpp:
2083         (WebCore::RenderLayerCompositor::computeRegionCompositingRequirements):
2084         * rendering/RenderNamedFlowFragment.h:
2085
2086 2014-01-22  Antti Koivisto  <antti@apple.com>
2087
2088         Avoid unthrottled layer flushes triggered by RenderLayerCompositor::ensureRootLayer
2089         https://bugs.webkit.org/show_bug.cgi?id=127426
2090
2091         Reviewed by Anders Carlsson.
2092         
2093         * rendering/RenderLayerCompositor.cpp:
2094         (WebCore::RenderLayerCompositor::updateScrollLayerPosition):
2095         (WebCore::RenderLayerCompositor::frameViewDidScroll):
2096
2097             Factor scroll layer position update to a function.
2098
2099         (WebCore::RenderLayerCompositor::ensureRootLayer):
2100         
2101             Stop calling frameViewDidChangeSize/frameViewDidScroll. Instead call the relevent functions
2102             directly. This avoid unthrottled layer flush that is done when the view actually scrolls.
2103
2104         * rendering/RenderLayerCompositor.h:
2105
2106 2014-01-22  Mihai Tica  <mitica@adobe.com>
2107
2108         [CSS Background Blending] -webkit-background-blend-mode fails for certain SVG files
2109         https://bugs.webkit.org/show_bug.cgi?id=127350
2110
2111         Reviewed by Dirk Schulze.
2112
2113         The graphics context of the SVG inherits the blend mode set
2114         on the background layer. Fix consists in drawing the SVG
2115         in a transparency layer.
2116
2117         Test: css3/compositing/background-blend-mode-svg.html
2118
2119         * svg/graphics/SVGImage.cpp:
2120         (WebCore::SVGImage::draw): Begin a transparency layer if a blend mode is set.
2121
2122 2014-01-22  Antti Koivisto  <antti@apple.com>
2123
2124         Update overlay scrollbars in single pass
2125         https://bugs.webkit.org/show_bug.cgi?id=127289
2126
2127         Reviewed by Anders Carlsson.
2128
2129         * platform/ScrollView.cpp:
2130         (WebCore::ScrollView::updateScrollbars):
2131         
2132             Multi-pass scrollbar resolution is only needed for traditional scrollbars. Overlay scrollbars don't affect layout.
2133
2134 2014-01-22  Mihnea Ovidenie  <mihnea@adobe.com>
2135
2136         [CSSRegions] Incorrect layout of a region pseudo children
2137         https://bugs.webkit.org/show_bug.cgi?id=126146
2138
2139         Reviewed by David Hyatt.
2140
2141         Test: fast/regions/collapse-anonymous-region.html
2142
2143         A region behaviour, styled using -webkit-flow-from, is modeled using an anonymous
2144         block created to fragment the named flow content inside the region. We have to prevent
2145         the behaviour of anonymous children collapsing for this block to make sure that the
2146         region element children are still laid out properly when the region element becomes an ordinary
2147         element.
2148
2149         * rendering/RenderBlockFlow.h:
2150
2151 2014-01-21  Ryuan Choi  <ryuan.choi@samsung.com>
2152
2153         Remove unused "acceleratedCompositingForScrollableFramesEnabled" setting
2154         https://bugs.webkit.org/show_bug.cgi?id=127402
2155
2156         Reviewed by Anders Carlsson.
2157
2158         compositing/iframes/iframe-composited-scrolling.html is updated because
2159         there are no usages in WebCore.
2160
2161         * page/Settings.in:
2162
2163 2014-01-21  Alex Christensen  <achristensen@webkit.org>
2164
2165         Compile fix for using libsoup on Windows.
2166         https://bugs.webkit.org/show_bug.cgi?id=127377
2167
2168         Reviewed by Daniel Bates.
2169
2170         * platform/network/soup/ProxyResolverSoup.cpp:
2171         (soupProxyResolverWkSetProperty):
2172         (soupProxyResolverWkGetProperty):
2173         (soupProxyResolverWkGetProxyURISync):
2174         Replaced uint with unsigned.
2175
2176 2014-01-21  Daniel Bates  <dabates@apple.com>
2177
2178         Break up single assertion into two assertions in HTMLMediaElement::returnPlatformLayer()
2179
2180         Following up after <http://trac.webkit.org/changeset/162473>, we should break up
2181         the assertion into two assertions as suggested by Darin Adler. Separating the single
2182         assertion into two assertions makes it straightforward to determine the conjunct that
2183         failed among other benefits.
2184
2185         * html/HTMLMediaElement.cpp:
2186         (WebCore::HTMLMediaElement::parseAttribute):
2187
2188 2014-01-21  Brady Eidson  <beidson@apple.com>
2189
2190         The IDB backing store put() method shouldn't call IDB callbacks directly
2191         https://bugs.webkit.org/show_bug.cgi?id=127399
2192
2193         Reviewed by Beth Dakin.
2194
2195         Refactor the put() callback to take a resulting key or an error.
2196         * Modules/indexeddb/IDBServerConnection.h:
2197
2198         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
2199         (WebCore::PutOperation::perform): Call to the backing store, then perform the
2200           appropriate IDB callback whether a key or an error was returned.
2201         * Modules/indexeddb/IDBTransactionBackendOperations.h:
2202
2203         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
2204         (WebCore::IDBServerConnectionLevelDB::put): Don’t call IDB callbacks directly.
2205           Instead, pass the resulting key/error back to the PutOperation.
2206         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
2207
2208 2014-01-21  Jae Hyun Park  <jae.park@company100.net>
2209
2210         Use nullptr in HTMLCanvasElement
2211         https://bugs.webkit.org/show_bug.cgi?id=127388
2212
2213         Reviewed by Gyuyoung Kim.
2214
2215         * html/HTMLCanvasElement.cpp:
2216         (WebCore::HTMLCanvasElement::getContext):
2217         (WebCore::HTMLCanvasElement::drawingContext):
2218         (WebCore::HTMLCanvasElement::existingDrawingContext):
2219
2220 2014-01-21  László Langó  <llango.u-szeged@partner.samsung.com>
2221
2222         Assertion failure in Range::nodeWillBeRemoved
2223         https://bugs.webkit.org/show_bug.cgi?id=121694
2224
2225         Reviewed by Ryosuke Niwa.
2226
2227         Based on Blink a change: https://chromium.googlesource.com/chromium/blink/+/407c1d7b2c45974aa614b3f847ffe9e8fce205fa
2228
2229         This patch fix an assertion failure. Range::nodeWillBeRemoved() might
2230         be called with removed node in ContainerNode, when DOMNodeRemovedFromDocument
2231         event handler calls removeChild(), for node being removed.
2232
2233         Test: fast/dom/Range/remove-twice-crash.html
2234
2235         * dom/ContainerNode.cpp:
2236         (WebCore::ContainerNode::willRemoveChild):
2237         * dom/ContainerNode.h:
2238
2239 2014-01-21  Tim Horton  <timothy_horton@apple.com>
2240
2241         REGRESSION (r161580): Some PDFs render outside their <img>
2242         https://bugs.webkit.org/show_bug.cgi?id=127381
2243         <rdar://problem/15872168>
2244
2245         Reviewed by Simon Fraser.
2246
2247         * platform/graphics/cg/PDFDocumentImage.cpp:
2248         (WebCore::transformContextForPainting):
2249         Only try to make the scale uniform if it isn't already, and use the minimum
2250         of the two original scales when doing so, so that it is absolutely certain
2251         to fit inside space allocated for the image during layout.
2252
2253 2014-01-21  Simon Fraser  <simon.fraser@apple.com>
2254
2255         Remove #if PLATFORM(IOS) in various places around customFixedPositionLayoutRect() code
2256         https://bugs.webkit.org/show_bug.cgi?id=127373
2257
2258         Reviewed by Beth Dakin.
2259
2260         Instead of PLATFORM(IOS) #idefs at every call site for viewportConstrainedVisibleContentRect(),
2261         move the #ifdef inside viewportConstrainedVisibleContentRect().
2262         
2263         The one call site that needs special handling is RenderLayerBacking::updateCompositedBounds(),
2264         which needs to avoid clipping fixed layers to the custom fixed position rect, but instead to
2265         visibleContentRect() (which is really the document bounds on iOS). This ensures that the
2266         fixed layers aren't clipped when zooming out.
2267
2268         * page/FrameView.cpp:
2269         (WebCore::FrameView::viewportConstrainedVisibleContentRect):
2270         * rendering/RenderBoxModelObject.cpp:
2271         (WebCore::RenderBoxModelObject::stickyPositionOffset):
2272         * rendering/RenderLayerBacking.cpp:
2273         (WebCore::RenderLayerBacking::updateCompositedBounds):
2274         * rendering/RenderLayerCompositor.cpp:
2275         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
2276         (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
2277         (WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
2278
2279 2014-01-21  Andy Estes  <aestes@apple.com>
2280
2281         [iOS] Allow all clients to link against WebCore
2282         https://bugs.webkit.org/show_bug.cgi?id=127372
2283         
2284         Reviewed by Dan Bernstein.
2285
2286         * Configurations/WebCore.xcconfig:
2287
2288 2014-01-21  Bear Travis  <betravis@adobe.com>
2289
2290         [CSS Shapes] Preserve box-shape order when serializing shape values
2291         https://bugs.webkit.org/show_bug.cgi?id=127200
2292
2293         Reviewed by Dirk Schulze.
2294
2295         Convert the parsed shape-box pair to a CSSValueList rather than directly
2296         adding the box value to BasicShape. The CSSValueList preserves the
2297         shape-box ordering, and cleans up a little bit of the code shared between
2298         clip and shape values.
2299
2300         Modifying existing parsing tests.
2301
2302         * css/CSSComputedStyleDeclaration.cpp:
2303         (WebCore::shapePropertyValue): Factor out code common to generating shape
2304         values.
2305         (WebCore::ComputedStyleExtractor::propertyValue): Generate a CSSValueList when
2306         you have both a shape and a box.
2307         * css/CSSParser.cpp:
2308         (WebCore::CSSParser::parseBasicShapeAndOrBox): Factor out code common to clip
2309         paths and shape properties that parses the [basic-shape || box] syntax from
2310         the CSS Shapes spec.
2311         (WebCore::CSSParser::parseShapeProperty): Parse shape-box pairs as a CSSValueList.
2312         * css/DeprecatedStyleBuilder.cpp:
2313         (WebCore::ApplyPropertyShape::applyValue): Use the CSSValueList for shape-box pairs.
2314         * css/CSSValueList.h:
2315         (WebCore::CSSValueList::itemWithoutBoundsCheck): Add a const version.
2316         * page/animation/CSSPropertyAnimation.cpp:
2317         (WebCore::blendFunc): Specify a box when blending.
2318         * rendering/style/ShapeValue.h:
2319         (WebCore::ShapeValue::createShapeValue): Add a box parameter.
2320         (WebCore::ShapeValue::ShapeValue): Ditto.
2321
2322 2014-01-21  Daniel Bates  <dabates@apple.com>
2323
2324         Fix the iOS Simulator release build
2325
2326         Substitute ASSERT_UNUSED() for ASSERT() to resolve a compiler warning
2327         that the argument platformLayer is unused. The argument platformLayer
2328         is only used in the asserted condition, which isn't compiled in a
2329         release build; => the argument is unused in a release build.
2330
2331         * html/HTMLMediaElement.cpp:
2332         (WebCore::HTMLMediaElement::parseAttribute):
2333
2334 2014-01-21  Zoltan Horvath  <zoltan@webkit.org>
2335
2336         Since MidpointState is a class, it should behave like a class
2337         https://bugs.webkit.org/show_bug.cgi?id=127154
2338
2339         Reviewed by David Hyatt.
2340
2341         I modified MidpointState to behave like a class, updated the call sites also.
2342
2343         No new tests, no behavior change.
2344
2345         * platform/text/BidiResolver.h:
2346         (WebCore::MidpointState::reset):
2347         (WebCore::MidpointState::startIgnoringSpaces):
2348         (WebCore::MidpointState::stopIgnoringSpaces):
2349         (WebCore::MidpointState::midpoints):
2350         (WebCore::MidpointState::numMidpoints):
2351         (WebCore::MidpointState::currentMidpoint):
2352         (WebCore::MidpointState::incrementCurrentMidpoint):
2353         (WebCore::MidpointState::decreaseNumMidpoints):
2354         (WebCore::MidpointState::betweenMidpoints):
2355         (WebCore::MidpointState::setBetweenMidpoints):
2356         (WebCore::MidpointState::addMidpoint): Renamed from deprecatedAddMidpoint, since now
2357         its private, we no longer need to discourage callers from using it.
2358         * rendering/InlineIterator.h:
2359         (WebCore::IsolateTracker::addFakeRunIfNecessary):
2360         * rendering/RenderBlockLineLayout.cpp:
2361         (WebCore::RenderBlockFlow::appendRunsForObject):
2362         (WebCore::constructBidiRunsForLine):
2363         * rendering/line/BreakingContextInlineHeaders.h:
2364         (WebCore::checkMidpoints):
2365         * rendering/line/TrailingObjects.cpp:
2366         (WebCore::TrailingObjects::updateMidpointsForTrailingBoxes):
2367
2368 2014-01-21  Commit Queue  <commit-queue@webkit.org>
2369
2370         Unreviewed, rolling out r162452.
2371         http://trac.webkit.org/changeset/162452
2372         https://bugs.webkit.org/show_bug.cgi?id=127366
2373
2374         broke a few tests on all Mac WebKit1 bots (Requested by
2375         thorton on #webkit).
2376
2377         * WebCore.exp.in:
2378         * page/FocusController.cpp:
2379         (WebCore::FocusController::FocusController):
2380         (WebCore::FocusController::setFocused):
2381         (WebCore::FocusController::setActive):
2382         (WebCore::FocusController::setContentIsVisible):
2383         * page/FocusController.h:
2384         (WebCore::FocusController::isActive):
2385         (WebCore::FocusController::isFocused):
2386         * page/Page.cpp:
2387         (WebCore::Page::Page):
2388         (WebCore::Page::setIsInWindow):
2389         (WebCore::Page::setIsVisuallyIdle):
2390         (WebCore::Page::setIsVisible):
2391         (WebCore::Page::visibilityState):
2392         (WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
2393         * page/Page.h:
2394         (WebCore::Page::isVisible):
2395         (WebCore::Page::isInWindow):
2396
2397 2014-01-21  Chris Fleizach  <cfleizach@apple.com>
2398
2399         AX: Mac: Expose the visible text of a password field to AX
2400         https://bugs.webkit.org/show_bug.cgi?id=127353
2401
2402         Reviewed by Brent Fulgham.
2403
2404         The Mac platform should now expose the rendered value of password fields through AX.
2405
2406         Test: accessibility/password-field-value.html
2407
2408         * accessibility/AccessibilityRenderObject.cpp:
2409         (WebCore::AccessibilityRenderObject::textLength):
2410         (WebCore::AccessibilityRenderObject::passwordFieldValue):
2411
2412 2014-01-21  Robert Sipka  <sipka@inf.u-szeged.hu>
2413
2414         Support SSL error handling in case of synchronous job.
2415         https://bugs.webkit.org/show_bug.cgi?id=125301
2416
2417         Reviewed by Brent Fulgham.
2418
2419         Set ssl error informations for the users.
2420
2421         * platform/network/curl/ResourceHandleManager.cpp:
2422         (WebCore::ResourceHandleManager::dispatchSynchronousJob):
2423
2424 2014-01-21  Simon Fraser  <simon.fraser@apple.com>
2425
2426         Export systemTotalMemory() and systemMemoryLevel() for MobileSafari
2427         https://bugs.webkit.org/show_bug.cgi?id=127360
2428
2429         Reviewed by Andy Estes.
2430         
2431         MobileSafari inappropriately calls these WebCore functions directly,
2432         so export them.
2433
2434         * WebCore.exp.in:
2435
2436 2014-01-21  Simon Fraser  <simon.fraser@apple.com>
2437
2438         Clean up PLATFORM(IOS) code related to the custom fixed position layout rect
2439         https://bugs.webkit.org/show_bug.cgi?id=127362
2440
2441         Reviewed by Dave Hyatt.
2442
2443         Various platforms customize the rect used to layout position:fixed elements,
2444         and each modified RenderBox::availableLogicalHeight/WidthUsing() in different
2445         ways.
2446         
2447         Clean this up by adding RenderView::clientLogicalWidth/HeightForFixedPosition(),
2448         and moving the platform hacks into it.
2449
2450         * rendering/RenderBox.cpp:
2451         (WebCore::RenderBox::availableLogicalHeightUsing):
2452         (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
2453         (WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
2454         * rendering/RenderView.cpp:
2455         (WebCore::RenderView::clientLogicalWidthForFixedPosition):
2456         (WebCore::RenderView::clientLogicalHeightForFixedPosition):
2457         * rendering/RenderView.h:
2458
2459 2014-01-21  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
2460
2461         ASSERT(time.isFinite()) in SVGSMILElement::createInstanceTimesFromSyncbase
2462         <https://webkit.org/b/108184>
2463
2464         Reviewed by Philip Rogers.
2465
2466         In the case a SMILElement timing had a syncbase dependency on an indefinite value
2467         the assert were raised. The assert has been removed and a check has been added
2468         instead that prevents the addition of indefinite times to the time list.
2469
2470         Test: svg/animations/smil-syncbase-self-dependency.svg
2471
2472         * svg/animation/SVGSMILElement.cpp:
2473         (WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):
2474           ASSERT removed.
2475
2476 2014-01-21  Tim Horton  <timothy_horton@apple.com>
2477
2478         Address late review naming comments after r162453.
2479
2480         * WebCore.xcodeproj/project.pbxproj:
2481         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2482         * platform/graphics/mac/CALayerWebAdditions.h: Removed.
2483         * platform/graphics/mac/CALayerWebAdditions.mm: Removed.
2484         * platform/graphics/mac/WebCoreCALayerExtras.h: Added.
2485         * platform/graphics/mac/WebCoreCALayerExtras.mm: Added.
2486         (-[CALayer web_disableAllActions]):
2487
2488 2014-01-21  Tim Horton  <timothy_horton@apple.com>
2489
2490         Keep CALayer implicit animation disabling code in a single place
2491         https://bugs.webkit.org/show_bug.cgi?id=127355
2492
2493         Reviewed by Simon Fraser.
2494
2495         * WebCore.xcodeproj/project.pbxproj:
2496         Add CALayerWebAdditions.{h,mm}.
2497
2498         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2499         (PlatformCALayerMac::commonInit):
2500         Remove nullActionsDictionary() and use [CALayer(WebAdditions) web_disableAllActions] instead.
2501
2502         * platform/graphics/mac/CALayerWebAdditions.h: Added.
2503         * platform/graphics/mac/CALayerWebAdditions.mm: Added.
2504         (-[CALayer web_disableAllActions]):
2505         Added. Disable all implicit actions on the layer.
2506
2507 2014-01-21  Gavin Barraclough  <barraclough@apple.com>
2508
2509         Change Page, FocusController to use ViewState
2510         https://bugs.webkit.org/show_bug.cgi?id=126533
2511
2512         Reviewed by Tim Horton.
2513
2514         These classes currently maintain a set of separate fields to represent the view state;
2515         combine these into a single field, and allow WebPage to send the combined update rather
2516         than individual changes.
2517
2518         Maintain existing interface for WebKit1 clients.
2519
2520         * WebCore.exp.in:
2521             - Added WebCore::setViewState, removed WebCore::setIsVisuallyIdle.
2522         * page/FocusController.cpp:
2523         (WebCore::FocusController::FocusController):
2524             - Initialize combined m_viewState.
2525         (WebCore::FocusController::setFocused):
2526             - Calls setViewState.
2527         (WebCore::FocusController::setFocusedInternal):
2528             - setFocused -> setFocusedInternal.
2529         (WebCore::FocusController::setViewState):
2530             - Added, update all ViewState flags.
2531         (WebCore::FocusController::setActive):
2532             - Calls setViewState.
2533         (WebCore::FocusController::setActiveInternal):
2534             - setActive -> setActiveInternal.
2535         (WebCore::FocusController::setContentIsVisible):
2536             - Calls setViewState.
2537         (WebCore::FocusController::setContentIsVisibleInternal):
2538             - setContentIsVisible -> setContentIsVisibleInternal.
2539         * page/FocusController.h:
2540         (WebCore::FocusController::isActive):
2541         (WebCore::FocusController::isFocused):
2542         (WebCore::FocusController::contentIsVisible):
2543             - Implemented in terms of ViewState.
2544         * page/Page.cpp:
2545         (WebCore::Page::Page):
2546             - Initialize using PageInitialViewState.
2547         (WebCore::Page::setIsInWindow):
2548             - Calls setViewState.
2549         (WebCore::Page::setIsInWindowInternal):
2550             - setIsInWindow -> setIsInWindowInternal.
2551         (WebCore::Page::setIsVisuallyIdleInternal):
2552             - setIsVisuallyIdle -> setIsVisuallyIdleInternal.
2553         (WebCore::Page::setViewState):
2554             - Added, update all ViewState flags, including FocusController.
2555         (WebCore::Page::setIsVisible):
2556             - Calls setViewState.
2557         (WebCore::Page::setIsVisibleInternal):
2558             - setIsVisible -> setIsVisibleInternal.
2559         (WebCore::Page::visibilityState):
2560             - m_isVisible -> isVisible()
2561         (WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
2562             - m_isVisible -> isVisible()
2563         * page/Page.h:
2564         (WebCore::Page::isVisible):
2565         (WebCore::Page::isInWindow):
2566             - Implemented in terms of ViewState.
2567         (WebCore::Page::scriptedAnimationsSuspended):
2568             - Combined member fields into ViewState::Flags.
2569
2570 2014-01-21  Lauro Neto  <lauro.neto@openbossa.org>
2571
2572         Remove PLATFORM(NIX) from WebCore
2573         https://bugs.webkit.org/show_bug.cgi?id=127299
2574
2575         Reviewed by Anders Carlsson.
2576
2577         * editing/Editor.cpp:
2578         (WebCore::Editor::cut):
2579         (WebCore::Editor::copy):
2580         (WebCore::Editor::copyImage):
2581         * editing/Editor.h:
2582         * html/HTMLCanvasElement.h:
2583         * loader/EmptyClients.h:
2584         * loader/FrameLoader.cpp:
2585         (WebCore::FrameLoader::defaultObjectContentType):
2586         * page/ChromeClient.h:
2587         * page/DragController.cpp:
2588         (WebCore::DragController::startDrag):
2589         * platform/Cursor.h:
2590         * platform/DragData.h:
2591         * platform/DragImage.h:
2592         * platform/FileSystem.h:
2593         * platform/LocalizedStrings.h:
2594         * platform/Widget.h:
2595         * platform/audio/FFTFrame.h:
2596         * platform/audio/HRTFElevation.cpp:
2597         * platform/cairo/WidgetBackingStore.h:
2598         * platform/graphics/ANGLEWebKitBridge.h:
2599         * platform/graphics/FontPlatformData.h:
2600         * platform/graphics/GLContext.cpp:
2601         (WebCore::GLContext::createContextForWindow):
2602         * platform/graphics/GLContext.h:
2603         * platform/graphics/GraphicsContext3D.h:
2604         * platform/graphics/GraphicsContext3DPrivate.cpp:
2605         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
2606         * platform/graphics/OpenGLESShims.h:
2607         * platform/graphics/OpenGLShims.cpp:
2608         (WebCore::getProcAddress):
2609         * platform/graphics/OpenGLShims.h:
2610         * platform/graphics/PlatformLayer.h:
2611         * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
2612         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
2613         (WebCore::Extensions3DOpenGL::createVertexArrayOES):
2614         (WebCore::Extensions3DOpenGL::deleteVertexArrayOES):
2615         (WebCore::Extensions3DOpenGL::isVertexArrayOES):
2616         (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
2617         (WebCore::Extensions3DOpenGL::supportsExtension):
2618         * platform/graphics/opengl/Extensions3DOpenGL.h:
2619         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
2620         * platform/graphics/opengl/Extensions3DOpenGLES.h:
2621         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
2622         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
2623         (WebCore::GraphicsContext3D::reshape):
2624         * platform/graphics/opengl/TemporaryOpenGLSetting.cpp:
2625         * platform/graphics/texmap/TextureMapper.h:
2626         * platform/network/ResourceHandle.h:
2627         * plugins/PluginPackage.cpp:
2628         * plugins/PluginView.cpp:
2629         (WebCore::PluginView::PluginView):
2630         * plugins/PluginView.h:
2631         * plugins/PluginViewNone.cpp:
2632         * rendering/SimpleLineLayout.cpp:
2633         (WebCore::SimpleLineLayout::canUseFor):
2634
2635 2014-01-21  Eric Carlson  <eric.carlson@apple.com>
2636
2637         Add &lrm; &rlm; and &nbsp; to WebVTT parser
2638         https://bugs.webkit.org/show_bug.cgi?id=85112
2639
2640         Reviewed by Jer Noble.
2641
2642         No new tests, track-webvtt-tc022-entities.html was updated to test this.
2643
2644         * html/track/WebVTTTokenizer.cpp:
2645         (WebCore::WebVTTTokenizer::nextToken): Support RLM, LRM, and NBSP entities.
2646
2647 2014-01-21  Commit Queue  <commit-queue@webkit.org>
2648
2649         Unreviewed, rolling out r162354.
2650         http://trac.webkit.org/changeset/162354
2651         https://bugs.webkit.org/show_bug.cgi?id=127354
2652
2653         Appears to have broken accessibility in a non-trivial way
2654         (Requested by ap on #webkit).
2655
2656         * platform/ScrollView.cpp:
2657         (WebCore::ScrollView::updateScrollbars):
2658
2659 2014-01-21  Commit Queue  <commit-queue@webkit.org>
2660
2661         Unreviewed, rolling out r162445.
2662         http://trac.webkit.org/changeset/162445
2663         https://bugs.webkit.org/show_bug.cgi?id=127351
2664
2665         It broke the 32 bit GTK build (Requested by Ossy on #webkit).
2666
2667         * rendering/style/StyleRareInheritedData.cpp:
2668
2669 2014-01-21  László Langó  <llango.u-szeged@partner.samsung.com>
2670
2671         Wrong struct size when CSS_IMAGE_ORIENTATION and CSS3_TEXT_DECORATION are enabled.
2672         https://bugs.webkit.org/show_bug.cgi?id=127346
2673
2674         Efl build fix.
2675
2676         Reviewed by Csaba Osztrogonác.
2677
2678         * rendering/style/StyleRareInheritedData.cpp:
2679
2680 2014-01-21  Antti Koivisto  <antti@apple.com>
2681
2682         Delay initial layer flush during loading on all platforms
2683         https://bugs.webkit.org/show_bug.cgi?id=127347
2684
2685         Reviewed by Andreas Kling.
2686
2687         To reduce unnecessary repaints enable the same behaviour as iOS already has.
2688
2689         * rendering/RenderLayerCompositor.cpp:
2690         (WebCore::RenderLayerCompositor::RenderLayerCompositor):
2691         
2692             Set the initial state of m_layerFlushThrottlingEnabled correctly.
2693
2694         (WebCore::RenderLayerCompositor::scheduleLayerFlush):
2695         (WebCore::RenderLayerCompositor::startInitialLayerFlushTimerIfNeeded):
2696         * rendering/RenderLayerCompositor.h:
2697         
2698             Enable initial layer flush delay on all platforms.
2699
2700 2014-01-21  Mihai Tica  <mitica@adobe.com>
2701
2702         If you set a tiled cross-faded-image or a tiled gradient as
2703         a background layer, -webkit-background-blend-mode doesn't work.
2704         The problem consists in the blendMode parameter not being set
2705         for these specific drawing paths.
2706
2707         https://bugs.webkit.org/show_bug.cgi?id=126888
2708         Reviewed by Dirk Schulze.
2709
2710         Test: css3/compositing/background-blend-mode-tiled-layers.html
2711
2712         * platform/graphics/CrossfadeGeneratedImage.cpp:
2713         (WebCore::CrossfadeGeneratedImage::drawPattern): Add the blendMode parameter and pass it to ImageBuffer::drawPattern.
2714         * platform/graphics/GradientImage.cpp:
2715         (WebCore::GradientImage::drawPattern): Add the blendMode parameter and pass it to ImageBuffer::drawPattern.
2716         * platform/graphics/ImageBuffer.h: Add a BlendMode parameter to the drawPattern method.
2717         * platform/graphics/cairo/ImageBufferCairo.cpp:
2718         (WebCore::ImageBuffer::drawPattern): Add the default BlendMode parameter to the method declaration.
2719         * platform/graphics/cg/ImageBufferCG.cpp:
2720         (WebCore::ImageBuffer::drawPattern): Add and use the blendMode parameter for all the code paths.
2721         * platform/graphics/wince/ImageBufferWinCE.cpp:
2722         (WebCore::BufferedImage::drawPattern): Add the default BlendMode parameter to the method declaration.
2723
2724 2014-01-21  Gurpreet Kaur  <k.gurpreet@samsung.com>
2725
2726         The WebCore.vcxproj.filters doesnot apply
2727         https://bugs.webkit.org/show_bug.cgi?id=127338
2728
2729         Reviewed by Csaba Osztrogonác.
2730
2731         * WebCore.vcxproj/WebCore.vcxproj.filters:
2732         Modified the WebCore.vcxproj.filters so that it is applied when loading
2733         WebCore.vcxproj file.
2734
2735 2014-01-21  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
2736
2737         Fix SVG animations which set rx or ry attributes
2738         https://bugs.webkit.org/show_bug.cgi?id=127337
2739
2740         Reviewed by Dirk Schulze.
2741
2742         Test: svg/stroke/animated-non-scaling-rxry.html
2743
2744         Merged from Blink: https://src.chromium.org/viewvc/blink?revision=152376&view=revision
2745
2746         * rendering/svg/RenderSVGRect.cpp:
2747         (WebCore::RenderSVGRect::updateShapeFromElement):
2748         * rendering/svg/SVGPathData.cpp:
2749         (WebCore::updatePathFromRectElement):
2750
2751 2014-01-21  Krzysztof Czech  <k.czech@samsung.com>
2752
2753         [ATK] Expose aria-flowto through ATK_RELATION_FLOWS_TO
2754         https://bugs.webkit.org/show_bug.cgi?id=127291
2755
2756         Reviewed by Mario Sanchez Prada.
2757
2758         Test: accessibility/aria-flowto.html
2759
2760         Expose aria-flowto through ATK_RELATION_FLOWS_TO according to
2761         http://www.w3.org/TR/wai-aria-implementation/#mapping_state-property
2762
2763         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
2764         (setAtkRelationSetFromCoreObject):
2765
2766 2014-01-20  Ryuan Choi  <ryuan.choi@samsung.com>
2767
2768         [CMAKE] Remove Nix from CMake scripts
2769         https://bugs.webkit.org/show_bug.cgi?id=127264
2770
2771         Reviewed by Anders Carlsson.
2772
2773         * CMakeLists.txt:
2774
2775 2014-01-20  Anders Carlsson  <andersca@apple.com>
2776
2777         Remove an unused PageGroup function
2778         https://bugs.webkit.org/show_bug.cgi?id=127327
2779
2780         Reviewed by Andreas Kling.
2781
2782         * WebCore.exp.in:
2783         * page/PageGroup.cpp:
2784         * page/PageGroup.h:
2785
2786 2014-01-20  Anders Carlsson  <andersca@apple.com>
2787
2788         Move user style sheet handling to UserContentController
2789         https://bugs.webkit.org/show_bug.cgi?id=127322
2790         <rdar://problem/15861296>
2791
2792         Reviewed by Andreas Kling.
2793
2794         * dom/DocumentStyleSheetCollection.cpp:
2795         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
2796         * page/PageGroup.cpp:
2797         (WebCore::PageGroup::addUserStyleSheetToWorld):
2798         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
2799         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
2800         (WebCore::PageGroup::removeAllUserContent):
2801         * page/PageGroup.h:
2802         * page/UserContentController.cpp:
2803         (WebCore::UserContentController::addUserStyleSheet):
2804         (WebCore::UserContentController::removeUserStyleSheet):
2805         (WebCore::UserContentController::removeUserStyleSheets):
2806         (WebCore::UserContentController::removeAllUserContent):
2807         (WebCore::UserContentController::invalidateInjectedStyleSheetCacheInAllFrames):
2808         * page/UserContentController.h:
2809         (WebCore::UserContentController::userStyleSheets):
2810
2811 2014-01-20  Benjamin Poulain  <benjamin@webkit.org>
2812
2813         Add a nicer way to iterate over all the attributes of an element
2814         https://bugs.webkit.org/show_bug.cgi?id=127266
2815
2816         Reviewed by Geoffrey Garen.
2817
2818         When using Element::attributeAt() in a loop, the compiler had to generate two kinds of
2819         accessor:
2820         -If the element data is unique, the length and data comes from the attribute Vector.
2821         -If the element data is shared, the data comes from the tail of elementData itself.
2822
2823         The choice was done for every access, which caused the assembly to be a little
2824         hard to follow.
2825         This patch unify the data access by doing everything as a array pointer with offset (getting
2826         that data from Vector when necessary).
2827
2828         To make it easier to do the right thing, a new iterator was added so that range-based loops
2829         can replace all the faulty cases.
2830
2831         * css/SelectorChecker.cpp:
2832         (WebCore::anyAttributeMatches):
2833         * css/SelectorChecker.h:
2834         (WebCore::SelectorChecker::checkExactAttribute):
2835         * dom/DatasetDOMStringMap.cpp:
2836         (WebCore::DatasetDOMStringMap::getNames):
2837         (WebCore::DatasetDOMStringMap::item):
2838         (WebCore::DatasetDOMStringMap::contains):
2839         * dom/Element.cpp:
2840         (WebCore::Element::normalizeAttributes):
2841         (WebCore::Element::detachAllAttrNodesFromElement):
2842         (WebCore::Element::cloneAttributesFromElement):
2843         * dom/Element.h:
2844         (WebCore::Element::attributesIterator):
2845         * dom/ElementData.cpp:
2846         (WebCore::ElementData::isEquivalent):
2847         (WebCore::ElementData::findAttributeIndexByNameSlowCase):
2848         * dom/ElementData.h:
2849         (WebCore::AttributeConstIterator::AttributeConstIterator):
2850         (WebCore::AttributeConstIterator::operator*):
2851         (WebCore::AttributeConstIterator::operator->):
2852         (WebCore::AttributeConstIterator::operator++):
2853         (WebCore::AttributeConstIterator::operator==):
2854         (WebCore::AttributeConstIterator::operator!=):
2855         (WebCore::AttributeIteratorAccessor::AttributeIteratorAccessor):
2856         (WebCore::AttributeIteratorAccessor::begin):
2857         (WebCore::AttributeIteratorAccessor::end):
2858         (WebCore::ElementData::attributesIterator):
2859         * dom/Node.cpp:
2860         (WebCore::Node::isDefaultNamespace):
2861         (WebCore::Node::lookupNamespaceURI):
2862         (WebCore::Node::lookupNamespacePrefix):
2863         (WebCore::Node::compareDocumentPosition):
2864         * dom/StyledElement.cpp:
2865         (WebCore::StyledElement::makePresentationAttributeCacheKey):
2866         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
2867         * editing/MarkupAccumulator.cpp:
2868         (WebCore::MarkupAccumulator::appendElement):
2869         * editing/markup.cpp:
2870         (WebCore::completeURLs):
2871         (WebCore::StyledMarkupAccumulator::appendElement):
2872         * html/HTMLEmbedElement.cpp:
2873         (WebCore::HTMLEmbedElement::parametersForPlugin):
2874         * html/HTMLObjectElement.cpp:
2875         (WebCore::HTMLObjectElement::parametersForPlugin):
2876         * inspector/DOMPatchSupport.cpp:
2877         (WebCore::DOMPatchSupport::innerPatchNode):
2878         (WebCore::DOMPatchSupport::createDigest):
2879         * inspector/InspectorDOMAgent.cpp:
2880         (WebCore::InspectorDOMAgent::setAttributesAsText):
2881         (WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
2882         * inspector/InspectorNodeFinder.cpp:
2883         (WebCore::InspectorNodeFinder::matchesElement):
2884         * page/PageSerializer.cpp:
2885         (WebCore::isCharsetSpecifyingNode):
2886         * xml/XPathNodeSet.cpp:
2887         (WebCore::XPath::NodeSet::traversalSort):
2888         * xml/XPathStep.cpp:
2889         (WebCore::XPath::Step::nodesInAxis):
2890         * xml/parser/XMLDocumentParserLibxml2.cpp:
2891         (WebCore::XMLDocumentParser::XMLDocumentParser):
2892
2893 2014-01-20  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2894
2895         Do refactor in collectGradientAttributes() and renderStyleForLengthResolve()
2896         https://bugs.webkit.org/show_bug.cgi?id=126869
2897
2898         Reviewed by Dirk Schulze.
2899
2900         Some SVG functions have done a first iteration by using a boolean flag. This is
2901         one of poor implementations. This patch fix it by extracting a logic into a new method.
2902         Additionally it would be good to use do-while() loop instead of using while() in
2903         renderStyleForLengthResolving() because a first condition is always true.
2904
2905         Merge r165358 from blink.
2906
2907         * svg/SVGLengthContext.cpp:
2908         (WebCore::renderStyleForLengthResolving):
2909         * svg/SVGLinearGradientElement.cpp:
2910         (WebCore::setGradientAttributes):
2911         (WebCore::SVGLinearGradientElement::collectGradientAttributes):
2912         * svg/SVGRadialGradientElement.cpp:
2913         (WebCore::setGradientAttributes):
2914         (WebCore::SVGRadialGradientElement::collectGradientAttributes):
2915
2916 2014-01-20  Anders Carlsson  <andersca@apple.com>
2917
2918         UserContentController should keep track of user scripts
2919         https://bugs.webkit.org/show_bug.cgi?id=127317
2920         <rdar://problem/15861296>
2921
2922         Reviewed by Andreas Kling.
2923
2924         Move handling of user scripts from PageGroup to UserContentController.
2925
2926         * page/Frame.cpp:
2927         (WebCore::Frame::injectUserScripts):
2928         * page/PageGroup.cpp:
2929         (WebCore::PageGroup::addUserScriptToWorld):
2930         (WebCore::PageGroup::removeUserScriptFromWorld):
2931         (WebCore::PageGroup::removeUserScriptsFromWorld):
2932         (WebCore::PageGroup::removeAllUserContent):
2933         * page/PageGroup.h:
2934         * page/UserContentController.cpp:
2935         (WebCore::UserContentController::addUserScript):
2936         (WebCore::UserContentController::removeUserScript):
2937         (WebCore::UserContentController::removeUserScripts):
2938         (WebCore::UserContentController::removeAllUserContent):
2939         * page/UserContentController.h:
2940         (WebCore::UserContentController::userScripts):
2941
2942 2014-01-20  Anders Carlsson  <andersca@apple.com>
2943
2944         Give each page a UserContentController
2945         https://bugs.webkit.org/show_bug.cgi?id=127315
2946         <rdar://problem/15861296>
2947
2948         Reviewed by Andreas Kling.
2949
2950         Add a UserContentController object to PageGroup and have the page group set it on any
2951         pages that are added to the page group.
2952
2953         This is another step towards moving handling of user content away from PageGroup and make it
2954         possible for each page to have different user content.
2955
2956         * page/Page.cpp:
2957         (WebCore::Page::~Page):
2958         (WebCore::Page::setUserContentController):
2959         * page/Page.h:
2960         (WebCore::Page::userContentController):
2961         * page/PageGroup.cpp:
2962         (WebCore::PageGroup::PageGroup):
2963         (WebCore::PageGroup::addPage):
2964         (WebCore::PageGroup::removePage):
2965         * page/PageGroup.h:
2966         * page/UserContentController.cpp:
2967         (WebCore::UserContentController::addPage):
2968         (WebCore::UserContentController::removePage):
2969         * page/UserContentController.h:
2970
2971 2014-01-20  Jeremy Jones  <jeremyj@apple.com>
2972
2973         Add AVKit fullscreen video interface.
2974         https://bugs.webkit.org/show_bug.cgi?id=126818
2975
2976         Reviewed by Eric Carlson.
2977
2978         No new tests, no observable change in functionality.
2979
2980         * WebCore.exp.in:
2981         * WebCore.xcodeproj/project.pbxproj:
2982         * html/HTMLMediaElement.cpp:
2983         (WebCore::HTMLMediaElement::parseAttribute):
2984         * html/HTMLMediaElement.h:
2985         Add ability for fullscreen to borrow the AVPlayerLayer.
2986         * page/Settings.cpp:
2987         * page/Settings.h:
2988         (WebCore::Settings::setMediaPlaybackFullscreenAVKit):
2989         (WebCore::Settings::mediaPlaybackFullscreenAVKit):
2990         Add a disabled setting.
2991         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
2992         (WebCore::MediaPlayerPrivateAVFoundation::supportsFullscreen):
2993         Enabled fullscreen for iOS.
2994         * platform/ios/WebVideoFullscreenControllerAVKit.h: Added.
2995         * platform/ios/WebVideoFullscreenControllerAVKit.mm: Added.
2996         (-[WebAVPlayerController init]):
2997         (-[WebAVPlayerController dealloc]):
2998         (-[WebAVPlayerController forwardingTargetForSelector:]):
2999         (-[WebAVPlayerController shouldDismissForDone]):
3000         (-[WebAVPlayerController play:]):
3001         (-[WebAVPlayerController pause:]):
3002         (-[WebAVPlayerController togglePlayback:]):
3003         (-[WebAVPlayerController isPlaying]):
3004         (-[WebAVPlayerController setPlaying:]):
3005         (+[WebAVPlayerController keyPathsForValuesAffectingPlaying]):
3006         (-[WebAVPlayerController seekToTime:]):
3007         (-[WebAVPlayerController updateTimingWithCurrentTime:]):
3008         (-[WebAVPlayerController effectiveRate]):
3009         (-[WebAVPlayerController setMediaElement:]):
3010         (-[WebAVPlayerController handleEvent:]):
3011         (-[WebVideoFullscreenController init]):
3012         (-[WebVideoFullscreenController dealloc]):
3013         (-[WebVideoFullscreenController setMediaElement:]):
3014         (-[WebVideoFullscreenController mediaElement]):
3015         (-[WebVideoFullscreenController enterFullscreen:]):
3016         (-[WebVideoFullscreenController exitFullscreen]):
3017         Add WebAVPlayerController for HTMLMediaElememt to interface with AVPlayerViewController.
3018
3019 2014-01-20  Zan Dobersek  <zdobersek@igalia.com>
3020
3021         Replace uses of std::forward<T>(), std::unique_ptr<T>::clear() that landed in r162368
3022         https://bugs.webkit.org/show_bug.cgi?id=127306
3023
3024         Reviewed by Darin Adler.
3025
3026         Address the post-landing reviews of the r162368 commit that moved WebAudio source code to using std::unique_ptr.
3027         std::move() should be used instead of std::forward<T>() in HRTFKernel::create().
3028         Instead of calling std::unique_ptr<T>::reset(), nullptr should be assigned to that smart pointer to reset it.
3029
3030         * Modules/webaudio/ConvolverNode.cpp:
3031         (WebCore::ConvolverNode::uninitialize):
3032         * Modules/webaudio/DynamicsCompressorNode.cpp:
3033         (WebCore::DynamicsCompressorNode::uninitialize):
3034         * Modules/webaudio/MediaElementAudioSourceNode.cpp:
3035         (WebCore::MediaElementAudioSourceNode::setFormat):
3036         * Modules/webaudio/PannerNode.cpp:
3037         (WebCore::PannerNode::uninitialize):
3038         * platform/audio/AudioChannel.h:
3039         (WebCore::AudioChannel::set):
3040         * platform/audio/HRTFDatabaseLoader.cpp:
3041         (WebCore::HRTFDatabaseLoader::~HRTFDatabaseLoader):
3042         * platform/audio/HRTFKernel.h:
3043         (WebCore::HRTFKernel::create):
3044
3045 2014-01-20  Joseph Pecoraro  <pecoraro@apple.com>
3046
3047         Modernize WebCore/inspector with nullptr
3048         https://bugs.webkit.org/show_bug.cgi?id=127303
3049
3050         Reviewed by Anders Carlsson.
3051
3052         Ran clang-modernize -use-nullptr over WebCore/inspector.
3053
3054         * inspector/ConsoleMessage.cpp:
3055         (WebCore::ConsoleMessage::ConsoleMessage):
3056         * inspector/ConsoleMessage.h:
3057         * inspector/ContentSearchUtils.cpp:
3058         (WebCore::ContentSearchUtils::findMagicComment):
3059         * inspector/DOMEditor.cpp:
3060         (WebCore::DOMEditor::SetOuterHTMLAction::SetOuterHTMLAction):
3061         * inspector/DOMPatchSupport.cpp:
3062         (WebCore::DOMPatchSupport::patchDocument):
3063         (WebCore::DOMPatchSupport::patchNode):
3064         (WebCore::DOMPatchSupport::diff):
3065         (WebCore::DOMPatchSupport::innerPatchChildren):
3066         * inspector/InspectorApplicationCacheAgent.cpp:
3067         (WebCore::InspectorApplicationCacheAgent::willDestroyFrontendAndBackend):
3068         (WebCore::InspectorApplicationCacheAgent::assertFrameWithDocumentLoader):
3069         * inspector/InspectorCanvasAgent.cpp:
3070         (WebCore::InspectorCanvasAgent::disable):
3071         (WebCore::InspectorCanvasAgent::notifyRenderingContextWasWrapped):
3072         (WebCore::InspectorCanvasAgent::frameNavigated):
3073         * inspector/InspectorConsoleAgent.cpp:
3074         (WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
3075         (WebCore::InspectorConsoleAgent::~InspectorConsoleAgent):
3076         (WebCore::InspectorConsoleAgent::clearMessages):
3077         (WebCore::InspectorConsoleAgent::didFinishXHRLoading):
3078         (WebCore::InspectorConsoleAgent::didReceiveResponse):
3079         (WebCore::InspectorConsoleAgent::didFailLoading):
3080         * inspector/InspectorConsoleAgent.h:
3081         * inspector/InspectorController.cpp:
3082         (WebCore::InspectorController::inspectedPageDestroyed):
3083         * inspector/InspectorDOMDebuggerAgent.cpp:
3084         (WebCore::InspectorDOMDebuggerAgent::disable):
3085         (WebCore::InspectorDOMDebuggerAgent::discardAgent):
3086         * inspector/InspectorDOMStorageAgent.cpp:
3087         (WebCore::InspectorDOMStorageAgent::~InspectorDOMStorageAgent):
3088         (WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
3089         (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
3090         (WebCore::InspectorDOMStorageAgent::findStorageArea):
3091         * inspector/InspectorDatabaseAgent.cpp:
3092         (WebCore::InspectorDatabaseAgent::~InspectorDatabaseAgent):
3093         (WebCore::InspectorDatabaseAgent::findByFileName):
3094         (WebCore::InspectorDatabaseAgent::databaseForId):
3095         * inspector/InspectorDebuggerAgent.cpp:
3096         (WebCore::InspectorDebuggerAgent::addMessageToConsole):
3097         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
3098         (WebCore::InspectorDebuggerAgent::didParseSource):
3099         (WebCore::InspectorDebuggerAgent::didContinue):
3100         (WebCore::InspectorDebuggerAgent::clearBreakDetails):
3101         * inspector/InspectorFrontendHost.cpp:
3102         (WebCore::FrontendMenuProvider::disconnect):
3103         (WebCore::InspectorFrontendHost::InspectorFrontendHost):
3104         (WebCore::InspectorFrontendHost::disconnectClient):
3105         * inspector/InspectorHeapProfilerAgent.cpp:
3106         (WebCore::InspectorHeapProfilerAgent::~InspectorHeapProfilerAgent):
3107         * inspector/InspectorIndexedDBAgent.cpp:
3108         (WebCore::assertDocument):
3109         (WebCore::assertIDBFactory):
3110         (WebCore::InspectorIndexedDBAgent::requestData):
3111         * inspector/InspectorInstrumentation.cpp:
3112         (WebCore::frameForScriptExecutionContext):
3113         (WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
3114         (WebCore::InspectorInstrumentation::didReceiveResourceResponseButCanceledImpl):
3115         (WebCore::InspectorInstrumentation::consoleAgentEnabled):
3116         (WebCore::InspectorInstrumentation::unregisterInstrumentingAgents):
3117         (WebCore::InspectorInstrumentation::retrieveTimelineAgent):
3118         (WebCore::InspectorInstrumentation::instrumentingAgentsForPage):
3119         (WebCore::InspectorInstrumentation::instrumentingAgentsForWorkerGlobalScope):
3120         (WebCore::InspectorInstrumentation::instrumentingAgentsForNonDocumentContext):
3121         * inspector/InspectorInstrumentation.h:
3122         (WebCore::InspectorInstrumentation::instrumentingAgentsForContext):
3123         (WebCore::InspectorInstrumentation::instrumentingAgentsForFrame):
3124         (WebCore::InspectorInstrumentation::instrumentingAgentsForDocument):
3125         * inspector/InspectorLayerTreeAgent.cpp:
3126         (WebCore::InspectorLayerTreeAgent::disable):
3127         * inspector/InspectorNodeFinder.cpp:
3128         (WebCore::InspectorNodeFinder::searchUsingXPath):
3129         * inspector/InspectorOverlay.cpp:
3130         (WebCore::buildObjectForElementInfo):
3131         * inspector/InspectorPageAgent.cpp:
3132         (WebCore::InspectorPageAgent::cachedResourceContent):
3133         (WebCore::InspectorPageAgent::sharedBufferContent):
3134         (WebCore::InspectorPageAgent::disable):
3135         (WebCore::InspectorPageAgent::frameForId):
3136         (WebCore::InspectorPageAgent::findFrameWithSecurityOrigin):
3137         * inspector/InspectorProfilerAgent.cpp:
3138         (WebCore::InspectorProfilerAgent::~InspectorProfilerAgent):
3139         * inspector/InspectorProfilerAgent.h:
3140         * inspector/InspectorResourceAgent.cpp:
3141         (WebCore::buildObjectForResourceResponse):
3142         (WebCore::InspectorResourceAgent::willSendRequest):
3143         (WebCore::InspectorResourceAgent::didReceiveResponse):
3144         (WebCore::InspectorResourceAgent::didFinishLoading):
3145         (WebCore::InspectorResourceAgent::didFailLoading):
3146         (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
3147         (WebCore::InspectorResourceAgent::disable):
3148         * inspector/InspectorRuntimeAgent.cpp:
3149         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
3150         * inspector/InspectorStyleSheet.cpp:
3151         (ParsedStyleSheet::ruleSourceDataAt):
3152         (WebCore::buildSourceRangeObject):
3153         (WebCore::asCSSRuleList):
3154         (WebCore::fillMediaListChain):
3155         (WebCore::InspectorStyle::setPropertyText):
3156         (WebCore::InspectorStyle::populateAllProperties):
3157         (WebCore::InspectorStyle::extractSourceData):
3158         (WebCore::InspectorStyle::newLineAndWhitespaceDelimiters):
3159         (WebCore::InspectorStyleSheet::addRule):
3160         (WebCore::InspectorStyleSheet::ruleForId):
3161         (WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
3162         (WebCore::InspectorStyleSheet::buildObjectForStyleSheetInfo):
3163         (WebCore::InspectorStyleSheet::buildObjectForRule):
3164         (WebCore::InspectorStyleSheet::styleForId):
3165         (WebCore::InspectorStyleSheet::inspectorStyleForId):
3166         (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
3167         * inspector/InspectorStyleSheet.h:
3168         (WebCore::InspectorCSSId::asProtocolValue):
3169         * inspector/InspectorTimelineAgent.cpp:
3170         (WebCore::InspectorTimelineAgent::stop):
3171         (WebCore::InspectorTimelineAgent::willComposite):
3172         (WebCore::InspectorTimelineAgent::page):
3173         * inspector/InspectorWorkerAgent.cpp:
3174         (WebCore::InspectorWorkerAgent::~InspectorWorkerAgent):
3175         * inspector/InstrumentingAgents.cpp:
3176         (WebCore::InstrumentingAgents::InstrumentingAgents):
3177         (WebCore::InstrumentingAgents::reset):
3178         * inspector/NetworkResourcesData.cpp:
3179         (WebCore::NetworkResourcesData::ResourceData::ResourceData):
3180         (WebCore::NetworkResourcesData::xhrReplayData):
3181         (WebCore::NetworkResourcesData::removeCachedResource):
3182         (WebCore::NetworkResourcesData::resourceDataForRequestId):
3183         * inspector/PageConsoleAgent.cpp:
3184         (WebCore::PageConsoleAgent::~PageConsoleAgent):
3185         * inspector/PageDebuggerAgent.cpp:
3186         (WebCore::PageDebuggerAgent::disable):
3187         * inspector/PageRuntimeAgent.cpp:
3188         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
3189         (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
3190         (WebCore::PageRuntimeAgent::reportExecutionContextCreation):
3191         * inspector/ScriptArguments.cpp:
3192         (WebCore::ScriptArguments::globalState):
3193         * inspector/WorkerRuntimeAgent.cpp:
3194         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
3195
3196 2014-01-20  Anders Carlsson  <andersca@apple.com>
3197
3198         Add empty UserContentController class
3199         https://bugs.webkit.org/show_bug.cgi?id=127300
3200         <rdar://problem/15861296>
3201
3202         Reviewed by Dan Bernstein.
3203
3204         This is the first step towards moving handling of user scripts and style sheets from
3205         the page group to a separate objects and ultimately make them be settable per page instead of per page group.
3206
3207         * CMakeLists.txt:
3208         * GNUmakefile.list.am:
3209         * WebCore.vcxproj/WebCore.vcxproj:
3210         * WebCore.vcxproj/WebCore.vcxproj.filters:
3211         * WebCore.xcodeproj/project.pbxproj:
3212         * page/UserContentController.cpp: Added.
3213         (WebCore::UserContentController::create):
3214         (WebCore::UserContentController::UserContentController):
3215         (WebCore::UserContentController::~UserContentController):
3216         * page/UserContentController.h: Added.
3217
3218 2014-01-20  Joseph Pecoraro  <pecoraro@apple.com>
3219
3220         Run clang-modernize and let it add a bunch of missing overrides in WebCore/inspector
3221         https://bugs.webkit.org/show_bug.cgi?id=127206
3222
3223         Reviewed by Anders Carlsson.
3224
3225         Let clang-modernize add overrides.
3226
3227         * inspector/DOMEditor.cpp:
3228         * inspector/InspectorApplicationCacheAgent.h:
3229         * inspector/InspectorCSSAgent.h:
3230         * inspector/InspectorCanvasAgent.h:
3231         * inspector/InspectorConsoleAgent.h:
3232         * inspector/InspectorDOMAgent.h:
3233         * inspector/InspectorDOMDebuggerAgent.h:
3234         * inspector/InspectorDOMStorageAgent.h:
3235         * inspector/InspectorDatabaseAgent.cpp:
3236         * inspector/InspectorDatabaseAgent.h:
3237         * inspector/InspectorDebuggerAgent.h:
3238         * inspector/InspectorFrontendHost.cpp:
3239         * inspector/InspectorHeapProfilerAgent.cpp:
3240         (WebCore::InspectorHeapProfilerAgent::getHeapSnapshot):
3241         (WebCore::InspectorHeapProfilerAgent::takeHeapSnapshot):
3242         * inspector/InspectorHeapProfilerAgent.h:
3243         * inspector/InspectorHistory.cpp:
3244         * inspector/InspectorIndexedDBAgent.cpp:
3245         * inspector/InspectorIndexedDBAgent.h:
3246         * inspector/InspectorInputAgent.h:
3247         * inspector/InspectorLayerTreeAgent.h:
3248         * inspector/InspectorMemoryAgent.h:
3249         * inspector/InspectorPageAgent.h:
3250         * inspector/InspectorProfilerAgent.cpp:
3251         * inspector/InspectorProfilerAgent.h:
3252         * inspector/InspectorResourceAgent.h:
3253         * inspector/InspectorRuntimeAgent.h:
3254         * inspector/InspectorStyleSheet.h:
3255         * inspector/InspectorTimelineAgent.h:
3256         * inspector/InspectorWorkerAgent.cpp:
3257         * inspector/InspectorWorkerAgent.h:
3258         * inspector/PageConsoleAgent.h:
3259         * inspector/PageDebuggerAgent.h:
3260         * inspector/PageRuntimeAgent.h:
3261         * inspector/WorkerConsoleAgent.h:
3262         * inspector/WorkerDebuggerAgent.cpp:
3263         * inspector/WorkerInspectorController.cpp:
3264         * inspector/WorkerRuntimeAgent.h:
3265
3266 2014-01-20  Zan Dobersek  <zdobersek@igalia.com>
3267
3268         Move WebAudio source code to std::unique_ptr
3269         https://bugs.webkit.org/show_bug.cgi?id=127274
3270
3271         Reviewed by Eric Carlson.
3272
3273         Move from using OwnPtr and PassOwnPtr to using std::unique_ptr and move semantics
3274         in the WebAudio module and the WebAudio code in the platform layer.
3275
3276         * Modules/webaudio/AsyncAudioDecoder.cpp:
3277         * Modules/webaudio/AsyncAudioDecoder.h:
3278         * Modules/webaudio/AudioBasicInspectorNode.cpp:
3279         (WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):
3280         * Modules/webaudio/AudioBasicProcessorNode.cpp:
3281         (WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):
3282         * Modules/webaudio/AudioBasicProcessorNode.h:
3283         * Modules/webaudio/AudioBufferSourceNode.cpp:
3284         (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
3285         * Modules/webaudio/AudioContext.cpp:
3286         * Modules/webaudio/AudioContext.h:
3287         * Modules/webaudio/AudioDestinationNode.cpp:
3288         (WebCore::AudioDestinationNode::AudioDestinationNode):
3289         * Modules/webaudio/AudioNode.cpp:
3290         (WebCore::AudioNode::addInput):
3291         (WebCore::AudioNode::addOutput):
3292         (WebCore::AudioNode::checkNumberOfChannelsForInput):
3293         * Modules/webaudio/AudioNode.h:
3294         * Modules/webaudio/BiquadFilterNode.cpp:
3295         (WebCore::BiquadFilterNode::BiquadFilterNode):
3296         * Modules/webaudio/BiquadProcessor.cpp:
3297         (WebCore::BiquadProcessor::createKernel):
3298         (WebCore::BiquadProcessor::getFrequencyResponse):
3299         * Modules/webaudio/BiquadProcessor.h:
3300         * Modules/webaudio/ChannelMergerNode.cpp:
3301         (WebCore::ChannelMergerNode::ChannelMergerNode):
3302         * Modules/webaudio/ChannelSplitterNode.cpp:
3303         (WebCore::ChannelSplitterNode::ChannelSplitterNode):
3304         * Modules/webaudio/ConvolverNode.cpp:
3305         (WebCore::ConvolverNode::ConvolverNode):
3306         (WebCore::ConvolverNode::uninitialize):
3307         (WebCore::ConvolverNode::setBuffer):
3308         * Modules/webaudio/ConvolverNode.h:
3309         * Modules/webaudio/DefaultAudioDestinationNode.h:
3310         * Modules/webaudio/DelayNode.cpp:
3311         (WebCore::DelayNode::DelayNode):
3312         * Modules/webaudio/DelayProcessor.cpp:
3313         (WebCore::DelayProcessor::createKernel):
3314         * Modules/webaudio/DelayProcessor.h:
3315         * Modules/webaudio/DynamicsCompressorNode.cpp:
3316         (WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
3317         (WebCore::DynamicsCompressorNode::initialize):
3318         (WebCore::DynamicsCompressorNode::uninitialize):
3319         * Modules/webaudio/DynamicsCompressorNode.h:
3320         * Modules/webaudio/GainNode.cpp:
3321         (WebCore::GainNode::GainNode):
3322         * Modules/webaudio/MediaElementAudioSourceNode.cpp:
3323         (WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
3324         (WebCore::MediaElementAudioSourceNode::setFormat):
3325         * Modules/webaudio/MediaElementAudioSourceNode.h:
3326         * Modules/webaudio/MediaStreamAudioDestinationNode.h:
3327         * Modules/webaudio/MediaStreamAudioSource.cpp:
3328         * Modules/webaudio/MediaStreamAudioSourceNode.cpp:
3329         (WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):
3330         * Modules/webaudio/MediaStreamAudioSourceNode.h:
3331         * Modules/webaudio/OscillatorNode.cpp:
3332         (WebCore::OscillatorNode::OscillatorNode):
3333         * Modules/webaudio/PannerNode.cpp:
3334         (WebCore::PannerNode::PannerNode):
3335         (WebCore::PannerNode::uninitialize):
3336         (WebCore::PannerNode::setPanningModel):
3337         * Modules/webaudio/PannerNode.h:
3338         * Modules/webaudio/PeriodicWave.cpp:
3339         (WebCore::PeriodicWave::createBandLimitedTables):
3340         * Modules/webaudio/PeriodicWave.h:
3341         * Modules/webaudio/RealtimeAnalyser.cpp:
3342         (WebCore::RealtimeAnalyser::RealtimeAnalyser):
3343         (WebCore::RealtimeAnalyser::setFftSize):
3344         * Modules/webaudio/RealtimeAnalyser.h:
3345         * Modules/webaudio/ScriptProcessorNode.cpp:
3346         (WebCore::ScriptProcessorNode::ScriptProcessorNode):
3347         * Modules/webaudio/WaveShaperDSPKernel.cpp:
3348         (WebCore::WaveShaperDSPKernel::lazyInitializeOversampling):
3349         * Modules/webaudio/WaveShaperDSPKernel.h:
3350         * Modules/webaudio/WaveShaperNode.cpp:
3351         (WebCore::WaveShaperNode::WaveShaperNode):
3352         * Modules/webaudio/WaveShaperProcessor.cpp:
3353         (WebCore::WaveShaperProcessor::createKernel):
3354         * Modules/webaudio/WaveShaperProcessor.h:
3355         * platform/audio/AudioBus.cpp:
3356         (WebCore::AudioBus::AudioBus):
3357         (WebCore::AudioBus::copyWithGainFrom):
3358         * platform/audio/AudioBus.h:
3359         * platform/audio/AudioChannel.cpp:
3360         * platform/audio/AudioChannel.h:
3361         (WebCore::AudioChannel::AudioChannel):
3362         (WebCore::AudioChannel::set):
3363         * platform/audio/AudioDSPKernelProcessor.h:
3364         * platform/audio/AudioDestination.h:
3365         * platform/audio/AudioResampler.cpp:
3366         (WebCore::AudioResampler::AudioResampler):
3367         (WebCore::AudioResampler::configureChannels):
3368         * platform/audio/AudioResampler.h:
3369         * platform/audio/AudioSession.h:
3370         * platform/audio/DynamicsCompressor.cpp:
3371         (WebCore::DynamicsCompressor::setNumberOfChannels):
3372         * platform/audio/DynamicsCompressor.h:
3373         * platform/audio/DynamicsCompressorKernel.cpp:
3374         (WebCore::DynamicsCompressorKernel::setNumberOfChannels):
3375         * platform/audio/DynamicsCompressorKernel.h:
3376         * platform/audio/FFTFrame.cpp:
3377         (WebCore::FFTFrame::createInterpolatedFrame):
3378         * platform/audio/FFTFrame.h:
3379         * platform/audio/HRTFDatabase.cpp:
3380         (WebCore::HRTFDatabase::HRTFDatabase):
3381         * platform/audio/HRTFDatabase.h:
3382         * platform/audio/HRTFDatabaseLoader.cpp:
3383         (WebCore::HRTFDatabaseLoader::~HRTFDatabaseLoader):
3384         (WebCore::HRTFDatabaseLoader::load):
3385         * platform/audio/HRTFDatabaseLoader.h:
3386         * platform/audio/HRTFElevation.cpp:
3387         (WebCore::HRTFElevation::createForSubject):
3388         (WebCore::HRTFElevation::createByInterpolatingSlices):
3389         * platform/audio/HRTFElevation.h:
3390         (WebCore::HRTFElevation::HRTFElevation):
3391         * platform/audio/HRTFKernel.cpp:
3392         (WebCore::HRTFKernel::HRTFKernel):
3393         (WebCore::HRTFKernel::createImpulseResponse):
3394         (WebCore::HRTFKernel::createInterpolatedKernel):
3395         * platform/audio/HRTFKernel.h:
3396         (WebCore::HRTFKernel::create):
3397         (WebCore::HRTFKernel::HRTFKernel):
3398         * platform/audio/MultiChannelResampler.cpp:
3399         (WebCore::MultiChannelResampler::MultiChannelResampler):
3400         * platform/audio/MultiChannelResampler.h:
3401         * platform/audio/Panner.cpp:
3402         (WebCore::Panner::create):
3403         * platform/audio/Panner.h:
3404         * platform/audio/Reverb.cpp:
3405         (WebCore::Reverb::initialize):
3406         * platform/audio/Reverb.h:
3407         * platform/audio/ReverbConvolver.h:
3408         * platform/audio/ReverbConvolverStage.cpp:
3409         (WebCore::ReverbConvolverStage::ReverbConvolverStage):
3410         * platform/audio/ReverbConvolverStage.h:
3411         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
3412         (WebCore::AudioDestination::create):
3413         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
3414         * platform/audio/ios/AudioDestinationIOS.cpp:
3415         (WebCore::AudioDestination::create):
3416         * platform/audio/ios/AudioSessionIOS.mm:
3417         (WebCore::AudioSession::AudioSession):
3418         * platform/audio/mac/AudioDestinationMac.cpp:
3419         (WebCore::AudioDestination::create):
3420         * platform/audio/mac/AudioDestinationMac.h:
3421         * platform/audio/mac/AudioSessionMac.cpp:
3422         (WebCore::AudioSession::AudioSession):
3423
3424 2014-01-20  Morten Stenshorne  <mstensho@opera.com>
3425
3426         Region based multicol: support explicit column breaks
3427         https://bugs.webkit.org/show_bug.cgi?id=123993
3428
3429         Reviewed by David Hyatt.
3430
3431         Merely supporting insertion of explicit (forced) column breaks in
3432         the region based multicol implementation is really simple: just
3433         hook up with what the CSS regions code is already doing.
3434
3435         However, there is one complication: column balancing. In order to
3436         balance columns as nicely as possible when there are explicit
3437         breaks, we need to figure out between which explicit breaks the
3438         implicit breaks will occur (if there's room for any at all).
3439
3440         Tests: fast/multicol/newmulticol/break-after.html
3441                fast/multicol/newmulticol/break-before.html
3442                fast/multicol/newmulticol/breaks-2-columns-3-no-balancing.html
3443                fast/multicol/newmulticol/breaks-2-columns-3.html
3444                fast/multicol/newmulticol/breaks-3-columns-3.html
3445                fast/multicol/newmulticol/fixed-height-fill-balance-2.html
3446
3447         * rendering/RenderBlockFlow.cpp:
3448         (WebCore::RenderBlockFlow::applyBeforeBreak):
3449         (WebCore::RenderBlockFlow::applyAfterBreak): Use the already
3450         existing region breaking code when inserting breaks in region
3451         based multicol.
3452         * rendering/RenderFlowThread.h:
3453         * rendering/RenderMultiColumnBlock.cpp:
3454         (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
3455         (WebCore::RenderMultiColumnBlock::relayoutForPagination): Avoid
3456         re-balancing if the multicol's contents were not laid out. Apart
3457         from being good for performance, this is now necessary because of
3458         how explicit breaks are implemented.
3459         (WebCore::RenderMultiColumnBlock::layoutSpecialExcludedChild):
3460         Detect if the contents are going to be laid out, or skipped, so
3461         that we can tell if we need to (re-)balance the columns
3462         afterwards.
3463         * rendering/RenderMultiColumnBlock.h:
3464         * rendering/RenderMultiColumnFlowThread.cpp:
3465         (WebCore::RenderMultiColumnFlowThread::addForcedRegionBreak):
3466         Locate the appropriate multi-column set and call its
3467         addForcedBreak().
3468         * rendering/RenderMultiColumnFlowThread.h:
3469         * rendering/RenderMultiColumnSet.cpp:
3470         (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
3471         (WebCore::RenderMultiColumnSet::findRunWithTallestColumns):