[GTK] [CMake] Ensure that the autotools build and the CMake install the same files
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-01-05  Martin Robinson  <mrobinson@igalia.com>
2
3         [GTK] [CMake] Ensure that the autotools build and the CMake install the same files
4         https://bugs.webkit.org/show_bug.cgi?id=116379
5
6         Reviewed by Gustavo Noronha Silva.
7
8         * PlatformGTK.cmake: Reformat some install directives to be consistent with the rest of them.
9         Install the GObject DOM bindings headers.
10
11 2014-01-05  Andreas Kling  <akling@apple.com>
12
13         Use lineageOfType to simplify two rendering helpers.
14         <https://webkit.org/b/126498>
15
16         Reviewed by Antti Koivisto.
17
18         * rendering/RenderRuby.cpp:
19         (WebCore::findRubyRunParent):
20         * rendering/svg/SVGRenderSupport.cpp:
21         (WebCore::SVGRenderSupport::findTreeRootObject):
22
23             Simplify two functions that walk their parent chain to find the
24             closest ancestor of a certain type.
25
26         * rendering/RenderRubyRun.h:
27
28             Add requisite isRendererOfType<RenderRubyRun>().
29
30 2014-01-05  Csaba Osztrogonác  <ossy@webkit.org>
31
32         Fix the Mac build too.
33
34         * page/PageThrottler.h:
35
36 2014-01-05  Csaba Osztrogonác  <ossy@webkit.org>
37
38         Weekend URTBF after r161319 to make non Mac builds work again.
39
40         * page/PageThrottler.h:
41
42 2014-01-05  Gavin Barraclough  <barraclough@apple.com>
43
44         Move process suppression of WebProcess to Page (from UIProcess)
45         https://bugs.webkit.org/show_bug.cgi?id=126480
46
47         Reviewed by Sam Weinig.
48
49         Let each page take a UserActivity rather than having to coalesce this state, and take different activity
50         tokens for normal visibility and suppression disabled, so we can see why the process is not suppressed.
51
52         * WebCore.exp.in:
53         * page/Page.cpp:
54         (WebCore::Page::setIsVisuallyIdle):
55         * page/Page.h:
56             - setThrottled -> setIsVisuallyIdle.
57         * page/PageThrottler.cpp:
58         (WebCore::PageThrottler::PageThrottler):
59             - Initialize m_visuallyNonIdle.
60         (WebCore::PageThrottler::~PageThrottler):
61             - setThrottled -> setIsVisuallyIdle.
62         (WebCore::PageThrottler::setIsVisuallyIdle):
63             - Use m_visuallyNonIdle to disable supression when the page is not visually idle.
64         * page/PageThrottler.h:
65             - setThrottled -> setIsVisuallyIdle, added m_visuallyNonIdle.
66
67 2014-01-04  Sam Weinig  <sam@webkit.org>
68
69         Move a few more functions from RenderBlock to RenderBlockFlow
70         https://bugs.webkit.org/show_bug.cgi?id=126494
71
72         Reviewed by Andreas Kling.
73
74         * rendering/RenderBlock.h:
75         * rendering/RenderBlockFlow.h:
76         (WebCore::RenderBlockFlow::adjustInlineDirectionLineBounds):
77         * rendering/RenderBlockLineLayout.cpp:
78         (WebCore::RenderBlockFlow::textAlignmentForLine):
79         (WebCore::RenderBlockFlow::updateLogicalWidthForAlignment):
80         (WebCore::RenderBlockFlow::startAlignedOffsetForLine):
81         These are only used by RenderBlockFlow, so move them there.
82
83 2014-01-04  Simon Fraser  <simon.fraser@apple.com>
84
85         Prepare the ScrollingTree for remote use
86         https://bugs.webkit.org/show_bug.cgi?id=126493
87
88         Reviewed by Sam Weinig.
89
90         When committing the scrolling tree, we clone the ScrollingStateTree
91         to hand off to another thread, or (in future) to encode to send to the
92         UI process. During this cloning process, two types of layer transformations
93         take place: for threaded scrolling, we replace GraphicsLayer with PlatformLayers.
94         For remote scrolling, we'll replace GraphicsLayers with PlatformLayerIDs.
95         Allow the ScrollingCoordinator to specify which type of transformation occurs
96         by giving ScrollingStateTree a LayerRepresentation::Type member,
97         which is consulted during ScrollingStateNode cloning.
98         
99         Also only copy layers that have changed to avoid setting dirty bits.
100         
101         Expose some other stuff on ScrollingStateTree which will be needed for
102         remote scrolling.
103
104         * page/scrolling/ScrollingStateFixedNode.cpp:
105         (WebCore::ScrollingStateFixedNode::syncLayerPositionForViewportRect):
106         * page/scrolling/ScrollingStateNode.cpp:
107         (WebCore::ScrollingStateNode::ScrollingStateNode):
108         * page/scrolling/ScrollingStateNode.h:
109         (WebCore::LayerRepresentation::operator GraphicsLayer::PlatformLayerID):
110         (WebCore::LayerRepresentation::toRepresentation):
111         (WebCore::ScrollingStateNode::changedProperties):
112         (WebCore::ScrollingStateNode::setChangedProperties):
113         (WebCore::ScrollingStateNode::parentNodeID):
114         * page/scrolling/ScrollingStateScrollingNode.cpp:
115         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
116         * page/scrolling/ScrollingStateStickyNode.cpp:
117         (WebCore::ScrollingStateStickyNode::syncLayerPositionForViewportRect):
118         * page/scrolling/ScrollingStateTree.cpp:
119         (WebCore::ScrollingStateTree::ScrollingStateTree):
120         (WebCore::ScrollingStateTree::commit):
121         (WebCore::ScrollingStateTree::setRemovedNodes):
122         (WebCore::ScrollingStateTree::stateNodeForID):
123         * page/scrolling/ScrollingStateTree.h:
124         (WebCore::ScrollingStateTree::nodeCount):
125         (WebCore::ScrollingStateTree::nodeMap):
126         (WebCore::ScrollingStateTree::preferredLayerRepresentation):
127         (WebCore::ScrollingStateTree::setPreferredLayerRepresentation):
128         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
129         (WebCore::ScrollingCoordinatorMac::commitTreeState):
130
131 2014-01-04  Sam Weinig  <sam@webkit.org>
132
133         Move LineBreaker functions to LineBreaker.cpp
134         https://bugs.webkit.org/show_bug.cgi?id=126491
135
136         Reviewed by Simon Fraser.
137
138         - Moves LineBreaker::nextLineBreak() and LineBreaker::nextSegmentBreak() to
139           LineBreaker.cpp from RenderBlockLineLayout.cpp
140         - Moves requiresIndent() to LineWidth.h/cpp from RenderBlockLineLayout.cpp
141           so it can be shared.
142         - Adds missing inline specifier to BreakingContext::handleEndOfLine() to avoid
143           duplicate symbols.
144
145         * rendering/RenderBlockLineLayout.cpp:
146         (WebCore::updateLogicalInlinePositions):
147         (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine):
148         * rendering/line/BreakingContextInlineHeaders.h:
149         (WebCore::BreakingContext::handleEndOfLine):
150         * rendering/line/LineBreaker.cpp:
151         (WebCore::LineBreaker::nextLineBreak):
152         (WebCore::LineBreaker::nextSegmentBreak):
153         * rendering/line/LineWidth.cpp:
154         (WebCore::requiresIndent):
155         * rendering/line/LineWidth.h:
156
157 2014-01-04  Martin Robinson  <mrobinson@igalia.com>
158
159         [GTK] [CMake] Fix the video and audio build
160         https://bugs.webkit.org/show_bug.cgi?id=126464
161
162         Reviewed by Philippe Normand.
163
164         * PlatformGTK.cmake: Complete the audio and video source lists.
165
166 2014-01-04  Zan Dobersek  <zdobersek@igalia.com>
167
168         Explicitly use the std:: nested name specifier when using std::pair, std::make_pair
169         https://bugs.webkit.org/show_bug.cgi?id=126439
170
171         Reviewed by Andreas Kling.
172
173         Instead of relying on std::pair and std::make_pair symbols being present in the current scope
174         through the pair and make_pair symbols, the std:: specifier should be used explicitly.
175
176         * Modules/webdatabase/DatabaseTracker.cpp:
177         (WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged):
178         * accessibility/AXObjectCache.h:
179         * accessibility/AccessibilityARIAGridCell.cpp:
180         (WebCore::AccessibilityARIAGridCell::rowIndexRange):
181         (WebCore::AccessibilityARIAGridCell::columnIndexRange):
182         * accessibility/AccessibilityARIAGridCell.h:
183         * accessibility/AccessibilityObject.h:
184         * accessibility/AccessibilityRenderObject.cpp:
185         (WebCore::AccessibilityRenderObject::mathPrescripts):
186         (WebCore::AccessibilityRenderObject::mathPostscripts):
187         * accessibility/AccessibilityTable.cpp:
188         (WebCore::AccessibilityTable::cellForColumnAndRow):
189         * accessibility/AccessibilityTableCell.cpp:
190         (WebCore::AccessibilityTableCell::rowIndexRange):
191         (WebCore::AccessibilityTableCell::columnIndexRange):
192         * accessibility/AccessibilityTableCell.h:
193         * accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
194         (webkitAccessibleTableGetColumnAtIndex):
195         (webkitAccessibleTableGetRowAtIndex):
196         (webkitAccessibleTableGetColumnExtentAt):
197         (webkitAccessibleTableGetRowExtentAt):
198         (webkitAccessibleTableGetColumnHeader):
199         (webkitAccessibleTableGetRowHeader):
200         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
201         (-[WebAccessibilityObjectWrapper accessibilityHeaderElements]):
202         (-[WebAccessibilityObjectWrapper accessibilityRowRange]):
203         (-[WebAccessibilityObjectWrapper accessibilityColumnRange]):
204         * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
205         (convertMathPairsToNSArray):
206         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
207         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
208         * bindings/js/SerializedScriptValue.cpp:
209         * dom/ContainerNode.cpp:
210         * dom/StyledElement.cpp:
211         (WebCore::attributeNameSort):
212         * html/MediaFragmentURIParser.cpp:
213         (WebCore::MediaFragmentURIParser::parseTimeFragment):
214         * html/parser/HTMLMetaCharsetParser.h:
215         * inspector/ContentSearchUtils.cpp:
216         (WebCore::ContentSearchUtils::getRegularExpressionMatchesByLines):
217         (WebCore::ContentSearchUtils::searchInTextByLines):
218         * inspector/DOMPatchSupport.cpp:
219         (WebCore::DOMPatchSupport::diff):
220         (WebCore::DOMPatchSupport::innerPatchChildren):
221         * inspector/DOMPatchSupport.h:
222         * inspector/InspectorAgent.cpp:
223         (WebCore::InspectorAgent::enable):
224         (WebCore::InspectorAgent::evaluateForTestInFrontend):
225         * inspector/InspectorAgent.h:
226         * loader/FormSubmission.cpp:
227         (WebCore::FormSubmission::create):
228         * loader/cache/CachedImage.cpp:
229         (WebCore::CachedImage::brokenImage):
230         * loader/cache/CachedImage.h:
231         * platform/URL.cpp:
232         (WebCore::findHostnamesInMailToURL):
233         (WebCore::encodeHostnames):
234         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
235         * platform/graphics/FontCache.cpp:
236         (WebCore::FontCache::getCachedFontData):
237         * platform/graphics/WidthIterator.cpp:
238         * platform/network/HTTPHeaderMap.cpp:
239         (WebCore::HTTPHeaderMap::adopt):
240         * platform/network/ResourceResponseBase.cpp:
241         (WebCore::ResourceResponseBase::parseCacheControlDirectives):
242         (WebCore::parseCacheHeader):
243         * platform/text/AtomicStringKeyedMRUCache.h:
244         * platform/text/LineBreakIteratorPoolICU.h:
245         * rendering/InlineFlowBox.h:
246         * rendering/RenderImage.cpp:
247         (WebCore::RenderImage::imageSizeForError):
248         (WebCore::RenderImage::paintReplaced):
249         * rendering/RenderTableSection.cpp:
250         (WebCore::RenderTableSection::cachedCollapsedBorder):
251         * rendering/RenderTableSection.h:
252         * rendering/svg/SVGTextRunRenderingContext.cpp:
253         (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
254         * svg/SVGAnimatedAngle.cpp:
255         (WebCore::SVGAnimatedAngleAnimator::constructFromString):
256         (WebCore::SVGAnimatedAngleAnimator::addAnimatedTypes):
257         (WebCore::SVGAnimatedAngleAnimator::calculateAnimatedValue):
258         * svg/SVGAnimatedIntegerOptionalInteger.cpp:
259         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::constructFromString):
260         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::addAnimatedTypes):
261         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateAnimatedValue):
262         * svg/SVGAnimatedNumberOptionalNumber.cpp:
263         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::constructFromString):
264         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::addAnimatedTypes):
265         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateAnimatedValue):
266         * svg/SVGAnimatedType.cpp:
267         (WebCore::SVGAnimatedType::createIntegerOptionalInteger):
268         (WebCore::SVGAnimatedType::createNumberOptionalNumber):
269         * svg/SVGAnimatedType.h:
270         (WebCore::SVGAnimatedType::integerOptionalInteger):
271         (WebCore::SVGAnimatedType::numberOptionalNumber):
272         * svg/SVGAnimatedTypeAnimator.h:
273         (WebCore::SVGAnimatedTypeAnimator::constructFromBaseValues):
274         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):
275         * svg/SVGParserUtilities.h:
276         * svg/animation/SMILTimeContainer.h:
277
278 2014-01-03  Simon Fraser  <simon.fraser@apple.com>
279
280         Attempt to fix EFL build.
281
282         * page/scrolling/ScrollingStateTree.cpp:
283         (WebCore::ScrollingStateTree::setHasChangedProperties):
284
285 2014-01-03  Simon Fraser  <simon.fraser@apple.com>
286
287         Clean up the means of committing the scrolling state tree
288         https://bugs.webkit.org/show_bug.cgi?id=126482
289
290         Reviewed by Tim Horton.
291
292         ScrollingStateNodes would manually call scrollingStateTree().setHasChangedProperties()
293         after setPropertyChanged() in lots of places, which was repetitive, and
294         AsyncScrollingCoordinator manually called scheduleTreeStateCommit() in many places.
295         
296         Clean up both of these with a clearer trigger for state tree commits.
297         ScrollingStateNodes::setPropertyChanged() calls ScrollingStateTree::setHasChangedProperties(),
298         which turns around and tells the ScrollingCoordinator that the state tree became dirty.
299
300         * page/scrolling/AsyncScrollingCoordinator.cpp:
301         (WebCore::AsyncScrollingCoordinator::AsyncScrollingCoordinator):
302         (WebCore::AsyncScrollingCoordinator::scrollingStateTreePropertiesChanged):
303         (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
304         (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
305         (WebCore::AsyncScrollingCoordinator::updateScrollingNode):
306         (WebCore::AsyncScrollingCoordinator::updateViewportConstrainedNode):
307         (WebCore::AsyncScrollingCoordinator::setScrollLayerForNode):
308         (WebCore::AsyncScrollingCoordinator::setCounterScrollingLayerForNode):
309         (WebCore::AsyncScrollingCoordinator::setHeaderLayerForNode):
310         (WebCore::AsyncScrollingCoordinator::setFooterLayerForNode):
311         (WebCore::AsyncScrollingCoordinator::setNonFastScrollableRegionForNode):
312         (WebCore::AsyncScrollingCoordinator::setWheelEventHandlerCountForNode):
313         (WebCore::AsyncScrollingCoordinator::setScrollBehaviorForFixedElementsForNode):
314         (WebCore::AsyncScrollingCoordinator::setScrollbarPaintersFromScrollbarsForNode):
315         (WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):
316         * page/scrolling/AsyncScrollingCoordinator.h:
317         * page/scrolling/ScrollingStateFixedNode.cpp:
318         (WebCore::ScrollingStateFixedNode::updateConstraints):
319         * page/scrolling/ScrollingStateNode.cpp:
320         (WebCore::ScrollingStateNode::setPropertyChanged):
321         (WebCore::ScrollingStateNode::setLayer):
322         * page/scrolling/ScrollingStateNode.h:
323         * page/scrolling/ScrollingStateScrollingNode.cpp:
324         (WebCore::ScrollingStateScrollingNode::setViewportRect):
325         (WebCore::ScrollingStateScrollingNode::setTotalContentsSize):
326         (WebCore::ScrollingStateScrollingNode::setScrollOrigin):
327         (WebCore::ScrollingStateScrollingNode::setScrollableAreaParameters):
328         (WebCore::ScrollingStateScrollingNode::setFrameScaleFactor):
329         (WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion):
330         (WebCore::ScrollingStateScrollingNode::setWheelEventHandlerCount):
331         (WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons):
332         (WebCore::ScrollingStateScrollingNode::setScrollBehaviorForFixedElements):
333         (WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition):
334         (WebCore::ScrollingStateScrollingNode::setHeaderHeight):
335         (WebCore::ScrollingStateScrollingNode::setFooterHeight):
336         (WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
337         (WebCore::ScrollingStateScrollingNode::setHeaderLayer):
338         (WebCore::ScrollingStateScrollingNode::setFooterLayer):
339         * page/scrolling/ScrollingStateStickyNode.cpp:
340         (WebCore::ScrollingStateStickyNode::updateConstraints):
341         * page/scrolling/ScrollingStateTree.cpp:
342         (WebCore::ScrollingStateTree::create):
343         (WebCore::ScrollingStateTree::ScrollingStateTree):
344         (WebCore::ScrollingStateTree::setHasChangedProperties):
345         (WebCore::ScrollingStateTree::didRemoveNode):
346         * page/scrolling/ScrollingStateTree.h:
347         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
348         (WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
349         * page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
350         (WebCore::ScrollingStateScrollingNode::setScrollbarPaintersFromScrollbars):
351
352 2014-01-03  Simon Fraser  <simon.fraser@apple.com>
353
354         Try to fix CoordinatedGraphics build after r161303. Remove implementations
355         which are now in the cross-platform file.
356
357         * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:
358         (WebCore::ScrollingCoordinatorCoordinatedGraphics::detachFromStateTree):
359         (WebCore::ScrollingCoordinatorCoordinatedGraphics::updateViewportConstrainedNode):
360         * page/scrolling/coordinatedgraphics/ScrollingStateNodeCoordinatedGraphics.cpp:
361         * page/scrolling/coordinatedgraphics/ScrollingStateScrollingNodeCoordinatedGraphics.cpp:
362
363 2014-01-03  Simon Fraser  <simon.fraser@apple.com>
364
365         Simplify ScrollingStateNode references to various layer types
366         https://bugs.webkit.org/show_bug.cgi?id=126477
367
368         Reviewed by Tim Horton.
369         
370         ScrollingStateNodes referenced both GraphicsLayer and PlatformLayers, in
371         confusing ways. In the main thread they have a GraphicsLayer*, but need
372         to check to see if the underlying PlatformLayer changed. Then, when
373         cloned to commit to the scrolling thread, they drop the GraphicsLayer
374         and store a PlatformLayer.
375         
376         Hide the complexity (and prepare for the future) by adding LayerRepresentation,
377         which wraps various different flavors of layers, and knows how to check whether
378         the PlatformLayer underlying a GraphicsLayer changed.
379         
380         ScrollingStateNode layer setters then just take and compare LayerRepresentations.
381         Copy constructors convert to a PlatformLayer representation (though not really
382         in the right place currently), and ScrollingTreeNodes get PlatformLayers.
383
384         * page/scrolling/AsyncScrollingCoordinator.cpp:
385         (WebCore::AsyncScrollingCoordinator::updateScrollingNode):
386         (WebCore::AsyncScrollingCoordinator::setScrollLayerForNode):
387         * page/scrolling/ScrollingStateFixedNode.cpp:
388         (WebCore::ScrollingStateFixedNode::syncLayerPositionForViewportRect):
389         * page/scrolling/ScrollingStateNode.cpp:
390         (WebCore::ScrollingStateNode::ScrollingStateNode):
391         (WebCore::ScrollingStateNode::setLayer):
392         * page/scrolling/ScrollingStateNode.h:
393         (WebCore::LayerRepresentation::LayerRepresentation):
394         (WebCore::LayerRepresentation::operator GraphicsLayer*):
395         (WebCore::LayerRepresentation::operator PlatformLayer*):
396         (WebCore::LayerRepresentation::operator GraphicsLayer::PlatformLayerID):
397         (WebCore::LayerRepresentation::operator ==):
398         (WebCore::LayerRepresentation::toPlatformLayer):
399         (WebCore::LayerRepresentation::representsGraphicsLayer):
400         (WebCore::LayerRepresentation::representsPlatformLayer):
401         (WebCore::LayerRepresentation::representsPlatformLayerID):
402         (WebCore::ScrollingStateNode::layer):
403         * page/scrolling/ScrollingStateScrollingNode.cpp:
404         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
405         (WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
406         (WebCore::ScrollingStateScrollingNode::setHeaderLayer):
407         (WebCore::ScrollingStateScrollingNode::setFooterLayer):
408         * page/scrolling/ScrollingStateScrollingNode.h:
409         * page/scrolling/ScrollingStateStickyNode.cpp:
410         (WebCore::ScrollingStateStickyNode::syncLayerPositionForViewportRect):
411         * page/scrolling/mac/ScrollingStateNodeMac.mm:
412         * page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
413         * page/scrolling/mac/ScrollingTreeFixedNode.mm:
414         (WebCore::ScrollingTreeFixedNode::updateBeforeChildren):
415         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
416         (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
417         * page/scrolling/mac/ScrollingTreeStickyNode.mm:
418         (WebCore::ScrollingTreeStickyNode::updateBeforeChildren):
419
420 2014-01-03  Brent Fulgham  <bfulgham@apple.com>
421
422         [WebGL] Blit operation from Multisample FBO to rendering FBO must ignore GL_SCISSOR test
423         https://bugs.webkit.org/show_bug.cgi?id=126470
424         <rdar://problem/15201370>
425
426         Reviewed by Dean Jackson.
427
428         Covered by webgl/1.0.2/resources/webgl_test_files/conformance/rendering/gl-scissor-test.html
429
430         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
431         (WebCore::GraphicsContext3D::resolveMultisamplingIfNecessary): Temporarily deactivate the GL_SCISSOR
432         test while we do our blit, then reactivate if necessary.
433
434 2014-01-03  Brent Fulgham  <bfulgham@apple.com>
435
436         [WebGL] CGLPixelFormat should specify SampleBuffer and Sample count when using MSAA
437         https://bugs.webkit.org/show_bug.cgi?id=126468
438
439         Reviewed by Dean Jackson.
440
441         Covered by webgl/1.0.2/resources/webgl_test_files/conformance/rendering/gl-scissor-test.html
442
443         * platform/graphics/mac/GraphicsContext3DMac.mm:
444         (WebCore::setPixelFormat): Add kCGLPFAMultisample, kCGLPFASampleBuffers (and count), and
445         kCGLPFASamples (and count) to our pixel format when 'antialias=true'.
446         (WebCore::GraphicsContext3D::GraphicsContext3D): Pass a new 'antialias' flag to the setPixelFormat
447         method so we can turn on MSAA features when needed.
448
449 2014-01-03  Simon Fraser  <simon.fraser@apple.com>
450
451         Give all PlatformCALayers a PlatformLayerID, not just remote ones
452         https://bugs.webkit.org/show_bug.cgi?id=126466
453
454         Reviewed by Tim Horton.
455
456         The ScrollingStateTree has references to both GraphicsLayers and PlatformLayers
457         which is confusing, and is necessary because the underlying PlatformLayer
458         inside a GraphicsLayer can change. In order to hide some of this complexity,
459         expose GraphicsLayer::primaryLayerID() which is a PlatformLayerID that clients
460         can hold onto to test for underlying layer swapping.
461         
462         Also constify LayerType m_layerType on PlatformCALayer, which required
463         cleaning up the construction of PlatformCALayerMac in the case where a
464         PlatformCALayerMac is wrapping an existing CALayer (which happens for video).
465
466         * WebCore.exp.in:
467         * platform/graphics/GraphicsLayer.h:
468         (WebCore::GraphicsLayer::primaryLayerID):
469         * platform/graphics/ca/GraphicsLayerCA.cpp:
470         (WebCore::GraphicsLayerCA::primaryLayerID):
471         * platform/graphics/ca/GraphicsLayerCA.h:
472         * platform/graphics/ca/PlatformCALayer.cpp:
473         (WebCore::generateLayerID):
474         (WebCore::PlatformCALayer::PlatformCALayer):
475         * platform/graphics/ca/PlatformCALayer.h:
476         (WebCore::PlatformCALayer::layerID):
477         * platform/graphics/ca/mac/PlatformCALayerMac.h:
478         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
479         (PlatformCALayerMac::create):
480         (PlatformCALayerMac::PlatformCALayerMac):
481         (PlatformCALayerMac::commonInit):
482
483 2014-01-03  Andreas Kling  <akling@apple.com>
484
485         Add lineageOfType renderer iterator and start using it.
486         <https://webkit.org/b/126456>
487
488         Add a convenient way to iterate over a renderers ancestry *including*
489         the starting point renderer (if it meets the type criteria.)
490
491         This works just like lineageOfType for Elements.
492
493         Reviewed by Geoffrey Garen.
494
495         * rendering/RenderAncestorIterator.h:
496         (WebCore::lineageOfType):
497
498             Added. Returns an adapter for walking a renderer's entire lineage
499             matching any renderer of the given type.
500
501         * rendering/RenderBoxModelObject.h:
502         * rendering/RenderLayerModelObject.h:
503
504             Add the requisite isRendererOfType<T> helpers.
505
506         * rendering/RenderBox.cpp:
507         (WebCore::RenderBox::enclosingFloatPaintingLayer):
508         * rendering/RenderObject.cpp:
509         (WebCore::RenderObject::enclosingLayer):
510         (WebCore::RenderObject::enclosingBox):
511         (WebCore::RenderObject::enclosingBoxModelObject):
512
513             Simplify with lineageOfType. Added some FIXMEs about functions
514             that should return references instead of pointers.
515
516 2014-01-03  Martin Robinson  <mrobinson@igalia.com>
517
518         Small build fix for the GTK+ CMake port
519
520         * PlatformGTK.cmake: Add an IDL file that is missing from the list of IDLs
521         used to generate GObject DOM bindings.
522
523 2014-01-03  Daniel Bates  <dabates@apple.com>
524
525         [iOS] Upstream WebCore/css changes
526         https://bugs.webkit.org/show_bug.cgi?id=126237
527
528         Reviewed by Simon Fraser.
529
530         * css/CSSComputedStyleDeclaration.cpp:
531         (WebCore::ComputedStyleExtractor::propertyValue): Added iOS-specific code and FIXME comment.
532         * css/CSSParser.cpp:
533         (WebCore::CSSParserContext::CSSParserContext): Ditto.
534         (WebCore::CSSParser::parseValue): Ditto.
535         * css/CSSPropertyNames.in: Added property -webkit-composition-fill-color. Also added FIXME comment.
536         * css/CSSValueKeywords.in: Added iOS-specific -apple-system-* values.
537         * css/DeprecatedStyleBuilder.cpp:
538         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): Added iOS-specific code and FIXME comments.
539         * css/MediaFeatureNames.h: Added media feature -webkit-video-playable-inline.
540         * css/MediaQueryEvaluator.cpp:
541         (WebCore::isRunningOnIPhoneOrIPod): Added. Also added FIXME comment.
542         (WebCore::video_playable_inlineMediaFeatureEval): Added.
543         * css/StyleResolver.cpp:
544         (WebCore::StyleResolver::canShareStyleWithElement): Substitute toHTMLMediaElement() for toMediaElement().
545         (WebCore::StyleResolver::applyProperty): Added iOS-specific code and FIXME comment.
546         * css/html.css: Added iOS-specific CSS styles.
547         (input, textarea, keygen, select, button, isindex):
548         (isindex):
549         (input[type="date"]):
550         (input[type="datetime"]):
551         (input[type="datetime-local"]):
552         (input[type="month"]):
553         (input[type="time"]):
554         (textarea):
555         (input:-webkit-autofill):
556         (input[type="radio"], input[type="checkbox"]):
557         (input[type="button"], input[type="submit"], input[type="reset"], input[type="file"]::-webkit-file-upload-button, button):
558         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb):
559         (input[type="range"]::-webkit-slider-thumb:active):
560         (input:disabled, textarea:disabled):
561         (input[readonly], textarea[readonly]):
562         (textarea::-webkit-input-placeholder):
563         (input[type="checkbox"]):
564         (input[type="radio"]):
565         (input[type="checkbox"]:checked, input[type="radio"]:checked):
566         (input[type="checkbox"]:checked:disabled, input[type="radio"]:checked:disabled):
567         (select:focus):
568         (select):
569         * css/mathml.css: Added iOS-specific CSS styles.
570         (math, mfenced > *):
571         (mo, mfenced):
572         * css/mediaControlsiOS.css: Added.
573         * css/svg.css: Added iOS-specific CSS styles.
574         (text, tspan, tref):
575
576 2014-01-03  Brent Fulgham  <bfulgham@apple.com>
577
578         [WebGL] glScissor test is not accounted for when generating internal rendering textures.
579         https://bugs.webkit.org/show_bug.cgi?id=126455
580         <rdar://problem/15744206>
581
582         Reviewed by Dean Jackson.
583
584         Covered by webgl/1.0.2/conformance/rendering/gl-scissor-test.html
585
586         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
587         (WebCore::GraphicsContext3D::prepareTexture): Check state of GL_SCISSOR_TEST and GL_DITHER, deactivate them during
588         our internal drawing, then turn them back on for further processing.
589
590 2014-01-03  Simon Fraser  <simon.fraser@apple.com>
591
592         Maybe fix Windows build.
593
594         * WebCore.vcxproj/copyForwardingHeaders.cmd:
595
596 2014-01-03  Jer Noble  <jer.noble@apple.com>
597
598         [MediaControls][iOS] Enable JavaScript Media Controls on iOS.
599         https://bugs.webkit.org/show_bug.cgi?id=126440
600
601         Reviewed by Eric Carlson.
602
603         Drive-by misspelling fix, and add a convenience function to check if the
604         controls are currently hidden:
605         * Modules/mediacontrols/mediaControlsApple.js:
606         (Controller.prototype.handleWrapperMouseMove):
607         (Controller.prototype.handleWrapperMouseOut):
608         (Controller.prototype.updatePlaying):
609         (Controller.prototype.controlsAreHidden): Added.
610
611         Add a new subclass of Controller for iOS and a matching CSS:
612         * Modules/mediacontrols/mediaControlsiOS.css: Added.
613         * Modules/mediacontrols/mediaControlsiOS.js: Added.
614         (createControls): Override the createControls() in mediaControlsApple.js.
615         (ControllerIOS): Define a new class.
616         (ControllerIOS.prototype.inheritFrom): Convenience method to mixin parent
617             prototype methods.
618         (ControllerIOS.prototype.createBase): Override, listen for touches instead of mouse events.
619         (ControllerIOS.prototype.createControls): Ditto.
620         (ControllerIOS.prototype.configureInlineControls): Override, only add play, timeline, and full
621             screen butttons.
622         (ControllerIOS.prototype.configureFullScreenControls): Override, and add no buttons.
623         (ControllerIOS.prototype.handlePlayButtonTouchStart): Activate.
624         (ControllerIOS.prototype.handlePlayButtonTouchEnd): De-activate and do action.
625         (ControllerIOS.prototype.handlePlayButtonTouchCancel): De-activate and cancel.
626         (ControllerIOS.prototype.handleWrapperTouchStart): Show controls.
627         (ControllerIOS.prototype.handlePanelTouchStart): Disable video selection.
628         (ControllerIOS.prototype.handlePanelTouchEnd): Re-enable video selection.
629         (ControllerIOS.prototype.handlePanelTouchCancel): Ditto.
630
631         Drive-by fix to enable the JavaScript controls when the plugin is disabled:
632         * html/HTMLMediaElement.cpp:
633         (WebCore::HTMLMediaElement::parseAttribute):
634
635         Add the iOS JavaScript by appending it to the generic (Apple) JavaScript:
636         * rendering/RenderThemeIOS.mm:
637         (WebCore::RenderThemeIOS::mediaControlsScript):
638
639         Add new files to project:
640         * DerivedSources.make:
641         * WebCore.xcodeproj/project.pbxproj:
642
643 2014-01-03  Simon Fraser  <simon.fraser@apple.com>
644
645         Allow the ChromeClient to provide a custom ScrollingCoordinator
646         https://bugs.webkit.org/show_bug.cgi?id=126450
647
648         Reviewed by Tim Horton.
649         
650         Some platforms will want to provide a custom ScrollingCoordinator, so let
651         them do so by asking ChromeClient first for one.
652
653         * page/ChromeClient.h:
654         (WebCore::ChromeClient::createScrollingCoordinator):
655         * page/Page.cpp:
656         (WebCore::Page::scrollingCoordinator):
657
658 2014-01-03  Andreas Kling  <akling@apple.com>
659
660         Deploy more child renderer iterators in RenderBlockFlow.
661         <https://webkit.org/b/126434>
662
663         Reviewed by Sam Weinig.
664
665         * rendering/RenderBlockFlow.cpp:
666         (WebCore::shouldCheckLines):
667
668             Make this helper take a RenderBlockFlow instead of a RenderObject
669             and simplified it a bit. RenderDeprecatedFlexibleBox does not
670             derive from RenderBlockFlow so those checks can be omitted.
671
672         (WebCore::RenderBlockFlow::layoutBlock):
673         (WebCore::RenderBlockFlow::markAllDescendantsWithFloatsForLayout):
674         (WebCore::RenderBlockFlow::lineAtIndex):
675         (WebCore::RenderBlockFlow::lineCount):
676         (WebCore::RenderBlockFlow::clearTruncation):
677
678             Use childrenOfType to iterate over block and block-flow children.
679             Tweaked some early return/continue to reduce nesting.
680
681 2014-01-03  Simon Fraser  <simon.fraser@apple.com>
682
683         Allow different types of ScrollingTrees to have different types of ScrollingTreeNode subclasses
684         https://bugs.webkit.org/show_bug.cgi?id=126445
685
686         Reviewed by Tim Horton.
687         
688         Make it possible to have ScrollingTree subclasses with different subclasses of ScrollingTreeNodes,
689         by giving ScrollingTree a pure virtual createNode() function. ThreadedScrollingTree implements
690         this, and then delegates node creation to its AsyncScrollingCoordinator (since we have
691         a ScrollingCoordinatorMac but no real need for a ThreadedScrollingTreeMac).
692         
693         Also made ThreadedScrollingTree's m_scrollingCoordinator an AsyncScrollingCoordinator,
694         since by definition a threaded scrolling tree uses an async coordinator.
695
696         * page/scrolling/AsyncScrollingCoordinator.h:
697         * page/scrolling/ScrollingTree.cpp:
698         (WebCore::ScrollingTree::updateTreeFromStateNode):
699         * page/scrolling/ScrollingTree.h:
700         * page/scrolling/ScrollingTreeScrollingNode.h:
701         * page/scrolling/ThreadedScrollingTree.cpp:
702         (WebCore::ThreadedScrollingTree::create):
703         (WebCore::ThreadedScrollingTree::ThreadedScrollingTree):
704         (WebCore::ThreadedScrollingTree::createNode):
705         * page/scrolling/ThreadedScrollingTree.h:
706         * page/scrolling/mac/ScrollingCoordinatorMac.h:
707         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
708         (WebCore::ScrollingCoordinatorMac::createScrollingTreeNode):
709         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
710         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
711         (WebCore::ScrollingTreeScrollingNodeMac::create):
712
713 2014-01-03  Gavin Barraclough  <barraclough@apple.com>
714
715         Refactor NSActivity handling code from ChildProcess to UserActivity
716         https://bugs.webkit.org/show_bug.cgi?id=126330
717
718         Unreviewed build fix.
719
720         * platform/UserActivity.h:
721             - case fix.
722
723 2014-01-02  Gavin Barraclough  <barraclough@apple.com>
724
725         Refactor NSActivity handling code from ChildProcess to UserActivity
726         https://bugs.webkit.org/show_bug.cgi?id=126330
727
728         Reviewed by Sam Weinig.
729
730         UserActivity is a mechanism to express to the operating system (where appropriate)
731         that a user initiated activity is taking place, and as such that resources should be
732         made available to the process accordingly.
733
734         Currently we hold a single NSActivity, at the WebKit layer. This refactoring allows us
735         to hold different activity tokens for different user actions (which simplifies the
736         handling, and aides debugging since the token can more accurately express the activity
737         taking place), and also will allow us to avoid the layering difficulty of calling back
738         up the stack to WebKit to register that an activity is taking place.
739
740         * WebCore.xcodeproj/project.pbxproj:
741             - added new files.
742         * platform/UserActivity.cpp: Added.
743         (WebCore::UserActivity::UserActivity):
744             - nop implementation - ignore description.
745         (WebCore::UserActivity::beginActivity):
746         (WebCore::UserActivity::endActivity):
747             - nop implementation - just inc/dec m_count.
748         * platform/UserActivity.h: Added.
749         (WebCore::UserActivity::isActive):
750             - returns true if one or more instance of this activity is in progress.
751         * platform/mac/UserActivityMac.mm: Added.
752         (WebCore::UserActivity::UserActivity):
753             - constructor accepts one argument, a description string.
754         (WebCore::UserActivity::isValid):
755             - used by assertions.
756         (WebCore::UserActivity::beginActivity):
757         (WebCore::UserActivity::endActivity):
758             - track start/end of an activity - calls to these methods should be balanced.
759         (WebCore::UserActivity::hysteresisTimerFired):
760               - used to implement hysteresis in releasing  NSActivity.
761
762 2014-01-03  Alexey Proskuryakov  <ap@apple.com>
763
764         Line ending conversion should be able to handle strings with null chars
765         https://bugs.webkit.org/show_bug.cgi?id=126202
766
767         This is a merge from Blink.
768
769         Reviewed by Alexey Proskuryakov.
770
771         Test: http/tests/local/formdata/send-form-data-with-string-containing-null.html
772
773         * platform/text/LineEnding.cpp: (WebCore::normalizeToCROrLF): Do it right.
774
775 2014-01-03  Alberto Garcia  <berto@igalia.com>
776
777         WebKit-GTK 1.8.1 does not build on OS X 10.7
778         https://bugs.webkit.org/show_bug.cgi?id=88407
779
780         Reviewed by Carlos Garcia Campos.
781
782         Replace non-portable 'echo -n' with 'true'.
783
784         * GNUmakefile.am:
785
786 2014-01-03  peavo@outlook.com  <peavo@outlook.com>
787
788         [WinCairo] Compile error.
789         https://bugs.webkit.org/show_bug.cgi?id=126428
790
791         Reviewed by Brent Fulgham.
792
793         The NativeImagePtr type is not an CGImageRef on WinCairo, cannot use CFRetain.
794
795         * loader/cache/MemoryCache.cpp: Replace USE(CF) with USE(CG).
796         * loader/cache/MemoryCache.h: Ditto.
797
798 2014-01-03  Hans Muller  <hmuller@adobe.com>
799
800         [CSS Shapes] Simplify FloatRoundedRect, BoxShape construction
801         https://bugs.webkit.org/show_bug.cgi?id=125995
802
803         Reviewed by Andreas Kling.
804
805         Cleanup of various internal Shape issues:
806         - Removed unnecessary Shape() initialization list entries in Shape subclasses
807           per https://bugs.webkit.org/show_bug.cgi?id=125548#c2.
808         - Used const references instead of pointers for non-deprecated Shape:createShape() logic.
809         - Replaced createShape() overloads for Rasters and Boxes with functions named
810           createRasterShape() and createBoxShape().
811         - Added a FloatRoundedRect::Radii() constructor to reduce the parameter list
812           length of the FloatRoundedRect constructor in createBoxShape().
813
814         There are no new tests, this is just internal refactoring.
815
816         * platform/graphics/FloatRoundedRect.h:
817         (WebCore::FloatRoundedRect::Radii::Radii):
818         * rendering/shapes/BoxShape.h:
819         (WebCore::BoxShape::BoxShape):
820         * rendering/shapes/PolygonShape.h:
821         (WebCore::PolygonShape::PolygonShape):
822         * rendering/shapes/RasterShape.h:
823         (WebCore::RasterShape::RasterShape):
824         * rendering/shapes/RectangleShape.h:
825         (WebCore::RectangleShape::RectangleShape):
826         * rendering/shapes/Shape.cpp:
827         (WebCore::createInsetShape):
828         (WebCore::Shape::createShape):
829         (WebCore::Shape::createRasterShape):
830         (WebCore::Shape::createBoxShape):
831         * rendering/shapes/Shape.h:
832         * rendering/shapes/ShapeInfo.cpp:
833         (WebCore::ShapeInfo<RenderType>::computedShape):
834
835 2014-01-03  Andreas Kling  <akling@apple.com>
836
837         Remove unused Document::openSearchDescriptionURL().
838         <https://webkit.org/b/126419>
839
840         Reviewed by Antti Koivisto.
841
842         * dom/Document.h:
843         * dom/Document.cpp:
844
845             Scrub leftovers from the defunct Chromium port.
846
847 2014-01-03  Jinwoo Song  <jinwoo7.song@samsung.com>
848
849         VibrationPattern should allocate an single vector instance for single integer input
850         https://bugs.webkit.org/show_bug.cgi?id=126417
851
852         Reviewed by Gyuyoung Kim.
853
854         When the Vibration pattern is set with a single integer, the VibrationPattern should
855         be set with this integer as a vibration time. But the VibrationPattern(unsigned vector) was
856         initialized with a single parameter, the vibration time, so the time was used to set
857         the size of vector.
858
859         * Modules/vibration/NavigatorVibration.cpp:
860         (WebCore::NavigatorVibration::vibrate):
861
862 2014-01-02  Jaehun Lim  <ljaehun.lim@samsung.com>
863
864         IconController.cpp needs to include <wtf/text/CString.h>
865         https://bugs.webkit.org/show_bug.cgi?id=126415
866
867         Reviewed by Gyuyoung Kim.
868
869         Build fails in IconController.cpp when ICONDATABASE is disabled.
870         WebKit/Source/WebCore/loader/icon/IconController.cpp:124:110: error: invalid use of incomplete type ‘class WTF::CString’
871         IconController.cpp needs #include <wtf/text/CString.h>.
872
873         No new tests. Just build fix.
874
875         * loader/icon/IconController.cpp: Add #include statement.
876
877 2014-01-02  Ryuan Choi  <ryuan.choi@samsung.com>
878
879         [EFL] Previous scrollbar is remained sometimes
880         https://bugs.webkit.org/show_bug.cgi?id=126414
881
882         Reviewed by Gyuyoung Kim.
883
884         * platform/efl/ScrollbarEfl.cpp:
885         (ScrollbarEfl::invalidate):
886         Updated scrollbar visibility in Scrollbar::invalidate().
887         * platform/efl/ScrollbarEfl.h:
888         Removed show()/hide() which never been called() for scrollbar.
889
890 2014-01-02  Brent Fulgham  <bfulgham@apple.com>
891
892         [WebGL] Correct symbol lookup logic to handle 1-element arrays
893         https://bugs.webkit.org/show_bug.cgi?id=126411
894         <rdar://problem/15394564>
895
896         Reviewed by Dean Jackson.
897
898         Tested by revisions to webgl/1.0.2/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html
899
900         * html/canvas/WebGLRenderingContext.cpp:
901         (WebCore::WebGLRenderingContext::getUniformLocation): Revise to
902         handle access to zeroeth element of the array.
903
904 2014-01-02  Myles C. Maxfield  <mmaxfield@apple.com>
905
906         Crash in WebCore::translateIntersectionPointsToSkipInkBoundaries
907         https://bugs.webkit.org/show_bug.cgi?id=126252
908
909         Reviewed by Alexey Proskuryakov.
910
911         lastIntermediate was a iterator pointing into a Vector, which was being re-used
912         even while appending to the Vector. If any of the append operators triggered
913         a realloc, the iterator would point to the old free'ed memory.
914
915         Test: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-crash-many-gaps.html
916
917         * rendering/InlineTextBox.cpp:
918         (WebCore::translateIntersectionPointsToSkipInkBoundaries):
919
920 2014-01-02  Brent Fulgham  <bfulgham@apple.com>
921
922         [WebGL] Correct symbol lookup logic to handle 1-element arrays
923         https://bugs.webkit.org/show_bug.cgi?id=126411
924         <rdar://problem/15394564>
925
926         Reviewed by Dean Jackson.
927
928         * html/canvas/WebGLRenderingContext.cpp:
929         (WebCore::WebGLRenderingContext::getUniformLocation): Revise code to handle the case of single-element
930         arrays.
931
932 2014-01-02  Sam Weinig  <sam@webkit.org>
933
934         Update Promises to the https://github.com/domenic/promises-unwrapping spec
935         https://bugs.webkit.org/show_bug.cgi?id=120954
936
937         Reviewed by Filip Pizlo.
938
939         * ForwardingHeaders/runtime/JSPromiseDeferred.h: Added.
940         * ForwardingHeaders/runtime/JSPromiseResolver.h: Removed.
941         * bindings/js/JSDOMGlobalObjectTask.cpp:
942         (WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
943         * bindings/js/JSDOMGlobalObjectTask.h:
944         * bindings/js/JSDOMPromise.cpp:
945         (WebCore::DeferredWrapper::DeferredWrapper):
946         (WebCore::DeferredWrapper::promise):
947         (WebCore::DeferredWrapper::resolve):
948         (WebCore::DeferredWrapper::reject):
949         * bindings/js/JSDOMPromise.h:
950         (WebCore::DeferredWrapper::resolve):
951         (WebCore::DeferredWrapper::reject):
952         (WebCore::DeferredWrapper::resolve<String>):
953         (WebCore::DeferredWrapper::resolve<bool>):
954         (WebCore::char>>):
955         (WebCore::DeferredWrapper::reject<String>):
956         * bindings/js/JSDOMWindowBase.cpp:
957         (WebCore::JSDOMWindowBase::queueTaskToEventLoop):
958         * bindings/js/JSDOMWindowBase.h:
959         * bindings/js/JSSubtleCryptoCustom.cpp:
960         (WebCore::JSSubtleCrypto::encrypt):
961         (WebCore::JSSubtleCrypto::decrypt):
962         (WebCore::JSSubtleCrypto::sign):
963         (WebCore::JSSubtleCrypto::verify):
964         (WebCore::JSSubtleCrypto::digest):
965         (WebCore::JSSubtleCrypto::generateKey):
966         (WebCore::JSSubtleCrypto::importKey):
967         (WebCore::JSSubtleCrypto::exportKey):
968         (WebCore::JSSubtleCrypto::wrapKey):
969         (WebCore::JSSubtleCrypto::unwrapKey):
970         * bindings/js/JSWorkerGlobalScopeBase.cpp:
971         (WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):
972         * bindings/js/JSWorkerGlobalScopeBase.h:
973
974 2014-01-02  Tim Horton  <timothy_horton@apple.com>
975
976         ImageBufferBackingStoreCache should use DeferrableOneShotTimer
977         https://bugs.webkit.org/show_bug.cgi?id=126155
978
979         Reviewed by Anders Carlsson.
980
981         Since ImageBufferBackingStoreCache's purge timer is pushed out every time
982         a backing store is deallocated, we can easily waste a lot of time rescheduling
983         the timer. Since it's a cache purge timer and doesn't need that kind of precision,
984         adopt DeferrableOneShotTimer, which is much more performant when deferred frequently.
985
986         * platform/graphics/cg/ImageBufferBackingStoreCache.cpp:
987         (WebCore::ImageBufferBackingStoreCache::ImageBufferBackingStoreCache):
988         (WebCore::ImageBufferBackingStoreCache::timerFired):
989         (WebCore::ImageBufferBackingStoreCache::schedulePurgeTimer):
990         * platform/graphics/cg/ImageBufferBackingStoreCache.h:
991
992 2014-01-02  Myles C. Maxfield  <mmaxfield@apple.com>
993
994         Allow ImageBuffer to re-use IOSurfaces
995         https://bugs.webkit.org/show_bug.cgi?id=125477
996
997         Reviewed by Geoff Garen. Modifications reviewed by Tim Horton.
998
999         This patch is taken from r160945, but the modifications to ImageBufferCG.cpp
1000         have been reverted.
1001
1002         This test adds a static class, ImageBufferBackingStoreCache, that vends 
1003         IOSurfaces. It remembers IOSurfaces that have been returned to it until 
1004         a configurable timeout. 
1005
1006         The storage used by this class is in the form of a HashMap from a 
1007         bucketed size to the IOSurface. There are many other data structures 
1008         that could be used, but this implementation gives a 80% hit rate on 
1009         normal browsing of some example sites with Canvas and 
1010         text-decoration-skip: ink. Because the buckets are fairly 
1011         small (rounding the width and height up to multiples of 8), traversing the 
1012         bucket contents takes on average 2 steps.  
1013
1014         Test: fast/canvas/canvas-backing-store-reuse.html 
1015
1016         * WebCore.xcodeproj/project.pbxproj: Added new caching class 
1017         * platform/graphics/cg/ImageBufferBackingStoreCache.cpp: Added. 
1018         (WebCore::createIOSurface): Copied from ImageBufferCG.cpp 
1019         (WebCore::ImageBufferBackingStoreCache::timerFired): Forget the cache 
1020         contents 
1021         (WebCore::ImageBufferBackingStoreCache::schedulePurgeTimer): 
1022         (WebCore::ImageBufferBackingStoreCache::get): Static getter 
1023         (WebCore::ImageBufferBackingStoreCache::ImageBufferBackingStoreCache): 
1024         (WebCore::ImageBufferBackingStoreCache::insertIntoCache): Memory-management 
1025         creation function 
1026         (WebCore::ImageBufferBackingStoreCache::takeFromCache): Memory-management 
1027         deletion function 
1028         (WebCore::ImageBufferBackingStoreCache::isAcceptableSurface): Does this cached 
1029         IOSurface fit the bill? 
1030         (WebCore::ImageBufferBackingStoreCache::tryTakeFromCache): Lookup 
1031         a bucket and walk through its contents 
1032         (WebCore::ImageBufferBackingStoreCache::getOrAllocate): Public function 
1033         for clients who want a IOSurface from the cache 
1034         (WebCore::ImageBufferBackingStoreCache::deallocate): Public 
1035         function for clients to return an IOSurface to the pool 
1036         * platform/graphics/cg/ImageBufferBackingStoreCache.h: Added. 
1037         (WebCore::ImageBuffer::ImageBuffer): 
1038         (WebCore::ImageBuffer::~ImageBuffer): 
1039
1040 2014-01-02  Piotr Grad  <p.grad@samsung.com>
1041
1042         Video-seek-with-negative-playback was flaky.
1043         https://bugs.webkit.org/show_bug.cgi?id=126379
1044
1045         Reviewed by Eric Carlson.
1046
1047         No new tests. Covered by existing tests.
1048
1049         m_player->setRate() should be called before updating m_playbackRate, because potentiallyPlaying() depends
1050         on endedPlayback(), which checks m_playbackRate.
1051
1052         * html/HTMLMediaElement.cpp:
1053         (WebCore::HTMLMediaElement::setPlaybackRate):
1054
1055 2014-01-02  Daniel Bates  <dabates@apple.com>
1056
1057         [iOS] Tapping any link crashes in WebCore::EventHandler::mouseMoved()
1058         (also crashes when scrolling certain sites)
1059         https://bugs.webkit.org/show_bug.cgi?id=126401
1060         <rdar://problem/15739334>
1061
1062         Reviewed by Tim Horton.
1063
1064         * page/ios/EventHandlerIOS.mm:
1065         (WebCore::currentEventSlot): Make the shared variable have static-storage duration.
1066
1067 2014-01-02  Gavin Barraclough  <barraclough@apple.com>
1068
1069         Remove WindowIsVisible
1070         https://bugs.webkit.org/show_bug.cgi?id=126270
1071
1072         Reviewed by Tim Horton.
1073
1074         We currently track visibility in two ways - ViewState::IsVisible and ViewState::WindowIsVisible.
1075         The latter detects that the content is hidden in fewer cases than the former, and as such, the
1076         former is always preferable.
1077
1078         This affects the hidden state provided to FocusController::contentAreaDidShowOrHide and to
1079         Plugin::windowVisibilityChanged.
1080
1081         * WebCore.exp.in:
1082         * page/FocusController.cpp:
1083         (WebCore::FocusController::FocusController):
1084         (WebCore::FocusController::setContentIsVisible):
1085         * page/FocusController.h:
1086             - rename ContainingWindowIsVisible -> ContentIsVisible.
1087
1088 2014-01-02  Gavin Barraclough  <barraclough@apple.com>
1089
1090         Merge didMoveOnscreen / page visibility to isVisible
1091         https://bugs.webkit.org/show_bug.cgi?id=126268
1092
1093         Reviewed by Tim Horton.
1094
1095         The onscreen state most closely tracks view visibility (though currently
1096         also tracks a mix of in-window state). Make more consistent, simplify,
1097         and move all animation suspension logic to Page, so it can be controlled
1098         by the PageThrottler.
1099
1100         * WebCore.exp.in:
1101         * page/EventHandler.cpp:
1102         (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
1103         * page/FrameView.cpp:
1104         (WebCore::FrameView::shouldSetCursor):
1105         * page/Page.cpp:
1106         (WebCore::Page::Page):
1107             - initialize new variables.
1108         (WebCore::Page::setIsVisible):
1109             - merge setVisibilityState, didMoveOnscreen, willMoveOffscreen.
1110         (WebCore::Page::setIsPrerender):
1111             - switches visibility state from hidden to prerender.
1112         (WebCore::Page::visibilityState):
1113             - computed from m_isVisible, m_isPrerender.
1114         (WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
1115             - m_visibilityState -> m_isVisible.
1116         * page/Page.h:
1117             - remove didMoveOnscreen/willMoveOffscreen
1118               m_isOnscreen & m_visibilityState -> m_isVisible & m_isPrerender
1119               setVisibilityState -> setIsVisible & setIsPrerender.
1120         (WebCore::Page::isVisible):
1121             - isOnscreen -> isVisible.
1122
1123 2014-01-02  Oliver Hunt  <oliver@apple.com>
1124
1125         Update bindings test results
1126
1127         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
1128         (WebCore::jsTestActiveDOMObjectConstructor):
1129         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
1130         (WebCore::jsTestCustomNamedGetterConstructor):
1131         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
1132         (WebCore::jsTestEventConstructorConstructor):
1133         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
1134         (WebCore::jsTestEventTargetConstructor):
1135         * bindings/scripts/test/JS/JSTestException.cpp:
1136         (WebCore::jsTestExceptionConstructor):
1137         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
1138         (WebCore::jsTestGenerateIsReachableConstructor):
1139         * bindings/scripts/test/JS/JSTestInterface.cpp:
1140         (WebCore::jsTestInterfaceConstructor):
1141         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
1142         (WebCore::jsTestMediaQueryListListenerConstructor):
1143         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
1144         (WebCore::jsTestNamedConstructorConstructor):
1145         * bindings/scripts/test/JS/JSTestNode.cpp:
1146         (WebCore::jsTestNodeConstructor):
1147         * bindings/scripts/test/JS/JSTestObj.cpp:
1148         (WebCore::jsTestObjConstructor):
1149         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
1150         (WebCore::jsTestOverloadedConstructorsConstructor):
1151         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1152         (WebCore::jsTestSerializedScriptValueInterfaceConstructor):
1153         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
1154         (WebCore::jsTestTypedefsConstructor):
1155         * bindings/scripts/test/JS/JSattribute.cpp:
1156         (WebCore::jsattributeConstructor):
1157         * bindings/scripts/test/JS/JSreadonly.cpp:
1158         (WebCore::jsreadonlyConstructor):
1159
1160 2013-12-23  Oliver Hunt  <oliver@apple.com>
1161
1162         Refactor PutPropertySlot to be aware of custom properties
1163         https://bugs.webkit.org/show_bug.cgi?id=126187
1164
1165         Reviewed by Antti Koivisto.
1166
1167         Update the bindings code generation and custom objects
1168         to the new function signatures
1169
1170         * bindings/js/JSDOMWindowCustom.cpp:
1171         (WebCore::JSDOMWindow::put):
1172         * bindings/objc/WebScriptObject.mm:
1173         (-[WebScriptObject setValue:forKey:]):
1174         * bindings/scripts/CodeGeneratorJS.pm:
1175         (GenerateImplementation):
1176         * bindings/scripts/test/JS/JSTestInterface.cpp:
1177         (WebCore::JSTestInterface::putByIndex):
1178         * bridge/NP_jsobject.cpp:
1179         (_NPN_SetProperty):
1180
1181 2014-01-02  Simon Fraser  <simon.fraser@apple.com>
1182
1183         Add AsyncScrollingCoordinator, which is a base class for threaded and future remote ScrollingCoordinators
1184         https://bugs.webkit.org/show_bug.cgi?id=126389
1185
1186         Reviewed by Tim Horton.
1187
1188         Add AsyncScrollingCoordinator, a ScrollingCoordinator that knows about ScrollingStateTrees
1189         and ScrollingTrees, but leaves it up to subclasses to decide when and how to commit.
1190
1191         * WebCore.xcodeproj/project.pbxproj: Added AsyncScrollingCoordinator.*
1192         * page/scrolling/AsyncScrollingCoordinator.cpp: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm.
1193         (WebCore::AsyncScrollingCoordinator::AsyncScrollingCoordinator):
1194         (WebCore::AsyncScrollingCoordinator::~AsyncScrollingCoordinator):
1195         (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
1196         (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
1197         (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
1198         (WebCore::AsyncScrollingCoordinator::scrollableAreaScrollbarLayerDidChange):
1199         (WebCore::AsyncScrollingCoordinator::attachToStateTree):
1200         (WebCore::AsyncScrollingCoordinator::detachFromStateTree):
1201         (WebCore::AsyncScrollingCoordinator::clearStateTree):
1202         (WebCore::AsyncScrollingCoordinator::syncChildPositions):
1203         (WebCore::AsyncScrollingCoordinator::ensureRootStateNodeForFrameView):
1204         (WebCore::AsyncScrollingCoordinator::updateScrollingNode):
1205         (WebCore::AsyncScrollingCoordinator::updateViewportConstrainedNode):
1206         (WebCore::AsyncScrollingCoordinator::setScrollLayerForNode):
1207         (WebCore::AsyncScrollingCoordinator::setCounterScrollingLayerForNode):
1208         (WebCore::AsyncScrollingCoordinator::setHeaderLayerForNode):
1209         (WebCore::AsyncScrollingCoordinator::setFooterLayerForNode):
1210         (WebCore::AsyncScrollingCoordinator::setNonFastScrollableRegionForNode):
1211         (WebCore::AsyncScrollingCoordinator::setWheelEventHandlerCountForNode):
1212         (WebCore::AsyncScrollingCoordinator::setScrollBehaviorForFixedElementsForNode):
1213         (WebCore::AsyncScrollingCoordinator::setScrollbarPaintersFromScrollbarsForNode):
1214         (WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):
1215         (WebCore::AsyncScrollingCoordinator::updateMainFrameScrollLayerPosition):
1216         (WebCore::AsyncScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
1217         (WebCore::AsyncScrollingCoordinator::isRubberBandInProgress):
1218         (WebCore::AsyncScrollingCoordinator::setScrollPinningBehavior):
1219         (WebCore::AsyncScrollingCoordinator::scrollingStateTreeAsText):
1220         * page/scrolling/AsyncScrollingCoordinator.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h.
1221         (WebCore::AsyncScrollingCoordinator::scrollingTree):
1222         (WebCore::AsyncScrollingCoordinator::setScrollingTree):
1223         (WebCore::AsyncScrollingCoordinator::scrollingStateTree):
1224         (WebCore::AsyncScrollingCoordinator::releaseScrollingTree):
1225         * page/scrolling/ScrollingCoordinator.h: Add casting support.
1226         (WebCore::ScrollingCoordinator::isAsyncScrollingCoordinator):
1227         * page/scrolling/ThreadedScrollingTree.h: commitNewTreeState() needs to be public.
1228         * page/scrolling/mac/ScrollingCoordinatorMac.h:
1229         * page/scrolling/mac/ScrollingCoordinatorMac.mm: Lots of code moved to AsyncScrollingCoordinator.
1230         (WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
1231         (WebCore::ScrollingCoordinatorMac::~ScrollingCoordinatorMac):
1232         (WebCore::ScrollingCoordinatorMac::pageDestroyed):
1233         (WebCore::ScrollingCoordinatorMac::commitTreeStateIfNeeded):
1234         (WebCore::ScrollingCoordinatorMac::handleWheelEvent):
1235         (WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
1236         (WebCore::ScrollingCoordinatorMac::commitTreeState):
1237         (WebCore::ScrollingCoordinatorMac::updateTiledScrollingIndicator):
1238
1239 2014-01-02  Andreas Kling  <akling@apple.com>
1240
1241         Simplify the insides of DocumentSharedObjectPool and reduce memory usage.
1242
1243         Merging Blink r164152 by Elliott Sprehn.
1244
1245         Instead of storing an OwnPtr to an object that has a pointer to the
1246         ShareableElementData as well as a pointer into the ShareableElementData
1247         and the length we can just store a RefPtr to the SharableElementData.
1248
1249         This also reduces the memory usage of the pool by 2 pointers per entry.
1250
1251         * dom/DocumentSharedObjectPool.h:
1252         * dom/DocumentSharedObjectPool.cpp:
1253         (WebCore::attributeHash):
1254         (WebCore::hasSameAttributes):
1255         (WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
1256
1257 2014-01-02  Dirk Schulze  <krit@webkit.org>
1258
1259         Support <box> values computed style for 'clip-path' property
1260         https://bugs.webkit.org/show_bug.cgi?id=126148
1261
1262         Reviewed by Simon Fraser.
1263
1264         Calculate computed style for 'clip-path' property.
1265
1266         Updated tests to check for computed style.
1267
1268         * css/BasicShapeFunctions.cpp: Add box value bounding-box.
1269         (WebCore::valueForBox):
1270         (WebCore::boxForValue):
1271         * css/CSSComputedStyleDeclaration.cpp: Return the computed style
1272             for 'clip-path'.
1273         (WebCore::ComputedStyleExtractor::propertyValue):
1274         * css/DeprecatedStyleBuilder.cpp: Create CSSValueLists for 'clip-th'.
1275         (WebCore::ApplyPropertyClipPath::applyValue):
1276         * rendering/ClipPathOperation.h: Add bounding-box value.
1277         (WebCore::ShapeClipPathOperation::pathForReferenceRect):
1278         (WebCore::ShapeClipPathOperation::setReferenceBox):
1279         (WebCore::ShapeClipPathOperation::referenceBox):
1280         (WebCore::BoxClipPathOperation::create):
1281         (WebCore::BoxClipPathOperation::pathForReferenceRect):
1282         (WebCore::BoxClipPathOperation::referenceBox):
1283         (WebCore::BoxClipPathOperation::BoxClipPathOperation):
1284         * rendering/shapes/ShapeInfo.h: Add bounding-box value.
1285         (WebCore::ShapeInfo::setShapeSize):
1286         (WebCore::ShapeInfo::logicalTopOffset):
1287         (WebCore::ShapeInfo::logicalLeftOffset):
1288         * rendering/style/BasicShapes.cpp: Add bounding-box value.
1289         (WebCore::BasicShape::referenceBoxSize):
1290         * rendering/style/BasicShapes.h:
1291
1292 2014-01-02  Antti Koivisto  <antti@apple.com>
1293
1294         Always resolve style from root
1295         https://bugs.webkit.org/show_bug.cgi?id=126380
1296
1297         Reviewed by Andreas Kling.
1298         
1299         Forced style resolve that does not start from the root is never really correct. 
1300         Remove the few remaining instances.
1301
1302         * dom/ShadowRoot.cpp:
1303         (WebCore::ShadowRoot::setResetStyleInheritance):
1304         
1305             Update style asynchronously.
1306
1307         * dom/ShadowRoot.h:
1308         * dom/Text.h:
1309         * html/HTMLPlugInImageElement.cpp:
1310         (WebCore::HTMLPlugInImageElement::createElementRenderer):
1311         (WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache):
1312         (WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache):
1313         
1314             Delete the render tree synchronously on suspend and rebuild it asynchronously on resume.
1315             No need for m_customStyleForPageCache hack.
1316
1317         * html/HTMLPlugInImageElement.h:
1318         
1319             Remove m_customStyleForPageCache.
1320
1321         * style/StyleResolveTree.cpp:
1322         * style/StyleResolveTree.h:
1323         
1324             Remove Element version of resolveTree from the interface.
1325
1326         * svg/SVGUseElement.h:
1327
1328 2014-01-02  Antti Koivisto  <antti@apple.com>
1329
1330         Remove PlaceholderDocument
1331         https://bugs.webkit.org/show_bug.cgi?id=126382
1332
1333         Reviewed by Andreas Kling.
1334
1335         Remove PlaceholderDocument class and replace it with a bit in Document.
1336
1337         * WebCore.xcodeproj/project.pbxproj:
1338         * dom/Document.cpp:
1339         (WebCore::Document::Document):
1340         (WebCore::Document::createRenderTree):
1341         * dom/Document.h:
1342         
1343             Also make Synthesized a construction flag instead of a boolean parameter.
1344
1345         (WebCore::Document::createNonRenderedPlaceholder):
1346         * html/HTMLDocument.cpp:
1347         (WebCore::HTMLDocument::HTMLDocument):
1348         * html/HTMLDocument.h:
1349         (WebCore::HTMLDocument::create):
1350         (WebCore::HTMLDocument::createSynthesizedDocument):
1351         * loader/DocumentWriter.cpp:
1352         (WebCore::DocumentWriter::createDocument):
1353         * loader/PlaceholderDocument.cpp: Removed.
1354         * loader/PlaceholderDocument.h: Removed.
1355         * pdf/ios/PDFDocument.h:
1356         (WebCore::PDFDocument::PDFDocument):
1357
1358 2014-01-01  Antti Koivisto  <antti@apple.com>
1359
1360         Remove public attachRenderTree
1361         https://bugs.webkit.org/show_bug.cgi?id=126368
1362
1363         Reviewed by Andreas Kling.
1364
1365         Remove the remaining explicit render tree construction.
1366
1367         * dom/Document.cpp:
1368         (WebCore::Document::createRenderTree):
1369         
1370            Use recalcStyle() instead of calling attachRenderTree directly.
1371
1372         * html/HTMLViewSourceDocument.cpp:
1373         (WebCore::HTMLViewSourceDocument::addText):
1374         
1375             Remove forgotten attachTextRenderer.
1376
1377         * html/shadow/InsertionPoint.cpp:
1378         (WebCore::InsertionPoint::InsertionPoint):
1379         
1380             Remove willAttachRenderers/didAttachRenderers hack.
1381
1382         * html/shadow/InsertionPoint.h:
1383         (WebCore::toInsertionPoint):
1384         * loader/PlaceholderDocument.cpp:
1385         (WebCore::PlaceholderDocument::createRenderTree):
1386         
1387             Seriously, nothing to do here.
1388
1389         * style/StyleResolveTree.cpp:
1390         (WebCore::Style::attachDistributedChildren):
1391         (WebCore::Style::attachChildren):
1392         (WebCore::Style::detachDistributedChildren):
1393         (WebCore::Style::detachChildren):
1394         
1395             Making attaching and detaching distributed insertion point children part of ResolveTree internals.
1396
1397         * style/StyleResolveTree.h:
1398         
1399             Remove interfaces with no clients.
1400
1401 2014-01-01  Seokju Kwon  <seokju@webkit.org>
1402
1403         Remove stale ScriptProfiler methods
1404         https://bugs.webkit.org/show_bug.cgi?id=126373
1405
1406         Reviewed by Darin Adler.
1407
1408         No new tests, No change behavior. 
1409
1410         * bindings/js/ScriptProfiler.h: Remove dead code.
1411
1412 2014-01-01  Andreas Kling  <akling@apple.com>
1413
1414         Remove ChromeClient::fullScreenRendererChanged().
1415         <https://webkit.org/b/126370>
1416
1417         This hook was added in r75277 to notify WebFullScreenController when
1418         the full screen renderer changed. In r110216 the code was refactored,
1419         making this notification unnecessary.
1420
1421         Reviewed by Antti Koivisto.
1422
1423 2014-01-01  Simon Fraser  <simon.fraser@apple.com>
1424
1425         Fix the build by exposing some more scrolling state node headers
1426         as Private in WebCore.framework.
1427
1428         * WebCore.xcodeproj/project.pbxproj:
1429
1430 2014-01-01  Ryuan Choi  <ryuan.choi@samsung.com>
1431
1432         [EFL] Unreviewed build fix after r160903 when ACCESSIBILITY is disabled
1433
1434         * accessibility/AccessibilityObject.h:
1435         (WebCore::AccessibilityObject::children):
1436
1437 2014-01-01  Andreas Kling  <akling@apple.com>
1438
1439         RenderScrollbar: Map of scrollbar parts should use RenderPtr.
1440         <https://webkit.org/b/126367>
1441
1442         Turn RenderScrollbar::m_parts into HashMap of RenderPtrs. This makes
1443         renderer destruction automatic and lets us remove some code.
1444
1445         Reviewed by Antti Koivisto.
1446
1447         * rendering/RenderPtr.h:
1448
1449             Add HashTraits for RenderPtr so we can use them as values in
1450             WTF hash tables.
1451
1452         * rendering/RenderScrollbar.h:
1453         * rendering/RenderScrollbar.cpp:
1454         (WebCore::RenderScrollbar::~RenderScrollbar):
1455         (WebCore::RenderScrollbar::setParent):
1456         (WebCore::RenderScrollbar::updateScrollbarParts):
1457         (WebCore::RenderScrollbar::updateScrollbarPart):
1458
1459             Remove now-unneeded kludges of logic to manually delete scrollbar
1460             part renderers in various scenarios.
1461
1462 2014-01-01  Antti Koivisto  <antti@apple.com>
1463
1464         Remove reattachRenderTree
1465         https://bugs.webkit.org/show_bug.cgi?id=126366
1466
1467         Reviewed by Andreas Kling.
1468
1469         Remove the last remaining client.
1470
1471         * html/HTMLSelectElement.cpp:
1472         (WebCore::HTMLSelectElement::parseAttribute):
1473         
1474             Reconstruct render tree asynchronously.
1475
1476         (WebCore::HTMLSelectElement::scrollToSelection):
1477         (WebCore::HTMLSelectElement::setOptionsChangedOnRenderer):
1478         (WebCore::HTMLSelectElement::selectOption):
1479         
1480             It is not safe to cast the renderer based on usesMenuList test. Switch to RenderObject::isMenuList test.
1481
1482         (WebCore::HTMLSelectElement::parseMultipleAttribute):
1483         
1484             Reconstruct render tree asynchronously.
1485
1486         (WebCore::HTMLSelectElement::platformHandleKeydownEvent):
1487         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
1488         (WebCore::HTMLSelectElement::defaultEventHandler):
1489         * style/StyleResolveTree.cpp:
1490         * style/StyleResolveTree.h:
1491         
1492             Remove the function.
1493
1494 2014-01-01  Simon Fraser  <simon.fraser@apple.com>
1495
1496         Create a ThreadedScrollingTree subclass of ScrollingTree, and push all knowledge of the scrolling thread into it
1497         https://bugs.webkit.org/show_bug.cgi?id=126362
1498
1499         Reviewed by Sam Weinig.
1500
1501         Eventually we'll have a ScrollingTree in situations where there is no scrolling
1502         thread, so make the ScrollingTree base class thread-agnostic (but threadsafe),
1503         and subclass it in ThreadedScrollingTree for scrolling-thread-specific functionality.
1504         
1505         The ScrollingTree base class also no longer needs to know about the
1506         ScrollingCoordinator.
1507
1508         ScrollingCoordinatorMac creates a ThreadedScrollingTree.
1509
1510         * WebCore.exp.in:
1511         * WebCore.xcodeproj/project.pbxproj: Add ThreadedScrollingTree.*
1512         Make some headers Private that we'll need in WebKit2 soon.
1513         * page/scrolling/ScrollingStateTree.h: Drive-by cleanup: clone() was unimplemented.
1514         * page/scrolling/ScrollingTree.cpp:
1515         (WebCore::ScrollingTree::ScrollingTree):
1516         (WebCore::ScrollingTree::~ScrollingTree):
1517         (WebCore::ScrollingTree::shouldHandleWheelEventSynchronously): Wrap up some logic that
1518         involves taking the mutex, so ThreadedScrollingTree can conveniently call it.
1519         (WebCore::ScrollingTree::handleWheelEvent):
1520         (WebCore::ScrollingTree::commitNewTreeState):
1521         (WebCore::ScrollingTree::setMainFrameScrollPosition):
1522         (WebCore::ScrollingTree::isHandlingProgrammaticScroll):
1523         * page/scrolling/ScrollingTree.h:
1524         (WebCore::ScrollingTree::isThreadedScrollingTree):
1525         (WebCore::ScrollingTree::invalidate):
1526         * page/scrolling/ThreadedScrollingTree.cpp: Added.
1527         (WebCore::ThreadedScrollingTree::create):
1528         (WebCore::ThreadedScrollingTree::ThreadedScrollingTree):
1529         (WebCore::ThreadedScrollingTree::~ThreadedScrollingTree):
1530         (WebCore::ThreadedScrollingTree::tryToHandleWheelEvent):
1531         (WebCore::ThreadedScrollingTree::handleWheelEvent):
1532         (WebCore::derefScrollingCoordinator):
1533         (WebCore::ThreadedScrollingTree::invalidate):
1534         (WebCore::ThreadedScrollingTree::commitNewTreeState):
1535         (WebCore::ThreadedScrollingTree::updateMainFrameScrollPosition):
1536         (WebCore::ThreadedScrollingTree::handleWheelEventPhase):
1537         * page/scrolling/ThreadedScrollingTree.h: Added.
1538         (WebCore::ThreadedScrollingTree::isThreadedScrollingTree):
1539         * page/scrolling/mac/ScrollingCoordinatorMac.h:
1540         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
1541         (WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
1542         (WebCore::ScrollingCoordinatorMac::handleWheelEvent):
1543
1544 2014-01-01  Andreas Kling  <akling@apple.com>
1545
1546         FrameView: Store scroll corner renderer in a RenderPtr.
1547         <https://webkit.org/b/126364>
1548
1549         Make FrameView::m_scrollCorner a RenderPtr<RenderScrollbarPart> and
1550         remove two manual destroy() calls.
1551
1552         Reviewed by Antti Koivisto.
1553
1554 2014-01-01  Antti Koivisto  <antti@apple.com>
1555
1556         Remove elementChildren/elementDescendants shorthands
1557         https://bugs.webkit.org/show_bug.cgi?id=126363
1558
1559         Reviewed by Anders Carlsson.
1560
1561         Just use childrenOfType<Element>/descendantsOfType<Element> instead. They are not that much longer
1562         and consistency is valuable.
1563
1564         * accessibility/AccessibilityNodeObject.cpp:
1565         (WebCore::AccessibilityNodeObject::canvasHasFallbackContent):
1566         (WebCore::siblingWithAriaRole):
1567         * accessibility/AccessibilityTable.cpp:
1568         (WebCore::AccessibilityTable::isDataTable):
1569         * css/StyleInvalidationAnalysis.cpp:
1570         (WebCore::StyleInvalidationAnalysis::invalidateStyle):
1571         * dom/ChildNodeList.cpp:
1572         (WebCore::ChildNodeList::namedItem):
1573         * dom/Document.cpp:
1574         (WebCore::Document::buildAccessKeyMap):
1575         (WebCore::Document::childrenChanged):
1576         * dom/Element.cpp:
1577         (WebCore::Element::resetComputedStyle):
1578         * dom/ElementChildIterator.h:
1579         * dom/ElementDescendantIterator.h:
1580         * dom/SelectorQuery.cpp:
1581         (WebCore::elementsForLocalName):
1582         (WebCore::anyElement):
1583         (WebCore::SelectorDataList::executeSingleTagNameSelectorData):
1584         (WebCore::SelectorDataList::executeSingleClassNameSelectorData):
1585         (WebCore::SelectorDataList::executeSingleSelectorData):
1586         (WebCore::SelectorDataList::executeSingleMultiSelectorData):
1587         * editing/ApplyStyleCommand.cpp:
1588         (WebCore::ApplyStyleCommand::cleanupUnstyledAppleStyleSpans):
1589         * editing/ReplaceSelectionCommand.cpp:
1590         (WebCore::removeHeadContents):
1591         * editing/markup.cpp:
1592         (WebCore::completeURLs):
1593         * html/HTMLFieldSetElement.cpp:
1594         (WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
1595         * html/HTMLObjectElement.cpp:
1596         (WebCore::HTMLObjectElement::containsJavaApplet):
1597         * loader/PlaceholderDocument.cpp:
1598         (WebCore::PlaceholderDocument::createRenderTree):
1599         * rendering/RenderChildIterator.h:
1600         * svg/SVGSVGElement.cpp:
1601         (WebCore::SVGSVGElement::getElementById):
1602         * svg/SVGUseElement.cpp:
1603         (WebCore::subtreeContainsDisallowedElement):
1604         (WebCore::removeDisallowedElementsFromSubtree):
1605
1606 2014-01-01  Antti Koivisto  <antti@apple.com>
1607
1608         Do less synchronous render tree construction
1609         https://bugs.webkit.org/show_bug.cgi?id=126359
1610
1611         Reviewed by Anders Carlsson.
1612
1613         Remove some now-unnecessary attachRenderTree calls.
1614
1615         * html/HTMLDetailsElement.cpp:
1616         (WebCore::HTMLDetailsElement::parseAttribute):
1617         * html/HTMLInputElement.cpp:
1618         (WebCore::HTMLInputElement::parseAttribute):
1619         * html/HTMLObjectElement.cpp:
1620         (WebCore::HTMLObjectElement::renderFallbackContent):
1621         * html/HTMLPlugInElement.cpp:
1622         (WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot):
1623         * html/HTMLPlugInImageElement.cpp:
1624         (WebCore::HTMLPlugInImageElement::willRecalcStyle):
1625         (WebCore::HTMLPlugInImageElement::createShadowIFrameSubtree):
1626         (WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn):
1627         * html/HTMLViewSourceDocument.cpp:
1628         (WebCore::HTMLViewSourceDocument::createContainingTable):
1629         (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
1630         (WebCore::HTMLViewSourceDocument::addLine):
1631         (WebCore::HTMLViewSourceDocument::finishLine):
1632         (WebCore::HTMLViewSourceDocument::addBase):
1633         (WebCore::HTMLViewSourceDocument::addLink):
1634         * xml/XMLErrors.cpp:
1635         (WebCore::XMLErrors::insertErrorMessageBlock):
1636
1637 2014-01-01  Simon Fraser  <simon.fraser@apple.com>
1638
1639         Updating the scrolling tree should use references to state nodes
1640         https://bugs.webkit.org/show_bug.cgi?id=126360
1641
1642         Reviewed by Anders Carlsson.
1643
1644         Change functions related to ScrollingTreeNode updating to take
1645         const references to state nodes rather than pointers.
1646
1647         * page/scrolling/ScrollingStateNode.h:
1648         (WebCore::ScrollingStateNode::hasChangedProperty):
1649         * page/scrolling/ScrollingTree.cpp:
1650         (WebCore::ScrollingTree::commitNewTreeState):
1651         (WebCore::ScrollingTree::updateTreeFromStateNode): The node can be nil so
1652         this continues to take a pointer.
1653         (WebCore::ScrollingTree::removeDestroyedNodes):
1654         * page/scrolling/ScrollingTree.h:
1655         * page/scrolling/ScrollingTreeNode.h:
1656         (WebCore::ScrollingTreeNode::updateAfterChildren):
1657         * page/scrolling/ScrollingTreeScrollingNode.cpp:
1658         (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
1659         * page/scrolling/ScrollingTreeScrollingNode.h:
1660         * page/scrolling/mac/ScrollingTreeFixedNode.h:
1661         * page/scrolling/mac/ScrollingTreeFixedNode.mm:
1662         (WebCore::ScrollingTreeFixedNode::updateBeforeChildren):
1663         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
1664         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
1665         (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
1666         (WebCore::ScrollingTreeScrollingNodeMac::updateAfterChildren):
1667         * page/scrolling/mac/ScrollingTreeStickyNode.h:
1668         * page/scrolling/mac/ScrollingTreeStickyNode.mm:
1669         (WebCore::ScrollingTreeStickyNode::updateBeforeChildren):
1670
1671 2014-01-01  Simon Fraser  <simon.fraser@apple.com>
1672
1673         Add a typedef for PlatformLayerID on GraphicsLayer, and migrate RemoteLayerTreeTransaction to use it
1674         https://bugs.webkit.org/show_bug.cgi?id=126346
1675
1676         Reviewed by Tim Horton.
1677
1678         Remote scrolling tree code is soon going to use RemoteLayerTreeTransaction::LayerID,
1679         so it makes more sense to put this layerID type on GraphicsLayer as
1680         GraphicsLayer::PlatformLayerID.
1681         
1682         Also add some type cast macros for PlatformCALayer and subclasses, and use them
1683         where appropriate.
1684
1685         * platform/graphics/GraphicsLayer.h:
1686         * platform/graphics/ca/GraphicsLayerCA.cpp:
1687         (WebCore::GraphicsLayerCA::setName):
1688         * platform/graphics/ca/PlatformCALayer.h:
1689         (WebCore::PlatformCALayer::isPlatformCALayerMac):
1690         (WebCore::PlatformCALayer::isPlatformCALayerRemote):
1691         (WebCore::PlatformCALayer::PlatformCALayer):
1692         * platform/graphics/ca/mac/PlatformCALayerMac.h:
1693
1694 2013-12-31  Simon Fraser  <simon.fraser@apple.com>
1695
1696         ScrollingStateNodes should have a reference to the ScrollingStateTree
1697         https://bugs.webkit.org/show_bug.cgi?id=126348
1698
1699         Reviewed by Sam Weinig.
1700
1701         Make ScrollingStateNodes always belong to a ScrollingStateTree, and thus
1702         have a reference to the tree rather than a pointer. When cloning nodes,
1703         they are adopted by a new ScrollingStateTree, which adds them to its
1704         node map (which didn't happen before).
1705         
1706         In subclasses access the ScrollingStateTree through a member function.
1707
1708         * page/scrolling/ScrollingStateFixedNode.cpp:
1709         (WebCore::ScrollingStateFixedNode::create):
1710         (WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):
1711         (WebCore::ScrollingStateFixedNode::clone):
1712         (WebCore::ScrollingStateFixedNode::updateConstraints):
1713         * page/scrolling/ScrollingStateFixedNode.h:
1714         * page/scrolling/ScrollingStateNode.cpp:
1715         (WebCore::ScrollingStateNode::ScrollingStateNode):
1716         (WebCore::ScrollingStateNode::cloneAndReset):
1717         (WebCore::ScrollingStateNode::cloneAndResetChildren):
1718         (WebCore::ScrollingStateNode::willBeRemovedFromStateTree):
1719         * page/scrolling/ScrollingStateNode.h:
1720         (WebCore::ScrollingStateNode::scrollingStateTree):
1721         * page/scrolling/ScrollingStateScrollingNode.cpp:
1722         (WebCore::ScrollingStateScrollingNode::create):
1723         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
1724         (WebCore::ScrollingStateScrollingNode::clone):
1725         (WebCore::ScrollingStateScrollingNode::setViewportRect):
1726         (WebCore::ScrollingStateScrollingNode::setTotalContentsSize):
1727         (WebCore::ScrollingStateScrollingNode::setScrollOrigin):
1728         (WebCore::ScrollingStateScrollingNode::setScrollableAreaParameters):
1729         (WebCore::ScrollingStateScrollingNode::setFrameScaleFactor):
1730         (WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion):
1731         (WebCore::ScrollingStateScrollingNode::setWheelEventHandlerCount):
1732         (WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons):
1733         (WebCore::ScrollingStateScrollingNode::setScrollBehaviorForFixedElements):
1734         (WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition):
1735         (WebCore::ScrollingStateScrollingNode::setHeaderHeight):
1736         (WebCore::ScrollingStateScrollingNode::setFooterHeight):
1737         * page/scrolling/ScrollingStateScrollingNode.h:
1738         * page/scrolling/ScrollingStateStickyNode.cpp:
1739         (WebCore::ScrollingStateStickyNode::create):
1740         (WebCore::ScrollingStateStickyNode::ScrollingStateStickyNode):
1741         (WebCore::ScrollingStateStickyNode::clone):
1742         (WebCore::ScrollingStateStickyNode::updateConstraints):
1743         * page/scrolling/ScrollingStateStickyNode.h:
1744         * page/scrolling/ScrollingStateTree.cpp:
1745         (WebCore::ScrollingStateTree::attachNode):
1746         (WebCore::ScrollingStateTree::commit):
1747         (WebCore::ScrollingStateTree::addNode):
1748         * page/scrolling/ScrollingStateTree.h:
1749         * page/scrolling/mac/ScrollingStateNodeMac.mm:
1750         (WebCore::ScrollingStateNode::setScrollLayer):
1751         * page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
1752         (WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
1753         (WebCore::ScrollingStateScrollingNode::setHeaderLayer):
1754         (WebCore::ScrollingStateScrollingNode::setFooterLayer):
1755         (WebCore::ScrollingStateScrollingNode::setScrollbarPaintersFromScrollbars):
1756
1757 2013-12-31  Simon Fraser  <simon.fraser@apple.com>
1758
1759         Give ScrollingStateNodes a nodeType()
1760         https://bugs.webkit.org/show_bug.cgi?id=126347
1761
1762         Reviewed by Tim Horton.
1763
1764         When we start serializing ScrollingStateNodes to send to the UI process,
1765         it's more convenient if they have a nodeType member rather than virtual functions,
1766         so give them one, and fix the casting macros to use it. This allows us to use
1767         a switch() on node creation, so the compiler will tell us if we forgot to create
1768         a node type.
1769
1770         * page/scrolling/ScrollingStateFixedNode.cpp:
1771         (WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):
1772         * page/scrolling/ScrollingStateFixedNode.h:
1773         * page/scrolling/ScrollingStateNode.cpp:
1774         (WebCore::ScrollingStateNode::ScrollingStateNode):
1775         * page/scrolling/ScrollingStateNode.h: const ScrollingNodeType field
1776         (can't be modified after construction), and move the m_scrollingStateTree
1777         member after it (the awkward protected:/private: will be cleaned up in a later patch).
1778         (WebCore::ScrollingStateNode::nodeType):
1779         * page/scrolling/ScrollingStateScrollingNode.cpp:
1780         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
1781         * page/scrolling/ScrollingStateScrollingNode.h:
1782         * page/scrolling/ScrollingStateStickyNode.cpp:
1783         (WebCore::ScrollingStateStickyNode::ScrollingStateStickyNode):
1784         * page/scrolling/ScrollingStateStickyNode.h:
1785         * page/scrolling/ScrollingTree.cpp:
1786         (WebCore::ScrollingTree::updateTreeFromStateNode):
1787
1788 2013-12-31  Andreas Kling  <akling@apple.com>
1789
1790         Out-of-line RenderStyle substructure copying helpers.
1791         <https://webkit.org/b/126340>
1792
1793         This shrinks the .access() calls by moving memory allocation logic
1794         out-of-line, though I'm really doing this to make Instruments.app
1795         allocations output more readable.
1796
1797         Writes to e.g 'font' or 'color' will now be grouped under a single
1798         StyleInheritedData::copy() call instead of being spread out over
1799         setFontDescription(), setLineHeight(), setColor(), etc.
1800
1801         Reviewed by Anders Carlsson.
1802
1803 2013-12-31  Andreas Kling  <akling@apple.com>
1804
1805         RenderListItem should store its marker in a RenderPtr.
1806         <https://webkit.org/b/126298>
1807
1808         Make RenderListItem::m_marker a RenderPtr<RenderListMarker> and
1809         remove two manual destroy() calls. Tweaked code to reduce nesting.
1810
1811         Reviewed by Anders Carlsson.
1812
1813 2013-12-31  Andreas Kling  <akling@apple.com>
1814
1815         Element's renderer factory should return RenderPtrs.
1816         <https://webkit.org/b/126318>
1817
1818         Rename Element::createRenderer() to createElementRenderer() and have
1819         it return RenderPtr<RenderElement>. Propagate signature until it
1820         builds again.
1821
1822         We leakPtr() the renderer at two call sites when handing things over
1823         to raw pointer API. This'll get tidied up in subsequent patches.
1824
1825         Reviewed by Sam Weinig.
1826
1827 2013-12-31  Carlos Garcia Campos  <cgarcia@igalia.com>
1828
1829         [SOUP] Return early in ResourceHandle::receivedCancellation if the load has already cancelled
1830         https://bugs.webkit.org/show_bug.cgi?id=126287
1831
1832         Reviewed by Martin Robinson.
1833
1834         This situation can happen when using the network process, because
1835         the ReceivedCancellation message can be received when the resource
1836         loader has already been removed, but the authentication challenge
1837         still has a reference to the ResourceHandleClient.
1838
1839         * platform/network/soup/ResourceHandleSoup.cpp:
1840         (WebCore::ResourceHandle::receivedCancellation):
1841
1842 2013-12-31  Carlos Garcia Campos  <cgarcia@igalia.com>
1843
1844         [SOUP] The initiating page is lost after a redirection
1845         https://bugs.webkit.org/show_bug.cgi?id=126293
1846
1847         Reviewed by Martin Robinson.
1848
1849         The initiating page id is attached to the initial soup request
1850         object, but not to the one created after a redirection.
1851
1852         * platform/network/soup/ResourceHandleSoup.cpp:
1853         (WebCore::createSoupRequestAndMessageForHandle): Call
1854         setSoupRequestInitiatingPageIDFromNetworkingContext() here if the
1855         soup request is created successfully.
1856         (WebCore::ResourceHandle::start): Remove the call to
1857         setSoupRequestInitiatingPageIDFromNetworkingContext().
1858
1859 2013-12-31  Carlos Garcia Campos  <cgarcia@igalia.com>
1860
1861         [SOUP] Implement ResourceHandle::continueWillSendRequest()
1862         https://bugs.webkit.org/show_bug.cgi?id=126291
1863
1864         Reviewed by Martin Robinson.
1865
1866         * platform/network/soup/ResourceHandleSoup.cpp:
1867         (WebCore::continueAfterWillSendRequest): Helper function that
1868         continues with the load after willSendRequest has been called.
1869         (WebCore::doRedirect): Call continueAfterWillSendRequest() when
1870         client doesn't use async callbacks.
1871         (WebCore::ResourceHandle::continueWillSendRequest): Call
1872         continueAfterWillSendRequest().
1873
1874 2013-12-30  Carlos Garcia Campos  <cgarcia@igalia.com>
1875
1876         [SOUP] willSendRequest doesn't work after a redirect
1877         https://bugs.webkit.org/show_bug.cgi?id=126290
1878
1879         Reviewed by Martin Robinson.
1880
1881         The problem is that we are creating the new soup request for the
1882         redirect before calling ResourceHandleClient::willSendRequest() so
1883         that any change made to the request by the client is ignored.
1884
1885         * platform/network/soup/ResourceHandleSoup.cpp:
1886         (WebCore::doRedirect): Create the new soup request and soup
1887         message for the redirect after calling willSendRequest() on the
1888         client.
1889
1890 2013-12-30  Andreas Kling  <akling@apple.com>
1891
1892         InputType should return input renderers wrapped in RenderPtr.
1893         <https://webkit.org/b/126307>
1894
1895         Rename InputType::createRenderer() to createInputRenderer() and
1896         make it return RenderPtr<RenderElement>. Also made it non-const.
1897
1898         Reviewed by Anders Carlsson.
1899
1900 2013-12-30  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1901
1902         Cleanup static_cast<HTMLFormElement*> by using toHTMLFormElement()
1903         https://bugs.webkit.org/show_bug.cgi?id=126309
1904
1905         Reviewed by Andreas Kling.
1906
1907         To detect bad type casts, it would be good to use toHTMLFormElement() instead of
1908         using manual type cast. Additionally FORM_ASSOCIATED_ELEMENT_TYPE_CASTS is introduced newly
1909         to do it.
1910
1911         No new tests, no behavior changes.
1912
1913         * html/FormAssociatedElement.h:
1914         * html/HTMLFormControlElement.h:
1915         * html/HTMLFormElement.cpp:
1916         (WebCore::HTMLFormElement::submitImplicitly):
1917         (WebCore::HTMLFormElement::validateInteractively):
1918         (WebCore::HTMLFormElement::submit):
1919         (WebCore::HTMLFormElement::reset):
1920         (WebCore::HTMLFormElement::defaultButton):
1921         (WebCore::HTMLFormElement::checkInvalidControlsAndCollectUnhandled):
1922         (WebCore::HTMLFormElement::documentDidResumeFromPageCache):
1923         * loader/FormSubmission.cpp:
1924         (WebCore::FormSubmission::create):
1925
1926 2013-12-30  Anders Carlsson  <andersca@apple.com>
1927
1928         Replace yield() and pauseBriefly() with std::this_thread::yield()
1929         https://bugs.webkit.org/show_bug.cgi?id=126105
1930
1931         Reviewed by Sam Weinig.
1932
1933         * platform/sql/SQLiteDatabase.cpp:
1934         (WebCore::SQLiteDatabase::interrupt):
1935
1936 2013-12-30  Andreas Kling  <akling@apple.com>
1937
1938         Rename createRenderObject() to createRenderer().
1939
1940         Somewhat rubber-stamped by Antti Koivisto.
1941
1942 2013-12-30  Andreas Kling  <akling@apple.com>
1943
1944         Document should store its RenderView in a RenderPtr.
1945         <https://webkit.org/b/126299>
1946
1947         Make Document::m_renderView a RenderPtr<RenderView> and remove one
1948         manual destroy() call. Also removed the setRenderView() helper and
1949         inlined it at the two call sites.
1950
1951         Reviewed by Antti Koivisto.
1952
1953 2013-12-30  Martin Robinson  <mrobinson@igalia.com>
1954
1955         [CMake] [GTK] Add support for GObject introspection
1956         https://bugs.webkit.org/show_bug.cgi?id=126162
1957
1958         Reviewed by Daniel Bates.
1959
1960         * PlatformGTK.cmake: Build a list of WebKitDOM headers and expose it to the
1961         parent scope of the build.
1962
1963 2013-12-30  Andreas Kling  <akling@apple.com>
1964
1965         Text::createTextRenderer() should return a RenderPtr.
1966         <https://webkit.org/b/126292>
1967
1968         Make createTextRenderer() return a RenderPtr and remove one manual
1969         destroy() call. Also, since it should always return a valid object,
1970         I turned a null check into an assertion instead.
1971
1972         Reviewed by Antti Koivisto.
1973
1974 2013-12-30  Antti Koivisto  <antti@apple.com>
1975
1976         Remove attachChild
1977         https://bugs.webkit.org/show_bug.cgi?id=126288
1978
1979         Reviewed by Andreas Kling.
1980
1981         * dom/ContainerNode.cpp:
1982         (WebCore::destroyRenderTreeIfNeeded):
1983         
1984             Rename detachChild and move the tests here.
1985
1986         (WebCore::ContainerNode::takeAllChildrenFrom):
1987         
1988             No need to call attachRenderTree explicitly anymore.
1989
1990         (WebCore::ContainerNode::removeBetween):
1991
1992 2013-12-29  Andreas Kling  <akling@apple.com>
1993
1994         RenderLayer: Store corner and resizer renderers in RenderPtrs.
1995         <https://webkit.org/b/126274>
1996
1997         Turn RenderLayer::m_scrollCorner and m_resizer into RenderPtrs.
1998         Removed manual destroy() calls as appropriate. Also tweaked some
1999         code to reduce nesting.
2000
2001         Reviewed by Anders Carlsson.
2002
2003 2013-12-30  Antti Koivisto  <antti@apple.com>
2004
2005         XML document builder should create render tree asynchronously
2006         https://bugs.webkit.org/show_bug.cgi?id=126285
2007
2008         Reviewed by Andreas Kling.
2009         
2010         Stop creating renderers explicitly. 
2011         Fix SVG <use> element to not rely on parse time render tree construction.
2012
2013         * svg/SVGUseElement.cpp:
2014         (WebCore::SVGUseElement::svgAttributeChanged):
2015         
2016             Remove renderer check, we may not have created the render tree yet.
2017
2018         (WebCore::SVGUseElement::willAttachRenderers):
2019         
2020             Switch to willAttachRenderers from willRecalcStyle. The latter is only called as long as style
2021             recalc doesn't start creating new renderers.
2022
2023         (WebCore::SVGUseElement::invalidateShadowTree):
2024         
2025             Remove renderer check, we may not have created the render tree yet. 
2026             Invalidate with ReconstructRenderTree so willAttachRenderers will always get called.
2027
2028         * svg/SVGUseElement.h:
2029         * xml/parser/XMLDocumentParser.cpp:
2030         (WebCore::XMLDocumentParser::exitText):
2031         * xml/parser/XMLDocumentParserLibxml2.cpp:
2032         (WebCore::XMLDocumentParser::startElementNs):
2033         (WebCore::XMLDocumentParser::cdataBlock):
2034         
2035             Remove explicit call to attachRenderTree. The render tree will be created lazily.
2036
2037 2013-12-29  Joone Hur  <joone.hur@intel.com>
2038
2039         Reverted r156742. The same fix was reverted from Blink due to heap-use-after-free on ClusterFuzz.
2040         https://bugs.webkit.org/show_bug.cgi?id=126275
2041
2042         https://codereview.chromium.org/102993011
2043
2044         Reviewed by Darin Adler.
2045
2046         * rendering/RenderBlock.cpp:
2047         (WebCore::RenderBlock::updateFirstLetter):
2048
2049 2013-12-29  ChangSeok Oh  <changseok.oh@collabora.com>
2050
2051         Remove unused functions in GraphicsContext3D.cpp
2052         https://bugs.webkit.org/show_bug.cgi?id=126265
2053
2054         Reviewed by Andreas Kling.
2055
2056         platformGraphicsContext3D, platformTexture and platformLayer in GC3D.cpp
2057         seem not used by any ports.
2058
2059         No new tests, no functionality changed.
2060
2061         * platform/graphics/GraphicsContext3D.cpp:
2062
2063 2013-12-29  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2064
2065         Fix build error on 64bit debug build.
2066         https://bugs.webkit.org/show_bug.cgi?id=126248
2067
2068         r161076 used ‘%lli’(for long long int) for int64_t(aka long int).
2069         However, in a 64bit compile, int64_t is 'long int', not a 'long long int'.
2070         To support 32bit and 64bit, we use static_cast<long long>.
2071
2072         * Modules/indexeddb/IDBTransactionBackend.cpp:
2073         (WebCore::IDBTransactionBackend::commit):
2074
2075 2013-12-29  Antti Koivisto  <antti@apple.com>
2076
2077         Remove some accidental commented out code.
2078
2079         * testing/Internals.cpp:
2080         (WebCore::Internals::mallocStatistics):
2081
2082 2013-12-29  Antti Koivisto  <antti@apple.com>
2083
2084         Fix build.
2085
2086         * xml/parser/XMLDocumentParser.cpp:
2087
2088 2013-12-29  Antti Koivisto  <antti@apple.com>
2089
2090         Remove Node::attached()
2091         https://bugs.webkit.org/show_bug.cgi?id=126276
2092
2093         Reviewed by Sam Weinig.
2094
2095         Node::attached() is poorly defined. Replace it with renderer() and inRenderedDocument() tests as appropriate.
2096         
2097         Also remove some unnecessary explicit attachRenderTree/detachRenderTree calls from the tree builders.
2098
2099 2013-12-29  Andreas Kling  <akling@apple.com>
2100
2101         RenderLayer: Store reflection renderer in a RenderPtr.
2102         <https://webkit.org/b/126273>
2103
2104         Reviewed by Anders Carlsson.
2105
2106         * rendering/RenderLayer.h:
2107         * rendering/RenderLayer.cpp:
2108         (WebCore::RenderLayer::RenderLayer):
2109         (WebCore::RenderLayer::calculateClipRects):
2110
2111             Turn RenderLayer::m_reflection into a RenderPtr<RenderReplica>
2112             instead of a raw pointer.
2113
2114         * WebCore.xcodeproj/project.pbxproj:
2115
2116             Add RenderPtr.h to private headers.
2117
2118 2013-12-28  Andreas Kling  <akling@apple.com>
2119
2120         Add an owning smart pointer for RenderObjects and start using it.
2121         <https://webkit.org/b/126251>
2122
2123         This patch adds a RenderPtr pointer, essentially an OwnPtr for
2124         RenderObjects. The difference is that RenderPtr destroys the object
2125         by calling destroy() on it.
2126
2127         This is necessary to implement the willBeDestroyed() mechanism in
2128         RenderObject that notifies renderers just before they are about to
2129         be deleted, while they can still do tree traversal, etc.
2130
2131         I also added a make_unique-alike helper so you can write:
2132
2133             auto renderer = createRenderObject<RenderImage>(...);
2134
2135         Put it all to use by making ContentData::createRenderer() return
2136         RenderPtr<RenderObject> instead of raw RenderObject*.
2137
2138         Reviewed by Antti Koivisto.
2139
2140 2013-12-28  Benjamin Poulain  <benjamin@webkit.org>
2141
2142         Add a missing include path for GTK
2143         https://bugs.webkit.org/show_bug.cgi?id=126257
2144
2145         Reviewed by Philippe Normand.
2146
2147         * GNUmakefile.am:
2148
2149 2013-12-28  Carlos Garcia Campos  <cgarcia@igalia.com>
2150
2151         Unreviewed. Update GObject DOM symbols file after r160733.
2152
2153         * bindings/gobject/webkitdom.symbols:
2154
2155 2013-12-28  Carlos Garcia Campos  <cgarcia@igalia.com>
2156
2157         [GTK] Downloads are broken with the network process enabled
2158         https://bugs.webkit.org/show_bug.cgi?id=126131
2159
2160         Reviewed by Martin Robinson.
2161
2162         The problem is that the network process crashes when trying to
2163         convert the handle to a download, because at that point the
2164         download has finished and the handle is NULL. This happens because
2165         we are not implementing ResourceHandle::continueDidReceiveResponse().
2166
2167         * platform/network/soup/ResourceHandleSoup.cpp:
2168         (WebCore::nextMultipartResponsePartCallback): Call
2169         continueAfterDidReceiveResponse() when not using async callbacks.
2170         (WebCore::sendRequestCallback): Ditto.
2171         (WebCore::continueAfterDidReceiveResponse): Helper function that
2172         continues the load after didReceiveResponse.
2173         (WebCore::ResourceHandle::continueDidReceiveResponse): Call
2174         continueAfterDidReceiveResponse().
2175
2176 2013-12-27  Daniel Bates  <dabates@apple.com>
2177
2178         Another attempt to fix the Windows build after <http://trac.webkit.org/changeset/161106>
2179         (https://bugs.webkit.org/show_bug.cgi?id=126180)
2180
2181         * WebCore.vcxproj/WebCore.vcxproj.filters: Add files platform/audio/{AudioSession, AudioSessionListener}.h
2182         * WebCore.vcxproj/WebCoreCommon.props: Add directory WebCore/platform/audio to the list of
2183         include directories.
2184
2185 2013-12-27  Daniel Bates  <dabates@apple.com>
2186
2187         Attempt to fix the Windows build after <http://trac.webkit.org/changeset/161106>
2188         (https://bugs.webkit.org/show_bug.cgi?id=126180)
2189
2190         Add files platform/audio/AudioSession.{cpp, h} and platform/audio/AudioSessionListener.h
2191         to the Visual Studio project. Note, the contents of these files are guarded by USE(AUDIO_SESSION),
2192         which is only enabled on Mac and iOS at the time of writing.
2193
2194         I thought to try this approach to fix the build so as to avoid adding an extraneous
2195         USE(AUDIO_SESSION)-guard around the #include "AudioSession.h" in Settings.cpp since
2196         the contents of the file AudioSession.h is guarded by USE(AUDIO_SESSION).
2197
2198         * WebCore.vcxproj/WebCore.vcxproj:
2199
2200 2013-12-27  Daniel Bates  <dabates@apple.com>
2201
2202         [iOS] Upstream WebCore/page changes
2203         https://bugs.webkit.org/show_bug.cgi?id=126180
2204
2205         Reviewed by Darin Adler.
2206
2207         * WebCore.xcodeproj/project.pbxproj:
2208         * dom/EventNames.h:
2209         (WebCore::EventNames::isGestureEventType): Added.
2210         * page/AlternativeTextClient.h: Do not define WTF_USE_DICTATION_ALTERNATIVES when building for iOS.
2211         * page/Chrome.cpp:
2212         (WebCore::Chrome::Chrome):
2213         (WebCore::Chrome::dispatchViewportPropertiesDidChange): Added; guarded by PLATFORM(IOS).
2214         (WebCore::Chrome::setCursor): Make this an empty function when building for iOS.
2215         (WebCore::Chrome::setCursorHiddenUntilMouseMoves): Ditto.
2216         (WebCore::Chrome::didReceiveDocType): Added; iOS-specific.
2217         * page/Chrome.h:
2218         (WebCore::Chrome::setDispatchViewportDataDidChangeSuppressed): Added; guarded by PLATFORM(IOS).
2219         * page/ChromeClient.h:
2220         (WebCore::ChromeClient::didFlushCompositingLayers): Added; guarded by PLATFORM(IOS).
2221         (WebCore::ChromeClient::fetchCustomFixedPositionLayoutRect): Added; guarded by PLATFORM(IOS).
2222         (WebCore::ChromeClient::updateViewportConstrainedLayers): Added; guarded by PLATFORM(IOS).
2223         * page/DOMTimer.cpp:
2224         (WebCore::DOMTimer::install): Added iOS-specific code.
2225         (WebCore::DOMTimer::fired): Ditto.
2226         * page/DOMWindow.cpp:
2227         (WebCore::DOMWindow::DOMWindow): Ditto.
2228         (WebCore::DOMWindow::innerHeight): Ditto.
2229         (WebCore::DOMWindow::innerWidth): Ditto.
2230         (WebCore::DOMWindow::scrollX): Ditto.
2231         (WebCore::DOMWindow::scrollY): Ditto.
2232         (WebCore::DOMWindow::scrollBy): Ditto.
2233         (WebCore::DOMWindow::scrollTo): Ditto.
2234         (WebCore::DOMWindow::clearTimeout): Ditto.
2235         (WebCore::DOMWindow::addEventListener): Ditto.
2236         (WebCore::DOMWindow::incrementScrollEventListenersCount): Added; guarded by PLATFORM(IOS).
2237         (WebCore::DOMWindow::decrementScrollEventListenersCount): Added; guarded by PLATFORM(IOS).
2238         (WebCore::DOMWindow::resetAllGeolocationPermission): Added; Also added FIXME comment.
2239         (WebCore::DOMWindow::removeEventListener): Added iOS-specific code.
2240         (WebCore::DOMWindow::dispatchEvent): Modified to prevent dispatching duplicate pageshow and pagehide
2241         events per <http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#event-pageshow>.
2242         (WebCore::DOMWindow::removeAllEventListeners): Added iOS-specific code.
2243         * page/DOMWindow.h:
2244         * page/DOMWindow.idl: Added IOS_GESTURE_EVENTS-guarded attributes: ongesture{change, end, start}. Also
2245         added IOS_TOUCH_EVENTS-guarded attributes: {Touch, TouchList}Constructor.
2246         * page/EditorClient.h:
2247         * page/EventHandler.cpp:
2248         (WebCore::EventHandler::EventHandler): Added iOS-specific code.
2249         (WebCore::EventHandler::clear): Ditto.
2250         (WebCore::EventHandler::startPanScrolling): Make this an empty function when building for iOS.
2251         (WebCore::EventHandler::handleMousePressEvent): Modified to invalidate a click when the clicked node is
2252         null. Also, opt out of code for updating the scrollbars as UIKit manages scrollbars on iOS.
2253         (WebCore::EventHandler::handleMouseMoveEvent): Opt of code for updating the scrollbars and cursor when building on iOS.
2254         (WebCore::hitTestResultInFrame): Made this a file-local static function since it's only used in EventHandler.cpp.
2255         (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled): Added iOS-specific code.
2256         * page/EventHandler.h:
2257         * page/FocusController.h:
2258         * page/Frame.cpp:
2259         (WebCore::Frame::Frame): Added iOS-specific code.
2260         (WebCore::Frame::scrollOverflowLayer): Added; iOS-specific.
2261         (WebCore::Frame::overflowAutoScrollTimerFired): Added; iOS-specific.
2262         (WebCore::Frame::startOverflowAutoScroll): Added; iOS-specific.
2263         (WebCore::Frame::checkOverflowScroll): Added; iOS-specific.
2264         (WebCore::Frame::willDetachPage): Added iOS-specific code.
2265         (WebCore::Frame::createView): Ditto.
2266         (WebCore::Frame::setSelectionChangeCallbacksDisabled): Added; iOS-specific.
2267         (WebCore::Frame::selectionChangeCallbacksDisabled): Added; iOS-specific.
2268         * page/Frame.h:
2269         (WebCore::Frame::timersPaused): Added; guarded by PLATFORM(IOS).
2270         * page/FrameView.cpp:
2271         (WebCore::FrameView::FrameView): Added iOS-specific code.
2272         (WebCore::FrameView::clear): Ditto.
2273         (WebCore::FrameView::flushCompositingStateForThisFrame): Ditto.
2274         (WebCore::FrameView::graphicsLayerForPlatformWidget): Added.
2275         (WebCore::FrameView::scheduleLayerFlushAllowingThrottling): Added.
2276         (WebCore::FrameView::layout): Added iOS-specific code.
2277         (WebCore::countRenderedCharactersInRenderObjectWithThreshold): Added; helper function used by FrameView::renderedCharactersExceed().
2278         Also added FIXME comment.
2279         (WebCore::FrameView::renderedCharactersExceed): Added.
2280         (WebCore::FrameView::visibleContentsResized): Added iOS-specific code.
2281         (WebCore::FrameView::adjustTiledBackingCoverage): Ditto.
2282         (WebCore::FrameView::performPostLayoutTasks): Ditto.
2283         (WebCore::FrameView::sendResizeEventIfNeeded): Ditto.
2284         (WebCore::FrameView::paintContents): Added iOS-specific code. Also added FIXME comments.
2285         (WebCore::FrameView::setUseCustomFixedPositionLayoutRect): Added; iOS-specific.
2286         (WebCore::FrameView::setCustomFixedPositionLayoutRect): Added; iOS-specific.
2287         (WebCore::FrameView::updateFixedPositionLayoutRect): Added; iOS-specific.
2288         * page/FrameView.h:
2289         * page/Navigator.cpp:
2290         (WebCore::Navigator::standalone): Added; iOS-specific.
2291         * page/Navigator.h:
2292         * page/Navigator.idl: Added WTF_PLATFORM_IOS-guarded attribute: standalone. Also added FIXME comment.
2293         * page/NavigatorBase.cpp:
2294         (WebCore::NavigatorBase::platform): Added iOS-specific code.
2295         * page/Page.h:
2296         (WebCore::Page::hasCustomHTMLTokenizerTimeDelay): Added; guarded by PLATFORM(IOS). Also added FIXME comment
2297         to remove this method.
2298         (WebCore::Page::customHTMLTokenizerTimeDelay): Added; guarded by PLATFORM(IOS). Also added FIXME comment
2299         to remove this method.
2300         * page/PageGroup.cpp:
2301         (WebCore::PageGroup::removeVisitedLink): Added.
2302         * page/PageGroup.h:
2303         * page/Settings.cpp:
2304         (WebCore::Settings::Settings):
2305         (WebCore::Settings::setScriptEnabled): Added; guarded by PLATFORM(IOS).
2306         (WebCore::Settings::setStandalone): Added; guarded by PLATFORM(IOS).
2307         (WebCore::Settings::setAudioSessionCategoryOverride): Added; guarded by PLATFORM(IOS).
2308         (WebCore::Settings::audioSessionCategoryOverride): Added; guarded by PLATFORM(IOS).
2309         (WebCore::Settings::setNetworkDataUsageTrackingEnabled): Added; guarded by PLATFORM(IOS).
2310         (WebCore::Settings::networkDataUsageTrackingEnabled): Added; guarded by PLATFORM(IOS).
2311         (WebCore::sharedNetworkInterfaceNameGlobal): Added; guarded by PLATFORM(IOS).
2312         (WebCore::Settings::setNetworkInterfaceName): Added; guarded by PLATFORM(IOS).
2313         (WebCore::Settings::networkInterfaceName): Added; guarded by PLATFORM(IOS).
2314         * page/Settings.h:
2315         (WebCore::Settings::setMaxParseDuration): Added; guarded by PLATFORM(IOS). Also added FIXME comment.
2316         (WebCore::Settings::maxParseDuration): Added; guarded by PLATFORM(IOS). Also added FIXME comment.
2317         (WebCore::Settings::standalone): Added; guarded by PLATFORM(IOS).
2318         (WebCore::Settings::setTelephoneNumberParsingEnabled): Added; guarded by PLATFORM(IOS).
2319         (WebCore::Settings::telephoneNumberParsingEnabled): Added; guarded by PLATFORM(IOS).
2320         (WebCore::Settings::setMediaDataLoadsAutomatically): Added; guarded by PLATFORM(IOS).
2321         (WebCore::Settings::mediaDataLoadsAutomatically): Added; guarded by PLATFORM(IOS).
2322         (WebCore::Settings::setShouldTransformsAffectOverflow): Added; guarded by PLATFORM(IOS).
2323         (WebCore::Settings::shouldTransformsAffectOverflow): Added; guarded by PLATFORM(IOS).
2324         (WebCore::Settings::setShouldDispatchJavaScriptWindowOnErrorEvents): Added; guarded by PLATFORM(IOS).
2325         (WebCore::Settings::shouldDispatchJavaScriptWindowOnErrorEvents): Added; guarded by PLATFORM(IOS).
2326         (WebCore::Settings::setAlwaysUseBaselineOfPrimaryFont): Added; guarded by PLATFORM(IOS).
2327         (WebCore::Settings::alwaysUseBaselineOfPrimaryFont): Added; guarded by PLATFORM(IOS).
2328         (WebCore::Settings::setAlwaysUseAcceleratedOverflowScroll): Added; guarded by PLATFORM(IOS).
2329         (WebCore::Settings::alwaysUseAcceleratedOverflowScroll): Added; guarded by PLATFORM(IOS).
2330         * page/Settings.in: Added IOS_AIRPLAY-guarded setting: mediaPlaybackAllowsAirPlay.
2331         * page/animation/CSSPropertyAnimation.cpp:
2332         (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Added iOS-specific code and FIXME comment.
2333         * page/ios/EventHandlerIOS.mm: Added.
2334         * page/ios/FrameIOS.mm: Added.
2335         * page/mac/ChromeMac.mm:
2336         * page/mac/PageMac.cpp:
2337         (WebCore::Page::addSchedulePair): Opt out of code when building for iOS.
2338         (WebCore::Page::removeSchedulePair): Ditto.
2339         * page/mac/SettingsMac.mm:
2340         (WebCore::Settings::shouldEnableScreenFontSubstitutionByDefault): Added iOS-specific code.
2341         * page/mac/WebCoreFrameView.h:
2342
2343 2013-12-27  Gavin Barraclough  <barraclough@apple.com>
2344
2345         Merge PageVisibilityState & ViewState::IsVisible in WebKit2
2346         https://bugs.webkit.org/show_bug.cgi?id=126214
2347
2348         Reviewed by Alexey Proskuryakov.
2349
2350         WebKit2 redundantly tracks the visibility of the view through two mechanisms - the visibility
2351         state, and the view state. Remove visibility state from the WebKit2 layer. The visibility
2352         state also tracks the prerender state - so split this out and handle it separately (a change
2353         we should make in WebCore, too).
2354
2355         WebCore - changes the API tests exposed a bug, a view should only ever come out of the
2356         prerender state when it becomes visible - redundant notifications that the view is still
2357         hidden should be ignored.
2358
2359         * page/Page.cpp:
2360         (WebCore::Page::setVisibilityState):
2361             - ignore visibility state change to hidden, if the current state is prerender.
2362
2363 2013-12-27  Joseph Pecoraro  <pecoraro@apple.com>
2364
2365         Unreviewed Windows build fix for r160946.
2366
2367         Add another file to the Windows InspectorAllInOne.cpp.
2368
2369         * inspector/InspectorAllInOne.cpp:
2370
2371 2013-12-27  Commit Queue  <commit-queue@webkit.org>
2372
2373         Unreviewed, rolling out r161096.
2374         http://trac.webkit.org/changeset/161096
2375         https://bugs.webkit.org/show_bug.cgi?id=126256
2376
2377         Made lots of tests crash (Requested by ap on #webkit).
2378
2379         * dom/ContainerNode.cpp:
2380         (WebCore::ContainerNode::insertBefore):
2381         (WebCore::ContainerNode::replaceChild):
2382         (WebCore::willRemoveChildren):
2383         (WebCore::ContainerNode::appendChild):
2384         * dom/Document.cpp:
2385         (WebCore::Document::visibilityStateChanged):
2386         (WebCore::Document::moveNodeIteratorsToNewDocument):
2387         (WebCore::Document::updateRangesAfterChildrenChanged):
2388         (WebCore::Document::nodeChildrenWillBeRemoved):
2389         (WebCore::Document::nodeWillBeRemoved):
2390         (WebCore::Document::textInserted):
2391         (WebCore::Document::textRemoved):
2392         (WebCore::Document::textNodesMerged):
2393         (WebCore::Document::textNodeSplit):
2394         (WebCore::Document::documentWillSuspendForPageCache):
2395         (WebCore::Document::documentDidResumeFromPageCache):
2396         (WebCore::Document::mediaVolumeDidChange):
2397         (WebCore::Document::privateBrowsingStateDidChange):
2398         (WebCore::Document::captionPreferencesChanged):
2399         (WebCore::Document::validateAutoSizingNodes):
2400         (WebCore::Document::resetAutoSizingNodes):
2401         (WebCore::Document::webkitExitFullscreen):
2402         * dom/MutationObserver.cpp:
2403         (WebCore::MutationObserver::disconnect):
2404         (WebCore::MutationObserver::getObservedNodes):
2405         (WebCore::MutationObserver::deliver):
2406         * dom/MutationObserverInterestGroup.cpp:
2407         (WebCore::MutationObserverInterestGroup::isOldValueRequested):
2408         (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
2409         * dom/MutationObserverRegistration.cpp:
2410         (WebCore::MutationObserverRegistration::clearTransientRegistrations):
2411         (WebCore::MutationObserverRegistration::addRegistrationNodesToSet):
2412         * dom/Node.cpp:
2413         (WebCore::Node::dumpStatistics):
2414         (WebCore::Document::invalidateNodeListAndCollectionCaches):
2415         (WebCore::NodeListsNodeData::invalidateCaches):
2416         (WebCore::Node::didMoveToNewDocument):
2417         (WebCore::collectMatchingObserversForMutation):
2418         (WebCore::Node::notifyMutationObserversNodeWillDetach):
2419         * dom/NodeRareData.h:
2420         (WebCore::NodeListsNodeData::adoptDocument):
2421         * dom/ScriptExecutionContext.cpp:
2422         (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
2423         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
2424         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
2425         (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
2426         (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
2427         (WebCore::ScriptExecutionContext::closeMessagePorts):
2428         (WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
2429         (WebCore::ScriptExecutionContext::didChangeTimerAlignmentInterval):
2430         * dom/WebKitNamedFlow.cpp:
2431         (WebCore::WebKitNamedFlow::getRegionsByContent):
2432         (WebCore::WebKitNamedFlow::getRegions):
2433         (WebCore::WebKitNamedFlow::getContent):
2434
2435 2013-12-26  Sam Weinig  <sam@webkit.org>
2436
2437         Convert some of WebCore/dom over to range-for loops
2438         https://bugs.webkit.org/show_bug.cgi?id=126250
2439
2440         Reviewed by Andreas Kling.
2441
2442         * dom/ContainerNode.cpp:
2443         * dom/Document.cpp:
2444         * dom/MutationObserver.cpp:
2445         * dom/MutationObserverInterestGroup.cpp:
2446         * dom/MutationObserverRegistration.cpp:
2447         * dom/Node.cpp:
2448         * dom/NodeRareData.h:
2449         * dom/ScriptExecutionContext.cpp:
2450         * dom/WebKitNamedFlow.cpp:
2451
2452 2013-12-26  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
2453
2454         [Nix] Cleanup Source/WebCore/PlatformNix.cmake
2455         https://bugs.webkit.org/show_bug.cgi?id=126226
2456
2457         Reviewed by Csaba Osztrogonác.
2458
2459         No new tests needed.
2460
2461         * PlatformNix.cmake:
2462
2463 2013-12-26  Joseph Pecoraro  <pecoraro@apple.com>
2464
2465         Unreviewed attempt at Windows build fix.
2466
2467         I think Window's "AllInOne.cpp" is causing a using namespace JSC
2468         to cause naming conflicts between Inspector::TypeBuilder::Debugger::types
2469         and JSC::types. So removing the ambiguity.
2470
2471         * inspector/InjectedScript.cpp:
2472         (WebCore::InjectedScript::getProperties):
2473         (WebCore::InjectedScript::wrapCallFrames):
2474
2475 2013-12-22  Andreas Kling  <akling@apple.com>
2476
2477         Make Text::createTextRenderer() take a const RenderStyle&.
2478         <https://webkit.org/b/126136>
2479
2480         Nuke a FIXME about constifying a RenderStyle& local.
2481
2482         Reviewed by Anders Carlsson.
2483
2484 2013-12-22  Andreas Kling  <akling@apple.com>
2485
2486         Move more inlines from RenderObject to RenderElement.
2487         <https://webkit.org/b/126134>
2488
2489         Lift some inline functions that use style() from RenderObject over
2490         to RenderElement, making them branchless.
2491
2492         Reviewed by Anders Carlsson.
2493
2494 2013-12-26  ChangSeok Oh  <changseok.oh@collabora.com>
2495
2496         Unreviewed build fix after r159526.
2497         isBoxValue is used at out of ENABLE_CSS_SHAPES gaurd. It causes a compile failure.
2498         So I moved isBoxValue to out side of ENABLE_CSS_SHAPES.
2499
2500         * css/CSSParser.cpp:
2501
2502 2013-12-25  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2503
2504         Set m_pos as private in InlineIterator, and use getter and setter functions.
2505         https://bugs.webkit.org/show_bug.cgi?id=125614
2506
2507         Reviewed by Alexey Proskuryakov.
2508
2509         InlineIterator has been exported m_pos as public directly though it is member variable.
2510         This patch set it as private, and add getter/setter functions for it.
2511
2512         No new tests, no behavior changes.
2513
2514         * rendering/InlineIterator.h:
2515         (WebCore::InlineIterator::setOffset):
2516         (WebCore::operator==):
2517         (WebCore::operator!=):
2518         (WebCore::InlineBidiResolver::appendRun):
2519         * rendering/RenderBlockLineLayout.cpp:
2520         (WebCore::RenderBlockFlow::appendRunsForObject):
2521         (WebCore::constructBidiRunsForLine):
2522         (WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
2523         (WebCore::RenderBlockFlow::matchedEndLine):
2524         (WebCore::LineBreaker::nextSegmentBreak):
2525         * rendering/line/BreakingContextInlineHeaders.h:
2526         (WebCore::BreakingContext::handleBR):
2527         (WebCore::BreakingContext::handleFloat):
2528         (WebCore::iteratorIsBeyondEndOfRenderCombineText):
2529         (WebCore::ensureCharacterGetsLineBox):
2530         (WebCore::BreakingContext::handleText):
2531         (WebCore::checkMidpoints):
2532         (WebCore::BreakingContext::handleEndOfLine):
2533         * rendering/line/TrailingObjects.cpp:
2534         (WebCore::TrailingObjects::updateMidpointsForTrailingBoxes):
2535
2536 2013-12-25  Kim Byung Jun  <bj1987.kim@samsung.com>
2537
2538         [EFL] Delete file.edc and file_*.png.
2539         https://bugs.webkit.org/show_bug.cgi?id=125134
2540
2541         Reviewed by Gyuyoung Kim.
2542
2543         File_theme uses button form.
2544
2545         * platform/efl/DefaultTheme/CMakeLists.txt:
2546         * platform/efl/DefaultTheme/default.edc:
2547         * platform/efl/DefaultTheme/widget/file/file.edc: Removed.
2548         * platform/efl/DefaultTheme/widget/file/file_focus.png: Removed.
2549         * platform/efl/DefaultTheme/widget/file/file_hover.png: Removed.
2550         * platform/efl/DefaultTheme/widget/file/file_normal.png: Removed.
2551         * platform/efl/DefaultTheme/widget/file/file_press.png: Removed.
2552
2553 2013-12-25  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
2554
2555         [Nix] Adding createDragImageIconForCachedImageFilename method to DragImageNix
2556         https://bugs.webkit.org/show_bug.cgi?id=126230
2557
2558         Reviewed by Daniel Bates.
2559
2560         Also returning nullptr in other functions that were returning 0 as a pointer.
2561
2562         * platform/nix/DragImageNix.cpp:
2563         (WebCore::createDragImageFromImage):
2564         (WebCore::createDragImageIconForCachedImage):
2565         (WebCore::createDragImageIconForCachedImageFilename):
2566
2567 2013-12-25  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
2568
2569         [Nix] Fixing DragData::asFragment signature in DragDataNix.cpp
2570         https://bugs.webkit.org/show_bug.cgi?id=126229
2571
2572         Reviewed by Daniel Bates.
2573
2574         * platform/nix/DragDataNix.cpp:
2575         (WebCore::DragData::asFragment):
2576
2577 2013-12-25  Commit Queue  <commit-queue@webkit.org>
2578
2579         Unreviewed, rolling out r161033 and r161074.
2580         http://trac.webkit.org/changeset/161033
2581         http://trac.webkit.org/changeset/161074
2582         https://bugs.webkit.org/show_bug.cgi?id=126240
2583
2584         Oliver says that a rollout would be better (Requested by ap on
2585         #webkit).
2586
2587         * bindings/js/JSDOMWindowCustom.cpp:
2588         (WebCore::JSDOMWindow::put):
2589         * bindings/objc/WebScriptObject.mm:
2590         (-[WebScriptObject setValue:forKey:]):
2591         * bindings/scripts/CodeGeneratorJS.pm:
2592         (GenerateImplementation):
2593         * bindings/scripts/test/JS/JSTestInterface.cpp:
2594         (WebCore::JSTestInterface::putByIndex):
2595         * bridge/NP_jsobject.cpp:
2596         (_NPN_SetProperty):
2597
2598 2013-12-25  Brady Eidson  <beidson@apple.com>
2599
2600         DatabaseProcess: Implement version changing
2601         https://bugs.webkit.org/show_bug.cgi?id=126099
2602
2603         Reviewed by Sam Weinig.
2604
2605         No new tests (No change in WebCore behavior).
2606
2607         * Modules/indexeddb/IDBTransactionBackend.cpp:
2608         (WebCore::IDBTransactionBackend::commit): Update some logging.
2609
2610         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
2611         (WebCore::IDBDatabaseBackend::VersionChangeOperation::perform): Move some things that used to be in
2612           IDBServerConnectionLevelDB::changeDatabaseVersion to this cross-platform location.
2613         * Modules/indexeddb/IDBTransactionBackendOperations.h:
2614         (WebCore::IDBDatabaseBackend::VersionChangeOperation::transaction):
2615
2616         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
2617         (WebCore::IDBServerConnectionLevelDB::changeDatabaseVersion): Move the actual updating of the database backend
2618           metadata to the VersionChangeOperation.
2619
2620 2013-12-25  Martin Robinson  <mrobinson@igalia.com>
2621
2622         [GTK] [CMake] Clean up generated sources directories
2623         https://bugs.webkit.org/show_bug.cgi?id=126216
2624
2625         Reviewed by Gustavo Noronha Silva.
2626
2627         * PlatformGTK.cmake: Use the new directory variables.
2628
2629 2013-12-25  Dirk Schulze  <krit@webkit.org>
2630
2631         Support <box> values parsing on 'clip-path' property
2632         https://bugs.webkit.org/show_bug.cgi?id=126147
2633
2634         Reviewed by Ryosuke Niwa.
2635
2636         Support parsing of the background reference boxes, margin-box and bounding-box.
2637         A box will be a reference box and define the origin for a basic shape.
2638         If no basic shape is specified, the box defines the clipping path itself.
2639         The specification text follows the changes to CSS Shapes now.
2640
2641         https://dvcs.w3.org/hg/FXTF/raw-file/3f213145303e/css-masking-1/index.html#the-clip-path
2642
2643         Existing parsing test have been extended to test box values as well.
2644
2645         * css/CSSParser.cpp:
2646         (WebCore::CSSParser::parseValue):
2647         (WebCore::CSSParser::parseClipPath):
2648         * css/CSSParser.h:
2649         * css/CSSValueKeywords.in:
2650         * css/DeprecatedStyleBuilder.cpp:
2651         (WebCore::ApplyPropertyClipPath::applyValue):
2652
2653 2013-12-25  David Kilzer  <ddkilzer@apple.com>
2654
2655         [iOS] Upstream WebCore/pdf changes
2656         http://webkit.org/b/126097
2657
2658         Reviewed by Sam Weinig.
2659
2660         * WebCore.xcodeproj/project.pbxproj: Added files to project.
2661         * pdf/ios/PDFDocument.cpp: Added.
2662         (WebCore::PDFDocumentParser::create):
2663         (WebCore::PDFDocumentParser::document):
2664         (WebCore::PDFDocumentParser::PDFDocumentParser):
2665         (WebCore::PDFDocument::createParser):
2666         * pdf/ios/PDFDocument.h: Added.
2667         (WebCore::PDFDocument::create):
2668         (WebCore::PDFDocument::PDFDocument):
2669
2670 2013-12-24  Commit Queue  <commit-queue@webkit.org>
2671
2672         Unreviewed, rolling out r160959.
2673         http://trac.webkit.org/changeset/160959
2674         https://bugs.webkit.org/show_bug.cgi?id=126222
2675
2676         Caused Windows build to fail (Requested by rfong on #webkit).
2677
2678         * platform/sql/SQLiteDatabase.cpp:
2679         (WebCore::SQLiteDatabase::interrupt):
2680
2681 2013-12-24  Ryosuke Niwa  <rniwa@webkit.org>
2682
2683         Unreviewed, rolling out r161051.
2684         http://trac.webkit.org/changeset/161051
2685         https://bugs.webkit.org/show_bug.cgi?id=45994
2686
2687         Caused two DFG tests to hit assertions due to a separate bug
2688
2689         * xml/XMLHttpRequest.cpp:
2690         (WebCore::XMLHttpRequest::status):
2691         (WebCore::XMLHttpRequest::statusText):
2692         * xml/XMLHttpRequest.h:
2693         * xml/XMLHttpRequest.idl:
2694
2695 2013-12-24  Mihnea Ovidenie  <mihnea@adobe.com>
2696
2697         [CSSRegions] Crash while repainting an invalid region
2698         https://bugs.webkit.org/show_bug.cgi?id=126152
2699
2700         Reviewed by Daniel Bates.
2701
2702         An invalid region, part of a dependency cycle, should not attempt to repaint content from
2703         its associated named flow, otherwise there may be the case of an infinite repaint cycle,
2704         resulting in a crash due to a stack overflow.
2705
2706         Test: fast/regions/repaint/invalid-region-repaint-crash.html
2707
2708         * rendering/RenderLayer.cpp:
2709         (WebCore::RenderLayer::repaintIncludingDescendants):
2710
2711 2013-12-23  Ryosuke Niwa  <rniwa@webkit.org>
2712
2713         XMLHttpRequest: status and statusText throw DOM Exception 11 when the state is UNSENT or OPENED.
2714         https://bugs.webkit.org/show_bug.cgi?id=45994
2715
2716         Reviewed by Alexey Proskuryakov.
2717
2718         Merged https://chromium.googlesource.com/chromium/blink/+/23c90460de16e04c5aba7ed942fba76cb79fdb9b.
2719
2720         Latest XHR spec says that XHR should return 0 and an empty string when it's in UNSENT or OPENED state
2721         or error flag is set: http://www.w3.org/TR/2012/WD-XMLHttpRequest-20121206/#the-status-attribute
2722
2723         * xml/XMLHttpRequest.cpp:
2724         (WebCore::XMLHttpRequest::status):
2725         (WebCore::XMLHttpRequest::statusText):
2726         * xml/XMLHttpRequest.h:
2727         * xml/XMLHttpRequest.idl:
2728
2729 2013-12-23  Ryosuke Niwa  <rniwa@webkit.org>
2730
2731         Crash in ReplaceSelectionCommand
2732         https://bugs.webkit.org/show_bug.cgi?id=126107
2733
2734         Reviewed by Benjamin Poulain.
2735
2736         Merge https://chromium.googlesource.com/chromium/blink/+/c1ebe5c1e808daf9db5e348a8d0ab32570b9f7a5
2737         except the test since it doesn't reproduce the crash in WebKit.
2738
2739         * editing/ReplaceSelectionCommand.cpp:
2740         (WebCore::ReplaceSelectionCommand::doApply):
2741
2742 2013-12-23  Benjamin Poulain  <benjamin@webkit.org>
2743
2744         Add the pseudo classes link and any-link to the Selector Code Generator
2745         https://bugs.webkit.org/show_bug.cgi?id=126196
2746
2747         Reviewed by Ryosuke Niwa.
2748
2749         * cssjit/SelectorCompiler.cpp:
2750         (WebCore::SelectorCompiler::addPseudoType):
2751         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
2752         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsLink):
2753         * dom/Node.h:
2754         (WebCore::Node::flagIsElement):
2755         (WebCore::Node::flagIsLink):
2756         Fix the type to match TrustedImm32.
2757
2758 2013-12-23  Benjamin Poulain  <benjamin@webkit.org>
2759
2760         Add the experimental CSS code generator files to the remaining build systems
2761         https://bugs.webkit.org/show_bug.cgi?id=126192
2762
2763         Reviewed by Sam Weinig.
2764
2765         * CMakeLists.txt:
2766         * GNUmakefile.list.am:
2767         * WebCore.vcxproj/WebCore.vcxproj:
2768         * WebCore.vcxproj/WebCore.vcxproj.filters:
2769
2770 2013-12-23  Benjamin Poulain  <benjamin@webkit.org>
2771
2772         Add the pseudo class :focus to the Selector Code Generator
2773         https://bugs.webkit.org/show_bug.cgi?id=126189
2774
2775         Reviewed by Ryosuke Niwa.
2776
2777         * cssjit/SelectorCompiler.cpp:
2778         (WebCore::SelectorCompiler::addPseudoType):
2779         (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
2780         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
2781         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFocused):
2782
2783 2013-12-23  Ryosuke Niwa  <rniwa@webkit.org>
2784
2785         Remove boolean argument from Element::setChildrenAffectBy* methods
2786         https://bugs.webkit.org/show_bug.cgi?id=126183
2787
2788         Reviewed by Daniel Bates.
2789
2790         Merge https://chromium.googlesource.com/chromium/blink/+/066ef2fa78336b2b65052cb17cb81b367fe7dbbf
2791
2792         These functions are never called with false.
2793
2794         * css/SelectorChecker.cpp:
2795         (WebCore::SelectorChecker::checkOne):
2796         * dom/Element.cpp:
2797         (WebCore::Element::setChildrenAffectedByActive):
2798         (WebCore::Element::setChildrenAffectedByDrag):
2799         * dom/Element.h:
2800         (WebCore::Element::setChildrenAffectedByHover):
2801
2802 2013-12-23  Tim Horton  <timothy_horton@apple.com>
2803
2804         Fix the iOS build after r161013 and r160672.
2805
2806         * WebCore.exp.in:
2807         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2808         (PlatformCALayerMac::updateCustomAppearance):
2809
2810 2013-12-23  Oliver Hunt  <oliver@apple.com>
2811
2812         Refactor PutPropertySlot to be aware of custom properties
2813         https://bugs.webkit.org/show_bug.cgi?id=126187
2814
2815         Reviewed by msaboff.
2816
2817         Update the bindings code generation and custom objects
2818         to the new function signatures
2819
2820         * bindings/js/JSDOMWindowCustom.cpp:
2821         (WebCore::JSDOMWindow::put):
2822         * bindings/objc/WebScriptObject.mm:
2823         (-[WebScriptObject setValue:forKey:]):
2824         * bindings/scripts/CodeGeneratorJS.pm:
2825         (GenerateImplementation):
2826         * bindings/scripts/test/JS/JSTestInterface.cpp:
2827         (WebCore::JSTestInterface::putByIndex):
2828         * bridge/NP_jsobject.cpp:
2829         (_NPN_SetProperty):
2830
2831 2013-12-23  Benjamin Poulain  <benjamin@webkit.org>
2832
2833         Add class matching to the Selector Code Generator
2834         https://bugs.webkit.org/show_bug.cgi?id=126176
2835
2836         Reviewed by Antti Koivisto.
2837
2838         Add selector matching based on classname to the Selector Compiler.
2839
2840         * cssjit/SelectorCompiler.cpp:
2841         (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
2842         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementDataMatching):
2843         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasClasses):
2844         * dom/ElementData.h:
2845         (WebCore::ElementData::classNamesMemoryOffset):
2846         * dom/SpaceSplitString.h:
2847         (WebCore::SpaceSplitStringData::sizeMemoryOffset):
2848         (WebCore::SpaceSplitStringData::tokensMemoryOffset):
2849
2850 2013-12-23  Daniel Bates  <dabates@apple.com>
2851
2852         [iOS] Upstream WebCore/storage changes
2853         https://bugs.webkit.org/show_bug.cgi?id=125913
2854
2855         Reviewed by David Kilzer.
2856
2857         * storage/StorageAreaSync.cpp:
2858         (WebCore::StorageAreaSync::openDatabase): Added iOS-specific code.
2859         (WebCore::StorageAreaSync::sync): Ditto.
2860         * storage/StorageTracker.cpp:
2861         (WebCore::StorageTracker::openTrackerDatabase): Ditto.
2862         (WebCore::StorageTracker::syncImportOriginIdentifiers): Ditto.
2863         (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase): Ditto.
2864         (WebCore::StorageTracker::syncSetOriginDetails): Ditto.
2865         (WebCore::StorageTracker::syncDeleteAllOrigins): Ditto.
2866         (WebCore::StorageTracker::syncDeleteOrigin): Ditto.
2867         (WebCore::StorageTracker::databasePathForOrigin): Ditto.
2868
2869 2013-12-23  Daniel Bates  <dabates@apple.com>
2870
2871         Fix the iOS build following <http://trac.webkit.org/changeset/160236>
2872         (https://bugs.webkit.org/show_bug.cgi?id=125239)
2873
2874         * rendering/RenderBlock.h:
2875         * rendering/RenderBox.cpp:
2876         (WebCore::RenderBox::containingBlockLogicalWidthForPositioned): Substitute view() for &view().
2877         * rendering/RenderLayer.cpp:
2878         (WebCore::RenderLayer::scrollTo): Fix indentation of closing brace.
2879         * rendering/RenderLayerCompositor.cpp: Include MainFrame.h.
2880         (WebCore::RenderLayerCompositor::contentsScaleMultiplierForNewTiles): Check that page->mainFrame().view()
2881         is non-null; also add explicit #else clause.
2882         (WebCore::RenderLayerCompositor::ensureRootLayer): Fix up main frame check.
2883         * rendering/RenderTheme.h:
2884         (WebCore::RenderTheme::paintFileUploadIconDecorations): Substitute rect for r.
2885         * rendering/RenderThemeIOS.mm:
2886         (WebCore::RenderThemeIOS::paintTextFieldDecorations): Use .get() to access underlying NeverDestroyed item.
2887         (WebCore::RenderThemeIOS::systemFont):
2888         * rendering/RenderView.cpp:
2889         (WebCore::fixedPositionOffset): Substitute frameView.scrollOffset() for frameView->scrollOffset().
2890
2891 2013-12-23  Ryosuke Niwa  <rniwa@webkit.org>
2892
2893         Minor optimization in FrameSelection::setNonDirectionalSelectionIfNeeded()
2894         https://bugs.webkit.org/show_bug.cgi?id=126108
2895
2896         Reviewed by Benjamin Poulain.
2897
2898         Merge https://chromium.googlesource.com/chromium/blink/+/237b987c324e2e389a9e0350293bfaf16a5e201d
2899
2900         * editing/FrameSelection.cpp:
2901         (WebCore::FrameSelection::setNonDirectionalSelectionIfNeeded):
2902
2903 2013-12-23  Ryosuke Niwa  <rniwa@webkit.org>
2904
2905         Use isDocumentFragment() instead of comparing nodeType() with Node::DOCUMENT_FRAGMENT_NODE
2906         https://bugs.webkit.org/show_bug.cgi?id=126178
2907
2908         Reviewed by Antti Koivisto.
2909
2910         Inspired by https://chromium.googlesource.com/chromium/blink/+/a622cb80af2bfb0c5d91123cbcfa4fa72a06554c
2911
2912         Use inline Node::isDocumentFragment() instead of virtual nodeType().
2913
2914         * dom/ContainerNode.cpp:
2915         (WebCore::collectChildrenAndRemoveFromOldParent):
2916         * dom/Document.cpp:
2917         (WebCore::Document::canReplaceChild):
2918
2919 2013-12-23  Gwang Yoon Hwang  <ryumiel@company100.net>
2920
2921         Clear ScratchBuffer::m_lastLayerSize when clearing the scratch buffer.
2922         https://bugs.webkit.org/show_bug.cgi?id=126150
2923
2924         Reviewed by Simon Fraser.
2925
2926         Since ScratchBuffer::clearScratchBuffer only clears m_lastRadius,
2927         ShadowBlur doesn't draw shadow into the re-created scratch buffer if it
2928         tries to draw shadow without blurRadius.
2929
2930         Clear m_lastLayerSize to empty is enought to ensure that there is no
2931         drawn contents in the scratch buffer.
2932
2933         No new tests due to the flaky nature of reproducing the issue.
2934
2935         * platform/graphics/ShadowBlur.cpp:
2936         (WebCore::ScratchBuffer::clearScratchBuffer):
2937
2938 2013-12-23  Benjamin Poulain  <benjamin@webkit.org>
2939
2940         Add id matching to the Selector Code Generator
2941         https://bugs.webkit.org/show_bug.cgi?id=126154
2942
2943         Reviewed by Antti Koivisto.
2944
2945         Compile matching for #id selectors. IDs are Atomic String so it is just a matter
2946         of comparing the pointers.
2947
2948         No attempt is made at optimizing for the double #id case because such problem
2949         do not really happen outside tests.
2950
2951         * cssjit/SelectorCompiler.cpp:
2952         (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
2953         (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
2954         (WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
2955         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
2956         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementDataMatching):
2957         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasId):
2958         * dom/Element.h:
2959         (WebCore::Element::elementDataMemoryOffset):
2960         * dom/ElementData.h:
2961         (WebCore::ElementData::idForStyleResolutionMemoryOffset):
2962
2963 2013-12-23  Oliver Hunt  <oliver@apple.com>
2964
2965         Update custom setter implementations to perform type checks
2966         https://bugs.webkit.org/show_bug.cgi?id=126171
2967
2968         Reviewed by Daniel Bates.
2969
2970         Update the bindings code generator for setters so that they perform a real
2971         type check.
2972
2973         * bindings/scripts/CodeGeneratorJS.pm:
2974         (GenerateAttributeEventListenerCall):
2975         (GenerateHeader):
2976         (GenerateImplementation):
2977         * bindings/scripts/test/JS/JSTestInterface.cpp:
2978         (WebCore::setJSTestInterfaceConstructorImplementsStaticAttr):
2979         (WebCore::setJSTestInterfaceImplementsStr2):
2980         (WebCore::setJSTestInterfaceImplementsStr3):
2981         (WebCore::setJSTestInterfaceImplementsNode):
2982         (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
2983         (WebCore::setJSTestInterfaceSupplementalStr2):
2984         (WebCore::setJSTestInterfaceSupplementalStr3):
2985         (WebCore::setJSTestInterfaceSupplementalNode):
2986         * bindings/scripts/test/JS/JSTestInterface.h:
2987         * bindings/scripts/test/JS/JSTestObj.cpp:
2988         (WebCore::setJSTestObjConstructorStaticStringAttr):
2989         (WebCore::setJSTestObjTestSubObjEnabledBySettingConstructor):
2990         (WebCore::setJSTestObjEnumAttr):
2991         (WebCore::setJSTestObjByteAttr):
2992         (WebCore::setJSTestObjOctetAttr):
2993         (WebCore::setJSTestObjShortAttr):
2994         (WebCore::setJSTestObjUnsignedShortAttr):
2995         (WebCore::setJSTestObjLongAttr):
2996         (WebCore::setJSTestObjLongLongAttr):
2997         (WebCore::setJSTestObjUnsignedLongLongAttr):
2998         (WebCore::setJSTestObjStringAttr):
2999         (WebCore::setJSTestObjTestObjAttr):
3000         (WebCore::setJSTestObjXMLObjAttr):
3001         (WebCore::setJSTestObjCreate):
3002         (WebCore::setJSTestObjReflectedStringAttr):
3003         (WebCore::setJSTestObjReflectedIntegralAttr):
3004         (WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
3005         (WebCore::setJSTestObjReflectedBooleanAttr):
3006         (WebCore::setJSTestObjReflectedURLAttr):
3007         (WebCore::setJSTestObjReflectedCustomIntegralAttr):
3008         (WebCore::setJSTestObjReflectedCustomBooleanAttr):
3009         (WebCore::setJSTestObjReflectedCustomURLAttr):
3010         (WebCore::setJSTestObjTypedArrayAttr):
3011         (WebCore::setJSTestObjAttrWithGetterException):
3012         (WebCore::setJSTestObjAttrWithSetterException):
3013         (WebCore::setJSTestObjStringAttrWithGetterException):
3014         (WebCore::setJSTestObjStringAttrWithSetterException):
3015         (WebCore::setJSTestObjCustomAttr):
3016         (WebCore::setJSTestObjWithScriptStateAttribute):
3017         (WebCore::setJSTestObjWithScriptExecutionContextAttribute):
3018         (WebCore::setJSTestObjWithScriptStateAttributeRaises):
3019         (WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
3020         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
3021         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
3022         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
3023         (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
3024         (WebCore::setJSTestObjConditionalAttr1):
3025         (WebCore::setJSTestObjConditionalAttr2):
3026         (WebCore::setJSTestObjConditionalAttr3):
3027         (WebCore::setJSTestObjConditionalAttr4Constructor):
3028         (WebCore::setJSTestObjConditionalAttr5Constructor):
3029         (WebCore::setJSTestObjConditionalAttr6Constructor):
3030         (WebCore::setJSTestObjAnyAttribute):
3031         (WebCore::setJSTestObjMutablePoint):
3032         (WebCore::setJSTestObjImmutablePoint):
3033         (WebCore::setJSTestObjStrawberry):
3034         (WebCore::setJSTestObjStrictFloat):
3035         (WebCore::setJSTestObjId):
3036         (WebCore::setJSTestObjReplaceableAttribute):
3037         (WebCore::setJSTestObjNullableLongSettableAttribute):
3038         (WebCore::setJSTestObjNullableStringValue):
3039         (WebCore::setJSTestObjAttributeWithReservedEnumType):
3040         * bindings/scripts/test/JS/JSTestObj.h:
3041         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
3042         (WebCore::setJSTestSerializedScriptValueInterfaceValue):
3043         (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
3044         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
3045         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
3046         (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
3047         (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
3048         (WebCore::setJSTestTypedefsAttrWithGetterException):
3049         (WebCore::setJSTestTypedefsAttrWithSetterException):
3050         (WebCore::setJSTestTypedefsStringAttrWithGetterException):
3051         (WebCore::setJSTestTypedefsStringAttrWithSetterException):
3052         * bindings/scripts/test/JS/JSTestTypedefs.h:
3053
3054 2013-12-23  Lucas Forschler  <lforschler@apple.com>
3055
3056         <rdar://problem/15682948> Update copyright strings
3057
3058         Reviewed by Dan Bernstein
3059
3060         * Info.plist:
3061
3062 2013-12-23  Commit Queue  <commit-queue@webkit.org>
3063
3064         Unreviewed, rolling out r160945.
3065         http://trac.webkit.org/changeset/160945
3066         https://bugs.webkit.org/show_bug.cgi?id=126164
3067
3068         Seems to have broken multiple canvas tests (Requested by ap on
3069         #webkit).
3070
3071         * WebCore.xcodeproj/project.pbxproj:
3072         * platform/graphics/cg/ImageBufferBackingStoreCache.cpp: Removed.
3073         * platform/graphics/cg/ImageBufferBackingStoreCache.h: Removed.
3074         * platform/graphics/cg/ImageBufferCG.cpp:
3075         (WebCore::createIOSurface):
3076         (WebCore::ImageBuffer::ImageBuffer):
3077         (WebCore::ImageBuffer::~ImageBuffer):
3078
3079 2013-12-23  Eric Carlson  <eric.carlson@apple.com>
3080
3081         AudioSessionManager should be MediaSessionManager
3082         https://bugs.webkit.org/show_bug.cgi?id=126087
3083
3084         Reviewed by Jer Noble.
3085
3086         No new tests, no change in functionality.
3087
3088         * WebCore.xcodeproj/project.pbxproj: Change file names.
3089
3090         * html/HTMLMediaElement.cpp:
3091         (WebCore::HTMLMediaElement::HTMLMediaElement): MediaSessionManagerToken::create() takes a client
3092             interface instead of the media type.
3093         * html/HTMLMediaElement.h:
3094
3095         * platform/audio/AudioSessionListener.h: Include <wtf/Noncopyable.h>.
3096         
3097         AudioSessionManager.* -> MediaSessionManager.*
3098         * platform/audio/AudioSessionManager.cpp: Removed.
3099         * platform/audio/AudioSessionManager.h: Removed.
3100         * platform/audio/MediaSessionManager.cpp: Copied from Source/WebCore/platform/audio/AudioSessionManager.cpp.
3101         (MediaSessionManagerToken::create):
3102         (MediaSessionManagerToken::MediaSessionManagerToken):
3103         (MediaSessionManagerToken::~MediaSessionManagerToken):
3104         (MediaSessionManager::sharedManager):
3105         (MediaSessionManager::MediaSessionManager):
3106         (MediaSessionManager::has):
3107         (MediaSessionManager::count):
3108         (MediaSessionManager::addToken):
3109         (MediaSessionManager::removeToken):
3110         (MediaSessionManager::updateSessionState):
3111         * platform/audio/MediaSessionManager.h: Copied from Source/WebCore/platform/audio/AudioSessionManager.h.
3112
3113         * platform/audio/mac/AudioDestinationMac.cpp:
3114         (WebCore::AudioDestinationMac::AudioDestinationMac): MediaSessionManagerToken::create() takes a
3115             client interface instead of the media type.
3116         * platform/audio/mac/AudioDestinationMac.h:
3117
3118         * platform/audio/mac/AudioSessionMac.cpp:
3119         * platform/audio/mac/AudioSessionManagerMac.cpp: Removed.
3120         * platform/audio/mac/MediaSessionManagerMac.cpp: Copied from Source/WebCore/platform/audio/mac/AudioSessionManagerMac.cpp.
3121         (MediaSessionManager::updateSessionState):
3122
3123 2013-12-23  Zan Dobersek  <zdobersek@igalia.com>
3124
3125         webkit gtk 2.2.3 stable tarball compilation error
3126         https://bugs.webkit.org/show_bug.cgi?id=125987
3127
3128         Reviewed by Gustavo Noronha Silva.
3129
3130         Only try including <gdk/gdkwayland.h> and using GDK_IS_WAYLAND_DISPLAY if the Wayland support has been
3131         enabled and when not compiling with GTK+ 2 (which occurs when building for libPlatformGtk2).
3132
3133         * platform/graphics/GLContext.cpp:
3134         (WebCore::GLContext::createContextForWindow):
3135
3136 2013-12-23  Piotr Grad  <p.grad@samsung.com>
3137
3138         [GStreamer] video/audio seeking is not unified.
3139         https://bugs.webkit.org/show_bug.cgi?id=125852
3140
3141         Reviewed by Philippe Normand.
3142
3143         This bug is fixing regression with seeking audio/video elements and unifies seeking
3144         in MediaPlayerPrivateGStreamer.
3145
3146         Test: media/video-seek-with-negative-playback.html
3147
3148         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
3149         (WebCore::MediaPlayerPrivateGStreamer::seek):
3150         (WebCore::MediaPlayerPrivateGStreamer::seekIncludingRate):
3151         (WebCore::MediaPlayerPrivateGStreamer::setRate):
3152         (WebCore::MediaPlayerPrivateGStreamer::updateStates):
3153         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
3154
3155 2013-12-23  ChangSeok Oh  <changseok.oh@collabora.com>
3156
3157         [GTK][WK2] WebGL is not working with GLES
3158         https://bugs.webkit.org/show_bug.cgi?id=126138
3159
3160         Reviewed by Martin Robinson.
3161
3162         m_texture has been unnecessarily regenerated. It's generated in GraphicsContext3D
3163         constructor for offscreen rendering. And m_compositorTexture is used by only Mac port.
3164         They create it in their GraphicsContext3D constructor so that we don't need to recreate it
3165         in GC3DOpenGLES::reshapeFBOs.
3166
3167         No new tests since no functionality changed.
3168
3169         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
3170         (WebCore::GraphicsContext3D::~GraphicsContext3D):
3171         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
3172         (WebCore::GraphicsContext3D::reshapeFBOs):
3173         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
3174         (WebCore::GraphicsContext3D::reshapeFBOs):
3175
3176 2013-12-22  Benjamin Poulain  <bpoulain@apple.com>
3177
3178         Create a skeleton for CSS Selector code generation
3179         https://bugs.webkit.org/show_bug.cgi?id=126044
3180
3181         Reviewed by Antti Koivisto and Gavin Barraclough.
3182
3183         Add CSSCompiler, which provides the basic infrastructure to compile
3184         CSS Selectors on x86_64.
3185
3186         Compilation happens in two phases.
3187         1) The various matching and relation of each CSSSelector is aggregated into units
3188            matching a single element: SelectorFragment.
3189            SelectorFragment also knows about the relations between different fragments,
3190            and contains all the information to generate the code for a particular element.
3191         2) The compiler then goes over the fragments, and generate code based on the information
3192            of each fragment.
3193
3194         It the current state, SelectorCompiler only compiles the tag matching selectors and
3195         any of the relation between selectors.
3196
3197         Depending on the relation and position of a fragment, failure on traversal or matching
3198         does not necessarily causes the complete selector. A failure can cause matching to
3199         resume from the parent or the sibling of a previously visisted node.
3200         The implementation of this is done through the BacktrackingAction. In case of failure,
3201         the next starting state is setup and the program counter jumps back to the appropriate
3202         starting point.
3203
3204         When backtracking, the method used to save the starting point depends on the type
3205         of backtracking.
3206         The child/parent relation (">") is very common so it uses an additional register to keep
3207         the next starting point (m_descendantBacktrackingStart).
3208         The indirect sibling relation ("~") is much less common and uses the stack to save
3209         the next starting point.
3210
3211         * WebCore.xcodeproj/project.pbxproj:
3212         * cssjit/SelectorCompiler.cpp: Added.
3213         (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
3214         (WebCore::SelectorCompiler::compileSelector):
3215         (WebCore::SelectorCompiler::fragmentRelationForSelectorRelation):
3216         (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
3217         (WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
3218         (WebCore::SelectorCompiler::updateChainStates):
3219         (WebCore::SelectorCompiler::isFirstAncestor):
3220         (WebCore::SelectorCompiler::isFirstAdjacent):
3221         (WebCore::SelectorCompiler::isAfterChildRelation):
3222         (WebCore::SelectorCompiler::solveBacktrackingAction):
3223         (WebCore::SelectorCompiler::requiresAdjacentTail):
3224         (WebCore::SelectorCompiler::requiresDescendantTail):
3225         (WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
3226         (WebCore::SelectorCompiler::testIsElementFlagOnNode):
3227         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToParentElement):
3228         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateParentElementTreeWalker):
3229         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAncestorTreeWalker):
3230         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToPreviousAdjacent):
3231         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
3232         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
3233         (WebCore::SelectorCompiler::SelectorCodeGenerator::markParentElementIfResolvingStyle):
3234         (WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures):
3235         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAdjacentBacktrackingTail):
3236         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDescendantBacktrackingTail):
3237         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateBacktrackingTailsIfNeeded):
3238         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
3239         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasTagName):
3240         * cssjit/SelectorCompiler.h: Added.
3241         (WebCore::SelectorCompilationStatus::SelectorCompilationStatus):
3242         (WebCore::SelectorCompilationStatus::operator Status):
3243         (WebCore::SelectorCompiler::simpleSelectorCheckerFunction):
3244         (WebCore::SelectorCompiler::selectorCheckerFunctionWithCheckingContext):
3245         * dom/Element.cpp:
3246         (WebCore::Element::setChildrenAffectedByDirectAdjacentRules):
3247         (WebCore::Element::setChildrenAffectedByForwardPositionalRules):
3248         * dom/Element.h:
3249         (WebCore::Element::tagQNameMemoryOffset):
3250         (WebCore::Element::setChildrenAffectedByForwardPositionalRules):
3251         * dom/Node.h:
3252         (WebCore::Node::parentNodeMemoryOffset):
3253         (WebCore::Node::previousSiblingMemoryOffset):
3254         (WebCore::Node::nodeFlagsMemoryOffset):
3255         (WebCore::Node::flagIsElement):
3256         * dom/QualifiedName.h:
3257         (WebCore::QualifiedName::QualifiedNameImpl::localNameMemoryOffset):
3258         (WebCore::QualifiedName::QualifiedNameImpl::namespaceMemoryOffset):
3259         (WebCore::QualifiedName::implMemoryOffset):
3260
3261 2013-12-22  Mihnea Ovidenie  <mihnea@adobe.com>
3262
3263         [CSSRegions] Crash when trying to select content from invalid region
3264         https://bugs.webkit.org/show_bug.cgi?id=126113
3265
3266         Reviewed by Antti Koivisto.
3267
3268         After fix for https://bugs.webkit.org/show_bug.cgi?id=120769, positionForPoint for a region attempts to use the associated named flow to perform its task.
3269         However, this should happen only when the region is valid. If the region is invalid, part of a dependency cycle, positionForPoint should behave as usual
3270         for a block instead of a region, otherwise it may run into an infinite loop due to cyclic dependencies and a crash will occur.
3271
3272         This patch ensures that positionForPoint region specifie behaviour is followed only if the region is valid - not part of a dependency cycle.
3273
3274         Test: fast/regions/selection/invalid-region-selection-crash.html
3275
3276         * rendering/RenderRegion.cpp:
3277         (WebCore::RenderRegion::positionForPoint):
3278
3279 2013-12-21  Dirk Schulze  <krit@webkit.org>
3280
3281         Start refactoring Filter code to reuse CachedSVGDocument for clipPath
3282         https://bugs.webkit.org/show_bug.cgi?id=126069
3283
3284         Reviewed by Andreas Kling.
3285
3286         Smaller refactoring of the CSS filter style resolver code. Previously the code
3287         requested the FilterOperations list from RenderStyle and compared the content
3288         in this list with an internal map. Then the resource loading was triggered.
3289         With the refactoring we do not request the list from RenderStyle anymore but
3290         rely on the hash map data entirely.
3291
3292         * css/StyleResolver.cpp:
3293         (WebCore::StyleResolver::loadPendingSVGDocuments):
3294         * platform/graphics/filters/FilterOperation.h:
3295
3296 2013-12-20  Andy Estes  <aestes@apple.com>
3297
3298         [Mac] Soft-link WebContentAnalysis.framework
3299         https://bugs.webkit.org/show_bug.cgi?id=126102
3300
3301         Reviewed by Dan Bernstein.
3302
3303         * Configurations/WebCore.xcconfig: There's no need to modify LDFLAGS
3304         now that we don't hard link against WebContentAnalysis.framework.
3305         * WebCore.xcodeproj/project.pbxproj: Removed
3306         WebContentAnalysis.framework from the 'Link Binary with Libraries'
3307         build phase.
3308         * platform/mac/ContentFilterMac.mm: Soft-linked
3309         WebContentAnalysis.framework and the WebFilterEvaluator @class.
3310         (WebCore::ContentFilter::ContentFilter): Called getWebFilterEvaluatorClass().
3311         (WebCore::ContentFilter::isEnabled): Ditto.
3312         * platform/mac/SoftLinking.h: Added an implementation of
3313         SOFT_LINK_PRIVATE_FRAMEWORK().
3314
3315 2013-12-21  Antti Koivisto  <antti@apple.com>
3316
3317         Unreviewed, rolling out r160916.
3318         http://trac.webkit.org/changeset/160916
3319         https://bugs.webkit.org/show_bug.cgi?id=126073
3320
3321         Roll out a temporary fix. The underlying issue was fixed.
3322
3323         * accessibility/AccessibilityRenderObject.cpp:
3324         (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
3325         (WebCore::AccessibilityRenderObject::~AccessibilityRenderObject):
3326         (WebCore::AccessibilityRenderObject::detach):
3327         (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
3328         * accessibility/AccessibilityRenderObject.h:
3329
3330 2013-12-21  Antti Koivisto  <antti@apple.com>
3331
3332         Figure out if node is focusable without requiring renderer
3333         https://bugs.webkit.org/show_bug.cgi?id=126118
3334
3335         Reviewed by Andreas Kling.
3336
3337         * dom/Element.cpp:
3338         (WebCore::Element::computedStyle):
3339         
3340             Use inDocument() test instead of the attached() test. We can compute style for anything that
3341             is in document.
3342
3343         * dom/Node.cpp:
3344         (WebCore::Node::isContentEditable):
3345         (WebCore::Node::isContentRichlyEditable):
3346         (WebCore::Node::hasEditableStyle):
3347         
3348             Use computedStyle instead of getting the style from renderer. Computed style gets constructed
3349             on demand if renderer does not exist. If it does then the existing style is used.
3350
3351         (WebCore::Node::isEditableToAccessibility):
3352         (WebCore::Node::canStartSelection):
3353         (WebCore::Node::isRootEditableElement):
3354         (WebCore::Node::rootEditableElement):
3355         * dom/Node.h:
3356         (WebCore::Node::hasEditableStyle):
3357         (WebCore::Node::hasRichlyEditableStyle):
3358         
3359             Renamed from rendererIsEditable since these no longer require renderer.
3360
3361         (WebCore::HTMLElement::supportsFocus):
3362         
3363             Stop calling updateStyleIfNeeded() and forcing render tree construction.
3364
3365 2013-12-21  Carlos Garcia Campos  <cgarcia@igalia.com>
3366
3367         [SOUP] ResourceHandleSoup should use async client callbacks when client uses async callbacks
3368         https://bugs.webkit.org/show_bug.cgi?id=126006
3369
3370         Reviewed by Martin Robinson.
3371
3372         This fixes WebKit2 loader client unit tests when using the network
3373         process.
3374
3375         * platform/network/ResourceHandle.cpp:
3376         * platform/network/soup/ResourceHandleSoup.cpp:
3377         (WebCore::doRedirect): Call willSendRequestAsync on the client
3378         when usesAsyncCallbacks returns true.
3379         (WebCore::nextMultipartResponsePartCallback): Call
3380         didReceiveResponseAsync on the client when usesAsyncCallbacks
3381         returns true.
3382         (WebCore::sendRequestCallback): Ditto.
3383         (WebCore::ResourceHandle::continueWillSendRequest): Empty
3384         implementation for now because the default one asserts.
3385         (WebCore::ResourceHandle::continueDidReceiveResponse): Ditto.
3386         (WebCore::ResourceHandle::continueShouldUseCredentialStorage): Ditto.
3387
3388 2013-12-20  Anders Carlsson  <andersca@apple.com>
3389
3390         Replace yield() and pauseBriefly() with std::this_thread::yield()
3391         https://bugs.webkit.org/show_bug.cgi?id=126105
3392
3393         Reviewed by Sam Weinig.
3394
3395         * platform/sql/SQLiteDatabase.cpp:
3396         (WebCore::SQLiteDatabase::interrupt):
3397
3398 2013-12-20  Ryosuke Niwa  <rniwa@webkit.org>
3399
3400         Assert that RootInlineBox::setLineBreakInfo should is never called on a RenderInline without line boxes
3401         https://bugs.webkit.org/show_bug.cgi?id=126101
3402
3403         Reviewed by Simon Fraser.
3404
3405         Merge assertions added in https://chromium.googlesource.com/chromium/blink/+/716ac74fd475b581d69c0aa8ec2d806201c3a420
3406
3407         The code change was not merged since we never hit the added assertion on the attached test case in WebKit.
3408
3409         * rendering/RootInlineBox.cpp:
3410         (WebCore::RootInlineBox::setLineBreakInfo):
3411
3412 2013-12-20  Joseph Pecoraro  <pecoraro@apple.com>
3413
3414         Web Inspector: Remove the references to Node in InjectedScript
3415         https://bugs.webkit.org/show_bug.cgi?id=126091
3416
3417         Reviewed by Timothy Hatcher.
3418
3419         Remove the last DOM references from InjectedScript so that
3420         InjectedScript can move down into JavaScriptCore. The only
3421         remaining references were to Nodes, which are all just thin
3422         wrappers around existing functions. Move Node / JSNode (JSValue)
3423         conversion into InspectorDOMAgent, where it was used.
3424
3425         No new tests, no observable change in functionality.
3426
3427         * bindings/js/JSInjectedScriptHostCustom.cpp:
3428         * inspector/InjectedScript.cpp:
3429         (WebCore::InjectedScript::inspectObject):
3430         (WebCore::InjectedScript::releaseObject):
3431         * inspector/InjectedScript.h:
3432         * inspector/InjectedScriptHost.h:
3433         * inspector/InjectedScriptSource.js:
3434         * inspector/InspectorDOMAgent.cpp:
3435         (WebCore::InspectorDOMAgent::focusNode):
3436         (WebCore::InspectorDOMAgent::highlightNode):
3437         (WebCore::InspectorDOMAgent::requestNode):
3438         (WebCore::InspectorDOMAgent::nodeForObjectId):
3439         (WebCore::InspectorDOMAgent::resolveNode):
3440         (WebCore::InspectorDOMAgent::scriptValueAsNode):
3441         (WebCore::InspectorDOMAgent::nodeAsScriptValue):
3442         * inspector/InspectorDOMAgent.h:
3443         * inspector/PageConsoleAgent.cpp:
3444
3445 2013-12-20  Myles C. Maxfield  <mmaxfield@apple.com>
3446
3447         Faster implementation of text-decoration-skip: ink
3448         https://bugs.webkit.org/show_bug.cgi?id=125718
3449
3450         Reviewed by Simon Fraser.
3451
3452         This new implementation of text-decoration-skip: ink extracts
3453         each glyph into a path, then decomposes each path into a series
3454         of contours. It then intersects each contour with the top and
3455         bottom of the underline (by approximating the contour with a line).
3456         It then draws underlines in between these intersection regions.
3457
3458         Tests for text-decoration-skip: ink already exist in
3459         fast/css3-text/css3-text-decoration/text-decoration-skip
3460
3461         * platform/graphics/Font.h: Signature of new function
3462         * platform/graphics/mac/FontMac.mm:
3463         (WebCore::GlyphIterationState::GlyphIterationState): Persistent
3464         between calls to findPathIntersections
3465         (WebCore::findIntersectionPoint): Calculates an intersection point
3466         between