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