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