12014-07-22  Dana Burkart  <dburkart@apple.com>
2
3        Merge r152704.
4
5    2013-07-15  Kangil Han  <kangil.han@samsung.com>
6
7            Introduce toHTMLIFrameElement
8            https://bugs.webkit.org/show_bug.cgi?id=118672
9
10            Reviewed by Ryosuke Niwa.
11
12            To avoid direct use of static_cast, this patch introduces toHTMLIFrameElement for code cleanup.
13
14            * bindings/js/JSHTMLDocumentCustom.cpp:
15            (WebCore::JSHTMLDocument::nameGetter):
16            * css/StyleResolver.cpp:
17            (WebCore::StyleResolver::adjustRenderStyle):
18            * dom/Document.cpp:
19            (WebCore::Document::seamlessParentIFrame):
20            * html/HTMLIFrameElement.h:
21            (WebCore::toHTMLIFrameElement):
22            * rendering/RenderEmbeddedObject.cpp:
23            (WebCore::RenderEmbeddedObject::viewCleared):
24            * rendering/RenderIFrame.cpp:
25            (WebCore::RenderIFrame::isSeamless):
26            (WebCore::RenderIFrame::flattenFrame):
27
282014-05-28  Jon Honeycutt  <jhoneycutt@apple.com>
29
30        Roll r168668 back in.
31
32        <https://bugs.webkit.org/show_bug.cgi?id=132621>
33
34        Reviewed by Brent Fulgham.
35
36        Tests: fast/events/beforeload-assertion.html
37               fast/events/beforeload-iframe-crash.html
38               fast/events/beforeload-input-time-crash.html
39
40        * WebCore.exp.in:
41        * dom/Document.cpp:
42        (WebCore::Document::updateLayoutIgnorePendingStylesheets):
43        * dom/Document.h:
44        * html/HTMLAppletElement.cpp:
45        (WebCore::HTMLAppletElement::renderWidgetForJSBindings):
46        * html/HTMLEmbedElement.cpp:
47        (WebCore::HTMLEmbedElement::renderWidgetForJSBindings):
48        * html/HTMLObjectElement.cpp:
49        (WebCore::HTMLObjectElement::renderWidgetForJSBindings):
50        * page/FrameView.cpp:
51        (WebCore::FrameView::FrameView):
52        (WebCore::FrameView::reset):
53        (WebCore::FrameView::updateEmbeddedObjectsTimerFired):
54        (WebCore::FrameView::flushAnyPendingPostLayoutTasks):
55        (WebCore::FrameView::performPostLayoutTasks):
56        * page/FrameView.h:
57        * testing/Internals.cpp:
58        (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks):
59        * testing/Internals.h:
60        * testing/Internals.idl:
61
622014-05-29  Myles C. Maxfield  <mmaxfield@apple.com>
63
64        Support -apple-system-font on OS X
65        https://bugs.webkit.org/show_bug.cgi?id=133382
66
67        Reviewed by Simon Fraser.
68
69        Guard on both family names: "-apple-system-font" and "-webkit-system-font"
70
71        Test: platform/mac/fast/text/systemFont.html
72
73        * platform/mac/WebFontCache.mm:
74        (+[WebFontCache internalFontWithFamily:traits:weight:size:]):
75
762014-05-29  Alexey Proskuryakov  <ap@apple.com>
77
78        Loading <object> from WebArchive crashes
79        https://bugs.webkit.org/show_bug.cgi?id=133386
80        <rdar://problem/13345509>
81
82        Reviewed by Brady Eidson.
83
84        Test: webarchive/loading/object.html
85
86        This (a) fixes the crash, and (b) avoids the crash.
87
88        * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::continueAfterContentPolicy):
89        Some types of substitute data - such as WebArchive - don't contain HTTP result codes,
90        so let's not drop to <object> fallback content when status is 0.
91        And if the load somehow failed anyway, don't crash by trying to deliver substitute data
92        to a finished loader.
93
942014-05-29  Alex Christensen  <achristensen@webkit.org>
95
96        [iOS WebGL] Fix depth buffer clearing issue.
97        https://bugs.webkit.org/show_bug.cgi?id=133388
98
99        Reviewed by Dean Jackson.
100
101        No new tests, but this fixes webgl/1.0.1/conformance/canvas/buffer-preserve-test.html.
102
103        * platform/graphics/mac/WebGLLayer.mm:
104        (-[WebGLLayer display]):
105        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
106        (WebCore::GraphicsContext3D::prepareTexture):
107        Moved marking the layer as composited from the mac-only prepareTexture to
108        the end of [WebGLLayer display] which is called by mac and iOS.
109
1102014-05-29  Jeremy Jones  <jeremyj@apple.com>
111
112        Perserve caption selection in fullscreen.
113        https://bugs.webkit.org/show_bug.cgi?id=133350
114
115        Reviewed by Eric Carlson.
116
117        Use the logic from the inline player to calculate the selected caption index.
118
119        * html/HTMLMediaElement.h:
120        (WebCore::HTMLMediaElement::mediaControlsHost):
121        Expose mediaControlsHost() for use by WebVideoFullscreenModelMediaElement.
122
123        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
124        (WebVideoFullscreenModelMediaElement::updateLegibleOptions):
125        Use logic from buildCaptionsMenu from mediaControlsApple.js.
126
1272014-05-29  Jeremy Jones  <jeremyj@apple.com>
128
129        Use correct version of requiresFullscreenForVideoPlayback().
130        https://bugs.webkit.org/show_bug.cgi?id=133331
131
132        Reviewed by Eric Carlson.
133
134        Test: media/video-fullscreeen-only-controls.html
135
136        Update the last place not yet using m_mediaSession->requiresFullscreenForVideoPlayback.
137
138        * html/HTMLMediaElement.cpp:
139        (WebCore::HTMLMediaElement::parseAttribute):
140        switch to media session version for requriesFullscreenForVideoPlayback.
141
1422014-05-29  Carlos Garcia Campos  <cgarcia@igalia.com>
143
144        [GTK] Add support for HiDPI icons
145        https://bugs.webkit.org/show_bug.cgi?id=133377
146
147        Reviewed by Martin Robinson.
148
149        Use the GTK+ missing icon at 16 or 32 size depending on the device
150        scale factor.
151
152        * platform/graphics/gtk/ImageGtk.cpp:
153        (WebCore::loadMissingImageIconFromTheme):
154        (WebCore::Image::loadPlatformResource):
155
1562014-05-29  Owen Taylor  <otaylor@redhat.com>
157
158        [GTK] Add HighDPI support for non-accelerated compositing contents
159        https://bugs.webkit.org/show_bug.cgi?id=131562
160
161        Reviewed by Anders Carlsson.
162
163        No new tests. This will be tested once we have the proper dependencies in the WebKit testing
164        JHBuild.
165
166        * platform/cairo/WidgetBackingStore.h:
167        (WebCore::WidgetBackingStore::WidgetBackingStore): Accept a device scale argument.
168        * platform/cairo/WidgetBackingStoreCairo.cpp: Use the device scale argument to make the surface the proper size and set the surface device scale.
169        * platform/cairo/WidgetBackingStoreCairo.h: Accept a device scale argument.
170        * platform/graphics/cairo/CairoUtilities.cpp: Add a new helper to set the device scale if Cairo built against is new enough.
171        * platform/graphics/cairo/CairoUtilities.h:
172        * platform/gtk/GtkVersioning.h: Add the HAVE_GTK_SCALE_FACTOR macro.
173        * platform/gtk/WidgetBackingStoreGtkX11.cpp: Use the device scale argument to make the surface the proper size and set the surface device scale.
174        * platform/gtk/WidgetBackingStoreGtkX11.h: Accept a device scale argument.
175
1762014-05-28  Brent Fulgham  <bfulgham@apple.com>
177
178        Captions during HLS playback flash/are difficult to readily
179        https://bugs.webkit.org/show_bug.cgi?id=133365
180        <rdar://problem/16584132>
181
182        Reviewed by Eric Carlson.
183
184        Correct two problems:
185        1. Add new logic to handle cues that are identical to existing cues, except
186           that they cover a slightly later moment in playback. For example, a cue
187           encoding device might emit a cue at 24 fps, with many of the cues containing
188           the same content but covering only 1/24th of a second.
189           
190           Rather than hiding and displaying our cues at the cue encoding rate, we should
191           simply continue to display the same cue as long as the content is unchanged.
192        2. The cue "isEqual" logic for TextTrackCueGeneric improperly short-circuited the
193           VTTCue isEqual logic. This was done to avoid a false failure due to the cue
194           type being 'generic' rather than 'vtt', but incorrectly treated cues with
195           non-matching text as equal.
196
197        * html/track/DataCue.cpp:
198        (WebCore::DataCue::cueContentsMatch): Move cue comparison code to new method that
199        doesn't check that the 'type' of the cue is identical.
200        (WebCore::DataCue::isEqual): Modified to use new 'cueContentsMatch' method.
201        (WebCore::DataCue::isStartOfCue): Confirms cues match except for start and end times.
202        * html/track/DataCue.h:
203        * html/track/TextTrack.cpp:
204        (WebCore::TextTrack::hasCue): Modify to check if a new cue is simply a continuation
205        of an existing cue.
206        * html/track/TextTrackCue.cpp:
207        (WebCore::TextTrackCue::cueContentsMatch): New method containing the equality code
208        that used to live in 'isEqual'.
209        (WebCore::TextTrackCue::isEqual): Modified to use new 'cueContentsMatch' method.
210        (WebCore::TextTrackCue::isStartOfCue): Confirms cues match except for start and
211        end times.
212        * html/track/TextTrackCue.h:
213        * html/track/TextTrackCueGeneric.cpp:
214        (WebCore::TextTrackCueGeneric::cueContentsMatch): New method containing the equality
215        code that used to live in 'isEqual'.
216        (WebCore::TextTrackCueGeneric::isEqual): Modified to use new 'cueContentsMatch' method.
217        (WebCore::TextTrackCueGeneric::isStartOfCue): Confirms cues match except for start and
218        end times.
219        * html/track/TextTrackCueGeneric.h:
220        * html/track/VTTCue.cpp:
221        (WebCore::VTTCue::cueContentsMatch): New method containing the equality code that
222        used to live in 'isEqual'.
223        (WebCore::VTTCue::isEqual): Modified to use new 'cueContentsMatch' method.
224        (WebCore::VTTCue::isStartOfCue): Confirms cues match except for start and end times.
225        * html/track/VTTCue.h:
226
2272014-05-28  Oliver Hunt  <oliver@apple.com>
228
229        Whoops, update bindings tests results.
230
2312014-05-28  Oliver Hunt  <oliver@apple.com>
232
233        Make DOM properties exposed as instance properties use the base object instead of |this|
234        https://bugs.webkit.org/show_bug.cgi?id=133353
235
236        Reviewed by Geoffrey Garen.
237
238        Make the bindings generator emit code that uses the base object for
239        a property, rather than the this object. This means that attributes
240        that we need to be treated as instance properties will match their old
241        instance-based behaviour.
242
243        * bindings/scripts/CodeGeneratorJS.pm:
244        (InterfaceRequiresAttributesOnInstanceForCompatibility):
245        (InterfaceRequiresAttributesOnInstance):
246        (GetCastingHelperForBaseObject):
247        (GenerateImplementation):
248        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
249        (WebCore::jsTestActiveDOMObjectExcitingAttr):
250        * bindings/scripts/test/JS/JSTestException.cpp:
251        (WebCore::jsTestExceptionName):
252        * bindings/scripts/test/JS/JSTestInterface.cpp:
253        (WebCore::jsTestInterfaceImplementsStr3):
254        (WebCore::jsTestInterfaceSupplementalStr3):
255        (WebCore::setJSTestInterfaceConstructorImplementsStaticAttr):
256        (WebCore::setJSTestInterfaceImplementsStr2):
257        (WebCore::setJSTestInterfaceImplementsStr3):
258        (WebCore::setJSTestInterfaceImplementsNode):
259        (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
260        (WebCore::setJSTestInterfaceSupplementalStr2):
261        (WebCore::setJSTestInterfaceSupplementalStr3):
262        (WebCore::setJSTestInterfaceSupplementalNode):
263        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
264        (WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
265        (WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
266        (WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
267        (WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):
268        (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
269        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
270        (WebCore::jsTestTypedefsConstructorTestSubObj):
271        (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
272        (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
273        (WebCore::setJSTestTypedefsAttrWithGetterException):
274        (WebCore::setJSTestTypedefsAttrWithSetterException):
275        (WebCore::setJSTestTypedefsStringAttrWithGetterException):
276        (WebCore::setJSTestTypedefsStringAttrWithSetterException):
277
2782014-05-28  Simon Fraser  <simon.fraser@apple.com>
279
280        [iOS WK2] Improve behavior of position:fixed inside accelerated overflow-scroll
281        https://bugs.webkit.org/show_bug.cgi?id=133352
282
283        Reviewed by Tim Horton.
284
285        When adjusting layers inside accelerated overflow-scroll, pass a delta
286        down to descendant nodes. Fix behavior of sticky nodes inside fixed nodes
287        inside overflow scroll (sticky should only be affected if the parent node
288        is a scrolling node).
289
290        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
291        (WebCore::ScrollingTreeFixedNode::updateLayersAfterAncestorChange): Just remove
292        some .get()
293        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
294        (WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange): Remove .get()s.
295        We never care about the cumulative delta here, because sticky nodes only respond to
296        changes in their direct scrolling ancestors. Only adjust the layer if the parent
297        is a scrolling node.
298
2992014-05-27  Chris Fleizach  <cfleizach@apple.com>
300
301        AX: WebKit does not recognize ARIA 1.1 tables
302        https://bugs.webkit.org/show_bug.cgi?id=133163
303
304        Reviewed by Darin Adler.
305
306        The AXObjectCache code that determines which object to create based on the role needs to be token fallback aware.
307
308        Test: accessibility/table-fallback-roles-expose-element-attributes.html
309
310        * accessibility/AXObjectCache.cpp:
311        (WebCore::nodeHasRole):
312
3132014-05-28  Radu Stavila  <stavila@adobe.com>
314
315        REGRESSION (r168046): Invalid layout in multicol
316        https://bugs.webkit.org/show_bug.cgi?id=133322
317
318        Reviewed by Antti Koivisto.
319
320        In some situations, deleting the line boxes of a multicol element causes the line to region
321        link to become invalid.
322
323        Test: fast/multicol/newmulticol/multicol-inside-multicol.html
324
325        * rendering/RenderFlowThread.cpp:
326        (WebCore::RenderFlowThread::clearLinesToRegionMap):
327        (WebCore::RenderFlowThread::deleteLines):
328        (WebCore::RenderFlowThread::willBeDestroyed):
329        * rendering/RenderFlowThread.h:
330
3312014-05-28  Ryuan Choi  <ryuan.choi@samsung.com>
332
333        Remove DocumentThreadableLoaderClient.h
334        https://bugs.webkit.org/show_bug.cgi?id=133341
335
336        Reviewed by Gyuyoung Kim.
337
338        DocumentThreadableLoaderClient is not used anymore.
339
340        * WebCore.order:
341        * loader/DocumentThreadableLoader.cpp:
342        (WebCore::DocumentThreadableLoader::redirectReceived):
343        * loader/DocumentThreadableLoaderClient.h: Removed.
344        * loader/ThreadableLoaderClient.h:
345        (WebCore::ThreadableLoaderClient::isDocumentThreadableLoaderClient): Deleted.
346
3472014-05-28  Carlos Garcia Campos  <cgarcia@igalia.com>
348
349        Unreviewed. Update GObject DOM bindings symbols file after r169017.
350
351        * bindings/gobject/webkitdom.symbols: Add webkit_dom_navigator_get_hardware_concurrency.
352
3532014-05-28  Carlos Garcia Campos  <cgarcia@igalia.com>
354
355        REGRESSION(r168868): [GTK] Element.offset* client* scroll* API changed
356        https://bugs.webkit.org/show_bug.cgi?id=133313
357
358        Reviewed by Philippe Normand.
359
360        Keep old API that uses long also for GObject bindings.
361
362        * dom/Element.idl:
363
3642014-05-27  Commit Queue  <commit-queue@webkit.org>
365
366        Unreviewed, rolling out r169400.
367        https://bugs.webkit.org/show_bug.cgi?id=133338
368
369        Broke the iOS build in
370        LocalizedDateCache::calculateMaximumWidth() (Requested by smfr
371        on #webkit).
372
373        Reverted changeset:
374
375        "SVG TextRuns do not always get RenderingContexts"
376        https://bugs.webkit.org/show_bug.cgi?id=133198
377        http://trac.webkit.org/changeset/169400
378
3792014-05-27  Timothy Horton  <timothy_horton@apple.com>
380
381        REGRESSION (Margin tiles): Background gradient on dom.spec.whatwg.org is very slow to render
382        https://bugs.webkit.org/show_bug.cgi?id=133335
383        <rdar://problem/17011392>
384
385        Reviewed by Simon Fraser.
386
387        * platform/graphics/Image.cpp:
388        (WebCore::Image::drawTiled):
389        Make cross-platform and use some iOS code which avoids patterned drawing when the pattern buffer
390        would be very large. Instead, it calls draw() repeatedly over the pattern space, avoiding the allocation
391        of a huge (in the case of bug 133335, nearly 2GB) buffer.
392
3932014-05-27  Simon Fraser  <simon.fraser@apple.com>
394
395        [iOS WK2] Fix behavior of position:sticky inside accelerated overflow-scroll
396        https://bugs.webkit.org/show_bug.cgi?id=133334
397        <rdar://problem/16462535>
398
399        Reviewed by Tim Horton.
400
401        When the scroll position changes in an accelerated overflow-scroll element, we have
402        to update child nodes in the scrolling tree for position:sticky. That requires a
403        more generic ability to update the scrolling tree after some arbitrary zoom or
404        scroll. To do this, we need to know the current fixed position rect, rather than
405        having it passed in.
406        
407        So make the fixed position rect available from ScrollingTree, and make it possible
408        to get the current scrollPosition() from any ScrollingTreeScrollingNode.
409        
410        Also, implement updateLayersAfterDelegatedScroll() in ScrollingTreeOverflowScrollingNodeIOS,
411        and have it update descendant layers.
412        
413        Finally, fix ScrollingTreeOverflowScrollingNode to use the correct rectangle for its
414        constraints math, using the scroll position of the parent node if appropriate.
415
416        * page/scrolling/ScrollingTree.h:
417        * page/scrolling/ScrollingTreeScrollingNode.h:
418        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
419        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):
420        * page/scrolling/ios/ScrollingTreeIOS.cpp:
421        (WebCore::ScrollingTreeIOS::fixedPositionRect):
422        * page/scrolling/ios/ScrollingTreeIOS.h:
423        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
424        (WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange):
425
4262014-05-27  Simon Fraser  <simon.fraser@apple.com>
427
428        Do some renaming in the scrolling tree
429        https://bugs.webkit.org/show_bug.cgi?id=133333
430
431        Reviewed by Tim Horton.
432
433        Rename ScrollingTreeNode::parentScrollPositionDidChange() to updateLayersAfterAncestorChange()
434        since this goes deep and to indicate that it's about layer updating.
435        
436        Also rename the "viewportRect" parameter to "fixedPositionRect", since on iOS
437        this is the custom fixed-position rect that changes on zooming.
438
439        * page/scrolling/ScrollingTree.cpp:
440        (WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling):
441        * page/scrolling/ScrollingTree.h:
442        * page/scrolling/ScrollingTreeFrameScrollingNode.h:
443        * page/scrolling/ScrollingTreeNode.h:
444        * page/scrolling/ScrollingTreeScrollingNode.h:
445        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
446        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
447        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterViewportChange):
448        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):
449        * page/scrolling/mac/ScrollingTreeFixedNode.h:
450        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
451        (WebCore::ScrollingTreeFixedNode::updateLayersAfterAncestorChange):
452        (WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange): Deleted.
453        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
454        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
455        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):
456        * page/scrolling/mac/ScrollingTreeStickyNode.h:
457        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
458        (WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange):
459        (WebCore::ScrollingTreeStickyNode::parentScrollPositionDidChange): Deleted.
460
4612014-05-27  Simon Fraser  <simon.fraser@apple.com>
462
463        Instantiate a ScrollingTreeMac on Mac
464        https://bugs.webkit.org/show_bug.cgi?id=133332
465
466        Reviewed by Tim Horton.
467
468        Mac previously instantiated a ThreadedScrollingTree, but this has no platform
469        knowledge. To support future expansion, create a ScrollingTreeMac subclass and
470        instantiate that on Mac.
471        
472        Also protect ScrollingCoordinatorMac in PLATFORM(MAC) #ifdefs and remove it from the
473        EXCLUDED_SOURCE_FILE_NAMES list in the xcconfig file, following general trends.
474
475        * Configurations/WebCore.xcconfig:
476        * WebCore.xcodeproj/project.pbxproj:
477        * page/scrolling/ThreadedScrollingTree.cpp:
478        (WebCore::ThreadedScrollingTree::create): Deleted.
479        * page/scrolling/ThreadedScrollingTree.h:
480        * page/scrolling/mac/ScrollingCoordinatorMac.h:
481        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
482        (WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
483        * page/scrolling/mac/ScrollingTreeMac.cpp: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h.
484        (ScrollingTreeMac::create):
485        (ScrollingTreeMac::ScrollingTreeMac):
486        * page/scrolling/mac/ScrollingTreeMac.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h.
487
4882014-05-27  Simon Fraser  <simon.fraser@apple.com>
489
490        Prepare for position:sticky support inside accelerated overflow-scroll with WK2
491        https://bugs.webkit.org/show_bug.cgi?id=133329
492
493        Reviewed by Tim Horton.
494
495        RenderLayerCompositor::computeStickyViewportConstraints() was always using
496        the viewport rect as the constraining rect for sticky position. This is not
497        correct when inside overflow:scroll.
498        
499        Refactor code in RenderBoxModelObject to make getting the rect easy, and use
500        it to compute the constraints.
501
502        * rendering/RenderBoxModelObject.cpp:
503        (WebCore::RenderBoxModelObject::constrainingRectForStickyPosition):
504        (WebCore::RenderBoxModelObject::stickyPositionOffset):
505        * rendering/RenderBoxModelObject.h:
506        * rendering/RenderLayerCompositor.cpp:
507        (WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
508
5092014-05-27  Bem Jones-Bey  <bjonesbe@adobe.com>
510
511        vw/vh units used as font/line-height values don't scale with the viewport
512        https://bugs.webkit.org/show_bug.cgi?id=87846
513
514        Reviewed by Darin Adler.
515
516        This patch moves the resolution of viewport units to style recalc
517        time. Currently viewport units are left unresolved during style
518        recalcs, which leads to many problems with viewport units. Moving the
519        resolution will fix these problems, as well as reduce the plumbing
520        that goes on.
521
522        This patch touches a lot of files since the valueForLength functions
523        no longer need a RenderView. The interesting changes are in:
524
525        - CSSToLengthConversionData -> CSSPrimitiveValue: for moving
526            resolution to style recalc time.
527        - Length / LengthFunctions: no longer needs to know about viewport
528            units.
529        - FrameView -> Document -> StyleResolver: for scheduling style recalcs
530            upon resize
531
532        Note that getComputedStyle will now return pixel values when viewport
533        units are used. This behavior matches Firefox and the css3-cascade
534        spec.
535
536        This is based on a Blink patch by timloh@chromium.org.
537
538        Tests: css3/viewport-percentage-lengths/viewport-percentage-lengths-anonymous-block.html
539               css3/viewport-percentage-lengths/viewport-percentage-lengths-calc.html
540               css3/viewport-percentage-lengths/viewport-percentage-lengths-percent-size-child.html
541               css3/viewport-percentage-lengths/viewport-percentage-lengths-relative-font-size.html
542               css3/viewport-percentage-lengths/viewport-percentage-lengths-resize.html
543
544        * WebCore.exp.in: Remove RenderView argument to floatValueForLength.
545        * accessibility/atk/WebKitAccessibleInterfaceText.cpp: 
546        (getAttributeSetForAccessibilityObject): Remove RenderView argument.
547        * css/BasicShapeFunctions.cpp:
548        (WebCore::convertToLength): Ditto.
549        (WebCore::floatValueForCenterCoordinate): Ditto.
550        * css/BasicShapeFunctions.h: Ditto.
551        * css/CSSCalculationValue.cpp:
552        (WebCore::unitCategory): Remove special handling for viewport units,
553            as they get resolved to pixels.
554        (WebCore::createCSS): Ditto.
555        * css/CSSComputedStyleDeclaration.cpp:
556        (WebCore::positionOffsetValue): Remove RendewView argument.
557        (WebCore::getBorderRadiusCornerValues): Remove handling of viewport
558            units, as they are already resolve to pixels here.
559        (WebCore::getBorderRadiusCornerValue): Remove RenderView argument.
560        (WebCore::getBorderRadiusShorthandValue): Ditto.
561        (WebCore::specifiedValueForGridTrackBreadth): Remove handling of
562            viewport units, as they are already resolved to pixels here.
563        (WebCore::specifiedValueForGridTrackSize): Remove RenderView argument.
564        (WebCore::valueForGridTrackList): Ditto.
565        (WebCore::lineHeightFromStyle): Ditto.
566        (WebCore::ComputedStyleExtractor::propertyValue): Ditto.
567        * css/CSSGradientValue.cpp:
568        (WebCore::CSSLinearGradientValue::createGradient): Pass RenderView to
569            CSSToLengthConversionData constructor.
570        (WebCore::CSSRadialGradientValue::createGradient): Ditto.
571        * css/CSSPrimitiveValue.cpp:
572        (WebCore::CSSPrimitiveValue::unitCategory): Remove handling of
573            viewport units, as they get resolved to pixels.
574        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Ditto.
575        (WebCore::CSSPrimitiveValue::init): Ditto.
576        (WebCore::CSSPrimitiveValue::computeLengthDouble): Resolve viewport
577            units to pixels.
578        (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory): Remove
579        handling of viewport units, since they get resolved to pixels.
580        (WebCore::CSSPrimitiveValue::viewportPercentageLength): Deleted.
581        * css/CSSPrimitiveValue.h:
582        (WebCore::CSSPrimitiveValue::isLength): Remove special handling of
583            viewport units, since they get resolved to pixels.
584        * css/CSSPrimitiveValueMappings.h:
585        (WebCore::CSSPrimitiveValue::convertToLength): Ditto.
586        * css/CSSToLengthConversionData.cpp:
587        (WebCore::CSSToLengthConversionData::viewportWidthFactor): Caclulate
588            conversion factor for viewport units to pixels. Note this does not
589            set hasViewportUnits on the RenderStyle if computing the font
590            size, because in the font size case, the RenderStyle is the
591            parent's style, not the current renderer's style.
592        (WebCore::CSSToLengthConversionData::viewportHeightFactor): Ditto.
593        (WebCore::CSSToLengthConversionData::viewportMinFactor): Ditto.
594        (WebCore::CSSToLengthConversionData::viewportMaxFactor): Ditto.
595        * css/CSSToLengthConversionData.h:
596        (WebCore::CSSToLengthConversionData::CSSToLengthConversionData): Add
597            RenderView parameter, and make RenderStyle non-const so that
598            hasViewportUnits can be set on the Style..
599        (WebCore::CSSToLengthConversionData::style): style is now non-const.
600        (WebCore::CSSToLengthConversionData::copyWithAdjustedZoom): Handle
601            RenderView argument.
602        * css/CSSToStyleMap.cpp:
603        (WebCore::CSSToStyleMap::mapFillXPosition): Remove handling of
604            viewport units, as they are already resolved to pixels here.
605        (WebCore::CSSToStyleMap::mapFillYPosition): Ditto.
606        * css/DeprecatedStyleBuilder.cpp:
607        (WebCore::ApplyPropertyLength::applyValue): Ditto.
608        (WebCore::ApplyPropertyBorderRadius::applyValue): Ditto.
609        (WebCore::ApplyPropertyComputeLength::applyValue): Ditto.
610        (WebCore::ApplyPropertyFontSize::applyValue): Ditto.
611        (WebCore::ApplyPropertyLineHeight::applyValue): Ditto.
612        (WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyValue): Ditto.
613        (WebCore::ApplyPropertyWordSpacing::applyValue): Ditto.
614        (WebCore::ApplyPropertyVerticalAlign::applyValue): Ditto.
615        (WebCore::ApplyPropertyTextIndent::applyValue): Ditto.
616        * css/LengthFunctions.cpp:
617        (WebCore::minimumIntValueForLength): Remove RenderView argument.
618        (WebCore::intValueForLength): Remove RenderView argument and
619            roundPecentages.
620        (WebCore::minimumValueForLength): Remove RenderView argument, and
621            special handling of viewport units.
622        (WebCore::valueForLength): Ditto.
623        (WebCore::floatValueForLength): Ditto.
624        (WebCore::floatSizeForLengthSize): Remove RenderView argument.
625        * css/LengthFunctions.h: Ditto.
626        * css/MediaQueryEvaluator.cpp:
627        (WebCore::MediaQueryEvaluator::eval): Add RenderView argument for
628            CSSToLengthConversionData constuctor.
629        * css/StyleResolver.cpp:
630        (WebCore::StyleResolver::State::clear): Change to 0 arg constructor
631            for CSSToLengthConversionData.
632        (WebCore::StyleResolver::State::updateConversionData): In order to get
633            the RenderView, we need to have a valid Element set on the state.
634            Since this means that we need to set the conversion data in more
635            places, move the contruction of conversion data into this helper
636            method.
637        (WebCore::StyleResolver::State::initElement): Make sure conversion
638            data is up to date.
639        (WebCore::StyleResolver::State::initForStyleResolve): Ditto.
640        (WebCore::StyleResolver::State::setStyle): When the style is set, we
641            need to make sure to update the conversion data.
642        (WebCore::StyleResolver::styleForElement): If the style has viewport
643            units, flage the document so that we can make sure to recalc the
644            viewport unit values when the viewport is resized.
645        (WebCore::StyleResolver::pseudoStyleForElement): Ditto.
646        (WebCore::StyleResolver::updateFont): Make sure the font having
647            viewport units updates the style.
648        (WebCore::StyleResolver::convertToIntLength): Remove handling of
649        viewport units, as they are resolved to pixels.
650        (WebCore::StyleResolver::convertToFloatLength): Ditto.
651        (WebCore::StyleResolver::clearCachedPropertiesAffectedByViewportUnits):
652            Invalidate the matched properties cache for styles with viewport
653            units when the viewport is resized.
654        (WebCore::createGridTrackBreadth): Remove handling of viewport units,
655            as they are resolved to pixels.
656        (WebCore::StyleResolver::applyProperty): Ditto.
657        (WebCore::StyleResolver::hasMediaQueriesAffectedByViewportChange):
658            Rename to be less confusing, since it has nothing to do with
659            viewport units.
660        (WebCore::StyleResolver::createFilterOperations): Remove handling of
661            viewport units, as they are resolved to pixels.
662        (WebCore::StyleResolver::affectedByViewportChange): Deleted.
663        (WebCore::StyleResolver::viewportPercentageValue): Deleted.
664        * css/StyleResolver.h:
665        (WebCore::StyleResolver::State::State): C++11 cleanup: 0 -> nullptr.
666        (WebCore::StyleResolver::State::setFontSizeHasViewportUnits): Set if
667            the font size is specified in viewport units.
668        (WebCore::StyleResolver::State::fontSizeHasViewportUnits): Ditto.
669        (WebCore::StyleResolver::State::setStyle): Deleted.
670        * css/TransformFunctions.cpp:
671        (WebCore::convertToFloatLength): Remove handling of viewport units,
672            since they are resolved to pixels.
673        * dom/Document.cpp:
674        (WebCore::Document::Document): Add flag to determine if some style in
675            the document has viewport units.
676        (WebCore::Document::pageSizeAndMarginsInPixels): Remove RenderView
677            argument.
678        (WebCore::Document::updateViewportUnitsOnResize): Mark elements with
679            viewport units for style recalc when the viewport size has
680            changed.
681        * dom/Document.h:
682        (WebCore::Document::setHasStyleWithViewportUnits): Flag to determine
683            if some style in the document has viewport units.
684        (WebCore::Document::hasStyleWithViewportUnits): Ditto.
685        * html/HTMLAreaElement.cpp:
686        (WebCore::HTMLAreaElement::getRegion): Remove RenderView argument.
687        * page/FrameView.cpp:
688        (WebCore::FrameView::layout): When the viewport is resized, call
689            updateViewportUnitsOnResize on the document.
690        * platform/Length.h:
691        (WebCore::Length::isSpecified): Remove handling of viewport units,
692            since they are now resolved to pixels.
693        (WebCore::Length::viewportPercentageLength): Deleted.
694        (WebCore::Length::isViewportPercentage): Deleted.
695        * rendering/ClipPathOperation.h:
696        (WebCore::ShapeClipPathOperation::pathForReferenceRect): Remove
697            RenderView argument.
698        (WebCore::BoxClipPathOperation::pathForReferenceRect): Ditto.
699        * rendering/RenderBlock.cpp:
700        (WebCore::RenderBlock::updateBlockChildDirtyBitsBeforeLayout): Remove
701            handling of viewport units, since they get updated by
702            updateViewportUnitsOnResize when the viewport is resized.
703        (WebCore::RenderBlock::nodeAtPoint): Remove RenderView argument.
704        (WebCore::RenderBlock::lineHeight): Ditto.
705        * rendering/RenderBox.cpp:
706        (WebCore::RenderBox::paintBoxDecorations): Remove RenderView argument.
707        (WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing):
708            Remove handling of viewport units, as they are resolved to pixels.
709        (WebCore::RenderBox::computePercentageLogicalHeight): Ditto.
710        (WebCore::RenderBox::computeReplacedLogicalWidthUsing): Ditto.
711        (WebCore::RenderBox::computeReplacedLogicalHeightUsing): Ditto.
712        (WebCore::RenderBox::hasViewportPercentageLogicalHeight): Deleted.
713        * rendering/RenderBox.h:
714        * rendering/RenderBoxModelObject.cpp:
715        (WebCore::RenderBoxModelObject::getBackgroundRoundedRect): Remove
716            RenderView argument.
717        (WebCore::RenderBoxModelObject::calculateFillTileSize): Remove
718            handling of viewport units, as they are resolved to pixels.
719        (WebCore::computeBorderImageSide): Remove RenderView argument.
720        (WebCore::RenderBoxModelObject::paintNinePieceImage): Ditto.
721        (WebCore::RenderBoxModelObject::paintBorder): Ditto.
722        (WebCore::RenderBoxModelObject::paintBoxShadow): Ditto.
723        * rendering/RenderElement.cpp:
724        (WebCore::RenderElement::repaintAfterLayoutIfNeeded): Ditto.
725        * rendering/RenderElement.h:
726        (WebCore::RenderElement::valueForLength): Remove unused
727            roundPercentages argument.
728        (WebCore::RenderElement::minimumValueForLength): Remove unused
729            RoundPercentages and RenderView arguments.
730        * rendering/RenderGrid.cpp:
731        (WebCore::RenderGrid::layoutGridItems): Remove handling of viewport
732            units as they are resolved to pixels.
733        * rendering/RenderInline.cpp:
734        (WebCore::computeMargin): Ditto.
735        (WebCore::RenderInline::lineHeight): Remove RenderView argument.
736        * rendering/RenderLayer.cpp:
737        (WebCore::RenderLayer::setupClipPath): Ditto.
738        * rendering/RenderLineBreak.cpp:
739        (WebCore::RenderLineBreak::lineHeight): Ditto.
740        * rendering/RenderScrollbarPart.cpp:
741        (WebCore::calcScrollbarThicknessUsing): Ditto.
742        (WebCore::RenderScrollbarPart::computeScrollbarWidth): Ditto.
743        (WebCore::RenderScrollbarPart::computeScrollbarHeight): Ditto.
744        * rendering/RenderTable.cpp:
745        (WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
746            Remove handling of viewport units, since they are resolved to
747            pixels.
748        (WebCore::RenderTable::computePreferredLogicalWidths): Now that
749            viewport unit values are resolved to pixels at style recalc time,
750            no special checking is needed to handle them, so update the
751            comment to reflect that.
752        * rendering/RenderThemeIOS.mm:
753        (WebCore::applyCommonButtonPaddingToStyle): Add RenderView argument to
754            CSSToLengthConversionData constructor.
755        (WebCore::RenderThemeIOS::adjustButtonStyle): Ditto.
756        * rendering/RenderThemeMac.mm:
757        (WebCore::RenderThemeMac::paintMenuListButtonGradients): Remove
758            RenderView argument.
759        * rendering/RenderView.cpp:
760        (WebCore::RenderView::layout): Remove handling of viewport units,
761            since they are resolved to pixels.
762        * rendering/RootInlineBox.cpp:
763        (WebCore::RootInlineBox::ascentAndDescentForBox): Remove RenderView
764            argument.
765        * rendering/shapes/Shape.cpp:
766        (WebCore::Shape::createShape): Remove RenderView argument.
767        * rendering/shapes/Shape.h:
768        * rendering/shapes/ShapeOutsideInfo.cpp:
769        (WebCore::ShapeOutsideInfo::computedShape): Ditto.
770        * rendering/style/BasicShapes.cpp:
771        (WebCore::BasicShapeCircle::floatValueForRadiusInBox): Ditto.
772        (WebCore::BasicShapeCircle::path): Ditto.
773        (WebCore::BasicShapeEllipse::floatValueForRadiusInBox): Ditto.
774        (WebCore::BasicShapeEllipse::path): Ditto.
775        (WebCore::BasicShapePolygon::path): Ditto.
776        (WebCore::floatSizeForLengthSize): Ditto.
777        (WebCore::BasicShapeInset::path): Ditto.
778        * rendering/style/BasicShapes.h:
779        * rendering/style/RenderStyle.cpp:
780        (WebCore::calcRadiiFor): Ditto.
781        (WebCore::RenderStyle::getRoundedBorderFor): Ditto.
782        (WebCore::RenderStyle::computedLineHeight): Remove handling of
783            viewport units since they are resolved to pixels.
784        * rendering/style/RenderStyle.h:
785        (WebCore::RenderStyle::setHasViewportUnits): Set if this style has
786        a property set with viewport units.
787        (WebCore::RenderStyle::hasViewportUnits): Ditto.
788        * rendering/svg/RenderSVGRoot.cpp:
789        (WebCore::resolveLengthAttributeForSVG): Remove RenderView argument.
790        (WebCore::RenderSVGRoot::computeReplacedLogicalWidth): Ditto.
791        (WebCore::RenderSVGRoot::computeReplacedLogicalHeight): Ditto.
792        * rendering/svg/SVGRenderingContext.cpp:
793        (WebCore::SVGRenderingContext::prepareToRenderSVGContent): Ditto.
794
7952014-05-27  Zoltan Horvath  <zoltan@webkit.org>
796
797        [CSS Shapes] serialization of the computed value should omit the default radii
798        https://bugs.webkit.org/show_bug.cgi?id=132747
799
800        Reviewed by Darin Adler.
801
802        We should omit closest-side value, whereever is possible. Specification:
803        http://www.w3.org/TR/2014/CR-css-shapes-1-20140320/#basic-shape-computed-values 
804        This change aligns the behavior to the specification.
805
806        Added new test cases for the shape-outside parsing tests.
807
808        * css/CSSBasicShapes.cpp:
809        (WebCore::buildCircleString):
810        (WebCore::CSSBasicShapeCircle::cssText):
811        (WebCore::CSSBasicShapeEllipse::cssText):
812
8132014-05-27  Commit Queue  <commit-queue@webkit.org>
814
815        Unreviewed, rolling out r169399.
816        https://bugs.webkit.org/show_bug.cgi?id=133326
817
818        Causes assertion failures in tests.  See
819        http://build.webkit.org/results/Apple%20Mavericks%20Debug%20WK1%20(Tests)/r169399%20(5622)/results.html
820        (Requested by mlam on #webkit).
821
822        Reverted changeset:
823
824        "Caret's screen position does not update during an overflow
825        scroll"
826        https://bugs.webkit.org/show_bug.cgi?id=133256
827        http://trac.webkit.org/changeset/169399
828
8292014-05-27  Myles C. Maxfield  <mmaxfield@apple.com>
830
831        Lists styled with SVG fonts are not rendered as expected
832        https://bugs.webkit.org/show_bug.cgi?id=133198
833
834        Reviewed by Simon Fraser.
835
836        There were a couple places in RenderListMarker and RenderMenuList that were
837        implicitly creating TextRuns by passing a String to a function which
838        expected a TextRun. Because TextRun has a constructor which takes a single
839        String and isn't marked explicit, TextRuns were being created without
840        any of the associated code that initializes the TextRun (such as creating
841        a RenderingContext if necessary).
842
843        This patch marks the aforementioned constructor as "explicit" to discourage
844        such behavior in the future.
845
846        Test: svg/custom/list-items-with-svg-font-family.html
847
848        * platform/graphics/TextRun.h:
849        (WebCore::TextRun::TextRun): Mark constructors as explicit.
850        * rendering/RenderListMarker.cpp:
851        (WebCore::RenderListMarker::computePreferredLogicalWidths): Call
852        RenderBlock::constructTextRun.
853        (WebCore::RenderListMarker::getRelativeMarkerRect): Ditto.
854        * rendering/RenderMenuList.cpp:
855        (RenderMenuList::updateOptionsWidth): Ditto.
856
8572014-05-23  Myles C. Maxfield  <mmaxfield@apple.com>
858
859        Caret's screen position does not update during an overflow scroll
860        https://bugs.webkit.org/show_bug.cgi?id=133256
861
862        Reviewed by Simon Fraser.
863
864        During a scroll, we set a flag which caret position is gated on, but we never
865        actually invalidate the caret's position. This patch does so.
866
867        Test: editing/input/caret-position-during-scroll.html
868
869        * editing/FrameSelection.h:
870        * rendering/RenderLayer.cpp:
871        (WebCore::RenderLayer::scrollTo):
872
8732014-05-27  Timothy Horton  <timothy_horton@apple.com>
874
875        Turn on the LayerPool for iOS
876        https://bugs.webkit.org/show_bug.cgi?id=133299
877
878        Reviewed by Antti Koivisto.
879
880        * Configurations/WebCore.xcconfig:
881        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
882        (WebCore::MemoryPressureHandler::platformReleaseMemory):
883        * platform/graphics/ca/mac/TileController.mm:
884        (WebCore::TileController::createTileLayer):
885        * platform/graphics/ca/mac/TileGrid.mm:
886        (WebCore::TileGrid::removeTiles):
887        Turn on the LayerPool for iOS.
888        We've used this on Mac for a long time, and the WebKit1
889        ("legacy") iOS TileCache also had a similar pool.
890        This helps a good bit with flashiness while scrolling.
891
8922014-05-27  David Hyatt  <hyatt@apple.com>
893
894        REGRESSION: Audio volume scrubber does not show volume level thumb
895        <rdar://problem/16902004>
896        https://bugs.webkit.org/show_bug.cgi?id=133310
897
898        Reviewed by Dean Jackson.
899
900        This was just a silly mistake on my part with the setting of the pagination
901        layers. Layers inside transforms are supposed to clear out their pagination
902        status based off their ancestor containing block layers, and not off the
903        enclosing pagination layer.
904        
905        Added fast/multicol/pagination/nested-transforms.html
906
907        * rendering/RenderLayer.cpp:
908        (WebCore::RenderLayer::updatePagination):
909
9102014-05-27  Eric Carlson  <eric.carlson@apple.com>
911
912        [Mac] media controls should prevent 'click' events from reaching the page
913        https://bugs.webkit.org/show_bug.cgi?id=133268
914
915        Reviewed by Jer Noble.
916
917        Test: media/media-controls-cancel-events.html
918
919        * Modules/mediacontrols/mediaControlsApple.js:
920        (Controller.prototype.handleEvent): Allow event handler to cancel event default action.
921        (Controller.prototype.handleRewindButtonClicked): Cancel event default.
922        (Controller.prototype.handlePlayButtonClicked): Ditto.
923        (Controller.prototype.handleMuteButtonClicked): Ditto.
924        (Controller.prototype.handleMinButtonClicked): Ditto.
925        (Controller.prototype.handleCaptionButtonClicked): Ditto.
926        (Controller.prototype.handleFullscreenButtonClicked): Ditto.
927        * Modules/mediacontrols/mediaControlsiOS.js:
928        (ControllerIOS.prototype.handlePlayButtonTouchEnd): Ditto.
929        (ControllerIOS.prototype.handlePlayButtonTouchCancel): Ditto.
930        (ControllerIOS.prototype.handleFullscreenTouchEnd): Ditto.
931        (ControllerIOS.prototype.handleFullscreenTouchCancel): Ditto.
932        (ControllerIOS.prototype.handleStartPlaybackButtonTouchEnd): Ditto.
933        (ControllerIOS.prototype.handleStartPlaybackButtonTouchCancel): Ditto.
934        (ControllerIOS.prototype.handleWirelessPickerButtonClicked): Ditto.
935
9362014-05-27  Jon Lee  <jonlee@apple.com>
937
938        Fix Mavericks bots from r169383.
939        https://bugs.webkit.org/show_bug.cgi?id=133311
940
941        Reviewed by Eric Carlson.
942
943        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h: Update #ifdef to check for ENABLE(MEDIA_SOURCE).
944        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm: Ditto.
945
9462014-05-27  Radu Stavila  <stavila@adobe.com>
947
948        REGRESSION (r168046): Incorrect handling of multicol spanner
949        https://bugs.webkit.org/show_bug.cgi?id=133249
950
951        Reviewed by David Hyatt.
952
953        When removing the child of an object, the removeChild method should return the next element
954        following the one being deleted. This will ensure that proper iteration and destruction of
955        an object's children is possible.
956
957        No new tests added. This is because the test that triggers this issue also triggers
958        another assertion, in RenderMultiColumnSet::requiresBalancing(). However, that is a totally
959        separate problem and will be handled in a separate bug: https://bugs.webkit.org/show_bug.cgi?id=133309
960
961        * rendering/RenderBlock.cpp:
962        (WebCore::RenderBlock::removeChild):
963        * rendering/RenderBlock.h:
964        * rendering/RenderBlockFlow.cpp:
965        (WebCore::RenderBlockFlow::removeChild):
966        * rendering/RenderBlockFlow.h:
967        * rendering/RenderButton.cpp:
968        (WebCore::RenderButton::removeChild):
969        * rendering/RenderButton.h:
970        * rendering/RenderElement.cpp:
971        (WebCore::RenderElement::removeChild):
972        (WebCore::RenderElement::removeChildInternal):
973        * rendering/RenderElement.h:
974        * rendering/RenderMenuList.cpp:
975        (RenderMenuList::removeChild):
976        * rendering/RenderMenuList.h:
977        * rendering/RenderMultiColumnFlowThread.cpp:
978        (WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
979        * rendering/RenderRuby.cpp:
980        (WebCore::RenderRubyAsInline::removeChild):
981        (WebCore::RenderRubyAsBlock::removeChild):
982        * rendering/RenderRuby.h:
983        * rendering/RenderRubyRun.cpp:
984        (WebCore::RenderRubyRun::removeChild):
985        * rendering/RenderRubyRun.h:
986        * rendering/mathml/RenderMathMLScripts.cpp:
987        (WebCore::RenderMathMLScripts::removeChildInternal):
988        (WebCore::RenderMathMLScripts::removeChild):
989        (WebCore::RenderMathMLScriptsWrapper::removeChildInternal):
990        (WebCore::RenderMathMLScriptsWrapper::removeChild):
991        * rendering/mathml/RenderMathMLScripts.h:
992        * rendering/svg/RenderSVGContainer.cpp:
993        (WebCore::RenderSVGContainer::removeChild):
994        * rendering/svg/RenderSVGContainer.h:
995        * rendering/svg/RenderSVGInline.cpp:
996        (WebCore::RenderSVGInline::removeChild):
997        * rendering/svg/RenderSVGInline.h:
998        * rendering/svg/RenderSVGRoot.cpp:
999        (WebCore::RenderSVGRoot::removeChild):
1000        * rendering/svg/RenderSVGRoot.h:
1001        * rendering/svg/RenderSVGText.cpp:
1002        (WebCore::RenderSVGText::removeChild):
1003        * rendering/svg/RenderSVGText.h:
1004
10052014-05-27  Jon Lee  <jonlee@apple.com>
1006
1007        Update ENABLE(MEDIA_SOURCE) on Mac
1008        https://bugs.webkit.org/show_bug.cgi?id=133141
1009
1010        Reviewed by Darin Adler.
1011
1012        * Configurations/FeatureDefines.xcconfig:
1013
10142014-05-27  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
1015
1016        Remove BLOB guards
1017        https://bugs.webkit.org/show_bug.cgi?id=132863
1018
1019        Reviewed by Csaba Osztrogonác.
1020
1021        * Configurations/FeatureDefines.xcconfig:
1022        * Modules/websockets/WebSocketChannel.cpp:
1023        (WebCore::WebSocketChannel::WebSocketChannel):
1024        (WebCore::WebSocketChannel::didFail):
1025        (WebCore::WebSocketChannel::processOutgoingFrameQueue):
1026        (WebCore::WebSocketChannel::abortOutgoingFrameQueue):
1027        * Modules/websockets/WebSocketChannel.h:
1028        * WebCore.exp.in:
1029        * WebCore.vcxproj/WebCore.vcxproj:
1030        * bindings/js/JSBlobCustom.cpp:
1031        (WebCore::JSBlobConstructor::constructJSBlob):
1032        * bindings/js/JSFileReaderCustom.cpp:
1033        * dom/DOMExceptions.in:
1034        * dom/EventTargetFactory.in:
1035        * dom/ScriptExecutionContext.cpp:
1036        (WebCore::ScriptExecutionContext::publicURLManager):
1037        * dom/ScriptExecutionContext.h:
1038        * fileapi/AsyncFileStream.cpp:
1039        * fileapi/AsyncFileStream.h:
1040        * fileapi/Blob.cpp:
1041        (WebCore::Blob::Blob):
1042        * fileapi/Blob.h:
1043        (WebCore::Blob::slice):
1044        * fileapi/Blob.idl:
1045        * fileapi/FileError.h:
1046        * fileapi/FileError.idl:
1047        * fileapi/FileException.cpp:
1048        * fileapi/FileException.h:
1049        * fileapi/FileException.idl:
1050        * fileapi/FileReader.cpp:
1051        * fileapi/FileReader.h:
1052        * fileapi/FileReader.idl:
1053        * fileapi/FileReaderLoader.cpp:
1054        * fileapi/FileReaderLoader.h:
1055        * fileapi/FileReaderLoaderClient.h:
1056        * fileapi/FileReaderSync.cpp:
1057        * fileapi/FileReaderSync.h:
1058        * fileapi/FileReaderSync.idl:
1059        * fileapi/FileThread.cpp:
1060        * fileapi/FileThread.h:
1061        * fileapi/ThreadableBlobRegistry.cpp:
1062        (WebCore::ThreadableBlobRegistry::registerFileBlobURL): Deleted.
1063        (WebCore::ThreadableBlobRegistry::registerBlobURL): Deleted.
1064        (WebCore::ThreadableBlobRegistry::registerBlobURLForSlice): Deleted.
1065        (WebCore::ThreadableBlobRegistry::unregisterBlobURL): Deleted.
1066        (WebCore::ThreadableBlobRegistry::blobSize): Deleted.
1067        (WebCore::ThreadableBlobRegistry::getCachedOrigin): Deleted.
1068        * fileapi/WebKitBlobBuilder.cpp:
1069        (WebCore::BlobBuilder::append):
1070        * fileapi/WebKitBlobBuilder.h:
1071        * html/DOMURL.cpp:
1072        * html/DOMURL.h:
1073        * html/DOMURL.idl:
1074        * html/PublicURLManager.cpp:
1075        * html/PublicURLManager.h:
1076        * loader/LoaderStrategy.cpp:
1077        (WebCore::LoaderStrategy::createBlobRegistry):
1078        * loader/LoaderStrategy.h:
1079        * page/DOMWindow.idl:
1080        * page/SecurityOrigin.cpp:
1081        (WebCore::SecurityOrigin::shouldUseInnerURL):
1082        (WebCore::getCachedOrigin):
1083        * platform/FileStream.cpp:
1084        * platform/FileStream.h:
1085        * platform/FileStreamClient.h:
1086        * platform/SchemeRegistry.cpp:
1087        (WebCore::canDisplayOnlyIfCanRequestSchemes):
1088        * platform/network/BlobRegistry.cpp:
1089        * platform/network/BlobRegistryImpl.cpp:
1090        * platform/network/BlobResourceHandle.cpp:
1091        * platform/network/BlobResourceHandle.h:
1092        * platform/network/FormData.cpp:
1093        (WebCore::FormData::deepCopy):
1094        (WebCore::FormData::appendFile):
1095        (WebCore::FormData::appendBlob):
1096        (WebCore::FormData::appendKeyValuePairItems):
1097        (WebCore::FormData::resolveBlobReferences):
1098        (WebCore::encodeElement):
1099        (WebCore::decodeElement):
1100        * platform/network/FormData.h:
1101        (WebCore::FormDataElement::FormDataElement):
1102        (WebCore::operator==):
1103        * platform/network/cf/FormDataStreamCFNet.cpp:
1104        (WebCore::closeCurrentStream):
1105        (WebCore::advanceCurrentStream):
1106        (WebCore::formCreate):
1107        (WebCore::formRead):
1108        (WebCore::setHTTPBody):
1109        * platform/network/curl/ResourceHandleManager.cpp:
1110        (WebCore::getFormElementsCount):
1111        * platform/network/soup/ResourceHandleSoup.cpp:
1112        (WebCore::addEncodedBlobToSoupMessageBody):
1113        (WebCore::addFormElementsToSoupMessage):
1114        * workers/WorkerGlobalScope.idl:
1115        * xml/XMLHttpRequest.cpp:
1116        (WebCore::XMLHttpRequest::send):
1117        (WebCore::XMLHttpRequest::createRequest):
1118
11192014-05-27  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
1120
1121        Allow building CMake based ports with WEB_REPLAY
1122        https://bugs.webkit.org/show_bug.cgi?id=133154
1123
1124        Reviewed by Csaba Osztrogonác.
1125
1126        * CMakeLists.txt:
1127
11282014-05-27  Adrian Perez de Castro  <aperez@igalia.com>
1129
1130        [GStreamer] Add missing <wtf/MathExtras.h> header
1131        https://bugs.webkit.org/show_bug.cgi?id=133236
1132
1133        Reviewed by Philippe Normand.
1134
1135        In some configurations, not including <wtf/MathExtras.h> will cause
1136        errors about undefined functions. In particular, this happens in
1137        Linux with glibc 2.19 and compiling with Clang. Having the header
1138        included is the correct thing to do anyway.
1139
1140        * platform/graphics/gstreamer/GStreamerUtilities.cpp:
1141        Include <wtf/MathExtras.h>
1142
11432014-05-27  Manuel Rego Casasnovas  <rego@igalia.com>
1144
1145        Setting up OrderIterator shouldn't require an extra Vector
1146        https://bugs.webkit.org/show_bug.cgi?id=119061
1147
1148        Reviewed by Darin Adler.
1149
1150        From Blink r153971 by <jchaffraix@chromium.org>
1151
1152        This patches reuse the OrderIterator's Vector. It provides a helper class OrderIteratorPopulator, used for
1153        manipulating the Vector directly. Which allows to consolidate the code into a single implementation across
1154        flexbox and grid.
1155
1156        No new tests, already covered by current tests.
1157
1158        * rendering/OrderIterator.cpp:
1159        (WebCore::OrderIteratorPopulator::~OrderIteratorPopulator): Reset OrderIterator and call
1160        removeDuplicatedOrderValues().
1161        (WebCore::OrderIteratorPopulator::removeDuplicatedOrderValues): Sorts the Vector and removes the duplicated
1162        order values.
1163        (WebCore::OrderIteratorPopulator::collectChild): Collect order value information from child.
1164        (WebCore::OrderIterator::setOrderValues): Deleted.
1165        * rendering/OrderIterator.h:
1166        (WebCore::OrderIteratorPopulator::OrderIteratorPopulator): Add helper class to manipulate OrderValues Vector.
1167        * rendering/RenderFlexibleBox.cpp:
1168        (WebCore::RenderFlexibleBox::layoutBlock): Remove unneeded code related to old OrderValues vector.
1169        (WebCore::RenderFlexibleBox::prepareOrderIteratorAndMargins): Populate OrderIterator using collectChild().
1170        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): Deleted.
1171        * rendering/RenderFlexibleBox.h: Rename computeMainAxisPreferredSizes() to prepareOrderIteratorAndMargins().
1172        * rendering/RenderGrid.cpp:
1173        (WebCore::RenderGrid::populateExplicitGridAndOrderIterator): Populate OrderIterator using collectChild().
1174
11752014-05-26  Tim Horton  <timothy_horton@apple.com>
1176
1177        [wk2] RemoteLayerBackingStore front buffers should be purgeable when unparented
1178        https://bugs.webkit.org/show_bug.cgi?id=133020
1179        <rdar://problem/16521736>
1180
1181        Reviewed by Simon Fraser.
1182
1183        * WebCore.exp.in:
1184        * platform/graphics/cg/IOSurfacePool.cpp:
1185        (WebCore::IOSurfacePool::willAddSurface):
1186        * platform/graphics/cocoa/IOSurface.h:
1187        * platform/graphics/cocoa/IOSurface.mm:
1188        (IOSurface::releaseGraphicsContext):
1189        Rename clearGraphicsContext to releaseGraphicsContext for clarity.
1190
11912014-05-26  Philip Rogers  <pdr@google.com>
1192
1193        Remove special case for transparent SVG root layers
1194        https://bugs.webkit.org/show_bug.cgi?id=116856
1195
1196        Reviewed by Dirk Schulze.
1197
1198        This patch removes a special case from RenderLayer for root SVG layers
1199        with opacity. Instead of checking whether a composited layer exists in
1200        SVGRenderingContext::prepareToRenderSVGContent we now exclude the root
1201        SVG renderobject from the opacity checks in prepareToRenderSVGContent.
1202
1203        This is a merge of https://src.chromium.org/viewvc/blink?view=rev&revision=174102
1204        by Philip Rogers <pdr@chromium.org>.
1205
1206        No new tests as this is covered by svg/custom/composited-svg-with-opacity.html.
1207
1208        * rendering/RenderLayer.cpp:
1209        (WebCore::RenderLayer::isTransparent): Deleted.
1210        * rendering/RenderLayer.h:
1211        * rendering/svg/SVGRenderingContext.cpp:
1212        (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
1213            The opacity case for root svg renderers is now handled by
1214            RenderLayer.
1215
12162014-05-26  Yusuke Suzuki  <utatane.tea@gmail.com>
1217
1218        CSS JIT: Fix build error raised when CSS_SELECTOR_JIT_DEBUGGING is 1
1219        https://bugs.webkit.org/show_bug.cgi?id=133266
1220
1221        Reviewed by Benjamin Poulain.
1222
1223        When CSS_SELECTOR_JIT_DEBUGGING is 1, build erros occur on x86_64.
1224
1225        * cssjit/SelectorCompiler.cpp:
1226        (WebCore::SelectorCompiler::SelectorCodeGenerator::generatePrologue):
1227        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateEpilogue):
1228
12292014-05-26  Benjamin Poulain  <benjamin@webkit.org>
1230
1231        Fix the quirks mode selector matching of the pseudo classes :hover and :active
1232        https://bugs.webkit.org/show_bug.cgi?id=133063
1233
1234        Reviewed by Antti Koivisto.
1235
1236        Our implementation of the quirks mode of :active and :hover was very wrong. The only
1237        thing it was doing is verify the pseudo class is not the first selector of a fragment
1238        (which was conveniently the only thing that was tested :)).
1239
1240        Since those pseudo class were only checking for the order of the filters, something like
1241            #target:hover
1242        would succeed because :hover is not the first simple selector, while
1243            :hover#target
1244        would fail.
1245
1246        That behavior is also a problem for the CSS JIT as it is an implementation detail of SelectorChecker
1247        and compiling something like that with our out-of-order matching would be nonsense.
1248
1249        This patch update the implementation to follow http://quirks.spec.whatwg.org/#the-:active-and-:hover-quirk
1250        Basically, the only cases that do not work in quirks mode are selectors composed only of "*, :hover and :active".
1251
1252        To implement this behavior, I needed to be able to inspect a complete selector fragment, including
1253        what is before and after :hover/:active.
1254        To do that, I replaced the boolean isSubSelector by a pointer to the first selector of the fragment.
1255        When we need to match :active/:hover in quirks mode, we just go over all the selectors in the fragment
1256        to find one of the qualifying match type.
1257
1258        Tests: fast/selectors/active-hover-quirks.html
1259               fast/selectors/active-quirks.html
1260               fast/selectors/hover-quirks.html
1261
1262        * css/SelectorChecker.cpp:
1263        (WebCore::SelectorChecker::matchRecursively):
1264        (WebCore::canMatchHoverOrActiveInQuirksMode):
1265        (WebCore::SelectorChecker::checkOne):
1266        * css/SelectorChecker.h:
1267        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
1268
12692014-05-26  Zalan Bujtas  <zalan@apple.com>
1270
1271        Split the call to adjustForLocalZoom out into a separate expression.
1272        https://bugs.webkit.org/show_bug.cgi?id=133286
1273
1274        Reviewed by Darin Adler.
1275
1276        This patch ensures that adjustForLocalZoom() always gets called before we look at
1277        zoomFactor's value. (and not rely on the undefined behavior of the order of function argument evaluation)
1278
1279        * dom/Element.cpp:
1280        (WebCore::Element::offsetLeft):
1281        (WebCore::Element::offsetTop):
1282
12832014-05-26  Darin Adler  <darin@apple.com>
1284
1285        Class name matching should use ASCII case-insensitive matching, not Unicode case folding
1286        https://bugs.webkit.org/show_bug.cgi?id=133292
1287
1288        Reviewed by Anders Carlsson.
1289
1290        Tests: fast/dom/getElementsByClassName/ASCII-case-insensitive.html
1291               fast/dom/getElementsByClassName/case-sensitive.html
1292
1293        * dom/SpaceSplitString.cpp:
1294        (WebCore::hasNonASCIIOrUpper): Deleted.
1295        (WebCore::tokenizeSpaceSplitString): Use a for loop instead of while.
1296        (WebCore::spaceSplitStringTable): Renamed from sharedDataMap; the new name is supposed
1297        to help us see the analogy with the atomic string table.
1298        (WebCore::SpaceSplitString::set): Removed unneeded special case for null and preflight
1299        since AtomicString::convertToASCIILowercase now handles both of those. Changed to call
1300        convertToASCIILowercase instead of foldCase, since we don't want to fold non-ASCII.
1301        (WebCore::SpaceSplitString::spaceSplitStringContainsValue): Ditto.
1302        (WebCore::SpaceSplitStringData::create): Marked this inline since it's only called in
1303        one place and that place is in this file. Also used auto a bit and used get instead of
1304        find since the value type is a simple pointer.
1305        (WebCore::SpaceSplitStringData::destroy): Removed unneeded check for null. We never
1306        create any SpaceSplitStringData with empty strings, and a null is a kind of empty string.
1307
1308        * dom/SpaceSplitString.h: Removed some unneeded includes and some unneeded uses of the
1309        inline keyword. Changed types from size_t to unsigned in a couple places; we had a mix
1310        of the types and there was no reason to use size_t there.
1311
13122014-05-26  Javier Fernandez  <jfernandez@igalia.com>
1313
1314        [CSS Grid Layout] Implementation of the "grid" shorthand.
1315        https://bugs.webkit.org/show_bug.cgi?id=132122
1316
1317        Reviewed by Darin Adler.
1318
1319        The grid property is a shorthand that sets all of the explicit
1320        grid properties (grid-template-rows, grid-template-columns, and
1321        grid-template-areas) as well as all the implicit grid properties
1322        (grid-auto-rows, grid-auto-columns, and grid-auto-flow) in a
1323        single declaration
1324
1325        Notice that either explicit or implicit grid can be specified,
1326        assigning the initial values to the omitted properties.
1327
1328        Test: fast/css-grid-layout/grid-shorthand-get-set.html
1329
1330        * css/CSSComputedStyleDeclaration.cpp:
1331        (WebCore::ComputedStyleExtractor::propertyValue):
1332        * css/CSSParser.cpp:
1333        (WebCore::CSSParser::parseValue):
1334        (WebCore::CSSParser::parseGridShorthand):
1335        * css/CSSParser.h:
1336        * css/CSSPropertyNames.in:
1337        * css/StylePropertyShorthand.cpp:
1338        (WebCore::webkitGridShorthand):
1339        * css/StylePropertyShorthand.h:
1340
13412014-05-26  Zalan Bujtas  <zalan@apple.com>
1342
1343        Subpixel layout: Legacy Element.offset* client* return values are invalid in certain cases.
1344        https://bugs.webkit.org/show_bug.cgi?id=133272
1345
1346        Reviewed by Simon Fraser.
1347
1348        Element.offset* client* functions applied various rounding strategies on the return values before r168868.
1349        (for example, offsetLeft/Top either floored through implicit integer arithmetics or rounded explicitly depending
1350        whether the zoom scale was 1. see http://trac.webkit.org/changeset/168868/trunk/Source/WebCore/dom/Element.cpp for details)
1351        This patch mimics the legacy behavior by either rounding or flooring the return value.
1352
1353        Not testable (legacy switch is not exposed)
1354
1355        * dom/Element.cpp:
1356        (WebCore::adjustForLocalZoom):
1357        (WebCore::convertToNonSubpixelValueIfNeeded):
1358        (WebCore::Element::offsetLeft):
1359        (WebCore::Element::offsetTop):
1360
13612014-05-26  Michał Pakuła vel Rutka  <m.pakula@samsung.com>
1362
1363        [EFL] Input fields and text areas are not rendered correctly after r167771
1364        https://bugs.webkit.org/show_bug.cgi?id=133181
1365
1366        Reviewed by Gyuyoung Kim.
1367
1368        r167771 changed arguments of RenderTheme two virtual method arguments which were not reflected
1369        in changes in derived classes, which caused parent method to be called. Arguments in derived class
1370        were updated, also 'override' specifiers were added to all virtual methods to prevent similar errors.
1371
1372        Already covered by fast/forms/textarea-placeholder-wrapping.html
1373
1374        * platform/efl/RenderThemeEfl.cpp:
1375        (WebCore::RenderThemeEfl::paintTextField):
1376        (WebCore::RenderThemeEfl::paintTextArea):
1377        * platform/efl/RenderThemeEfl.h:
1378        (WebCore::RenderThemeEfl::supportsHover):
1379        (WebCore::RenderThemeEfl::supportsControlTints):
1380
13812014-05-20  Sergio Villar Senin  <svillar@igalia.com>
1382
1383        [CSS Grid Layout] Children of grid containers must be turned into grid items
1384        https://bugs.webkit.org/show_bug.cgi?id=132991
1385
1386        Reviewed by Darin Adler.
1387
1388        From Blink r150472 by <jchaffraix@chromium.org>
1389
1390        According to specs each child of a grid container must become a
1391        grid item meaning that grid items are grid level boxes and thus,
1392        do not participate in the block formatting context but in the grid
1393        formatting one.
1394
1395        This change updates the grid items' 'display' property after style
1396        resolution so that we match the specification (see section 4. Grid
1397        Items). The spec basically instructs us to compute the value of
1398        'display' by applying the table in CSS2.1 Chapter 9.7
1399        http://www.w3.org/TR/CSS2/visuren.html#dis-pos-flo
1400
1401        Test: fast/css-grid-layout/grid-item-display.html
1402
1403        * css/StyleResolver.cpp:
1404        (WebCore::isDisplayGridBox):
1405        (WebCore::StyleResolver::adjustRenderStyle):
1406
14072014-05-26  Zan Dobersek  <zdobersek@igalia.com>
1408
1409        Remove Vector copies in ShorthandPropertyWrapper implementation and use
1410        https://bugs.webkit.org/show_bug.cgi?id=133265
1411
1412        Reviewed by Simon Fraser.
1413
1414        * page/animation/CSSPropertyAnimation.cpp:
1415        (WebCore::ShorthandPropertyWrapper::ShorthandPropertyWrapper): Move the passed-in Vector
1416        into the member variable instead of using Vector<>::swap().
1417        (WebCore::ShorthandPropertyWrapper::propertyWrappers): Return a const reference of the member
1418        variable instead of a const value.
1419        (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Move the Vector
1420        object into the ShorthandProperthyWrapper constructor.
1421        (WebCore::gatherEnclosingShorthandProperties): Deploy a range-based for-loop.
1422
14232014-05-26  Tanay C  <tanay.c@samsung.com>
1424
1425        [EFL] Fix build error in blob.cpp after r168435
1426        https://bugs.webkit.org/show_bug.cgi?id=132678
1427
1428        Reviewed by Alexey Proskuryakov.
1429
1430        * fileapi/Blob.cpp:
1431        (WebCore::Blob::size): Using isInBound to check range of local var
1432        actualsize to resolve build error
1433
14342014-05-25  Ryuan Choi  <ryuan.choi@samsung.com>
1435
1436        [EFL] Remove TileCairo and TiledBackingStoreBackendCairo
1437        https://bugs.webkit.org/show_bug.cgi?id=133274
1438
1439        Reviewed by Gyuyoung Kim.
1440
1441        Now, TiledBackingStore is only used for CoordinatedGraphics and the EFL port.
1442        CoordinatedGraphics does not use TileCairo and TiledBackingStoreBackendCairo.
1443
1444        This patch removed them and refactored related files.
1445
1446        * PlatformEfl.cmake:
1447        * PlatformGTK.cmake:
1448        * WebCore.vcxproj/WebCore.vcxproj:
1449        * WebCore.vcxproj/WebCore.vcxproj.filters:
1450        * platform/graphics/TiledBackingStore.cpp:
1451        (WebCore::TiledBackingStore::TiledBackingStore): Deleted.
1452        * platform/graphics/TiledBackingStore.h:
1453        * platform/graphics/TiledBackingStoreBackend.h:
1454        * platform/graphics/cairo/TileCairo.cpp: Removed.
1455        * platform/graphics/cairo/TiledBackingStoreBackendCairo.cpp: Removed.
1456
14572014-05-25  Jinwoo Song  <jinwoo7.song@samsung.com>
1458
1459        setData() of DataTransfer has a void return type
1460        https://bugs.webkit.org/show_bug.cgi?id=133108
1461
1462        Reviewed by Alexey Proskuryakov.
1463
1464        According to HTML5 spec, setData() of DataTranfer interface does not return value.
1465        http://www.w3.org/TR/html/editing.html#the-datatransfer-interface
1466
1467        Test: editing/pasteboard/set_data_typeof_return.html
1468
1469        * dom/DataTransfer.cpp:
1470        (WebCore::DataTransfer::setData):
1471        * dom/DataTransfer.h:
1472        * dom/DataTransfer.idl:
1473        * platform/Pasteboard.h:
1474        * platform/efl/PasteboardEfl.cpp:
1475        (WebCore::Pasteboard::writeString):
1476        * platform/gtk/PasteboardGtk.cpp:
1477        (WebCore::Pasteboard::writeString):
1478        * platform/ios/PasteboardIOS.mm:
1479        (WebCore::Pasteboard::writeString):
1480        * platform/mac/PasteboardMac.mm:
1481        (WebCore::Pasteboard::writeString):
1482        * platform/win/PasteboardWin.cpp:
1483        (WebCore::Pasteboard::writeString):
1484
14852014-05-25  Benjamin Poulain  <bpoulain@apple.com>
1486
1487        [iOS][WK2] Use ScrollView's scrollOffset as the unobscuredContentRect
1488        https://bugs.webkit.org/show_bug.cgi?id=133262
1489
1490        Reviewed by Simon Fraser.
1491
1492        Since VisibleContentRect was fixed, we were no longer sending scroll events when updating the scrollOffset
1493        when updating the visible content rects. The reason is that the scrollOffset was defined as the top left of the
1494        VisibleContentRect, and as such was already at the end position after updating the unobscured rect.
1495
1496        This patch split the unobscuredContentRect in unobscuredContentSize (updated live on zoom) and the position defined
1497        by the ScrollView's scrollOffset (updated when scrolling).
1498
1499        * WebCore.exp.in:
1500        * platform/ScrollView.h:
1501        * platform/ios/ScrollViewIOS.mm:
1502        (WebCore::ScrollView::unobscuredContentRect):
1503        (WebCore::ScrollView::setUnobscuredContentSize):
1504        (WebCore::ScrollView::setUnobscuredContentRect): Deleted.
1505
15062014-05-25  David Kilzer  <ddkilzer@apple.com>
1507
1508        Add type-checked casts for TransformOperations
1509        <http://webkit.org/b/133217>
1510
1511        Reviewed by Simon Fraser.
1512
1513        * platform/graphics/GraphicsLayer.cpp:
1514        (WebCore::GraphicsLayer::validateTransformOperations):
1515        * platform/graphics/ca/GraphicsLayerCA.cpp:
1516        (WebCore::getTransformFunctionValue):
1517        - Switch to type-checked casts.
1518
1519        * platform/graphics/transforms/IdentityTransformOperation.h:
1520        * platform/graphics/transforms/Matrix3DTransformOperation.h:
1521        * platform/graphics/transforms/MatrixTransformOperation.h:
1522        * platform/graphics/transforms/PerspectiveTransformOperation.h:
1523        * platform/graphics/transforms/RotateTransformOperation.h:
1524        * platform/graphics/transforms/ScaleTransformOperation.h:
1525        * platform/graphics/transforms/SkewTransformOperation.h:
1526        * platform/graphics/transforms/TranslateTransformOperation.h:
1527        - Add 'final' to class declaration.
1528        - Add 'override' to overridden methods.
1529        - Add type-checked cast via TRANSFORMOPERATION_TYPE_CASTS macro.
1530        - Move implementation of operator==(const TransformOperation&)
1531          from header to source file so it is able to use a type-checked
1532          cast, and switch back to using a reference instead of a
1533          pointer.
1534        - Add or update ASSERT in private constructor to check for
1535          correct OperationType in classes that represent multiple
1536          types.
1537
1538        * platform/graphics/transforms/Matrix3DTransformOperation.cpp:
1539        (WebCore::Matrix3DTransformOperation::operator==): Added.
1540
1541        * platform/graphics/transforms/MatrixTransformOperation.cpp:
1542        (WebCore::Matrix3DTransformOperation::operator==): Added.
1543        (WebCore::MatrixTransformOperation::blend):
1544        - Switch to type-checked casts and use a reference.
1545
1546        * platform/graphics/transforms/PerspectiveTransformOperation.cpp:
1547        (WebCore::Matrix3DTransformOperation::operator==): Added.
1548        (WebCore::PerspectiveTransformOperation::blend):
1549        * platform/graphics/transforms/RotateTransformOperation.cpp:
1550        (WebCore::Matrix3DTransformOperation::operator==): Added.
1551        (WebCore::RotateTransformOperation::blend):
1552        * platform/graphics/transforms/ScaleTransformOperation.cpp:
1553        (WebCore::Matrix3DTransformOperation::operator==): Added.
1554        (WebCore::ScaleTransformOperation::blend):
1555        * platform/graphics/transforms/SkewTransformOperation.cpp:
1556        (WebCore::Matrix3DTransformOperation::operator==): Added.
1557        (WebCore::SkewTransformOperation::blend):
1558        * platform/graphics/transforms/TranslateTransformOperation.cpp:
1559        (WebCore::Matrix3DTransformOperation::operator==): Added.
1560        (WebCore::TranslateTransformOperation::blend):
1561        - Switch to type-checked casts.
1562
1563        * platform/graphics/transforms/TransformOperation.h:
1564        (WebCore::TransformOperation::isRotateTransformOperationType):
1565        (WebCore::TransformOperation::isScaleTransformOperationType):
1566        (WebCore::TransformOperation::isSkewTransformOperationType):
1567        (WebCore::TransformOperation::isTranslateTransformOperationType):
1568        - Add type-checking methods used in constructors and type-checked
1569          casts.
1570        - Define TRANSFORMOPERATION_TYPE_CASTS macro used by subclasses.
1571
15722014-05-25  David Kilzer  <ddkilzer@apple.com>
1573
1574        Crash in WebCore::TextResourceDecoder::checkForCSSCharset
1575        <http://webkit.org/b/133257>
1576        <rdar://problem/17027109>
1577
1578        Reviewed by Alexey Proskuryakov.
1579
1580        Test: fast/encoding/css-charset-missing-semi-colon-and-newline.html
1581
1582        * loader/TextResourceDecoder.cpp:
1583        (WebCore::TextResourceDecoder::checkForCSSCharset): Add early
1584        return.
1585
15862014-05-24  Eric Carlson  <eric.carlson@apple.com>
1587
1588        [Mac] preload AVAssetTrack properties before asking for them
1589        https://bugs.webkit.org/show_bug.cgi?id=133240
1590
1591        Reviewed by Jer Noble.
1592
1593        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1594        (WebCore::assetTrackMetadataKeyNames): Add preferredTransform and naturalSize to the list
1595            of properties we preload.
1596
15972014-05-24  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
1598
1599        Remove one of the CSSProperty constructor
1600        https://bugs.webkit.org/show_bug.cgi?id=131094
1601
1602        Reviewed by Darin Adler.
1603
1604        Remove one of the CSSProperty constructor, because it is obsolete.
1605
1606        * css/CSSProperty.h:
1607        (WebCore::CSSProperty::CSSProperty): Deleted.
1608        * css/StyleProperties.h:
1609        (WebCore::StyleProperties::PropertyReference::toCSSProperty):
1610
16112014-05-23  Simon Fraser  <simon.fraser@apple.com>
1612
1613        Rename ScrollingTreeScrollingNode's m_scrollPosition to make it clear that it's the value committed from the state tree
1614        https://bugs.webkit.org/show_bug.cgi?id=133254
1615
1616        Reviewed by Tim Horton.
1617
1618        Make ScrollingTreeScrollingNode::scrollPosition() pure virtual, and rename
1619        the member variable and associated getter to make it clear that they relate
1620        to the last committed scroll position.
1621
1622        * page/scrolling/ScrollingTreeScrollingNode.cpp:
1623        (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
1624        * page/scrolling/ScrollingTreeScrollingNode.h:
1625        (WebCore::ScrollingTreeScrollingNode::lastCommittedScrollPosition):
1626        (WebCore::ScrollingTreeScrollingNode::scrollPosition): Deleted.
1627
16282014-05-23  Simon Fraser  <simon.fraser@apple.com>
1629
1630        Share some more ScrollingTreeScrollingNode code
1631        https://bugs.webkit.org/show_bug.cgi?id=133248
1632
1633        Reviewed by Sam Weinig.
1634
1635        Push scrollBy(), scrollByWithoutContentEdgeConstraints() and setScrollPosition()
1636        down to ScrollingTreeFrameScrollingNode.
1637        
1638        This requires that scrollPosition() return the right thing for each class, so make
1639        it virtual. Future patches will reduce the confusion between the committed scroll
1640        position and the one derived from layers.
1641
1642        * page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
1643        (WebCore::ScrollingTreeFrameScrollingNode::scrollBy):
1644        (WebCore::ScrollingTreeFrameScrollingNode::scrollByWithoutContentEdgeConstraints):
1645        (WebCore::ScrollingTreeFrameScrollingNode::setScrollPosition):
1646        * page/scrolling/ScrollingTreeFrameScrollingNode.h:
1647        * page/scrolling/ScrollingTreeScrollingNode.h:
1648        (WebCore::ScrollingTreeScrollingNode::scrollPosition):
1649        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
1650        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
1651        (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPosition): Deleted.
1652        (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollBy): Deleted.
1653        (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollByWithoutContentEdgeConstraints): Deleted.
1654        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
1655        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
1656        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
1657        (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollBy):
1658        (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
1659        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollPosition):
1660        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
1661        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollBy): Deleted.
1662        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollByWithoutContentEdgeConstraints): Deleted.
1663
16642014-05-24  Chris Fleizach  <cfleizach@apple.com>
1665
1666        AX: fix coordinate mapping for iOS accessibility
1667        https://bugs.webkit.org/show_bug.cgi?id=133188
1668
1669        Reviewed by Sam Weinig.
1670
1671        Make WebCore aware of the accessibility point/rect conversion methods.
1672
1673        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
1674        (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
1675        (-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]):
1676        * loader/EmptyClients.h:
1677        * page/Chrome.cpp:
1678        (WebCore::Chrome::accessibilityScreenToRootView):
1679        (WebCore::Chrome::rootViewToAccessibilityScreen):
1680        * page/Chrome.h:
1681        * page/ChromeClient.h:
1682        * platform/HostWindow.h:
1683
16842014-05-24  Zalan Bujtas  <zalan@apple.com>
1685
1686        Subpixel rendering: Non-compositing transforms with subpixel coordinates paint to wrong position.
1687        https://bugs.webkit.org/show_bug.cgi?id=133184
1688        <rdar://problem/16745606>
1689
1690        Reviewed by Simon Fraser.
1691
1692        Snapping relative negative coordinate values should produce the same position as if they were
1693        positive absolute coordinates.
1694        When a child box gets positioned off of its containers towards top/left, its relative coordinates
1695        become negative. Pixel snapping those negative values should produce the same
1696        final painting position as if the child box was fixed positioned with positive coordinates.
1697        Since halfway values always round away from zero, negative and positive halfway values
1698        produce opposite rounding direction.
1699        This patch ensures that negative halfway values round to the direction as if they were positive.  
1700
1701        Test: fast/layers/hidpi-floor-negative-coordinate-values-to-maintain-rounding-direction.html
1702
1703        * platform/LayoutUnit.h:
1704        (WebCore::roundToDevicePixel):
1705        * rendering/RenderLayer.cpp:
1706        (WebCore::RenderLayer::paintLayerByApplyingTransform):
1707
17082014-05-24  Frédéric Wang  <fred.wang@free.fr>
1709
1710        Use size variants and glyph assembly from the MATH data.
1711        https://bugs.webkit.org/show_bug.cgi?id=130322
1712
1713        Reviewed by Chris Fleizach.
1714
1715        This patch modifies the RenderMathMLOperator code to use the MATH table
1716        when one is provided in the current font on the <math> tag. More
1717        precisely, the MathVariants table is used to draw a size variant or
1718        a glyph assembly. The displaystyle attribute is not supported yet, so
1719        for now large operators are always assumed to be in display style. The
1720        MATH support does not work well with all platforms+fonts, so at the
1721        moment the default font-family on the <math> is not changed.
1722
1723        Tests: mathml/opentype/large-operators-LatinModern.html
1724               mathml/opentype/opentype-stretchy.html
1725               mathml/opentype/vertical-LatinModern.html
1726
1727        * css/mathml.css: We only specify the default font-family on the math root, so that people can easily style the mathematics.
1728        For now, old fonts without the MATH table are still used as the default.
1729        (math):
1730        (math, mfenced > *): Deleted.
1731        (mo, mfenced): Deleted.
1732        * platform/graphics/SimpleFontData.cpp: don't return the math data if the font is loading.
1733        (WebCore::SimpleFontData::mathData):
1734        * platform/graphics/opentype/OpenTypeMathData.cpp: update #ifdef so that disabling ENABLE_OPENTYPE_MATH won't lead to errors with unused parameters.
1735        (WebCore::OpenTypeMathData::OpenTypeMathData):
1736        (WebCore::OpenTypeMathData::getMathConstant):
1737        (WebCore::OpenTypeMathData::getItalicCorrection):
1738        (WebCore::OpenTypeMathData::getMathVariants):
1739        * rendering/mathml/RenderMathMLOperator.cpp:
1740        (WebCore::RenderMathMLOperator::boundsForGlyph):
1741        (WebCore::RenderMathMLOperator::heightForGlyph):
1742        (WebCore::RenderMathMLOperator::advanceForGlyph):
1743        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths): We handle preferred width of size variants.
1744        (WebCore::RenderMathMLOperator::shouldAllowStretching): This function now only returns whether the operator will stretch and no longer has side effect.
1745        (WebCore::RenderMathMLOperator::getGlyphAssemblyFallBack): We add a function to convert from the MathVariant table data to the format supported by RenderMathMLOperator.
1746        (WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator): We add a function to get the glyph that will be used for large operators in display style.
1747        (WebCore::RenderMathMLOperator::findStretchyData): We make this function handle size variants.
1748        (WebCore::RenderMathMLOperator::updateStyle): We handle size variants.
1749        (WebCore::RenderMathMLOperator::paint): We handle size variants.
1750        * rendering/mathml/RenderMathMLOperator.h:
1751
17522014-05-23  Tim Horton  <timothy_horton@apple.com>
1753
1754        REGRESSION (iOS WebKit2): requestAnimationFrame fires more than once between layer tree commits
1755        https://bugs.webkit.org/show_bug.cgi?id=132794
1756        <rdar://problem/16877909>
1757
1758        Reviewed by Simon Fraser.
1759
1760        Virtualize DisplayRefreshMonitor so that WebKit2 can implement its own DisplayRefreshMonitor for UI-side compositing views.
1761        This allows the synchronization of requestAnimationFrame callbacks with UI-side compositing painting.
1762
1763        * WebCore.exp.in:
1764        * WebCore.xcodeproj/project.pbxproj:
1765        
1766        * page/ChromeClient.h:
1767        (WebCore::ChromeClient::graphicsLayerFactory):
1768        (WebCore::ChromeClient::createDisplayRefreshMonitor):
1769        * platform/graphics/DisplayRefreshMonitorFactory.h: Added.
1770        * platform/graphics/GraphicsLayerUpdater.cpp:
1771        (WebCore::GraphicsLayerUpdater::createDisplayRefreshMonitor):
1772        * platform/graphics/GraphicsLayerUpdater.h:
1773        * rendering/RenderLayerCompositor.cpp:
1774        (WebCore::RenderLayerCompositor::createDisplayRefreshMonitor):
1775        * rendering/RenderLayerCompositor.h:
1776        Give the ChromeClient a chance to provide us with a custom DisplayRefreshMonitor.
1777        If it does not, we'll fall back to making a DisplayRefreshMonitorMac or
1778        DisplayRefreshMonitorIOS depending on the platform.
1779
1780        * dom/ScriptedAnimationController.cpp:
1781        * dom/ScriptedAnimationController.h:
1782        * platform/graphics/DisplayRefreshMonitor.cpp:
1783        * platform/graphics/DisplayRefreshMonitor.h:
1784        * platform/graphics/DisplayRefreshMonitorClient.cpp: Added.
1785        * platform/graphics/DisplayRefreshMonitorClient.h: Added.
1786        * platform/graphics/DisplayRefreshMonitorManager.cpp: Added.
1787        * platform/graphics/DisplayRefreshMonitorManager.h: Added.
1788        Split DisplayRefreshMonitor.cpp into one file per class.
1789        Use references in a few places.
1790        Remove some useless comments.
1791
1792        * platform/graphics/DisplayRefreshMonitor.cpp:
1793        (WebCore::DisplayRefreshMonitor::displayDidRefresh):
1794        Use takeAny() and remove a FIXME about it not existing.
1795
1796        * platform/graphics/DisplayRefreshMonitorClient.cpp: Added.
1797        (WebCore::DisplayRefreshMonitorClient::fireDisplayRefreshIfNeeded):
1798        Use an early return instead of having the whole function body in an if().
1799
1800        * platform/graphics/ios/DisplayRefreshMonitorIOS.h: Added.
1801        * platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
1802        * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
1803        * platform/graphics/mac/DisplayRefreshMonitorMac.h: Added.
1804        Virtualize DisplayRefreshMonitorIOS and DisplayRefreshMonitorMac,
1805        and move things specific to each of them out of DisplayRefreshMonitor itself.
1806
18072014-05-23  Yusuke Suzuki  <utatane.tea@gmail.com>
1808
1809        CSS JIT: Apply backtracking optimization to adjacent backtracking
1810        https://bugs.webkit.org/show_bug.cgi?id=132951
1811
1812        Reviewed by Benjamin Poulain.
1813
1814        Apply the backtracking optimization to the adjacent backtracking.
1815        This optimization is already done for the descendant backtracking.
1816        We apply this to the adjacent backtracking similarly.
1817
1818        Test: fast/selectors/backtracking-adjacent-optimized.html
1819
1820        * cssjit/SelectorCompiler.cpp:
1821        (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
1822        (WebCore::SelectorCompiler::solveAdjacentBacktrackingActionForDirectAdjacent):
1823        (WebCore::SelectorCompiler::solveBacktrackingAction):
1824        (WebCore::SelectorCompiler::computeBacktrackingStartOffsetInChain):
1825        (WebCore::SelectorCompiler::computeBacktrackingHeightFromDescendant):
1826        (WebCore::SelectorCompiler::computeBacktrackingWidthFromIndirectAdjacent):
1827        (WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
1828        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
1829        (WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures):
1830        (WebCore::SelectorCompiler::computeBacktrackingStartHeightFromDescendant): Deleted.
1831
18322014-05-23  Alex Christensen  <achristensen@webkit.org>
1833
1834        Make CSS JIT run on ARM64.
1835        https://bugs.webkit.org/show_bug.cgi?id=133156
1836
1837        Reviewed by Benjamin Poulain.
1838
1839        * cssjit/FunctionCall.h:
1840        (WebCore::FunctionCall::saveAllocatedRegisters):
1841        (WebCore::FunctionCall::restoreAllocatedRegisters):
1842        Use StackAllocator's new push and pop functions to push and pop a vector instead of iterating it.
1843        * cssjit/RegisterAllocator.h:
1844        (WebCore::RegisterAllocator::reserveCalleeSavedRegisters):
1845        (WebCore::RegisterAllocator::restoreCalleeSavedRegisters):
1846        Return a vector of registers to allocate instead of doing the allocation to make the RegisterAllocator
1847        not need to know about the StackAllocator and to use the new vector push and pop functions.
1848        (WebCore::RegisterAllocator::~RegisterAllocator):
1849        Store RegisterIDs instead of StackReferences to avoid needing to know about the stack.
1850        * cssjit/SelectorCompiler.cpp:
1851        (WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
1852        Removed the requirement for assert to be disabled to print disassembly when debugging css jit.
1853        (WebCore::SelectorCompiler::SelectorCodeGenerator::generatePrologue):
1854        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateEpilogue):
1855        Added to correctly push the link register and frame pointer.
1856        This is required if the jit code calls a function on arm64 and helpful for debugging tools on x86_64.
1857        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
1858        Generate the prologue and epilogue which respectively push and pop
1859        the link register, frame pointer, and callee saved registers if needed.
1860        * cssjit/StackAllocator.h:
1861        (WebCore::StackAllocator::push):
1862        (WebCore::StackAllocator::pop):
1863        Added new vector push and pop functions to use stp and ldb instructions on arm64.
1864
18652014-05-23  Jeremy Jones  <jeremyj@apple.com>
1866
1867        Hide fullscreen immediately when switching tabs.
1868        https://bugs.webkit.org/show_bug.cgi?id=133239
1869
1870        Reviewed by Eric Carlson.
1871
1872        This change allows fullscreen to disappear immediately while still cleaning
1873        up fullscreen normally.
1874
1875        * WebCore.exp.in:
1876        * platform/ios/WebVideoFullscreenControllerAVKit.h:
1877        renamed function to requestHideAndExitFullscreen
1878
1879        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
1880        renamed function to requestHideAndExitFullscreen
1881
1882        (-[WebVideoFullscreenController requestHideAndExitFullscreen]):
1883        rename of requestExitFullscreen that also hides.
1884
1885        (-[WebVideoFullscreenController requestExitFullscreen]): Deleted.
1886        * platform/ios/WebVideoFullscreenInterfaceAVKit.h: declare requestHideAndExitFullscreen()
1887        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1888        (WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen):
1889        this hides the window before requesting exitfullscreen from the model.
1890
18912014-05-23  Tim Horton  <timothy_horton@apple.com>
1892
1893        [iOS] WKPDFView should have a page indicator
1894        https://bugs.webkit.org/show_bug.cgi?id=133109
1895        <rdar://problem/16383003>
1896
1897        Reviewed by Anders Carlsson.
1898
1899        * English.lproj/Localizable.strings:
1900
19012014-05-23  Enrica Casucci  <enrica@apple.com>
1902
1903        Remove invalid ASSERT in wordRangeForPosition.
1904        https://bugs.webkit.org/show_bug.cgi?id=133232
1905
1906        Reviewed by Ryosuke Niwa.
1907
1908        In WK2 for iOS this function is called on every selection change.
1909        The selection could be set by Javascript in an element that is not visible.
1910        In that case we won't be able to create a VisiblePosition therefore wordRangeForPosition
1911        should not ASSERT that the VisiblePosition is not null, but rather
1912        perform an early return if it is null.
1913
1914        * editing/VisibleUnits.cpp:
1915        (WebCore::wordRangeFromPosition):
1916
19172014-05-23  Manuel Rego Casasnovas  <rego@igalia.com>
1918
1919        [CSS Grid Layout] Use gridRowCount() and gridColumnCount() when possible
1920        https://bugs.webkit.org/show_bug.cgi?id=133213
1921
1922        Reviewed by Sergio Villar Senin.
1923
1924        Use gridRowCount() and gridColumnCount() instead of m_grid.size() and
1925        m_grid[0].size() to make the code more descriptive and easier to
1926        understand.
1927
1928        No new tests (No change in behavior).
1929
1930        * rendering/RenderGrid.cpp:
1931        (WebCore::RenderGrid::growGrid):
1932        (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
1933
19342014-05-23  Alexey Proskuryakov  <ap@apple.com>
1935
1936        REGRESSION (r153917): Chart for the Category Explorer within Quicken Essentials
1937        does not draw until you force a redraw
1938        https://bugs.webkit.org/show_bug.cgi?id=133228
1939        <rdar://problem/15221231>
1940
1941        Reviewed by Simon Fraser.
1942
1943        * platform/RuntimeApplicationChecks.cpp: (WebCore::applicationIsQuickenEssentials):
1944        * platform/RuntimeApplicationChecks.h:
1945        Added a check for Quicken Essentials.
1946
1947        * platform/mac/WidgetMac.mm: (WebCore::Widget::paint): Don't do an early return
1948        for Quicken Essentials, it depends on drawing to update its layer.
1949
19502014-05-23  Mihnea Ovidenie  <mihnea@adobe.com>
1951
1952        REGRESSION(r169105): fast/regions/cssom/region-range-for-box-crash.html is more crashy than before
1953        https://bugs.webkit.org/show_bug.cgi?id=133124
1954
1955        Reviewed by David Hyatt.
1956
1957        When adjusting the end points of a subtree selection in the case of a document
1958        with named flows, we have to make sure that we pass the computed end
1959        points to the visible selection algorithm only if the end points are
1960        part of the same subtree, otherwise assume a selection clear behavior.
1961
1962        The test fast/regions/cssom/region-range-for-box-crash.html is used to
1963        test this behavior.
1964
1965        * rendering/SelectionSubtreeRoot.cpp:
1966        (WebCore::SelectionSubtreeRoot::adjustForVisibleSelection):
1967        (WebCore::SelectionSubtreeRoot::selectionStartEndPositions): Moved to header file.
1968        * rendering/SelectionSubtreeRoot.h:
1969        (WebCore::SelectionSubtreeRoot::selectionStartEndPositions):
1970
19712014-05-23  Jeremy Jones  <jeremyj@apple.com>
1972
1973        reset m_havePreparedToPlay when changing media engines.
1974        https://bugs.webkit.org/show_bug.cgi?id=133199
1975
1976        Reviewed by Eric Carlson.
1977
1978        If a play request comes in before the media player is created, m_havePreparedToPlay
1979        is set to true. But when the player is created, this prevents the new player from
1980        getting the prepare call.
1981
1982        * html/HTMLMediaElement.cpp:
1983        (WebCore::HTMLMediaElement::mediaPlayerEngineUpdated): set m_havePreparedToPlay false.
1984
19852014-05-23  Oliver Hunt  <oliver@apple.com>
1986
1987        Navigator object needs to have properties directly on the instance object
1988        https://bugs.webkit.org/show_bug.cgi?id=133221
1989
1990        Reviewed by Mark Lam.
1991
1992        Flag the Navigator object as requiring properties to be on the instance
1993        as there were a few compatibility issues when on the prototype.
1994
1995        * bindings/scripts/CodeGeneratorJS.pm:
1996        (InterfaceRequiresAttributesOnInstance):
1997
19982014-05-23  Simon Fraser  <simon.fraser@apple.com>
1999
2000        Switch CSSGradientValue to use more references
2001        https://bugs.webkit.org/show_bug.cgi?id=133206
2002
2003        Reviewed by Andreas Kling.
2004
2005        Switch from pointers to references in various places.
2006
2007        * css/CSSGradientValue.cpp:
2008        (WebCore::CSSGradientValue::image):
2009        (WebCore::CSSGradientValue::addStops):
2010        (WebCore::positionFromValue):
2011        (WebCore::CSSGradientValue::computeEndPoint):
2012        (WebCore::CSSLinearGradientValue::createGradient):
2013        (WebCore::CSSRadialGradientValue::resolveRadius):
2014        (WebCore::CSSRadialGradientValue::createGradient):
2015        * css/CSSGradientValue.h:
2016
20172014-05-23  Zalan Bujtas  <zalan@apple.com>
2018
2019        Subpixel rendering: Make webkit-box-shadow painting subpixel aware.
2020        https://bugs.webkit.org/show_bug.cgi?id=133201
2021        <rdar://problem/16072830>
2022
2023        Reviewed by Simon Fraser.
2024
2025        This patch enables webkit-box-shadow to be painted on a subpixel position. However, we
2026        still truncate -webkit-box-shadow property values. Tracked here: http://webkit.org/b/133202
2027
2028        Test: fast/box-shadow/hidpi-webkit-box-shadow-subpixel-position.html
2029
2030        * platform/graphics/FloatRoundedRect.cpp:
2031        (WebCore::FloatRoundedRect::inflateWithRadii): same as in from RoundedRect.
2032        (WebCore::FloatRoundedRect::adjustRadii): same as in from RoundedRect.
2033        * platform/graphics/FloatRoundedRect.h:
2034        * rendering/RenderBoxModelObject.cpp:
2035        (WebCore::RenderBoxModelObject::paintBoxShadow):
2036
20372014-05-22  peavo@outlook.com  <peavo@outlook.com>
2038
2039        [Curl] Crash when exceeding maximum cache limit.
2040        https://bugs.webkit.org/show_bug.cgi?id=133185
2041
2042        Reviewed by Brent Fulgham.
2043
2044        When the maximum cache limit is exceeded, I get a crash.
2045        This happens when deleting cache entries, because a reference to the url string object in the LRU list
2046        is used as a parameter to invalidateCacheEntry(), when called from makeRoomForNewEntry().
2047        When the string is removed from the LRU list in makeRoomForNewEntry(), the string is deleted.
2048        Next, the string is accessed again to remove the url from the index, and we crash.
2049
2050        This can be fixed by removing the string from the LRU list after it is removed from the index.
2051
2052        Fixing the crash also revealed an infinite loop problem.
2053        If the url for some reason only exist in the LRU list, and not in the index,
2054        we will inifitely loop in makeRoomForNewEntry(), trying to remove this url from the cache, but never succeeding.
2055        This can be fixed by removing the url from the LRU list, also when it's not in the index.
2056
2057        * platform/network/curl/CurlCacheManager.cpp:
2058        (WebCore::CurlCacheManager::makeRoomForNewEntry): Avoid infinite loop by checking if there are more cache entries to remove.
2059        (WebCore::CurlCacheManager::invalidateCacheEntry): Avoid crash and infinite loop by removing url from LRU list last.
2060
20612014-05-22  Simon Fraser  <simon.fraser@apple.com>
2062
2063        Make viewport units work in CSS gradients
2064        https://bugs.webkit.org/show_bug.cgi?id=133204
2065        <rdar://problem/17012259>
2066        
2067        Reviewed by Tim Horton.
2068        
2069        Make viewport percentage lengths work in gradients.
2070
2071        Test: fast/gradients/viewport-units-gradient.html
2072
2073        * css/CSSGradientValue.cpp:
2074        (WebCore::CSSGradientValue::addStops):
2075        (WebCore::CSSLinearGradientValue::createGradient):
2076        (WebCore::CSSRadialGradientValue::createGradient):
2077        * css/CSSGradientValue.h:
2078
20792014-05-22  Benjamin Poulain  <bpoulain@apple.com>
2080
2081        [iOS][WK2] Add support for minimal-ui viewports
2082        https://bugs.webkit.org/show_bug.cgi?id=133162
2083
2084        Reviewed by Simon Fraser.
2085
2086        Add support for minimal-ui directly into the Viewport configuration.
2087
2088        ViewportConfiguration knows about two kinds of layout size in scrollview coordinates:
2089        -normal size
2090        -minimal ui size.
2091
2092        Initially, the page is initialized with resetMinimalUI() and starts with a normal layout.
2093
2094        At any time before the main resource is loaded, the Web page can update its viewport meta tag
2095        to include minimal-ui. The viewport configuration is updated immediately to reflect the minimal-ui
2096        layout size. Any layout after that takes minimal-ui into account.
2097
2098        * WebCore.exp.in:
2099        * css/LengthFunctions.cpp:
2100        (WebCore::minimumValueForLength):
2101        (WebCore::floatValueForLength):
2102        * css/StyleResolver.cpp:
2103        (WebCore::StyleResolver::viewportPercentageValue):
2104        * dom/ViewportArguments.h:
2105        (WebCore::ViewportArguments::operator==):
2106        * page/FrameView.cpp:
2107        (WebCore::FrameView::setViewportSizeForCSSViewportUnits):
2108        (WebCore::FrameView::viewportSizeForCSSViewportUnits):
2109        (WebCore::FrameView::setViewportSize): Deleted.
2110        (WebCore::FrameView::viewportSize): Deleted.
2111        * page/FrameView.h:
2112        * page/ViewportConfiguration.cpp:
2113        (WebCore::ViewportConfiguration::ViewportConfiguration):
2114        (WebCore::ViewportConfiguration::setMinimumLayoutSize):
2115        (WebCore::ViewportConfiguration::setMinimumLayoutSizeForMinimalUI):
2116        (WebCore::ViewportConfiguration::activeMinimumLayoutSizeInScrollViewCoordinates):
2117        (WebCore::ViewportConfiguration::resetMinimalUI):
2118        (WebCore::ViewportConfiguration::pageWillRenderFirstFrame):
2119        (WebCore::ViewportConfiguration::initialScale):
2120        (WebCore::ViewportConfiguration::minimumScale):
2121        (WebCore::ViewportConfiguration::updateConfiguration):
2122        (WebCore::ViewportConfiguration::layoutWidth):
2123        (WebCore::ViewportConfiguration::layoutHeight):
2124        (WebCore::ViewportConfiguration::description):
2125        * page/ViewportConfiguration.h:
2126        (WebCore::ViewportConfiguration::minimumLayoutSizeForMinimalUI):
2127        (WebCore::ViewportConfiguration::usesMinimalUI):
2128        * rendering/RenderView.cpp:
2129        (WebCore::RenderView::viewportSizeForCSSViewportUnits):
2130        (WebCore::RenderView::viewportSize): Deleted.
2131        * rendering/RenderView.h:
2132
21332014-05-22  Ryosuke Niwa  <rniwa@webkit.org>
2134
2135        Can't type in status in facebook.com on iOS Safari because keyboard disappears
2136        https://bugs.webkit.org/show_bug.cgi?id=133196
2137
2138        Reviewed by Geoffrey Garen.
2139
2140        Fixed the bug by rolling out r156252.
2141
2142        When the user taps on the status on facebook.com, the page focuses a textarea,
2143        which is then made momentarily invisible by setting display:none.
2144        The page then removes display:none later and expects the textarea to be still focused.
2145
2146        With r156252, the focus is removed after the page sets display:none and the keyboard disappears.
2147        Since the focus is never reset on the textarea, the user can never type in anything.
2148
2149        The specification may need to change here given that this (rather odd) behavior/expectation exists
2150        on one of the most popular websites on the Web.
2151
2152        * dom/Document.cpp:
2153        (WebCore::Document::Document):
2154        (WebCore::Document::recalcStyle):
2155        (WebCore::Document::updateLayout):
2156        (WebCore::Document::resetHiddenFocusElementSoon): Deleted.
2157        (WebCore::Document::resetHiddenFocusElementTimer): Deleted.
2158        * dom/Document.h:
2159
21602014-05-22  Myles C. Maxfield  <mmaxfield@apple.com>
2161
2162        http/tests/security/xss-DENIED-xsl-document-redirect.xml fails with NetworkProcess
2163        https://bugs.webkit.org/show_bug.cgi?id=132523
2164
2165        Reviewed by Alexey Proskuryakov.
2166
2167        We should not manufacture a response in the event of an error during a
2168        synchronous XHR. In addition, this test removes two places that are
2169        sensitive to such a manufactured response.
2170
2171        Updates test expectations.
2172
2173        * loader/DocumentThreadableLoader.cpp:
2174        (WebCore::DocumentThreadableLoader::loadRequest): Don't inspect a
2175        loader response if there is an error
2176        * platform/network/cf/ResourceHandleCFNet.cpp:
2177        (WebCore::ResourceHandle::platformLoadResourceSynchronously): Do not
2178        manufacture a response
2179        * platform/network/mac/ResourceHandleMac.mm:
2180        (WebCore::ResourceHandle::platformLoadResourceSynchronously): Do not
2181        manufacture a response
2182        * xml/XSLTProcessorLibxslt.cpp:
2183        (WebCore::docLoaderFunc): Only use the response's URL if no error
2184        occurred.
2185
21862014-05-22  Myles C. Maxfield  <litherum@gmail.com>
2187
2188        Unreviewed typo fix.
2189
2190        Reviewed by NOBODY.
2191
2192        No new tests.
2193
2194        * platform/graphics/mac/FontMac.mm:
2195        (WebCore::Font::dashesForIntersectionsWithRect): Accidentally said run.length() instead of glyphBuffer.size().
2196
21972014-05-22  Andreas Kling  <akling@apple.com>
2198
2199        [iOS WebKit2] Web process should try to shrink its memory footprint when going into background.
2200        <https://webkit.org/b/133197>
2201        <rdar://problem/17011561>
2202
2203        Make releaseMemory() public so we can call it from the process-will-suspend callback.
2204
2205        Reviewed by Gavin Barraclough.
2206
2207        * WebCore.exp.in:
2208        * platform/MemoryPressureHandler.h:
2209
22102014-05-22  Andreas Kling  <akling@apple.com>
2211
2212        Hook up a setting for showing detailed logging during memory pressure relief.
2213        <https://webkit.org/b/133194>
2214
2215        Make the pressure relief logger opt-in. Also make it flush memory back to the
2216        OS (for both malloc and FastMalloc) to get more accurate numbers at each step.
2217
2218        Reviewed by Gavin Barraclough.
2219
2220        * WebCore.exp.in:
2221        * platform/MemoryPressureHandler.cpp:
2222        * platform/MemoryPressureHandler.h:
2223        (WebCore::MemoryPressureHandler::ReliefLogger::ReliefLogger):
2224        (WebCore::MemoryPressureHandler::ReliefLogger::~ReliefLogger):
2225        (WebCore::MemoryPressureHandler::ReliefLogger::setLoggingEnabled):
2226        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
2227        (WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):
2228
22292014-05-22  Brady Eidson  <beidson@apple.com>
2230
2231        Don't scan for phone numbers in editable regions
2232        <rdar://problem/16949846> and https://bugs.webkit.org/show_bug.cgi?id=133192
2233
2234        Reviewed by Enrica Casucci.
2235
2236        No new tests (Currently untested WK2-only feature)
2237
2238        * editing/Editor.cpp:
2239        (WebCore::Editor::scanRangeForTelephoneNumbers): Skip the range if the Node is editable.
2240
22412014-05-22  Jeremy Jones  <jeremyj@apple.com>
2242
2243        Captions layout incorrectly in fullscreen.
2244        https://bugs.webkit.org/show_bug.cgi?id=133175
2245
2246        Reviewed by Eric Carlson.
2247
2248        When doing layout for fullscreen, geometry should be absolute so it is not influenced
2249        by the rest of the page. This change adds style for CSSPropertyPosition, CSSPropertyLeft,
2250        and CSSPropertyTop.
2251
2252        * html/shadow/MediaControlElements.cpp:
2253        (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
2254        Refactor style changes into updateStyleForTextTrackRepresentation().
2255        (WebCore::MediaControlTextTrackContainerElement::updateTimerFired):
2256        Refactor style changes into updateStyleForTextTrackRepresentation().
2257        (WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation):
2258        Refactor style changes into updateStyleForTextTrackRepresentation().
2259        (WebCore::MediaControlTextTrackContainerElement::updateStyleForTextTrackRepresentation):
2260        Consolidate style changes here. Include the two existing and three new style changes.
2261        * html/shadow/MediaControlElements.h:
2262        Declare updateStyleForTextTrackRepresentation().
2263
22642014-05-22  Simon Fraser  <simon.fraser@apple.com>
2265
2266        REGRESSION (r155977): Very stuttery 3D css animation on jtechcommunications.com
2267        https://bugs.webkit.org/show_bug.cgi?id=133179
2268        <rdar://problem/16864666>
2269
2270        Reviewed by Dean Jackson.
2271
2272        Revert code added in r155977 to try to pick a good contentsScale for layers
2273        based on a root-relative transform. This resulted in pages with too much 
2274        backing store, and too many cases where layers repainted during animations,
2275        causing stutter.
2276
2277        * platform/graphics/ca/GraphicsLayerCA.cpp:
2278        (WebCore::GraphicsLayerCA::GraphicsLayerCA):
2279        (WebCore::GraphicsLayerCA::flushCompositingState):
2280        (WebCore::GraphicsLayerCA::recursiveCommitChanges):
2281        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
2282        (WebCore::GraphicsLayerCA::updateContentsOpaque):
2283        (WebCore::GraphicsLayerCA::updateAnimations):
2284        (WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
2285        (WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
2286        (WebCore::GraphicsLayerCA::setTransformAnimationKeyframes):
2287        (WebCore::GraphicsLayerCA::updateContentsScale):
2288        (WebCore::clampedContentsScaleForScale): Deleted.
2289        (WebCore::maxScaleFromTransform): Deleted.
2290        (WebCore::GraphicsLayerCA::updateRootRelativeScale): Deleted.
2291        (WebCore::GraphicsLayerCA::getTransformFromAnimationsWithMaxScaleImpact): Deleted.
2292        * platform/graphics/ca/GraphicsLayerCA.h:
2293
22942014-05-22  Martin Hock  <mhock@apple.com>
2295
2296        [iOS] Enable -apple-system- styled elements to respond to system font size changes.
2297        https://bugs.webkit.org/show_bug.cgi?id=133186
2298        <rdar://problem/16583782>
2299
2300        Reviewed by Enrica Casucci.
2301
2302        * WebCore.exp.in:
2303        * WebCore.xcodeproj/project.pbxproj:
2304        * rendering/RenderThemeIOS.h:
2305        * rendering/RenderThemeIOS.mm:
2306        (WebCore::_contentSizeCategory):
2307        (WebCore::RenderThemeIOS::contentSizeCategory):
2308        (WebCore::RenderThemeIOS::setContentSizeCategory):
2309
23102014-05-22  Jer Noble  <jer.noble@apple.com>
2311
2312        [MSE] Stored samples are not freed when SourceBuffer is removed from MediaSource
2313        https://bugs.webkit.org/show_bug.cgi?id=133174
2314
2315        Reviewed by Eric Carlson.
2316
2317        Clear out stored MediaSamples from SourceBuffer's TrackBuffer storage when
2318        aborting loading. Also, report the memory cost of those samples, so that the
2319        SourceBuffer will be GCd more readily.
2320
2321        Add a mechanism for reporting the size of a MediaSample:
2322        * Modules/mediasource/SourceBuffer.h:
2323        * platform/MediaSample.h:
2324        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
2325        * platform/mock/mediasource/MockSourceBufferPrivate.cpp:
2326
2327        Track the memory usage of a SampleMap when adding and removing samples, as well
2328        as allowing the SampleMap to be cleared wholesale:
2329        * Modules/mediasource/SampleMap.cpp:
2330        (WebCore::SampleMap::clear): Release all stored MediaSamples.
2331        (WebCore::SampleMap::addSample): Update m_totalSize.
2332        (WebCore::SampleMap::removeSample): Ditto.
2333        * Modules/mediasource/SampleMap.h:
2334        (WebCore::SampleMap::SampleMap): Initialize m_totalSize.
2335        (WebCore::SampleMap::sizeInBytes): Simple accessor.
2336
2337        Clear the stored samples when loading is aborted, and report the extra memory
2338        cost
2339        * Modules/mediasource/SourceBuffer.cpp:
2340        (WebCore::SourceBuffer::SourceBuffer): Initialize m_reportedExtraMemoryCost.
2341        (WebCore::SourceBuffer::removedFromMediaSource): Clear all stored samples.
2342        (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Call reportExtraMemoryCost().
2343        (WebCore::SourceBuffer::reportExtraMemoryCost): Inform the vm of the new
2344            extra memory cost incurred by the object.
2345
23462014-05-22  Enrica Casucci  <enrica@apple.com>
2347
2348        REGRESSION (WebKit2): Keyboard should have Search button in duckduckgo.com.
2349        https://bugs.webkit.org/show_bug.cgi?id=133183
2350        <rdar://problem/17004207>
2351
2352        Reviewed by Geoff Garen.
2353
2354        Adding new export.
2355
2356        * WebCore.exp.in:
2357
23582014-05-22  Carlos Garcia Campos  <cgarcia@igalia.com>
2359
2360        REGRESSION(r163712): [GTK] Misspelling and grammar underline marks are no longer drawn
2361        https://bugs.webkit.org/show_bug.cgi?id=133047
2362
2363        Reviewed by Darin Adler.
2364
2365        Change two conditions changed by mistake in r163712.
2366
2367        * editing/TextCheckingHelper.cpp:
2368        (WebCore::findMisspellings): Enter the loop also when wordStart is 0.
2369        (WebCore::TextCheckingHelper::findFirstMisspelling): Skip the work
2370        when the text is a single character. Also reworked it to use a for
2371        loop to improve the readability.
2372
23732014-05-22  Piotr Grad  <p.grad@samsung.com>
2374
2375        Video is resumed with old playback rate.
2376        https://bugs.webkit.org/show_bug.cgi?id=132905
2377
2378        Reviewed by Philippe Normand.
2379
2380        Setting '0' playback rate is causing pipeline to pause.
2381        GStreamer player impl. exposed this information to upper layers but it should not.
2382        Solution is to hidden such situation behind m_playbackRatePause flag.
2383
2384        Test: media/video-paused-0-rate.html
2385
2386        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2387        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
2388        (WebCore::MediaPlayerPrivateGStreamer::play):
2389        (WebCore::MediaPlayerPrivateGStreamer::pause):
2390        (WebCore::MediaPlayerPrivateGStreamer::doSeek):
2391        (WebCore::MediaPlayerPrivateGStreamer::updatePlaybackRate):
2392        (WebCore::MediaPlayerPrivateGStreamer::paused):
2393        (WebCore::MediaPlayerPrivateGStreamer::setRate):
2394        (WebCore::MediaPlayerPrivateGStreamer::updateStates):
2395        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
2396
23972014-05-22  Antti Koivisto  <antti@apple.com>
2398
2399        Text markers don't paint on simple lines
2400        https://bugs.webkit.org/show_bug.cgi?id=133177
2401
2402        Reviewed by Anders Carlsson.
2403        
2404        Marker painting code does not yet support simple lines.
2405
2406        Tests: fast/text/mark-matches-rendering-simple-lines.html
2407               fast/text/mark-matches-rendering.html
2408
2409        * dom/DocumentMarkerController.cpp:
2410        (WebCore::DocumentMarkerController::addMarker):
2411        
2412            Force text blocks with markers to use line boxes.
2413
2414        * testing/Internals.cpp:
2415        (WebCore::Internals::setMarkedTextMatchesAreHighlighted):
2416        
2417            Expose this so we can make reftests for marker rendering.
2418
2419        * testing/Internals.h:
2420        * testing/Internals.idl:
2421
24222014-05-22  Manuel Rego Casasnovas  <rego@igalia.com>
2423
2424        [CSS Grid Layout] Guard RenderObject::isRenderGrid() method
2425        https://bugs.webkit.org/show_bug.cgi?id=132380
2426
2427        Reviewed by Benjamin Poulain.
2428
2429        Guard RenderObject::isRenderGrid() method under ENABLE_CSS_GRID_LAYOUT compilation flag.
2430
2431        * rendering/RenderBox.cpp:
2432        (WebCore::RenderBox::computeLogicalWidthInRegion):
2433        * rendering/RenderObject.h:
2434
24352014-05-21  Antti Koivisto  <antti@apple.com>
2436
2437        REGRESSION(r167870): Crash in simple line layout code with :after
2438        https://bugs.webkit.org/show_bug.cgi?id=133155
2439        <rdar://problem/16977696>
2440
2441        Reviewed by Darin Adler.
2442        
2443        Fix https://bugs.webkit.org/show_bug.cgi?id=132241 in a safer way.
2444        The underline behavior is tested by the existing fast/text/simple-lines-hover-underline.html
2445
2446        Test: fast/text/simple-lines-hover-after.html
2447
2448        * rendering/RenderBlock.cpp:
2449        (WebCore::RenderBlock::invalidateLineLayoutPath): Deleted.
2450
2451            Move to RenderBlockFlow.
2452
2453        * rendering/RenderBlock.h:
2454        (WebCore::RenderBlock::invalidateLineLayoutPath):
2455        * rendering/RenderBlockFlow.cpp:
2456        (WebCore::RenderBlockFlow::styleDidChange):
2457        
2458            Invalidate layout if style changes in a manner that makes us ineligible to use the simple line layout path.
2459
2460        (WebCore::RenderBlockFlow::invalidateLineLayoutPath):
2461        
2462            Drop the simple line layout on path invalidation if it exists. It may not be valid anymore.
2463            Also invalidate the layout if this happens so we'll reconstruct the lines later.
2464
2465        (WebCore::RenderBlockFlow::simpleLineLayout): Deleted.
2466        (WebCore::RenderBlockFlow::ensureLineBoxes):
2467        (WebCore::RenderBlockFlow::createLineBoxes): Deleted.
2468                
2469            Revert some of the changes made it r167870.
2470
2471        * rendering/RenderBlockFlow.h:
2472        (WebCore::RenderBlockFlow::simpleLineLayout):
2473        
2474            Add strong validity assert.
2475
24762014-05-21  Eric Carlson  <eric.carlson@apple.com>
2477
2478        [iOS] two media control button strings are not localized
2479        https://bugs.webkit.org/show_bug.cgi?id=133160
2480
2481        Reviewed by Geoffrey Garen.
2482
2483        * English.lproj/mediaControlsLocalizedStrings.js:
2484
24852014-05-21  Dean Jackson  <dino@apple.com>
2486
2487        [iOS] Update some of the media controls buttons to be bigger
2488        https://bugs.webkit.org/show_bug.cgi?id=133158
2489        <rdar://problem/16475828>
2490
2491        Reviewed by Simon Fraser.
2492
2493        The buttons in the media controls on iOS are too small
2494        to be comfortably pressed. Make them the size of the controls
2495        panel and the expected iOS button size (44x44px).
2496
2497        The artwork for the buttons now includes the padding. I've
2498        added a file from which you can edit the artwork, then
2499        copy it into the CSS (because editing directly in CSS is
2500        a huge pain).
2501
2502        So far just the play/pause and fullscreen button have been
2503        updated. There will be a follow-up patch to fix the remaining
2504        buttons and the scrubber.
2505
2506        * Modules/mediacontrols/assets-apple-iOS.svg: Added.
2507        * Modules/mediacontrols/mediaControlsiOS.css:
2508        (audio::-webkit-media-controls-panel):
2509        (audio::-webkit-media-controls-fullscreen-button):
2510        (audio::-webkit-media-controls-play-button):
2511        (audio::-webkit-media-controls-play-button:active):
2512        (audio::-webkit-media-controls-play-button.paused):
2513        (audio::-webkit-media-controls-fullscreen-button:active):
2514        (@media only screen and (-webkit-min-device-pixel-ratio: 2)): Deleted.
2515
25162014-05-21  Zalan Bujtas  <zalan@apple.com>
2517
2518        Garbage when rubber-banding at the right edge of a page zoomed to non-integral scale.
2519        https://bugs.webkit.org/show_bug.cgi?id=133139
2520        <rdar://problem/16503353>
2521
2522        Reviewed by Simon Fraser.
2523
2524        Do not pixel align the root content layer. The alignment code expands the graphics's layer size
2525        which makes the right and bottom tiles bigger than the content.
2526        Painting the body's background color produces pixel cracks, because the content can not
2527        fill the expanded tiles completely.
2528
2529        Not testable.
2530
2531        * platform/graphics/GraphicsLayerClient.h:
2532        (WebCore::GraphicsLayerClient::needsPixelAligment):
2533        * platform/graphics/ca/GraphicsLayerCA.cpp:
2534        (WebCore::GraphicsLayerCA::updateGeometry):
2535        (WebCore::GraphicsLayerCA::computePixelAlignment):
2536        * platform/graphics/ca/mac/TileGrid.mm:
2537        (WebCore::TileGrid::rectForTileIndex):
2538        * rendering/RenderLayerBacking.cpp:
2539        (WebCore::RenderLayerBacking::needsPixelAligment):
2540        * rendering/RenderLayerBacking.h:
2541
25422014-05-21  Radu Stavila  <stavila@adobe.com>
2543
2544        REGRESSION (r168046): Invalid layout in WebCore::RenderBox::containingBlockLogicalWidthForPositioned
2545        https://bugs.webkit.org/show_bug.cgi?id=132933
2546
2547        Reviewed by Darin Adler.
2548
2549        Invalid layout is performed when calling containingBlockLogicalWidthForPositioned for a RenderTableSection object.
2550
2551        Test: fast/multicol/newmulticol/table-section-crash.html
2552
2553        * rendering/RenderBox.cpp:
2554        (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
2555
25562014-05-21  Simon Pena  <simon.pena@samsung.com>
2557
2558        [EFL] Ensure EGLOffScreenContext::initialize calls platformMakeCurrent on the surface
2559        https://bugs.webkit.org/show_bug.cgi?id=124832
2560
2561        Reviewed by Antonio Gomes.
2562
2563        The original code was only calling platformMakeCurrent when the
2564        GL_EXT_robustness extension is supported: the alternate code path
2565        would only create a context, but it wouldn't make that context
2566        current. This patch ensures platformMakeCurrent is also called for
2567        the alternate code path, and, if it fails to make the context
2568        current, will destroy the context. Effectively, this makes both
2569        code paths behave in the same way.
2570
2571        * platform/graphics/surfaces/egl/EGLContext.cpp:
2572        (WebCore::EGLOffScreenContext::initialize):
2573
25742014-05-20  Brent Fulgham  <bfulgham@apple.com>
2575
2576        [Mac] DataCues do not work properly when rewinding video
2577        https://bugs.webkit.org/show_bug.cgi?id=133138
2578        <rdar://problem/16979086>
2579
2580        Reviewed by Eric Carlson.
2581
2582        Make the TrackPrivateBase responsible for knowing if a type of track needs a non-zero
2583        startTimeVariance value.
2584
2585        Also, correct a bug in the equality test for DataCue objects.
2586
2587        * html/track/DataCue.cpp:
2588        (WebCore::DataCue::isEqual): Handle the JSValue data types consistently, so that we don't attempt
2589        to compare a JSNull against a default JSValue object.
2590        * html/track/InbandTextTrack.cpp:
2591        (WebCore::InbandTextTrack::startTimeVariance): Added.
2592        * html/track/InbandTextTrack.h:
2593        * html/track/TextTrack.cpp:
2594        (WebCore::TextTrack::hasCue): Use new startTimeVariance method location.
2595        * html/track/TextTrack.h:
2596        (WebCore::TextTrack::startTimeVariance): Added.
2597        * html/track/TextTrackCue.cpp:
2598        (WebCore::TextTrackCue::hasEquivalentStartTime): Use new startTimeVariance location.
2599        * html/track/TextTrackCue.h:
2600        (WebCore::TextTrackCue::startTimeVariance): Deleted.
2601        * html/track/TextTrackCueGeneric.h:
2602        * platform/graphics/TrackPrivateBase.h:
2603        (WebCore::TrackPrivateBase::startTimeVariance): Added.
2604        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
2605
26062014-05-20  Mark Hahnenberg  <mhahnenberg@apple.com>
2607
2608        Watchdog timer should be lazily allocated
2609        https://bugs.webkit.org/show_bug.cgi?id=133135
2610
2611        Reviewed by Geoffrey Garen.
2612
2613        No new tests.
2614
2615        We incur a noticeable amount of overhead on some benchmarks due to checking if the Watchdog ever fired. 
2616        There is no reason to do this checking if we never activated the Watchdog, which can only be done through 
2617        JSContextGroupSetExecutionTimeLimit or JSContextGroupClearExecutionTimeLimit. 
2618
2619        By allocating the Watchdog lazily on the VM we can avoid all of the associated overhead when we don't use 
2620        these two API functions (which is true of most clients).
2621
2622        * bindings/js/JSEventListener.cpp:
2623        (WebCore::JSEventListener::handleEvent):
2624        * bindings/js/WorkerScriptController.cpp:
2625        (WebCore::WorkerScriptController::evaluate):
2626        (WebCore::WorkerScriptController::scheduleExecutionTermination):
2627        (WebCore::WorkerScriptController::isExecutionTerminating):
2628
26292014-05-20  Dean Jackson  <dino@apple.com>
2630
2631        [Mac] Allow popup menus to override default appearance
2632        https://bugs.webkit.org/show_bug.cgi?id=133129
2633
2634        Reviewed by Tim Horton.
2635
2636        WebKitSystemInterface's WKPopupMenu has a flag to hide
2637        the arrows at the end of a popup-menu (e.g. <select>).
2638        Expose that via adding a hasDefaultAppearance flag to
2639        PopupMenuStyle, which then passes it on to WKSI.
2640
2641        * platform/PopupMenuStyle.h:
2642        (WebCore::PopupMenuStyle::PopupMenuStyle): New flag in constructor.
2643        (WebCore::PopupMenuStyle::hasDefaultAppearance): New flag.
2644        * platform/mac/WebCoreSystemInterface.h: wkPopupMenu signature has changed to accept
2645        the new flag.
2646        * platform/mac/WebCoreSystemInterface.mm: Ditto.
2647        * rendering/RenderMenuList.cpp:
2648        (RenderMenuList::itemStyle): Pass in true as default appearance when creating
2649        the PopupMenuStyle. We don't need it.
2650        (RenderMenuList::menuStyle): In this case we pass in the negated value of
2651        style().hasAppearance(), which indicates if we are overriding the built-in drawing.
2652        * rendering/RenderSearchField.cpp:
2653        (WebCore::RenderSearchField::menuStyle): Use true as the default value.
2654
26552014-05-20  Eric Carlson  <eric.carlson@apple.com>
2656
2657        [Mac] do not deactivate an audio session that has running I/O
2658        https://bugs.webkit.org/show_bug.cgi?id=133127
2659
2660        Reviewed by Jer Noble.
2661
2662        * page/Settings.h:
2663        (WebCore::Settings::setShouldManageAudioSessionCategory): Renamed from setShouldManageAudioSession.
2664        (WebCore::Settings::shouldManageAudioSessionCategory): Renamed from shouldManageAudioSession.
2665        (WebCore::Settings::setShouldManageAudioSession): Deleted.
2666        (WebCore::Settings::shouldManageAudioSession): Deleted.
2667
2668        * platform/audio/mac/MediaSessionManagerMac.cpp:
2669        (MediaSessionManager::updateSessionState): Don't deactivate the session if there are any
2670            Video or Audio sessions.
2671
2672        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2673        (WebCore::MediaPlayerPrivateAVFoundationObjC::assetStatus): Drive-by change to log errors 
2674            returned by -statusOfValueForKey:error: in debug builds.
2675
26762014-05-20  Beth Dakin  <bdakin@apple.com>
2677
2678        REGRESSION: All non-mainframe scrollbars don't paint after r169065
2679        https://bugs.webkit.org/show_bug.cgi?id=133132
2680        -and corresponding-
2681        <rdar://problem/16968850>
2682
2683        Reviewed by Geoff Garen.
2684
2685        We should not universally return true here. This feature will only work for 
2686        scrollbars with layers.
2687        * platform/ScrollableArea.h:
2688        * platform/Scrollbar.cpp:
2689        (WebCore::Scrollbar::supportsUpdateOnSecondaryThread):
2690
26912014-05-20  Daniel Bates  <dabates@apple.com>
2692
2693        Element within flattened frame may update its scroll state during the layout phase of the wrong RenderView
2694        https://bugs.webkit.org/show_bug.cgi?id=133013
2695        <rdar://problem/16760154>
2696
2697        Reviewed by David Hyatt.
2698
2699        Fixes an issue where the scroll state of an element may be updated during the layout of the wrong
2700        RenderView. In particular, the scroll state of an element inside a CSS flex box in a flattened
2701        frame f is updated during the layout of the RenderView associated with the parent frame of f instead
2702        of during the layout of the RenderView associated with f.
2703
2704        The layout machinery assumes that the scroll state of each scrollable element is updated before the
2705        completion of layout for its associated RenderView. Currently we have logic to defer updating the scroll
2706        state of a scrollable element until completion of recursive layout. For a page with a flattened frame, we
2707        defer such updates until completion of layout for all RenderViews along the ancestor frame hierarchy of
2708        each flattened frame regardless of the RenderView associated with the element that originated the
2709        deferred scroll state request. Instead, only the RenderView associated with the element that deferred its
2710        scroll state update should dispatch the scroll state update.
2711
2712        Tests: fast/frames/flattening/scrollable-flexbox-inside-iframe-with-zero-height-and-needs-full-repaint-crash.html
2713               fast/frames/flattening/scrollable-flexbox-inside-iframe-with-zero-height-assertion-failure.html
2714
2715        * rendering/RenderBlock.cpp: Removed WTF::-prefix in typedef definition for ContinuationOutlineTableMap.
2716        (WebCore::UpdateScrollInfoAfterLayoutTransaction::UpdateScrollInfoAfterLayoutTransaction): Added; a struct
2717        that represents a RenderView v, nested transaction count, and a list of RenderBlocks in v that will need
2718        to have their scroll state updated.
2719        (WebCore::updateScrollInfoAfterLayoutTransactionStack): Added; returns the global stack of transactions.
2720        (WebCore::RenderBlock::willBeDestroyed): Call removeFromUpdateScrollInfoAfterLayoutTransaction(), which
2721        was formerly named as removeFromDelayedUpdateScrollInfoSet.
2722        (WebCore::currentUpdateScrollInfoAfterLayoutTransaction): Added; returns the top-most transaction in the
2723        global stack.
2724        (WebCore::RenderBlock::beginUpdateScrollInfoAfterLayoutTransaction): Modified as appropriate to make use
2725        of the global stack of transactions; formerly named startDelayUpdateScrollInfo.
2726        (WebCore::RenderBlock::endAndCommitUpdateScrollInfoAfterLayoutTransaction): Modified as appropriate to
2727        make use of the global stack of transactions; formerly named finishDelayUpdateScrollInfo.
2728        (WebCore::RenderBlock::removeFromUpdateScrollInfoAfterLayoutTransaction): Modified as appropriate to make
2729        use of the global stack of transactions; formerly named removeFromDelayedUpdateScrollInfoSet.
2730        (WebCore::RenderBlock::updateScrollInfoAfterLayout): Modified as appropriate to make use of the global
2731        stack of transactions.
2732        (WebCore::RenderBlock::layout): Ditto.
2733        (WebCore::RenderBlock::startDelayUpdateScrollInfo): Deleted.
2734        (WebCore::RenderBlock::finishDelayUpdateScrollInfo): Deleted.
2735        (WebCore::RenderBlock::removeFromDelayedUpdateScrollInfoSet): Deleted.
2736        * rendering/RenderBlock.h:
2737        * rendering/RenderBlockFlow.cpp:
2738        (WebCore::RenderBlockFlow::willBeDestroyed): Call removeFromUpdateScrollInfoAfterLayoutTransaction(), which
2739        was formerly named removeFromDelayedUpdateScrollInfoSet.
2740        * rendering/RenderDeprecatedFlexibleBox.cpp:
2741        (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox): Call {begin, end}UpdateScrollInfoAfterLayoutTransaction(),
2742        which was formerly named {start, end}DelayUpdateScrollInfo.
2743        (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox): Ditto.
2744        * rendering/RenderFlexibleBox.cpp:
2745        (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
2746
27472014-05-20  Beth Dakin  <bdakin@apple.com>
2748
2749        REGRESSION (r169065): Mountain Lion run-api-tests failures: ASSERTION FAILED: 
2750        Uncaught exception - -[NSRegularLegacyScrollerImp setPresentationValue:]: 
2751        unrecognized selector sent to instance 0x7ff51aa38000
2752        https://bugs.webkit.org/show_bug.cgi?id=133121
2753
2754        Reviewed by Tim Horton.
2755
2756        * platform/mac/ScrollbarThemeMac.mm:
2757        (WebCore::ScrollbarThemeMac::setPaintCharacteristicsForScrollbar):
2758
27592014-05-19  Simon Fraser  <simon.fraser@apple.com>
2760
2761        REGRESSION (r169063) Fixed and sticky nodes misplaced on scrolling sometimes
2762        https://bugs.webkit.org/show_bug.cgi?id=133106
2763        <rdar://problem/16967648>
2764
2765        Reviewed by Sam Weinig.
2766
2767        Fix regression from r169063. That commit removed scrolledContentsLayers from 
2768        frame scrolling nodes, but they do actually use them.
2769        
2770        So put them back; not in the base class, because they have a somewhat different
2771        meaning for overflow scrolling and frame scrolling.
2772
2773        * WebCore.exp.in:
2774        * page/scrolling/AsyncScrollingCoordinator.cpp:
2775        (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
2776        (WebCore::AsyncScrollingCoordinator::updateFrameScrollingNode):
2777        * page/scrolling/AsyncScrollingCoordinator.h:
2778        * page/scrolling/ScrollingCoordinator.h:
2779        (WebCore::ScrollingCoordinator::updateFrameScrollingNode):
2780        * page/scrolling/ScrollingStateFrameScrollingNode.cpp:
2781        (WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
2782        (WebCore::ScrollingStateFrameScrollingNode::setScrolledContentsLayer):
2783        * page/scrolling/ScrollingStateFrameScrollingNode.h:
2784        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
2785        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
2786        * rendering/RenderLayerCompositor.cpp:
2787        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
2788
27892014-05-20  Radu Stavila  <stavila@adobe.com>
2790
2791        REGRESSION: [CSS Regions] Content flowed directly into the flow thread that ends up in the second region is not properly repainted
2792        https://bugs.webkit.org/show_bug.cgi?id=133111
2793
2794        Reviewed by David Hyatt.
2795
2796        When computing the repaint rect of an element flowed into a flow thread, if the element is flowed directly into
2797        the flow thread (meaning its containing block is the flow thread itself), the region's position within the flow
2798        must no longer be taken into consideration, because its already included in the element's |topLeft|.
2799
2800        Test: fast/regions/hover-element-flowed-second-region.html
2801
2802        * rendering/RenderBox.cpp:
2803        (WebCore::RenderBox::computeRectForRepaint):
2804
28052014-05-20  Alex Christensen  <achristensen@webkit.org>
2806
2807        Fix web timing assertion failure.
2808        https://bugs.webkit.org/show_bug.cgi?id=133094
2809        <rdar://problem/16966032>
2810
2811        Reviewed by Alexey Proskuryakov.
2812
2813        * platform/network/mac/ResourceHandleMac.mm:
2814        (WebCore::ResourceHandle::getConnectionTimingData):
2815        Set requestStart and responseStart to 0 instead of -1 to match the 
2816        ResourceLoadTiming constructor and prevent the assertion failure in
2817        PerformanceTiming::responseStart.
2818
28192014-05-20  Prashant Hiremath  <hiremathprashants@gmail.com>
2820
2821        Only set title on SVG documents
2822        https://bugs.webkit.org/show_bug.cgi?id=133068
2823
2824        Reviewed by Dirk Schulze.
2825
2826        Test: svg/custom/html_document_set_title.html
2827
2828        * svg/SVGTitleElement.cpp:
2829        (WebCore::SVGTitleElement::insertedInto):
2830        (WebCore::SVGTitleElement::removedFrom):
2831        (WebCore::SVGTitleElement::childrenChanged):
2832
28332014-05-20  peavo@outlook.com  <peavo@outlook.com>
2834
2835        [Curl] Invalid content in cache file, causes broken rendering.
2836        https://bugs.webkit.org/show_bug.cgi?id=133069
2837
2838        Reviewed by Brent Fulgham.
2839
2840        When data for a url is received as multiple parts, the cache file for the url is truncated when opened for writing,
2841        and will only contain the last part of data received.
2842        This is fixed by only opening the file once, and close it after all data has been received.
2843
2844        * platform/network/curl/CurlCacheEntry.cpp:
2845        (WebCore::CurlCacheEntry::CurlCacheEntry): Initialize cache file handle member.
2846        (WebCore::CurlCacheEntry::~CurlCacheEntry): Close cache file.
2847        (WebCore::CurlCacheEntry::saveCachedData): Only open cache file once to avoid truncating.
2848        (WebCore::CurlCacheEntry::didFail): Close cache file.
2849        (WebCore::CurlCacheEntry::didFinishLoading): Ditto.
2850        (WebCore::CurlCacheEntry::openContentFile): Added method to open cache file.
2851        (WebCore::CurlCacheEntry::closeContentFile): Added method to close cache file.
2852        * platform/network/curl/CurlCacheEntry.h: Added file handle member, and methods to open and close cache file.
2853
28542014-05-20  Radu Stavila  <stavila@adobe.com>
2855
2856        [CSS Regions] Block incorrectly sized when containing an unsplittable box
2857        https://bugs.webkit.org/show_bug.cgi?id=132601
2858
2859        Reviewed by Antti Koivisto.
2860
2861        When laying out elements in a region, when an inline element is encountered
2862        the size of its parent must not be increased beyond the bottom of the current region,
2863        unless if its the last region. This will ensure that the next sibling of the
2864        inline element is correctly laid out at the top of the next region, instead
2865        of leaving an empty space equal to the height of the overflow, as it did until now.
2866
2867        Tests: fast/regions/inline-block-inside-anonymous-overflow.html
2868               fast/regions/inline-block-overflow.html
2869
2870        * rendering/RenderBlockFlow.cpp:
2871        (WebCore::RenderBlockFlow::adjustLinePositionForPagination):
2872        (WebCore::RenderBlockFlow::hasNextPage):
2873        * rendering/RenderBlockFlow.h:
2874        * rendering/RenderBlockLineLayout.cpp:
2875        (WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
2876        (WebCore::RenderBlockFlow::linkToEndLineIfNeeded):
2877        (WebCore::RenderBlockFlow::determineStartPosition):
2878        (WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine):
2879
28802014-05-20  Mihnea Ovidenie  <mihnea@adobe.com>
2881
2882        [CSS Regions] Crash while painting block selection gaps in regions
2883        https://bugs.webkit.org/show_bug.cgi?id=132720
2884
2885        Reviewed by David Hyatt.
2886
2887        The fix for WebKit bug https://bugs.webkit.org/show_bug.cgi?id=131511
2888        allowed selection highlight to match the DOM selection when the start
2889        and end point of the selection were in different flow threads. In order
2890        to enable that, the selection was performed separately on view and
2891        render flow threads, considered selection subtrees.
2892
2893        However, the start and end points for each selection subtree were computed
2894        by means of Range class but it is not always possible to construct a valid
2895        Range from two pairs of RenderObjects and offsets.
2896
2897        This patch keeps the substrees approach but instead of storing the endpoints
2898        for each subtree in a Range and continuously extending the Range, it stores them
2899        using the already available SelectionSubtreeRoot class. After the end points are
2900        computed for each subtree and before processing the subtree selection, the end points
2901        are adjusted in a similar fashion as the one used in FrameSelection::updateAppearance(),
2902        to make sure we are passing the same expected information to the method implementing
2903        the visible selection processing.
2904
2905        Test: fast/regions/selection-gaps-paint-crash.html
2906
2907        * rendering/RenderView.cpp:
2908        (WebCore::RenderView::splitSelectionBetweenSubtrees):
2909        * rendering/SelectionSubtreeRoot.cpp:
2910        (WebCore::SelectionSubtreeRoot::adjustForVisibleSelection):
2911        * rendering/SelectionSubtreeRoot.h:
2912        (WebCore::SelectionSubtreeRoot::selectionClear):
2913
29142014-05-19  Simon Fraser  <simon.fraser@apple.com>
2915
2916        Scrolling pages with large TiledBacking content layers creates way too many tiles
2917        https://bugs.webkit.org/show_bug.cgi?id=133101
2918
2919        Reviewed by Tim Horton.
2920
2921        Fix the GraphicsLayerCA::adjustTiledLayerVisibleRect() logic to avoid making giant rects if the old
2922        and new visible rects don't overlap.
2923
2924        * platform/graphics/TiledBacking.h:
2925        * platform/graphics/ca/GraphicsLayerCA.cpp:
2926        (WebCore::GraphicsLayerCA::adjustTiledLayerVisibleRect):
2927        * platform/graphics/ca/mac/TileController.h:
2928
29292014-05-19  Simon Fraser  <simon.fraser@apple.com>
2930
2931        Correctly maintain the "isInWindow" state for all TiledBackings
2932        https://bugs.webkit.org/show_bug.cgi?id=133095
2933
2934        Reviewed by Tim Horton.
2935        
2936        We never updated the "isInWindow" state for TiledBacking that wasn't the RenderView's
2937        backing. Fix it by having RenderLayerCompositor::setIsInWindow() recurse through all
2938        layers (if necessary), updating their state. Also set the state on newly created
2939        TiledBackings.
2940
2941        * rendering/RenderLayerCompositor.cpp:
2942        (WebCore::RenderLayerCompositor::layerTiledBackingUsageChanged):
2943        (WebCore::RenderLayerCompositor::setIsInWindowForLayerIncludingDescendants):
2944        (WebCore::RenderLayerCompositor::setIsInWindow):
2945        (WebCore::RenderLayerCompositor::pageTiledBacking): Deleted.
2946        * rendering/RenderLayerCompositor.h:
2947
29482014-05-19  Dean Jackson  <dino@apple.com>
2949
2950        [iOS] Use status display for live streams
2951        https://bugs.webkit.org/show_bug.cgi?id=133097
2952
2953        Reviewed by Sam Weinig.
2954
2955        Follow-on from https://bugs.webkit.org/show_bug.cgi?id=131390
2956        Allow the iOS controls to use the status display field.
2957
2958        * Modules/mediacontrols/mediaControlsiOS.js:
2959        (ControllerIOS.prototype.configureInlineControls): Live streams should
2960        not have a timeline or rewind button.
2961
29622014-05-19  Myles C. Maxfield  <litherum@gmail.com>
2963
2964        Text decorations do not contribute to visual overflow
2965        https://bugs.webkit.org/show_bug.cgi?id=132773
2966
2967        Reviewed by Antti Koivisto.
2968
2969        This patch creates a function, visualOverflowForDecorations, which computes
2970        how much visual overflow to add around a text box due to text decorations. Most of the time,
2971        text decorations are fully contained within the text box, so the result is usually 0.
2972
2973        This function exists within style/InlineTextBoxStyle.cpp, which is an added file. This is
2974        so that it can be called from setLogicalWidthForTextRun() inside RenderBlockLineLayout.cpp
2975        and from RenderStyle::changeAffectsVisualOverflow(). The former case passes in the full
2976        InlineTextBox and the latter case just passes in a RenderStyle (because the InlineTextBox
2977        is unavailable.)
2978
2979        This patch also modifies RenderTableSection::spannedColumns() to fix an off-by-one error
2980        that was causing table borders to not be drawn when they existed right on the edge of
2981        a repaint rect.
2982
2983        Tests: fast/css3-text/css3-text-decoration/repaint/underline-outside-of-layout-rect.html
2984        Tests: fast/repaint/border-collapse-table-off-by-one-expected.html
2985
2986        * WebCore.vcxproj/WebCore.vcxproj: Adding reference to new InlineTextBoxStyle.cpp file
2987        * WebCore.vcxproj/WebCore.vcxproj.filters: Adding reference to new InlineTextBoxStyle files
2988        * WebCore.xcodeproj/project.pbxproj: Adding reference to new InlineTextBoxStyle files
2989        * rendering/InlineTextBox.cpp:
2990        (WebCore::computeUnderlineOffset): Moved to InlineTextBox.cpp
2991        (WebCore::getWavyStrokeParameters): Moved to InlineTextBox.cpp
2992        (WebCore::InlineTextBox::paintDecoration): Update to use newly refactored functions
2993        * rendering/RenderBlockLineLayout.cpp:
2994        (WebCore::setLogicalWidthForTextRun): Call visualOverflowForDecorations()
2995        * rendering/RenderTableSection.cpp:
2996        * rendering/RenderTableSelection.cpp: Fix off-by-one error when the boundary of a repaint
2997        rect lies exactly on top of a table column position
2998        * rendering/style/RenderStyle.cpp:
2999        (WebCore::RenderStyle::changeAffectsVisualOverflow): Inspects shadows and text decorations
3000        (WebCore::RenderStyle::changeRequiresLayout): Calls changeAffectsVisualOverflow()
3001        (WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline): Moved code from here
3002        to changeAffectsVisualOverflow().
3003        * rendering/style/RenderStyle.h: Function signature
3004        * style/InlineTextBoxStyle.cpp: Added.
3005        (WebCore::computeUnderlineOffset): Moved from InlineTextBox.cpp
3006        (WebCore::getWavyStrokeParameters): Moved from InlineTextBox.cpp
3007        (WebCore::extendIntToFloat): Convenience function for dealing with the fact that
3008        underline bounding boxes use floats and GlyphOverflow uses ints
3009        (WebCore::visualOverflowForDecorations): Given
3010        vertical overflow bounds, possibly extend those to include location of
3011        decorations.
3012        * style/InlineTextBoxStyle.h: Added. Function signatures.
3013        (WebCore::textDecorationStrokeThickness): Refactored from InlineTextBox.cpp
3014        (WebCore::wavyOffsetFromDecoration): Refactored from InlineTextBox.cpp
3015        * platform/graphics/Font.h:
3016        (WebCore::GlyphOverflow::isEmpty): Convenience function
3017        (WebCore::GlyphOverflow::extendTo): Convenience function
3018
30192014-05-19  Alex Christensen  <achristensen@webkit.org>
3020
3021        Unreviewed build fix after r169082
3022
3023        * platform/network/ResourceHandle.h:
3024        Added NSDictionary declaration.
3025
30262014-05-19  Beth Dakin  <bdakin@apple.com>
3027
3028        REGRESSION: Standalone images need to take topContentInset into account
3029        https://bugs.webkit.org/show_bug.cgi?id=133092
3030        -and corresponding-
3031        <rdar://problem/16945791>
3032
3033        Reviewed by Darin Adler.
3034
3035        The FrameView’s size is accurate in terms of the NSWindow size, but that is not 
3036        really what the ImageDocument code is looking for here. The ImageDocument wants to 
3037        know the size of the unobscured viewport area. We should use visibleSize() for 
3038        that.
3039        * html/ImageDocument.cpp:
3040        (WebCore::ImageDocument::scale):
3041        (WebCore::ImageDocument::imageFitsInWindow):
3042        (WebCore::ImageDocument::imageClicked):
3043
30442014-05-19  Alex Christensen  <achristensen@webkit.org>
3045
3046        Collect web timing data on iOS.
3047        https://bugs.webkit.org/show_bug.cgi?id=133075
3048
3049        Reviewed by Sam Weinig.
3050
3051        * platform/network/ResourceHandle.h:
3052        Added setCollectsTimingData wrapper and getConnectionTimingData declarations.
3053        getConnectionTimingData with a dictionary parameter is a private helper function.
3054        * platform/network/cf/ResourceHandleCFNet.cpp:
3055        (WebCore::ResourceHandle::start):
3056        Call setCollectsTimingData wrapper when creating a connection to ensure that timing data is collected.
3057        * platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
3058        (WebCore::ResourceHandleCFURLConnectionDelegate::didReceiveResponseCallback):
3059        * platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
3060        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
3061        (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
3062        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
3063        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
3064        (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
3065        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
3066        Pass the CFURLConnectionRef to didReceiveResponse to get timing data from.
3067        * platform/network/mac/ResourceHandleMac.mm:
3068        (WebCore::ResourceHandle::getConnectionTimingData):
3069        Moved from getTimingData to compile regardless of using CFNetwork and added wrapper with CFDictionaryRef.
3070        (WebCore::ResourceHandle::setCollectsTimingData):
3071        Added wrapper to call objc function from c++.
3072        (WebCore::ResourceHandle::getTimingData):
3073        Renamed to getConnectionTimingData.
3074        * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
3075        (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
3076        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
3077        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
3078        Updated function name from getTimingData to getConnectionTimingData.
3079
30802014-05-19  Chris Fleizach  <cfleizach@apple.com>
3081
3082        AX: VoiceOver sees the WebArea out of order when topContentInset is used
3083        https://bugs.webkit.org/show_bug.cgi?id=133091
3084
3085        Reviewed by Simon Fraser.
3086
3087        Modify the scroll view's frame so that it recognizes the content inset.
3088        This is needed so that when VoiceOver sorts elements to create an ordering,
3089        the web area is not ordered at the top of the screen.
3090
3091        Test: platform/mac-wk2/accessibility/content-inset-scrollview-frame.html
3092
3093        * accessibility/AccessibilityScrollView.cpp:
3094        (WebCore::AccessibilityScrollView::elementRect):
3095
30962014-05-19  Beth Dakin  <bdakin@apple.com>
3097
3098        Scrollbars display incorrectly after switching between fast and slow scrolling 
3099        mode, affects Find and real sites
3100        https://bugs.webkit.org/show_bug.cgi?id=133077
3101        -and corresponding-
3102        <rdar://problem/16888608>
3103
3104        Reviewed by Tim Horton.
3105
3106        We should always return true here when updating on the secondary thread is 
3107        supported. It does not need to be gated on whether we are actively taking 
3108        advantage of that support at this moment.
3109        * platform/Scrollbar.cpp:
3110        (WebCore::Scrollbar::supportsUpdateOnSecondaryThread):
3111
3112        Always update the presentationValue whenever we update the doubleValue just to 
3113        keep them in sync.
3114        * platform/mac/ScrollbarThemeMac.mm:
3115        (WebCore::ScrollbarThemeMac::setPaintCharacteristicsForScrollbar):
3116
31172014-05-19  Simon Fraser  <simon.fraser@apple.com>
3118
3119        Split scrolling tree ScrollingNodes into FrameScrollingNodes and OverflowScrollingNodes
3120        https://bugs.webkit.org/show_bug.cgi?id=133022
3121
3122        Reviewed by Sam Weinig.
3123
3124        In both the scrolling state tree and the scrolling tree, split the "scrolling nodes"
3125        into FrameScrolling and OverflowScrolling nodes.
3126        
3127        Move what was the "viewportSize" property onto the base class for the scrolling
3128        nodes, calling it "scrollableAreaSize".
3129        
3130        Make minimum/maximumScrollPosition() virtual so we can share more code (and there
3131        is more code sharing to be done in future).
3132
3133        * Configurations/WebCore.xcconfig: Remove ScrollingStateScrollingNodeMac.mm and ScrollingTreeScrollingNodeMac.mm
3134        from the list, using #ifdefs in the file instead.
3135        * WebCore.exp.in: Lots of exports.
3136        * WebCore.xcodeproj/project.pbxproj: New files.
3137        * page/scrolling/AsyncScrollingCoordinator.cpp:
3138        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
3139        (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
3140        (WebCore::AsyncScrollingCoordinator::updateFrameScrollingNode):
3141        (WebCore::AsyncScrollingCoordinator::updateOverflowScrollingNode):
3142        (WebCore::AsyncScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
3143        (WebCore::AsyncScrollingCoordinator::updateScrollingNode): Deleted.
3144        (WebCore::AsyncScrollingCoordinator::setScrollbarPaintersFromScrollbarsForNode): Deleted.
3145        This tiny function didn't need to exist.
3146        * page/scrolling/AsyncScrollingCoordinator.h:
3147        * page/scrolling/ScrollingCoordinator.h:
3148        (WebCore::ScrollingCoordinator::updateFrameScrollingNode):
3149        (WebCore::ScrollingCoordinator::updateOverflowScrollingNode):
3150        (WebCore::ScrollingCoordinator::updateScrollingNode): Deleted.
3151        * page/scrolling/ScrollingStateFrameScrollingNode.cpp: Copied from Source/WebCore/page/scrolling/ScrollingStateScrollingNode.cpp.
3152        (WebCore::ScrollingStateFrameScrollingNode::create):
3153        (WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
3154        (WebCore::ScrollingStateFrameScrollingNode::~ScrollingStateFrameScrollingNode):
3155        (WebCore::ScrollingStateFrameScrollingNode::clone):
3156        (WebCore::ScrollingStateFrameScrollingNode::setFrameScaleFactor):
3157        (WebCore::ScrollingStateFrameScrollingNode::setNonFastScrollableRegion):
3158        (WebCore::ScrollingStateFrameScrollingNode::setWheelEventHandlerCount):
3159        (WebCore::ScrollingStateFrameScrollingNode::setSynchronousScrollingReasons):
3160        (WebCore::ScrollingStateFrameScrollingNode::setScrollBehaviorForFixedElements):
3161        (WebCore::ScrollingStateFrameScrollingNode::setHeaderHeight):
3162        (WebCore::ScrollingStateFrameScrollingNode::setFooterHeight):
3163        (WebCore::ScrollingStateFrameScrollingNode::setTopContentInset):
3164        (WebCore::ScrollingStateFrameScrollingNode::setCounterScrollingLayer):
3165        (WebCore::ScrollingStateFrameScrollingNode::setInsetClipLayer):
3166        (WebCore::ScrollingStateFrameScrollingNode::setContentShadowLayer):
3167        (WebCore::ScrollingStateFrameScrollingNode::setHeaderLayer):
3168        (WebCore::ScrollingStateFrameScrollingNode::setFooterLayer):
3169        (WebCore::ScrollingStateFrameScrollingNode::setScrollbarPaintersFromScrollbars):
3170        (WebCore::ScrollingStateFrameScrollingNode::dumpProperties):
3171        * page/scrolling/ScrollingStateFrameScrollingNode.h: Copied from Source/WebCore/page/scrolling/ScrollingStateScrollingNode.h.
3172        * page/scrolling/ScrollingStateNode.h:
3173        (WebCore::LayerRepresentation::layerID):
3174        (WebCore::ScrollingStateNode::isFrameScrollingNode):
3175        (WebCore::ScrollingStateNode::isOverflowScrollingNode):
3176        * page/scrolling/ScrollingStateOverflowScrollingNode.cpp: Added.
3177        (WebCore::ScrollingStateOverflowScrollingNode::create):
3178        (WebCore::ScrollingStateOverflowScrollingNode::ScrollingStateOverflowScrollingNode):
3179        (WebCore::ScrollingStateOverflowScrollingNode::~ScrollingStateOverflowScrollingNode):
3180        (WebCore::ScrollingStateOverflowScrollingNode::clone):
3181        (WebCore::ScrollingStateOverflowScrollingNode::setScrolledContentsLayer):
3182        (WebCore::ScrollingStateOverflowScrollingNode::dumpProperties):
3183        * page/scrolling/ScrollingStateOverflowScrollingNode.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingStateScrollingNodeMac.mm.
3184        (WebCore::ScrollingStateOverflowScrollingNode::scrolledContentsLayer):
3185        * page/scrolling/ScrollingStateScrollingNode.cpp:
3186        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
3187        (WebCore::ScrollingStateScrollingNode::setScrollableAreaSize):
3188        (WebCore::ScrollingStateScrollingNode::setTotalContentsSize):
3189        (WebCore::ScrollingStateScrollingNode::dumpProperties):
3190        (WebCore::ScrollingStateScrollingNode::create): Deleted.
3191        (WebCore::ScrollingStateScrollingNode::clone): Deleted.
3192        (WebCore::ScrollingStateScrollingNode::setViewportSize): Deleted.
3193        (WebCore::ScrollingStateScrollingNode::setFrameScaleFactor): Deleted.
3194        (WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion): Deleted.
3195        (WebCore::ScrollingStateScrollingNode::setWheelEventHandlerCount): Deleted.
3196        (WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons): Deleted.
3197        (WebCore::ScrollingStateScrollingNode::setScrollBehaviorForFixedElements): Deleted.
3198        (WebCore::ScrollingStateScrollingNode::setHeaderHeight): Deleted.
3199        (WebCore::ScrollingStateScrollingNode::setFooterHeight): Deleted.
3200        (WebCore::ScrollingStateScrollingNode::setTopContentInset): Deleted.
3201        (WebCore::ScrollingStateScrollingNode::setScrolledContentsLayer): Deleted.
3202        (WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer): Deleted.
3203        (WebCore::ScrollingStateScrollingNode::setInsetClipLayer): Deleted.
3204        (WebCore::ScrollingStateScrollingNode::setContentShadowLayer): Deleted.
3205        (WebCore::ScrollingStateScrollingNode::setHeaderLayer): Deleted.
3206        (WebCore::ScrollingStateScrollingNode::setFooterLayer): Deleted.
3207        (WebCore::ScrollingStateScrollingNode::setScrollbarPaintersFromScrollbars): Deleted.
3208        * page/scrolling/ScrollingStateScrollingNode.h:
3209        (WebCore::ScrollingStateScrollingNode::scrollableAreaSize):
3210        (WebCore::ScrollingStateScrollingNode::totalContentsSize):
3211        * page/scrolling/ScrollingStateTree.cpp:
3212        (WebCore::ScrollingStateTree::attachNode):
3213        (WebCore::ScrollingStateTree::commit):
3214        * page/scrolling/ScrollingStateTree.h:
3215        (WebCore::ScrollingStateTree::rootStateNode):
3216        (WebCore::ScrollingStateTree::setRootStateNode):
3217        * page/scrolling/ScrollingTree.cpp:
3218        (WebCore::ScrollingTree::commitNewTreeState):
3219        * page/scrolling/ScrollingTreeFrameScrollingNode.cpp: Added.
3220        (WebCore::ScrollingTreeFrameScrollingNode::ScrollingTreeFrameScrollingNode):
3221        (WebCore::ScrollingTreeFrameScrollingNode::~ScrollingTreeFrameScrollingNode):
3222        (WebCore::ScrollingTreeFrameScrollingNode::updateBeforeChildren):
3223        * page/scrolling/ScrollingTreeFrameScrollingNode.h: Copied from Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h.
3224        (WebCore::ScrollingTreeFrameScrollingNode::updateLayersAfterDelegatedScroll):
3225        (WebCore::ScrollingTreeFrameScrollingNode::synchronousScrollingReasons):
3226        (WebCore::ScrollingTreeFrameScrollingNode::shouldUpdateScrollLayerPositionSynchronously):
3227        (WebCore::ScrollingTreeFrameScrollingNode::frameScaleFactor):
3228        (WebCore::ScrollingTreeFrameScrollingNode::headerHeight):
3229        (WebCore::ScrollingTreeFrameScrollingNode::footerHeight):
3230        (WebCore::ScrollingTreeFrameScrollingNode::topContentInset):
3231        (WebCore::ScrollingTreeFrameScrollingNode::scrollBehaviorForFixedElements):
3232        * page/scrolling/ScrollingTreeNode.h:
3233        (WebCore::ScrollingTreeNode::isFrameScrollingNode):
3234        (WebCore::ScrollingTreeNode::isOverflowScrollingNode):
3235        * page/scrolling/ScrollingTreeOverflowScrollingNode.cpp: Copied from Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h.
3236        (WebCore::ScrollingTreeOverflowScrollingNode::ScrollingTreeOverflowScrollingNode):
3237        (WebCore::ScrollingTreeOverflowScrollingNode::~ScrollingTreeOverflowScrollingNode):
3238        * page/scrolling/ScrollingTreeOverflowScrollingNode.h: Copied from Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h.
3239        * page/scrolling/ScrollingTreeScrollingNode.cpp:
3240        (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
3241        (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
3242        (WebCore::ScrollingTreeScrollingNode::updateAfterChildren):
3243        (WebCore::ScrollingTreeScrollingNode::setScrollPosition):
3244        (WebCore::ScrollingTreeScrollingNode::setScrollPositionWithoutContentEdgeConstraints):
3245        (WebCore::ScrollingTreeScrollingNode::minimumScrollPosition):
3246        (WebCore::ScrollingTreeScrollingNode::maximumScrollPosition):
3247        * page/scrolling/ScrollingTreeScrollingNode.h:
3248        (WebCore::ScrollingTreeScrollingNode::scrollableAreaSize):
3249        (WebCore::ScrollingTreeScrollingNode::totalContentsSize):
3250        (WebCore::ScrollingTreeScrollingNode::totalContentsSizeForRubberBand):
3251        (WebCore::ScrollingTreeScrollingNode::setTotalContentsSizeForRubberBand):
3252        (WebCore::ScrollingTreeScrollingNode::synchronousScrollingReasons): Deleted.
3253        (WebCore::ScrollingTreeScrollingNode::shouldUpdateScrollLayerPositionSynchronously): Deleted.
3254        (WebCore::ScrollingTreeScrollingNode::viewportSize): Deleted.
3255        (WebCore::ScrollingTreeScrollingNode::frameScaleFactor): Deleted.
3256        (WebCore::ScrollingTreeScrollingNode::headerHeight): Deleted.
3257        (WebCore::ScrollingTreeScrollingNode::footerHeight): Deleted.
3258        (WebCore::ScrollingTreeScrollingNode::scrollBehaviorForFixedElements): Deleted.
3259        (WebCore::ScrollingTreeScrollingNode::topContentInset): Deleted.
3260        * page/scrolling/ios/ScrollingCoordinatorIOS.mm:
3261        (WebCore::ScrollingCoordinatorIOS::createScrollingTreeNode):
3262        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h: Renamed from Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h.
3263        (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollLayer):
3264        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm: Renamed from Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm.
3265        (WebCore::ScrollingTreeFrameScrollingNodeIOS::create):
3266        (WebCore::ScrollingTreeFrameScrollingNodeIOS::ScrollingTreeFrameScrollingNodeIOS):
3267        (WebCore::ScrollingTreeFrameScrollingNodeIOS::~ScrollingTreeFrameScrollingNodeIOS):
3268        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateBeforeChildren):
3269        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateAfterChildren):
3270        (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollPosition):
3271        (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPosition):
3272        (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints):
3273        (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollLayerPosition):
3274        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterViewportChange):
3275        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterDelegatedScroll):
3276        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):
3277        (WebCore::ScrollingTreeFrameScrollingNodeIOS::minimumScrollPosition):
3278        (WebCore::ScrollingTreeFrameScrollingNodeIOS::maximumScrollPosition):
3279        (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollBy):
3280        (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollByWithoutContentEdgeConstraints):
3281        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
3282        (WebCore::ScrollingCoordinatorMac::createScrollingTreeNode):
3283        * page/scrolling/mac/ScrollingStateFrameScrollingNodeMac.mm: Renamed from Source/WebCore/page/scrolling/mac/ScrollingStateScrollingNodeMac.mm.
3284        (WebCore::ScrollingStateFrameScrollingNode::setScrollbarPaintersFromScrollbars):
3285        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h: Renamed from Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.h.
3286        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm: Renamed from Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm.
3287        (WebCore::ScrollingTreeFrameScrollingNodeMac::create):
3288        (WebCore::ScrollingTreeFrameScrollingNodeMac::ScrollingTreeFrameScrollingNodeMac):
3289        (WebCore::ScrollingTreeFrameScrollingNodeMac::~ScrollingTreeFrameScrollingNodeMac):
3290        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
3291        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateAfterChildren):
3292        (WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):
3293        (WebCore::ScrollingTreeFrameScrollingNodeMac::allowsHorizontalStretching):
3294        (WebCore::ScrollingTreeFrameScrollingNodeMac::allowsVerticalStretching):
3295        (WebCore::ScrollingTreeFrameScrollingNodeMac::stretchAmount):
3296        (WebCore::ScrollingTreeFrameScrollingNodeMac::pinnedInDirection):
3297        (WebCore::ScrollingTreeFrameScrollingNodeMac::canScrollHorizontally):
3298        (WebCore::ScrollingTreeFrameScrollingNodeMac::canScrollVertically):
3299        (WebCore::ScrollingTreeFrameScrollingNodeMac::shouldRubberBandInDirection):
3300        (WebCore::ScrollingTreeFrameScrollingNodeMac::absoluteScrollPosition):
3301        (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollBy):
3302        (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
3303        (WebCore::ScrollingTreeFrameScrollingNodeMac::startSnapRubberbandTimer):
3304        (WebCore::ScrollingTreeFrameScrollingNodeMac::stopSnapRubberbandTimer):
3305        (WebCore::ScrollingTreeFrameScrollingNodeMac::adjustScrollPositionToBoundsIfNecessary):
3306        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollPosition):
3307        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
3308        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
3309        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):
3310        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateLayersAfterViewportChange):
3311        (WebCore::ScrollingTreeFrameScrollingNodeMac::minimumScrollPosition):
3312        (WebCore::ScrollingTreeFrameScrollingNodeMac::maximumScrollPosition):
3313        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollBy):
3314        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollByWithoutContentEdgeConstraints):
3315        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateMainFramePinState):
3316        (WebCore::ScrollingTreeFrameScrollingNodeMac::logExposedUnfilledArea):
3317        (WebCore::logThreadedScrollingMode):
3318        (WebCore::logWheelEventHandlerCountChanged):
3319        * rendering/RenderLayerCompositor.cpp:
3320        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
3321
33222014-05-19  Simon Fraser  <simon.fraser@apple.com>
3323
3324        Images missing sometimes with composited clipping layers
3325        https://bugs.webkit.org/show_bug.cgi?id=133065
3326        <rdar://problem/15224559>
3327
3328        Reviewed by Beth Dakin.
3329        
3330        When support for solid colors on layers was added, a layer was considered a candidate
3331        for the solid color optimization without regard to whether it had descendent layers
3332        with "paintsIntoCompositedAncestor" requirements.
3333        
3334        Fix hasVisibleNonCompositingDescendantLayers(), renaming it to isPaintDestinationForDescendentLayers()
3335        and having it take into account whether descendent layers need to paint into an
3336        ancestor.
3337        
3338        Also, this test has to happen after those descendent layers have had their
3339        compositing state updated, so move the isSimpleContainerCompositingLayer() to
3340        a new updateAfterDescendents() function which is called from the various
3341        places we do compositing-udpate-tree-walks.
3342
3343        Test: compositing/backing/solid-color-with-paints-into-ancestor.html
3344
3345        * rendering/RenderLayerBacking.cpp:
3346        (WebCore::RenderLayerBacking::updateGeometry):
3347        (WebCore::RenderLayerBacking::updateAfterDescendents):
3348        (WebCore::RenderLayerBacking::paintsChildren):
3349        (WebCore::compositedWithOwnBackingStore):
3350        (WebCore::descendentLayerPaintsIntoAncestor):
3351        (WebCore::RenderLayerBacking::isPaintDestinationForDescendentLayers):
3352        (WebCore::hasVisibleNonCompositingDescendant): Deleted.
3353        (WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers): Deleted.
3354        * rendering/RenderLayerBacking.h:
3355        * rendering/RenderLayerCompositor.cpp:
3356        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
3357        (WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
3358        (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):
3359
33602014-05-19  Zalan Bujtas  <zalan@apple.com>
3361
3362        REGRESSION (r133351, sub-pixel layout): Right-to-left block with text-overflow: ellipsis truncates prematurely (breaks facebook.com Hebrew UI)
3363        https://bugs.webkit.org/show_bug.cgi?id=112227
3364
3365        Reviewed by Maciej Stachowiak.
3366
3367        This patch removes unnecessary integral snapping of inlines at layout time.
3368
3369        The general rule of thumb of using round/floor/ceil at layout time is to not use them.
3370 
3371        When some computed values (x, y, width, height) get snapped during layout, while others don't,
3372        intersecting/measuring mismatches could occur and they could end up producing visual artifacts such as truncations.
3373        This patch also enables iframe content to be positioned on odd device pixel positions on retina displays.
3374        
3375        Tests: fast/frames/hidpi-position-iframe-on-device-pixel.html
3376               fast/inline/hidpi-rtl-text-does-not-fit-line-and-gets-cut-off.html
3377
3378        * rendering/RenderBlock.h:
3379        (WebCore::RenderBlock::logicalLeftOffsetForLine):
3380        (WebCore::RenderBlock::pixelSnappedLogicalLeftOffsetForLine): Deleted.
3381        (WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine): Deleted.
3382        * rendering/RenderBlockLineLayout.cpp:
3383        (WebCore::updateLogicalInlinePositions):
3384        (WebCore::RenderBlockFlow::deleteEllipsisLineBoxes):
3385        (WebCore::RenderBlockFlow::checkLinesForTextOverflow):
3386
33872014-05-18  Chris Fleizach  <cfleizach@apple.com>
3388
3389        AX: iOS: using AXAttributeCacheEnabler is too slow for every accessibilityElementAtIndex:
3390        https://bugs.webkit.org/show_bug.cgi?id=133043
3391
3392        Reviewed by Mario Sanchez Prada.
3393
3394        iOS Accessibility code tries to improve performance by caching attributes when accessing
3395        elements through the platform API. However, those API calls can be used very frequently when 
3396        iterating elements. Creating the AXAttributeCacheEnabler object and tearing it down is proving
3397        to be the hottest code path in samples for accessibility access.
3398
3399        We need to move the logic for enabling/disabling the attribute cache to a level that can make
3400        a more informed decision about when to enable/disable.
3401
3402        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
3403        (-[WebAccessibilityObjectWrapper enableAttributeCaching]):
3404        (-[WebAccessibilityObjectWrapper disableAttributeCaching]):
3405        (-[WebAccessibilityObjectWrapper accessibilityElementCount]):
3406        (-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):
3407        (-[WebAccessibilityObjectWrapper indexOfAccessibilityElement:]):
3408
34092014-05-18  Simon Fraser  <simon.fraser@apple.com>
3410
3411        Use RenderStyle& in more places in RenderLayerBacking
3412        https://bugs.webkit.org/show_bug.cgi?id=133061
3413
3414        Reviewed by Andreas Kling.
3415
3416        Convert several member functions to use references to RenderStyle rather
3417        than pointers. Move canCreateTiledImage() higher in the file (no code
3418        changes). Other minor cleanup.
3419
3420        * rendering/RenderLayerBacking.cpp:
3421        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
3422        (WebCore::RenderLayerBacking::updateOpacity):
3423        (WebCore::RenderLayerBacking::updateTransform):
3424        (WebCore::RenderLayerBacking::updateFilters):
3425        (WebCore::RenderLayerBacking::updateBlendMode):
3426        (WebCore::RenderLayerBacking::updateGeometry):
3427        (WebCore::hasBoxDecorations):
3428        (WebCore::canCreateTiledImage):
3429        (WebCore::hasBoxDecorationsOrBackgroundImage):
3430        (WebCore::hasPerspectiveOrPreserves3D):
3431        (WebCore::supportsDirectBoxDecorationsComposition):
3432        (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
3433        (WebCore::RenderLayerBacking::contentChanged):
3434        (WebCore::RenderLayerBacking::startTransition):
3435        * rendering/RenderLayerBacking.h:
3436
34372014-05-17  Simon Fraser  <simon.fraser@apple.com>
3438
3439        Rename some RenderLayerBacking member functions
3440        https://bugs.webkit.org/show_bug.cgi?id=133030
3441
3442        Reviewed by Sam Weinig.
3443
3444        Remove "GraphicsLayer" from some member function names on RenderLayerBacking.
3445        
3446        No behavior change.
3447
3448        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
3449        (WebCore::AVFWrapper::createAVCFVideoLayer):
3450        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3451        (WebCore::MediaPlayerPrivateQTKit::createQTMovieLayer):
3452        * rendering/RenderLayer.cpp:
3453        (WebCore::RenderLayer::calculateClipRects):
3454        * rendering/RenderLayerBacking.cpp:
3455        (WebCore::RenderLayerBacking::updateAfterLayout):
3456        (WebCore::RenderLayerBacking::updateConfiguration):
3457        (WebCore::RenderLayerBacking::updateGeometry):
3458        (WebCore::RenderLayerBacking::contentChanged):
3459        (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
3460        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Deleted.
3461        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Deleted.
3462        * rendering/RenderLayerBacking.h:
3463        * rendering/RenderLayerCompositor.cpp:
3464        (WebCore::RenderLayerCompositor::updateLayerCompositingState):
3465        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
3466        (WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
3467        (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):
3468        (WebCore::RenderLayerCompositor::attachRootLayer):
3469
34702014-05-19  Antti Koivisto  <antti@apple.com>
3471
3472        Fix assertion failure with simple line layout debug borders enabled.
3473
3474        Rubber-stamped by Andreas Kling.
3475
3476        * rendering/SimpleLineLayoutFunctions.cpp:
3477        (WebCore::SimpleLineLayout::paintDebugBorders): We shoudn't try to paint empty rects.
3478
34792014-05-18  Andreas Kling  <akling@apple.com>
3480
3481        Reduce constructor copypasta in RenderText and RenderElement.
3482        <https://webkit.org/b/133056>
3483
3484        Use delegating constructors to remove duplicated initializer lists
3485        from the constructors of RenderText and RenderElement.
3486
3487        Reviewed by Anders Carlsson.
3488
3489        * rendering/RenderElement.cpp:
3490        (WebCore::RenderElement::RenderElement):
3491        * rendering/RenderElement.h:
3492        * rendering/RenderText.cpp:
3493        (WebCore::RenderText::RenderText):
3494        * rendering/RenderText.h:
3495
34962014-05-18  Brent Fulgham  <bfulgham@apple.com>
3497
3498        Crash during scroll when latched
3499        https://bugs.webkit.org/show_bug.cgi?id=133064
3500
3501        Reviewed by Simon Fraser.
3502
3503        * page/mac/EventHandlerMac.mm:
3504        (WebCore::EventHandler::platformPrepareForWheelEvents): Prevent dereference of NULL
3505        wheelEventTarget argument.
3506
35072014-05-18  Svetlana Redchenko  <redchenko@yandex-team.ru>
3508
3509        Input ::selection pseudo class does not work leading to hidden selection
3510        https://bugs.webkit.org/show_bug.cgi?id=38943
3511
3512        Reviewed by Darin Adler.
3513
3514        Test: fast/selectors/input-with-selection-pseudo-element.html
3515
3516        When text is selected inside input element, it should change the
3517        color and background color according to the ::selection pseudo element.
3518
3519        * rendering/RenderObject.cpp:
3520        (WebCore::RenderObject::selectionBackgroundColor):
3521        (WebCore::RenderObject::selectionColor):
3522        (WebCore::RenderObject::selectionPseudoStyle):
3523        * rendering/RenderObject.h:
3524
35252014-05-18  Sam Weinig  <sam@webkit.org>
3526
3527        [WebKit2] Implement ScriptMessageHandlers
3528        https://bugs.webkit.org/show_bug.cgi?id=133053
3529
3530        Reviewed by Anders Carlsson.
3531
3532        * DerivedSources.make:
3533        * WebCore.exp.in:
3534        * WebCore.xcodeproj/project.pbxproj:
3535        * bindings/js/JSDOMWindowBase.cpp:
3536        (WebCore::JSDOMWindowBase::finishCreation):
3537        * bindings/js/JSUserMessageHandlersNamespaceCustom.cpp: Added.
3538        (WebCore::JSUserMessageHandlersNamespace::getOwnPropertySlotDelegate):
3539        * page/DOMWindow.cpp:
3540        (WebCore::DOMWindow::shouldHaveWebKitNamespaceForWorld):
3541        (WebCore::DOMWindow::webkitNamespace):
3542        * page/DOMWindow.h:
3543        * page/UserContentController.cpp:
3544        (WebCore::UserContentController::addUserMessageHandlerDescriptor):
3545        (WebCore::UserContentController::removeUserMessageHandlerDescriptor):
3546        * page/UserContentController.h:
3547        (WebCore::UserContentController::userMessageHandlerDescriptors):
3548        * page/UserMessageHandler.cpp: Added.
3549        (WebCore::UserMessageHandler::UserMessageHandler):
3550        (WebCore::UserMessageHandler::~UserMessageHandler):
3551        (WebCore::UserMessageHandler::postMessage):
3552        (WebCore::UserMessageHandler::name):
3553        (WebCore::UserMessageHandler::world):
3554        * page/UserMessageHandler.h: Added.
3555        (WebCore::UserMessageHandler::create):
3556        * page/UserMessageHandler.idl: Added.
3557        * page/UserMessageHandlerDescriptor.cpp: Added.
3558        (WebCore::UserMessageHandlerDescriptor::UserMessageHandlerDescriptor):
3559        (WebCore::UserMessageHandlerDescriptor::~UserMessageHandlerDescriptor):
3560        (WebCore::UserMessageHandlerDescriptor::name):
3561        (WebCore::UserMessageHandlerDescriptor::world):
3562        * page/UserMessageHandlerDescriptor.h: Added.
3563        (WebCore::UserMessageHandlerDescriptor::Client::~Client):
3564        (WebCore::UserMessageHandlerDescriptor::create):
3565        (WebCore::UserMessageHandlerDescriptor::client):
3566        * page/UserMessageHandlerDescriptorTypes.h: Added.
3567        * page/UserMessageHandlersNamespace.cpp: Added.
3568        (WebCore::UserMessageHandlersNamespace::UserMessageHandlersNamespace):
3569        (WebCore::UserMessageHandlersNamespace::~UserMessageHandlersNamespace):
3570        (WebCore::UserMessageHandlersNamespace::handler):
3571        * page/UserMessageHandlersNamespace.h: Added.
3572        (WebCore::UserMessageHandlersNamespace::create):
3573        * page/UserMessageHandlersNamespace.idl: Added.
3574        * page/WebKitNamespace.cpp: Added.
3575        (WebCore::WebKitNamespace::WebKitNamespace):
3576        (WebCore::WebKitNamespace::~WebKitNamespace):
3577        (WebCore::WebKitNamespace::messageHandlers):
3578        * page/WebKitNamespace.h: Added.
3579        (WebCore::WebKitNamespace::create):
3580        * page/WebKitNamespace.idl: Added.
3581
35822014-05-18  Maciej Stachowiak  <mjs@apple.com>
3583
3584        REGRESSION (r156546): Default media controls are laid out incorrectly when media element is styled with direction:rtl
3585        https://bugs.webkit.org/show_bug.cgi?id=132531
3586        <rdar://problem/16806267>
3587        
3588        Reviewed by Mark Rowe.
3589
3590        This was already tested by the media/video-rtl.htm reftest, now unskipped.
3591
3592        * Modules/mediacontrols/mediaControlsApple.css:
3593        (audio::-webkit-media-controls-panel): Add missing direction: ltr
3594
35952014-05-18  Rik Cabanier  <cabanier@adobe.com>
3596
3597        support for navigator.hardwareConcurrency
3598        https://bugs.webkit.org/show_bug.cgi?id=132588
3599
3600        Reviewed by Filip Pizlo.
3601
3602        Added a new API that returns the number of CPU cores up to 8.
3603
3604        Test: fast/dom/navigator-hardwareConcurrency.html
3605
3606        * Configurations/FeatureDefines.xcconfig:
3607        * page/Navigator.cpp:
3608        (WebCore::Navigator::hardwareConcurrency):
3609        * page/Navigator.h:
3610        * page/Navigator.idl:
3611
36122014-05-18  Anders Carlsson  <andersca@apple.com>
3613
3614        Fix iOS build.
3615
3616        * WebCore.exp.in:
3617        Move UserContentController symbols to the right place.
3618
36192014-05-18  Jon Lee  <jonlee@apple.com>
3620
3621        Build fix for r169006.
3622
3623        Unreviewed.
3624
3625        * loader/ResourceLoader.h: Return didCreateQuickLookHandle() to public.
3626
36272014-05-18  Antti Koivisto  <antti@apple.com>
3628
3629        REGRESSION (r160259): text-combine glyphs are not rendered
3630        https://bugs.webkit.org/show_bug.cgi?id=127324
3631
3632        Reviewed by Andreas Kling.
3633        
3634        The original text gets overwritten by a change that is supposed to affect rendered text only.
3635        Fixed by giving the text update functions well-defined purposes.
3636
3637        Test: fast/text/text-combine-rendering.html
3638
3639        * rendering/RenderCombineText.cpp:
3640        (WebCore::RenderCombineText::styleDidChange):
3641        (WebCore::RenderCombineText::setRenderedText):
3642        (WebCore::RenderCombineText::combineText):
3643        (WebCore::RenderCombineText::setTextInternal): Deleted.
3644        * rendering/RenderCombineText.h:
3645        * rendering/RenderCounter.cpp:
3646        (WebCore::RenderCounter::computePreferredLogicalWidths):
3647        * rendering/RenderText.cpp:
3648        (WebCore::RenderText::setRenderedText):
3649        
3650            This function now updates the rendered text but does not change the original.
3651            Get the original text by calling originalText().
3652
3653        (WebCore::RenderText::setText):
3654        
3655            This the only place original text now changes.
3656
3657        (WebCore::RenderText::setTextInternal): Deleted.
3658        
3659            Renamed to setRenderedText.
3660
3661        * rendering/RenderText.h:
3662        * rendering/svg/RenderSVGInlineText.cpp:
3663        (WebCore::RenderSVGInlineText::setRenderedText):
3664        (WebCore::RenderSVGInlineText::setTextInternal): Deleted.
3665        * rendering/svg/RenderSVGInlineText.h:
3666
36672014-05-17  Maciej Stachowiak  <mjs@apple.com>
3668
3669        Don't attempt to update id or name for nodes that are already removed
3670        https://bugs.webkit.org/show_bug.cgi?id=133041
3671
3672        Reviewed by Sam Weinig.
3673
3674        Tests: fast/dom/remove-element-with-id-that-was-inserted-on-DOMNodeRemoved.html
3675               fast/dom/remove-element-with-name-that-was-inserted-on-DOMNodeRemoved.html
3676
3677        * dom/Element.cpp:
3678        (WebCore::Element::removedFrom): Skip updating ids and names for an element not
3679        in a treescope, as we already do for elements not in a document.
3680
36812014-05-17  Alexey Proskuryakov  <ap@apple.com>
3682
3683        REGRESSION (NetworkProcess): Trying to use appcache fallback crashes in ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache
3684        https://bugs.webkit.org/show_bug.cgi?id=133007
3685        <rdar://problem/13702706>
3686
3687        appcache tests often fail on the Mac WebKit2 bot
3688        https://bugs.webkit.org/show_bug.cgi?id=82061
3689
3690        Reviewed by Maciej Stachowiak.
3691
3692        Covered by existing tests, which this patch enables.
3693
3694        * WebCore.exp.in: Export ResourceLoader::cancel(const ResourceError&). It used
3695        to be virtual, but marking subclasses final has resulted in the compiler calling
3696        it directly from WebKitLegacy framework. Seeing that no subclass overrides it,
3697        I then made it non-virtual.
3698        Also export ApplicationCacheHost functions that are now used from WebKit2.
3699
3700        * loader/ResourceLoader.h: Made the class abstract (as I didn't realize at first
3701        that it's always either a SubresourceLoader or a NetscapePlugInStreamLoader).
3702        Made ResourceHandleClient functions private, as they should never be called other
3703        than via a ResourceHandleClient pointer.
3704
3705        * loader/NetscapePlugInStreamLoader.h:
3706        * loader/SubresourceLoader.h:
3707        Marked these final.
3708
3709        * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willSwitchToSubstituteResource):
3710        Added a function to be called when switching to a substitute resource. We still
3711        need a ResourceLoader at this point, as substitute resource will be delivered through
3712        it, but we don't want it to continue its current load.
3713
3714        * loader/appcache/ApplicationCacheHost.cpp:
3715        (WebCore::ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache):
3716        Call the ResourceLoader function instead of using handle, which is null when
3717        using out of process networking.
3718
37192014-05-17  Andreas Kling  <akling@apple.com>
3720
3721        We shouldn't make a ScrollingThread on iOS.
3722        <https://webkit.org/b/133038>
3723        <rdar://problem/16947589>
3724
3725        Don't call ScrollingThred::dispatch() from the pressure relief
3726        code on iOS since that will end up instantiating a scrolling thread
3727        which we'd otherwise never have.
3728
3729        Reviewed by Sam Weinig.
3730
3731        * platform/MemoryPressureHandler.cpp:
3732        (WebCore::MemoryPressureHandler::releaseMemory):
3733
37342014-05-17  Piotr Grad  <p.grad@samsung.com>
3735
3736        Setting playback rate on video with media controller is not ignored.
3737        https://bugs.webkit.org/show_bug.cgi?id=129048
3738
3739        Reviewed by Jer Noble.
3740
3741        Replaced queries for m_playbackRate with effectivePlaybackRate()
3742        which includes media controller playback rate.
3743
3744        Test: media/video-controller-child-rate.html
3745
3746        * html/HTMLMediaElement.cpp:
3747        (WebCore::HTMLMediaElement::parseAttribute):
3748        * html/HTMLMediaElement.h:
3749
37502014-05-16  Anders Carlsson  <andersca@apple.com>
3751
3752        Expose WKUserScript as API
3753        https://bugs.webkit.org/show_bug.cgi?id=133017
3754        <rdar://problem/16948059>
3755
3756        Reviewed by Sam Weinig.
3757
3758        * WebCore.exp.in:
3759        Export symbols.
3760
3761        * WebCore.xcodeproj/project.pbxproj:
3762        Change UserContentController.h to be a private header.
3763
3764        * page/Page.cpp:
3765        (WebCore::Page::Page):
3766        Set m_userContentController from the page configuration and add it if it's not null.
3767
3768        * page/Page.h:
3769        Add UserContentController to PageClients.
3770
3771        * page/PageGroup.cpp:
3772        (WebCore::PageGroup::addPage):
3773        Only try to add a user content controller if the page doesn't already have one.
3774
3775        (WebCore::PageGroup::removePage):
3776        Only try to remove the user content controller if it's the group one.
3777
37782014-05-17  Andreas Kling  <akling@apple.com>
3779
3780        REGRESSION (r166422): All RenderBox objects grew 104 bytes from adding repaint timers.
3781        <https://webkit.org/b/133027>
3782        <rdar://problem/16867410>
3783
3784        Instead of storing a rarely-used repaint timer on every RenderBox, store one
3785        on the RenderView, and keep a hash set of renderers needing repaint.
3786
3787        Renderers get a flag tracking whether they have a pending lazy repaint.
3788        This way we can avoid hash lookups in the common case.
3789
3790        Also added a static assertion to catch RenderBox growing in the future.
3791
3792        Reviewed by Antti Koivisto.
3793
3794        * rendering/RenderBox.cpp:
3795        (WebCore::SameSizeAsRenderBox::~SameSizeAsRenderBox):
3796        (WebCore::RenderBox::RenderBox):
3797        (WebCore::RenderBox::~RenderBox):
3798        (WebCore::RenderBox::paintBoxDecorations):
3799        (WebCore::RenderBox::layoutOverflowRectForPropagation):
3800        * rendering/RenderBox.h:
3801        * rendering/RenderElement.cpp:
3802        (WebCore::RenderElement::RenderElement):
3803        * rendering/RenderElement.h:
3804        (WebCore::RenderElement::setRenderBoxNeedsLazyRepaint):
3805        (WebCore::RenderElement::renderBoxNeedsLazyRepaint):
3806        * rendering/RenderView.cpp:
3807        (WebCore::RenderView::RenderView):
3808        (WebCore::RenderView::scheduleLazyRepaint):
3809        (WebCore::RenderView::unscheduleLazyRepaint):
3810        (WebCore::RenderView::lazyRepaintTimerFired):
3811        * rendering/RenderView.h:
3812
38132014-05-16  Jer Noble  <jer.noble@apple.com>
3814
3815        [Mac][MSE] setCurrentTime() goes down fastSeek path in MediaPlayerPrivateMediaSourceAVFObjC.
3816        https://bugs.webkit.org/show_bug.cgi?id=133023
3817
3818        Reviewed by Eric Carlson.
3819
3820        When seeking a MSE video, do not go down the fastSeekForMediaTime() path if the
3821        seek resulted from a setCurrentTime() call. The logic can lead to attempted seeks
3822        before buffered ranges.
3823
3824        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
3825        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
3826        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
3827        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
3828        (WebCore::MediaSourcePrivateAVFObjC::seekToTime):
3829
38302014-05-16  Benjamin Poulain  <bpoulain@apple.com>
3831
3832        [iOS] ScrollView::visibleContentRectInternal is bypassing the iOS code for unobscuredContentRect
3833        https://bugs.webkit.org/show_bug.cgi?id=133008
3834
3835        Reviewed by Simon Fraser.
3836
3837        * platform/ScrollView.cpp:
3838        (WebCore::ScrollView::visibleContentRectInternal):
3839        ScrollView::visibleContentRectInternal() was calling the internal implementation of visibleContentRect().
3840        That was skipping the iOS implementation and getting the framerect directly. That size is invalid on iOS
3841        when the exposed rect and unobscured rect are not the same.
3842
38432014-05-16  Jer Noble  <jer.noble@apple.com>
3844
3845        [Mac] naturalSize not updated when preload=metadata
3846        https://bugs.webkit.org/show_bug.cgi?id=132994
3847
3848        Reviewed by Eric Carlson.
3849
3850        Test: media/video-load-preload-metadata-naturalsize.html
3851
3852        When preload=metadata, we never create an AVPlayerItem, and therefore never receive a
3853        presentationSize KVO. When an AVAsset informs us that its tracks have changed, and there
3854        is no AVPlayerItem, recalculate presentation size based on the first video track's natural
3855        size.
3856
3857        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3858        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged):
3859        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
3860        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
3861
38622014-05-16  Simon Fraser  <simon.fraser@apple.com>
3863
3864        Remove "region-based columns" prefs
3865        https://bugs.webkit.org/show_bug.cgi?id=133006
3866        <rdar://problem/16945824>
3867
3868        Reviewed by Dave Hyatt.
3869
3870        Remove "region-based columns" prefs and related code, since this is only
3871        way to render columns now.
3872
3873        * page/Settings.in:
3874
38752014-05-16  Antti Koivisto  <antti@apple.com>
3876
3877        Link search area for touch events is too large in some cases
3878        https://bugs.webkit.org/show_bug.cgi?id=132988
3879        <rdar://problem/16917843>
3880
3881        Reviewed by Simon Fraser.
3882
3883        * page/ios/FrameIOS.mm:
3884        (WebCore::Frame::qualifyingNodeAtViewportLocation):
3885        
3886            - Adjust the search area to screen ppi.
3887            - Remove cut-off at scale 1. This made us pick physically far-away elements when zoomed in.
3888            
3889        * platform/PlatformScreen.h:
3890        * platform/ios/PlatformScreenIOS.mm:
3891        (WebCore::mobileGestaltFloatValue):
3892        (WebCore::screenPPIFactor):
3893
3894            Figure out screens physical PPI relative to a base.
3895
38962014-05-16  Jer Noble  <jer.noble@apple.com>
3897
3898        [MSE] Crash at  WebCore::SourceBuffer::~SourceBuffer + 110
3899        https://bugs.webkit.org/show_bug.cgi?id=132973
3900
3901        Reviewed by Eric Carlson.
3902
3903        Change SourceBuffer::m_private into a Ref<>, and add an assertion to
3904        SourceBufferPrivateAVFObjC's destructor if its client has not been cleared.
3905
3906        Eliminate unnecessary churn in MediaSourcePrivateAVFObjC by having the predicate
3907        functor take bare pointers, rather than a PassRefPtr.
3908
3909        The underlying problem seems to be in WebAVStreamDataParserListener. RefPtrs were
3910        being created off the main thread to a non-thread safe ref counted class. In some
3911        situations, this would result in double decrementing the ref, which would cause an
3912        early destruction of the underlying object. Instead replace these RefPtr strong
3913        pointers with explicit weak ones. Ensure the parser and its delegate are not freed
3914        before the append operation completes by passing strong pointers into the async
3915        append operation lambda.
3916
3917        There were a few places where we weren't null checking m_mediaSource before using it,
3918        and at least one place where we weren't clearing m_mediaSource.
3919
3920        * Modules/mediasource/SourceBuffer.cpp:
3921        (WebCore::SourceBuffer::SourceBuffer): Use Ref instead of RefPtr.
3922        (WebCore::SourceBuffer::appendBufferTimerFired): Ditto.
3923        * Modules/mediasource/SourceBuffer.h:
3924        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
3925        (WebCore::MediaSourcePrivateAVFObjCHasAudio): Take a bare pointer, instead of a PassRefPtr.
3926        (WebCore::MediaSourcePrivateAVFObjCHasVideo): Ditto.
3927        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
3928        (WebCore::MediaSourcePrivateAVFObjC::removeSourceBuffer): Clear the back pointer when removing a buffer.
3929        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
3930        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
3931        (-[WebAVStreamDataParserListener initWithParser:parent:WebCore::]): Use WeakPtr instead of RefPtr.
3932        (-[WebAVStreamDataParserListener invalidate]): Ditto.
3933        (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]): Ditto.
3934        (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]): Ditto.
3935        (-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]): Ditto.
3936        (-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]): Ditto.
3937        (-[WebAVStreamDataParserListener streamDataParser:didReachEndOfTrackWithTrackID:mediaType:]): Ditto.
3938        (-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]): Ditto.
3939        (WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
3940        (WebCore::SourceBufferPrivateAVFObjC::append): Ditto.
3941
39422014-05-16  Zalan Bujtas  <zalan@apple.com>
3943
3944        Subpixel rendering: Push named flows in region to device pixel when painting.
3945        https://bugs.webkit.org/show_bug.cgi?id=132986
3946
3947        Reviewed by Simon Fraser.
3948
3949        Remove integral rounding when named flow sets the painting offset on the graphics context.
3950        Use device pixel snapping instead to ensure that we can paint on odd device pixel positions on retina displays. 
3951
3952        Test: fast/regions/hidpi-region-with-auto-margin-on-subpixel-position.html
3953
3954        * rendering/RenderLayer.cpp:
3955        (WebCore::RenderLayer::calculateClipRects):
3956
39572014-05-16  Radu Stavila  <stavila@adobe.com>
3958
3959        [CSS Regions] Add ASSERT to make sure using the flowThread cache does not return incorrect results
3960        https://bugs.webkit.org/show_bug.cgi?id=132906
3961
3962        Reviewed by Simon Fraser.
3963
3964        If flowThreadContainingBlock() is called on an object which is in a different
3965        flow thread than the one currently being laid out, this method will return an incorrect
3966        result. I added an assertion for that to make sure we catch and treat any such scenarios.
3967        For the moment, this assertion is only validated for regions, as multicol still has some issues.
3968
3969        No new tests required.
3970
3971        * rendering/RenderObject.cpp:
3972        (WebCore::RenderObject::locateFlowThreadContainingBlockNoCache):
3973        (WebCore::RenderObject::locateFlowThreadContainingBlock):
3974        * rendering/RenderObject.h:
3975
39762014-05-16  Martin Hock  <mhock@apple.com>
3977
3978        MemoryCache::addImageToCache should return the result of add().
3979        https://bugs.webkit.org/show_bug.cgi?id=132928
3980        <rdar://problem/16651547>
3981
3982        Reviewed by Alexey Proskuryakov.
3983
3984        API test: WebKit1.MemoryCacheADdImageToCache (MemoryCacheAddImageToCacheIOS.mm)
3985
3986        * loader/cache/MemoryCache.cpp:
3987        (WebCore::MemoryCache::addImageToCache):
3988
39892014-05-16  Andrei Bucur  <abucur@adobe.com>
3990
3991        [CSS Regions] Reduce the RenderRegion invasiveness in rendering code
3992        https://bugs.webkit.org/show_bug.cgi?id=132121
3993
3994        Reviewed by Antti Koivisto.
3995
3996        Remove the RenderRegion / RenderNamedFlowFragment parameters and fields from
3997        the painting / hit testing data structures and use a stateful approach to
3998        correctly handle regions.
3999
4000        When painting or hit testing, the current flow thread is saved along the current
4001        region. They are accessed through the |currentRenderNamedFlowFragment| helper
4002        method on RenderObject or RenderLayer.
4003
4004        The patch also changes a bunch of 0s to nullptrs.
4005
4006        Tests: No new tests, no functional change.
4007
4008        * html/shadow/MediaControlElements.cpp:
4009        (WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
4010        * rendering/HitTestLocation.cpp:
4011        (WebCore::HitTestLocation::HitTestLocation):
4012        (WebCore::HitTestLocation::operator=):
4013        * rendering/HitTestLocation.h:
4014        (WebCore::HitTestLocation::region): Deleted.
4015        * rendering/HitTestResult.h:
4016        * rendering/PaintInfo.h:
4017        (WebCore::PaintInfo::PaintInfo):
4018        * rendering/RenderBlock.cpp:
4019        (WebCore::RenderBlock::paint):
4020        (WebCore::RenderBlock::paintObject):
4021        (WebCore::RenderBlock::selectionGaps):
4022        (WebCore::RenderBlock::nodeAtPoint):
4023        * rendering/RenderBox.cpp:
4024        (WebCore::RenderBox::nodeAtPoint):
4025        (WebCore::RenderBox::paintBoxDecorations):
4026        (WebCore::RenderBox::pushContentsClip):
4027        * rendering/RenderBoxModelObject.cpp:
4028        (WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
4029        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
4030        * rendering/RenderBoxModelObject.h:
4031        * rendering/RenderLayer.cpp:
4032        (WebCore::RenderLayer::paint):
4033        (WebCore::RenderLayer::paintLayer):
4034        (WebCore::RenderLayer::paintLayerContents):
4035        (WebCore::RenderLayer::paintLayerByApplyingTransform):
4036        (WebCore::RenderLayer::collectFragments):
4037        (WebCore::RenderLayer::updatePaintingInfoForFragments):
4038        (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
4039        (WebCore::RenderLayer::paintBackgroundForFragments):
4040        (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
4041        (WebCore::RenderLayer::paintOutlineForFragments):
4042        (WebCore::RenderLayer::paintMaskForFragments):
4043        (WebCore::RenderLayer::hitTest):
4044        (WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
4045        (WebCore::RenderLayer::hitTestLayer):
4046        (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
4047        (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
4048        (WebCore::RenderLayer::calculateClipRects):
4049        * rendering/RenderLayer.h:
4050        * rendering/RenderLayerBacking.cpp:
4051        (WebCore::RenderLayerBacking::updateCompositedBounds):
4052        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
4053        * rendering/RenderLayerCompositor.cpp:
4054        (WebCore::RenderLayerCompositor::addToOverlapMap):
4055        (WebCore::RenderLayerCompositor::clippedByAncestor):
4056        * rendering/RenderObject.cpp:
4057        (WebCore::RenderObject::currentRenderNamedFlowFragment):
4058        * rendering/RenderObject.h:
4059        * rendering/RenderReplaced.cpp:
4060        (WebCore::RenderReplaced::shouldPaint):
4061        * rendering/RenderReplica.cpp:
4062        (WebCore::RenderReplica::paint):
4063        * rendering/RenderTable.cpp:
4064        (WebCore::RenderTable::nodeAtPoint):
4065        * rendering/RenderTableSection.cpp:
4066        (WebCore::RenderTableSection::nodeAtPoint):
4067        * rendering/RenderTreeAsText.cpp:
4068        (WebCore::writeLayers):
4069        * rendering/RootInlineBox.cpp:
4070        (WebCore::RootInlineBox::paint):
4071        * rendering/svg/RenderSVGRoot.cpp:
4072        (WebCore::RenderSVGRoot::paintReplaced):
4073
40742014-05-16  Kiran  <kiran.guduru@samsung.com>
4075
4076        RTCDtmfSender default values need to be updated.
4077        https://bugs.webkit.org/show_bug.cgi?id=132952
4078
4079        Reviewed by Eric Carlson.
4080
4081        The default ToneDuration and ToneGap values are modified in the updated spec.
4082        So these values need to be updated.
4083
4084        Test: fast/mediastream/RTCPeerConnection-dtmf.html.
4085
4086        * Modules/mediastream/RTCDTMFSender.cpp:
4087
40882014-05-15  Daniel Bates  <dabates@apple.com>
4089
4090        Attempt to fix the Apple Mavericks Release, Apple MountainLion Release,
4091        Apple MountainLion Release (32-bit Build), EFL, and GTK builds following
4092        <http://trac.webkit.org/changeset/168921> (https://bugs.webkit.org/show_bug.cgi?id=132669)
4093
4094        * dom/ContainerNode.cpp: Include SVGElement.h for the definition of Node::hasTagName(const SVGQualifiedName&).
4095
40962014-05-15  Daniel Bates  <dabates@apple.com>
4097
4098        ASSERT_NOT_REACHED() in DocumentOrderedMap::get() when removing SVG subtree
4099        https://bugs.webkit.org/show_bug.cgi?id=132669
4100        <rdar://problem/14931432>
4101
4102        Reviewed by Brent Fulgham and Ryosuke Niwa.
4103
4104        Fixes an assertion failure when removing an SVG element with a duplicate id.
4105
4106        When removing an SVG element with id A we synchronously instruct each element that references A
4107        to find the first element with id A, call this N, from the document root and register itself to
4108        either receive subsequent notifications from N (say, there is another element with id A) or as
4109        waiting for an element with id A (say, N = nullptr; => we removed the last element with id A from
4110        the document). Because the elements that reference A perform this operation synchronously when
4111        removing an element they consult an transient state of the DocumentOrderedMap when querying for the
4112        element with id A.
4113    
4114        Without loss of generality, let E, E_1, E_2, and E_3 be elements, where E_1, E_2, E_3 are children
4115        of E in that order and E_1.id = E_2.id = A and E_3.href = #A (that is, it references an element
4116        with id A). Suppose we remove E then we remove E_1, update DocumentOrderedMap to decrement its count
4117        for id A, and notify E_3 to look for an element with id A. This leads to an assertion failure since
4118        DocumentOrderedMap expects to find an element with id A, E_2, but cannot find such an element when
4119        traversing from the document root because E was unlinked from the document root (i.e. E_2 is in a
4120        disjoint subtree).
4121
4122        Tests: svg/custom/change-id-of-use-during-removal.html
4123               svg/custom/remove-subtree-including-path-with-duplicate-id-referenced-by-later-textpath.html
4124               svg/custom/remove-subtree-including-text-with-duplicate-id-referenced-by-later-tref.html
4125               svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-earlier-use.html
4126               svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-animate.html
4127               svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-feimage.html
4128               svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-mpath.html
4129               svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-use.html
4130               svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-use2.html
4131               svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-use-in-different-subtree.html
4132               svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-use-with-duplicate-id-in-different-subtree.html
4133               svg/custom/remove-use-with-duplicate-id-referenced-by-later-use.html
4134
4135        * dom/ContainerNode.cpp:
4136        (WebCore::ContainerNode::removeChild): Call SVGDocumentExtensions::rebuildElements() after we remove
4137        a DOM subtree so that applicable SVG elements can update their referenced element when the DocumentOrderedMap
4138        is in a stable-state.
4139        (WebCore::ContainerNode::removeChildren): Ditto.
4140        * svg/SVGDocumentExtensions.cpp:
4141        (WebCore::SVGDocumentExtensions::rebuildElements): Added; notifies SVG elements that their href attribute
4142        changed so that they query the DocumentOrderedMap for the element they reference by id in their href attribute.
4143        (WebCore::SVGDocumentExtensions::clearTargetDependencies): Added; Called from removing
4144        an SVG element S from the DOM. Appends all elements that reference the id of S to the end of a Vector of
4145        elements to be rebuilt (when SVGDocumentExtensions::rebuildElements() is called) and notifies these elements
4146        that have been marked to be rebuilt so that they can invalidate their state (e.g. stop animating).
4147        (WebCore::SVGDocumentExtensions::rebuildAllElementReferencesForTarget): Changed to take its argument by reference
4148        (since it's always non-null) and simplified logic to synchronously notify SVG updates that their referenced element
4149        may have changed. Calling SVGElement::svgAttributeChanged() on an element E should at most remove the dependencies
4150        of E.
4151        * svg/SVGDocumentExtensions.h:
4152        * svg/SVGElement.cpp:
4153        (WebCore::SVGElement::~SVGElement): Substitute "*this" for "this" as SVGDocumentExtensions::rebuildAllElementReferencesForTarget()
4154        now takes a reference instead of a pointer.
4155        (WebCore::SVGElement::removedFrom): Modified to call SVGDocumentExtensions::clearTargetDependencies().
4156        (WebCore::SVGElement::attributeChanged): Substitute "*this" for "this" as SVGDocumentExtensions::rebuildAllElementReferencesForTarget()
4157        now takes a reference instead of a pointer.
4158        * svg/SVGElement.h:
4159        (WebCore::SVGElement::callClearTarget): Added; calls through to private virtual SVGElement::clearTarget().
4160        (WebCore::SVGElement::clearTarget): Added.
4161        * svg/SVGTRefElement.cpp:
4162        (WebCore::SVGTRefElement::clearTarget): Added.
4163        * svg/SVGTRefElement.h:
4164        * svg/animation/SVGSMILElement.cpp:
4165        (WebCore::SVGSMILElement::clearTarget): Added.
4166        * svg/animation/SVGSMILElement.h:
4167
41682014-05-15  Simon Fraser  <simon.fraser@apple.com>
4169
4170        [iOS WK2] When zoomed, fixed elements jump at the start of a scroll, and jump back at the end.
4171        https://bugs.webkit.org/show_bug.cgi?id=132978
4172        <rdar://problem/16894428>
4173
4174        Reviewed by Benjamin Poulain.
4175
4176        This was the actual cause of the bug; r168560 changed the rect passed in here
4177        to be the customFixedPositionRect rather than the unobscured rect, but we
4178        used it to call FrameView::rectForViewportConstrainedObjects() which gave back
4179        another bogus rect. So just use the rect passed in.
4180
4181        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
4182        (WebCore::ScrollingTreeScrollingNodeIOS::updateLayersAfterViewportChange):
4183
41842014-05-15  Daniel Bates  <dabates@apple.com>
4185
4186        SVG element may reference arbitrary DOM element before running its insertion logic
4187        https://bugs.webkit.org/show_bug.cgi?id=132757
4188        <rdar://problem/15703817>
4189
4190        Reviewed by Ryosuke Niwa.
4191
4192        Fixes an issue where an SVG element may reference an arbitrary DOM element e before e finished being
4193        inserted in the tree.
4194
4195        Currently when an SVG element A is inserted into a document we use document.getElementById() to find the
4196        element B it references (if any). If A is inserted before B and B has the same id as a later element in
4197        the document then A can find B before B is notified that its been inserted into the document (i.e. before
4198        Element::insertedFrom() is called on B). Instead, A should call document.getElementById() only after
4199        cessation of the insertion operation that inserted it to ensure that all inserted nodes (including B)
4200        processed their insertion-specific logic.
4201
4202        Tests: svg/custom/reparent-animate-element.html
4203               svg/custom/reparent-feimage-element.html
4204               svg/custom/reparent-mpath-element.html
4205               svg/custom/reparent-textpath-element.html
4206               svg/custom/reparent-tref-element.html
4207               svg/custom/reparent-use-element.html
4208
4209        * svg/SVGFEImageElement.cpp:
4210        (WebCore::SVGFEImageElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
4211        we are called back to resolve our target element (i.e. call SVGFEImageElement::buildPendingResources())
4212        after the subtree we're in is inserted.
4213        (WebCore::SVGFEImageElement::didNotifySubtreeInsertions): Added; turns around and calls SVGFEImageElement::buildPendingResources().
4214        * svg/SVGFEImageElement.h:
4215        * svg/SVGMPathElement.cpp:
4216        (WebCore::SVGMPathElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
4217        we are called back to resolve our target element (i.e. call SVGMPathElement::buildPendingResources())
4218        after the subtree we're in is inserted.
4219        (WebCore::SVGMPathElement::didNotifySubtreeInsertions): Added; turns around and calls SVGMPathElement::buildPendingResources().
4220        * svg/SVGMPathElement.h:
4221        * svg/SVGTRefElement.cpp:
4222        (WebCore::SVGTRefElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
4223        we are called back to resolve our target element (i.e. call SVGTRefElement::buildPendingResources())
4224        after the subtree we're in is inserted.
4225        (WebCore::SVGTRefElement::didNotifySubtreeInsertions): Added; turns around and calls SVGTRefElement::buildPendingResources().
4226        * svg/SVGTRefElement.h:
4227        * svg/SVGTextPathElement.cpp:
4228        (WebCore::SVGTextPathElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
4229        we are called back to resolve our target element (i.e. call SVGTextPathElement::buildPendingResources())
4230        after the subtree we're in is inserted.
4231        (WebCore::SVGTextPathElement::didNotifySubtreeInsertions): Added; turns around and calls SVGTextPathElement::buildPendingResources().
4232        * svg/SVGTextPathElement.h:
4233        * svg/SVGUseElement.cpp:
4234        (WebCore::SVGUseElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
4235        we are called back to resolve our target element (i.e. call SVGUseElement::buildPendingResources()) after its subtree is
4236        inserted.
4237        (WebCore::SVGUseElement::didNotifySubtreeInsertions): Added; turns around and calls SVGUseElement::buildPendingResources().
4238        * svg/SVGUseElement.h:
4239        * svg/animation/SVGSMILElement.cpp:
4240        (WebCore::SVGSMILElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
4241        we are called back to resolve our target element (i.e. call SVGSMILElement::buildPendingResources())
4242        after the subtree we're in is inserted.
4243        (WebCore::SVGSMILElement::didNotifySubtreeInsertions): Added; turns around and calls SVGSMILElement::buildPendingResources().
4244        * svg/animation/SVGSMILElement.h:
4245
42462014-05-15  Mark Hahnenberg  <mhahnenberg@apple.com>
4247
4248        JSDOMWindow should not claim HasImpureGetOwnPropertySlot
4249        https://bugs.webkit.org/show_bug.cgi?id=132918
4250
4251        Reviewed by Geoffrey Garen.
4252
4253        Tests: js/cached-window-properties.html
4254               js/cached-window-prototype-properties.html
4255
4256        We now correctly handle the impurity of JSDOMWindow's custom getOwnPropertySlot without needing the 
4257        blanket HasImpureGetOwnPropertySlot. We do this through the use of watchpoints and by explicitly forbidding
4258        any caching beyond a certain point using PropertySlot::disableCaching. Getting rid of this flag will allow 
4259        us to cache many properties/methods on both the JSDOMWindow and its prototype, which are very commonly used 
4260        across the web.
4261
4262        * bindings/js/JSDOMWindowCustom.cpp:
4263        (WebCore::JSDOMWindow::getOwnPropertySlot):
4264        * bindings/scripts/CodeGeneratorJS.pm:
4265        (HasComplexGetOwnProperty):
4266        (InterfaceRequiresAttributesOnInstance):
4267        (InstanceOverridesGetOwnPropertySlot):
4268        (GenerateHeader):
4269
42702014-05-15  Alexey Proskuryakov  <ap@apple.com>
4271
4272        NetworkProcess crashes at ResourceHandle::continueDidReceiveResponse
4273        https://bugs.webkit.org/show_bug.cgi?id=132966
4274        <rdar://problem/16373694>
4275
4276        Reviewed by Brady Eidson.
4277
4278        Covered by many fast/files tests.
4279
4280        * platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::continueDidReceiveResponse):
4281        * platform/network/BlobResourceHandle.h:
4282        * platform/network/ResourceHandle.h:
4283        Don't call delegate's continueDidReceiveResponse when loading a blob:// URL,
4284        the delegate is null. On the Mac, we used to lazily create it, which was also wrong,
4285        but at least not observable.
4286
42872014-05-15  Commit Queue  <commit-queue@webkit.org>
4288
4289        Unreviewed, rolling out r168899.
4290        https://bugs.webkit.org/show_bug.cgi?id=132965
4291
4292        Broke some compositing regions tests on Mavericks (Requested
4293        by mihnea___ on #webkit).
4294
4295        Reverted changeset:
4296
4297        "[CSS Regions] Reduce the RenderRegion invasiveness in
4298        rendering code"
4299        https://bugs.webkit.org/show_bug.cgi?id=132121
4300        http://trac.webkit.org/changeset/168899
4301
43022014-05-15  Alex Christensen  <achristensen@webkit.org>
4303
4304        Add pointer lock to features without enabling it.
4305        https://bugs.webkit.org/show_bug.cgi?id=132961
4306
4307        Reviewed by Sam Weinig.
4308
4309        * Configurations/FeatureDefines.xcconfig:
4310        Added ENABLE_POINTER_LOCK to list of features.
4311        * WebCore.exp.in:
4312        Added linker symbols which differ with pointer lock enabled.
4313        * WebCore.xcodeproj/project.pbxproj:
4314        Added PointerLockController.cpp to build.
4315
43162014-05-15  Mark Hahnenberg  <mhahnenberg@apple.com>
4317
4318        Move subframe name getter lookup later in JSDOMWindow::getOwnPropertySlot
4319        https://bugs.webkit.org/show_bug.cgi?id=132922
4320
4321        Reviewed by Geoffrey Garen.
4322
4323        No new tests.
4324
4325        In JSDOMWindow::getOwnPropertySlot, we currently look for the property on the JSDOMWindow, 
4326        then we search the window's subframes for name getters, then we look in the window's prototype 
4327        chain. Apparently we were doing the lookup in this order to be compatible with Mozilla, but 
4328        Mozilla no longer implements this behavior. Instead, they do the lookup on the prototype before 
4329        looking for subframe name getters. We should change this to match Mozilla. This has the convenient 
4330        side effect of allowing us to cache lookups in the window's prototype chain.
4331
4332        * bindings/js/JSDOMWindowCustom.cpp:
4333        (WebCore::JSDOMWindow::getOwnPropertySlot):
4334
43352014-05-15  Simon Fraser  <simon.fraser@apple.com>
4336
4337        [UI-side compositing] Fix copying animations between layers, and pausing them
4338        https://bugs.webkit.org/show_bug.cgi?id=132943
4339        <rdar://problem/16906369&16906541>
4340
4341        Reviewed by Tim Horton.
4342
4343        Pass the animation key back to animationStarted(), though this isn't used
4344        when animations are running in-process.
4345
4346        * platform/graphics/ca/PlatformCALayer.h:
4347        * platform/graphics/ca/mac/PlatformCALayerMac.h:
4348        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
4349        (-[WebAnimationDelegate animationDidStart:]):
4350        (PlatformCALayerMac::animationStarted):
4351        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
4352        (PlatformCALayerWin::animationStarted):
4353        * platform/graphics/ca/win/PlatformCALayerWin.h:
4354
43552014-05-15  Andrei Bucur  <abucur@adobe.com>
4356
4357        [CSS Regions] Reduce the RenderRegion invasiveness in rendering code
4358        https://bugs.webkit.org/show_bug.cgi?id=132121
4359
4360        Reviewed by Antti Koivisto.
4361
4362        Remove the RenderRegion / RenderNamedFlowFragment parameters and fields from
4363        the painting / hit testing data structures and use a stateful approach to
4364        correctly handle regions.
4365
4366        When painting or hit testing, the current flow thread is saved along the current
4367        region. They are accessed through the |currentRenderNamedFlowFragment| helper
4368        method on RenderObject or RenderLayer.
4369
4370        The patch also changes a bunch of 0s to nullptrs.
4371
4372        Tests: No new tests, no functional change.
4373
4374        * html/shadow/MediaControlElements.cpp:
4375        (WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
4376        * rendering/HitTestLocation.cpp:
4377        (WebCore::HitTestLocation::HitTestLocation):
4378        (WebCore::HitTestLocation::operator=):
4379        * rendering/HitTestLocation.h:
4380        (WebCore::HitTestLocation::region): Deleted.
4381        * rendering/HitTestResult.h:
4382        * rendering/PaintInfo.h:
4383        (WebCore::PaintInfo::PaintInfo):
4384        * rendering/RenderBlock.cpp:
4385        (WebCore::RenderBlock::paint):
4386        (WebCore::RenderBlock::paintObject):
4387        (WebCore::RenderBlock::selectionGaps):
4388        (WebCore::RenderBlock::nodeAtPoint):
4389        * rendering/RenderBox.cpp:
4390        (WebCore::RenderBox::nodeAtPoint):
4391        (WebCore::RenderBox::paintBoxDecorations):
4392        (WebCore::RenderBox::pushContentsClip):
4393        * rendering/RenderBoxModelObject.cpp:
4394        (WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
4395        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
4396        * rendering/RenderBoxModelObject.h:
4397        * rendering/RenderLayer.cpp:
4398        (WebCore::RenderLayer::paint):
4399        (WebCore::RenderLayer::paintLayer):
4400        (WebCore::RenderLayer::paintLayerContents):
4401        (WebCore::RenderLayer::paintLayerByApplyingTransform):
4402        (WebCore::RenderLayer::collectFragments):
4403        (WebCore::RenderLayer::updatePaintingInfoForFragments):
4404        (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
4405        (WebCore::RenderLayer::paintBackgroundForFragments):
4406        (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
4407        (WebCore::RenderLayer::paintOutlineForFragments):
4408        (WebCore::RenderLayer::paintMaskForFragments):
4409        (WebCore::RenderLayer::hitTest):
4410        (WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
4411        (WebCore::RenderLayer::hitTestLayer):
4412        (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
4413        (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
4414        (WebCore::RenderLayer::calculateClipRects):
4415        * rendering/RenderLayer.h:
4416        * rendering/RenderLayerBacking.cpp:
4417        (WebCore::RenderLayerBacking::updateCompositedBounds):
4418        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
4419        * rendering/RenderLayerCompositor.cpp:
4420        (WebCore::RenderLayerCompositor::addToOverlapMap):
4421        (WebCore::RenderLayerCompositor::clippedByAncestor):
4422        * rendering/RenderObject.cpp:
4423        (WebCore::RenderObject::currentRenderNamedFlowFragment):
4424        * rendering/RenderObject.h:
4425        * rendering/RenderReplaced.cpp:
4426        (WebCore::RenderReplaced::shouldPaint):
4427        * rendering/RenderReplica.cpp:
4428        (WebCore::RenderReplica::paint):
4429        * rendering/RenderTable.cpp:
4430        (WebCore::RenderTable::nodeAtPoint):
4431        * rendering/RenderTableSection.cpp:
4432        (WebCore::RenderTableSection::nodeAtPoint):
4433        * rendering/RenderTreeAsText.cpp:
4434        (WebCore::writeLayers):
4435        * rendering/RootInlineBox.cpp:
4436        (WebCore::RootInlineBox::paint):
4437        * rendering/svg/RenderSVGRoot.cpp:
4438        (WebCore::RenderSVGRoot::paintReplaced):
4439
44402014-05-14  Simon Fraser  <simon.fraser@apple.com>
4441
4442        Clean up "has non-zero begin time" terminology in animations
4443        https://bugs.webkit.org/show_bug.cgi?id=132942
4444
4445        Reviewed by Tim Horton.
4446
4447        Change the "non-zero beginTime" terminology in the platform CA animations
4448        code to "explicit beginTime": this flag really means that we explicitly set
4449        the beginTime of the animation, rather than let CA set the beginTime when
4450        committing the animation. This flag is used for animations with negative
4451        delay, and when pausing.
4452        
4453        The WKNonZeroBeginTimeFlag key was spread across PlatformCALayerMac and PlatformCAAnimationMac,
4454        so hide it behind getter/setter functions.
4455        
4456        Remove lots of m_layer.get() in PlatformCAAnimationMac.
4457
4458        * platform/graphics/ca/mac/PlatformCAAnimationMac.h:
4459        * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
4460        (WebCore::hasExplicitBeginTime):
4461        (WebCore::setHasExplicitBeginTime):
4462        (PlatformCAAnimationMac::copy):
4463        (PlatformCAAnimationMac::keyPath):
4464        (PlatformCAAnimationMac::beginTime):
4465        (PlatformCAAnimationMac::setBeginTime):
4466        (PlatformCAAnimationMac::duration):
4467        (PlatformCAAnimationMac::setDuration):
4468        (PlatformCAAnimationMac::speed):
4469        (PlatformCAAnimationMac::setSpeed):
4470        (PlatformCAAnimationMac::timeOffset):
4471        (PlatformCAAnimationMac::setTimeOffset):
4472        (PlatformCAAnimationMac::repeatCount):
4473        (PlatformCAAnimationMac::setRepeatCount):
4474        (PlatformCAAnimationMac::autoreverses):
4475        (PlatformCAAnimationMac::setAutoreverses):
4476        (PlatformCAAnimationMac::fillMode):
4477        (PlatformCAAnimationMac::setFillMode):
4478        (PlatformCAAnimationMac::setTimingFunction):
4479        (PlatformCAAnimationMac::copyTimingFunctionFrom):
4480        (PlatformCAAnimationMac::isRemovedOnCompletion):
4481        (PlatformCAAnimationMac::setRemovedOnCompletion):
4482        (PlatformCAAnimationMac::isAdditive):
4483        (PlatformCAAnimationMac::setAdditive):
4484        (PlatformCAAnimationMac::valueFunction):
4485        (PlatformCAAnimationMac::setValueFunction):
4486        (hasNonZeroBeginTimeFlag): Deleted.
4487        (setNonZeroBeginTimeFlag): Deleted.
4488        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
4489        (-[WebAnimationDelegate animationDidStart:]):
4490
44912014-05-15  Carlos Garcia Campos  <cgarcia@igalia.com>
4492
4493        [GTK] Compile all installed resources as GResources
4494        https://bugs.webkit.org/show_bug.cgi?id=131099
4495
4496        Reviewed by Philippe Normand.
4497
4498        * PlatformGTK.cmake: Do not install the resources.
4499        * platform/audio/gtk/AudioBusGtk.cpp:
4500        (WebCore::AudioBus::loadPlatformResource): Load the audio resource
4501        from GResources and use createBusFromInMemoryAudioFile().
4502        * platform/graphics/Image.h: Remove unsued function loadPlatformThemeIcon.
4503        * platform/graphics/gtk/ImageGtk.cpp:
4504        (WebCore::loadImageFromGResource): Load the given icon name from GResources.
4505        (WebCore::loadResourceSharedBuffer): Use char* instead of CString.
4506        (WebCore::loadMissingImageIconFromTheme): Try to load the missing
4507        icon from the current GTK icon theme.
4508        (WebCore::Image::loadPlatformResource): Call
4509        loadMissingImageIconFromTheme for missing icon or
4510        loadImageFromGResource for any other icon name.
4511        (WebCore::getPathToImageResource): Deleted.
4512        (WebCore::getThemeIconFileName): Deleted.
4513        (WebCore::loadImageFromFile): Deleted.
4514        (WebCore::Image::loadPlatformThemeIcon): Deleted.
4515
45162014-05-14  Beth Dakin  <bdakin@apple.com>
4517
4518        Tiled scrolling indicator needs to take topContentInset into account
4519        https://bugs.webkit.org/show_bug.cgi?id=132940
4520
4521        Reviewed by Simon Fraser.
4522
4523        The tiled scrolling indicator needs to move down by the value of the 
4524        topContentInset. This patch makes that happen by caching the topContentInset in 
4525        the TileController. This does feel a little silly since there is already a 
4526        function called setTiledScrollingIndicatorPosition() on TiledBacking. However, it 
4527        was often the case that calling that function had no effect because m_coverageMap 
4528        had not yet been created, and then the information was lost. So instead, we cache 
4529        the value.
4530
4531        Set TiledBacking’s copy of topContentInset whenever it changes for the FrameView.
4532        * page/FrameView.cpp:
4533        (WebCore::FrameView::topContentInsetDidChange):
4534
4535        New function to set the inset. Use the inset to position the coverage map.
4536        * platform/graphics/TiledBacking.h:
4537        * platform/graphics/ca/mac/TileController.h:
4538        * platform/graphics/ca/mac/TileController.mm:
4539        (WebCore::TileController::TileController):
4540        (WebCore::TileController::setTopContentInset):
4541
4542        When the coverage map is created, consult the value of the inset.
4543        * platform/graphics/ca/mac/TileCoverageMap.mm:
4544        (WebCore::TileCoverageMap::TileCoverageMap):
4545
4546        Once the backing has been ensured, set the inset.
4547        * rendering/RenderLayerCompositor.cpp:
4548        (WebCore::RenderLayerCompositor::updateBacking):
4549
45502014-05-14  Brent Fulgham  <bfulgham@apple.com>
4551
4552        Merge r1267628 from branch.
4553        <rdar://problem/15751219>
4554
4555            Pratik Solanki  <psolanki@apple.com>
4556
4557            Reviewed by Simon Fraser.",
4558
4559            TileController relied on the tiling mode in TileCache to determine if it should use low-res
4560            tiles when zooming. Unfortunately, sometimes the tiling mode gets set to Zooming even though
4561            it's actually a pan. Thus we can end up with blurry tiles. Fix this by adding a new flag on
4562            TileCache that controls this behavior and have UIKit set it only when we have an actual zoom
4563            operation.
4564 
4565        * platform/ios/LegacyTileCache.h:
4566        (WebCore::LegacyTileCache::tileControllerShouldUseLowScaleTiles):
4567        (WebCore::LegacyTileCache::setTileControllerShouldUseLowScaleTiles):
4568        * platform/ios/LegacyTileCache.mm:
4569        (WebCore::LegacyTileCache::LegacyTileCache):
4570        * platform/ios/wak/WAKWindow.h:
4571        * platform/ios/wak/WAKWindow.mm:
4572        (-[WAKWindow setTileControllerShouldUseLowScaleTiles:]):
4573        * rendering/RenderLayerCompositor.cpp:
4574        (WebCore::RenderLayerCompositor::contentsScaleMultiplierForNewTiles):
4575
45762014-05-14  Commit Queue  <commit-queue@webkit.org>
4577
4578        Unreviewed, rolling out r168750.
4579        https://bugs.webkit.org/show_bug.cgi?id=132935
4580
4581        Caused repaint bugs (Requested by weinig on #webkit).
4582
4583        Reverted changeset:
4584
4585        "Text decorations do not contribute to visual overflow"
4586        https://bugs.webkit.org/show_bug.cgi?id=132773
4587        http://trac.webkit.org/changeset/168750
4588
45892014-05-14  Simon Fraser  <simon.fraser@apple.com>
4590
4591        [New multicolumn] Spin in RenderMultiColumnSet::repaintFlowThreadContent()
4592        https://bugs.webkit.org/show_bug.cgi?id=132884
4593
4594        Reviewed by Beth Dakin.
4595
4596        On iOS, wikipedia pages can hang under RenderMultiColumnSet::repaintFlowThreadContent().
4597        It appears that computedColumnHeight is set to 0 in prepareForLayout, but layout never happens
4598        on the RenderMultiColumnSet in some cases, leaving the column height set to zero.
4599        This caused columnIndexAtOffset() to return bad values, which resulted in very long loops
4600        in repaintFlowThreadContent().
4601        
4602        This fix is a stop-gap.
4603
4604        * rendering/RenderMultiColumnSet.cpp:
4605        (WebCore::RenderMultiColumnSet::columnIndexAtOffset):
4606
46072014-05-14  Benjamin Poulain  <bpoulain@apple.com>
4608
4609        Remove FrameView::viewportConstrainedExtentRect, it is unused
4610        https://bugs.webkit.org/show_bug.cgi?id=132927
4611
4612        Reviewed by Simon Fraser.
4613
4614        * page/FrameView.cpp:
4615        (WebCore::FrameView::viewportConstrainedExtentRect): Deleted.
4616        * page/FrameView.h:
4617        Simon replaced this by viewportConstrainedVisibleContentRect, remove the old code.
4618
46192014-05-14  Matthew Hanson  <matthew_hanson@apple.com>
4620
4621        Only define MAX_GRID_TRACK_REPETITIONS if CSS_GRID_LAYOUT is enabled.
4622
4623        Reviewed by Dean Jackson.
4624
4625        This was causing -Wunused-const-variable errors.
4626
4627        * css/CSSParser.cpp: Add include guard.
4628
46292014-05-14  Beth Dakin  <bdakin@apple.com>
4630
4631        Tile cache has way too many tiles when pinch-zoomed in
4632        https://bugs.webkit.org/show_bug.cgi?id=132929
4633        -and corresponding-
4634        <rdar://problem/16527172>
4635
4636        Reviewed by Benjamin Poulain.
4637
4638        This patch makes the margin sizing functions return the set margin size scaled by 
4639        the TileGrid's scale. We also need to get rid of the old notion we used to have
4640        that margin tiles might be allowed to have a different size than the other tiles. 
4641        We don't want that. They should have the normal margin size, but they should
4642        affect the overall coverage area.
4643
4644        Scale by the TileGrid's scale.
4645        * platform/graphics/ca/mac/TileController.mm:
4646        (WebCore::TileController::topMarginHeight):
4647        (WebCore::TileController::bottomMarginHeight):
4648        (WebCore::TileController::leftMarginWidth):
4649        (WebCore::TileController::rightMarginWidth):
4650
4651        Get rid of adjustRectAtTileIndexForMargin() since we do not want to ever do this 
4652        adjustment. Use tileSize instead of margin size for all sizing computations.
4653        * platform/graphics/ca/mac/TileGrid.h:
4654        * platform/graphics/ca/mac/TileGrid.mm:
4655        (WebCore::TileGrid::rectForTileIndex):
4656        (WebCore::TileGrid::getTileIndexRangeForRect):
4657        (WebCore::TileGrid::adjustRectAtTileIndexForMargin): Deleted.
4658
46592014-05-14  Dean Jackson  <dino@apple.com>
4660
4661        [Mac] Search fields should not use centered look
4662        https://bugs.webkit.org/show_bug.cgi?id=132930
4663        <rdar://problem/16825842>
4664
4665        Reviewed by Beth Dakin.
4666
4667        We need to explicitly set the centeredLook property
4668        to NO on modern releases of Mac.
4669
4670        * rendering/RenderThemeMac.mm: Declare a new private property and set it to NO.
4671        (WebCore::RenderThemeMac::search):
4672
46732014-05-14  Zalan Bujtas  <zalan@apple.com>
4674
4675        Subpixel layout: Change Element.offset* client* scroll* return type to double.
4676        https://bugs.webkit.org/show_bug.cgi?id=132895
4677
4678        Reviewed by Simon Fraser.
4679
4680        This patch changes Element.offset*, Element.client* and Element.scroll* APIs return
4681        type from long to double to match the latest CSSOM View Module spec[1].
4682        Element.offset* and Element.client* do return subpixel values from now on.
4683        Element.scroll* still return integral values as the scrolling code hasn't adopted to subpixel rendering yet.
4684
4685        subpixelCSSOMElementMetricsEnabled setting is added to be able to turn this feature on/off
4686        from WK2 preferences. It toggles the return value from subpixel to floored integral.
4687        It does not change layout/rendering behavior.
4688
4689        Reference list of what other browsers do:
4690        IE: http://blogs.msdn.com/b/ie/archive/2012/02/17/sub-pixel-rendering-and-the-css-object-model.aspx
4691        Blink: http://www.chromestatus.com/features/5497402177880064
4692        Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=825607
4693
4694        [1] http://www.w3.org/TR/2013/WD-cssom-view-20131217/
4695
4696        Test: cssom/subpixel-offsetleft-top-width-height-values.html
4697
4698        * dom/Element.cpp:
4699        (WebCore::localZoomForRenderer):
4700        (WebCore::adjustForLocalZoom):
4701        (WebCore::convertToNonSubpixelValueIfNeeded):
4702        (WebCore::Element::offsetLeft):
4703        (WebCore::Element::offsetTop):
4704        (WebCore::Element::offsetWidth):
4705        (WebCore::Element::offsetHeight):
4706        (WebCore::Element::clientLeft):
4707        (WebCore::Element::clientTop):
4708        (WebCore::Element::clientWidth):
4709        (WebCore::Element::clientHeight):
4710        (WebCore::Element::scrollLeft):
4711        (WebCore::Element::scrollTop):
4712        (WebCore::Element::setScrollLeft):
4713        (WebCore::Element::setScrollTop):
4714        (WebCore::Element::scrollWidth):
4715        (WebCore::Element::scrollHeight):
4716        * dom/Element.h:
4717        * dom/Element.idl:
4718        * html/HTMLBodyElement.cpp:
4719        (WebCore::adjustForZoom):
4720        (WebCore::HTMLBodyElement::scrollLeft):
4721        (WebCore::HTMLBodyElement::setScrollLeft):
4722        (WebCore::HTMLBodyElement::scrollTop):
4723        (WebCore::HTMLBodyElement::setScrollTop):
4724        (WebCore::HTMLBodyElement::scrollHeight):
4725        (WebCore::HTMLBodyElement::scrollWidth):
4726        * html/HTMLBodyElement.h:
4727        * page/Settings.in:
4728
47292014-05-14  Brady Eidson  <beidson@apple.com>
4730
4731        Implement NSSharingServiceDelegate method "transitionImageForShareItem"
4732        <rdar://problem/16878020> and https://bugs.webkit.org/show_bug.cgi?id=132911
4733
4734        Reviewed by Tim Horton.
4735
4736        * WebCore.exp.in:
4737        * WebCore.xcodeproj/project.pbxproj:
4738
47392014-05-14  Alex Christensen  <achristensen@webkit.org>
4740
4741        Another unreviewed build fix.
4742
4743        * platform/network/mac/ResourceHandleMac.mm:
4744        (WebCore::ResourceHandle::getTimingData):
4745        Added necessary UNUSED_PARAMs.
4746
47472014-05-14  Alex Christensen  <achristensen@webkit.org>
4748
4749        Unreviewed build fix after r168849.
4750
4751        * platform/network/mac/ResourceHandleMac.mm:
4752        (WebCore::ResourceHandle::getTimingData):
4753        Protect use of timing data with ENABLE(WEB_TIMING).
4754
47552014-05-14  Alex Christensen  <achristensen@webkit.org>
4756
4757        Refactor duplicate code in web timing.
4758        https://bugs.webkit.org/show_bug.cgi?id=132917
4759
4760        Reviewed by Alexey Proskuryakov.
4761
4762        * platform/network/ResourceHandle.h:
4763        Added getTimingData declaration.
4764        * platform/network/mac/ResourceHandleMac.mm:
4765        (WebCore::ResourceHandle::getTimingData):
4766        * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
4767        (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
4768        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
4769        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
4770        Moved duplicate code to ResourceHandle.
4771
47722014-05-14  Alex Christensen  <achristensen@webkit.org>
4773
4774        Use references instead of pointers with ResourceLoadTiming.
4775        https://bugs.webkit.org/show_bug.cgi?id=132846
4776
4777        Reviewed by Alexey Proskuryakov.
4778
4779        * WebCore.exp.in:
4780        Removed ResourceResponseBase::setResourceLoadTiming linker symbol.
4781        * inspector/InspectorResourceAgent.cpp:
4782        (WebCore::buildObjectForResourceResponse):
4783        * page/PerformanceResourceTiming.cpp:
4784        (WebCore::PerformanceResourceTiming::domainLookupStart):
4785        (WebCore::PerformanceResourceTiming::domainLookupEnd):
4786        (WebCore::PerformanceResourceTiming::connectStart):
4787        (WebCore::PerformanceResourceTiming::connectEnd):
4788        (WebCore::PerformanceResourceTiming::secureConnectionStart):
4789        (WebCore::PerformanceResourceTiming::requestStart):
4790        Use references instead of pointers.
4791        * page/PerformanceResourceTiming.h:
4792        Make an instance instead of a RefPtr.
4793        * page/PerformanceTiming.cpp:
4794        (WebCore::PerformanceTiming::domainLookupStart):
4795        (WebCore::PerformanceTiming::domainLookupEnd):
4796        (WebCore::PerformanceTiming::connectStart):
4797        (WebCore::PerformanceTiming::connectEnd):
4798        (WebCore::PerformanceTiming::secureConnectionStart):
4799        (WebCore::PerformanceTiming::requestStart):
4800        (WebCore::PerformanceTiming::responseStart):
4801        Check to see if the loader exists, then use ResourceLoadTiming reference.
4802        (WebCore::PerformanceTiming::resourceLoadTiming): Deleted.
4803        * page/PerformanceTiming.h:
4804        Removed resourceLoadTiming declaration.
4805        * platform/network/ResourceLoadTiming.h:
4806        (WebCore::ResourceLoadTiming::ResourceLoadTiming):
4807        (WebCore::ResourceLoadTiming::operator=):
4808        Replaced reference counting with copy constructors.
4809        (WebCore::ResourceLoadTiming::create): Deleted.
4810        (WebCore::ResourceLoadTiming::deepCopy): Deleted.
4811        * platform/network/ResourceResponseBase.cpp:
4812        (WebCore::ResourceResponseBase::adopt):
4813        (WebCore::ResourceResponseBase::copyData):
4814        (WebCore::ResourceResponseBase::resourceLoadTiming):
4815        (WebCore::ResourceResponseBase::setResourceLoadTiming):
4816        (WebCore::ResourceResponseBase::compare):
4817        * platform/network/ResourceResponseBase.h:
4818        * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
4819        (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
4820        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
4821        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
4822        * platform/network/soup/ResourceHandleSoup.cpp:
4823        (WebCore::ResourceHandle::didStartRequest):
4824        (WebCore::networkEventCallback):
4825        Use references instead of pointers.
4826
48272014-05-14  Commit Queue  <commit-queue@webkit.org>
4828
4829        Unreviewed, rolling out r168837.
4830        https://bugs.webkit.org/show_bug.cgi?id=132913
4831
4832        The patch added an assertion which fires on 6 tests (Requested
4833        by ap on #webkit).
4834
4835        Reverted changeset:
4836
4837        "[CSS Regions] Add ASSERT to make sure using the flowThread
4838        cache does not return incorrect results"
4839        https://bugs.webkit.org/show_bug.cgi?id=132906
4840        http://trac.webkit.org/changeset/168837
4841
48422014-05-13  Jon Honeycutt  <jhoneycutt@apple.com>
4843
4844        Revert "Don't dispatch 'beforeload' event inside FrameView::layout()",
4845        commit 84fe8cf6fbe8b5de9a06300ca3ef6d0ffc96948c, and associated
4846        follow-up fixes:
4847
4848            "platform/mac/plugins/testplugin-onnew-onpaint.html failing after
4849                r168668", commit c17be3bf5127baf94310af4b4b9bf5a57d29aaf4
4850            "[Win] Unreviewed build fix after r168668.", commit
4851                4fa470ad12c38ee7d4c114541b6dd321181a8bc9
4852
4853        The original merged patch appears to have caused a regression in
4854        fast/dom/HTMLObjectElement/object-as-frame.html.
4855
4856        <https://bugs.webkit.org/show_bug.cgi?id=132886>
4857
4858        Reviewed by Alexey Proskuryakov.
4859
4860        * WebCore.exp.in:
4861        * dom/Document.cpp:
4862        (WebCore::Document::updateLayoutIgnorePendingStylesheets):
4863        * dom/Document.h:
4864        * html/HTMLAppletElement.cpp:
4865        (WebCore::HTMLAppletElement::renderWidgetForJSBindings):
4866        * html/HTMLEmbedElement.cpp:
4867        (WebCore::HTMLEmbedElement::renderWidgetForJSBindings):
4868        * html/HTMLObjectElement.cpp:
4869        (WebCore::HTMLObjectElement::renderWidgetForJSBindings):
4870        * page/FrameView.cpp:
4871        (WebCore::FrameView::FrameView):
4872        (WebCore::FrameView::reset):
4873        (WebCore::FrameView::flushAnyPendingPostLayoutTasks):
4874        (WebCore::FrameView::performPostLayoutTasks):
4875        (WebCore::FrameView::updateEmbeddedObjectsTimerFired): Deleted.
4876        * page/FrameView.h:
4877        * testing/Internals.cpp:
4878        (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks): Deleted.
4879        * testing/Internals.h:
4880        * testing/Internals.idl:
4881
48822014-05-14  Kiran  <kiran.guduru@samsung.com>
4883
4884        alidation for getUserMedia() errorCallback is missing.
4885        https://bugs.webkit.org/show_bug.cgi?id=132901
4886
4887        Reviewed by Darin Adler.
4888
4889        The patch adds the validation for getUserMedia errorCallBack
4890        and throws TypeMismatchError.
4891
4892        Test: fast/mediastream/getusermedia.html 
4893
4894        * Modules/mediastream/NavigatorUserMedia.cpp:
4895        (WebCore::NavigatorUserMedia::webkitGetUserMedia):
4896
48972014-05-14  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
4898
4899        Remove CSS_STICKY_POSITION guards
4900        https://bugs.webkit.org/show_bug.cgi?id=132676
4901
4902        Reviewed by Simon Fraser.
4903
4904        * Configurations/FeatureDefines.xcconfig:
4905        * css/CSSParser.cpp:
4906        (WebCore::isValidKeywordPropertyAndValue):
4907        * css/CSSPrimitiveValueMappings.h:
4908        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
4909        (WebCore::CSSPrimitiveValue::operator EPosition):
4910        * css/CSSValueKeywords.in:
4911        * editing/EditingStyle.cpp:
4912        (WebCore::EditingStyle::convertPositionStyle):
4913
49142014-05-14  Radu Stavila  <stavila@adobe.com>
4915
4916        [CSS Regions] Add ASSERT to make sure using the flowThread cache does not return incorrect results
4917        https://bugs.webkit.org/show_bug.cgi?id=132906
4918
4919        Reviewed by Andrei Bucur.
4920
4921        If flowThreadContainingBlock() is called on an object which is in a different
4922        flow thread than the one currently being laid out, this method will return an incorrect
4923        result. I added an assertion for that to make sure we catch and treat any such scenarios.
4924
4925        No new tests required.
4926
4927        * rendering/RenderObject.cpp:
4928        (WebCore::RenderObject::locateFlowThreadContainingBlockNoCache):
4929        (WebCore::RenderObject::locateFlowThreadContainingBlock):
4930        * rendering/RenderObject.h:
4931
49322014-05-14  Andrei Bucur  <abucur@adobe.com>
4933
4934        [CSS Regions] Don't relayout when updating the region range unless necessary
4935        https://bugs.webkit.org/show_bug.cgi?id=132120
4936
4937        Reviewed by Antti Koivisto.
4938
4939        The patch reduces the cases when a relayout is made for boxes that change the region range.
4940        This lowers the amount of nested layouts in most cases and produces big layout speedups for trees
4941        without overhanging floats.
4942
4943        Tests: Major performance improvement with speedups of 50-60% on:
4944        Layout/RegionsAuto.html, Layout/RegionsAutoMaxHeight.html and Layout/RegionsFixed.html
4945
4946        * rendering/RenderBlock.cpp:
4947        (WebCore::RenderBlock::updateRegionRangeForBoxChild): Ask the child box if it needs a relayout
4948        in case its region range changes.
4949        * rendering/RenderBlockFlow.cpp:
4950        (WebCore::RenderBlockFlow::layoutBlockChild): It's not necessary to do two layouts here because
4951        there's no block direction position change between them for the child.
4952        (WebCore::RenderBlockFlow::needsLayoutAfterRegionRangeChange): If the block doesn't have floats
4953        or if it expands to enclose the floats it doesn't need to relayout after a region range chage.
4954        It's not possible for it to have a float inside overflow that must be repositioned using the new
4955        range.
4956        * rendering/RenderBlockFlow.h:
4957        * rendering/RenderBox.h:
4958        (WebCore::RenderBox::needsLayoutAfterRegionRangeChange): By default don't relayout after a region
4959        range change.
4960
49612014-05-14  Antti Koivisto  <antti@apple.com>
4962
4963        RuleData should ref the StyleRule
4964        https://bugs.webkit.org/show_bug.cgi?id=132865
4965
4966        Reviewed by Andreas Kling.
4967
4968        As a defensive move make RuleData ref the StyleRule. 
4969        This adds some ref churn but the overall performance impact should be minimal.
4970
4971        * css/RuleSet.h:
4972        (WebCore::RuleData::rule):
4973
49742014-05-14  Antti Koivisto  <antti@apple.com>
4975
4976        GIF animations don't restart after scrolling on iOS WebKit1
4977        https://bugs.webkit.org/show_bug.cgi?id=132900
4978
4979        Reviewed by Andreas Kling.
4980
4981        * WebCore.exp.in:
4982
49832014-05-13  Andrei Bucur  <abucur@adobe.com>
4984
4985        [CSS Regions] Assertion failure in some cases with inline blocks
4986        https://bugs.webkit.org/show_bug.cgi?id=132859
4987
4988        Reviewed by Mihnea Ovidenie.
4989
4990        The patch hardens the conditions when the region range caches are
4991        populated to avoid desynchronizations when objects move during layout.
4992        This is true especially in the case of the boxes found inside
4993        inline blocks, that get their range from the containing line.
4994
4995        There is a new function |computedRegionRangeForBox| that will always
4996        return a region range for a box using a best effort algorithm. This should
4997        be used only when there's no need to cache region information.
4998
4999        This change also allows better control over the lifecycle of the
5000        |RenderBoxRegionInfo| objects stored on the regions. We can now iterate
5001        over the full range of the box when cleaning up the region box info. The
5002        same applies for the width change detection function.
5003
5004        Test: fast/regions/inline-block-shifted-region.html
5005
5006        * rendering/RenderBlockLineLayout.cpp:
5007        (WebCore::RenderBlockFlow::updateRegionForLine): Don't set the containing
5008        region if the block doesn't have a range. The returned value would not
5009        be correctly clamped.
5010        * rendering/RenderBox.cpp:
5011        (WebCore::RenderBlock::hasRegionRangeInFlowThread):
5012        * rendering/RenderBox.h:
5013        * rendering/RenderFlowThread.cpp:
5014        (WebCore::RenderFlowThread::removeRenderBoxRegionInfo): Iterate only over
5015        the range of the box, not from the start of the region chain.
5016        (WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock): Same as
5017        above.
5018        (WebCore::RenderFlowThread::hasCachedRegionRangeForBox):
5019        (WebCore::RenderFlowThread::getRegionRangeForBoxFromCachedInfo):
5020        (WebCore::RenderFlowThread::getRegionRangeForBox):
5021        (WebCore::RenderFlowThread::computedRegionRangeForBox): Best effort function
5022        to determine the range of a box. It will always return something as long
5023        as the flow thread has regions.
5024        (WebCore::RenderFlowThread::objectShouldFragmentInFlowRegion): Use the new function
5025        to determine the range.
5026        * rendering/RenderFlowThread.h:
5027        * rendering/RenderNamedFlowThread.cpp:
5028        (WebCore::RenderNamedFlowThread::absoluteQuadsForBox): Use the new function to determine
5029        the range.
5030
50312014-05-13  Simon Fraser  <simon.fraser@apple.com>
5032
5033        Fix "ASSERTION FAILED: m_representation == PlatformLayerRepresentation" with UI-side compositing
5034        https://bugs.webkit.org/show_bug.cgi?id=132899
5035
5036        Reviewed by Beth Dakin.
5037
5038        Export some things
5039
5040        * WebCore.exp.in:
5041
50422014-05-13  Hans Muller  <hmuller@adobe.com>
5043
5044        [CSS Shapes] line height grows around polygon and incorrectly causes text to wrap to next line
5045        https://bugs.webkit.org/show_bug.cgi?id=131622
5046
5047        Reviewed by Bem Jones-Bey.
5048
5049        Corrected an earlier PolygonShape fix https://bugs.webkit.org/show_bug.cgi?id=132132
5050        When the top or bottom of a layout line is coincident with a polygon edge vertex, we
5051        only consider it an intersection if the edge extends into the line.
5052
5053        Test: fast/shapes/shape-outside-floats/shape-outside-edge-case.html
5054
5055        * rendering/shapes/PolygonShape.cpp:
5056        (WebCore::OffsetPolygonEdge::clippedEdgeXRange):
5057
50582014-05-13  Beth Dakin  <bdakin@apple.com>
5059
5060        m_layerForOverhangAreas is sometimes not positioned correctly when topContentInset 
5061        has changed
5062        https://bugs.webkit.org/show_bug.cgi?id=132898
5063        -and corresponding-
5064        <rdar://problem/16644710>
5065
5066        Reviewed by Anders Carlsson.
5067
5068        This function is called whenever the topContentInset changes, so use it as an 
5069        opportunity to ensure that m_layerForOverhangAreas has been positioned correctly.
5070        * rendering/RenderLayerCompositor.cpp:
5071        (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
5072
5073        Everyone gets an anchor point!
5074        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
5075
50762014-05-13  Dean Jackson  <dino@apple.com>
5077
5078        Attempted build fix after https://bugs.webkit.org/show_bug.cgi?id=132891
5079
5080        * page/PageDebuggable.cpp:
5081
50822014-05-13  Timothy Hatcher  <timothy@apple.com>
5083
5084        Force developerExtrasEnabled when a remote Inspector client connects.
5085
5086        https://bugs.webkit.org/show_bug.cgi?id=132891
5087
5088        Reviewed by Joseph Pecoraro.
5089
5090        * page/PageDebuggable.cpp:
5091        (WebCore::PageDebuggable::PageDebuggable): Initialize m_forcedDeveloperExtrasEnabled to false.
5092        (WebCore::PageDebuggable::connect): Set m_forcedDeveloperExtrasEnabled if the setting is changed.
5093        (WebCore::PageDebuggable::disconnect): Switch developerExtrasEnabled back to false
5094        if m_forcedDeveloperExtrasEnabled is true.
5095        * page/PageDebuggable.h: Added m_forcedDeveloperExtrasEnabled.
5096
50972014-05-13  Beth Dakin  <bdakin@apple.com>
5098
5099        REGRESSION (topContentInset): Searching through Facebook Messenger's chat causes 
5100        scrolling in News Feed
5101        https://bugs.webkit.org/show_bug.cgi?id=132889
5102        -and corresponding-
5103        <rdar://problem/16715716>
5104
5105        Reviewed by Simon Fraser.
5106
5107        First of all, scrollOffsetRelativeToDocument() was very poorly named. This patch 
5108        re-names it to the much more accurate documentScrollOffsetRelativeToViewOrigin(). 
5109        Re-naming it makes it clear that ONE call site was not getting the right offset. 
5110        That call site does not want to know the document’s position relative to the view 
5111        origin, but rather it wants to know the Document’s position relative to the 
5112        scrolling origin.
5113
5114        Export new name.
5115        * WebCore.exp.in:
5116
5117        Use newly re-named documentScrollPositionRelativeToViewOrigin().
5118        * page/FrameView.cpp:
5119        (WebCore::FrameView::convertToRenderer):
5120        * platform/ScrollView.cpp:
5121        (WebCore::ScrollView::documentScrollOffsetRelativeToViewOrigin):
5122        (WebCore::ScrollView::documentScrollPositionRelativeToViewOrigin):
5123        (WebCore::ScrollView::documentScrollOffsetRelativeToScrollableAreaOrigin):
5124        (WebCore::ScrollView::rootViewToContents):
5125        (WebCore::ScrollView::windowToContents):
5126        (WebCore::ScrollView::scrollOffsetRelativeToDocument): Deleted.
5127        (WebCore::ScrollView::scrollPositionRelativeToDocument): Deleted.
5128        * platform/ScrollView.h:
5129
5130        THIS is the spot that needs the new function, 
5131        documentScrollOffsetRelativeToScrollableAreaOrigin()()
5132        * rendering/RenderLayer.cpp:
5133        (WebCore::RenderLayer::scrollRectToVisible):
5134
51352014-05-13  Dean Jackson  <dino@apple.com>
5136
5137        [iOS] Page scale update messages for media controls should only fire at the end of zooming
5138        https://bugs.webkit.org/show_bug.cgi?id=132857
5139        <rdar://problem/16631009>
5140
5141        Reviewed by Simon Fraser.
5142
5143        As the user was zooming, the media controls that responded
5144        to the page scale (and resized themselves) would do so
5145        slightly out of sync with the screen refreshes, and it looked
5146        terrible. They really only need to get told at the end
5147        of the zoom that they need to relayout.
5148
5149        Allow setPageScaleFactor to accept another parameter
5150        that indicates if the change is stable. That way, changes
5151        during a user triggers zoom gesture can be ignored for
5152        media controls.
5153
5154        * WebCore.exp.in: Page::setPageScaleFactor takes a new parameter.
5155        * dom/Document.cpp:
5156        (WebCore::Document::pageScaleFactorChangedAndStable): Renamed from pageScaleFactorChanged.
5157        (WebCore::Document::pageScaleFactorChanged): Deleted.
5158        * dom/Document.h:
5159        * page/Page.cpp:
5160        (WebCore::Page::setPageScaleFactor): Accepts a new inStableState parameter,
5161        and tells the main frame that the scale factor has changed if it's stable.
5162        * page/Page.h:
5163
51642014-05-13  Eric Carlson  <eric.carlson@apple.com>
5165
5166        Unreviewed build fix after r168755.
5167
5168        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
5169        (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
5170
51712014-05-13  Eric Carlson  <eric.carlson@apple.com>
5172
5173        [Mac] hasVideo should return true when video is ready to display
5174        https://bugs.webkit.org/show_bug.cgi?id=132885
5175
5176        Reviewed by Jer Noble.
5177
5178        * html/HTMLMediaElement.cpp:
5179        (WebCore::HTMLMediaElement::parseAttribute):
5180
5181        * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
5182        (WebCore::AudioTrackPrivateAVFObjC::resetPropertiesFromTrack): Don't change the
5183            enabled state of the AVPlayerItemTrack during setup.
5184
5185        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
5186        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
5187        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize
5188            m_cachedIsReadyForDisplay.
5189        (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Remove "enabled" KVO observers.
5190        (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Observe "readyForDisplay"
5191            change notifications.
5192        (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): Remove for "readyForDisplay"
5193            observer.
5194        (WebCore::MediaPlayerPrivateAVFoundationObjC::hasAvailableVideoFrame): Return cached readyForDisplay
5195            state instead of polling every time.
5196        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Call setHasVideo(true) if the
5197            player layer is ready for display.
5198        (WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks): Update logging.
5199        (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks): Ditto.
5200        (WebCore::MediaPlayerPrivateAVFoundationObjC::firstFrameAvailableDidChange): Cache readyForDisplay
5201            state, call tracksChanged() if we haven't seen a video track yet.
5202        (WebCore::MediaPlayerPrivateAVFoundationObjC::trackEnabledDidChange): New.
5203        (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive): Correct logging.
5204        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange): Remove old "enabled" listeners
5205            before release tracks, add new ones to new tracks.
5206        (WebCore::assetTrackMetadataKeyNames): Add "enabled" to the list of properties we require to 
5207            be loaded before announcing that metadata has loaded.
5208        (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): Observe 
5209            "readyForDisplay" and "enabled".
5210
5211        * platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp:
5212        (WebCore::VideoTrackPrivateAVFObjC::resetPropertiesFromTrack): Don't change the
5213            enabled state of the AVPlayerItemTrack during setup.
5214
52152014-05-13  Myles C. Maxfield  <litherum@gmail.com>
5216
5217        Text decorations do not contribute to visual overflow
5218        https://bugs.webkit.org/show_bug.cgi?id=132773
5219
5220        Reviewed by Darin Adler.
5221
5222        Tests: fast/css3-text/css3-text-decoration/repaint/underline-outside-of-layout-rect.html
5223
5224        * rendering/InlineTextBox.cpp:
5225        (WebCore::textDecorationStrokeThickness): Refactor into a common function
5226        (WebCore::wavyOffsetFromDecoration): Ditto
5227        (WebCore::InlineTextBox::extendVerticalVisualOverflowForDecorations): Given
5228        vertical overflow bounds, possibly extend those to include location of
5229        decorations.
5230        (WebCore::InlineTextBox::paintDecoration): Use refactored functions.
5231        * rendering/InlineTextBox.h: Function signature
5232        * rendering/RenderBlockLineLayout.cpp:
5233        (WebCore::setLogicalWidthForTextRun): Call extendVerticalVisualOverflowForDecorations()
5234        * rendering/style/RenderStyle.cpp:
5235        (WebCore::RenderStyle::changeAffectsVisualOverflow): Inspects shadows and text decorations
5236        (WebCore::RenderStyle::changeRequiresLayout): Calls changeAffectsVisualOverflow()
5237        (WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline): Moved code from here
5238        to changeAffectsVisualOverflow().
5239        * rendering/style/RenderStyle.h: Function signature
5240
52412014-05-13  Enrica Casucci  <enrica@apple.com>
5242
5243        REGRESSION (WebKit2): Zooming to text field leaves it partially hidden by the form assistant.
5244        https://bugs.webkit.org/show_bug.cgi?id=132879
5245        <rdar://problem/16318049>
5246
5247        Reviewed by Benjamin Poulain.
5248
5249        Adding some exports. The fix to setScrollPosition is to avoid clamping the scroll
5250        position when using delegate scrolling.
5251
5252        * WebCore.exp.in:
5253        * platform/ScrollView.cpp:
5254        (WebCore::ScrollView::setScrollPosition):
5255
52562014-05-13  Brady Eidson  <beidson@apple.com>
5257
5258        Followup to: Update positioning/drawing of the image controls button.
5259        <rdar://problem/16885077> and https://bugs.webkit.org/show_bug.cgi?id=132883
5260
5261        Reviewed by Tim Horton.
5262
5263        Cleared up the actual intent behind review feedback on the original patch.
5264
5265        * html/shadow/mac/ImageControlsButtonElementMac.cpp:
5266        (WebCore::ImageControlsButtonElementMac::maybeCreate):
5267
52682014-05-13  Brady Eidson  <beidson@apple.com>
5269
5270        Update positioning/drawing of the image controls button.
5271        <rdar://problem/16885077> and https://bugs.webkit.org/show_bug.cgi?id=132883
5272
5273        Reviewed by Tim Horton.
5274
5275        * html/shadow/mac/ImageControlsButtonElementMac.cpp:
5276        (WebCore::ImageControlsButtonElementMac::maybeCreate): Add inline style for top/right
5277          positioning based on the metrics from the render theme.
5278
5279        * html/shadow/mac/imageControlsMac.css:
5280        (.x-webkit-image-controls-button): Can’t hard code any positioning.
5281
5282        * rendering/RenderTheme.h:
5283        (WebCore::RenderTheme::imageControlsButtonPositionOffset):
5284        * rendering/RenderThemeMac.h:
5285        * rendering/RenderThemeMac.mm:
5286        (WebCore::RenderThemeMac::servicesRolloverButtonCell):
5287        (WebCore::RenderThemeMac::imageControlsButtonPositionOffset):
5288
52892014-05-13  Simon Fraser  <simon.fraser@apple.com>
5290
5291        [iOS WK2] background-attachment:fixed behaves very poorly
5292        https://bugs.webkit.org/show_bug.cgi?id=132881
5293        <rdar://problem/16789526>
5294
5295        Reviewed by Beth Dakin.
5296
5297        Remove the old ENABLE_FAST_MOBILE_SCROLLING code, and add a setting that
5298        controls whether fixed backgrounds paint relative to the document, which
5299        is enabled for iOS (WK1 and WK2). This setting is consulted when we repaint
5300        fixed backgrounds on scrolling, when we paint them, and when we decide to make
5301        a layer for fixed backgrounds.
5302        
5303        * page/Settings.cpp:
5304        * page/Settings.in:
5305        * rendering/RenderBoxModelObject.cpp:
5306        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
5307        * rendering/RenderElement.cpp:
5308        (WebCore::RenderElement::styleWillChange):
5309        (WebCore::RenderElement::willBeRemovedFromTree):
5310        (WebCore::shouldRepaintFixedBackgroundsOnScroll): Deleted.
5311        * rendering/RenderLayerCompositor.cpp:
5312        (WebCore::RenderLayerCompositor::needsFixedRootBackgroundLayer):
5313
53142014-05-13  Zalan Bujtas  <zalan@apple.com>
5315
5316        REGRESSSION(r168528) Subpixel rendering: Selection rect is not positioned properly when SVG text is selected.
5317        https://bugs.webkit.org/show_bug.cgi?id=132868
5318
5319        Reviewed by Dirk Schulze.
5320
5321        Scale the selection rect. r168528 missed applying this final transform on the selection/painting rect.
5322
5323        Test: svg/text/hidpi-text-selection-rect-position.html
5324
5325        * rendering/svg/SVGInlineTextBox.cpp:
5326        (WebCore::SVGInlineTextBox::selectionRectForTextFragment):
5327
53282014-05-13  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>
5329
5330        ASSERTION FAILED: leftCategory != CalcOther && rightCategory != CalcOther
5331        in WebCore::CSSCalcBinaryOperation::createSimplified
5332        https://bugs.webkit.org/show_bug.cgi?id=132870
5333
5334        According to the standard, calc() should be able to handle angle, time
5335        and frequency values as well: http://www.w3.org/TR/css3-values/#calc
5336
5337        Reviewed by Darin Adler.
5338
5339        Test: fast/css/calc-with-angle-time-frequency.html
5340
5341        * css/CSSCalculationValue.cpp:
5342        (WebCore::unitCategory):
5343        (WebCore::CSSCalcPrimitiveValue::createCalcExpression):
5344        (WebCore::CSSCalcPrimitiveValue::computeLengthPx):
5345        (WebCore::CSSCalcPrimitiveValue::addSubtractResult):
5346        (WebCore::CSSCalcPrimitiveValue::determineCategory):
5347        (WebCore::CSSCalcBinaryOperation::primitiveType)
5348        * css/CSSCalculationValue.h: extending CalculationCategory
5349        * css/CSSParser.cpp:
5350        (WebCore::CSSParser::validCalculationUnit):
5351        * css/CSSPrimitiveValue.cpp:
5352        (WebCore::CSSPrimitiveValue::primitiveType):
5353
53542014-05-13  Darin Adler  <darin@apple.com>
5355
5356        Try to fix the !ENABLE(ICONDATABASE) build
5357
5358        * loader/icon/IconDatabase.h: Include WTFString.h.
5359
53602014-05-13  Carlos Garcia Campos  <cgarcia@igalia.com>
5361
5362        REGRESSION(r167771): [GTK] Text fields and areas are rendered unthemed
5363        https://bugs.webkit.org/show_bug.cgi?id=132864
5364
5365        Reviewed by Philippe Normand.
5366
5367        This is because the virtual methods changed the API in the parent,
5368        and since we don't have the methods marked as override we didn't
5369        noticed it. After using override keyword for all virtual methods
5370        in the derived class another problem showed up, the ActiveListBox
5371        selection methods were incorrectly named.
5372
5373        * platform/gtk/RenderThemeGtk.cpp:
5374        (WebCore::RenderThemeGtk::paintTextArea): Update to API changes in the
5375        parent class.
5376        * platform/gtk/RenderThemeGtk.h: Mark all virtual methods as
5377        override and the class as final.
5378        * platform/gtk/RenderThemeGtk2.cpp:
5379        (WebCore::RenderThemeGtk::paintTextField): Update to API changes
5380        in the parent class.
5381        (WebCore::RenderThemeGtk::platformActiveListBoxSelectionBackgroundColor):
5382        (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionBackgroundColor):
5383        (WebCore::RenderThemeGtk::platformActiveListBoxSelectionForegroundColor):
5384        (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionForegroundColor):
5385        (WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor): Deleted.
5386        (WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor): Deleted.
5387        (WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor): Deleted.
5388        (WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor): Deleted.
5389        * platform/gtk/RenderThemeGtk3.cpp:
5390        (WebCore::RenderThemeGtk::paintTextField): Update to API changes
5391        in the parent class.
5392        (WebCore::RenderThemeGtk::platformActiveListBoxSelectionBackgroundColor):
5393        (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionBackgroundColor):
5394        (WebCore::RenderThemeGtk::platformActiveListBoxSelectionForegroundColor):
5395        (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionForegroundColor):
5396        (WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor): Deleted.
5397        (WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor): Deleted.
5398        (WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor): Deleted.
5399        (WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor): Deleted.
5400
54012014-05-13  Xabier Rodriguez Calvar  <calvaris@igalia.com>
5402
5403        [GStreamer] Move toGstClockTime to utilities
5404        https://bugs.webkit.org/show_bug.cgi?id=132702
5405
5406        Reviewed by Philippe Normand.
5407
5408        toGstClockTime should be in GStreamerUtilities and corrected typo
5409        in getGstPlayFlag.
5410
5411        No new tests needed.
5412
5413        * platform/graphics/gstreamer/GStreamerUtilities.cpp:
5414        (WebCore::getGstPlayFlag): Renamed from getGstPlaysFlag.
5415        (WebCore::toGstClockTime): Moved from MediaPlayerPrivateGStreamer.
5416        (WebCore::getGstPlaysFlag): Deleted.
5417        * platform/graphics/gstreamer/GStreamerUtilities.h:
5418        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
5419        (WebCore::MediaPlayerPrivateGStreamer::setDownloadBuffering):
5420        Corrected getGstPlayFlag typo.
5421        (WebCore::toGstClockTime): Deleted.
5422
54232014-05-12  Darin Adler  <darin@apple.com>
5424
5425        Make a few icon database improvements
5426        https://bugs.webkit.org/show_bug.cgi?id=132812
5427
5428        Reviewed by Brady Eidson.
5429
5430        * WebCore.exp.in: Export more IconDatabase functions, since they are now called
5431        by WebKit2 through pointers to a class marked final.
5432
5433        * loader/icon/IconDatabase.cpp: Removed unneeded includes. Use override for
5434        virtual functions.
5435
5436        * loader/icon/IconDatabase.h: Removed unneeded includes. Marked the class final.
5437        Use override for virtual functions. Use a public constructor instead of a create
5438        function.
5439
5440        * loader/icon/IconDatabaseBase.h: Removed unneeded includes.
5441
54422014-05-13  Kiran  <kiran.guduru@samsung.com>
5443
5444        [MediaStream] MediaStream.addTrack Should not check for active state.
5445        https://bugs.webkit.org/show_bug.cgi?id=132558
5446
5447        Reviewed by Eric Carlson.
5448
5449        MediaStream.addTrack method is checking for active state of a
5450        MediaStream, but it should not check for active state while adding a Track.
5451
5452        Test: fast/mediastream/MediaStream-add-tracks-to-inactive-stream.html
5453
5454        * Modules/mediastream/MediaStream.cpp:
5455        (WebCore::MediaStream::addTrack):
5456
54572014-05-12  Mark Lam  <mark.lam@apple.com>
5458
5459        WebKit2 on iOS needs to capture the main thread's floating point environment.
5460        <https://webkit.org/b/132755>
5461
5462        Reviewed by Geoffrey Garen.
5463
5464        For iOS, WorkerThread::workerThread() expects to be able to initialize the
5465        worker thread's floating point environment to be the same as the one in the
5466        main thread.  The FP env of the main thread is expected to have been captured
5467        in the mainThreadFEnv global.  On WebKit2 for iOS, we neglected to initialize
5468        mainThreadFEnv.
5469
5470        We now introduce a FloatingPointEnvironment class that will encapsulate the main
5471        thread (aka "UIThread") fenv, and we'll call FloatingPointEnv::saveMainThreadEnvironment()
5472        from ChildProcess::platformInitialize() to ensure that the FloatingPointEnvironment
5473        singleton instance is initialized properly for WebKit2.
5474
5475        In the ChildProcess::platformInitialize(), we also need to initialize the ARMv7
5476        FP env to support denormalized numbers.  We'll do this before calling
5477        saveMainThreadEnvironment().
5478
5479        Tests: fast/workers/worker-floating-point.html
5480               js/floating-point-denormalized.html
5481
5482        * WebCore.exp.in:
5483        * WebCore.xcodeproj/project.pbxproj:
5484        * platform/ios/wak/FloatingPointEnvironment.cpp: Added.
5485        (WebCore::FloatingPointEnvironment::env):
5486        (WebCore::FloatingPointEnvironment::FloatingPointEnvironment):
5487        (WebCore::FloatingPointEnvironment::enableDenormalSupport):
5488        (WebCore::FloatingPointEnvironment::saveMainThreadEnvironment):
5489        (WebCore::FloatingPointEnvironment::propagateMainThreadEnvironment):
5490        * platform/ios/wak/FloatingPointEnvironment.h: Added.
5491        * platform/ios/wak/WebCoreThread.h:
5492        * platform/ios/wak/WebCoreThread.mm:
5493        (RunWebThread):
5494        (StartWebThread):
5495        * workers/WorkerThread.cpp:
5496        (WebCore::WorkerThread::workerThread):
5497
54982014-05-12  Dirk Schulze  <krit@webkit.org>
5499
5500        SVG root element accepts background color but fails to repaint it
5501        https://bugs.webkit.org/show_bug.cgi?id=63153
5502
5503        Reviewed by Dean Jackson.
5504
5505        This is back ported from Blink. Don't know the exact commit though.
5506        The patch checks if the SVGSVGElement is an outermost root element.
5507        If it is, mark the whole element for repaint.
5508
5509        Test: svg/custom/svg-root-background.html
5510
5511        * rendering/RenderBoxModelObject.cpp:
5512        (WebCore::RenderBoxModelObject::calculateHasBoxDecorations):
5513        (WebCore::RenderBoxModelObject::updateFromStyle):
5514        * rendering/RenderBoxModelObject.h:
5515        * rendering/svg/RenderSVGRoot.cpp:
5516        (WebCore::RenderSVGRoot::RenderSVGRoot):
5517        (WebCore::RenderSVGRoot::layout):
5518        (WebCore::RenderSVGRoot::paintReplaced):
5519        (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
5520            This is a simple optimization by taking the necessary parts
5521            from RenderReplaced and SVGRenderSupport.
5522        * rendering/svg/RenderSVGRoot.h:
5523
55242014-05-12  Simon Fraser  <simon.fraser@apple.com>
5525
5526        [iOS] Fixed items are sometimes clipped after rubber-banding
5527        https://bugs.webkit.org/show_bug.cgi?id=132851
5528        <rdar://problem/16870790>
5529
5530        Reviewed by Benjamin Poulain.
5531
5532        On iOS fixed-position layers would get clipped to the document rect,
5533        but with rubber-banding, we can now have a custom fixed postion rect
5534        that extends outside the document rect.
5535        
5536        Another issue was that we would un-composite fixed elements sometimes
5537        when scrolling fast, again because they could fall outside of the document rect.
5538        
5539        A final issue was that pinching could reveal parts of fixed elements that should
5540        lie outside the viewport, rather than clipping the layers.
5541        
5542        Fix by converting both call points to use viewportConstrainedVisibleContentRect()
5543        rather than viewportConstrainedExtentRect(). On non-iOS platforms these are
5544        the same, but on iOS viewportConstrainedVisibleContentRect() uses the
5545        custom fixed position rect, which is the correct rect to intersect with.
5546
5547        * rendering/RenderLayerBacking.cpp:
5548        (WebCore::RenderLayerBacking::updateCompositedBounds):
5549        * rendering/RenderLayerCompositor.cpp:
5550        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
5551
55522014-05-06  Jon Honeycutt  <jhoneycutt@apple.com>
5553
5554        Don't dispatch 'beforeload' event inside FrameView::layout()
5555
5556        https://bugs.webkit.org/show_bug.cgi?id=132621
5557        <rdar://problem/15661470>
5558
5559        This merges Blink revision 162073 with minor renaming and style
5560        changes. From that commit:
5561
5562        Executing JavaScript code inside FrameView::layout() is problematic.
5563        e.g. an assertion failure tested in fast/events/beforeload-assertion.html.
5564        We should avoid it.
5565
5566        This CL makes 'beforeload' event dispatching for plugins and iframes asynchronous,
5567        except plugin access from JavaScript code (HTMLPlugInElement::
5568        renderWidgetForJSBindings).
5569
5570        Reviewed by Brent Fulgham.
5571
5572        Tests: fast/events/beforeload-assertion.html
5573               fast/events/beforeload-iframe-crash.html
5574               fast/events/beforeload-input-time-crash.html
5575
5576        * WebCore.exp.in:
5577        * dom/Document.cpp:
5578        (WebCore::Document::updateLayoutIgnorePendingStylesheets):
5579        * dom/Document.h:
5580        * html/HTMLAppletElement.cpp:
5581        (WebCore::HTMLAppletElement::renderWidgetForJSBindings):
5582        * html/HTMLEmbedElement.cpp:
5583        (WebCore::HTMLEmbedElement::renderWidgetForJSBindings):
5584        * html/HTMLObjectElement.cpp:
5585        (WebCore::HTMLObjectElement::renderWidgetForJSBindings):
5586        * page/FrameView.cpp:
5587        (WebCore::FrameView::FrameView):
5588        (WebCore::FrameView::reset):
5589        (WebCore::FrameView::updateEmbeddedObjectsTimerFired):
5590        (WebCore::FrameView::flushAnyPendingPostLayoutTasks):
5591        (WebCore::FrameView::performPostLayoutTasks):
5592        * page/FrameView.h:
5593        * testing/Internals.cpp:
5594        (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks):
5595        * testing/Internals.h:
5596        * testing/Internals.idl:
5597
55982014-05-12  Roger Fong  <roger_fong@apple.com>
5599
5600        Limit number of active graphics contexts per web process.
5601        https://bugs.webkit.org/show_bug.cgi?id=132833.
5602        <rdar://problem/16888459>
5603
5604        Reviewed by Dean Jackson.
5605
5606        Test: webgl/many-contexts.html
5607
5608        * platform/graphics/GraphicsContext3D.h:
5609        * platform/graphics/mac/GraphicsContext3DMac.mm: Limit number of active contexts to 16.
5610        (WebCore::GraphicsContext3D::create):
5611        (WebCore::GraphicsContext3D::~GraphicsContext3D):
5612
56132014-05-12  Simon Fraser  <simon.fraser@apple.com>
5614
5615        Build fix fix.
5616
5617        * page/scrolling/ScrollingCoordinator.cpp:
5618        (WebCore::ScrollingCoordinator::contentShadowLayerForFrameView):
5619
56202014-05-12  Brent Fulgham  <bfulgham@apple.com>
5621
5622        DataDetectorUI doesn't update with resize
5623        https://bugs.webkit.org/show_bug.cgi?id=132830
5624        <rdar://problem/16871179>
5625
5626        Reviewed by Simon Fraser.
5627
5628        * editing/Editor.cpp:
5629        (WebCore::Editor::scanSelectionForTelephoneNumbers): Add public, no-argument
5630        version that can be called after layout changes.
5631        (WebCore::Editor::didLayout): Reprocess telephone number data
5632        since Ranges will have changed.
5633        * editing/Editor.h:
5634        * editing/FrameSelection.cpp:
5635        (WebCore::FrameSelection::updateDataDetectorsForSelection): Added.
5636        * editing/FrameSelection.h:
5637        * page/FrameView.cpp:
5638        (WebCore::FrameView::performPostLayoutTasks): Ask the FrameSelection to update the
5639        Range information for selected phone numbers.
5640
56412014-05-12  Simon Fraser  <simon.fraser@apple.com>
5642
5643        Fix the iOS build.
5644
5645        * page/scrolling/ScrollingCoordinator.cpp:
5646        (WebCore::ScrollingCoordinator::contentShadowLayerForFrameView):
5647
56482014-05-12  Simon Fraser  <simon.fraser@apple.com>
5649
5650        [iOS WK2] Fuzzy tiles on some sites on loading
5651        https://bugs.webkit.org/show_bug.cgi?id=132847
5652        <rdar://problem/16816178>
5653
5654        Reviewed by Benjamin Poulain.
5655
5656        Export WebCore::TileController::contentsScale() const
5657
5658        * WebCore.exp.in:
5659
56602014-05-12  Simon Fraser  <simon.fraser@apple.com>
5661
5662        Add debug dumping for ViewportConfiguration
5663        https://bugs.webkit.org/show_bug.cgi?id=132843
5664
5665        Reviewed by Benjamin Poulain.
5666
5667        Add some TextStream-based dumping for ViewportConfiguration.
5668
5669        * page/ViewportConfiguration.cpp:
5670        (WebCore::ViewportConfiguration::updateConfiguration):
5671        (WebCore::ViewportConfigurationTextStream::ViewportConfigurationTextStream):
5672        (WebCore::ViewportConfigurationTextStream::increaseIndent):
5673        (WebCore::ViewportConfigurationTextStream::decreaseIndent):
5674        (WebCore::dumpProperty):
5675        (WebCore::ViewportConfigurationTextStream::writeIndent):
5676        (WebCore::ViewportConfigurationTextStream::operator<<):
5677        (WebCore::ViewportConfiguration::description):
5678        (WebCore::ViewportConfiguration::dump):
5679        * page/ViewportConfiguration.h:
5680
56812014-05-12  Brady Eidson  <beidson@apple.com>
5682
5683        Followup to "Teach Editor to support more direct replacement of a Node"
5684        <rdar://problem/16817952> and https://bugs.webkit.org/show_bug.cgi?id=132834
5685
5686        Pair programmed and pair reviewed by Brady Eidson and Darin Adler.
5687
5688        * editing/mac/EditorMac.mm:
5689        (WebCore::maybeCopyNodeAttributesToFragment):
5690        (WebCore::Editor::replaceNodeFromPasteboard):
5691
56922014-05-12  Beth Dakin  <bdakin@apple.com>
5693
5694        Content shadow layer needs to move in sync with the content layer
5695        https://bugs.webkit.org/show_bug.cgi?id=132841
5696        -and corresponding-
5697        <rdar://problem/16641115>
5698
5699        Reviewed by Simon Fraser.
5700
5701        Now that the root content layer moves a little bit (for y scroll positions between 
5702        0 and topContentInset), the shadow layer needs to move along with it since the 
5703        shadow layer should always have the same position as the root content layer.
5704
5705        Set the root state node’s shadow layer, and update the position whenever the root 
5706        content layer’s position is updated.
5707        * page/scrolling/AsyncScrollingCoordinator.cpp:
5708        (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
5709        (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
5710
5711        Fetch the compositor’s layerForContentShadow().
5712        * page/scrolling/ScrollingCoordinator.cpp:
5713        (WebCore::ScrollingCoordinator::contentShadowLayerForFrameView):
5714        * page/scrolling/ScrollingCoordinator.h:
5715
5716        Hook up the contentShadowLayer in the state node.
5717        * page/scrolling/ScrollingStateScrollingNode.cpp:
5718        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
5719        (WebCore::ScrollingStateScrollingNode::setContentShadowLayer):
5720
5721        Hook it up in the ScrollingTreeNode as well. Move the layer whenever the m
5722        _scrolledContentsLayer is moved.
5723        * page/scrolling/ScrollingStateScrollingNode.h:
5724        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
5725        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
5726        (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
5727        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
5728
5729        The shadow layer needs an anchor point now that we are moving it around.
5730        * rendering/RenderLayerCompositor.cpp:
5731        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
5732
57332014-05-12  Dirk Schulze  <krit@webkit.org>
5734
5735        <svg> with opacity and compositing double-applies its opacity
5736        https://bugs.webkit.org/show_bug.cgi?id=116856
5737
5738        Reviewed by Simon Fraser.
5739
5740        The opacity is applied by the compositor. However, all SVG elements
5741        create transparency layers on their own to apply opacity. So did
5742        SVGSVGElement.
5743
5744        Added a check if the current element has a compositing layer and skip
5745        creating transparency layer if it has.
5746
5747        Test: svg/custom/composited-svg-with-opacity.html
5748
5749        * rendering/svg/SVGRenderingContext.cpp:
5750        (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
5751
57522014-05-12  Brady Eidson  <beidson@apple.com>
5753
5754        Teach Editor to support more direct replacement of a Node
5755        <rdar://problem/16817952> and https://bugs.webkit.org/show_bug.cgi?id=132834
5756
5757        Reviewed by Enrica Casucci.
5758
5759        The new method "Editor::replaceNodeFromPasteboard" has the intent that the new DocumentFragment
5760        from the pasteboard is as similar to the old Node as possible.
5761
5762        In practice, the new DocumentFragment:
5763        1 - Can represent a single node that's missing various attributes the original Node had.
5764        2 - Can be an unwanted fragment of arbitrary depth when the replacement happens inside Mail.app
5765
5766        This fixes both of these issues.
5767
5768        Add a MailBlockquoteHandling enum class for various Editor operations to pass through to the
5769        ReplaceSelectionCommand:
5770        * editing/Editor.cpp:
5771        (WebCore::Editor::handleTextEvent):
5772        (WebCore::Editor::pasteAsFragment):
5773        (WebCore::Editor::pasteWithPasteboard):
5774        (WebCore::Editor::replaceSelectionWithFragment):
5775        * editing/Editor.h:
5776
5777        * dom/TextEvent.cpp:
5778        (WebCore::TextEvent::createForPlainTextPaste):
5779        (WebCore::TextEvent::createForFragmentPaste):
5780        (WebCore::TextEvent::TextEvent):
5781        * dom/TextEvent.h:
5782        (WebCore::TextEvent::mailBlockquoteHandling):
5783
5784        * editing/ReplaceSelectionCommand.cpp:
5785        (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand):
5786        (WebCore::ReplaceSelectionCommand::doApply): Consider whether or not this particular Editor
5787          operation was meant to give special consideration to Mail's Blockquotes.
5788        * editing/ReplaceSelectionCommand.h:
5789
5790        * editing/efl/EditorEfl.cpp:
5791        (WebCore::Editor::pasteWithPasteboard):
5792        * editing/ios/EditorIOS.mm:
5793        (WebCore::Editor::pasteWithPasteboard):
5794
5795        * editing/mac/EditorMac.mm:
5796        (WebCore::Editor::pasteWithPasteboard):
5797        (WebCore::Editor::readSelectionFromPasteboard):
5798        (WebCore::maybeCopyNodeAttributesToFragment): If the new DocumentFragment represents a single HTML node
5799          with the same tag name is the original HTML node, copy over most attributes from the original node.
5800        (WebCore::Editor::replaceNodeFromPasteboard): Create the fragment, run it through maybeCopyNodeAttributesToFragment.
5801
5802        * WebCore.exp.in:
5803
58042014-05-12  Alex Christensen  <achristensen@webkit.org>
5805
5806        Progress on web timing.
5807        https://bugs.webkit.org/show_bug.cgi?id=132574
5808
5809        Reviewed by Alexey Proskuryakov.
5810
5811        * CMakeLists.txt:
5812        Removed ResourceLoadTiming.cpp.
5813        * WebCore.exp.in:
5814        Added linker symbols for ResourceLoadTiming.
5815        * WebCore.xcodeproj/project.pbxproj:
5816        * WebCore.vcxproj/WebCore.vcxproj:
5817        * WebCore.vcxproj/WebCore.vcxproj.filters:
5818        Removed ResourceLoadTiming.cpp.
5819        * inspector/InspectorResourceAgent.cpp:
5820        (WebCore::buildObjectForTiming):
5821        * inspector/protocol/Network.json:
5822        Updated ResourceTiming structure.
5823        * loader/DocumentLoadTiming.cpp:
5824        (WebCore::DocumentLoadTiming::setNavigationStart):
5825        * loader/DocumentLoadTiming.h:
5826         Deleted unused setNavigationStart function.
5827        * page/Performance.idl:
5828        Updated spec URL.
5829        * page/PerformanceResourceTiming.cpp:
5830        (WebCore::PerformanceResourceTiming::domainLookupStart):
5831        (WebCore::PerformanceResourceTiming::domainLookupEnd):
5832        (WebCore::PerformanceResourceTiming::connectStart):
5833        (WebCore::PerformanceResourceTiming::secureConnectionStart):
5834        (WebCore::PerformanceResourceTiming::responseEnd):
5835        Updated ResourceLoadTiming member variable names.
5836        (WebCore::PerformanceResourceTiming::responseStart):
5837        * page/PerformanceResourceTiming.h:
5838        * page/PerformanceResourceTiming.idl:
5839        Deleted responseStart because it is not in the spec.
5840        * page/PerformanceTiming.cpp:
5841        (WebCore::PerformanceTiming::domainLookupStart):
5842        (WebCore::PerformanceTiming::domainLookupEnd):
5843        (WebCore::PerformanceTiming::connectStart):
5844        (WebCore::PerformanceTiming::secureConnectionStart):
5845        (WebCore::PerformanceTiming::requestStart):
5846        (WebCore::PerformanceTiming::responseStart):
5847        Updated ResourceLoadTiming member variable names.
5848        (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute):
5849        Use navigationStart as base for resource load times.
5850        * page/PerformanceTiming.idl:
5851        Updated spec URL.
5852        * platform/network/HTTPParsers.h:
5853        Removed unused class declarations.
5854        * platform/network/ResourceHandle.h:
5855        Moved soup request time from ResourceLoadTiming to ResourceHandle.
5856        * platform/network/ResourceLoadTiming.cpp: Removed.
5857        * platform/network/ResourceLoadTiming.h:
5858        (WebCore::ResourceLoadTiming::deepCopy):
5859        (WebCore::ResourceLoadTiming::operator==):
5860        (WebCore::ResourceLoadTiming::ResourceLoadTiming):
5861        Updated ResourceLoadTiming member variable names.
5862        * platform/network/mac/ResourceHandleMac.mm:
5863        (WebCore::ResourceHandle::createNSURLConnection):
5864        Collect timing data.
5865        * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
5866        (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
5867        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
5868        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
5869        Save timing data to a ResourceLoadTiming on the ResourceResponse.
5870        * platform/network/soup/ResourceHandleSoup.cpp:
5871        (WebCore::gotHeadersCallback):
5872        (WebCore::restartedCallback):
5873        (WebCore::milisecondsSinceRequest):
5874        (WebCore::ResourceHandle::didStartRequest):
5875        (WebCore::networkEventCallback):
5876        (WebCore::createSoupMessageForHandleAndRequest):
5877        (WebCore::ResourceHandle::sendPendingRequest):
5878        Updated ResourceLoadTiming member variable names.
5879        (WebCore::wroteBodyCallback): Deleted.
5880
58812014-05-12  Dirk Schulze  <krit@webkit.org>
5882
5883        SVG outline property is broken and inefficient
5884        https://bugs.webkit.org/show_bug.cgi?id=113666
5885
5886        Reviewed by Dean Jackson.
5887
5888        Patch by Erik Dahlström backported from Blink.
5889
5890        "[SVG2] css 'outline' property should apply to svg elements 
5891
5892        The 'outline' property was only partially working in SVG before
5893        this patch, this makes it work on text and text content child
5894        elements too. 
5895
5896        This makes SVG render the outlines as part of the foreground paint
5897        phase. 
5898
5899        Partly based on Florin Malita's webkit patch https://bugs.webkit.org/show_bug.cgi?id=113666#c12."
5900
5901        Tests: svg/custom/outline-stacking-expected.svg
5902               svg/custom/outline-stacking.svg
5903               svg/custom/rgba-color-outline.svg
5904               svg/text/text-outline-expected.svg
5905               svg/text/text-outline-rgba.html
5906               svg/text/text-outline.html
5907               svg/text/textpath-outline-expected.svg
5908               svg/text/textpath-outline.svg
5909               svg/text/tspan-multiple-outline.svg
5910               svg/text/tspan-outline-2-expected.svg
5911               svg/text/tspan-outline-2.svg
5912               svg/text/tspan-outline-expected.svg
5913               svg/text/tspan-outline.html
5914
5915        * rendering/svg/RenderSVGContainer.cpp:
5916        (WebCore::RenderSVGContainer::paint): Draw outline in forground
5917            paint phase.
5918        * rendering/svg/RenderSVGImage.cpp:
5919        (WebCore::RenderSVGImage::paint): Draw outline in forground
5920            paint phase.
5921        * rendering/svg/RenderSVGRoot.cpp:
5922        (WebCore::RenderSVGRoot::paintReplaced): Pass paint offset.
5923        * rendering/svg/RenderSVGShape.cpp:
5924        (WebCore::RenderSVGShape::paint): Draw outline in forground
5925            paint phase.
5926        * rendering/svg/RenderSVGText.cpp:
5927        (WebCore::RenderSVGText::paint): Draw outline in forground
5928            paint phase.
5929        * rendering/svg/SVGInlineFlowBox.cpp:
5930        (WebCore::SVGInlineFlowBox::paint): Pass paint offset.
5931        * rendering/svg/SVGInlineTextBox.cpp:
5932        (WebCore::SVGInlineTextBox::paint): Draw outline in forground
5933            paint phase.
5934        * rendering/svg/SVGRootInlineBox.cpp:
5935        (WebCore::SVGRootInlineBox::paint): Pass paint offset.
5936
59372014-05-12  Beth Dakin  <bdakin@apple.com>
5938
5939        Layer for bottom overhang area needs to be offset by the topContentInset
5940        https://bugs.webkit.org/show_bug.cgi?id=132835
5941        -and corresponding-
5942        <rdar://problem/16641115>
5943
5944        Reviewed by Simon Fraser.
5945
5946        Push this layer down by the topContentInset in addition to the root layer height, 
5947        footer height, and header height.
5948        * rendering/RenderLayerCompositor.cpp:
5949        (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
5950
59512014-05-09  Jon Honeycutt  <jhoneycutt@apple.com>
5952
5953        REGRESSION (r167818): editing/inserting/typing-space-to-trigger-smart-link.html fails on WebKit1 bots
5954
5955        <https://bugs.webkit.org/show_bug.cgi?id=132207>
5956        <rdar://problem/16730393>
5957
5958        Reverts the previous workaround in favor of a more specific fix for the
5959        null dereference.
5960
5961        Reviewed by Darin Adler.
5962
5963        * editing/ApplyStyleCommand.cpp:
5964        (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
5965        Check whether the run's start and end are still in the document, as
5966        removeConflictingInlineStyleFromRun() may have removed them.
5967
5968        * editing/CompositeEditCommand.cpp:
5969        (WebCore::CompositeEditCommand::apply):
5970        Reverted previous workaround.
5971        (WebCore::ApplyEditCommand::ReentrancyGuard::isRecursiveCall): Deleted.
5972        (WebCore::ApplyEditCommand::ReentrancyGuard::Scope::Scope): Deleted.
5973        (WebCore::ApplyEditCommand::ReentrancyGuard::Scope::~Scope): Deleted.
5974
59752014-05-12  Zan Dobersek  <zdobersek@igalia.com>
5976
5977        Clean up CrossThreadTask
5978        https://bugs.webkit.org/show_bug.cgi?id=132800
5979
5980        Reviewed by Darin Adler.
5981
5982        Remove the createCallbackTask overloads and the related CrossThreadTask helper classes.
5983
5984        Instead, have one simple CrossThreadTask class that derives from ScriptExecutionContext::Task.
5985        Its templated constructor takes in the method and the variadic pack of parameters. The cross-thread
5986        copies of the parameters are then bound to that method and the resulting bind expression is used to
5987        initialize the base class. The bind expression is constructed with a placeholder for the
5988        ScriptExecutionContext* parameter that's provided through ScriptExecutionContext::Task::performTask().
5989
5990        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
5991        (WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
5992        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
5993        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
5994        (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
5995        (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
5996        (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
5997        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
5998        (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
5999        * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
6000        (WebCore::WorkerThreadableWebSocketChannel::Peer::send):
6001        (WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
6002        (WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect):
6003        (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
6004        (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
6005        (WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
6006        (WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
6007        (WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
6008        (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
6009        (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
6010        (WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):
6011        (WebCore::WorkerThreadableWebSocketChannel::Bridge::connect):
6012        (WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
6013        (WebCore::WorkerThreadableWebSocketChannel::Bridge::bufferedAmount):
6014        (WebCore::WorkerThreadableWebSocketChannel::Bridge::close):
6015        (WebCore::WorkerThreadableWebSocketChannel::Bridge::fail):
6016        (WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
6017        (WebCore::WorkerThreadableWebSocketChannel::Bridge::suspend):
6018        (WebCore::WorkerThreadableWebSocketChannel::Bridge::resume):
6019        * dom/CrossThreadTask.h:
6020        (WebCore::CrossThreadTask::CrossThreadTask):
6021        (WebCore::CrossThreadTask1::CrossThreadTask1): Deleted.
6022        (WebCore::CrossThreadTask1::performTask): Deleted.
6023        (WebCore::CrossThreadTask2::CrossThreadTask2): Deleted.
6024        (WebCore::CrossThreadTask2::performTask): Deleted.
6025        (WebCore::CrossThreadTask3::CrossThreadTask3): Deleted.
6026        (WebCore::CrossThreadTask3::performTask): Deleted.
6027        (WebCore::CrossThreadTask4::CrossThreadTask4): Deleted.
6028        (WebCore::CrossThreadTask4::performTask): Deleted.
6029        (WebCore::CrossThreadTask5::CrossThreadTask5): Deleted.
6030        (WebCore::CrossThreadTask5::performTask): Deleted.
6031        (WebCore::CrossThreadTask6::CrossThreadTask6): Deleted.
6032        (WebCore::CrossThreadTask6::performTask): Deleted.
6033        (WebCore::CrossThreadTask7::CrossThreadTask7): Deleted.
6034        (WebCore::CrossThreadTask7::performTask): Deleted.
6035        (WebCore::CrossThreadTask8::CrossThreadTask8): Deleted.
6036        (WebCore::CrossThreadTask8::performTask): Deleted.
6037        (WebCore::createCallbackTask): Deleted.
6038        * fileapi/FileReader.cpp:
6039        (WebCore::FileReader::abort):
6040        * loader/WorkerThreadableLoader.cpp:
6041        (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
6042        (WebCore::WorkerThreadableLoader::MainThreadBridge::destroy):
6043        (WebCore::WorkerThreadableLoader::MainThreadBridge::cancel):
6044        (WebCore::WorkerThreadableLoader::MainThreadBridge::didSendData):
6045        (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
6046        (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
6047        (WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):
6048        (WebCore::WorkerThreadableLoader::MainThreadBridge::didFail):
6049        (WebCore::WorkerThreadableLoader::MainThreadBridge::didFailAccessControlCheck):
6050        (WebCore::WorkerThreadableLoader::MainThreadBridge::didFailRedirectCheck):
6051        * loader/WorkerThreadableLoader.h:
6052        * loader/cache/MemoryCache.cpp:
6053        (WebCore::MemoryCache::removeRequestFromCache):
6054        (WebCore::MemoryCache::removeRequestFromSessionCaches):
6055        * workers/DefaultSharedWorkerRepository.cpp:
6056        (WebCore::SharedWorkerProxy::postExceptionToWorkerObject):
6057        (WebCore::SharedWorkerProxy::postConsoleMessageToWorkerObject):
6058        * workers/WorkerMessagingProxy.cpp:
6059        (WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject):
6060        (WebCore::WorkerMessagingProxy::workerObjectDestroyed):
6061        (WebCore::WorkerMessagingProxy::connectToInspector):
6062        (WebCore::WorkerMessagingProxy::disconnectFromInspector):
6063        (WebCore::WorkerMessagingProxy::sendMessageToInspector):
6064
60652014-05-12  Alex Christensen  <achristensen@webkit.org>
6066
6067        Implement EXT_shader_texture_lod in WebGL.
6068        https://bugs.webkit.org/show_bug.cgi?id=128985
6069        <rdar://problem/16111396>
6070
6071        Based on Chromium patch by bajones@chromium.org.
6072        https://src.chromium.org/viewvc/blink?revision=171465&view=revision
6073
6074        Reviewed by Dean Jackson.
6075
6076        Test: webgl/conformance/extensions/ext-shader-texture-lod.html
6077        
6078        * CMakeLists.txt:
6079        * DerivedSources.cpp:
6080        * DerivedSources.make:
6081        * WebCore.vcxproj/WebCore.vcxproj:
6082        * WebCore.vcxproj/WebCore.vcxproj.filters:
6083        * WebCore.xcodeproj/project.pbxproj:
6084        Added new EXTShaderTextureLOD files.
6085        * bindings/js/JSWebGLRenderingContextCustom.cpp:
6086        (WebCore::toJS):
6087        Added EXTShaderTextureLOD.
6088        * html/canvas/EXTShaderTextureLOD.cpp: Added.
6089        (WebCore::EXTShaderTextureLOD::EXTShaderTextureLOD):
6090        (WebCore::EXTShaderTextureLOD::~EXTShaderTextureLOD):
6091        (WebCore::EXTShaderTextureLOD::getName):
6092        * html/canvas/EXTShaderTextureLOD.h: Added.
6093        * html/canvas/EXTShaderTextureLOD.idl: Added.
6094        * html/canvas/WebGLExtension.h:
6095        Added EXTShaderTextureLODName.
6096        * html/canvas/WebGLObject.cpp:
6097        Removed unused inclusion of EXTTextureFilterAnisotropic.h.
6098        * html/canvas/WebGLRenderingContext.cpp:
6099        (WebCore::WebGLRenderingContext::getExtension):
6100        Added EXT_shader_texture_lod.
6101        * html/canvas/WebGLRenderingContext.h:
6102        Added a EXTShaderTextureLOD member variable.
6103
61042014-05-12  Martin Hock  <mhock@apple.com>
6105
6106        Disallow drag and drop of non-displayable resources.
6107        https://bugs.webkit.org/show_bug.cgi?id=132745
6108        <rdar://problem/10562662>
6109
6110        Reviewed by Alexey Proskuryakov.
6111
6112        Test: http/tests/security/drag-drop-local-file.html
6113
6114        * page/DragController.cpp:
6115        (WebCore::DragController::startDrag):
6116
61172014-05-12  Jozsef Berta  <jberta.u-szeged@partner.samsung.com>
6118
6119        WinCairo buildfix after r168611
6120        https://bugs.webkit.org/show_bug.cgi?id=132825
6121
6122        Reviewed by Darin Adler.
6123
6124        * platform/network/curl/CurlDownload.cpp:
6125        (WebCore::CurlDownloadManager::downloadThread):
6126        (WebCore::CurlDownload::didReceiveHeader):
6127        (WebCore::CurlDownload::didReceiveData):
6128
61292014-05-12  Antti Koivisto  <antti@apple.com>
6130
6131        REGRESSION (r159560): Text clips on tile border if line-height < font-size
6132        https://bugs.webkit.org/show_bug.cgi?id=132822
6133
6134        Reviewed by Andreas Kling.
6135        
6136        The first line of simple line layout run range was miscomputed.
6137
6138        Test: fast/text/simple-lines-range-low-line-height.html
6139
6140        * rendering/SimpleLineLayoutResolver.h:
6141        (WebCore::SimpleLineLayout::RunResolver::lineIndexForHeight):
6142        
6143            Lines may overlap if line-height < font-size. Apply different adjustment when searching for range begin
6144            so that overflowing earlier lines are taken into account.
6145
6146        (WebCore::SimpleLineLayout::RunResolver::rangeForRect):
6147
61482014-05-12  Radu Stavila  <stavila@adobe.com>
6149
6150        Invalid information remaining in lineToRegion map of RenderFlowThread.
6151        https://bugs.webkit.org/show_bug.cgi?id=132690
6152
6153        Reviewed by Antti Koivisto.
6154
6155        Test: fast/multicol/newmulticol/lines-region-map-crash.html
6156
6157        * rendering/RenderFlowThread.cpp:
6158        (WebCore::RenderFlowThread::deleteLines):
6159        * rendering/RenderFlowThread.h:
6160
61612014-05-12  Zan Dobersek  <zdobersek@igalia.com>
6162
6163        Clean up MainThreadTask
6164        https://bugs.webkit.org/show_bug.cgi?id=132799
6165
6166        Reviewed by Darin Adler.
6167
6168        Only have one simple MainThreadTask class that derives from std::function<void ()>.
6169        Its templated constructor takes in the method and a variadic pack of parameters.
6170        The cross-thread copies of the parameter are then bound to the given method through
6171        std::bind(), with the resulting bind expression used to initialize the base
6172        std::function<void ()> class.
6173
6174        The WebCore::callOnMainThread() functions and the helper classes are removed in favor
6175        of passing MainThreadTask rvalues directly to WTF::callOnMainThread().
6176
6177        * fileapi/AsyncFileStream.cpp:
6178        (WebCore::AsyncFileStream::startOnFileThread):
6179        (WebCore::AsyncFileStream::stopOnFileThread):
6180        (WebCore::AsyncFileStream::getSizeOnFileThread):
6181        (WebCore::AsyncFileStream::openForReadOnFileThread):
6182        (WebCore::AsyncFileStream::openForWriteOnFileThread):
6183        (WebCore::AsyncFileStream::readOnFileThread):
6184        (WebCore::AsyncFileStream::writeOnFileThread):
6185        (WebCore::AsyncFileStream::truncateOnFileThread):
6186        * platform/MainThreadTask.h:
6187        (WebCore::MainThreadTask::MainThreadTask):
6188        (WebCore::MainThreadTaskBase::MainThreadTaskBase): Deleted.
6189        (WebCore::MainThreadTaskBase::~MainThreadTaskBase): Deleted.
6190        (WebCore::MainThreadTask1::create): Deleted.
6191        (WebCore::MainThreadTask1::MainThreadTask1): Deleted.
6192        (WebCore::MainThreadTask2::create): Deleted.
6193        (WebCore::MainThreadTask2::MainThreadTask2): Deleted.
6194        (WebCore::MainThreadTask3::create): Deleted.
6195        (WebCore::MainThreadTask3::MainThreadTask3): Deleted.
6196        (WebCore::MainThreadTask4::create): Deleted.
6197        (WebCore::MainThreadTask4::MainThreadTask4): Deleted.
6198        (WebCore::MainThreadTask5::create): Deleted.
6199        (WebCore::MainThreadTask5::MainThreadTask5): Deleted.
6200        (WebCore::MainThreadTask6::create): Deleted.
6201        (WebCore::MainThreadTask6::MainThreadTask6): Deleted.
6202        (WebCore::MainThreadTask7::create): Deleted.
6203        (WebCore::MainThreadTask7::MainThreadTask7): Deleted.
6204        (WebCore::MainThreadTask8::create): Deleted.
6205        (WebCore::MainThreadTask8::MainThreadTask8): Deleted.
6206        (WebCore::executeMainThreadTask): Deleted.
6207        (WebCore::callOnMainThread): Deleted.
6208
62092014-05-11  Zan Dobersek  <zdobersek@igalia.com>
6210
6211        Simplify FileThread::Task usage
6212        https://bugs.webkit.org/show_bug.cgi?id=132798
6213
6214        Reviewed by Darin Adler.
6215
6216        Remove the createFileThreadTask functions and the related FileThreadTask helper classes.
6217
6218        Instead, the FileThread::Task class now has a templated constructor that takes in a pointer
6219        to the object instance, a method, and a variadic pack of parameters. The pointer and the
6220        cross-thread copies of all the parameters are then bound to the given method through std::bind().
6221
6222        Instead of createFileThreadTask, std::make_unique<>() should be used to construct unique pointers
6223        that wrap FileThread::Task objects.
6224
6225        * WebCore.vcxproj/WebCore.vcxproj:
6226        * WebCore.vcxproj/WebCore.vcxproj.filters:
6227        * WebCore.xcodeproj/project.pbxproj:
6228        * fileapi/AsyncFileStream.cpp:
6229        (WebCore::AsyncFileStream::create):
6230        (WebCore::AsyncFileStream::stop):
6231        (WebCore::AsyncFileStream::getSize):
6232        (WebCore::AsyncFileStream::openForRead):
6233        (WebCore::AsyncFileStream::openForWrite):
6234        (WebCore::AsyncFileStream::close):
6235        (WebCore::AsyncFileStream::read):
6236        (WebCore::AsyncFileStream::write):
6237        (WebCore::AsyncFileStream::truncate):
6238        * fileapi/FileThread.h:
6239        (WebCore::FileThread::Task::Task):
6240        (WebCore::FileThread::Task::performTask):
6241        (WebCore::FileThread::Task::~Task): Deleted.
6242        * fileapi/FileThreadTask.h: Removed.
6243
62442014-05-11  Benjamin Poulain  <benjamin@webkit.org>
6245
6246        Do not create a temporary string to append the SVGLength's unit
6247        https://bugs.webkit.org/show_bug.cgi?id=132807
6248
6249        Reviewed by Geoffrey Garen.
6250
6251        * svg/SVGLength.cpp:
6252        (WebCore::lengthTypeToString):
6253        The caller just append the string to a number string. The function
6254        lengthTypeToString() was creating a new WTF::String from scratch,
6255        copied the characters to make a new string, and destroyed the WTF::String.
6256
6257        Instead, just append the string literal.
6258
62592014-05-11  Yusuke Suzuki  <utatane.tea@gmail.com>
6260
6261        CSS JIT: reduce cost of computing backtracking height
6262        https://bugs.webkit.org/show_bug.cgi?id=132546
6263
6264        Reviewed by Benjamin Poulain.
6265
6266        Because compiler previously compute backtracking height for
6267        previous child fragment, by leveraging this, we can limit the
6268        `maxPrefixSize` for `computeBacktrackingHeightFromDescendant`.
6269
6270        For example, consider selector "c>a>b>d>a>b e"'s descendant chain,
6271        "c>a>b>d>a>b".
6272
6273        At the <a> position, we have matching pattern [b, a, d, b, a] and
6274        calculate the backtracking height by following method.
6275
6276        pattern:    [b, a, d, b, a]
6277        candidate0:    [b, a, d, b]  => Not matched.
6278        candidate1:       [b, a, d]  => Not matched.
6279        candidate2:          [b, a]  => Matched against the pattern.
6280
6281        At this time, first candidate0's pattern size is `pattern.size() - 1`.
6282        And get backtracking height from descendant 3, that is
6283        `pattern.size() - candidate.size()`, `5 - 2`.
6284
6285        And next, at the <c> position, we calcucate the backtracking height
6286        for this pattern.
6287
6288        pattern:    [b, a, d, b, a, c]
6289        candidate0:    [b, a, d, b, a]  => Not matched.
6290        candidate1:       [b, a, d, b]  => Not matched.
6291        candidate2:          [b, a, d]  => Not matched.
6292        candidate3:             [b, a]  => Not matched.
6293        candidate4:                [b]  => Not matched.
6294        candidate5:                 []  => Matched against the pattern.
6295
6296        Then, we get the backtracking height, which is 6 (6 - 0).
6297        However, in the above case, we already know that attempts from candidate0
6298        to candidate1 always fail, since parts of these are already tested at
6299        the <b> position trial and we know they don't match.
6300
6301        So in this case, we should start this computation from candidate2,
6302        such as,
6303
6304        pattern:    [b, a, d, b, a, c]
6305        candidate2:          [b, a, d]  => Not matched.
6306        candidate3:             [b, a]  => Not matched.
6307        candidate4:                [b]  => Not matched.
6308        candidate5:                 []  => Matched against the pattern.
6309
6310        We can start computation with candidate size
6311        `pattern.size() - previousChildFragmentBacktrackingHeight`.
6312        In this example, `pattern.size()` is 6 and
6313        `previousChildFragmentBacktrackingHeight` is 3, so candidate size is
6314        3, that is candidate2.
6315
6316        * cssjit/SelectorCompiler.cpp:
6317        (WebCore::SelectorCompiler::computeBacktrackingStartHeightFromDescendant):
6318        (WebCore::SelectorCompiler::computeBacktrackingHeightFromDescendant):
6319
63202014-05-11  Beth Dakin  <bdakin@apple.com>
6321
6322        Headers and footers are not positioned correctly with topContentInset
6323        https://bugs.webkit.org/show_bug.cgi?id=132787
6324        -and corresponding-
6325        <rdar://problem/16641115>
6326
6327        Reviewed by Tim Horton.
6328
6329        Headers and footers need to take the inset into account, and they also need to 
6330        factor in the fact that the root layer moves around now too.
6331
6332        The existing yPositionForRootContentLayer() is actually the right calculation for 
6333        the header layer. The root content layer wants that value, but pushed down by the 
6334        header height. Now there are static functions for both of them and the footer to 
6335        avoid duplicated code in the three spots where we need this information.
6336        * page/FrameView.cpp:
6337        (WebCore::FrameView::yPositionForHeaderLayer):
6338        (WebCore::FrameView::yPositionForRootContentLayer):
6339        (WebCore::FrameView::yPositionForFooterLayer):
6340        * page/FrameView.h:
6341
6342        Use the static functions to compute the layer positions.
6343        * page/scrolling/AsyncScrollingCoordinator.cpp:
6344        (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
6345
6346        How did headers ever work with this bug?? I don’t know. We need to return that 
6347        layer.
6348        * page/scrolling/ScrollingCoordinator.cpp:
6349        (WebCore::ScrollingCoordinator::headerLayerForFrameView):
6350
6351        Use the static functions to compute the layer positions.
6352        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
6353        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
6354        * rendering/RenderLayerCompositor.cpp:
6355        (WebCore::RenderLayerCompositor::updateRootLayerPosition):
6356        (WebCore::RenderLayerCompositor::updateLayerForHeader):
6357        (WebCore::RenderLayerCompositor::updateLayerForFooter):
6358
63592014-05-11  Zalan Bujtas  <zalan@apple.com>
6360
6361        Subpixel rendering[iOS]: <select> decoration is misaligned when the renderer is on subpixel position.
6362        https://bugs.webkit.org/show_bug.cgi?id=132779
6363        <rdar://problem/16631071>
6364
6365        Reviewed by Simon Fraser.
6366
6367        Push <select> theme decoration's rect to device pixel position to ensure
6368        that the theme bounds are aligned with the renderer's bounds. (in painting terms)
6369        However, as the decoration code paints multiple items, they all need to use snapped 
6370        final coordinates for painting : tracked here https://bugs.webkit.org/show_bug.cgi?id=132780
6371        This patch also changes the padding values for <select> [iOS] to compensate for the integer
6372        truncation that happened before subpixel. 
6373
6374        Not testable.
6375
6376        * css/html.css:
6377        (select):
6378        * platform/efl/RenderThemeEfl.cpp:
6379        (WebCore::RenderThemeEfl::paintMenuListButtonDecorations):
6380        * platform/efl/RenderThemeEfl.h:
6381        * platform/gtk/RenderThemeGtk.cpp:
6382        (WebCore::RenderThemeGtk::paintMenuListButtonDecorations):
6383        * platform/gtk/RenderThemeGtk.h:
6384        * rendering/RenderTheme.cpp:
6385        (WebCore::RenderTheme::paintDecorations):
6386        * rendering/RenderTheme.h:
6387        (WebCore::RenderTheme::paintMenuListButtonDecorations):
6388        * rendering/RenderThemeIOS.h:
6389        * rendering/RenderThemeIOS.mm:
6390        (WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
6391        * rendering/RenderThemeMac.h:
6392        * rendering/RenderThemeMac.mm:
6393        (WebCore::RenderThemeMac::paintMenuListButtonDecorations):
6394        * rendering/RenderThemeSafari.cpp:
6395        (WebCore::RenderThemeSafari::paintMenuListButtonDecorations):
6396        * rendering/RenderThemeSafari.h:
6397        * rendering/RenderThemeWin.cpp:
6398        (WebCore::RenderThemeWin::paintMenuList):
6399        (WebCore::RenderThemeWin::paintMenuListButtonDecorations):
6400        * rendering/RenderThemeWin.h:
6401
64022014-05-11  Zan Dobersek  <zdobersek@igalia.com>
6403
6404        Move Source/WebCore/workers/ code to std::unique_ptr
6405        https://bugs.webkit.org/show_bug.cgi?id=132401
6406
6407        Reviewed by Darin Adler.
6408
6409        Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/workers (and related places)
6410        with std::unique_ptr.
6411
6412        * bindings/js/JSDOMWindowCustom.cpp:
6413        (WebCore::JSDOMWindow::setTimeout):
6414        (WebCore::JSDOMWindow::setInterval):
6415        * bindings/js/JSWorkerGlobalScopeCustom.cpp:
6416        (WebCore::JSWorkerGlobalScope::setTimeout):
6417        (WebCore::JSWorkerGlobalScope::setInterval):
6418        * bindings/js/ScheduledAction.cpp:
6419        (WebCore::ScheduledAction::create):
6420        * bindings/js/ScheduledAction.h:
6421        * page/DOMTimer.cpp:
6422        (WebCore::DOMTimer::DOMTimer):
6423        (WebCore::DOMTimer::install):
6424        (WebCore::DOMTimer::fired):
6425        (WebCore::DOMTimer::didStop):
6426        * page/DOMTimer.h:
6427        * page/DOMWindow.cpp:
6428        (WebCore::DOMWindow::setTimeout):
6429        (WebCore::DOMWindow::setInterval):
6430        * page/DOMWindow.h:
6431        * workers/WorkerEventQueue.h:
6432        * workers/WorkerGlobalScope.cpp:
6433        (WebCore::WorkerGlobalScope::WorkerGlobalScope):
6434        (WebCore::WorkerGlobalScope::setTimeout):
6435        (WebCore::WorkerGlobalScope::setInterval):
6436        * workers/WorkerGlobalScope.h:
6437        (WebCore::WorkerGlobalScope::clearScript):
6438        * workers/WorkerLoaderProxy.h:
6439        * workers/WorkerMessagingProxy.h:
6440        * workers/WorkerRunLoop.cpp:
6441        (WebCore::WorkerRunLoop::WorkerRunLoop):
6442        * workers/WorkerRunLoop.h:
6443        * workers/WorkerScriptLoader.cpp:
6444        (WebCore::WorkerScriptLoader::loadSynchronously):
6445        (WebCore::WorkerScriptLoader::loadAsynchronously):
6446        (WebCore::WorkerScriptLoader::createResourceRequest):
6447        * workers/WorkerScriptLoader.h:
6448        * workers/WorkerThread.cpp:
6449        (WebCore::WorkerThread::WorkerThread):
6450        (WebCore::WorkerThread::workerThread):
6451        (WebCore::WorkerThreadStartupData::create): Deleted.
6452        * workers/WorkerThread.h:
6453
64542014-05-09  Myles C. Maxfield  <litherum@gmail.com>
6455
6456        [Mac] [iOS] Underlines are too low
6457        https://bugs.webkit.org/show_bug.cgi?id=132770
6458
6459        Reviewed by Darin Adler.
6460
6461        computeUnderlineOffset() inside InlineTextBox.cpp lowers underlines from text
6462        baseline by a value that is proportional to the font size. However, this
6463        lowering was done a second time in
6464        GraphicsContext::computeLineBoundsAndAntialiasingModeForText(). This patch
6465        removes this second, platform-dependent lowering.
6466
6467        This duplication was caused by merging iOS into open source, where iOS used
6468        the GraphicsContext approach and open source used the InlineTextBox approach.
6469
6470        Covered by fast/css3-text/css3-text-decoration/text-decoration-thickness.html.
6471
6472        * platform/graphics/GraphicsContext.cpp:
6473        (WebCore::GraphicsContext::computeLineBoundsAndAntialiasingModeForText): Remove
6474        redundant lowering code
6475        * rendering/InlineTextBox.cpp:
6476        (WebCore::InlineTextBox::paintDecoration): Clean up textDecorationThickness
6477        variable
6478
64792014-05-11  Antti Koivisto  <antti@apple.com>
6480
6481        Text with simple line layout not getting pushed below float when there is not enough space for it
6482        https://bugs.webkit.org/show_bug.cgi?id=126991
6483
6484        Reviewed by Andreas Kling.
6485
6486        Tests: fast/text/simple-lines-intruding-wide-float-dynamic.html
6487               fast/text/simple-lines-intruding-wide-float.html
6488
6489        * rendering/RenderBlockFlow.cpp:
6490        (WebCore::RenderBlockFlow::markLinesDirtyInBlockRange):
6491        
6492            Invalidate the line layout path when floats change. We need to check SimpleLineLayout::canUseFor again as
6493            intruding floats may make this flow ineligible to use the path.
6494
6495        * rendering/RenderBlockFlow.h:
6496        (WebCore::RenderBlockFlow::floatingObjectSet):
6497        * rendering/SimpleLineLayout.cpp:
6498        (WebCore::SimpleLineLayout::canUseFor):
6499        
6500            Test the top positions of all floats for case that would push text below the float instead of just testing 
6501            the first line. We may have floats in the middle of the paragraph too.
6502
65032014-05-11  peavo@outlook.com  <peavo@outlook.com>
6504
6505        WinCairo crashes on acid3 test
6506        https://bugs.webkit.org/show_bug.cgi?id=131364
6507
6508        Reviewed by Brent Fulgham.
6509
6510        When the 304 (Not-modified) response is received, the Curl backend should look up the cached response,
6511        and call the client method didReceiveResponse with the cached response, instead of the 304 response.
6512        Otherwise the response will contain an empty MIME type, which causes the request to be cancelled, and the client deleted.
6513        When the Curl cache manager then accesses the client afterwards, it is deleted, and we crash.
6514
6515        * platform/network/curl/CurlCacheManager.cpp:
6516        (WebCore::CurlCacheManager::didReceiveResponse): Return early if request is cancelled.
6517        (WebCore::CurlCacheManager::getCachedResponse): Added method to get cached response.
6518        * platform/network/curl/CurlCacheManager.h: Ditto.
6519        * platform/network/curl/ResourceHandleManager.cpp:
6520        (WebCore::headerCallback): When 304 response is received, look up cached response, and use it.
6521
65222014-05-10  Tim Horton  <timothy_horton@apple.com>
6523
6524        [WKWebView _updateScrollViewBackground] churns UI-and-CGColors while repainting
6525        https://bugs.webkit.org/show_bug.cgi?id=132793
6526        <rdar://problem/16877870>
6527
6528        Reviewed by Dan Bernstein.
6529
6530        * WebCore.exp.in:
6531        Export a Color convenience function.
6532
65332014-05-10  Commit Queue  <commit-queue@webkit.org>
6534
6535        Unreviewed, rolling out r168578.
6536        https://bugs.webkit.org/show_bug.cgi?id=132789
6537
6538        Speculative rollout since this appears to break PLT3.
6539        (Requested by kling on #webkit).
6540
6541        Reverted changeset:
6542
6543        "Move Source/WebCore/workers/ code to std::unique_ptr"
6544        https://bugs.webkit.org/show_bug.cgi?id=132401
6545        http://trac.webkit.org/changeset/168578
6546
65472014-05-10  Darin Adler  <darin@apple.com>
6548
6549        REGRESSION (r166853): fast/preloader/document-write.html is very flaky
6550        https://bugs.webkit.org/show_bug.cgi?id=130942
6551
6552        Reviewed by Anders Carlsson.
6553
6554        * style/StyleResolveTree.cpp:
6555        (WebCore::Style::suspendMemoryCacheClientCalls): Use a RefPtr to the main
6556        frame as a weak pointer to a Page that will work unless the page is destroyed.
6557        The old code tried to do it with a RefPtr to a document, but as the FIXME
6558        points out, that won't work if the document is disassociated with its frame.
6559
65602014-05-10  Anders Carlsson  <andersca@apple.com>
6561
6562        Block exceptions when trying to convert attributed strings to RTF and RTFD
6563        https://bugs.webkit.org/show_bug.cgi?id=132778
6564        <rdar://problem/16675805>
6565
6566        Reviewed by Darin Adler.
6567
6568        When the iOS WebHTMLConverter was upstreamed, converting some attributed strings to RTF and RTFD
6569        started throwing Objective-C exceptions (see <rdar://problem/16876920>).
6570        
6571        In WebKit2, we now crash on unhandled exceptions so work around that crash by adding exception blocking macros.
6572
6573        * editing/ios/EditorIOS.mm:
6574        (WebCore::dataInRTFDFormat):
6575        (WebCore::dataInRTFFormat):
6576        * editing/mac/EditorMac.mm:
6577        (WebCore::dataInRTFDFormat):
6578        (WebCore::dataInRTFFormat):
6579
65802014-05-10  Zan Dobersek  <zdobersek@igalia.com>
6581
6582        Move Source/WebCore/workers/ code to std::unique_ptr
6583        https://bugs.webkit.org/show_bug.cgi?id=132401
6584
6585        Reviewed by Andreas Kling.
6586
6587        Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/workers (and related places)
6588        with std::unique_ptr.
6589
6590        * bindings/js/JSDOMWindowCustom.cpp:
6591        (WebCore::JSDOMWindow::setTimeout):
6592        (WebCore::JSDOMWindow::setInterval):
6593        * bindings/js/JSWorkerGlobalScopeCustom.cpp:
6594        (WebCore::JSWorkerGlobalScope::setTimeout):
6595        (WebCore::JSWorkerGlobalScope::setInterval):
6596        * bindings/js/ScheduledAction.cpp:
6597        (WebCore::ScheduledAction::create):
6598        * bindings/js/ScheduledAction.h:
6599        * page/DOMTimer.cpp:
6600        (WebCore::DOMTimer::DOMTimer):
6601        (WebCore::DOMTimer::install):
6602        (WebCore::DOMTimer::fired):
6603        (WebCore::DOMTimer::didStop):
6604        * page/DOMTimer.h:
6605        * page/DOMWindow.cpp:
6606        (WebCore::DOMWindow::setTimeout):
6607        (WebCore::DOMWindow::setInterval):
6608        * page/DOMWindow.h:
6609        * workers/WorkerEventQueue.h:
6610        * workers/WorkerGlobalScope.cpp:
6611        (WebCore::WorkerGlobalScope::WorkerGlobalScope):
6612        (WebCore::WorkerGlobalScope::setTimeout):
6613        (WebCore::WorkerGlobalScope::setInterval):
6614        * workers/WorkerGlobalScope.h:
6615        (WebCore::WorkerGlobalScope::clearScript):
6616        * workers/WorkerLoaderProxy.h:
6617        * workers/WorkerMessagingProxy.h:
6618        * workers/WorkerRunLoop.cpp:
6619        (WebCore::WorkerRunLoop::WorkerRunLoop):
6620        * workers/WorkerRunLoop.h:
6621        * workers/WorkerScriptLoader.cpp:
6622        (WebCore::WorkerScriptLoader::loadSynchronously):
6623        (WebCore::WorkerScriptLoader::loadAsynchronously):
6624        (WebCore::WorkerScriptLoader::createResourceRequest):
6625        * workers/WorkerScriptLoader.h:
6626        * workers/WorkerThread.cpp:
6627        (WebCore::WorkerThread::WorkerThread):
6628        (WebCore::WorkerThread::workerThread):
6629        (WebCore::WorkerThreadStartupData::create): Deleted.
6630        * workers/WorkerThread.h:
6631
66322014-05-09  Dean Jackson  <dino@apple.com>
6633
6634        -webkit-filter prevents rendering at retina scale
6635        https://bugs.webkit.org/show_bug.cgi?id=93471
6636
6637        Reviewed by Dirk Schulze.
6638
6639        Implement 2x support for filters that go through
6640        the -webkit-filter property. This includes all
6641        shorthand filters, and any referenced SVG-style filters
6642        (as long as they use only the supported subset of
6643        operations - basically the same as is exposed for
6644        the shorthands).
6645
6646        Tests: fast/hidpi/filters-blur.html
6647               fast/hidpi/filters-hue-rotate.html
6648               fast/hidpi/filters-invert.html
6649               fast/hidpi/filters-multiple.html
6650               fast/hidpi/filters-reference.html
6651               fast/hidpi/filters-shadow.html
6652
6653        * platform/graphics/cg/ImageBufferCG.cpp:
6654        (WebCore::ImageBuffer::getUnmultipliedImageData): Scale the source rectangle if the method was
6655        called using LogicalCoordinates.
6656        (WebCore::ImageBuffer::getPremultipliedImageData): Ditto.
6657        (WebCore::ImageBuffer::putByteArray): Ditto.
6658
6659        * platform/graphics/filters/FEDropShadow.cpp:
6660        (WebCore::FEDropShadow::platformApplySoftware): Make sure to scale the blur radius by the filter
6661        resolution, and call the byte-array methods with the native coordinate system.
6662        * platform/graphics/filters/FEGaussianBlur.cpp:
6663        (WebCore::FEGaussianBlur::calculateUnscaledKernelSize): Fix typo.
6664        (WebCore::FEGaussianBlur::platformApplySoftware): Scale the kernel and paint rectangles
6665        by the filter scale.
6666
6667        * platform/graphics/filters/Filter.h:
6668        (WebCore::Filter::Filter): Initialise the filter scale.
6669        (WebCore::Filter::filterScale): New property which reflects the mapping between logical pixels
6670        and device pixels.
6671        (WebCore::Filter::setFilterScale):
6672
6673        * platform/graphics/filters/FilterEffect.cpp:
6674        (WebCore::FilterEffect::asImageBuffer): Make sure buffer creation takes scale into account.
6675        (WebCore::FilterEffect::asUnmultipliedImage): Ditto.
6676        (WebCore::FilterEffect::asPremultipliedImage): Ditto.
6677        (WebCore::FilterEffect::copyImageBytes): Scale any incoming regions if they are talking about
6678        device pixels rather than logical pixels.
6679        (WebCore::FilterEffect::copyUnmultipliedImage): Ditto.
6680        (WebCore::FilterEffect::copyPremultipliedImage): Ditto.
6681        (WebCore::FilterEffect::createImageBufferResult): Take scale into account when creating byte array.
6682        (WebCore::FilterEffect::createUnmultipliedImageResult): Ditto.
6683        (WebCore::FilterEffect::createPremultipliedImageResult): Ditto.
6684
6685        * rendering/FilterEffectRenderer.cpp:
6686        (WebCore::FilterEffectRenderer::allocateBackingStoreIfNeeded): Pass filter scale into buffer creation.
6687
6688        * rendering/RenderLayer.cpp:
6689        (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer): Make sure to set the filter scale to
6690        the device scale factor, and notice if we ever change scales.
6691
66922014-05-10  Praveen R Jadhav  <praveen.j@samsung.com>
6693
6694        [MediaStream] Rename NavigatorMediaStream as NavigatorUserMedia.
6695        https://bugs.webkit.org/show_bug.cgi?id=132734
6696
6697        Reviewed by Eric Carlson.
6698
6699        Spec: http://www.w3.org/TR/mediacapture-streams/#navigatorusermedia
6700
6701        This patch replaces 'NavigatorMediaStream' with 'NavigatorUserMedia'
6702        throughout the code to be consistent with W3C specifications.
6703        Test cases remain the same as 'Navigator' implies 'NavigatorUserMedia'.
6704
6705        * CMakeLists.txt: Compiles NavigatorUserMedia.cpp
6706        * DerivedSources.make: Compiles NavigatorUserMedia.idl
6707        * Modules/mediastream/NavigatorMediaStream.cpp: Removed.
6708        * Modules/mediastream/NavigatorMediaStream.h: Removed.
6709        * Modules/mediastream/NavigatorMediaStream.idl: Removed.
6710        * Modules/mediastream/NavigatorUserMedia.cpp: Added.
6711        (WebCore::NavigatorUserMedia::NavigatorUserMedia):
6712        (WebCore::NavigatorUserMedia::~NavigatorUserMedia):
6713        (WebCore::NavigatorUserMedia::webkitGetUserMedia):
6714        * Modules/mediastream/NavigatorUserMedia.h: Added.
6715        * Modules/mediastream/NavigatorUserMedia.idl: Added.
6716        * WebCore.xcodeproj/project.pbxproj:
6717        * bindings/js/JSNavigatorCustom.cpp:
6718        (WebCore::JSNavigator::webkitGetUserMedia): NavigatorUserMedia
6719        class is used instead of NavigatorMediaStream.
6720
67212014-05-10  Zalan Bujtas  <zalan@apple.com>
6722
6723        Subpixel rendering: Empty rects should remain empty after integrally enclosing them.
6724        https://bugs.webkit.org/show_bug.cgi?id=132753
6725        <rdar://problem/16846801>
6726
6727        Reviewed by Simon Fraser.
6728
6729        This patch ensures that empty LayoutRects remain empty after converting to integral enclosing rect.
6730        LayoutRects with fractional position get expanded even if they are empty. This makes rectangle
6731        operations unreliable and can result in undesired side effects.
6732
6733        No testable/covered by existing tests.
6734
6735        * platform/graphics/LayoutRect.cpp:
6736        (WebCore::enclosingIntRect):
6737        * rendering/InlineTextBox.cpp:
6738        (WebCore::InlineTextBox::localSelectionRect):
6739        (WebCore::InlineTextBox::paintDocumentMarker):
6740        (WebCore::InlineTextBox::paintTextMatchMarker):
6741        (WebCore::InlineTextBox::computeRectForReplacementMarker):
6742        (WebCore::integralEnclosingRectForSelection): Deleted.
6743
67442014-05-09  Joseph Pecoraro  <pecoraro@apple.com>
6745
6746        Web Inspector: Allow Remote Inspector to entitlement check UIProcess through WebProcess
6747        https://bugs.webkit.org/show_bug.cgi?id=132409
6748
6749        Reviewed by Timothy Hatcher.
6750
6751        * inspector/InspectorClient.h:
6752        (WebCore::InspectorClient::parentProcessIdentifier): Deleted.
6753        * page/PageDebuggable.cpp:
6754        (WebCore::PageDebuggable::parentProcessIdentifier): Deleted.
6755        * page/PageDebuggable.h:
6756        pid per debuggable is no longer needed.
6757
67582014-05-09  Dean Jackson  <dino@apple.com>
6759
6760        [fullscreen] cursor should auto-hide when over video
6761        https://bugs.webkit.org/show_bug.cgi?id=132758
6762
6763        Unreviewed followup based on test failure.
6764
6765        * css/fullscreen.css: Append the previous rule - video children of fullscreen elements.
6766
67672014-05-09  Dean Jackson  <dino@apple.com>
6768
6769        [fullscreen] cursor should auto-hide when over video
6770        https://bugs.webkit.org/show_bug.cgi?id=132758
6771
6772        Reviewed by Brent Fulgham.
6773
6774        Cursors were not auto-hiding over fullscreen video. There was
6775        a small error in the CSS we load for fullscreen content.
6776
6777        * css/fullscreen.css: Don't hide when video is a child of the fullscreen element - hide when it *is* the fullscreen element.
6778        (video:-webkit-full-screen):
6779        (:-webkit-full-screen video:hover): Deleted.
6780
67812014-05-09  Zalan Bujtas  <zalan@apple.com>
6782
6783        Subpixel rendering[iOS]: Top bar on apple.com/support jiggles when the swoosh animates.
6784        https://bugs.webkit.org/show_bug.cgi?id=132750
6785        <rdar://problem/16803281>
6786
6787        Reviewed by Simon Fraser.
6788
6789        This patch ensures that GraphicsLayer and RemoteLayerBackingStore have the same dimensions.
6790        
6791        Remove integral enclosing when we set the size on RemoteLayerBackingStore. It makes the layer's size
6792        different from the backingstore when the passed value is fractional.
6793        We scale and integral round this value to size the shareable bitmap later. Rounding ensures that
6794        the final size value matches what we calculated at GraphicsLayerCA::updateGeometry()
6795
6796        Currently not testable.
6797
6798        * platform/graphics/ca/GraphicsLayerCA.cpp:
6799        (WebCore::GraphicsLayerCA::updateGeometry):
6800        (WebCore::GraphicsLayerCA::computePixelAlignment): include device scale factor to be able calculate the final content scale.
6801        * platform/graphics/ca/GraphicsLayerCA.h:
6802
68032014-05-09  Mark Hahnenberg  <mhahnenberg@apple.com>
6804
6805        JSDOMWindow should disable property caching after a certain point
6806        https://bugs.webkit.org/show_bug.cgi?id=132751
6807
6808        Reviewed by Filip Pizlo.
6809
6810        No new tests.
6811
6812        This is part of removing HasImpureGetOwnPropertySlot from JSDOMWindow. After the lookup in the static 
6813        hash table for JSDOMWindow fails we want to disable property caching even if the code that follows thinks 
6814        that it has provided a cacheable value.
6815
6816        * bindings/js/JSDOMWindowCustom.cpp:
6817        (WebCore::JSDOMWindow::getOwnPropertySlot):
6818
68192014-05-09  Benjamin Poulain  <bpoulain@apple.com>
6820
6821        Fix the export file after r168556
6822
6823        * WebCore.exp.in: I forgot to fix the export file before landing.
6824
68252014-05-09  Benjamin Poulain  <bpoulain@apple.com>
6826
6827        [iOS][WK2] Set up the resize events
6828        https://bugs.webkit.org/show_bug.cgi?id=132726
6829
6830        Reviewed by Darin Adler and Simon Fraser.
6831
6832        Let the WebKit2 layer override the size used for resize events.
6833
6834        * WebCore.exp.in:
6835        * page/FrameView.cpp:
6836        (WebCore::FrameView::layout):
6837        (WebCore::FrameView::sizeForResizeEvent):
6838        (WebCore::FrameView::sendResizeEventIfNeeded):
6839        (WebCore::FrameView::setCustomSizeForResizeEvent):
6840        * page/FrameView.h:
6841
68422014-05-09  Alexey Proskuryakov  <ap@apple.com>
6843
6844        REGRESSION (r168518): Multiple tests for workers in blobs assert
6845        https://bugs.webkit.org/show_bug.cgi?id=132728
6846
6847        Reviewed by Geoffrey Garen.
6848
6849        Change File serialization to include name, so that we don't have to regenerate anything
6850        on a secondary thread after deserialization.
6851
6852        Files and Blobs can't be stored persistently, because URLs are transient (IndexedDB
6853        has an explicit check, and fails if there were any blob URLs). API doesn't have the
6854        check, but given that anyone who tried to use these to serialize a File would fail,
6855        it seems OK to change the format.
6856
6857        * bindings/js/SerializedScriptValue.cpp:
6858        (WebCore::CloneSerializer::write):
6859        (WebCore::CloneDeserializer::readFile):
6860        * fileapi/File.cpp:
6861        (WebCore::File::File):
6862        * fileapi/File.h:
6863
68642014-05-08  Mark Hahnenberg  <mhahnenberg@apple.com>
6865
6866        JSDOMWindow should have a WatchpointSet to fire on window close
6867        https://bugs.webkit.org/show_bug.cgi?id=132721
6868
6869        Reviewed by Filip Pizlo.
6870
6871        No new tests.
6872
6873        This patch allows us to reset the inline caches that assumed they could skip 
6874        the first part of JSDOMWindow::getOwnPropertySlot that checks if the window has 
6875        been closed. This is part of getting rid of HasImpureGetOwnPropertySlot on JSDOMWindow.
6876
6877        JSDOMWindowBase now has a WatchpointSet that the underlying DOMWindow fires when its
6878        frame is cleared. In getOwnPropertySlot, we now pass this WatchpointSet to PropertySlot
6879        which will shepherd it back up to the code that generates the inline cache (and the 
6880        Watchpoint for clearing it).
6881
6882        * bindings/js/JSDOMWindowBase.cpp:
6883        (WebCore::JSDOMWindowBase::JSDOMWindowBase):
6884        (WebCore::JSDOMWindowBase::fireFrameClearedWatchpointsForWindow):
6885        * bindings/js/JSDOMWindowBase.h:
6886        * bindings/js/JSDOMWindowCustom.cpp:
6887        (WebCore::JSDOMWindow::getOwnPropertySlot):
6888        * page/DOMWindow.cpp:
6889        (WebCore::DOMWindow::frameDestroyed):
6890
68912014-05-09  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
6892
6893        ASSERTION FAILED: object->style()->overflowX() == object->style()->overflowY()
6894        https://bugs.webkit.org/show_bug.cgi?id=121682
6895
6896        Reviewed by Dirk Schulze.
6897
6898        Add more overflow freedom to the SVG element:
6899        -overflow-x and overflow-y for controlling each scrollbar independently is now supported
6900        -overflow:scroll will display scrollbars regardless of the svg overflowing or not (as required by CSS)
6901        -overflow:hidden will cause overflow to be clipped away and scrollbars to be hidden
6902
6903        Merged from Blink r172126 by <ed@opera.com>
6904
6905        Tests: svg/W3C-SVG-1.1-SE/painting-marker-05-f.svg
6906               svg/W3C-SVG-1.1-SE/painting-marker-06-f.svg
6907               svg/animations/animate-viewport-overflow-2.html
6908               svg/animations/animate-viewport-overflow.html
6909               svg/in-html/overflow-repaint.html
6910               svg/in-html/overflow-svg-root-attr.html
6911               svg/in-html/overflow-svg-root-style.html
6912               svg/in-html/overflow-svg-root.html
6913               svg/overflow/overflow-on-outermost-svg-element-horizontal-auto.svg
6914               svg/overflow/overflow-on-outermost-svg-element-vertical-auto.svg
6915               svg/overflow/overflow-scroll-on-outermost-svg-element.svg
6916               svg/overflow/overflow-x-hidden-on-outermost-svg-element-expected.svg
6917               svg/overflow/overflow-x-hidden-on-outermost-svg-element.svg
6918               svg/overflow/overflow-y-hidden-on-outermost-svg-element-expected.svg
6919               svg/overflow/overflow-y-hidden-on-outermost-svg-element.svg
6920
6921        * css/StyleResolver.cpp:
6922        (WebCore::StyleResolver::adjustRenderStyle):
6923        * page/FrameView.cpp:
6924        (WebCore::FrameView::applyOverflowToViewport):
6925        * rendering/svg/RenderSVGRoot.cpp:
6926        (WebCore::RenderSVGRoot::layout):
6927        (WebCore::RenderSVGRoot::shouldApplyViewportClip):
6928        (WebCore::RenderSVGRoot::paintReplaced):
6929        (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
6930        * rendering/svg/RenderSVGRoot.h:
6931        * rendering/svg/SVGRenderSupport.cpp:
6932        (WebCore::SVGRenderSupport::isOverflowHidden):
6933
69342014-05-09  Jer Noble  <jer.noble@apple.com>
6935
6936        [MSE][Mac] Destroy the AVStreamDataParser when the SourceBuffer is removed from its MediaSource.
6937        https://bugs.webkit.org/show_bug.cgi?id=132710
6938
6939        Reviewed by Eric Carlson.
6940
6941        The AVStreamDataParser should be destroyed when the SourceBuffer is removed, so that subsequent
6942        SourceBuffers can utilize resources released by the parser on destruction.
6943
6944        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
6945        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
6946        (-[WebAVStreamDataParserListener invalidate]):
6947        (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]):  Protect against _parent being invalidated.
6948        (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]): Ditto.
6949        (-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]): Ditto.
6950        (-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]): Ditto.
6951        (WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC): Call destroyParser();.
6952        (WebCore::SourceBufferPrivateAVFObjC::removedFromMediaSource): Ditto.
6953        (WebCore::SourceBufferPrivateAVFObjC::destroyParser): Call -[WebAVStreamDataParserListener invalidate].
6954
69552014-05-09  Andrei Bucur  <abucur@adobe.com>
6956
6957        [CSS Regions] 1-2% performance regression in html5-full-render after r168286
6958        https://bugs.webkit.org/show_bug.cgi?id=132672
6959
6960        Reviewed by Mihnea Ovidenie.
6961
6962        The patch optimizes the search of regions when there's a single region in the chain.
6963        There's no need to execute advanced search logic, we can directly return that region.
6964
6965        Tests: No function change, no tests.
6966
6967        * rendering/RenderBlock.cpp:
6968        (WebCore::canComputeRegionRangeForBox):
6969        * rendering/RenderFlowThread.cpp:
6970        (WebCore::RenderFlowThread::regionAtBlockOffset):
6971        (WebCore::RenderFlowThread::hasCachedRegionRangeForBox): Renamed from hasRegionRangeForBox to
6972        better suggest what the function does.
6973        (WebCore::RenderFlowThread::getRegionRangeForBox):
6974        (WebCore::RenderFlowThread::hasRegionRangeForBox): Deleted.
6975        * rendering/RenderFlowThread.h:
6976
69772014-05-09  Jer Noble  <jer.noble@apple.com>
6978
6979        [EME] Call suspendIfNeeded() in the MediaKeySession create() method to avoid an ASSERT.
6980        https://bugs.webkit.org/show_bug.cgi?id=132712
6981
6982        Reviewed by Eric Carlson.
6983
6984        All ActiveDOMObject subclasses must call suspendIfNeeded() immediately after creation.
6985
6986        * Modules/encryptedmedia/MediaKeySession.cpp:
6987        (WebCore::MediaKeySession::MediaKeySession):
6988
69892014-05-09  Zalan Bujtas  <zalan@apple.com>
6990
6991        Unreviewed. Another attempt to fix Windows build after r168528.
6992
6993        * platform/graphics/win/FontWin.cpp:
6994        (WebCore::Font::adjustSelectionRectForComplexText):
6995
69962014-05-09  Zalan Bujtas  <zalan@apple.com>
6997
6998        Unreviewed build fix for Win after r168528.
6999
7000        * platform/graphics/win/FontWin.cpp:
7001        (WebCore::Font::adjustSelectionRectForComplexText):
7002
70032014-05-09  Zalan Bujtas  <zalan@apple.com>
7004
7005        REGRESSION (r168095): 1-pixel gap between adjacent selection inlines
7006        https://bugs.webkit.org/show_bug.cgi?id=132474
7007        <rdar://problem/16797394>
7008
7009        Reviewed by David Hyatt.
7010
7011        This patch changes text selection rectangle calculation from integral to device
7012        pixel snapping. It ensures that selection rect painting matches box boundaries for inline elements.
7013        Directional rounding (horizontal only atm) is moved out from Font class and now accessible
7014        to all the painting code. RTL snapping strategy is changed from floor to round to match ltr behavior.
7015        However this patch does not address all the integral snapping across inline elements. There are
7016        a few places where we still calculate enclosing rects where snapping is sufficient.
7017
7018        Test: fast/inline/hidpi-pixel-gap-between-adjacent-selection-inlines.html
7019
7020        * platform/LayoutUnit.h:
7021        (WebCore::roundToDevicePixel): added fudge factor to change rounding direction as directed.
7022        * platform/graphics/Font.cpp:
7023        (WebCore::Font::adjustSelectionRectForText):
7024        (WebCore::Font::selectionRectForText): Deleted.
7025        * platform/graphics/Font.h:
7026        * platform/graphics/FontFastPath.cpp:
7027        (WebCore::Font::adjustSelectionRectForSimpleText): removed directional rounding.
7028        (WebCore::Font::selectionRectForSimpleText): Deleted.
7029        * platform/graphics/GraphicsContext.cpp:
7030        (WebCore::GraphicsContext::drawHighlightForText): Deleted.
7031        * platform/graphics/GraphicsContext.h:
7032        * platform/graphics/LayoutPoint.h:
7033        (WebCore::roundedForPainting):
7034        * platform/graphics/LayoutRect.h:
7035        (WebCore::directionalPixelSnappedForPainting): Snap top right corner for rtl direction.
7036        * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
7037        (WebCore::Font::adjustSelectionRectForComplexText):
7038        (WebCore::Font::selectionRectForComplexText): Deleted.
7039        * platform/graphics/mac/FontComplexTextMac.cpp:
7040        (WebCore::Font::adjustSelectionRectForComplexText): removed directional rounding.
7041        (WebCore::Font::selectionRectForComplexText): Deleted.
7042        * platform/graphics/win/FontWin.cpp:
7043        (WebCore::Font::adjustSelectionRectForComplexText):
7044        (WebCore::Font::selectionRectForComplexText): Deleted.
7045        * rendering/EllipsisBox.cpp:
7046        (WebCore::EllipsisBox::selectionRect):
7047        (WebCore::EllipsisBox::paintSelection):
7048        * rendering/InlineTextBox.cpp:
7049        (WebCore::integralEnclosingRectForSelection): helper to address enclosing empty rect problem.
7050        (WebCore::InlineTextBox::localSelectionRect):
7051        (WebCore::InlineTextBox::paintSelection):
7052        (WebCore::InlineTextBox::paintCompositionBackground):
7053        (WebCore::InlineTextBox::paintDocumentMarker):
7054        (WebCore::InlineTextBox::paintTextMatchMarker):
7055        (WebCore::InlineTextBox::computeRectForReplacementMarker):
7056        (WebCore::InlineTextBox::positionForOffset):
7057        * rendering/svg/SVGInlineTextBox.cpp:
7058        (WebCore::SVGInlineTextBox::selectionRectForTextFragment):
7059
70602014-05-09  Martin Hodovan  <mhodovan@inf.u-szeged.hu>
7061
7062        ASSERTION FAILED: !m_code || m_code == defaultExceptionCode
7063        in WebCore::constructQualifiedName
7064        https://bugs.webkit.org/show_bug.cgi?id=132343
7065
7066        'Remove bad assertion in SVGSMILElement's constructQualifiedName() by passing
7067        IGNORE_EXCEPTION instead ASSERT_NO_EXCEPTION to Document::parseQualifiedName().
7068        The constructQualifiedName() function handles parseQualifiedName() failures
7069        propertly by returning early so there is no reason to assert on parsing
7070        failures.'
7071
7072        Blink merge: http://src.chromium.org/viewvc/blink?view=revision&revision=173564
7073        Based on the patch made by Christophe Dumez <ch.dumez@samsung.com>.
7074
7075        Reviewed by Dirk Schulze.
7076
7077        Test: svg/custom/bad-attributeName-crash.html
7078
7079        * svg/animation/SVGSMILElement.cpp:
7080        (WebCore::constructQualifiedName):
7081
70822014-05-08  Brent Fulgham  <bfulgham@apple.com>
7083
7084        Multiple (stacked) cues when shuttling through video while playing closed captions
7085        https://bugs.webkit.org/show_bug.cgi?id=132715
7086        <rdar://problem/16795782>
7087
7088        Reviewed by Eric Carlson.
7089
7090        Tests: media/track/track-in-band-cues-added-once.html
7091
7092        * html/track/TextTrack.cpp:
7093        (WebCore::TextTrack::hasCue): Revise to use a relaxed time equality.
7094        * html/track/TextTrackCue.cpp:
7095        (WebCore::TextTrackCue::isEqual): Ditto.
7096        (WebCore::TextTrackCue::hasEquivalentStartTime): Added.
7097        * html/track/TextTrackCue.h:
7098        (WebCore::TextTrackCue::startTimeVariance): Added.
7099        * html/track/TextTrackCueGeneric.h:
7100        * html/track/TextTrackCueGeneric.cpp:
7101        (WebCore::TextTrackCueGeneric::isEqual): Do not call the VTTCue::isEqual method from
7102        this class, since cueType() will not equal VTTCue, and the equality will fail.
7103
71042014-05-08  Alexey Proskuryakov  <ap@apple.com>
7105
7106        Automatically zip document bundles used via File API
7107        https://bugs.webkit.org/show_bug.cgi?id=132713
7108        <rdar://problem/13397892>
7109
7110        Reviewed by Anders Carlsson.
7111
7112        Tests: fast/files/filereader-zip-bundle.html
7113               http/tests/local/fileapi/upload-zip-bundle-as-blob.html
7114
7115        * FileMac.mm: Added.
7116        (WebCore::File::shouldReplaceFile):
7117        (WebCore::File::computeNameAndContentTypeForReplacedFile):
7118        Added code that decides what to do with a bundle. We need this to happen in
7119        WebProcess, because HTML5 dropzone depends on this, it needs to know file type
7120        even before a File object can be created.
7121
7122        * WebCore.exp.in: Export new functions.
7123
7124        * WebCore.xcodeproj/project.pbxproj: Added new files.
7125
7126        * dom/DataTransfer.cpp: (WebCore::DataTransfer::hasFileOfType): Updated for File
7127        interface change.
7128
7129        * fileapi/File.h:
7130        * fileapi/File.cpp:
7131        (WebCore::File::File):
7132        (WebCore::File::computeNameAndContentType):
7133        (WebCore::File::contentTypeForFile):
7134        (WebCore::File::contentTypeFromFilePathOrName): Deleted.
7135        Make it possible for a subclass to affect file name and content type calculation.
7136
7137        * platform/network/BlobDataFileReference.cpp:
7138        (WebCore::BlobDataFileReference::BlobDataFileReference):
7139        (WebCore::BlobDataFileReference::~BlobDataFileReference):
7140        (WebCore::BlobDataFileReference::path):
7141        (WebCore::BlobDataFileReference::size):
7142        (WebCore::BlobDataFileReference::expectedModificationTime):
7143        (WebCore::BlobDataFileReference::startTrackingModifications):
7144        * platform/network/BlobDataFileReference.h:
7145        (WebCore::BlobDataFileReference::path): Deleted.
7146        (WebCore::BlobDataFileReference::BlobDataFileReference): Deleted.
7147        Use original or replaced file, as appropriate. 
7148
7149        * platform/network/mac/BlobDataFileReferenceMac.mm: Added.
7150        (WebCore::BlobDataFileReference::generateReplacementFile): Implements generateReplacementFile().
7151
7152        * platform/network/FormData.h: Added a FIXME.
7153
7154        * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::send): Always use Blob code path
7155        for blobs, don't unwrap them into a file path.
7156
71572014-05-08  Simon Fraser  <simon.fraser@apple.com>
7158
7159        Occasional crash under AsyncScrollingCoordinator::frameViewRootLayerDidChange() on history navigation
7160        https://bugs.webkit.org/show_bug.cgi?id=132723
7161
7162        Reviewed by Sam Weinig.
7163        
7164        Crash reports suggest that when we call AsyncScrollingCoordinator::frameViewRootLayerDidChange()
7165        from HistoryController::restoreScrollPositionAndViewState(), the FrameView may not have a 
7166        scrolling node ID, which suggests that either the FrameView doesn't have a RenderView,
7167        or compositing hasn't happened yet.
7168        
7169        So if we enter AsyncScrollingCoordinator::frameViewRootLayerDidChange()
7170        and the FrameView has no scrollLayerID, just return. We'll fix things up
7171        when compositing kicks in later.
7172
7173        * page/scrolling/AsyncScrollingCoordinator.cpp:
7174        (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
7175
71762014-05-08  Simon Fraser  <simon.fraser@apple.com>
7177
7178        [iOS WK2] Bottom-relative position:fixed elements are misplaced on page load
7179        https://bugs.webkit.org/show_bug.cgi?id=132719
7180        <rdar://problem/16860837>
7181
7182        Reviewed by Benjamin Poulain.
7183
7184        Add a couple of functions, and sort.
7185
7186        * WebCore.exp.in:
7187
71882014-05-08  Jer Noble  <jer.noble@apple.com>
7189
7190        [Mac, iOS] Add source application accounting to AVURLAsset.
7191        https://bugs.webkit.org/show_bug.cgi?id=132637
7192
7193        Reviewed by Eric Carlson.
7194
7195        Properly account for the application responisble for data loading by passing the source
7196        application identifier through to AVFoundation through AVURLAsset options.
7197
7198        * html/HTMLMediaElement.cpp:
7199        (WebCore::HTMLMediaElement::parseAttribute):
7200        * html/HTMLMediaElement.h:
7201        * platform/graphics/MediaPlayer.cpp:
7202        (WebCore::MediaPlayer::sourceApplicationIdentifier):
7203        * platform/graphics/MediaPlayer.h:
7204        (WebCore::MediaPlayerClient::mediaPlayerSourceApplicationIdentifier):
7205        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
7206        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
7207        * platform/network/NetworkingContext.h:
7208
72092014-05-08  Jer Noble  <jer.noble@apple.com>
7210
7211        [MSE][Mac] Move AVStreamDataParser off-main-thread.
7212        https://bugs.webkit.org/show_bug.cgi?id=132698
7213
7214        Reviewed by Eric Carlson.
7215
7216        -[AVStreamDataParser appendStreamData:] can casue the main thread to hang when a
7217        large amount of media data is appended at once. Move the actual parsing of data
7218        to a background (synchronous) dispatch queue, and split SourceBuffer::appendBufferTimerFired
7219        into two functions, the latter of which will be called after the background queue
7220        completes.
7221
7222        * Modules/mediasource/SourceBuffer.cpp:
7223        (WebCore::SourceBuffer::appendBufferTimerFired): Split into sourceBufferPrivateAppendComplete.
7224        (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Split from appendBufferTimerFired.
7225        * Modules/mediasource/SourceBuffer.h:
7226        * platform/graphics/SourceBufferPrivate.h:
7227        * platform/graphics/SourceBufferPrivateClient.h:
7228        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
7229        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
7230        (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]): Re-dispatch to the
7231                web thread.
7232        (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]): Ditto.
7233        (-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]): Ditto.
7234        (-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]): Ditto.
7235        (-[WebAVStreamDataParserListener streamDataParser:didReachEndOfTrackWithTrackID:mediaType:]): Ditto.
7236        (-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]): Ditto.
7237        (WebCore::globalDataParserQueue): Added.
7238        (WebCore::SourceBufferPrivateAVFObjC::append): Dispatch to the globalDataParserQueue.
7239        (WebCore::SourceBufferPrivateAVFObjC::appendCompleted): Added.
7240        * platform/mock/mediasource/MockSourceBufferPrivate.cpp:
7241        (WebCore::MockSourceBufferPrivate::append): Adopt sourceBufferPrivateAppendComplete.
7242        * platform/mock/mediasource/MockSourceBufferPrivate.h:
7243
7244        Update SourceBufferPrivateGStreamer to match the new append return value:
7245        * platform/graphics/gstreamer/SourceBufferPrivateGStreamer.cpp:
7246        (WebCore::SourceBufferPrivateGStreamer::append):
7247        * platform/graphics/gstreamer/SourceBufferPrivateGStreamer.h:
7248
72492014-05-08  Commit Queue  <commit-queue@webkit.org>
7250
7251        Unreviewed, rolling out r168498.
7252        https://bugs.webkit.org/show_bug.cgi?id=132714
7253
7254        broke Mavericks WK2 (Requested by litherum on #webkit).
7255
7256        Reverted changeset:
7257
7258        "http/tests/security/xss-DENIED-xsl-document-redirect.xml
7259        fails with NetworkProcess"
7260        https://bugs.webkit.org/show_bug.cgi?id=132523
7261        http://trac.webkit.org/changeset/168498
7262
72632014-05-08  Myles C. Maxfield  <mmaxfield@apple.com>
7264
7265        http/tests/security/xss-DENIED-xsl-document-redirect.xml fails with NetworkProcess
7266        https://bugs.webkit.org/show_bug.cgi?id=132523
7267
7268        Reviewed by Alexey Proskuryakov.
7269
7270        We should not manufacture a response in the event of an error during a
7271        synchronous XHR. In addition, this test removes one place that is
7272        sensitive to such a manufactured response.
7273
7274        Updates test expectations.
7275
7276        * platform/network/cf/ResourceHandleCFNet.cpp:
7277        (WebCore::ResourceHandle::platformLoadResourceSynchronously): Do not
7278        manufacture a response
7279        * platform/network/mac/ResourceHandleMac.mm:
7280        (WebCore::ResourceHandle::platformLoadResourceSynchronously): Do not
7281        manufacture a response
7282        * xml/XSLTProcessorLibxslt.cpp:
7283        (WebCore::docLoaderFunc): Only use the response's URL if no error
7284        occurred.
7285
72862014-05-08  Andreas Kling  <akling@apple.com>
7287
7288        [iOS] WebKit should listen to critical memory warnings.
7289        <https://webkit.org/b/132704>
7290        <rdar://problem/16857112>
7291
7292        Listen for DISPATCH_MEMORYSTATUS_PRESSURE_CRITICAL in addition to
7293        DISPATCH_MEMORYSTATUS_PRESSURE_WARN, since we may only get the critical
7294        notification on some systems.
7295
7296        Reviewed by Gavin Barraclough.
7297
7298        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
7299        (WebCore::MemoryPressureHandler::install):
7300
73012014-05-08  Joseph Pecoraro  <pecoraro@apple.com>
7302
7303        Web Inspector: InspectorDOMAgent::getAccessibilityPropertiesForNode should gracefully handle bad node
7304        https://bugs.webkit.org/show_bug.cgi?id=132697
7305
7306        Reviewed by Timothy Hatcher.
7307
7308        * inspector/InspectorDOMAgent.cpp:
7309        (WebCore::InspectorDOMAgent::getAccessibilityPropertiesForNode):
7310        Gracefully handle no node.
7311
73122014-05-08  Tim Horton  <timothy_horton@apple.com>
7313
7314        Fix the iOS build after r168476.
7315
7316        * platform/graphics/mac/GraphicsContextMac.mm:
7317        (WebCore::GraphicsContext::drawFocusRing):
7318
73192014-05-08  Bem Jones-Bey  <bjonesbe@adobe.com>
7320
7321        [CSS Shapes] Shapes do not resolve dimensions specified in viewport units
7322        https://bugs.webkit.org/show_bug.cgi?id=124052
7323
7324        Reviewed by Dirk Schulze.
7325
7326        Viewport unit resolution doesn't work unless the RenderView is passed
7327        down into the floatValueForLength methods. All this does is plumb down
7328        a RenderView in all of these cases.
7329
7330        Tests: css3/masking/clip-path-polygon-viewport-units.html
7331               fast/shapes/shape-outside-floats/shape-outside-floats-viewport-units.html
7332
7333        * css/BasicShapeFunctions.cpp:
7334        (WebCore::floatValueForCenterCoordinate):
7335        * css/BasicShapeFunctions.h:
7336        * css/LengthFunctions.cpp:
7337        (WebCore::floatSizeForLengthSize):
7338        * css/LengthFunctions.h:
7339        * rendering/ClipPathOperation.h:
7340        (WebCore::ShapeClipPathOperation::pathForReferenceRect):
7341        (WebCore::BoxClipPathOperation::pathForReferenceRect):
7342        * rendering/RenderLayer.cpp:
7343        (WebCore::RenderLayer::setupClipPath):
7344        * rendering/shapes/Shape.cpp:
7345        (WebCore::Shape::createShape):
7346        * rendering/shapes/Shape.h:
7347        * rendering/shapes/ShapeOutsideInfo.cpp:
7348        (WebCore::ShapeOutsideInfo::computedShape):
7349        * rendering/style/BasicShapes.cpp:
7350        (WebCore::BasicShapeCircle::floatValueForRadiusInBox):
7351        (WebCore::BasicShapeCircle::path):
7352        (WebCore::BasicShapeEllipse::floatValueForRadiusInBox):
7353        (WebCore::BasicShapeEllipse::path):
7354        (WebCore::BasicShapePolygon::path):
7355        (WebCore::floatSizeForLengthSize):
7356        (WebCore::BasicShapeInset::path):
7357        * rendering/style/BasicShapes.h:
7358        * rendering/svg/SVGRenderingContext.cpp:
7359        (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
7360
73612014-05-08  Brent Fulgham  <bfulgham@apple.com>
7362
7363        Cue display events may not be registered during page load.
7364        https://bugs.webkit.org/show_bug.cgi?id=132696
7365        <rdar://problem/16652874>
7366
7367        Reviewed by Eric Carlson.
7368
7369        * Modules/mediacontrols/mediaControlsApple.js:
7370        (Controller.prototype.handleTextTrackAdd): Don't register
7371        for 'cuechange' events anymore.
7372        (Controller.prototype.handleTextTrackRemove): Ditto.
7373        (Controller.prototype.updateCaptionContainer): Reduce CSS
7374        churn by not adding/removing 'Hidden' class every time a
7375        new cue is processed. Only do this when transitioning
7376        track display state.
7377        (Controller.prototype.handleTextTrackCueChange): Deleted.
7378        * html/HTMLMediaElement.cpp:
7379        (WebCore::HTMLMediaElement::updateTextTrackDisplay): Call
7380        'updateTextTrackContainer' directory when processing cues,
7381        rather than trampolining through the JS layer.
7382
73832014-05-08  Alexey Proskuryakov  <ap@apple.com>
7384
7385        Make BlobDataFileReference manage its sandbox extension
7386        https://bugs.webkit.org/show_bug.cgi?id=132689
7387
7388        Reviewed by Anders Carlsson.
7389
7390        * WebCore.exp.in: Export symbols that are now needed in WebKit2 to subclass BlobDataFileReference.
7391
7392        * fileapi/ThreadableBlobRegistry.cpp: (WebCore::ThreadableBlobRegistry::registerFileBlobURL):
7393        * platform/network/BlobData.cpp: (WebCore::BlobData::appendFile):
7394        * platform/network/BlobData.h: (WebCore::BlobDataItem::BlobDataItem):
7395        * platform/network/BlobRegistry.h:
7396        * platform/network/BlobRegistryImpl.cpp: (WebCore::BlobRegistryImpl::registerFileBlobURL):
7397        * platform/network/BlobRegistryImpl.h:
7398        BlobRegistry now takes a BlobDataFileReference and not a path, so that WebKit2
7399        could pass objects that include sandbox extensions.
7400
7401        * platform/network/BlobDataFileReference.h:
7402        * platform/network/BlobDataFileReference.cpp:
7403        (WebCore::BlobDataFileReference::~BlobDataFileReference): Added a virtual destructor.
7404        (WebCore::BlobDataFileReference::size): We now record the size and modification time right away, no need to lazily calculate them.
7405        (WebCore::BlobDataFileReference::expectedModificationTime): Ditto.
7406        (WebCore::BlobDataFileReference::startTrackingModifications): Record time and size
7407        (since it's a single call). However, size calculation will become complicated again soon.
7408        (WebCore::BlobDataFileReference::prepareForFileAccess): A hook for subclasses.
7409        (WebCore::BlobDataFileReference::revokeFileAccess): Ditto.
7410        (WebCore::BlobDataFileReference::computeFileSystemData): Deleted.
7411
74122014-05-08  Rik Cabanier  <cabanier@adobe.com>
7413
7414        Add support for drawFocusIfNeeded
7415        https://bugs.webkit.org/show_bug.cgi?id=132584
7416
7417        Reviewed by Dirk Schulze.
7418
7419        The drawFocusIfNeeded API will draw a focus ring if the element that is passed
7420        in is focused and a child element of the canvas.
7421
7422        Test: fast/canvas/draw-focus-if-needed.html
7423
7424        * html/canvas/CanvasRenderingContext2D.cpp:
7425        (WebCore::CanvasRenderingContext2D::drawFocusIfNeeded):
7426        * html/canvas/CanvasRenderingContext2D.h:
7427        * html/canvas/CanvasRenderingContext2D.idl:
7428
74292014-05-08  Antti Koivisto  <antti@apple.com>
7430
7431        [iOS WebKit2] Can't activate text fields on Facebook
7432        https://bugs.webkit.org/show_bug.cgi?id=132682
7433
7434        Reviewed by Enrica Casucci.
7435
7436        * page/DOMTimer.cpp:
7437        (WebCore::DOMTimer::fired):
7438        
7439            The isDocument() test here had reversed in the merge breaking content change observer callback.
7440
74412014-05-07  Sergio Villar Senin  <svillar@igalia.com>
7442
7443        Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T> in svg/
7444        https://bugs.webkit.org/show_bug.cgi?id=132647
7445
7446        Reviewed by Darin Adler.
7447
7448        * svg/SVGAElement.cpp:
7449        (WebCore::SVGAElement::isSupportedAttribute):
7450        * svg/SVGAnimateMotionElement.cpp:
7451        (WebCore::SVGAnimateMotionElement::isSupportedAttribute):
7452        * svg/SVGAnimateTransformElement.cpp:
7453        (WebCore::SVGAnimateTransformElement::isSupportedAttribute):
7454        * svg/SVGAnimatedLength.cpp:
7455        (WebCore::sharedSVGLength):
7456        * svg/SVGAnimationElement.cpp:
7457        (WebCore::SVGAnimationElement::isSupportedAttribute):
7458        * svg/SVGCircleElement.cpp:
7459        (WebCore::SVGCircleElement::isSupportedAttribute):
7460        * svg/SVGClipPathElement.cpp:
7461        (WebCore::SVGClipPathElement::isSupportedAttribute):
7462        * svg/SVGComponentTransferFunctionElement.cpp:
7463        (WebCore::SVGComponentTransferFunctionElement::isSupportedAttribute):
7464        * svg/SVGCursorElement.cpp:
7465        (WebCore::SVGCursorElement::isSupportedAttribute):
7466        * svg/SVGElement.cpp:
7467        (WebCore::SVGElement::instancesForElement):
7468        (WebCore::SVGElement::childShouldCreateRenderer):
7469        * svg/SVGEllipseElement.cpp:
7470        (WebCore::SVGEllipseElement::isSupportedAttribute):
7471        * svg/SVGFEBlendElement.cpp:
7472        (WebCore::SVGFEBlendElement::isSupportedAttribute):
7473        * svg/SVGFEColorMatrixElement.cpp:
7474        (WebCore::SVGFEColorMatrixElement::isSupportedAttribute):
7475        * svg/SVGFEComponentTransferElement.cpp:
7476        (WebCore::SVGFEComponentTransferElement::isSupportedAttribute):
7477        * svg/SVGFECompositeElement.cpp:
7478        (WebCore::SVGFECompositeElement::isSupportedAttribute):
7479        * svg/SVGFEConvolveMatrixElement.cpp:
7480        (WebCore::SVGFEConvolveMatrixElement::isSupportedAttribute):
7481        * svg/SVGFEDiffuseLightingElement.cpp:
7482        (WebCore::SVGFEDiffuseLightingElement::isSupportedAttribute):
7483        * svg/SVGFEDisplacementMapElement.cpp:
7484        (WebCore::SVGFEDisplacementMapElement::isSupportedAttribute):
7485        * svg/SVGFEDropShadowElement.cpp:
7486        (WebCore::SVGFEDropShadowElement::isSupportedAttribute):
7487        * svg/SVGFEGaussianBlurElement.cpp:
7488        (WebCore::SVGFEGaussianBlurElement::isSupportedAttribute):
7489        * svg/SVGFEImageElement.cpp:
7490        (WebCore::SVGFEImageElement::isSupportedAttribute):
7491        * svg/SVGFELightElement.cpp:
7492        (WebCore::SVGFELightElement::isSupportedAttribute):
7493        * svg/SVGFEMergeNodeElement.cpp:
7494        (WebCore::SVGFEMergeNodeElement::isSupportedAttribute):
7495        * svg/SVGFEMorphologyElement.cpp:
7496        (WebCore::SVGFEMorphologyElement::isSupportedAttribute):
7497        * svg/SVGFEOffsetElement.cpp:
7498        (WebCore::SVGFEOffsetElement::isSupportedAttribute):
7499        * svg/SVGFESpecularLightingElement.cpp:
7500        (WebCore::SVGFESpecularLightingElement::isSupportedAttribute):
7501        * svg/SVGFETileElement.cpp:
7502        (WebCore::SVGFETileElement::isSupportedAttribute):
7503        * svg/SVGFETurbulenceElement.cpp:
7504        (WebCore::SVGFETurbulenceElement::isSupportedAttribute):
7505        * svg/SVGFilterElement.cpp:
7506        (WebCore::SVGFilterElement::isSupportedAttribute):
7507        (WebCore::SVGFilterElement::childShouldCreateRenderer):
7508        * svg/SVGFilterPrimitiveStandardAttributes.cpp:
7509        (WebCore::SVGFilterPrimitiveStandardAttributes::isSupportedAttribute):
7510        * svg/SVGForeignObjectElement.cpp:
7511        (WebCore::SVGForeignObjectElement::isSupportedAttribute):
7512        * svg/SVGGElement.cpp:
7513        (WebCore::SVGGElement::isSupportedAttribute):
7514        * svg/SVGGradientElement.cpp:
7515        (WebCore::SVGGradientElement::isSupportedAttribute):
7516        * svg/SVGGraphicsElement.cpp:
7517        (WebCore::SVGGraphicsElement::isSupportedAttribute):
7518        * svg/SVGImageElement.cpp:
7519        (WebCore::SVGImageElement::isSupportedAttribute):
7520        * svg/SVGLength.cpp:
7521        (WebCore::SVGLength::lengthModeForAnimatedLengthAttribute):
7522        * svg/SVGLineElement.cpp:
7523        (WebCore::SVGLineElement::isSupportedAttribute):
7524        * svg/SVGLinearGradientElement.cpp:
7525        (WebCore::SVGLinearGradientElement::isSupportedAttribute):
7526        * svg/SVGMPathElement.cpp:
7527        (WebCore::SVGMPathElement::isSupportedAttribute):
7528        * svg/SVGMarkerElement.cpp:
7529        (WebCore::SVGMarkerElement::isSupportedAttribute):
7530        * svg/SVGMaskElement.cpp:
7531        (WebCore::SVGMaskElement::isSupportedAttribute):
7532        * svg/SVGPathElement.cpp:
7533        (WebCore::SVGPathElement::isSupportedAttribute):
7534        * svg/SVGPatternElement.cpp:
7535        (WebCore::SVGPatternElement::isSupportedAttribute):
7536        * svg/SVGPolyElement.cpp:
7537        (WebCore::SVGPolyElement::isSupportedAttribute):
7538        * svg/SVGRadialGradientElement.cpp:
7539        (WebCore::SVGRadialGradientElement::isSupportedAttribute):
7540        * svg/SVGRectElement.cpp:
7541        (WebCore::SVGRectElement::isSupportedAttribute):
7542        * svg/SVGScriptElement.cpp:
7543        (WebCore::SVGScriptElement::isSupportedAttribute):
7544        * svg/SVGStopElement.cpp:
7545        (WebCore::SVGStopElement::isSupportedAttribute):
7546        * svg/SVGStyleElement.cpp:
7547        (WebCore::SVGStyleElement::isSupportedAttribute):
7548        * svg/SVGSymbolElement.cpp:
7549        (WebCore::SVGSymbolElement::isSupportedAttribute):
7550        * svg/SVGTRefElement.cpp:
7551        (WebCore::SVGTRefElement::isSupportedAttribute):
7552        * svg/SVGTests.cpp:
7553        (WebCore::SVGTests::attributeToPropertyMap):
7554        * svg/SVGTextContentElement.cpp:
7555        (WebCore::SVGTextContentElement::textLengthAnimated):
7556        (WebCore::SVGTextContentElement::isSupportedAttribute):
7557        * svg/SVGTextPathElement.cpp:
7558        (WebCore::SVGTextPathElement::isSupportedAttribute):
7559        * svg/SVGTextPositioningElement.cpp:
7560        (WebCore::SVGTextPositioningElement::isSupportedAttribute):
7561        * svg/SVGUseElement.cpp:
7562        (WebCore::SVGUseElement::isSupportedAttribute):
7563        (WebCore::isDisallowedElement):
7564        * svg/SVGViewElement.cpp:
7565        (WebCore::SVGViewElement::isSupportedAttribute):
7566
75672014-05-08  Ion Rosca  <rosca@adobe.com>
7568
7569        [CSS Blending] Replacing Unisolated with NotIsolated in variables and methods names
7570        https://bugs.webkit.org/show_bug.cgi?id=132677
7571
7572        Reviewed by Dirk Schulze.
7573
7574        No new tests required.
7575
7576        * rendering/RenderLayer.cpp:
7577        (WebCore::RenderLayer::RenderLayer):
7578        (WebCore::RenderLayer::updateAncestorChainHasBlendingDescendants):
7579        (WebCore::RenderLayer::dirtyAncestorChainHasBlendingDescendants):
7580        (WebCore::RenderLayer::updateDescendantDependentFlags):
7581        hasUnisolatedBlendingDescendants -> hasNotIsolatedBlendingDescendants
7582        (WebCore::RenderLayer::addChild):
7583        (WebCore::RenderLayer::removeChild):
7584        (WebCore::RenderLayer::updateStackingContextsAfterStyleChange):
7585        * rendering/RenderLayer.h:
7586        m_hasUnisolatedBlendingDescendants -> m_hasNotIsolatedBlendingDescendants
7587        m_hasUnisolatedBlendingDescendantsStatusDirty -> m_hasNotIsolatedBlendingDescendantsStatusDirty
7588        hasUnisolatedBlendingDescendants() -> hasNotIsolatedBlendingDescendants()
7589        hasUnisolatedBlendingDescendantsStatusDirty() -> hasNotIsolatedBlendingDescendantsStatusDirty()
7590        m_hasUnisolatedCompositedBlendingDescendants -> m_hasNotIsolatedCompositedBlendingDescendants
7591        hasUnisolatedCompositedBlendingDescendants() -> hasNotIsolatedCompositedBlendingDescendants()
7592        setHasUnisolatedCompositedBlendingDescendants() -> setHasNotIsolatedCompositedBlendingDescendants
7593        * rendering/RenderLayerCompositor.cpp:
7594        (WebCore::CompositingState::CompositingState):
7595        m_hasUnisolatedCompositedBlendingDescendants -> m_hasNotIsolatedCompositedBlendingDescendants
7596        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
7597
75982014-05-08  Xabier Rodriguez Calvar  <calvaris@igalia.com>
7599
7600        [GTK] Enable skipped http/tests/media/hls/video-controls-live-stream.html
7601        https://bugs.webkit.org/show_bug.cgi?id=132329
7602
7603        Reviewed by Eric Carlson.
7604
7605        GTK port needed to define what happened with live stream media
7606        controls. Now we disable and dim the timeline and tweak the
7607        timers.
7608
7609        Test: http/tests/media/hls/video-controls-live-stream.html.
7610
7611        * Modules/mediacontrols/mediaControlsGtk.js:
7612        (ControllerGtk.prototype.configureControls): Moved logic from
7613        setControlsType and changed to use an early return.
7614        (ControllerGtk.prototype.reconnectControls): Redefined to just
7615        configure the controls.
7616        (ControllerGtk.prototype.handlePlay): If stream is live we don't
7617        activate the current time just in case.
7618        (ControllerGtk.prototype.updateDuration): Calls the superclass and
7619        sets timeline.max to 0.
7620        (ControllerGtk.prototype.setControlsType): Deleted.
7621        (ControllerGtk.prototype.setIsLive): Configures controls and
7622        disables the timeline if stream is live.
7623        * css/mediaControlsGtk.css:
7624        (audio::-webkit-media-controls-timeline[disabled])
7625        (video::-webkit-media-controls-timeline[disabled]): Dimmed the
7626        timeline by setting opacity to 0.3.
7627
76282014-05-08  Ion Rosca  <rosca@adobe.com>
7629
7630        [CSS Blending] Changing isolation CSS property should not trigger repaint in RenderStyle::changeRequiresLayerRepaint
7631        https://bugs.webkit.org/show_bug.cgi?id=131436
7632
7633        Reviewed by Dirk Schulze.
7634
7635        The isolation:isolate property will create a stacking context. This is done in
7636        StyleResolver::adjustRenderStyle where z-index is forced to 0.
7637        If the element is already a stacking context for any other reason,
7638        changing the isolation flag should not have any effect.
7639
7640        Tests: css3/blending/repaint/blend-mode-turn-off-isolation-no-effect.html
7641               css3/blending/repaint/blend-mode-turn-off-isolation.html
7642
7643        * rendering/style/RenderStyle.cpp:
7644        (WebCore::RenderStyle::changeRequiresLayerRepaint):
7645        do not request repaint if isolation has changed.
7646
76472014-05-08  Manuel Rego Casasnovas  <rego@igalia.com>
7648
7649        REGRESSION (r167652): SelectionState is not set properly for non leaf objects in pages with regions
7650        https://bugs.webkit.org/show_bug.cgi?id=132493
7651
7652        Reviewed by David Hyatt.
7653
7654        Non selection leaf elements were not included in the selection ranges,
7655        that was causing that their selection state was not set properly and
7656        when one of the element was removed as it was marked as SelectionNone
7657        current selection was not removed.
7658
7659        Due to this fix, the regression detected in bug #131982 arose again.
7660        Reverted changes from r167675 and reopened bug as previous fix was not
7661        right. Updated TestExpectations accordingly.
7662
7663        Test: fast/regions/selection/crash-select-all.html
7664
7665        * rendering/RenderView.cpp:
7666        (WebCore::RenderView::splitSelectionBetweenSubtrees): We need to include
7667        non selection leafs in the range, otherwise we won't be marking
7668        selection state of some elements properly.
7669
76702014-05-08  Zoltan Horvath  <zoltan@webkit.org>
7671
7672        [CSS Shapes] Can't select content within the area of the floating box when clip-path is applied
7673        https://bugs.webkit.org/show_bug.cgi?id=131375
7674
7675        Reviewed by Dirk Schulze.
7676
7677        According to http://www.w3.org/TR/css-masking-1/, the clipped part of the element should
7678        not have pointer event dispatching. So add this logic to RenderBlock::nodeAtPoint. This
7679        fixes the bug as it disallows selection on any clipped parts.
7680
7681        I implemented the proper selection for the various CSS box types and added testing
7682        for them. Also, I made and run performance tests for exposing mouse events over the
7683        clipped/non-clipped area, which results can be seen in bugzilla.
7684
7685        Based on the patch made by Rob Buis <rob.buis@samsung.com>
7686        Blink revision: http://src.chromium.org/viewvc/blink?view=revision&revision=172619
7687
7688        Tests: fast/masking/clip-path-selection.html
7689               fast/shapes/shape-outside-floats/shape-outside-clip-path-selection.html
7690
7691        * rendering/RenderBlock.cpp:
7692        (WebCore::RenderBlock::nodeAtPoint):
7693
76942014-05-07  Ion Rosca  <rosca@adobe.com>
7695
7696        [CSS Blending] Blending doesn't work if the parent stacking context is not a self painting layer
7697        https://bugs.webkit.org/show_bug.cgi?id=130891
7698
7699        Reviewed by Dean Jackson.
7700
7701        The stacking context layers having unisolated blending descendants should be able
7702        to create transparency layers or to become composited in order to restrict blending 
7703        content to accessing the information outside the current stacking context.
7704        Some layers are not self painting layers and these layers cannot crate transparency
7705        layers and cannot be composited, thus they are not able to isolate blending descendants
7706        when it's required.
7707        
7708        The solution in this patch is to make a layer isSelfPaintingLayer when
7709        it needs to isolate blending descendants (hasUnisolatedBlendingDescendants).
7710
7711        Tests: css3/blending/blend-mode-isolation-accelerated-overflow-hidden.html
7712               css3/blending/blend-mode-isolation-overflow-hidden.html
7713               css3/blending/blend-mode-isolation-turn-off-self-painting-layer.html
7714               css3/blending/blend-mode-isolation-turn-off-self-painting-layer1.html
7715               css3/blending/blend-mode-isolation-turn-off-self-painting-layer2.html
7716               css3/blending/blend-mode-isolation-turn-on-self-painting-layer.html
7717
7718        * rendering/RenderLayer.cpp:
7719        (WebCore::RenderLayer::updateAncestorChainHasBlendingDescendants):
7720        When hasUnisolatedBlendingDescendants is set we make sure that isSelfPaintingLayer flag is set too.
7721        (WebCore::RenderLayer::updateDescendantDependentFlags):
7722        The flags might be read or changed while walking the descendants, so we don't want to reset
7723        them before traversing the tree.
7724        (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
7725        Adding isolatesBlending() condition for a layer to be self painting.
7726        * rendering/RenderLayer.h:
7727        Removing ASSERT from hasUnisolatedBlendingDescendants(). It crashes in minibrowser
7728        and in layout tests when painting contents. Similar bugs on other flags: #71044, #71277.
7729        * rendering/RenderLayerModelObject.cpp:
7730        (WebCore::RenderLayerModelObject::styleDidChange):
7731        Telling ancestors that blend mode property has been removed from CSS when the layer for
7732        this element is going to be removed; styleChanged will not be called anymore.
7733
77342014-05-06  Myles C. Maxfield  <mmaxfield@apple.com>
7735
7736        Dragging text from one paragraph to another does not render as expected
7737        https://bugs.webkit.org/show_bug.cgi?id=132633
7738
7739        Reviewed by Darin Adler and Ryosuke Niwa.
7740
7741        When we are dragging and dropping into a content editable field, we detect
7742        if we are trying to put a <p> into an existing <p>, and if so, split the
7743        outer <p> and insert the new <p> as its sibling. However, the outer <p>
7744        might not be editable, so we don't want to do any splitting and inserting
7745        at that location.
7746
7747        Test: editing/pasteboard/drag-drop-paragraph-crasher.html
7748
7749        * editing/ReplaceSelectionCommand.cpp:
7750        (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
7751
77522014-05-07  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
7753
7754        [CoordinatedGraphics][WK2] Scale factor and scroll position is not being restored properly in a back/forward load
7755        https://bugs.webkit.org/show_bug.cgi?id=126022
7756
7757        Reviewed by Benjamin Poulain.
7758
7759        Original author : Thiago de Barros Lacerda, and finished by Gyuyoung Kim.
7760
7761        When user is navigating back/forward to a page that has been scrolled and/or scaled, that page must be shown
7762        with its last scroll position and scale factor. However, when fixed layout was enabled with CoordinatedGraphics
7763        and TILED_BACKING_STORE, Page::setPageScaleFactor() doesn't send previous scroll position since r165652 and r165913.
7764
7765        This patch allows the Page::setPageScaleFactor() send stored position to WK2 implementation by calling delegatedScrollRequested()
7766        directly when delegatesScrolling() is on.
7767
7768        * page/Page.cpp:
7769        (WebCore::Page::setPageScaleFactor): TILED_BACKING_STORE and delegateScrolling are enabled, we pass new scroll position to WK2 though
7770        delegateScrolling is disabled.
7771        * platform/ScrollView.cpp: delegatedScrollRequested() call is moved from ScrollView::setScrollPosition() to Page::setPageScaleFactor().
7772        (WebCore::ScrollView::setScrollPosition): 
7773
77742014-05-07  Dean Jackson  <dino@apple.com>
7775
7776        Using a fill pattern much larger than actual canvas reliably segfaults browser
7777        https://bugs.webkit.org/show_bug.cgi?id=132635
7778
7779        Reviewed by Simon Fraser.
7780
7781        Make sure that createPattern checks that the canvas it is about to use
7782        as a source is valid.
7783
7784        Test: fast/canvas/pattern-too-large-to-create.html
7785
7786        * html/canvas/CanvasRenderingContext2D.cpp:
7787        (WebCore::CanvasRenderingContext2D::createPattern): Check that the source canvas has
7788        an ok ImageBuffer.
7789
77902014-05-07  Pratik Solanki  <psolanki@apple.com>
7791
7792        Use system defaults for hardware jpeg decoding
7793        https://bugs.webkit.org/show_bug.cgi?id=132661
7794        <rdar://problem/11348201>
7795
7796        Reviewed by Tim Horton.
7797
7798        Remove code that explicitly disabled hardware image decoding. Let the system decide what to do.
7799
7800        * WebCore.exp.in:
7801        * platform/graphics/ImageSource.h:
7802        (WebCore::ImageSource::acceleratedImageDecodingEnabled): Deleted.
7803        (WebCore::ImageSource::setAcceleratedImageDecodingEnabled): Deleted.
7804        * platform/graphics/cg/ImageSourceCG.cpp:
7805        (WebCore::ImageSource::imageSourceOptions):
7806
78072014-05-07  Radu Stavila  <stavila@adobe.com>
7808
7809        Use after free in WebCore::RenderObject::nextSibling / WebCore::RenderBoxModelObject::moveChildrenTo
7810        https://bugs.webkit.org/show_bug.cgi?id=132625
7811
7812        Reviewed by David Hyatt.
7813
7814        Fixed problem with dynamically inserting first letter elements.
7815
7816        Test: fast/multicol/newmulticol/first-letter-create.html
7817
7818        * rendering/RenderBlock.cpp:
7819        (WebCore::RenderBlock::getFirstLetter):
7820        (WebCore::RenderBlock::updateFirstLetter):
7821        * rendering/RenderBlock.h:
7822        * rendering/RenderBoxModelObject.cpp:
7823        (WebCore::RenderBoxModelObject::moveChildrenTo):
7824
78252014-05-07  Enrica Casucci  <enrica@apple.com>
7826
7827        WK2: Programatic scroll requests during scroll or zoom animation to reveal focused element are ignored.
7828        https://bugs.webkit.org/show_bug.cgi?id=132657
7829        <rdar://problem/16468462>
7830
7831        Reviewed by Benjamin Poulain.
7832
7833        With the scrolling model we use on iOS, a programatic scroll
7834        request can be received while we are still animating to reveal
7835        the focused input element. The WebProcess is unaware that the
7836        scroll position is being changed in the UIProcess, and does not
7837        honor the scroll request from JavaScript.
7838        This is patch changes the behavior for clients using scroll delegates
7839        to always send the scroll request to the UIProcess without checking
7840        the current scroll position.
7841
7842        * page/FrameView.h:
7843        * platform/ScrollView.cpp:
7844        (WebCore::ScrollView::setScrollPosition):
7845        * platform/ScrollView.h:
7846        (WebCore::ScrollView::inProgrammaticScroll):
7847
78482014-05-07  Brent Fulgham  <bfulgham@apple.com>
7849
7850        [Mac, iOS] REGRESSION: WK2 YouTube support
7851        https://bugs.webkit.org/show_bug.cgi?id=132568
7852        <rdar://problem/11464344>
7853
7854        Reviewed by Darin Adler.
7855
7856        Move the custom YouTube loader code out of the WebFrameLoaderClient into a
7857        PluginReplacement-based class.
7858
7859        * Modules/plugins/PluginReplacement.h:
7860        (WebCore::PluginReplacement::supportsURL): New predicate so we can restrict
7861        use of a plugin to a particular category of URLs.
7862        * Modules/plugins/QuickTimePluginReplacement.mm:
7863        (WebCore::QuickTimePluginReplacement): Updated for new registrar signature.
7864        * Modules/plugins/YouTubePluginReplacement.h: Added.
7865        (WebCore::YouTubePluginReplacement::parentElement):
7866        * Modules/plugins/YouTubePluginReplacement.cpp: Added.
7867        (WebCore::YouTubePluginReplacement::registerPluginReplacement):
7868        (WebCore::YouTubePluginReplacement::create):
7869        (WebCore::YouTubePluginReplacement::supportsMimeType):
7870        (WebCore::YouTubePluginReplacement::supportsFileExtension):
7871        (WebCore::kit):
7872        (WebCore::YouTubePluginReplacement::YouTubePluginReplacement):
7873        (WebCore::YouTubePluginReplacement::createElementRenderer):
7874        (WebCore::objectForKey):
7875        (WebCore::YouTubePluginReplacement::installReplacement):
7876        (WebCore::createYouTubeURL):
7877        (WebCore::processAndCreateYouTubeURL):
7878        (WebCore::YouTubePluginReplacement::youTubeURL):
7879        * WebCore.exp.in: Add new export from WebCore.
7880        * WebCore.xcodeproj/project.pbxproj:
7881        * html/HTMLPlugInElement.cpp:
7882        (WebCore::pluginReplacementForType): Update to also check that the URL is supported
7883        by the plugin.
7884        (WebCore::registeredPluginReplacements): Add new YouTubePluginReplacement to registry.
7885        * html/HTMLPlugInImageElement.cpp:
7886        (WebCore::HTMLPlugInImageElement::createElementRenderer): Remove custom YouTube code
7887        now that this logic is handled in the plugin replacement class.
7888        (WebCore::HTMLPlugInImageElement::createShadowIFrameSubtree): Deleted.
7889        * html/HTMLPlugInImageElement.h:
7890        * html/shadow/YouTubeEmbedShadowElement.cpp:
7891        (WebCore::YouTubeEmbedShadowElement::YouTubeEmbedShadowElement):
7892        (WebCore::YouTubeEmbedShadowElement::shadowPseudoId): Use correct pseudoID for the
7893        plugin replacement architecture.
7894        * html/shadow/YouTubeEmbedShadowElement.h:
7895        * platform/mac/WebCoreNSURLExtras.h:
7896        * platform/mac/WebCoreNSURLExtras.mm:
7897        (WebCore::unescapedQueryValue): Moved from WebKit/Misc/WebNSURLExtras.
7898        (WebCore::queryKeysAndValues): Ditto.
7899
79002014-05-07  Simon Fraser  <simon.fraser@apple.com>
7901
7902        [iOS] Acclerated overflow-scrolling broken in WK1
7903        https://bugs.webkit.org/show_bug.cgi?id=132665
7904        <rdar://problem/16842909>
7905
7906        Reviewed by Tim Horton.
7907
7908        r168301 added a CALayer delegate to disable implicit animations,
7909        but for some layers we wrap them in UIViews (which are themselves
7910        layer delegates), so bad things happened.
7911        
7912        Fix by falling back to setting the null actions dictionary for
7913        layers with custom scrolling behavior.
7914
7915        * platform/graphics/GraphicsLayer.h:
7916        * platform/graphics/ca/mac/PlatformCALayerMac.h:
7917        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
7918        (PlatformCALayerMac::updateCustomBehavior):
7919        * rendering/RenderLayerBacking.cpp:
7920        (WebCore::RenderLayerBacking::updateScrollingLayers):
7921
79222014-05-07  Jeremy Jones  <jeremyj@apple.com>
7923
7924        HTMLMediaElement should exitFullscreen when view is removed from the window.
7925        https://bugs.webkit.org/show_bug.cgi?id=132506
7926
7927        Reviewed by Tim Horton.
7928
7929        * platform/ios/WebVideoFullscreenControllerAVKit.h:
7930        Add -requestExitFullscreen.
7931
7932        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
7933        (-[WebVideoFullscreenController requestExitFullscreen]):
7934        Forward request onto WebVideoFullscreenModelMediaElement.
7935
7936        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
7937        (WebVideoFullscreenModelMediaElement::requestExitFullscreen):
7938        Add some protection here since this may be called when not in fullscreen.
7939
79402014-05-07  Dean Jackson  <dino@apple.com>
7941
7942        Clean up the difference between painting focus rings and adding PDF annotations
7943        https://bugs.webkit.org/show_bug.cgi?id=132638
7944
7945        Follow-up comments from Darin Adler.
7946
7947        * rendering/RenderInline.cpp:
7948        (WebCore::RenderInline::paintOutline): Move "else if" to a separate "if" for clarity.
7949        * rendering/RenderObject.cpp:
7950        (WebCore::RenderObject::paintFocusRing): Don't guard against outlineIsAuto(). ASSERT instead.
7951        (WebCore::RenderObject::addPDFURLRect): Give "rect" variable a better name.
7952        (WebCore::RenderObject::paintOutline): Move "else if" to a separate "if" for clarity.
7953
79542014-05-07  Alexey Proskuryakov  <ap@apple.com>
7955
7956        Make blob size computation lazy
7957        https://bugs.webkit.org/show_bug.cgi?id=132653
7958
7959        Reviewed by Anders Carlsson.
7960
7961        * fileapi/Blob.cpp:
7962        (WebCore::Blob::Blob):
7963        (WebCore::Blob::size):
7964        * fileapi/Blob.h:
7965        (WebCore::Blob::size): Deleted.
7966        * fileapi/File.cpp:
7967        (WebCore::File::size): Deleted.
7968        * fileapi/File.h:
7969        * fileapi/ThreadableBlobRegistry.cpp:
7970        (WebCore::ThreadableBlobRegistry::registerFileBlobURL):
7971        (WebCore::ThreadableBlobRegistry::registerBlobURL):
7972        (WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):
7973        (WebCore::ThreadableBlobRegistry::blobSize):
7974        (WebCore::ThreadableBlobRegistry::unregisterBlobURL):
7975        (WebCore::unregisterBlobURLTask): Deleted.
7976        * fileapi/ThreadableBlobRegistry.h:
7977        * platform/network/BlobData.cpp:
7978        (WebCore::BlobData::appendData):
7979        * platform/network/BlobRegistry.h:
7980        * platform/network/BlobRegistryImpl.cpp:
7981        (WebCore::BlobRegistryImpl::registerBlobURL):
7982        (WebCore::BlobRegistryImpl::registerBlobURLForSlice):
7983        * platform/network/BlobRegistryImpl.h:
7984
79852014-05-06  Simon Fraser  <simon.fraser@apple.com>
7986
7987        Add scrolling tree logging to RemoteLayerTree output
7988        https://bugs.webkit.org/show_bug.cgi?id=132640
7989
7990        Reviewed by Beth Dakin.
7991
7992        Support scrolling tree logging in the RemoteLayerTree log channel
7993        output.
7994        
7995        ScrollingStateTree::commit() unconditionally set treeStateClone->m_hasChangedProperties
7996        to true, but we should set it based on original scrolling state tree's 
7997        m_hasChangedProperties.
7998        
7999        We have to encode all of the scrolling state nodes anyway (they only encode
8000        changed properties), but we can use this for future optimizations, and to
8001        avoid spurious logging.
8002        
8003        * WebCore.exp.in: Export a couple of things we need.
8004        * page/scrolling/ScrollingStateTree.cpp:
8005        (WebCore::ScrollingStateTree::commit):
8006
80072014-05-07  Chris Fleizach  <cfleizach@apple.com>
8008
8009        AX: aria-expanded changes are not communicated to clients
8010        https://bugs.webkit.org/show_bug.cgi?id=132642
8011
8012        Reviewed by Mario Sanchez Prada.
8013
8014        When aria-expanded changes on non list/tree items, send out a generic
8015        AXExpandedChange notification.
8016
8017        Test: platform/mac/accessibility/expanded-notification.html
8018
8019        * accessibility/AXObjectCache.h:
8020        * accessibility/AccessibilityRenderObject.cpp:
8021        (WebCore::AccessibilityRenderObject::handleAriaExpandedChanged):
8022        * accessibility/mac/AXObjectCacheMac.mm:
8023        (WebCore::AXObjectCache::postPlatformNotification):
8024
80252014-05-07  Alexey Proskuryakov  <ap@apple.com>
8026
8027        Release build fix.
8028
8029        * platform/MIMETypeRegistry.cpp: (WebCore::initializeSupportedImageMIMETypes):
8030        Removed unused globals.
8031
80322014-05-07  Alexey Proskuryakov  <ap@apple.com>
8033
8034        Eliminate "well known MIME type" support
8035        https://bugs.webkit.org/show_bug.cgi?id=132654
8036
8037        Reviewed by Anders Carlsson.
8038
8039        Vestiges of FileSystem API.
8040
8041        * dom/DataTransfer.cpp:
8042        (WebCore::DataTransfer::files):
8043        (WebCore::DataTransfer::hasFileOfType):
8044        * fileapi/File.cpp:
8045        (WebCore::File::File):
8046        (WebCore::File::contentTypeFromFilePathOrName):
8047        * fileapi/File.h:
8048        * html/FileInputType.cpp:
8049        (WebCore::FileInputType::createFileList):
8050        * platform/MIMETypeRegistry.cpp:
8051        (WebCore::initializeSupportedImageMIMETypes):
8052        (WebCore::findMimeType): Deleted.
8053        (WebCore::MIMETypeRegistry::getWellKnownMIMETypeForExtension): Deleted.
8054        * platform/MIMETypeRegistry.h:
8055
80562014-05-07  Christophe Dumez  <ch.dumez@samsung.com>
8057
8058        [HTML] Default argument to HTMLTableElement.insertRow() should be -1
8059        https://bugs.webkit.org/show_bug.cgi?id=132651
8060
8061        Reviewed by Alexey Proskuryakov.
8062
8063        HTMLTableElement.insertRow()'s argument default value should be -1, not 0,
8064        as per the specification:
8065        http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#htmltableelement
8066
8067        The new behavior matches the one of Firefox 29 and IE11, and soon Blink:
8068        https://codereview.chromium.org/270213007/
8069
8070        Test: fast/dom/HTMLTableElement/insertRow-default-argument.html
8071
8072        * html/HTMLTableElement.h:
8073        * html/HTMLTableElement.idl:
8074
80752014-05-07  Chris Fleizach  <cfleizach@apple.com>
8076
8077        AX: AXSelectTextWithCriteria should support capitalize/lowercase/uppercase
8078        https://bugs.webkit.org/show_bug.cgi?id=132622
8079
8080        Reviewed by Mario Sanchez Prada.
8081
8082        The select text with criteria mechanism used through accessibility needs to support
8083        a few more parameters to be complete (including capitalize, lowercase and uppercase).
8084
8085        Updated: accessibility/select-text.html
8086
8087        * accessibility/AccessibilityObject.cpp:
8088        (WebCore::AccessibilityObject::selectText):
8089        * accessibility/AccessibilityObject.h:
8090        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
8091        (accessibilitySelectTextCriteriaForCriteriaParameterizedAttribute):
8092        * rendering/RenderText.cpp:
8093        (WebCore::makeCapitalized):
8094        * rendering/RenderText.h:
8095
80962014-05-07  peavo@outlook.com  <peavo@outlook.com>
8097
8098        DocumentLoader::dataReceived assertion failed
8099        https://bugs.webkit.org/show_bug.cgi?id=132017
8100
8101        Reviewed by Brent Fulgham.
8102
8103        We need to call didReceiveResponse client method before the didReceiveData client method, otherwise we get a lot of asserts.
8104        This patch also fixes frequent crashes in downloadTimerCallback method on page loading.
8105
8106        * platform/network/curl/ResourceHandleManager.cpp:
8107        (WebCore::calculateWebTimingInformations): Initialize local variables.
8108        (WebCore::headerCallback): Call didReceiveResponse client method here instead of in downloadTimerCallback.
8109        (WebCore::ResourceHandleManager::downloadTimerCallback): Remove call to didReceiveResponse method.
8110        (WebCore::ResourceHandleManager::dispatchSynchronousJob): Removed empty line.
8111
81122014-05-06  Antti Koivisto  <antti@apple.com>
8113
8114        REGRESSION: Animated GIF inside compositing layer never resumes animation when scrolled back into view
8115        https://bugs.webkit.org/show_bug.cgi?id=132608
8116
8117        Reviewed by Simon Fraser.
8118
8119        Test: fast/repaint/animation-after-layer-scroll.html
8120
8121        * rendering/RenderLayer.cpp:
8122        (WebCore::RenderLayer::scrollTo):
8123        
8124            Check if any animations need to be restarted after layer scroll.
8125
81262014-05-07  Hyowon Kim  <hw1008.kim@samsung.com>
8127
8128        GraphicsLayer::client() should return a reference.
8129        https://bugs.webkit.org/show_bug.cgi?id=126372
8130
8131        Reviewed by Simon Fraser.
8132
8133        GraphicsLayers always have a GraphicsLayerClient attached,
8134        so make client() a reference and remove some unnecessary branches.
8135        The author of the changes in the mac port is Andreas Kling <akling@apple.com>.
8136
8137        * WebCore.exp.in:
8138        * platform/graphics/GraphicsLayer.cpp:
8139        (WebCore::GraphicsLayer::GraphicsLayer):
8140        (WebCore::GraphicsLayer::willBeDestroyed):
8141        (WebCore::GraphicsLayer::paintGraphicsLayerContents):
8142        (WebCore::GraphicsLayer::addRepaintRect):
8143        (WebCore::dumpChildren):
8144        (WebCore::GraphicsLayer::dumpProperties):
8145        * platform/graphics/GraphicsLayer.h:
8146        (WebCore::GraphicsLayer::client):
8147        (WebCore::GraphicsLayer::pageScaleFactor):
8148        (WebCore::GraphicsLayer::deviceScaleFactor):
8149        * platform/graphics/GraphicsLayerFactory.h:
8150        * platform/graphics/ca/GraphicsLayerCA.cpp:
8151        (WebCore::GraphicsLayer::create):
8152        (WebCore::GraphicsLayerCA::GraphicsLayerCA):
8153        (WebCore::GraphicsLayerCA::initialize):
8154        (WebCore::GraphicsLayerCA::platformCALayerAnimationStarted):
8155        (WebCore::GraphicsLayerCA::computePositionRelativeToBase):
8156        (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly):
8157        (WebCore::GraphicsLayerCA::computeVisibleRect):
8158        (WebCore::GraphicsLayerCA::recursiveCommitChanges):
8159        (WebCore::GraphicsLayerCA::platformCALayerContentsScaleMultiplierForNewTiles):
8160        (WebCore::GraphicsLayerCA::platformCALayerShouldAggressivelyRetainTiles):
8161        (WebCore::GraphicsLayerCA::platformCALayerShouldTemporarilyRetainTileCohorts):
8162        (WebCore::GraphicsLayerCA::updateContentsOpaque):
8163        (WebCore::GraphicsLayerCA::updateContentsScale):
8164        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
8165        (WebCore::GraphicsLayerCA::noteLayerPropertyChanged):
8166        * platform/graphics/ca/GraphicsLayerCA.h:
8167        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
8168        (WebCore::GraphicsLayer::create):
8169        (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
8170        (WebCore::GraphicsLayerTextureMapper::notifyChange):
8171        (WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
8172        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
8173        * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
8174        (WebCore::CompositingCoordinator::createRootLayer):
8175        (WebCore::CompositingCoordinator::createGraphicsLayer):
8176        * platform/graphics/texmap/coordinated/CompositingCoordinator.h:
8177        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
8178        (WebCore::CoordinatedGraphicsLayer::notifyFlushRequired):
8179        (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
8180        (WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):
8181        (WebCore::CoordinatedGraphicsLayer::animationStartedTimerFired):
8182        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
8183        * rendering/RenderLayerBacking.cpp:
8184        (WebCore::RenderLayerBacking::createGraphicsLayer):
8185        * rendering/RenderLayerCompositor.cpp:
8186        (WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
8187        (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
8188        (WebCore::RenderLayerCompositor::updateLayerForHeader):
8189        (WebCore::RenderLayerCompositor::updateLayerForFooter):
8190        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
8191        (WebCore::RenderLayerCompositor::ensureRootLayer):
8192
81932014-05-07  Xabier Rodriguez Calvar  <calvaris@igalia.com>
8194
8195        [GStreamer] Corrected typo
8196        https://bugs.webkit.org/show_bug.cgi?id=132609
8197
8198        Reviewed by Martin Robinson.
8199
8200        Corrected m_canFallBackToLastFinishedSeekPositon typo and
8201        initialized in the constructor to prevent problems in the future.
8202
8203        No test needed.
8204
8205        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
8206        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
8207        Initialized m_canFallBackToLastFinishedSeekPosition as false.
8208        (WebCore::MediaPlayerPrivateGStreamer::playbackPosition):
8209        (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
8210        (WebCore::MediaPlayerPrivateGStreamer::asyncStateChangeDone):
8211        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
8212        m_canFallBackToLastFinishedSeekPositon ->
8213        m_canFallBackToLastFinishedSeekPosition
8214
82152014-05-07  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
8216
8217        Convert PassOwnPtr to unique_ptr in CrossThreadTask.h
8218        https://bugs.webkit.org/show_bug.cgi?id=132605
8219
8220        Reviewed by Dirk Schulze.
8221
8222        * dom/CrossThreadTask.h: Converted.
8223
82242014-05-07  Carlos Garcia Campos  <cgarcia@igalia.com>
8225
8226        [SOUP] TLSErrors do not cause page load to fail when not ignored
8227        https://bugs.webkit.org/show_bug.cgi?id=121548
8228
8229        Reviewed by Sergio Villar Senin.
8230
8231        This only happens in case of redirection, when the initial URL is
8232        an HTTPS site with an invalid certificate, that redirects to
8233        another location. We are starting the redirection without checking
8234        the TLS errors.
8235
8236        * platform/network/soup/ResourceHandleSoup.cpp:
8237        (WebCore::sendRequestCallback): Check TLS errors before starting a
8238        possible redirection.
8239
82402014-05-07  Manuel Rego Casasnovas  <rego@igalia.com>
8241
8242        [CSS Grid Layout] Remove runtime feature
8243        https://bugs.webkit.org/show_bug.cgi?id=132382
8244
8245        Reviewed by Benjamin Poulain.
8246
8247        Remove cssGridLayoutEnabled setting. Update methods using it accordingly.
8248
8249        * WebCore.order:
8250        * css/CSSParser.cpp:
8251        (WebCore::CSSParserContext::CSSParserContext):
8252        (WebCore::operator==):
8253        (WebCore::isValidKeywordPropertyAndValue):
8254        (WebCore::CSSParser::parseValue):
8255        (WebCore::CSSParser::parseGridTemplateShorthand):
8256        (WebCore::CSSParser::parseGridAreaShorthand):
8257        (WebCore::CSSParser::cssGridLayoutEnabled): Deleted.
8258        * css/CSSParser.h:
8259        * css/CSSParserMode.h:
8260        * dom/Document.cpp:
8261        (WebCore::Document::cssGridLayoutEnabled): Deleted.
8262        * dom/Document.h:
8263        * page/Settings.in:
8264
82652014-05-07  Praveen R Jadhav  <praveen.j@samsung.com>
8266
8267        Fix build errors for BlobDataItem after r168391.
8268        https://bugs.webkit.org/show_bug.cgi?id=132643
8269
8270        Reviewed by Carlos Garcia Campos.
8271
8272        Patch updates BlobDataItem params usage in ResourceHandleSoup.cpp
8273        to be inline with r168391.
8274
8275        * platform/network/soup/ResourceHandleSoup.cpp:
8276        (WebCore::blobIsOutOfDate): BlobDataItem class is updated in r168391.
8277        Corresponding parameter changes are done to resolve build error.
8278        (WebCore::addEncodedBlobItemToSoupMessageBody): BlobDataItem class is updated
8279        in r168391. Corresponding parameter changes are done to resolve build error.
8280
82812014-05-06  Dean Jackson  <dino@apple.com>
8282
8283        Clean up the difference between painting focus rings and adding PDF annotations
8284        https://bugs.webkit.org/show_bug.cgi?id=132638
8285
8286        Reviewed by Simon Fraser.
8287
8288        The code to add a PDF annotation when printing was called from
8289        drawFocusRing, which is quite confusing. With just little movement
8290        of code, we can detect an annotation and call addPDFURLRect in the
8291        paint phase, and drawFocusRing becomes something that only
8292        draws focus rings.
8293
8294        * rendering/RenderInline.cpp:
8295        (WebCore::RenderInline::paintOutline): Split calls to drawFocusRing
8296        and addPDFURLRect.
8297        * rendering/RenderObject.cpp:
8298        (WebCore::RenderObject::paintFocusRing): Get rid of call to PDF.
8299        (WebCore::RenderObject::addPDFURLRect): Change the signature so it
8300        can be called externally, and calculates the rectangle itself.
8301        (WebCore::RenderObject::paintOutline): Split the calls.
8302        * rendering/RenderObject.h:
8303
83042014-05-06  Rik Cabanier  <cabanier@adobe.com>
8305
8306        Calling createPattern with a broken image must throw an invalidstate error
8307        https://bugs.webkit.org/show_bug.cgi?id=132407
8308
8309        Reviewed by Darin Adler.
8310
8311        Updated createPattern so it throws an invalidState exception
8312        if you pass it an image that is in the broken state.
8313
8314        Tests:
8315        * canvas/philip/tests/2d.pattern.image.broken.html:
8316        * canvas/philip/tests/2d.pattern.image.incomplete.empty.html:
8317        * fast/canvas/canvas-empty-image-pattern.html:
8318
8319        * html/canvas/CanvasRenderingContext2D.cpp:
8320        (WebCore::CanvasRenderingContext2D::createPattern):
8321
83222014-05-06  Jer Noble  <jer.noble@apple.com>
8323
8324        [iOS][Mac] Display sleeps while playing <video> content.
8325        https://bugs.webkit.org/show_bug.cgi?id=132624
8326
8327        Reviewed by Darin Adler.
8328
8329        On iOS and Mac, create a DisplaySleepDisablerCocoa rather than an (no-op) DisplaySleepDisabler.
8330
8331        * platform/cocoa/DisplaySleepDisablerCocoa.cpp:
8332        (WebCore::DisplaySleepDisabler::create):
8333        * platform/cocoa/DisplaySleepDisablerCocoa.h:
8334
83352014-05-06  Dean Jackson  <dino@apple.com>
8336
8337        [Mac] Allow focus rings to redraw themselves if necessary
8338        https://bugs.webkit.org/show_bug.cgi?id=132593
8339
8340        Fix iOS build.
8341
8342        * platform/graphics/mac/GraphicsContextMac.mm:
8343        (WebCore::GraphicsContext::drawFocusRing): We no longer use the color parameter.
8344
83452014-05-06  Dean Jackson  <dino@apple.com>
8346
8347        [Mac] Allow focus rings to redraw themselves if necessary
8348        https://bugs.webkit.org/show_bug.cgi?id=132593
8349
8350        Reviewed by Simon Fraser.
8351
8352        Mac allows focus rings to change rendering over time. Expose this
8353        functionality to WebKit by having the rendering code detect that
8354        a focused element has asked to repaint itself, and also have
8355        the FocusController object remember how long it has been since
8356        an element was focused.
8357
8358        This patch removes WebCoreNSCellExtras, since a better version is
8359        available in WebKitSystemInterface, and it was going to be cumbersome
8360        to port the code from there into WebKit.
8361
8362        * WebCore.exp.in: Export _wkDrawFocusRingAtTime and _wkDrawCellFocusRingWithFrameAtTime.
8363        * WebCore.xcodeproj/project.pbxproj: Remove WebCoreNSCellExtras.
8364        * page/FocusController.cpp:
8365        (WebCore::FocusController::FocusController): Initialize the repaint timer.
8366        (WebCore::FocusController::~FocusController): Stop the repaint timer on deletion.
8367        (WebCore::FocusController::setFocusedElement): Keep track of the current time when focused.
8368        (WebCore::FocusController::focusedElementNeedsRepaint): Start the repaint timer.
8369        (WebCore::FocusController::focusRepaintTimerFired): Ask the focused element to repaint itself.
8370        (WebCore::FocusController::timeSinceFocusWasSet):
8371        * page/FocusController.h: Expose timeSinceFocusWasSet() and focusedElementNeedsRepaint(), as
8372        well as add the timer for repainting.
8373
8374        * platform/ControlStates.h: Add timeSinceControlWasFocused member variable, allowing the platform
8375        code such as Theme to obtain the value from FocusController.
8376        (WebCore::ControlStates::ControlStates):
8377        (WebCore::ControlStates::timeSinceControlWasFocused):
8378        (WebCore::ControlStates::setTimeSinceControlWasFocused):
8379
8380        * platform/graphics/GraphicsContext.h:
8381        (WebCore::GraphicsContext::drawFocusRing): New Mac-only method that uses timeOffset.
8382
8383        * platform/graphics/mac/GraphicsContextMac.mm:
8384        (WebCore::drawFocusRingToContext): No need to pass in color and radius - these are now
8385        ignored in WKDrawFocusRing. However, I didn't want to change the signature of the
8386        WKSI function.
8387        (WebCore::drawFocusRingToContextAtTime): Call into the new method WKDrawFocusRingAtTime.
8388        (WebCore::GraphicsContext::drawFocusRing): Color and radius no longer used.
8389
8390        * platform/mac/ThemeMac.mm:
8391        (WebCore::checkboxMargins): Update the margins since our focus ring can be a lot bigger.
8392        (WebCore::radioMargins): Ditto.
8393        (WebCore::paintToggleButton): Drawing a focus ring might trigger a repaint too.
8394        (WebCore::buttonMargins): Increase the margins.
8395        (WebCore::paintButton): If our focus ring wants to be drawn again, set the ControlStates flag.
8396
8397        * platform/mac/WebCoreNSCellExtras.h: Removed.
8398        * platform/mac/WebCoreNSCellExtras.m: Removed.
8399
8400        * platform/mac/WebCoreSystemInterface.h: Declare the new methods.
8401        * platform/mac/WebCoreSystemInterface.mm:
8402
8403        * rendering/RenderElement.cpp:
8404        (WebCore::RenderElement::initializeStyle): Expand the overflow rects by the maximum
8405        focus ring width. This might be different from the current outline size.
8406        (WebCore::RenderElement::setStyle): Ditto.
8407
8408        * rendering/RenderObject.cpp:
8409        (WebCore::RenderObject::paintFocusRing): If we're on Mac, use the new drawFocusRing method,
8410        which sets a parameter to true if the focused element needs a repaint.
8411
8412        * rendering/RenderTheme.cpp:
8413        (WebCore::RenderTheme::updateControlStatesForRenderer): Copy the value from FocusController
8414        so that the platform Theme code can use it.
8415
8416        * rendering/RenderTheme.h:
8417        (WebCore::RenderTheme::platformFocusRingMaxWidth): Add a way to get the maximum width
8418        of a focus ring for the platform. This is used to extend the overflow rects.
8419        * rendering/RenderThemeMac.h: Override the focus ring width.
8420        * rendering/RenderThemeMac.mm: On newer versions of OS X, we have a larger focus ring.
8421        (WebCore::RenderThemeMac::platformFocusRingMaxWidth):
8422        (WebCore::RenderThemeMac::paintMenuList): If a menu is focused, and needs a repaint, mark
8423        it as such.
8424
84252014-05-06  Jer Noble  <jer.noble@apple.com>
8426
8427        [iOS] Animate AVPlayerLayer into and out of full screen
8428        https://bugs.webkit.org/show_bug.cgi?id=132603
8429
8430        Reviewed by Simon Fraser.
8431
8432        Rather than synchronize animations across the WebProcess / UIProcess boundary, animate
8433        the AVPlayerLayer into place by first resizing the full screen layer to occupy the
8434        entire screen in the WebProcess, and use a sublayerTransform animation in the UIProcess
8435        to scale the AVPlayer from its initial screen location, as well as back to its final screen
8436        location.
8437
8438        * platform/graphics/GeometryUtilities.cpp:
8439        (WebCore::largestRectWithAspectRatioInsideRect): Added utility method.
8440        * platform/graphics/GeometryUtilities.h:
8441        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
8442        (-[WebAVVideoLayer init]): Added, initialize video gravity and enable child layer masking.
8443        (-[WebAVVideoLayer setBounds:]): Create a transform to scale the video area.
8444        (WebVideoFullscreenInterfaceAVKit::enterFullscreen): Block implicit animations during setup.
8445        (WebVideoFullscreenInterfaceAVKit::exitFullscreen): Reset the gravity to ResizeAspect
8446            if necessary.
8447
84482014-05-06  Alexey Proskuryakov  <ap@apple.com>
8449
8450        Make BlobDataItem use a refcounted object for files
8451        https://bugs.webkit.org/show_bug.cgi?id=132628
8452
8453        Reviewed by Anders Carlsson.
8454
8455        * CMakeLists.txt:
8456        * WebCore.vcxproj/WebCore.vcxproj:
8457        * WebCore.vcxproj/WebCore.vcxproj.filters:
8458        * WebCore.xcodeproj/project.pbxproj:
8459        Added BlobDataFileReference.{h|cpp}
8460
8461        * WebCore.exp.in: Removed unused exports.
8462
8463        * platform/network/BlobData.h:
8464        (WebCore::BlobDataItem::offset):
8465        (WebCore::BlobDataItem::BlobDataItem):
8466        Use a wrapper class for files, not a path. Changed to be more class-like accordingly.
8467
8468        * platform/network/BlobData.cpp:
8469        (WebCore::BlobData::appendData):
8470        (WebCore::BlobData::appendFile):
8471        (WebCore::BlobData::appendBlob): Deleted.
8472        (WebCore::BlobData::BlobData): Deleted.
8473        We never add blobs to BlobData, they are always resolved to data of file references.
8474        Lots of very confusing code to delete.
8475
8476        * platform/network/BlobDataFileReference.h: Added.
8477        * platform/network/BlobDataFileReference.cpp: Added.
8478        (WebCore::BlobDataFileReference::size):
8479        (WebCore::BlobDataFileReference::expectedModificationTime):
8480        (WebCore::BlobDataFileReference::computeFileSystemData):
8481        A unique reference to a file referenced by blob, to be preserved when you slice
8482        or combine blobs.
8483
8484        * platform/network/BlobRegistryImpl.cpp:
8485        (WebCore::BlobRegistryImpl::appendStorageItems):
8486        (WebCore::BlobRegistryImpl::registerFileBlobURL):
8487        (WebCore::BlobRegistryImpl::registerBlobURL):
8488        (WebCore::BlobRegistryImpl::blobSize):
8489        * platform/network/BlobResourceHandle.cpp:
8490        (WebCore::BlobResourceHandle::getSizeForNext):
8491        (WebCore::BlobResourceHandle::didGetSize):
8492        (WebCore::BlobResourceHandle::readDataSync):
8493        (WebCore::BlobResourceHandle::readFileSync):
8494        (WebCore::BlobResourceHandle::readDataAsync):
8495        (WebCore::BlobResourceHandle::readFileAsync):
8496        * platform/network/BlobResourceHandle.h:
8497        * platform/network/FormData.cpp:
8498        (WebCore::appendBlobResolved):
8499        Updated for BlobDataItem interface changes.
8500
85012014-05-06  Christophe Dumez  <ch.dumez@samsung.com>
8502
8503        [HTML] Default argument to HTMLTableRowElement.insertCell() should be -1
8504        https://bugs.webkit.org/show_bug.cgi?id=132615
8505
8506        Reviewed by Darin Adler.
8507
8508        HTMLTableRowElement.insertCell()'s argument default value should be -1, not
8509        0, as per the specification:
8510        http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-tr-element
8511
8512        The new behavior matches the one of Firefox 29 and IE11, and soon Blink:
8513        https://codereview.chromium.org/263323004/
8514
8515        Test: fast/dom/HTMLTableRowElement/insertCell-default-argument.html
8516
8517        * html/HTMLTableRowElement.h:
8518        * html/HTMLTableRowElement.idl:
8519
85202014-05-06  Oliver Hunt  <oliver@apple.com>
8521
8522        Fix build.
8523
8524        * WebCore.exp.in:
8525
85262014-05-06  Andreas Kling  <akling@apple.com>
8527
8528        Add missing line from r168384.
8529
8530        * dom/ContainerNode.h:
8531        (WebCore::ChildNodesLazySnapshot::~ChildNodesLazySnapshot):
8532
85332014-05-06  Oliver Hunt  <oliver@apple.com>
8534
8535        Can't make a booking at virginamerica.com
8536        https://bugs.webkit.org/show_bug.cgi?id=132626
8537
8538        Reviewed by Geoffrey Garen.
8539
8540        Test: fast/dom/assign-to-prototype-accessor-on-prototype-should-be-silent.html
8541
8542        We can't throw an exception when a site incorrectly attempts
8543        to use a dom property setter directly on the prototype as
8544        there are sites that do this as compatibility workarounds
8545        for old browsers. Instead we treat use of the setter on
8546        the prototype object in the same way we do getters, and just
8547        log a warning to the console.
8548
8549        * bindings/js/JSDOMBinding.cpp:
8550        (WebCore::reportDeprecatedSetterError):
8551        * bindings/js/JSDOMBinding.h:
8552        * bindings/scripts/CodeGeneratorJS.pm:
8553        (GenerateImplementation):
8554        * bindings/scripts/test/JS/JSTestInterface.cpp:
8555        (WebCore::setJSTestInterfaceImplementsStr2):
8556        (WebCore::setJSTestInterfaceImplementsStr3):
8557        (WebCore::setJSTestInterfaceImplementsNode):
8558        (WebCore::setJSTestInterfaceSupplementalStr2):
8559        (WebCore::setJSTestInterfaceSupplementalStr3):
8560        (WebCore::setJSTestInterfaceSupplementalNode):
8561        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
8562        (WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
8563        (WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
8564        (WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
8565        (WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):
8566        * bindings/scripts/test/JS/JSTestObj.cpp:
8567        (WebCore::setJSTestObjTestSubObjEnabledBySettingConstructor):
8568        (WebCore::setJSTestObjEnumAttr):
8569        (WebCore::setJSTestObjByteAttr):
8570        (WebCore::setJSTestObjOctetAttr):
8571        (WebCore::setJSTestObjShortAttr):
8572        (WebCore::setJSTestObjUnsignedShortAttr):
8573        (WebCore::setJSTestObjLongAttr):
8574        (WebCore::setJSTestObjLongLongAttr):
8575        (WebCore::setJSTestObjUnsignedLongLongAttr):
8576        (WebCore::setJSTestObjStringAttr):
8577        (WebCore::setJSTestObjTestObjAttr):
8578        (WebCore::setJSTestObjXMLObjAttr):
8579        (WebCore::setJSTestObjCreate):
8580        (WebCore::setJSTestObjReflectedStringAttr):
8581        (WebCore::setJSTestObjReflectedIntegralAttr):
8582        (WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
8583        (WebCore::setJSTestObjReflectedBooleanAttr):
8584        (WebCore::setJSTestObjReflectedURLAttr):
8585        (WebCore::setJSTestObjReflectedCustomIntegralAttr):
8586        (WebCore::setJSTestObjReflectedCustomBooleanAttr):
8587        (WebCore::setJSTestObjReflectedCustomURLAttr):
8588        (WebCore::setJSTestObjTypedArrayAttr):
8589        (WebCore::setJSTestObjAttrWithGetterException):
8590        (WebCore::setJSTestObjAttrWithSetterException):
8591        (WebCore::setJSTestObjStringAttrWithGetterException):
8592        (WebCore::setJSTestObjStringAttrWithSetterException):
8593        (WebCore::setJSTestObjCustomAttr):
8594        (WebCore::setJSTestObjWithScriptStateAttribute):
8595        (WebCore::setJSTestObjWithScriptExecutionContextAttribute):
8596        (WebCore::setJSTestObjWithScriptStateAttributeRaises):
8597        (WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
8598        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
8599        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
8600        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
8601        (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
8602        (WebCore::setJSTestObjConditionalAttr1):
8603        (WebCore::setJSTestObjConditionalAttr2):
8604        (WebCore::setJSTestObjConditionalAttr3):
8605        (WebCore::setJSTestObjConditionalAttr4Constructor):
8606        (WebCore::setJSTestObjConditionalAttr5Constructor):
8607        (WebCore::setJSTestObjConditionalAttr6Constructor):
8608        (WebCore::setJSTestObjAnyAttribute):
8609        (WebCore::setJSTestObjMutablePoint):
8610        (WebCore::setJSTestObjImmutablePoint):
8611        (WebCore::setJSTestObjStrawberry):
8612        (WebCore::setJSTestObjStrictFloat):
8613        (WebCore::setJSTestObjId):
8614        (WebCore::setJSTestObjReplaceableAttribute):
8615        (WebCore::setJSTestObjNullableLongSettableAttribute):
8616        (WebCore::setJSTestObjNullableStringValue):
8617        (WebCore::setJSTestObjAttributeWithReservedEnumType):
8618        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
8619        (WebCore::setJSTestSerializedScriptValueInterfaceValue):
8620        (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
8621        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
8622        (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
8623        (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
8624        (WebCore::setJSTestTypedefsAttrWithGetterException):
8625        (WebCore::setJSTestTypedefsAttrWithSetterException):
8626        (WebCore::setJSTestTypedefsStringAttrWithGetterException):
8627        (WebCore::setJSTestTypedefsStringAttrWithSetterException):
8628
86292014-05-06  Andreas Kling  <akling@apple.com>
8630
8631        ChildNodesLazySnapshot::m_childNodes needs two heap allocations.
8632        <https://webkit.org/b/132616>
8633
8634        This seems a bit silly, since ChildNodesLazySnapshot is always
8635        allocated on the stack.
8636
8637        Change it to be a bool + a Vector instead of using the nullity
8638        as a presence indicator. This way we also don't end up with an
8639        out-of-line ~OwnPtr for the Vector.
8640
8641        Reviewed by Geoff Garen.
8642
8643        * dom/ContainerNode.h:
8644        (WebCore::ChildNodesLazySnapshot::ChildNodesLazySnapshot):
8645        (WebCore::ChildNodesLazySnapshot::nextNode):
8646        (WebCore::ChildNodesLazySnapshot::takeSnapshot):
8647        (WebCore::ChildNodesLazySnapshot::hasSnapshot):
8648
86492014-05-06  Alexey Proskuryakov  <ap@apple.com>
8650
8651        Eliminate BlobStorageData
8652        https://bugs.webkit.org/show_bug.cgi?id=132617
8653
8654        Reviewed by Anders Carlsson.
8655
8656        * WebCore.vcxproj/WebCore.vcxproj:
8657        * WebCore.vcxproj/WebCore.vcxproj.filters:
8658        * WebCore.xcodeproj/project.pbxproj:
8659        * platform/network/BlobData.h:
8660        (WebCore::BlobData::create):
8661        (WebCore::BlobData::BlobData):
8662        * platform/network/BlobRegistryImpl.cpp:
8663        (WebCore::loadResourceSynchronously):
8664        (WebCore::BlobRegistryImpl::appendStorageItems):
8665        (WebCore::BlobRegistryImpl::registerFileBlobURL):
8666        (WebCore::BlobRegistryImpl::registerBlobURL):
8667        (WebCore::BlobRegistryImpl::registerBlobURLForSlice):
8668        (WebCore::BlobRegistryImpl::getBlobDataFromURL):
8669        (WebCore::BlobRegistryImpl::blobSize):
8670        * platform/network/BlobRegistryImpl.h:
8671        * platform/network/BlobResourceHandle.cpp:
8672        (WebCore::BlobResourceHandle::createAsync):
8673        (WebCore::BlobResourceHandle::loadResourceSynchronously):
8674        (WebCore::BlobResourceHandle::BlobResourceHandle):
8675        (WebCore::BlobResourceHandle::doStart):
8676        (WebCore::BlobResourceHandle::getSizeForNext):
8677        (WebCore::BlobResourceHandle::didGetSize):
8678        (WebCore::BlobResourceHandle::seek):
8679        (WebCore::BlobResourceHandle::readSync):
8680        (WebCore::BlobResourceHandle::readDataSync):
8681        (WebCore::BlobResourceHandle::readFileSync):
8682        (WebCore::BlobResourceHandle::readAsync):
8683        (WebCore::BlobResourceHandle::readDataAsync):
8684        (WebCore::BlobResourceHandle::readFileAsync):
8685        (WebCore::BlobResourceHandle::notifyResponseOnSuccess):
8686        * platform/network/BlobResourceHandle.h:
8687        * platform/network/BlobStorageData.h: Removed.
8688        * platform/network/FormData.cpp:
8689        (WebCore::appendBlobResolved):
8690        * platform/network/soup/ResourceHandleSoup.cpp:
8691        (WebCore::addEncodedBlobToSoupMessageBody):
8692
86932014-05-06  Simon Fraser  <simon.fraser@apple.com>
8694
8695        Fix the iOS build.
8696
8697        WebCore::Editor::replaceNodeFromPasteboard(WebCore::Node*, WTF::String const&) is Mac-only.
8698        Also sort the export file.
8699
8700        * WebCore.exp.in:
8701
87022014-05-06  David Hyatt  <hyatt@apple.com>
8703
8704        Begin Removal of Old Multi-Column Code.
8705        https://bugs.webkit.org/show_bug.cgi?id=132480
8706
8707        Reviewed by Andreas Kling.
8708
8709        * dom/Document.cpp:
8710        (WebCore::Document::regionBasedColumnsEnabled): Deleted.
8711        * dom/Document.h:
8712        * page/FrameView.cpp:
8713        (WebCore::updateLayerPositionFlags):
8714        * page/Settings.in:
8715        * rendering/LayoutState.cpp:
8716        (WebCore::LayoutState::LayoutState):
8717        (WebCore::LayoutState::clearPaginationInformation):
8718        (WebCore::LayoutState::addForcedColumnBreak): Deleted.
8719        * rendering/LayoutState.h:
8720        (WebCore::LayoutState::LayoutState):
8721        (WebCore::LayoutState::isPaginatingColumns): Deleted.
8722        * rendering/RenderBlock.cpp:
8723        (WebCore::RenderBlock::~RenderBlock):
8724        (WebCore::RenderBlock::addChildToContinuation):
8725        (WebCore::RenderBlock::addChild):
8726        (WebCore::RenderBlock::addChildIgnoringContinuation):
8727        (WebCore::RenderBlock::removeLeftoverAnonymousBlock):
8728        (WebCore::canMergeContiguousAnonymousBlocks):
8729        (WebCore::RenderBlock::removeChild):
8730        (WebCore::RenderBlock::recomputeLogicalWidth):
8731        (WebCore::RenderBlock::addOverflowFromChildren):
8732        (WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
8733        (WebCore::RenderBlock::simplifiedLayout):
8734        (WebCore::RenderBlock::layoutPositionedObjects):
8735        (WebCore::RenderBlock::paintObject):
8736        (WebCore::RenderBlock::selectionGaps):
8737        (WebCore::RenderBlock::nodeAtPoint):
8738        (WebCore::RenderBlock::offsetForContents):
8739        (WebCore::RenderBlock::computeIntrinsicLogicalWidths):
8740        (WebCore::RenderBlock::createAnonymousBoxWithSameTypeAs):
8741        (WebCore::RenderBlock::childBoxIsUnsplittableForFragmentation):
8742        (WebCore::RenderBlock::renderName):
8743        (WebCore::RenderBlock::addChildToAnonymousColumnBlocks): Deleted.
8744        (WebCore::RenderBlock::containingColumnsBlock): Deleted.
8745        (WebCore::RenderBlock::splitFlow): Deleted.
8746        (WebCore::RenderBlock::makeChildrenAnonymousColumnBlocks): Deleted.
8747        (WebCore::RenderBlock::columnsBlockForSpanningElement): Deleted.
8748        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): Deleted.
8749        (WebCore::RenderBlock::updateLogicalWidthAndColumnWidth): Deleted.
8750        (WebCore::RenderBlock::isTopLayoutOverflowAllowed): Deleted.
8751        (WebCore::RenderBlock::isLeftLayoutOverflowAllowed): Deleted.
8752        (WebCore::RenderBlock::paintColumnRules): Deleted.
8753        (WebCore::RenderBlock::initialBlockOffsetForPainting): Deleted.
8754        (WebCore::RenderBlock::blockDeltaForPaintingNextColumn): Deleted.
8755        (WebCore::RenderBlock::paintColumnContents): Deleted.
8756        (WebCore::ColumnRectIterator::ColumnRectIterator): Deleted.
8757        (WebCore::ColumnRectIterator::advance): Deleted.
8758        (WebCore::ColumnRectIterator::columnRect): Deleted.
8759        (WebCore::ColumnRectIterator::hasMore): Deleted.
8760        (WebCore::ColumnRectIterator::adjust): Deleted.
8761        (WebCore::ColumnRectIterator::update): Deleted.
8762        (WebCore::RenderBlock::hitTestColumns): Deleted.
8763        (WebCore::RenderBlock::adjustForColumnRect): Deleted.
8764        (WebCore::RenderBlock::availableLogicalWidth): Deleted.
8765        (WebCore::RenderBlock::columnGap): Deleted.
8766        (WebCore::RenderBlock::computeColumnCountAndWidth): Deleted.
8767        (WebCore::RenderBlock::requiresColumns): Deleted.
8768        (WebCore::RenderBlock::setComputedColumnCountAndWidth): Deleted.
8769        (WebCore::RenderBlock::updateColumnProgressionFromStyle): Deleted.
8770        (WebCore::RenderBlock::computedColumnWidth): Deleted.
8771        (WebCore::RenderBlock::computedColumnCount): Deleted.
8772        (WebCore::RenderBlock::columnInfo): Deleted.
8773        (WebCore::RenderBlock::columnCount): Deleted.
8774        (WebCore::RenderBlock::columnRectAt): Deleted.
8775        (WebCore::RenderBlock::adjustPointToColumnContents): Deleted.
8776        (WebCore::RenderBlock::adjustRectForColumns): Deleted.
8777        (WebCore::RenderBlock::flipForWritingModeIncludingColumns): Deleted.
8778        (WebCore::RenderBlock::adjustStartEdgeForWritingModeIncludingColumns): Deleted.
8779        (WebCore::RenderBlock::adjustForColumns): Deleted.
8780        (WebCore::RenderBlock::adjustIntrinsicLogicalWidthsForColumns): Deleted.
8781        (WebCore::RenderBlock::paginationUnit): Deleted.
8782        (WebCore::RenderBlock::createAnonymousColumnsWithParentRenderer): Deleted.
8783        (WebCore::RenderBlock::createAnonymousColumnSpanWithParentRenderer): Deleted.
8784        (WebCore::RenderBlock::computeLineGridPaginationOrigin): Deleted.
8785        * rendering/RenderBlock.h:
8786        (WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine):
8787        (WebCore::RenderBlock::createAnonymousBlock):
8788        (WebCore::RenderBlock::paintColumnRules):
8789        (WebCore::RenderBlock::createAnonymousColumnsBlock): Deleted.
8790        (WebCore::RenderBlock::createAnonymousColumnSpanBlock): Deleted.
8791        * rendering/RenderBlockFlow.cpp:
8792        (WebCore::RenderBlockFlow::adjustIntrinsicLogicalWidthsForColumns):
8793        (WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths):
8794        (WebCore::RenderBlockFlow::recomputeLogicalWidthAndColumnWidth):
8795        (WebCore::RenderBlockFlow::columnGap):
8796        (WebCore::RenderBlockFlow::computeColumnCountAndWidth):
8797        (WebCore::RenderBlockFlow::layoutBlock):
8798        (WebCore::inNormalFlow):
8799        (WebCore::RenderBlockFlow::applyBeforeBreak):
8800        (WebCore::RenderBlockFlow::applyAfterBreak):
8801        (WebCore::RenderBlockFlow::updateMinimumPageHeight):
8802        (WebCore::RenderBlockFlow::computeOverflow):
8803        (WebCore::RenderBlockFlow::addOverhangingFloats):
8804        (WebCore::RenderBlockFlow::hasOverhangingFloat):
8805        (WebCore::RenderBlockFlow::relayoutForPagination):
8806        (WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):
8807        (WebCore::RenderBlockFlow::requiresColumns):
8808        (WebCore::RenderBlockFlow::setComputedColumnCountAndWidth):
8809        (WebCore::RenderBlockFlow::updateColumnProgressionFromStyle):
8810        (WebCore::RenderBlockFlow::computedColumnWidth):
8811        (WebCore::RenderBlockFlow::computedColumnCount):
8812        * rendering/RenderBlockFlow.h:
8813        (WebCore::RenderBlockFlow::hasOverhangingFloats):
8814        * rendering/RenderBox.cpp:
8815        (WebCore::RenderBox::styleDidChange):
8816        (WebCore::RenderBox::offsetFromContainer):
8817        (WebCore::RenderBox::computeRectForRepaint):
8818        (WebCore::RenderBox::layoutOverflowRectForPropagation):
8819        * rendering/RenderBox.h:
8820        * rendering/RenderBoxModelObject.cpp:
8821        (WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
8822        (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
8823        * rendering/RenderBoxModelObject.h:
8824        (WebCore::RenderBoxModelObject::canHaveBoxInfoInRegion):
8825        * rendering/RenderFlexibleBox.cpp:
8826        (WebCore::RenderFlexibleBox::layoutBlock):
8827        * rendering/RenderFlowThread.h:
8828        * rendering/RenderGeometryMap.cpp:
8829        (WebCore::canMapBetweenRenderers):
8830        * rendering/RenderInline.cpp:
8831        (WebCore::RenderInline::clippedOverflowRectForRepaint):
8832        (WebCore::RenderInline::computeRectForRepaint):
8833        (WebCore::RenderInline::offsetFromContainer):
8834        (WebCore::RenderInline::mapLocalToContainer):
8835        * rendering/RenderLayer.cpp:
8836        (WebCore::RenderLayer::RenderLayer):
8837        (WebCore::RenderLayer::updateLayerPositions):
8838        (WebCore::RenderLayer::updatePagination):
8839        (WebCore::accumulateOffsetTowardsAncestor):
8840        (WebCore::RenderLayer::paintList):
8841        (WebCore::RenderLayer::hitTestList):
8842        (WebCore::checkContainingBlockChainForPagination): Deleted.
8843        (WebCore::RenderLayer::useRegionBasedColumns): Deleted.
8844        (WebCore::RenderLayer::paintPaginatedChildLayer): Deleted.
8845        (WebCore::RenderLayer::paintChildLayerIntoColumns): Deleted.
8846        (WebCore::RenderLayer::hitTestPaginatedChildLayer): Deleted.
8847        (WebCore::RenderLayer::hitTestChildLayerColumns): Deleted.
8848        * rendering/RenderLayer.h:
8849        * rendering/RenderMultiColumnFlowThread.cpp:
8850        (WebCore::RenderMultiColumnFlowThread::shouldCheckColumnBreaks):
8851        * rendering/RenderMultiColumnFlowThread.h:
8852        * rendering/RenderObject.cpp:
8853        (WebCore::RenderObject::computeRectForRepaint):
8854        (WebCore::RenderObject::mapLocalToContainer):
8855        (WebCore::RenderObject::pushMappingToContainer):
8856        (WebCore::RenderObject::offsetFromContainer):
8857        * rendering/RenderObject.h:
8858        (WebCore::RenderObject::isAnonymousBlock):
8859        (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
8860        (WebCore::RenderObject::hasColumns): Deleted.
8861        (WebCore::RenderObject::setHasColumns): Deleted.
8862        (WebCore::RenderObject::isAnonymousColumnsBlock): Deleted.
8863        (WebCore::RenderObject::isAnonymousColumnSpanBlock): Deleted.
8864        (WebCore::RenderObject::adjustForColumns): Deleted.
8865        (WebCore::RenderObject::offsetForColumns): Deleted.
8866        * rendering/RenderText.cpp:
8867        (WebCore::RenderText::selectionRectForRepaint):
8868        * rendering/RenderView.cpp:
8869        (WebCore::RenderView::availableLogicalHeight):
8870        (WebCore::RenderView::pageOrViewLogicalHeight):
8871        (WebCore::RenderView::unextendedBackgroundRect):
8872        (WebCore::RenderView::backgroundRect):
8873        (WebCore::RenderView::shouldDisableLayoutStateForSubtree):
8874        (WebCore::RenderView::pageNumberForBlockProgressionOffset):
8875        (WebCore::RenderView::pageCount):
8876        (WebCore::RenderView::paginationUnit): Deleted.
8877        * rendering/RenderView.h:
8878        (WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
8879        (WebCore::LayoutStateMaintainer::push):
8880        * rendering/SimpleLineLayout.cpp:
8881        (WebCore::SimpleLineLayout::canUseFor):
8882        * rendering/svg/RenderSVGText.cpp:
8883        (WebCore::RenderSVGText::layout):
8884        * style/StyleResolveForDocument.cpp:
8885        (WebCore::Style::resolveForDocument):
8886
88872014-05-06  Brady Eidson  <beidson@apple.com>
8888
8889        Don't select an image that is about to have its menu shown.
8890        <rdar://problem/16807845> and https://bugs.webkit.org/show_bug.cgi?id=132579
8891
8892        Reviewed by Tim Horton.
8893
8894        * WebCore.exp.in:
8895
8896        * editing/Editor.h:
8897        * editing/mac/EditorMac.mm:
8898        (WebCore::Editor::replaceNodeFromPasteboard): New method that first selects
8899          the Node and then immediately pastes over it. Since it’s synchronous the 
8900          selection never has a chance to paint.
8901
8902        * html/shadow/mac/ImageControlsButtonElementMac.cpp:
8903        (WebCore::ImageControlsButtonElementMac::defaultEventHandler): Don’t select the image.
8904
89052014-05-06  Eric Carlson  <eric.carlson@apple.com>
8906
8907        [Mac] make metadata cue attributes consistent
8908        https://bugs.webkit.org/show_bug.cgi?id=132610
8909
8910        Reviewed by Jer Noble.
8911
8912        No new tests, updated http/tests/media/track-in-band-hls-metadata.html.
8913
8914        * platform/mac/SerializedPlatformRepresentationMac.mm:
8915        (WebCore::jsValueWithAVMetadataItemInContext): Don't include keys @dataTypeNamespace
8916            or @pictureType, @dataType -> @type.
8917
89182014-05-06  Brady Eidson  <beidson@apple.com>
8919
8920        "Flash of content without image" when pasting a raw image from the pasteboard
8921        <rdar://problem/16826199> and https://bugs.webkit.org/show_bug.cgi?id=132612
8922
8923        Reviewed by Tim Horton.
8924
8925        Let an ArchiveResource be flagged as "should load immediately":
8926        * loader/archive/ArchiveResource.cpp:
8927        (WebCore::ArchiveResource::ArchiveResource):
8928        * loader/archive/ArchiveResource.h:
8929        (WebCore::ArchiveResource::setShouldLoadImmediately):
8930        (WebCore::ArchiveResource::shouldLoadImmediately):
8931
8932        Set that flag on the ArchiveResource for the image.
8933        Note we quite explicitly do this only in the "read a single image" from the pasteboard
8934        case, because we don't want to do this synchronous step for multiple images at once
8935        such as when pasting a WebArchive:
8936        * editing/mac/EditorMac.mm:
8937        (WebCore::Editor::WebContentReader::readImage):
8938
8939        When creating a new CachedResource, if there is an ArchiveResource that is set to
8940        load immediately, populate the CachedResource immediately instead of scheduling a load:
8941        * loader/cache/CachedResourceLoader.cpp:
8942        (WebCore::CachedResourceLoader::requestResource):
8943
89442014-05-06  Alex Christensen  <achristensen@webkit.org>
8945
8946        Unreviewed build fix for debug after r168367.
8947
8948        * platform/NotImplemented.cpp:
8949        Added include NotImplemented.h.
8950
89512014-05-06  Alex Christensen  <achristensen@webkit.org>
8952
8953        Removed unnecessary notImplemented.h includes.
8954        https://bugs.webkit.org/show_bug.cgi?id=132587
8955
8956        Reviewed by Anders Carlsson.
8957
8958        * Modules/webdatabase/Database.cpp:
8959        * accessibility/AccessibilityObject.cpp:
8960        * bindings/js/Dictionary.h:
8961        * bindings/js/SerializedScriptValue.cpp:
8962        * html/HTMLMediaSession.cpp:
8963        * html/ImageDocument.cpp:
8964        * html/parser/HTMLFormattingElementList.cpp:
8965        * loader/appcache/ApplicationCacheStorage.cpp:
8966        * page/mac/EventHandlerMac.mm:
8967        * platform/NotImplemented.cpp:
8968        * platform/audio/ios/MediaSessionManagerIOS.mm:
8969        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
8970        * platform/graphics/mac/GraphicsContext3DMac.mm:
8971        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
8972        * platform/ios/PlatformScreenIOS.mm:
8973        * platform/mac/PlatformScreenMac.mm:
8974        * platform/mac/WidgetMac.mm:
8975        * platform/mediastream/MediaStreamTrackPrivate.cpp:
8976        * platform/mediastream/mac/AVCaptureDeviceManager.mm:
8977        * platform/mediastream/mac/AVMediaCaptureSource.mm:
8978        * rendering/RenderGrid.cpp:
8979        * workers/SharedWorkerGlobalScope.cpp:
8980        * workers/WorkerGlobalScope.cpp:
8981        * workers/WorkerMessagingProxy.cpp:
8982        Removed notImplemented from list of includes.
8983
89842014-05-06  Enrica Casucci  <enrica@apple.com>
8985
8986        Unreviewed build fix after http://trac.webkit.org/changeset/168364
8987
8988        * rendering/RenderLineBreak.cpp:
8989
89902014-05-06  Christophe Dumez  <ch.dumez@samsung.com>
8991
8992        [HTML] Default argument to HTMLTableSectionElement.insertRow() should be -1
8993        https://bugs.webkit.org/show_bug.cgi?id=132570
8994
8995        Reviewed by Darin Adler.
8996
8997        HTMLTableSectionElement.insertRow()'s argument default value should be -1, not
8998        0, as per the specification:
8999        http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-tbody-element
9000
9001        The new behavior matches the one of Firefox 29 and IE11, and soon Blink:
9002        https://code.google.com/p/chromium/issues/detail?id=369803
9003
9004        Test: fast/dom/HTMLTableSectionElement/insertRow-default-argument.html
9005
9006        * html/HTMLTableSectionElement.h:
9007        * html/HTMLTableSectionElement.idl:
9008
90092014-05-05  Enrica Casucci  <enrica@apple.com>
9010
9011        REGRESSION(r155957): Selection rects are incorrect when the selection contains BR elements.
9012        https://bugs.webkit.org/show_bug.cgi?id=132596
9013        <rdar://problem/16692206>
9014
9015        Reviewed by Antti Koivisto.
9016
9017        This patch adds an implementation of collectSelectionRects to RenderLineBreak.
9018        It uses the same logic used by RenderText to compute and annotate the returned rect
9019        which is computed, like the caret rect, using information from the rootline box.
9020
9021        * rendering/RenderLineBreak.cpp:
9022        (WebCore::RenderLineBreak::collectSelectionRects):
9023        * rendering/RenderLineBreak.h:
9024
90252014-05-06  Andrei Bucur  <abucur@adobe.com>
9026
9027        [CSS Regions] Optimize the number of regions invalidations
9028        https://bugs.webkit.org/show_bug.cgi?id=132611
9029
9030        Reviewed by David Hyatt.
9031
9032        It is possible to invalidate the region chain of a flow thread
9033        during the layout of the region when its height is not final.
9034
9035        This patch places the check after the height of the region
9036        is determined, reducing the number of invalidations.
9037
9038        Tests: Less invalidations and repaints in the repaint tests for
9039        the flow threads.
9040
9041        * rendering/RenderBlockFlow.cpp:
9042        (WebCore::RenderBlockFlow::updateLogicalHeight):
9043        * rendering/RenderNamedFlowFragment.cpp:
9044        (WebCore::RenderNamedFlowFragment::layoutBlock):
9045        (WebCore::RenderNamedFlowFragment::invalidateRegionIfNeeded):
9046        * rendering/RenderNamedFlowFragment.h:
9047
90482014-05-03  Sam Weinig  <sam@webkit.org>
9049
9050        [Extended Background] Respect repeat-x/repeat-y when creating margin tiles
9051        https://bugs.webkit.org/show_bug.cgi?id=132534
9052
9053        Reviewed by Beth Dakin.
9054
9055        If the background image that is causing margin tiles only repeats in dimension only create
9056        the tiles in that dimension.
9057
9058        * page/FrameView.cpp:
9059        (WebCore::FrameView::updateExtendBackgroundIfNecessary):
9060        (WebCore::FrameView::calculateExtendedBackgroundMode):
9061        (WebCore::FrameView::updateTilesForExtendedBackgroundMode):
9062        (WebCore::FrameView::setBackgroundExtendsBeyondPage): Deleted.
9063        (WebCore::FrameView::needsExtendedBackgroundRectForPainting): Deleted.
9064        (WebCore::FrameView::setHasExtendedBackgroundRectForPainting): Deleted.
9065        * page/FrameView.h:
9066        * page/Settings.cpp:
9067        (WebCore::Settings::setBackgroundShouldExtendBeyondPage):
9068        * platform/graphics/TiledBacking.h:
9069        * platform/graphics/ca/mac/TileController.h:
9070        * platform/graphics/ca/mac/TileController.mm:
9071        (WebCore::TileController::hasHorizontalMargins):
9072        (WebCore::TileController::hasVerticalMargins):
9073        * rendering/RenderElement.cpp:
9074        (WebCore::RenderElement::styleWillChange):
9075        * rendering/RenderLayerBacking.cpp:
9076        (WebCore::RenderLayerBacking::setTiledBackingHasMargins):
9077        * rendering/RenderLayerBacking.h:
9078
90792014-05-06  Chris Fleizach  <cfleizach@apple.com>
9080
9081        AX: VoiceOver does not announce text changes for content editable regions in Safari
9082        https://bugs.webkit.org/show_bug.cgi?id=132577
9083
9084        Reviewed by Mario Sanchez Prada.
9085
9086        When text or children are changed inside of a contenteditable region, we need to 
9087        convert those actions into AXValueChange notifications.
9088
9089        Test: accessibility/content-editable-set-inner-text-generates-axvalue-notification.html
9090
9091        * accessibility/AccessibilityNodeObject.cpp:
9092        (WebCore::AccessibilityNodeObject::childrenChanged):
9093        (WebCore::AccessibilityNodeObject::hasContentEditableAttributeSet): Deleted.
9094        * accessibility/AccessibilityNodeObject.h:
9095        * accessibility/AccessibilityObject.cpp:
9096        (WebCore::AccessibilityObject::hasContentEditableAttributeSet):
9097        * accessibility/AccessibilityObject.h:
9098        * accessibility/AccessibilityRenderObject.cpp:
9099        (WebCore::AccessibilityRenderObject::textChanged):
9100
91012014-05-06  Dirk Schulze  <krit@webkit.org>
9102
9103        [SVG2] Share "on"- event attributes with HTMLElement
9104        https://bugs.webkit.org/show_bug.cgi?id=132604
9105
9106        Reviewed by Mihnea Ovidenie.
9107
9108        Share "on" event attribute parsing between SVGElement and HTMLElement.
9109
9110        Tests: fast/dom/script-tests/event-attribute-availability.js:
9111
9112        * html/HTMLElement.cpp:
9113        (WebCore::HTMLElement::populateEventNameForAttributeLocalNameMap):
9114        (WebCore::populateEventNameForAttributeLocalNameMap): Deleted.
9115        * html/HTMLElement.h: Make populateEventNameForAttributeLocalNameMap
9116            public for use in SVGElement.
9117        * svg/SVGElement.cpp: Use HTMLElement code to parse "on" event
9118            attributes.
9119        (WebCore::SVGElement::parseAttribute):
9120
91212014-05-05  Zan Dobersek  <zdobersek@igalia.com>
9122
9123        [Soup] Use std::unique_ptr<char[]> for the read buffer in SocketStreamHandle
9124        https://bugs.webkit.org/show_bug.cgi?id=132559
9125
9126        Reviewed by Carlos Garcia Campos.
9127
9128        Manage the read buffer array through a std::unique_ptr<char[]> object.
9129        This avoids handling with the raw pointer and also ensures that the memory
9130        allocated with the new[] operator is deleted with the delete[] operator,
9131        a problem exposed by the AddressSanitizer in WebSocket tests.
9132
9133        * platform/network/soup/SocketStreamHandle.h:
9134        * platform/network/soup/SocketStreamHandleSoup.cpp:
9135        (WebCore::SocketStreamHandle::SocketStreamHandle):
9136        (WebCore::SocketStreamHandle::connected):
9137        (WebCore::SocketStreamHandle::readBytes):
9138        (WebCore::SocketStreamHandle::platformClose):
9139
91402014-05-05  Dirk Schulze  <krit@webkit.org>
9141
9142        Adapt inline SVG sizing behavior to Firefox and Blink
9143        https://bugs.webkit.org/show_bug.cgi?id=132569
9144
9145        Reviewed by Dean Jackson.
9146
9147        This patch is ported from Blink CR 308992. Thanks to David Vest for helping
9148        with back porting his Blink patch. From the commit message:
9149
9150        "The basis of this change is to map explicit width and height
9151        attributes to CSS properties, essentially promoting them to
9152        presentation attributes. Note that implicit "100%" width and height
9153        are not mapped.
9154        
9155        This enables us to remove the concept of "percentage intrinsic size"
9156        and rely on normal CSS rules to resolve percentage values.
9157        
9158        The change has been approved by the SVG WG and the spec is being
9159        updated. Minutes here:
9160        
9161        http://www.w3.org/2014/04/07-svg-minutes.html#item03"
9162
9163        The new model was indeed approved by the SVG WG and is basically following
9164        the CSS 2.1 model for replaced elements.
9165
9166        With this patch WebKit, Firefox and Blink have the same behavior for inline SVG.
9167        This is the first successful approach to unify the sizing behavior of SVG
9168        across UAs.
9169
9170        Tests: svg/as-object/sizing/svg-in-object-placeholder-height-auto.html
9171               svg/as-object/sizing/svg-in-object-placeholder-height-fixed.html
9172               svg/as-object/sizing/svg-in-object-placeholder-height-percentage.html
9173               svg/in-html/sizing/svg-inline.html
9174
9175        * css/svg.css: Root SVG elements still need to be sized with height: 100% and
9176            width: 100%. This is necessary since width and height are presentation
9177            attributes now.
9178        (svg:root):
9179        * rendering/RenderBox.h:
9180        (WebCore::RenderBox::computeIntrinsicRatioInformation): Remove all special
9181            behavior for intrinsic and percentage based sizes in SVG. This simplifies and
9182            unifies the code a lot. Most of the logic that is used is in RenderBox and
9183            RenderReplaced now. RenderSVGRoot was cleaned up a lot and is much lighter. 
9184            And so it SVGSVGElement.
9185        * rendering/RenderBoxModelObject.cpp:
9186        (WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight):
9187        (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions):
9188        * rendering/RenderImage.cpp:
9189        (WebCore::RenderImage::computeIntrinsicRatioInformation):
9190        * rendering/RenderImage.h:
9191        * rendering/RenderReplaced.cpp:
9192        (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
9193        (WebCore::RenderReplaced::computeIntrinsicRatioInformation):
9194        (WebCore::RenderReplaced::computeReplacedLogicalWidth):
9195        (WebCore::RenderReplaced::computeReplacedLogicalHeight):
9196        (WebCore::RenderReplaced::computePreferredLogicalWidths):
9197        * rendering/RenderReplaced.h:
9198        * rendering/svg/RenderSVGRoot.cpp:
9199        (WebCore::RenderSVGRoot::computeIntrinsicRatioInformation):
9200        (WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
9201        (WebCore::RenderSVGRoot::computeReplacedLogicalHeight):
9202        (WebCore::RenderSVGRoot::hasRelativeDimensions):
9203        (WebCore::RenderSVGRoot::hasRelativeIntrinsicLogicalWidth): Deleted.
9204        (WebCore::RenderSVGRoot::hasRelativeLogicalHeight): Deleted.
9205        * rendering/svg/RenderSVGRoot.h:
9206        * svg/SVGElement.h:
9207        (WebCore::SVGElement::invalidateSVGPresentationAttributeStyle):
9208        * svg/SVGSVGElement.cpp:
9209        (WebCore::SVGSVGElement::isPresentationAttribute):
9210        (WebCore::SVGSVGElement::collectStyleForPresentationAttribute):
9211        (WebCore::SVGSVGElement::svgAttributeChanged):
9212        (WebCore::SVGSVGElement::currentViewportSize):
9213        (WebCore::SVGSVGElement::hasIntrinsicWidth):
9214        (WebCore::SVGSVGElement::hasIntrinsicHeight):
9215        (WebCore::SVGSVGElement::intrinsicWidth):
9216        (WebCore::SVGSVGElement::intrinsicHeight):
9217        (WebCore::SVGSVGElement::widthAttributeEstablishesViewport): Deleted.
9218        (WebCore::SVGSVGElement::heightAttributeEstablishesViewport): Deleted.
9219        * svg/SVGSVGElement.h:
9220        * svg/graphics/SVGImage.cpp:
9221        (WebCore::SVGImage::containerSize):
9222        * xml/XMLErrors.cpp: If an error occurs in a stand alone SVG file, we create
9223            an XHTML document with the error message and append the SVG file.
9224            This SVG file now follows the CSS sizing behavior as inline SVG.
9225            Therefore, we need to set width and height to 100% explicitly.
9226        (WebCore::XMLErrors::insertErrorMessageBlock):
9227
92282014-05-05  Ryuan Choi  <ryuan.choi@samsung.com>
9229
9230        [EFL] REGRESSION(167145): JavaScript media controls are broken
9231        https://bugs.webkit.org/show_bug.cgi?id=131573
9232
9233        Reviewed by Brent Fulgham.
9234
9235        * PlatformEfl.cmake: Add the localized strings file to the list of user agent scripts.
9236        * platform/efl/RenderThemeEfl.cpp:
9237        (WebCore::RenderThemeEfl::mediaControlsScript): Include the localized strings file in the script body.
9238
92392014-05-05  Jeremy Jones  <jeremyj@apple.com>
9240
9241        Implement scan backward and forward in video fullscreen.
9242        https://bugs.webkit.org/show_bug.cgi?id=132517
9243
9244        Reviewed by Simon Fraser.
9245
9246        Implement scanning forward and backward. This implements methods in 
9247        WebAVPlayerController and forwards them through WebVideoFullscreenModelMediaElement
9248        and on to HTMLMediaElement.
9249
9250        * WebCore.exp.in: necessary exports.
9251        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
9252        (-[WebAVPlayerController seekToTime:]):
9253        Use fastSeek in this case.
9254        (-[WebAVPlayerController canScanForward]): If you can play, you can scan.
9255        (+[WebAVPlayerController keyPathsForValuesAffectingCanScanForward]): ditto
9256        (-[WebAVPlayerController beginScanningForward:]): ditto
9257        (-[WebAVPlayerController endScanningForward:]): ditto
9258        (-[WebAVPlayerController canScanBackward]): If you can play, you can scan.
9259        (+[WebAVPlayerController keyPathsForValuesAffectingCanScanBackward]): ditto
9260        (-[WebAVPlayerController beginScanningBackward:]): ditto
9261        (-[WebAVPlayerController endScanningBackward:]): ditto
9262        (-[WebAVPlayerController canSeekToBeginning]):
9263        This looks at seekableRanges to determine if any seeking is possible.
9264        (+[WebAVPlayerController keyPathsForValuesAffectingCanSeekToBeginning]):
9265        depends on seekableRanges.
9266        (-[WebAVPlayerController seekToBeginning:]): seek to -ininity
9267        (-[WebAVPlayerController canSeekToEnd]):
9268        This looks at seekableRanges to determine if any seeking is possible.
9269        (+[WebAVPlayerController keyPathsForValuesAffectingCanSeekToEnd]):
9270        depends on seekableRanges.
9271        (-[WebAVPlayerController seekToEnd:]): seek to INFINITY.
9272        * platform/ios/WebVideoFullscreenModel.h:
9273        Add 4 new functions.
9274        * platform/ios/WebVideoFullscreenModelMediaElement.h:
9275        ditto
9276        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
9277        (WebVideoFullscreenModelMediaElement::fastSeek): forwards to HTMLMediaEelement
9278        (WebVideoFullscreenModelMediaElement::beginScanningForward): forwards to HTMLMediaEelement
9279        (WebVideoFullscreenModelMediaElement::beginScanningBackward): forwards to HTMLMediaEelement
9280        (WebVideoFullscreenModelMediaElement::endScanning): forwards to HTMLMediaEelement
9281
92822014-05-05  Benjamin Poulain  <bpoulain@apple.com>
9283
9284        [iOS][WK2] Prefetch DNS hostnames on tap highlight
9285        https://bugs.webkit.org/show_bug.cgi?id=132509
9286
9287        Reviewed by Alexey Proskuryakov.
9288
9289        * WebCore.exp.in:
9290        * dom/Element.cpp:
9291        * dom/Element.h:
9292        (WebCore::Element::absoluteLinkURL()):
9293
92942014-05-05  Simon Fraser  <simon.fraser@apple.com>
9295
9296        [iOS WK2] Flickery scrolling inside overflow-scrolling: touch
9297        https://bugs.webkit.org/show_bug.cgi?id=132591
9298        <rdar://problem/16760466>
9299
9300        Reviewed by Tim Horton.
9301
9302        Avoid triggering layer tree commits that touch the layer's boundsOrigin
9303        while the user is scrolling in the UI process.
9304        
9305        Fix the WKOverflowScrollViewDelegate to pass along an "inUserInteration"
9306        flag to the ScrollingTree to say that we're in the middle of a user interaction
9307        (and also to send a final non-interactive update). That gets passed along
9308        to the web process, and turned into "SyncScrollingLayerPosition" update.
9309        AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll() consults
9310        this, and uses it to set a flag on the ScrollableArea to say that the scroll
9311        is a user scroll.
9312        
9313        RenderLayerBacking then makes use of this (in existing code, shared with WK1)
9314        to avoid triggering layer bounds setting. Instead, it now just calls syncBoundsOrigin(),
9315        which updates the GraphicsLayer without touching platform layers. This is necessary
9316        so that GraphicsLayer geometry is up-to-date (used for tiled layer visibility
9317        computations).
9318        
9319        Finally, a hack in GraphicsLayerCA::computeVisibleRect() is conditionalized
9320        for WebKit1 by checking the type of platform layer.
9321
9322        * WebCore.exp.in:
9323        * page/scrolling/AsyncScrollingCoordinator.cpp:
9324        (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
9325        * page/scrolling/ScrollingTree.cpp:
9326        (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
9327        * page/scrolling/ScrollingTree.h:
9328        * platform/graphics/GraphicsLayer.h:
9329        (WebCore::GraphicsLayer::syncBoundsOrigin):
9330        * platform/graphics/ca/GraphicsLayerCA.cpp:
9331        (WebCore::GraphicsLayerCA::computeVisibleRect):
9332        * rendering/RenderLayerBacking.cpp:
9333        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
9334
93352014-05-05  Alexey Proskuryakov  <ap@apple.com>
9336
9337        Stop using BlobData on client side
9338        https://bugs.webkit.org/show_bug.cgi?id=132582
9339
9340        Reviewed by Sam Weinig.
9341
9342        Blob registration now uses either a single file path, or a vector of much simpler
9343        BlobPart objects, not an array with arbitrarily sliced blobs or files, which can't happen.
9344
9345        * Modules/websockets/WebSocket.cpp:(WebCore::WebSocket::didReceiveBinaryData):
9346        Use a new simpler Blob constructor.
9347
9348        * WebCore.xcodeproj/project.pbxproj: Added BlobPart, removed BlobRegistrationData.
9349
9350        * bindings/js/JSBlobCustom.cpp: (WebCore::JSBlobConstructor::constructJSBlob):
9351        Use Vector<BlobPart> instead of BlobData (1 line of code instead of 5).
9352
9353        * dom/DataTransfer.cpp: (WebCore::DataTransfer::hasFileOfType): Updated for
9354        File::contentTypeFromFilePathOrName rename.
9355
9356        * fileapi/Blob.cpp: (WebCore::Blob::Blob):
9357        * fileapi/Blob.h:
9358        (WebCore::Blob::create):
9359        (WebCore::Blob::deserialize):
9360        * fileapi/File.cpp:
9361        (WebCore::File::File):
9362        (WebCore::File::contentTypeFromFilePathOrName):
9363        (WebCore::createBlobDataForFileWithType): Deleted.
9364        (WebCore::createBlobDataForFile): Deleted.
9365        (WebCore::createBlobDataForFileWithName): Deleted.
9366        (WebCore::File::contentTypeFromFilePath): Deleted.
9367        * fileapi/File.h: (WebCore::File::deserialize): Deleted.
9368        Added and updated constructors to not use BlobData. Changed special case constructors
9369        to use name tags instead of non-enforced comments.
9370
9371        * fileapi/ThreadableBlobRegistry.h:
9372        * fileapi/ThreadableBlobRegistry.cpp:
9373        (WebCore::BlobRegistryContext::BlobRegistryContext): Updated with new data members
9374        that were split out of BlobData.
9375        (WebCore::ThreadableBlobRegistry::registerFileBlobURL): Added.
9376        (WebCore::ThreadableBlobRegistry::registerBlobURL): Updated to pass Content-Type
9377        explicitly, as it's no longer hidden in BlobData.
9378
9379        * fileapi/WebKitBlobBuilder.h:
9380        * fileapi/WebKitBlobBuilder.cpp:
9381        (WebCore::BlobBuilder::append):
9382        (WebCore::BlobBuilder::finalize):
9383        (WebCore::BlobBuilder::appendBytesData): Deleted.
9384        Updated to use BlobPart. There is no longer any need to special case Files,
9385        the registry takes care of that.
9386
9387        * platform/network/BlobData.h:
9388        * platform/network/BlobData.cpp:
9389        (WebCore::BlobDataItem::detachFromCurrentThread): Deleted.
9390        (WebCore::BlobData::detachFromCurrentThread): Deleted.
9391        BlobData will only be used on main thread by the registry.
9392
9393        * platform/network/BlobPart.h: Added. A new class to encapsulate a list of blobs
9394        that are combined into a new blob, as exposed to JS via Blob constructor.
9395
9396        * platform/network/BlobRegistry.h:
9397        * platform/network/BlobRegistryImpl.cpp:
9398        (WebCore::BlobRegistryImpl::registerFileBlobURL):
9399        (WebCore::BlobRegistryImpl::registerBlobURL):
9400        * platform/network/BlobRegistryImpl.h:
9401        Updated for the new registration methods. We no longer have arbitrary BlobDatas
9402        coming in.
9403
9404        * platform/network/FormData.cpp: Don't include BlobData for now (but really,
9405        BlobStorageData is the same thing, and they will be merged soon).
9406        Unfortunately, FormData is used by both client and registry side, and there is
9407        no clear delimitation at the time.
9408 
9409        * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseBlob): Use the new simpler
9410        way to create a Blob.
9411
94122014-05-05  Benjamin Poulain  <benjamin@webkit.org>
9413
9414        Clean up Image Document and tweak the layout and viewport
9415        https://bugs.webkit.org/show_bug.cgi?id=132552
9416
9417        Reviewed by Sam Weinig.
9418
9419        The #ifdef in every function was making quite a mess. A lot of that code does
9420        not make sense on iOS.
9421
9422        This patch make a clean split between mouse related stuff and iOS.
9423
9424        Also:
9425        -Change the viewport to be only width based, and avoid scaling in portrait.
9426        -Center the image horizontally in the view.
9427
9428        * html/ImageDocument.cpp:
9429        (WebCore::ImageDocument::ImageDocument):
9430        (WebCore::ImageDocument::createDocumentStructure):
9431        (WebCore::ImageDocument::imageUpdated):
9432        (WebCore::ImageDocument::scale):
9433        (WebCore::ImageDocument::resizeImageToFit):
9434        (WebCore::ImageDocument::imageFitsInWindow):
9435        (WebCore::ImageDocument::windowSizeChanged):
9436        (WebCore::ImageDocument::imageClicked):
9437        * html/ImageDocument.h:
9438
94392014-05-05  Beth Dakin  <bdakin@apple.com>
9440
9441        Need a delegate that informs the UI process when the page's pin state changes
9442        https://bugs.webkit.org/show_bug.cgi?id=132583
9443        -and corresponding-
9444        <rdar://problem/16806231>
9445
9446        Reviewed by Anders Carlsson.
9447
9448        We should default all of these pin-state value to true.
9449        * page/scrolling/ScrollingTree.cpp:
9450        (WebCore::ScrollingTree::ScrollingTree):
9451
94522014-05-05  Christophe Dumez  <ch.dumez@samsung.com>
9453
9454        Named element cache can become invalid during HTMLCollection::updateNamedElementCache()
9455        https://bugs.webkit.org/show_bug.cgi?id=132575
9456
9457        Reviewed by Ryosuke Niwa.
9458
9459        Make sure the named element cache object stays valid in
9460        HTMLCollection::updateNamedElementCache() while it is populating it.
9461
9462        The method was previously creating and setting the cache first, and then start
9463        traversing the DOM tree to populate it. As a consequence, hasNamedElementCache()
9464        would start returning true before the cache is actually populated.
9465        The issue is that finding matches in the DOM tree can cause
9466        HTMLCollection::invalidateCache() to be called under certain circumstances and
9467        thus the named element cache object can become invalid while
9468        updateNamedElementCache() is populating it.
9469
9470        To avoid the issue, this patch updates updateNamedElementCache() so that the
9471        named element cache map is set *after* traversing the DOM tree. This way,
9472        hasNamedElementCache() returns false while the cache is being populated and
9473        there is no chance of it being invalidated too early.
9474
9475        Test: fast/dom/htmlcollection-selectedOptions-namedItem-crash.html
9476
9477        * html/HTMLCollection.cpp:
9478        (WebCore::HTMLCollection::updateNamedElementCache):
9479        * html/HTMLCollection.h:
9480        (WebCore::HTMLCollection::setNameItemCache):
9481        (WebCore::HTMLCollection::createNameItemCache): Deleted.
9482        * html/HTMLFormControlsCollection.cpp:
9483        (WebCore::HTMLFormControlsCollection::updateNamedElementCache):
9484
94852014-05-05  Benjamin Poulain  <benjamin@webkit.org>
9486
9487        [iOS][WK2] Special case ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture() for image documents
9488        https://bugs.webkit.org/show_bug.cgi?id=132553
9489
9490        Reviewed by Tim Horton.
9491
9492        * WebCore.exp.in:
9493        * WebCore.xcodeproj/project.pbxproj:
9494        * html/ImageDocument.cpp:
9495        (WebCore::ImageDocument::imageElement):
9496        * html/ImageDocument.h:
9497
94982014-05-05  Ion Rosca  <rosca@adobe.com>
9499
9500        [CSS Blending] Webkit-blend-mode fails for accelerated parent with overflow:hidden
9501        https://bugs.webkit.org/show_bug.cgi?id=126160
9502
9503        When the isolating layer has overflow:hidden, it will create a descendant clipping layer
9504        (m_childContainmentLayer), which will restrict the bleding layer to reading the backdrop
9505        from the isolating layer.
9506        The solution in this patch is to forbid the isolating layer to create a descendant clipping
9507        layer and make all the children to get their own ancestor clipping layers instead.
9508
9509        Reviewed by Dean Jackson.
9510
9511        Tests: css3/compositing/blend-mode-accelerated-parent-overflow-hidden.html
9512               css3/compositing/blend-mode-clip-accelerated-blending-canvas.html
9513               css3/compositing/blend-mode-clip-accelerated-blending-child.html
9514               css3/compositing/blend-mode-clip-accelerated-blending-double.html
9515               css3/compositing/blend-mode-clip-accelerated-blending-with-siblings.html
9516               css3/compositing/blend-mode-clip-accelerated-transformed-blending.html
9517               css3/compositing/blend-mode-clip-rect-accelerated-blending.html
9518
9519        * rendering/RenderLayerBacking.cpp:
9520        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
9521        when the compositing ancestor isolates blending we take it into account for computing
9522        the clipping rect for this layer, because it was not allowed to create the descendant
9523        clipping layer. 
9524        * rendering/RenderLayerCompositor.cpp:
9525        (WebCore::RenderLayerCompositor::clippedByAncestor):
9526        when the compositing ancestor isolates blending we decide if a layer is clipped by ancestor
9527        by computing the clipping rect taking into account all the ancestors up to and including
9528        the compositing ancestor.
9529        (WebCore::RenderLayerCompositor::clipsCompositingDescendants):
9530        if a layer isolates blending, it is not allowed to create a descendant clipping layer.
9531
95322014-05-05  Dirk Schulze  <krit@webkit.org>
9533
9534        AX: tabindex support in SVG2
9535        https://bugs.webkit.org/show_bug.cgi?id=130212
9536
9537        Reviewed by Chris Fleizach.
9538
9539        The patch is mainly based on a patch for Blink by Erik Dahlström.
9540        https://src.chromium.org/viewvc/blink?revision=172964&view=revision
9541
9542        It adds support for tabindex to SVG by reusing the HTML code.
9543
9544        Spec: https://svgwg.org/svg2-draft/interact.html#sequential-focus-navigation-and-the-tabindex-attribute
9545        IDL attribute: https://svgwg.org/svg2-draft/types.html#__svg__SVGElement__tabIndex
9546
9547        Test: svg/custom/tabindex-order.html
9548
9549        * dom/Element.cpp:
9550        (WebCore::Element::setTabIndex): Moved from HTMLElement and shared with all elements.
9551        * dom/Element.h:
9552        * html/HTMLAnchorElement.cpp: Remove outdated comment.
9553        (WebCore::HTMLAnchorElement::canStartSelection):
9554        * html/HTMLElement.cpp:
9555        (WebCore::HTMLElement::setTabIndex): Deleted.
9556        * html/HTMLElement.h:
9557        * svg/SVGAElement.cpp: Uses the same logic as HTMLAnchorElement now.
9558        (WebCore::SVGAElement::tabIndex):
9559        (WebCore::SVGAElement::supportsFocus):
9560        (WebCore::SVGAElement::isMouseFocusable):
9561        (WebCore::SVGAElement::isKeyboardFocusable):
9562        (WebCore::SVGAElement::canStartSelection):
9563        * svg/SVGAElement.h:
9564        * svg/SVGCircleElement.h:
9565        * svg/SVGClipPathElement.h:
9566        * svg/SVGDefsElement.h:
9567        * svg/SVGElement.cpp:
9568        (WebCore::SVGElement::tabIndex): Return -1 if element can not be focused.
9569        (WebCore::SVGElement::parseAttribute):
9570        (WebCore::SVGElement::isMouseFocusable):
9571        (WebCore::SVGElement::isKeyboardFocusable): Deleted. Use function on Element.
9572        * svg/SVGElement.h:
9573        * svg/SVGElement.idl:
9574        * svg/SVGEllipseElement.h:
9575        * svg/SVGGElement.h:
9576        * svg/SVGGraphicsElement.h: Remove supportsFocus() from inheriting functions.
9577            Don't just return true. SVG elements should not be focusable by default.
9578            Instead check if tabindex was set explicitly.
9579        * svg/SVGImageElement.h:
9580        * svg/SVGLineElement.h:
9581        * svg/SVGPathElement.h:
9582        * svg/SVGPolyElement.h:
9583        * svg/SVGRectElement.h:
9584        * svg/SVGSVGElement.h:
9585        * svg/SVGSwitchElement.h:
9586        * svg/SVGSymbolElement.h:
9587        * svg/SVGTextElement.h:
9588
95892014-05-05  Jeremy Jones  <jeremyj@apple.com>
9590
9591        Implement beginScrubbing and endScrubbing for video fullscreen.
9592        https://bugs.webkit.org/show_bug.cgi?id=132520
9593
9594        Reviewed by Eric Carlson.
9595
9596        Plumb through beginScrubbing and endScrubbing from AVKit down to HTMLMediaElement.
9597        This keeps the playback state consistent while scrubbing and allows playback state
9598        to return to the original state when scrubbing is complete.
9599
9600        * WebCore.exp.in:
9601        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
9602        (-[WebAVPlayerController beginScrubbing:]):
9603        (-[WebAVPlayerController endScrubbing:]):
9604        * platform/ios/WebVideoFullscreenModel.h:
9605        * platform/ios/WebVideoFullscreenModelMediaElement.h:
9606        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
9607        (WebVideoFullscreenModelMediaElement::beginScrubbing):
9608        (WebVideoFullscreenModelMediaElement::endScrubbing):
9609
96102014-05-05  Tim Horton  <timothy_horton@apple.com>
9611
9612        More long hangs under IOSurfacePool::evict
9613        https://bugs.webkit.org/show_bug.cgi?id=132576
9614        <rdar://problem/16769469>
9615
9616        Reviewed by Simon Fraser.
9617
9618        * platform/graphics/cg/IOSurfacePool.cpp:
9619        (WebCore::IOSurfacePool::evict):
9620        If the pool is too full, we should be evicting in-use surfaces
9621        even if the size of the in-use surfaces has dropped below maximumInUseBytes,
9622        otherwise we can get stuck in an infinite loop with 0 cached surfaces
9623        and 1+ in-use surfaces.
9624
96252014-05-05  Radu Stavila  <stavila@adobe.com>
9626
9627        [CSS Regions] Remove regionLayoutUpdate event
9628        https://bugs.webkit.org/show_bug.cgi?id=132564
9629
9630        Reviewed by Simon Fraser.
9631
9632        The regionLayoutUpdate event was removed from the regions spec and was replaced by two other events: 
9633        regionOversetChange and regionFragmentChange.
9634
9635        No new tests needed, this patch removes a feature.
9636
9637        * dom/EventNames.h:
9638        * dom/WebKitNamedFlow.cpp:
9639        (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent): Deleted.
9640        * dom/WebKitNamedFlow.h:
9641        * inspector/InspectorCSSAgent.cpp:
9642        (WebCore::InspectorCSSAgent::resetNonPersistentData):
9643        (WebCore::InspectorCSSAgent::willRemoveNamedFlow):
9644        (WebCore::UpdateRegionLayoutTask::UpdateRegionLayoutTask): Deleted.
9645        (WebCore::UpdateRegionLayoutTask::scheduleFor): Deleted.
9646        (WebCore::UpdateRegionLayoutTask::unschedule): Deleted.
9647        (WebCore::UpdateRegionLayoutTask::reset): Deleted.
9648        (WebCore::UpdateRegionLayoutTask::timerFired): Deleted.
9649        (WebCore::InspectorCSSAgent::didUpdateRegionLayout): Deleted.
9650        (WebCore::InspectorCSSAgent::regionLayoutUpdated): Deleted.
9651        * inspector/InspectorCSSAgent.h:
9652        * inspector/InspectorInstrumentation.cpp:
9653        (WebCore::InspectorInstrumentation::didUpdateRegionLayoutImpl): Deleted.
9654        * inspector/InspectorInstrumentation.h:
9655        (WebCore::InspectorInstrumentation::didUpdateRegionLayout): Deleted.
9656        * inspector/protocol/CSS.json:
9657        * rendering/RenderNamedFlowFragment.cpp:
9658        (WebCore::RenderNamedFlowFragment::updateOversetState):
9659        * rendering/RenderNamedFlowThread.cpp:
9660        (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
9661        (WebCore::RenderNamedFlowThread::removeRegionFromThread):
9662        (WebCore::RenderNamedFlowThread::layout):
9663        (WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEventIfNeeded): Deleted.
9664        (WebCore::RenderNamedFlowThread::regionLayoutUpdateEventTimerFired): Deleted.
9665        * rendering/RenderNamedFlowThread.h:
9666
96672014-05-05  Rik Cabanier  <cabanier@adobe.com>
9668
9669        Enhance IDL compiler so it supports unrestricted float and double
9670        https://bugs.webkit.org/show_bug.cgi?id=132460
9671
9672        Reviewed by Dirk Schulze.
9673
9674        Updated IDL compiler so it supports unrestricted types.
9675        Also updated the IDL files so they use unrestricted float and
9676        double.
9677
9678        Tests:
9679        * canvas/philip/tests/2d.gradient.linear.nonfinite.html:
9680        * canvas/philip/tests/2d.gradient.object.invalidoffset.html:
9681        * canvas/philip/tests/2d.gradient.radial.nonfinite.html:
9682        * canvas/philip/tests/2d.imageData.get.nonfinite.html:
9683        * canvas/philip/tests/2d.imageData.put.nonfinite.html:
9684        * canvas/philip/tests/2d.missingargs.html:
9685        * fast/canvas/canvas-getImageData-invalid-expected.txt:
9686        * fast/canvas/canvas-putImageData-expected.txt:
9687        * fast/canvas/canvas-putImageData.js:
9688
9689        * Modules/battery/BatteryManager.idl:
9690        * Modules/gamepad/Gamepad.idl:
9691        * Modules/geolocation/Coordinates.idl:
9692        * Modules/mediasource/MediaSource.idl:
9693        * Modules/mediasource/SourceBuffer.idl:
9694        * Modules/mediasource/VideoPlaybackQuality.idl:
9695        * Modules/mediastream/MediaSourceStates.idl:
9696        * Modules/proximity/DeviceProximityEvent.idl:
9697        * Modules/speech/SpeechGrammar.idl:
9698        * Modules/speech/SpeechGrammarList.idl:
9699        * Modules/speech/SpeechRecognitionAlternative.idl:
9700        * Modules/speech/SpeechSynthesisEvent.idl:
9701        * Modules/speech/SpeechSynthesisUtterance.idl:
9702        * Modules/webaudio/AnalyserNode.idl:
9703        * Modules/webaudio/AudioBuffer.idl:
9704        * Modules/webaudio/AudioBufferSourceNode.idl:
9705        * Modules/webaudio/AudioContext.idl:
9706        * Modules/webaudio/AudioListener.idl:
9707        * Modules/webaudio/AudioParam.idl:
9708        * Modules/webaudio/AudioProcessingEvent.idl:
9709        * Modules/webaudio/OfflineAudioContext.idl:
9710        * Modules/webaudio/OscillatorNode.idl:
9711        * Modules/webaudio/PannerNode.idl:
9712        * bindings/scripts/CodeGenerator.pm:
9713        * bindings/scripts/CodeGeneratorGObject.pm:
9714        (GetGValueTypeName):
9715        (GetGlibTypeName):
9716        * bindings/scripts/CodeGeneratorJS.pm:
9717        (GenerateImplementation):
9718        (GenerateParametersCheck):
9719        (JSValueToNative):
9720        * bindings/scripts/CodeGeneratorObjC.pm:
9721        (GetObjCType):
9722        (GenerateHeader):
9723        * bindings/scripts/test/TestObj.idl:
9724        * bindings/scripts/test/TestTypedefs.idl:
9725        * css/CSSPrimitiveValue.idl:
9726        * css/WebKitCSSMatrix.idl:
9727        * dom/ClientRect.idl:
9728        * dom/DeviceMotionEvent.idl:
9729        * dom/DeviceOrientationEvent.idl:
9730        * dom/Document.idl:
9731        * dom/RequestAnimationFrameCallback.idl:
9732        * dom/Touch.idl:
9733        * dom/TransitionEvent.idl:
9734        * dom/WebKitAnimationEvent.idl:
9735        * dom/WebKitTransitionEvent.idl:
9736        * dom/WheelEvent.idl:
9737        * html/HTMLInputElement.idl:
9738        * html/HTMLMediaElement.idl:
9739        * html/HTMLMeterElement.idl:
9740        * html/HTMLProgressElement.idl:
9741        * html/MediaController.idl:
9742        * html/TextMetrics.idl:
9743        * html/TimeRanges.idl:
9744        * html/canvas/CanvasRenderingContext2D.idl:
9745        * html/canvas/WebGLRenderingContext.idl:
9746        * html/track/DataCue.idl:
9747        * html/track/TextTrackCue.idl:
9748        * html/track/VTTCue.idl:
9749        * html/track/VTTRegion.idl:
9750        * inspector/InspectorFrontendHost.idl:
9751        * inspector/ScriptProfile.idl:
9752        * inspector/ScriptProfileNode.idl:
9753        * page/DOMWindow.idl:
9754        * page/Performance.idl:
9755        * page/PerformanceEntry.idl:
9756        * page/PerformanceResourceTiming.idl:
9757        * page/SpeechInputResult.idl:
9758        * page/WebKitPoint.idl:
9759        * svg/SVGAngle.idl:
9760        * svg/SVGAnimatedNumber.idl:
9761        * svg/SVGAnimationElement.idl:
9762        * svg/SVGFEDropShadowElement.idl:
9763        * svg/SVGFEGaussianBlurElement.idl:
9764        * svg/SVGFEMorphologyElement.idl:
9765        * svg/SVGGlyphRefElement.idl:
9766        * svg/SVGLength.idl:
9767        * svg/SVGMatrix.idl:
9768        * svg/SVGNumber.idl:
9769        * svg/SVGPathElement.idl:
9770        * svg/SVGPathSegArcAbs.idl:
9771        * svg/SVGPathSegArcRel.idl:
9772        * svg/SVGPathSegCurvetoCubicAbs.idl:
9773        * svg/SVGPathSegCurvetoCubicRel.idl:
9774        * svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
9775        * svg/SVGPathSegCurvetoCubicSmoothRel.idl:
9776        * svg/SVGPathSegCurvetoQuadraticAbs.idl:
9777        * svg/SVGPathSegCurvetoQuadraticRel.idl:
9778        * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
9779        * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
9780        * svg/SVGPathSegLinetoAbs.idl:
9781        * svg/SVGPathSegLinetoHorizontalAbs.idl:
9782        * svg/SVGPathSegLinetoHorizontalRel.idl:
9783        * svg/SVGPathSegLinetoRel.idl:
9784        * svg/SVGPathSegLinetoVerticalAbs.idl:
9785        * svg/SVGPathSegLinetoVerticalRel.idl:
9786        * svg/SVGPathSegMovetoAbs.idl:
9787        * svg/SVGPathSegMovetoRel.idl:
9788        * svg/SVGPoint.idl:
9789        * svg/SVGRect.idl:
9790        * svg/SVGSVGElement.idl:
9791        * svg/SVGTextContentElement.idl:
9792        * svg/SVGTransform.idl:
9793        * svg/SVGZoomEvent.idl:
9794        * testing/InternalSettings.idl:
9795        * testing/Internals.idl:
9796        * xml/XPathResult.idl:
9797
97982014-05-05  Tim Horton  <timothy_horton@apple.com>
9799
9800        Use a layer delegate instead of web_disableAllActions wherever possible
9801        https://bugs.webkit.org/show_bug.cgi?id=132560
9802        <rdar://problem/16459284>
9803
9804        Reviewed by Simon Fraser.
9805
9806        * WebCore.exp.in:
9807        * WebCore.xcodeproj/project.pbxproj:
9808        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
9809        (PlatformCALayerMac::commonInit):
9810        If we own the platform layer, set its delegate to the action-disabling WebActionDisablingCALayerDelegate.
9811        If we don't, its actual owner might want to control the delegate, so continue using web_disableAllActions.
9812
9813        * platform/graphics/cocoa/WebActionDisablingCALayerDelegate.h: Added.
9814        * platform/graphics/cocoa/WebActionDisablingCALayerDelegate.mm: Added.
9815        (+[WebActionDisablingCALayerDelegate shared]):
9816        (-[WebActionDisablingCALayerDelegate actionForLayer:forKey:]):
9817        Add a class that can act as the delegate of a CALayer, and disables all actions.
9818
9819        * platform/graphics/cocoa/WebCoreCALayerExtras.h: Renamed from Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.h.
9820        * platform/graphics/cocoa/WebCoreCALayerExtras.mm: Renamed from Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.mm.
9821        (-[CALayer web_disableAllActions]):
9822        Move WebCoreCALayerExtras from mac/ to cocoa/.
9823
98242014-05-05  Martin Hock  <mhock@apple.com>
9825
9826        Session-aware plugin autostart data
9827        https://bugs.webkit.org/show_bug.cgi?id=131758
9828        <rdar://problem/15906540>
9829
9830        Reviewed by Alexey Proskuryakov.
9831
9832        * html/HTMLPlugInImageElement.cpp:
9833        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot):
9834        * page/PlugInClient.h:
9835
98362014-05-05  Radu Stavila  <stavila@adobe.com>
9837
9838        [CSS Regions] Elements with overflow:auto are not painted inside regions when following a float
9839        https://bugs.webkit.org/show_bug.cgi?id=131161
9840
9841        Reviewed by David Hyatt.
9842
9843        When a float-avoiding element (such as overflow:auto) is flowed into a flow thread after a float, its 
9844        logical left is not set on its frameRect or its layer's topLeft, but is instead kept in its RenderBoxRegionInfo
9845        structure. In some situation, this causes paint rejection to kick-in because intersecting the layer's rect
9846        (which DOESN'T contain the logical left from the region info object) with the computed background rect 
9847        (which contains the logical left from the region info object) results in an empty rect.
9848
9849        Test: fast/regions/overflow-auto-after-float.html
9850
9851        * rendering/RenderLayer.cpp:
9852        (WebCore::RenderLayer::calculateClipRects):
9853
98542014-05-05  Andrei Bucur  <abucur@adobe.com>
9855
9856        [CSSRegions] Slider displayed wrong in regions
9857        https://bugs.webkit.org/show_bug.cgi?id=132243
9858
9859        Reviewed by Mihnea Ovidenie.
9860
9861        In case a box didn't have a range, getRegionRangeForBox was searching for
9862        the top-most unplittable ancestor. This is not correct in every case. It's
9863        possible to have a box with range that has children without ranges (e.g. an
9864        absolutely positioned inline box with shadow descendants).
9865
9866        I've modified getRegionRangeForBox to search for the first ancestor that
9867        has a cached range and use that instead of looking for an unsplittable box.
9868        The range of the box is the region at the top of the box, clamped by the
9869        range of the ancestor. This will be correct all the time once all the layout
9870        systems are region range aware and are able to cache it.
9871
9872        Test: fast/regions/positioned-slider-in-regions.html
9873
9874        * rendering/RenderFlowThread.cpp:
9875        (WebCore::RenderFlowThread::hasRegionRangeForBox):
9876        (WebCore::RenderFlowThread::getRegionRangeForBox):
9877        * rendering/RenderFlowThread.h:
9878
98792014-05-05  Andrei Bucur  <abucur@adobe.com>
9880
9881        [CSS Regions] ASSERT when hovering over region
9882        https://bugs.webkit.org/show_bug.cgi?id=128809
9883
9884        Reviewed by Mihnea Ovidenie.
9885
9886        There's no point in hit-testing a box for a region if it's not contained inside
9887        that region.
9888
9889        Test: fast/regions/hit-test-box-non-containing-region.html
9890
9891        * rendering/RenderBox.cpp:
9892        (WebCore::RenderBox::nodeAtPoint):
9893
98942014-05-04  Andreas Kling  <akling@apple.com>
9895
9896        Optimize JSRopeString for resolving directly to AtomicString.
9897        <https://webkit.org/b/132548>
9898
9899        Add two bindings generator attributes for parameters to influence
9900        the way that JS rope strings are resolved:
9901
9902        - AtomicString
9903
9904            Generates code that avoids allocating a new StringImpl if there
9905            is already an existing AtomicString we can reuse.
9906
9907        - RequiresExistingAtomicString
9908
9909            Generates code that fails immediately if the provided string
9910            is not found in the AtomicString table. This is now used for
9911            document.getElementById(), and works because any existing ID
9912            is guaranteed to be in the table.
9913
9914        Reviewed by Filip Pizlo.
9915
9916        * bindings/scripts/CodeGeneratorJS.pm:
9917        (GenerateParametersCheck):
9918        (JSValueToNative):
9919        * bindings/scripts/IDLAttributes.txt:
9920        * dom/Document.idl:
9921
99222014-05-04  Simon Fraser  <simon.fraser@apple.com>
9923
9924        [iOS WK2] Compositing layers in iframes are misplaced
9925        https://bugs.webkit.org/show_bug.cgi?id=132554
9926        <rdar://problem/16203027>
9927
9928        Reviewed by Benjamin Poulain.
9929
9930        Have requiresScrollLayer() only consider frameView.delegatesScrolling()
9931        for the main frame, so that iframes get scroll layers (even though they
9932        will never scroll), so that the rest of geometry code works as on other
9933        platforms.
9934
9935        * rendering/RenderLayerCompositor.cpp:
9936        (WebCore::RenderLayerCompositor::requiresScrollLayer):
9937
99382014-05-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
9939
9940        Use std::unique_ptr in m_taskTimer of Notification class
9941        https://bugs.webkit.org/show_bug.cgi?id=132544
9942
9943        Reviewed by Andreas Kling.
9944
9945        No new tests, no behavior change.
9946
9947        * Modules/notifications/Notification.cpp:
9948        (WebCore::Notification::Notification):
9949        * Modules/notifications/Notification.h: Use std::unique_ptr instead of OwnPtr.
9950
99512014-05-04  Tim Horton  <timothy_horton@apple.com>
9952
9953        Long hangs under IOSurfacePool::evict
9954        https://bugs.webkit.org/show_bug.cgi?id=132549
9955        <rdar://problem/16769469>
9956
9957        Reviewed by Simon Fraser.
9958
9959        * platform/graphics/cg/IOSurfacePool.cpp:
9960        (WebCore::IOSurfacePool::willAddSurface):
9961        Run eviction before adding the new surface to m_bytesCached/m_inUseBytesCached.
9962        We use the additionalSize parameter to make space for the new surface.
9963
9964        (WebCore::IOSurfacePool::evict):
9965        If we want to free up the entire pool, we can do so by throwing away everything.
9966        This also avoids an underflow if additionalSize is larger than the maximum pool size.
9967
99682014-05-04  Pratik Solanki  <psolanki@apple.com>
9969
9970        Shortcircuit shouldUseCredentialStorage callback
9971        https://bugs.webkit.org/show_bug.cgi?id=132308
9972        <rdar://problem/16806708>
9973
9974        Reviewed by Alexey Proskuryakov.
9975
9976        If we are going to return true from the shouldUseCredentialStorage callback then we don't
9977        really need to have CFNetwork/Foundation call us. We can just disable the callback and
9978        CFNetwork will assume true. Add a separate subclass that implements this callback when we
9979        need to return false. We can also eliminate the corresponding async callbacks. This avoids
9980        pingponging between dispatch queue and main thread in the common case.
9981
9982        No new tests because no change in functionality.
9983
9984        * WebCore.exp.in:
9985        * platform/network/ResourceHandle.cpp:
9986        * platform/network/ResourceHandle.h:
9987        * platform/network/ResourceHandleClient.cpp:
9988        * platform/network/ResourceHandleClient.h:
9989        * platform/network/cf/ResourceHandleCFNet.cpp:
9990        (WebCore::ResourceHandle::createCFURLConnection):
9991        (WebCore::ResourceHandle::shouldUseCredentialStorage):
9992        * platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
9993        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
9994        (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::shouldUseCredentialStorage):
9995        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
9996        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
9997        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
9998        * platform/network/mac/ResourceHandleMac.mm:
9999        (WebCore::ResourceHandle::start):
10000        (WebCore::ResourceHandle::makeDelegate):
10001        (WebCore::ResourceHandle::delegate):
10002        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
10003        (WebCore::ResourceHandle::shouldUseCredentialStorage):
10004        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h:
10005        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
10006        (-[WebCoreResourceHandleWithCredentialStorageAsOperationQueueDelegate connectionShouldUseCredentialStorage:]):
10007        * platform/network/soup/ResourceHandleSoup.cpp:
10008
100092014-05-04  Brent Fulgham  <bfulgham@apple.com>
10010
10011        [iOS] deviceScaleFactor is being double-applied when rendering captions in full screen mode 
10012        https://bugs.webkit.org/show_bug.cgi?id=132481
10013        <rdar://problem/16507482>
10014
10015        Reviewed by Jer Noble.
10016
10017        Add a new 'syncTextTrackBounds' method (and relaying functions) to keep the text track container in sync
10018        with changes to the video player's display layer.
10019
10020        * html/HTMLMediaElement.cpp:
10021        (WebCore::HTMLMediaElement::syncTextTrackBounds: Added.
10022        * html/HTMLMediaElement.h:
10023        * html/shadow/MediaControlElements.cpp:
10024        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Don't set the platform scale factor here. It is already
10025        being accounted for in the createTextTrackRepresentationImage method.
10026        (WebCore::MediaControlTextTrackContainerElement::updateSizes): Synchronize the text track representation
10027        with any new video layer changes.
10028        * platform/graphics/MediaPlayer.cpp:
10029        (WebCore::MediaPlayer::syncTextTrackBounds): Added.
10030        * platform/graphics/MediaPlayer.h:
10031        * platform/graphics/MediaPlayerPrivate.h:
10032        (WebCore::MediaPlayerPrivateInterface::syncTextTrackBounds): Added.
10033        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
10034        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
10035        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer): Use new sync function.
10036        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame): Ditto.
10037        (WebCore::MediaPlayerPrivateAVFoundationObjC::syncTextTrackBounds): Added. Keep the text track layer size in sync with
10038        the current video layer size. This may change during animations, rotations, etc.
10039        (WebCore::MediaPlayerPrivateAVFoundationObjC::setTextTrackRepresentation): Use new sync function.
10040
100412014-05-04  Beth Dakin  <bdakin@apple.com>
10042
10043        Top content inset: Margin tiles should not display in the inset area when pinned 
10044        to the top of the page
10045        https://bugs.webkit.org/show_bug.cgi?id=132535
10046        -and corresponding-
10047        <rdar://problem/16613039>
10048
10049        Reviewed by Simon Fraser.
10050
10051        Prior to this change, topContentInset was implemented by positioning 
10052        RenderLayerCompositor’s m_rootContentLayer based on the inset value. In order to 
10053        ensure that no content is displayed in the inset area when we are pinned to the 
10054        top of the page, we’ll have to take a different approach. In this patch, when you 
10055        are pinned to the top of the page, the m_rootContentLayer is positioned at (0,0), 
10056        much like it would be without an inset, but the m_clip layer IS positioned at (0, 
10057        topContentInset). Then for all y-scroll values between 0 and topContentInset, the 
10058        positions of the clip layer and the contents layer are adjusted so that the clip 
10059        layer approaches a position of (0,0), and the root layer approaches a position of 
10060        (0, topContentInset). This makes sure that any content above the top the document 
10061        is aways clipped out of the inset area.
10062
10063        In order to achieve this, the scrolling thread needs to know about the 
10064        topContentInset, the clip layer, and the root contents layer.
10065
10066        AsyncScrollingCoordinator::updateScrollingNode() now takes an additional parameter 
10067        for the clip layer. Also export the topContentInset symbol for UI-side 
10068        compositing.
10069        * WebCore.exp.in:
10070
10071        Here is the new computation. Implemented in one spot that can be called from the 
10072        scrolling thread, AsyncScrollingCoordinator and RenderLayerCompositor.
10073        * page/FrameView.cpp:
10074        (WebCore::FrameView::yPositionForInsetClipLayer):
10075        (WebCore::FrameView::yPositionForRootContentLayer):
10076        * page/FrameView.h:
10077
10078        Set the topContentInset, the insetClipLayer, and the scrolledContentsLayer when 
10079        appropriate.
10080        * page/scrolling/AsyncScrollingCoordinator.cpp:
10081        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
10082        (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
10083
10084        Set or sync the positions for the inset layer and the contents layer.
10085        (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
10086        (WebCore::AsyncScrollingCoordinator::updateScrollingNode):
10087        * page/scrolling/AsyncScrollingCoordinator.h:
10088
10089        Convenience functions for getting the clipLayer() and the rootContentLayer() from 
10090        the RenderLayerCompositor.
10091        * page/scrolling/ScrollingCoordinator.cpp:
10092        (WebCore::ScrollingCoordinator::insetClipLayerForFrameView):
10093        (WebCore::ScrollingCoordinator::rootContentLayerForFrameView):
10094        * page/scrolling/ScrollingCoordinator.h:
10095        (WebCore::ScrollingCoordinator::updateScrollingNode):
10096
10097        ScrollingStateScrolling nodes have two new members now. m_insetClipLayer and 
10098        m_topContentInset. We can use m_scrolledContentsLayer for the rootContentsLayer 
10099        since previously that member was not used for FrameViews; it was only used for 
10100        accelerated overflow:scroll nodes.
10101        * page/scrolling/ScrollingStateScrollingNode.cpp:
10102        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
10103        (WebCore::ScrollingStateScrollingNode::setTopContentInset):
10104        (WebCore::ScrollingStateScrollingNode::setInsetClipLayer):
10105        * page/scrolling/ScrollingStateScrollingNode.h:
10106
10107        Similarly, ScrollingTreeScrollingNode has two new members for m_topContentInset 
10108        and m_clipLayer.
10109        * page/scrolling/ScrollingTreeScrollingNode.cpp:
10110        (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
10111        (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
10112        * page/scrolling/ScrollingTreeScrollingNode.h:
10113        (WebCore::ScrollingTreeScrollingNode::topContentInset):
10114        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
10115        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
10116        (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
10117
10118        Compute positions for the two new layers.
10119        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
10120
10121        Now use the static FrameView functions to compute the positions for these layers.
10122        * rendering/RenderLayerCompositor.cpp:
10123        (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
10124        (WebCore::RenderLayerCompositor::positionForClipLayer):
10125        (WebCore::RenderLayerCompositor::clipLayer):
10126        (WebCore::RenderLayerCompositor::rootContentLayer):
10127        (WebCore::RenderLayerCompositor::updateRootLayerPosition):
10128        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
10129        (WebCore::RenderLayerCompositor::ensureRootLayer):
10130        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
10131        * rendering/RenderLayerCompositor.h:
10132
101332014-05-04  Benjamin Poulain  <benjamin@webkit.org>
10134
10135        Clear the Selector Query caches on memory pressure
10136        https://bugs.webkit.org/show_bug.cgi?id=132545
10137
10138        Reviewed by Andreas Kling.
10139
10140        The Selector Query Cache can use quite a bit of memory if many
10141        complex selectors are compiled. This patch makes sure the cache gets
10142        cleared on memory pressure.
10143
10144        * dom/Document.cpp:
10145        (WebCore::Document::clearSelectorQueryCache):
10146        (WebCore::Document::setCompatibilityMode):
10147        (WebCore::Document::updateBaseURL):
10148        * dom/Document.h:
10149        * dom/SelectorQuery.cpp:
10150        (WebCore::SelectorQueryCache::invalidate): Deleted.
10151        * dom/SelectorQuery.h:
10152        * platform/MemoryPressureHandler.cpp:
10153        (WebCore::MemoryPressureHandler::releaseMemory):
10154
101552014-05-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
10156
10157        Convert OwnPtr to std::unique_ptr in CDM
10158        https://bugs.webkit.org/show_bug.cgi?id=132467
10159
10160        Reviewed by Andreas Kling.
10161
10162        Use std::unique_ptr in CDM class.
10163
10164        No new tests, no behavior change.
10165
10166        * Modules/encryptedmedia/CDM.cpp:
10167        (WebCore::CDM::create):
10168        (WebCore::CDM::CDM):
10169        * Modules/encryptedmedia/CDM.h:
10170        * Modules/encryptedmedia/CDMPrivateMediaPlayer.h:
10171        (WebCore::CDMPrivateMediaPlayer::CDMPrivateMediaPlayer):
10172        (WebCore::CDMPrivateMediaPlayer::create):
10173        * Modules/encryptedmedia/MediaKeys.cpp:
10174        (WebCore::MediaKeys::create):
10175        (WebCore::MediaKeys::MediaKeys):
10176        * Modules/encryptedmedia/MediaKeys.h:
10177        * WebCore.exp.in:
10178
101792014-05-03  Commit Queue  <commit-queue@webkit.org>
10180
10181        Unreviewed, rolling out r168232.
10182        https://bugs.webkit.org/show_bug.cgi?id=132543
10183
10184        broke ~15 tests on WK2 debug (Requested by kling on #webkit).
10185
10186        Reverted changeset:
10187
10188        "Shortcircuit shouldUseCredentialStorage callback"
10189        https://bugs.webkit.org/show_bug.cgi?id=132308
10190        http://trac.webkit.org/changeset/168232
10191
101922014-05-03  Andreas Kling  <akling@apple.com>
10193
10194        RenderSVGResourcePattern should deal in RenderElement&.
10195        <https://webkit.org/b/132536>
10196
10197        Tweak buildPattern() and buildTileImageTransform() to take RenderElement&
10198        instead of RenderObject* since we know that these functions will always
10199        be called with non-null RenderElement subclasses.
10200
10201        Reviewed by Sam Weinig.
10202
10203        * rendering/svg/RenderSVGResourceContainer.cpp:
10204        (WebCore::RenderSVGResourceContainer::shouldTransformOnTextPainting):
10205        * rendering/svg/RenderSVGResourceContainer.h:
10206        * rendering/svg/RenderSVGResourceGradient.cpp:
10207        (WebCore::RenderSVGResourceGradient::applyResource):
10208        * rendering/svg/RenderSVGResourcePattern.cpp:
10209        (WebCore::RenderSVGResourcePattern::buildPattern):
10210        (WebCore::RenderSVGResourcePattern::applyResource):
10211        (WebCore::RenderSVGResourcePattern::buildTileImageTransform):
10212        * rendering/svg/RenderSVGResourcePattern.h:
10213
102142014-05-03  Yusuke Suzuki  <utatane.tea@gmail.com>
10215
10216        CSS JIT: optimize direct / indirect adjacent's traversal backtracking
10217        https://bugs.webkit.org/show_bug.cgi?id=132319
10218
10219        Reviewed by Benjamin Poulain.
10220
10221        Since adjacent backtracking stack reference is pre-allocated
10222        in prologue in http://trac.webkit.org/changeset/166834,
10223        clearing stack phase is not needed. So we can drop
10224        JumpToClearAdjacentTail from backtracking action and simplify
10225        backtracking handling.
10226        And optimize direct / indirect adjacent's traversal backtracking by
10227        using appropriate backtracking height.
10228
10229        When solving adjacent traversal backtracking action,
10230        1) When there's no descendant relation on the right, traversal
10231        failure becomes global failure.
10232        2) When `tagNameMatchedBacktrackingStartHeightFromDescendant` ==
10233        `heightFromDescendant` + 1, the descendant backtracking starts with
10234        the parent of the current element. So we can use the current element
10235        and the backtracking action is JumpToDescendantTreeWalkerEntryPoint.
10236        3) Otherwise, currently we take the conservative approach,
10237        JumpToDescendantTail.
10238
10239        NOTE:
10240        And if `hasDescendantRelationOnTheRight` is true and there's no child
10241        fragment on the right, the backtracking element register is not
10242        effective. So we should ensure that fragment doesn't use the
10243        backtracking element register. Such a fragment fulfills the following
10244        conditions. 1. tagNameMatchedBacktrackingStartHeightFromDescendant is
10245        always 1 (tagNames.size(), that contains only descendant fragment) 2.
10246        heightFromDescendant is always 0 (-- See
10247        computeBacktrackingHeightFromDescendant implementation) Therefore such
10248        a fragment's action always becomes
10249        JumpToDescendantTreeWalkerEntryPoint. So we can ensure that the
10250        backtracking element register is not used.
10251
10252        Test: fast/selectors/backtracking-adjacent.html
10253
10254        * cssjit/SelectorCompiler.cpp:
10255        (WebCore::SelectorCompiler::solveDescendantBacktrackingActionForChild):
10256        (WebCore::SelectorCompiler::solveAdjacentTraversalBacktrackingAction):
10257        (WebCore::SelectorCompiler::solveBacktrackingAction):
10258        (WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
10259        (WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures):
10260        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAdjacentBacktrackingTail):
10261        (WebCore::SelectorCompiler::isAfterChildRelation): Deleted.
10262
102632014-05-03  Andreas Kling  <akling@apple.com>
10264
10265        Clear the JSString cache when under memory pressure.
10266        <https://webkit.org/b/132539>
10267
10268        The WeakGCMap used for fast mapping from StringImpl* to JSString*
10269        can actually get pretty big, and if we find ourselves under memory
10270        pressure, it's entirely inessential.
10271
10272        1.1 MB progression on Membuster3.
10273
10274        Reviewed by Sam Weinig.
10275
10276        * platform/MemoryPressureHandler.cpp:
10277        (WebCore::MemoryPressureHandler::releaseMemory):
10278
102792014-05-03  Benjamin Poulain  <benjamin@webkit.org>
10280
10281        [iOS][WK2] Support disabling speculative tiling
10282        https://bugs.webkit.org/show_bug.cgi?id=132512
10283
10284        Reviewed by Tim Horton.
10285
10286        Move ScrollView::setScrollVelocity() and ScrollView::computeCoverageRect() to FrameView.
10287        When speculative tiling is disabled, return an unmodified exposed rect.
10288
10289        Time/velocity adjusments are completely unnecessary at the moment since speculative tiling
10290        is enabled as soon as the view scrolls.
10291
10292        * WebCore.exp.in:
10293        * page/FrameView.cpp:
10294        (WebCore::FrameView::setScrollVelocity):
10295        (WebCore::FrameView::computeCoverageRect):
10296        * page/FrameView.h:
10297        * platform/ScrollView.h:
10298        * platform/ios/ScrollViewIOS.mm:
10299        (WebCore::ScrollView::setScrollVelocity): Deleted.
10300        (WebCore::ScrollView::computeCoverageRect): Deleted.
10301
103022014-05-02  Pratik Solanki  <psolanki@apple.com>
10303
10304        Shortcircuit shouldUseCredentialStorage callback
10305        https://bugs.webkit.org/show_bug.cgi?id=132308
10306        <rdar://problem/16806708>
10307
10308        Reviewed by Alexey Proskuryakov.
10309
10310        If we are going to return true from the shouldUseCredentialStorage callback then we don't
10311        really need to have CFNetwork/Foundation call us. We can just disable the callback and
10312        CFNetwork will assume true. Add a separate subclass that implements this callback when we
10313        need to return false. We can also eliminate the corresponding async callbacks. This avoids
10314        pingponging between dispatch queue and main thread in the common case.
10315
10316        No new tests because no change in functionality.
10317
10318        * WebCore.exp.in:
10319        * platform/network/ResourceHandle.cpp:
10320        * platform/network/ResourceHandle.h:
10321        * platform/network/ResourceHandleClient.cpp:
10322        * platform/network/ResourceHandleClient.h:
10323        * platform/network/cf/ResourceHandleCFNet.cpp:
10324        (WebCore::ResourceHandle::createCFURLConnection):
10325        (WebCore::ResourceHandle::shouldUseCredentialStorage):
10326        * platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
10327        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
10328        (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::shouldUseCredentialStorage):
10329        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
10330        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
10331        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
10332        * platform/network/mac/ResourceHandleMac.mm:
10333        (WebCore::ResourceHandle::start):
10334        (WebCore::ResourceHandle::makeDelegate):
10335        (WebCore::ResourceHandle::delegate):
10336        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
10337        (WebCore::ResourceHandle::shouldUseCredentialStorage):
10338        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h:
10339        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
10340        (-[WebCoreResourceHandleWithCredentialStorageAsOperationQueueDelegate connectionShouldUseCredentialStorage:]):
10341        * platform/network/soup/ResourceHandleSoup.cpp:
10342
103432014-05-03  Andreas Kling  <akling@apple.com>
10344
10345        Invalidate scrollbars when custom scrollbar style changes dynamically.
10346        <https://webkit.org/b/132529>
10347
10348        Add a ScrollView::styleDidChange() and call that from RenderView::styleDidChange()
10349        so that the scrollbars are sure to get repainted with potentially different style.
10350
10351        Reviewed by Antti Koivisto.
10352
10353        Test: fast/css/scrollbar-dynamic-style-change.html
10354
10355        * platform/ScrollView.cpp:
10356        (WebCore::ScrollView::styleDidChange):
10357        * platform/ScrollView.h:
10358        * rendering/RenderView.cpp:
10359        (WebCore::RenderView::styleDidChange):
10360
103612014-05-03  Simon Fraser  <simon.fraser@apple.com>
10362
10363        Very fuzzy layers under non-decompasable matrices
10364        https://bugs.webkit.org/show_bug.cgi?id=132516
10365        <rdar://problem/16717478>
10366
10367        Reviewed by Sam Weinig.
10368        
10369        r155977 added code to modify layer contentsScale based on a root-relative
10370        scale, so that scaled-up layers remained sharp. It does this by decomposing
10371        an accumulated matrix, but failed to test whether the decomposition
10372        succeeded. This would result in contentsScale of 0, which is clamped to 0.1,
10373        resulting in very fuzzy layers.
10374        
10375        Fix by testing for success of decomposition.
10376
10377        Test: compositing/contents-scale/non-decomposable-matrix.html
10378
10379        * platform/graphics/ca/GraphicsLayerCA.cpp:
10380        (WebCore::maxScaleFromTransform):
10381        * platform/graphics/transforms/TransformationMatrix.cpp:
10382        (WebCore::TransformationMatrix::decompose2): Return early for identity matrices,
10383        with fix for m11 and m22.
10384        (WebCore::TransformationMatrix::decompose4): Return early for identity matrices.
10385        * platform/graphics/transforms/TransformationMatrix.h:
10386        Make Decomposed2Type and Decomposed4Type into C++ structs.
10387        (WebCore::TransformationMatrix::Decomposed2Type::operator==): Added to make it easier
10388        to write code that asserts that decomposition is correct.
10389        (WebCore::TransformationMatrix::Decomposed4Type::operator==): Ditto.
10390
103912014-05-03  Simon Fraser  <simon.fraser@apple.com>
10392
10393        Fix crash in WebKit client app when zooming
10394        https://bugs.webkit.org/show_bug.cgi?id=132475
10395        <rdar://problem/16703405>
10396
10397        Reviewed by Tim Horton.
10398
10399        It's possible for a WebTiledBackingLayer CALayer to remain in the CALayer
10400        hierarchy after we've called -invalidate on it, which clears the _tileController.
10401        Project the getters against null derefs to handle this.
10402
10403        * platform/graphics/ca/mac/WebTiledBackingLayer.mm:
10404        (-[WebTiledBackingLayer isOpaque]):
10405        (-[WebTiledBackingLayer acceleratesDrawing]):
10406        (-[WebTiledBackingLayer contentsScale]):
10407
104082014-05-03  Carlos Garcia Campos  <cgarcia@igalia.com>
10409
10410        Unreviewed. Fix GTK+ build after r168209.
10411
10412        * platform/leveldb/LevelDBDatabase.cpp:
10413        (WebCore::LevelDBDatabase::write):
10414
104152014-05-03  Zalan Bujtas  <zalan@apple.com>
10416
10417        Subpixel rendering: Fieldset legend has a horizontal line through, when the fieldset is painted on odd device pixel position.
10418        https://bugs.webkit.org/show_bug.cgi?id=132521
10419        <rdar://problem/16803305>
10420
10421        Reviewed by Simon Fraser.
10422
10423        Use device pixel snapping when the fieldset's border gets clipped out for the legend's text. It ensures that
10424        the device pixel snapped border gets properly clipped out.
10425
10426        Existing fieldset tests cover it.
10427
10428        * rendering/RenderFieldset.cpp:
10429        (WebCore::RenderFieldset::paintBoxDecorations):
10430
104312014-05-02  Zalan Bujtas  <zalan@apple.com>
10432
10433        CodeCleanup: Remove *MaintainsPixelAlignment from GraphicsLayer*.
10434        https://bugs.webkit.org/show_bug.cgi?id=132501
10435
10436        Reviewed by Simon Fraser.
10437
10438        * WebCore.exp.in:
10439        * platform/graphics/GraphicsLayer.cpp:
10440        (WebCore::GraphicsLayer::GraphicsLayer):
10441        * platform/graphics/GraphicsLayer.h:
10442        (WebCore::GraphicsLayer::setMaintainsPixelAlignment): Deleted.
10443        (WebCore::GraphicsLayer::maintainsPixelAlignment): Deleted.
10444        (WebCore::GraphicsLayer::pixelAlignmentOffset): Deleted.
10445        * platform/graphics/ca/GraphicsLayerCA.cpp:
10446        (WebCore::GraphicsLayerCA::updateGeometry):
10447        (WebCore::GraphicsLayerCA::computePixelAlignment):
10448        (WebCore::GraphicsLayerCA::setMaintainsPixelAlignment): Deleted.
10449        * platform/graphics/ca/GraphicsLayerCA.h:
10450        * rendering/RenderLayerBacking.cpp:
10451        (WebCore::RenderLayerBacking::createGraphicsLayer):
10452        * rendering/RenderLayerCompositor.cpp:
10453        (WebCore::RenderLayerCompositor::keepLayersPixelAligned): Deleted.
10454        * rendering/RenderLayerCompositor.h:
10455
104562014-05-02  Simon Fraser  <simon.fraser@apple.com>
10457
10458        [iOS WK2] Tiled layer content missing on pages with animated tiled layers
10459        https://bugs.webkit.org/show_bug.cgi?id=132507
10460        <rdar://problem/16765740>
10461
10462        Reviewed by Tim Horton.
10463
10464        Updating the tiling area of content TileControllers while
10465        CSS animations are running depends on GraphicsLayerUpdater
10466        triggering repeated layer flushes. With UI-side compositing, those
10467        flushes were happening, but nothing triggered RemoteLayerTreeDrawingArea
10468        to flush changes to the UI process.
10469        
10470        Fix by having RenderLayerCompositor schedule a flush, rather
10471        than just doing a flush, in response to GraphicsLayerUpdater.
10472        
10473        Also change the name of the GraphicsLayerUpdaterClient function
10474        to indicate that it suggests that a flush is required soon, rather than
10475        that the flushing has to be synchronous.
10476
10477        * platform/graphics/GraphicsLayerUpdater.cpp:
10478        (WebCore::GraphicsLayerUpdater::displayRefreshFired):
10479        * platform/graphics/GraphicsLayerUpdater.h:
10480        * rendering/RenderLayerCompositor.cpp:
10481        (WebCore::RenderLayerCompositor::flushLayersSoon):
10482        (WebCore::RenderLayerCompositor::flushLayers): Deleted.
10483        * rendering/RenderLayerCompositor.h:
10484
104852014-05-02  Jeremy Jones  <jeremyj@apple.com>
10486
10487        Use displayNameForTrack instead of textTrack->label() for captions.
10488        https://bugs.webkit.org/show_bug.cgi?id=131311
10489
10490        Reviewed by Darin Adler.
10491
10492        Use the same mechanism as the desktop to build the captions list so it has the correct
10493        names in the correct order including none and automatic.
10494
10495        * platform/ios/WebVideoFullscreenModelMediaElement.h:
10496        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
10497        (WebVideoFullscreenModelMediaElement::setMediaElement):
10498        move legible track code into updateLegibleOptions()
10499
10500        (WebVideoFullscreenModelMediaElement::handleEvent):
10501        updateLegibleOptions on addTrack and removeTrack
10502
10503        (WebVideoFullscreenModelMediaElement::selectLegibleMediaOption):
10504        select the corresponding TextTrack on HTMLMediaElement.
10505
10506        (WebVideoFullscreenModelMediaElement::updateLegibleOptions):
10507        use the same mechanism as desktop to build the captions menu.
10508
105092014-05-02  Jeremy Jones  <jeremyj@apple.com>
10510
10511        CSS-based Media Controls Show Different times content longer than 1 hour.
10512        https://bugs.webkit.org/show_bug.cgi?id=132443
10513
10514        Reviewed by Jer Noble.
10515
10516        * Modules/mediacontrols/mediaControlsApple.css:
10517        (audio::-webkit-media-controls-timeline-container .hour-long-time):
10518        This class has a wider width for longer duration times.
10519
10520        * Modules/mediacontrols/mediaControlsApple.js:
10521        (Controller.prototype.updateDuration):
10522        Apply .hour-long-time class as appropriate.
10523
10524        (Controller.prototype.formatTime):
10525        More robust formatting to handle hours.
10526
10527        * Modules/mediacontrols/mediaControlsiOS.css:
10528        (audio::-webkit-media-controls-timeline-container .hour-long-time):
10529        This class has a wider width for longer duration times.
10530
10531        * Modules/mediacontrols/mediaControlsiOS.js:
10532        (ControllerIOS.prototype.formatTime):
10533        More robust formatting to handle hours.
10534
105352014-05-02  Jer Noble  <jer.noble@apple.com>
10536
10537        [MSE][Mac] AVAssetTrack returns incorrect track size
10538        https://bugs.webkit.org/show_bug.cgi?id=132469
10539
10540        Reviewed by Brent Fulgham.
10541
10542        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
10543        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
10544        (WebCore::SourceBufferPrivateAVFObjC::didParseStreamDataAsAsset):  Remove the sizeChanged() notification.
10545        (WebCore::SourceBufferPrivateAVFObjC::processCodedFrame): Cache the last parsed video frame size.
10546        (WebCore::SourceBufferPrivateAVFObjC::naturalSize): Return the cached value.
10547
105482014-05-02  Zalan Bujtas  <zalan@apple.com>
10549
10550        Subpixel rendering[iOS]: Use pixelSnappedRoundedRectForPainting() to clip text area rect.
10551        https://bugs.webkit.org/show_bug.cgi?id=132499
10552        <rdar://problem/16631050>
10553
10554        Reviewed by Simon Fraser.
10555
10556        Snap to device pixels properly instead of relying on float arithmetics while converting from RoundedRect
10557        to FloatRoundedRect. This is the second, cleanup part of the text-area decoration is off-by-one painting issue.
10558
10559        Currently not testable.
10560
10561        * rendering/RenderThemeIOS.mm:
10562        (WebCore::RenderThemeIOS::paintTextFieldDecorations):
10563
105642014-05-02  Andreas Kling  <akling@apple.com>
10565
10566        Remove HistogramSupport.
10567        <https://webkit.org/b/132354>
10568
10569        Prune some leftover Chromium gunk that no other ports ever used.
10570
10571        Reviewed by Simon Fraser.
10572
10573        * CMakeLists.txt:
10574        * Modules/indexeddb/IDBDatabase.cpp:
10575        (WebCore::IDBDatabase::createObjectStore):
10576        (WebCore::IDBDatabase::deleteObjectStore):
10577        (WebCore::IDBDatabase::transaction):
10578        * Modules/indexeddb/IDBFactory.cpp:
10579        (WebCore::IDBFactory::openInternal):
10580        (WebCore::IDBFactory::deleteDatabase):
10581        * Modules/indexeddb/IDBHistograms.h: Removed.
10582        * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
10583        (WebCore::IDBBackingStoreLevelDB::open):
10584        (WebCore::IDBBackingStoreLevelDB::openInMemory):
10585        (WebCore::recordInternalError): Deleted.
10586        * Modules/indexeddb/leveldb/IDBBackingStoreTransactionLevelDB.cpp:
10587        * WebCore.vcxproj/WebCore.vcxproj:
10588        * WebCore.vcxproj/WebCore.vcxproj.filters:
10589        * WebCore.xcodeproj/project.pbxproj:
10590        * css/CSSParser.cpp:
10591        (WebCore::cssPropertyID):
10592        * dom/Document.cpp:
10593        (WebCore::Document::~Document):
10594        (WebCore::histogramMutationEventUsage): Deleted.
10595        * dom/ShadowRoot.cpp:
10596        * fileapi/Blob.cpp:
10597        * fileapi/WebKitBlobBuilder.cpp:
10598        (WebCore::BlobBuilder::append):
10599        * history/PageCache.cpp:
10600        (WebCore::logCanCacheFrameDecision):
10601        (WebCore::logCanCachePageDecision):
10602        * platform/HistogramSupport.cpp: Removed.
10603        * platform/HistogramSupport.h: Removed.
10604        * platform/leveldb/LevelDBDatabase.cpp:
10605        (WebCore::LevelDBDatabase::open):
10606        (WebCore::histogramLevelDBError): Deleted.
10607        * rendering/RenderLayer.cpp:
10608        (WebCore::RenderLayer::updateNeedsCompositedScrolling):
10609        * xml/XMLHttpRequest.cpp:
10610        (WebCore::XMLHttpRequest::send):
10611
106122014-05-02  Brady Eidson  <beidson@apple.com>
10613
10614        Stop flipping the ImageControlsButton
10615        <rdar://problem/16773238> and https://bugs.webkit.org/show_bug.cgi?id=132502
10616
10617        Reviewed by Tim Horton.
10618
10619        * rendering/RenderThemeMac.mm:
10620        (WebCore::RenderThemeMac::paintImageControlsButton):
10621
106222014-05-02  Jeremy Jones  <jeremyj@apple.com>
10623
10624        Fullscreen UI does not appear after WebProcess has crashed
10625        https://bugs.webkit.org/show_bug.cgi?id=132442
10626
10627        Reviewed by Darin Adler.
10628
10629        Clean up immediately when there is a WebProcess crash.
10630
10631        * WebCore.exp.in:
10632        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
10633        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
10634        (WebVideoFullscreenInterfaceAVKit::invalidate):
10635        Clean-up resources immediately.
10636
106372014-05-02  Commit Queue  <commit-queue@webkit.org>
10638
10639        Unreviewed, rolling out r168192.
10640        https://bugs.webkit.org/show_bug.cgi?id=132498
10641
10642        Was not the correct fix (blurry!) (Requested by bfulgham_ on
10643        #webkit).
10644
10645        Reverted changeset:
10646
10647        "[iOS] deviceScaleFactor is being double-applied when
10648        rendering captions in full screen mode"
10649        https://bugs.webkit.org/show_bug.cgi?id=132481
10650        http://trac.webkit.org/changeset/168192
10651
106522014-05-02  Alexey Proskuryakov  <ap@apple.com>
10653
10654        Remove Blob contentDisposition handling
10655        https://bugs.webkit.org/show_bug.cgi?id=132490
10656
10657        Reviewed by Sam Weinig.
10658
10659        Dead code.
10660
10661        * platform/network/BlobData.h:
10662        (WebCore::BlobData::contentDisposition): Deleted.
10663        (WebCore::BlobData::setContentDisposition): Deleted.
10664        * platform/network/BlobRegistryImpl.cpp:
10665        (WebCore::BlobRegistryImpl::registerBlobURL):
10666        (WebCore::BlobRegistryImpl::registerBlobURLForSlice):
10667        * platform/network/BlobResourceHandle.cpp:
10668        (WebCore::BlobResourceHandle::notifyResponseOnSuccess):
10669        * platform/network/BlobStorageData.h:
10670        (WebCore::BlobStorageData::create):
10671        (WebCore::BlobStorageData::contentType):
10672        (WebCore::BlobStorageData::BlobStorageData):
10673        (WebCore::BlobStorageData::contentDisposition): Deleted.
10674
106752014-05-02  Anders Carlsson  <andersca@apple.com>
10676
10677        Implement FormData decoding using KeyedDecoder
10678        https://bugs.webkit.org/show_bug.cgi?id=132494
10679
10680        Reviewed by Tim Horton.
10681
10682        * platform/KeyedCoding.h:
10683        (WebCore::KeyedDecoder::decodeEnum):
10684        * platform/network/FormData.cpp:
10685        (WebCore::decodeElement):
10686        (WebCore::FormData::decode):
10687        * platform/network/FormData.h:
10688
106892014-05-02  Brent Fulgham  <bfulgham@apple.com>
10690
10691        [iOS] deviceScaleFactor is being double-applied when rendering captions in full screen mode
10692        https://bugs.webkit.org/show_bug.cgi?id=132481
10693
10694        Reviewed by Jer Noble.
10695
10696        * html/shadow/MediaControlElements.cpp:
10697        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Don't set the platform scale factor here. It is already
10698        being accounted for in the createTextTrackRepresentationImage method.
10699
107002014-05-02  Simon Fraser  <simon.fraser@apple.com>
10701
10702        [iOS WK2] Don't create backing store for -webkit-overflow-scrolling:touch that can't scroll
10703        https://bugs.webkit.org/show_bug.cgi?id=132487
10704        <rdar://problem/16758041>
10705
10706        Reviewed by Sam Weinig.
10707
10708        Previously, -webkit-overflow-scrolling:touch would cause us to make compositing
10709        layers for any element that had overflow: auto or scroll on either axis. This
10710        created lots of backing store when not required.
10711        
10712        Improve this to only create compositing for scrolling when there is actually
10713        scrollable overflow. This makes things slightly more complex, because we can
10714        only know when layout is up to date.
10715
10716        * rendering/RenderBox.cpp:
10717        (WebCore::RenderBox::computeRectForRepaint): usesCompositedScrolling() tells
10718        us if we're actually doing composited overflow.
10719        * rendering/RenderLayer.cpp:
10720        (WebCore::RenderLayer::hasTouchScrollableOverflow):
10721        (WebCore::RenderLayer::handleTouchEvent):
10722        * rendering/RenderLayer.h:
10723        * rendering/RenderLayerBacking.cpp:
10724        (WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
10725        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Only update
10726        scrolling and clipping layers if layout is not pending.
10727        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
10728        (WebCore::RenderLayerBacking::updateScrollingLayers): The caller calls
10729        updateInternalHierarchy(), so no need to do it here.
10730        * rendering/RenderLayerCompositor.cpp:
10731        (WebCore::RenderLayerCompositor::requiresCompositingForScrolling): We
10732        can only determine that we're scrollable after layout.
10733        (WebCore::isStickyInAcceleratedScrollingLayerOrViewport):
10734        (WebCore::isMainFrameScrollingOrOverflowScrolling):
10735
107362014-05-02  Anders Carlsson  <andersca@apple.com>
10737
10738        Clean up FormDataElement
10739        https://bugs.webkit.org/show_bug.cgi?id=132483
10740
10741        Reviewed by Sam Weinig.
10742
10743        * platform/network/FormData.cpp:
10744        (WebCore::FormData::FormData):
10745        (WebCore::FormData::deepCopy):
10746        (WebCore::FormData::expandDataStore):
10747        (WebCore::FormData::flatten):
10748        (WebCore::FormData::resolveBlobReferences):
10749        (WebCore::FormData::generateFiles):
10750        (WebCore::FormData::hasGeneratedFiles):
10751        (WebCore::FormData::hasOwnedGeneratedFiles):
10752        (WebCore::FormData::removeGeneratedFilesIfNeeded):
10753        (WebCore::encodeElement):
10754        (WebCore::decodeElement):
10755        * platform/network/FormData.h:
10756        (WebCore::FormDataElement::FormDataElement):
10757        (WebCore::operator==):
10758        * platform/network/cf/FormDataStreamCFNet.cpp:
10759        (WebCore::advanceCurrentStream):
10760        (WebCore::setHTTPBody):
10761        * platform/network/curl/FormDataStreamCurl.cpp:
10762        (WebCore::FormDataStream::read):
10763        * platform/network/curl/ResourceHandleManager.cpp:
10764        (WebCore::setupFormData):
10765        * platform/network/soup/ResourceHandleSoup.cpp:
10766        (WebCore::addFormElementsToSoupMessage):
10767
107682014-05-02  Jer Noble  <jer.noble@apple.com>
10769
10770        [iOS] Wireless playback button not blue when active
10771        https://bugs.webkit.org/show_bug.cgi?id=132473
10772
10773        Reviewed by Simon Fraser.
10774
10775        The playback button's class was being set to 'undefined', due to Controller.ClassNames.active being undefined.
10776
10777        * Modules/mediacontrols/mediaControlsApple.js:
10778
107792014-05-02  Alexey Proskuryakov  <ap@apple.com>
10780
10781        Don't abuse Blob deserialization constructor in WebSocket
10782        https://bugs.webkit.org/show_bug.cgi?id=132478
10783
10784        Reviewed by Sam Weinig.
10785
10786        * Modules/websockets/WebSocketChannel.cpp:
10787        (WebCore::WebSocketChannel::send):
10788        (WebCore::WebSocketChannel::enqueueBlobFrame): This is the important change -
10789        Blob::create was called for no reason. If the blob came from a worker, it was
10790        already cloned for cross-thread messaging, otherwise there is no reason to make
10791        a new one.
10792
10793        * fileapi/Blob.h:
10794        (WebCore::Blob::deserialize):
10795        (WebCore::Blob::create): Deleted.
10796        * fileapi/File.h:
10797        (WebCore::File::deserialize):
10798        (WebCore::File::create): Deleted.
10799        Renamed a special case of "create" function to avoid explaining what it is for.
10800
10801        * Modules/websockets/ThreadableWebSocketChannel.h:
10802        * Modules/websockets/WebSocket.cpp:
10803        (WebCore::WebSocket::send):
10804        * Modules/websockets/WebSocketChannel.h:
10805        * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
10806        (WebCore::WorkerThreadableWebSocketChannel::send): Print a full URL in LOG(),
10807        not one shortened to 1024 characters.
10808        (WebCore::WorkerThreadableWebSocketChannel::Peer::send):
10809        (WebCore::WorkerThreadableWebSocketChannel::mainThreadSendBlob):
10810        (WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
10811        * Modules/websockets/WorkerThreadableWebSocketChannel.h:
10812        * bindings/js/SerializedScriptValue.cpp:
10813        (WebCore::CloneDeserializer::readFile):
10814        (WebCore::CloneDeserializer::readTerminal):
10815
108162014-05-02  Anders Carlsson  <andersca@apple.com>
10817
10818        Add and implement KeyedDecoder::decodeBytes
10819        https://bugs.webkit.org/show_bug.cgi?id=132479
10820
10821        Reviewed by Tim Horton.
10822
10823        * platform/KeyedCoding.h:
10824        (WebCore::KeyedDecoder::decodeBytes):
10825
108262014-05-02  Joseph Pecoraro  <pecoraro@apple.com>
10827
10828        [iOS] WebKit2 File Upload Support
10829        https://bugs.webkit.org/show_bug.cgi?id=132024
10830
10831        Reviewed by Enrica Casucci.
10832
10833        * English.lproj/Localizable.strings:
10834        New localized strings for <input type="file"> on iOS.
10835
108362014-05-02  Chris Fleizach  <cfleizach@apple.com>
10837
10838        AX: WK2: iOS web page scrolling doesn't work with VoiceOver
10839        https://bugs.webkit.org/show_bug.cgi?id=132028
10840
10841        Reviewed by Mario Sanchez Prada.
10842
10843        With the AX tree residing in the WebProcess, scrolling needs to be implemented in
10844        WebCore using accessibilityScroll: in order for accessibility clients to scroll through the AX API.
10845
10846        * accessibility/AccessibilityObject.cpp:
10847        (WebCore::AccessibilityObject::scrollViewAncestor):
10848        (WebCore::AccessibilityObject::scrollToMakeVisibleWithSubFocus):
10849        * accessibility/AccessibilityObject.h:
10850        * accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
10851        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
10852        (-[WebAccessibilityObjectWrapper _accessibilityConvertPointToViewSpace:]):
10853        (-[WebAccessibilityObjectWrapper _accessibilityScrollToVisible]):
10854        (-[WebAccessibilityObjectWrapper accessibilityScroll:]):
10855        (-[WebAccessibilityObjectWrapper postScrollStatusChangeNotification]):
10856        (-[WebAccessibilityObjectWrapper _accessibilityScrollPosition]):
10857        (-[WebAccessibilityObjectWrapper _accessibilityScrollSize]):
10858        (-[WebAccessibilityObjectWrapper _accessibilityScrollVisibleRect]):
10859
108602014-05-02  Jeremy Jones  <jeremyj@apple.com>
10861
10862        Pause playback on exit fullscreen when inline playback not allowed.
10863        https://bugs.webkit.org/show_bug.cgi?id=132450
10864
10865        Reviewed by Jer Noble.
10866
10867        Use correct method of determining if inline playback is allowed.
10868
10869        * html/HTMLMediaElement.cpp:
10870        (WebCore::HTMLMediaElement::parseAttribute):
10871        Use m_mediaSession->requiresFullscreenForVideoPlayback to detect if inline playback is allowed.
10872
10873        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
10874        (WebVideoFullscreenModelMediaElement::requestExitFullscreen):
10875        Prevent duplicate exit requests.
10876
108772014-05-02  Ion Rosca  <rosca@adobe.com>
10878
10879        [CSS Blending] Remove support for non-separable blend modes from background-blend-mode
10880        https://bugs.webkit.org/show_bug.cgi?id=132327
10881
10882        Reviewed by Dean Jackson.
10883
10884        Removed support for non-separable background blend modes from the CSS parser.
10885        Covered by existing tests.
10886
10887        * css/CSSParser.cpp:
10888        (WebCore::CSSParser::parseFillProperty):
10889
108902014-05-02  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
10891
10892        Clean up #include <OwnPtr.h>|<PassOwnPtr.h> in Supplementable classes
10893        https://bugs.webkit.org/show_bug.cgi?id=132466
10894
10895        Reviewed by Tim Horton.
10896
10897        Since r168144, Supplementable classes don't need to include OwnPtr.h or PassOwnPtr.h.
10898        Clean up those inclusions.
10899
10900        No new tests, just clean up patch.
10901
10902        * Modules/encryptedmedia/CDMPrivate.h:
10903        * Modules/gamepad/NavigatorGamepad.cpp:
10904        * Modules/geolocation/GeolocationController.cpp:
10905        (WebCore::GeolocationController::create): Deleted. Don't need to have a factory function.
10906        * Modules/geolocation/GeolocationController.h:
10907        * Modules/mediasource/MediaSource.h:
10908        * Modules/mediastream/UserMediaController.h:
10909        * Modules/notifications/NotificationCenter.h:
10910        * Modules/notifications/NotificationController.cpp:
10911        * Modules/quota/StorageErrorCallback.h:
10912        * Modules/vibration/Vibration.h:
10913        * Modules/webdatabase/Database.cpp:
10914        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
10915        * Modules/websockets/WebSocket.cpp:
10916        * Modules/websockets/WebSocket.h:
10917
109182014-05-01  Ryuan Choi  <ryuan.choi@samsung.com>
10919
10920        Remove TiledBackingStore stuff from Frame
10921        https://bugs.webkit.org/show_bug.cgi?id=132458
10922
10923        Reviewed by Andreas Kling.
10924
10925        Although TiledBackingStore is using for the CoordinatedGraphics,
10926        CoordinatedGraphics does not use tiledBackingStore of Frame.
10927
10928        This patch removed TiledBackingStore related code of the Frame.
10929
10930        * page/Frame.cpp:
10931        (WebCore::Frame::Frame):
10932        (WebCore::Frame::setView):
10933        (WebCore::Frame::setTiledBackingStoreEnabled): Deleted.
10934        (WebCore::Frame::tiledBackingStorePaintBegin): Deleted.
10935        (WebCore::Frame::tiledBackingStorePaint): Deleted.
10936        (WebCore::Frame::tiledBackingStorePaintEnd): Deleted.
10937        (WebCore::Frame::tiledBackingStoreContentsRect): Deleted.
10938        (WebCore::Frame::tiledBackingStoreVisibleRect): Deleted.
10939        (WebCore::Frame::tiledBackingStoreBackgroundColor): Deleted.
10940        * page/Frame.h:
10941        (WebCore::Frame::tiledBackingStore): Deleted.
10942        * page/FrameView.cpp:
10943        (WebCore::FrameView::repaintContentRectangle):
10944        * page/Settings.cpp:
10945        (WebCore::Settings::Settings):
10946        (WebCore::Settings::setTiledBackingStoreEnabled): Deleted.
10947        * page/Settings.h:
10948        (WebCore::Settings::tiledBackingStoreEnabled): Deleted.
10949
109502014-05-01  Myles C. Maxfield  <mmaxfield@apple.com>
10951
10952        Migrate all uses of DeviceMotionController and DeviceOrientationController to std::unique_ptr
10953        https://bugs.webkit.org/show_bug.cgi?id=132461
10954
10955        Unreviewed build fix.
10956
10957        No new tests.
10958
10959        * dom/Document.cpp:
10960        (WebCore::Document::Document):
10961        * dom/Document.h:
10962        * platform/ios/DeviceMotionClientIOS.h:
10963        (WebCore::DeviceMotionClientIOS::create): Deleted.
10964        * platform/ios/DeviceOrientationClientIOS.h:
10965        (WebCore::DeviceOrientationClientIOS::create): Deleted.
10966
109672014-05-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
10968
10969        Convert OwnPtr and PassOwnPtr uses to std::unique_ptr in Supplement
10970        https://bugs.webkit.org/show_bug.cgi?id=132165
10971
10972        Reviewed by Darin Adler.
10973
10974        According to convert from PassOwnPtr to std::unique_ptr, provideTo() callers also begin
10975        to use std::make_unique.
10976
10977        * Modules/battery/BatteryController.cpp:
10978        (WebCore::provideBatteryTo):
10979        * Modules/battery/BatteryController.h:
10980        * Modules/battery/NavigatorBattery.cpp:
10981        (WebCore::NavigatorBattery::from):
10982        * Modules/gamepad/NavigatorGamepad.cpp:
10983        (WebCore::NavigatorGamepad::from):
10984        * Modules/geolocation/GeolocationController.cpp:
10985        (WebCore::provideGeolocationTo):
10986        * Modules/geolocation/GeolocationController.h:
10987        * Modules/geolocation/NavigatorGeolocation.cpp:
10988        (WebCore::NavigatorGeolocation::from):
10989        * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
10990        (WebCore::DOMWindowIndexedDatabase::from):
10991        * Modules/indexeddb/PageGroupIndexedDatabase.cpp:
10992        (WebCore::PageGroupIndexedDatabase::from):
10993        * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:
10994        (WebCore::WorkerGlobalScopeIndexedDatabase::from):
10995        * Modules/mediastream/UserMediaController.cpp:
10996        (WebCore::provideUserMediaTo):
10997        (WebCore::UserMediaController::create): Deleted.
10998        * Modules/mediastream/UserMediaController.h:
10999        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
11000        (WebCore::provideNavigatorContentUtilsTo):
11001        (WebCore::NavigatorContentUtils::create): Deleted.
11002        * Modules/navigatorcontentutils/NavigatorContentUtils.h:
11003        * Modules/notifications/DOMWindowNotifications.cpp:
11004        (WebCore::DOMWindowNotifications::from):
11005        * Modules/notifications/NotificationController.cpp:
11006        (WebCore::provideNotification):
11007        (WebCore::NotificationController::create): Deleted.
11008        * Modules/notifications/NotificationController.h:
11009        * Modules/notifications/WorkerGlobalScopeNotifications.cpp:
11010        (WebCore::WorkerGlobalScopeNotifications::from):
11011        * Modules/proximity/DeviceProximityController.cpp:
11012        (WebCore::provideDeviceProximityTo):
11013        (WebCore::DeviceProximityController::create): Deleted.
11014        * Modules/proximity/DeviceProximityController.h:
11015        * Modules/quota/DOMWindowQuota.cpp:
11016        (WebCore::DOMWindowQuota::from):
11017        * Modules/quota/NavigatorStorageQuota.cpp:
11018        (WebCore::NavigatorStorageQuota::from):
11019        * Modules/quota/WorkerNavigatorStorageQuota.cpp:
11020        (WebCore::WorkerNavigatorStorageQuota::from):
11021        * Modules/speech/DOMWindowSpeechSynthesis.cpp:
11022        (WebCore::DOMWindowSpeechSynthesis::from):
11023        * Modules/speech/SpeechRecognitionController.cpp:
11024        (WebCore::provideSpeechRecognitionTo):
11025        * Modules/vibration/Vibration.cpp:
11026        (WebCore::provideVibrationTo):
11027        (WebCore::Vibration::create): Deleted.
11028        * Modules/vibration/Vibration.h:
11029        * dom/DeviceMotionController.cpp:
11030        (WebCore::provideDeviceMotionTo):
11031        (WebCore::DeviceMotionController::create): Deleted.
11032        * dom/DeviceMotionController.h:
11033        * dom/DeviceOrientationController.cpp:
11034        (WebCore::provideDeviceOrientationTo):
11035        (WebCore::DeviceOrientationController::create): Deleted.
11036        * dom/DeviceOrientationController.h:
11037        * page/SpeechInput.cpp:
11038        (WebCore::provideSpeechInputTo):
11039        (WebCore::SpeechInput::create): Deleted.
11040        * page/SpeechInput.h:
11041        * platform/Supplementable.h:
11042        (WebCore::Supplement::provideTo):
11043        (WebCore::Supplementable::provideSupplement):
11044        * testing/InternalSettings.cpp:
11045        (WebCore::InternalSettings::from):
11046
110472014-05-01  Andreas Kling  <akling@apple.com>
11048
11049        HTMLMediaElement: Remove two unnecessary virtual overrides.
11050        <https://webkit.org/b/132445>
11051
11052        Now that ENABLE_PLUGIN_PROXY_FOR_VIDEO is gone, we can remove
11053        these overrides:
11054
11055            - defaultEventHandler()
11056            - willRespondToMouseClickEvents()
11057
11058        Reviewed by Darin Adler.
11059
11060        * html/HTMLMediaElement.cpp:
11061        * html/HTMLMediaElement.h:
11062
110632014-05-01  Benjamin Poulain  <bpoulain@apple.com>
11064
11065        ViewportConfiguration::minimumScale() uses the initial scale as initial value
11066        https://bugs.webkit.org/show_bug.cgi?id=132451
11067        <rdar://problem/16780111>
11068
11069        Reviewed by Enrica Casucci.
11070
11071        * page/ViewportConfiguration.cpp:
11072        (WebCore::ViewportConfiguration::minimumScale):
11073        The initial minimum scale was set to the initial scale, preventing some pages from zooming
11074        out.
11075
110762014-05-01  Alexey Proskuryakov  <ap@apple.com>
11077
11078        Build fix for !ENABLE(BLOB) builds.
11079
11080        * fileapi/ThreadableBlobRegistry.cpp:
11081        (WebCore::ThreadableBlobRegistry::registerBlobURL):
11082        (WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):
11083
110842014-05-01  Alexey Proskuryakov  <ap@apple.com>
11085
11086        Move size computation for Blob constructor into BlobRegistryImpl
11087        https://bugs.webkit.org/show_bug.cgi?id=132439
11088
11089        Reviewed by Sam Weinig.
11090
11091        * Modules/websockets/WebSocket.cpp: (WebCore::WebSocket::didReceiveBinaryData):
11092        Don't pass the size, anyone who cares can get it from BlobData.
11093
11094        * bindings/js/JSBlobCustom.cpp: (WebCore::JSBlobConstructor::constructJSBlob):
11095        Updated for BlobBuilder changes.
11096
11097        * fileapi/Blob.cpp: (WebCore::Blob::Blob):
11098        * fileapi/Blob.h: (WebCore::Blob::create):
11099        No longer take a precomputed size with BlobData, BlobRegistry will compute it as
11100        part of registration.
11101
11102        * fileapi/File.h:
11103        * fileapi/File.cpp:
11104        (WebCore::File::File): Don't pass a size (that's unknown anyway).
11105        (WebCore::File::captureSnapshot): Deleted. Finally, only the registry is responsible
11106        for snapshot tracking now (I doubt that either new or old code is particularly compliant).
11107
11108        * fileapi/ThreadableBlobRegistry.cpp:
11109        (WebCore::ThreadableBlobRegistry::registerBlobURL):
11110        * fileapi/ThreadableBlobRegistry.h:
11111        Plumbing to make this version of registerBlobURL return a size. I may make size
11112        calculation lazy and the function async later, but this is needed to move the behavior
11113        to the right place first.
11114
11115        * fileapi/WebKitBlobBuilder.h:
11116        * fileapi/WebKitBlobBuilder.cpp:
11117        (WebCore::BlobBuilder::BlobBuilder):
11118        (WebCore::BlobBuilder::append):
11119        (WebCore::BlobBuilder::appendBytesData):
11120        (WebCore::BlobBuilder::finalize):
11121        (WebCore::BlobBuilder::getBlob): Deleted.
11122        Don't track sizes or modification times, registry will do that with appropriate laziness.
11123        Cleaned up the API - now that BlobBuilder is not exposed to JS as an object, it
11124        does not need to be reusable.
11125
11126        * platform/network/BlobRegistry.h: Made this version of registerBlobURL return a size.
11127        * platform/network/BlobRegistryImpl.h:
11128        * platform/network/BlobRegistryImpl.cpp:
11129        (WebCore::BlobRegistryImpl::appendStorageItems): Assert that length computations are accurate.
11130        (WebCore::BlobRegistryImpl::registerBlobURL): Compute a size to return, and record
11131        modification time as necessary.
11132
11133        * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseBlob): Don't pass the
11134        size, which can be computed from data. Soon, I want to add a constructor that doesn't
11135        require wrapping a single Vector as BlobData to construct a Blob.
11136
111372014-05-01  Eric Carlson  <eric.carlson@apple.com>
11138
11139        [iOS] audio and video should automatically play to active external device
11140        https://bugs.webkit.org/show_bug.cgi?id=132428
11141
11142        Reviewed by Jer Noble.
11143
11144        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
11145        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Set 
11146            AVPlayer.usesExternalPlaybackWhileExternalScreenIsActive.
11147
111482014-05-01  David Hyatt  <hyatt@apple.com>
11149
11150        REGRESSION (r168046): [New Multicolumn] Selection into and out of column-span elements doesn't work
11151        https://bugs.webkit.org/show_bug.cgi?id=132066
11152
11153        Reviewed by Oliver Hunt.
11154
11155        Make a new SelectionIterator struct that knows how to drill into and out of
11156        column span placeholders. Also change spans to be selection roots (in the painting
11157        sense).
11158
11159        * rendering/RenderBlock.cpp:
11160        (WebCore::RenderBlock::isSelectionRoot):
11161        (WebCore::RenderBlock::selectionGaps):
11162        * rendering/RenderView.cpp:
11163        (WebCore::SelectionIterator::SelectionIterator):
11164        (WebCore::SelectionIterator::checkForSpanner):
11165        (WebCore::SelectionIterator::current):
11166        (WebCore::SelectionIterator::next):
11167        (WebCore::RenderView::subtreeSelectionBounds):
11168        (WebCore::RenderView::repaintSubtreeSelection):
11169        (WebCore::RenderView::setSubtreeSelection):
11170
111712014-05-01  Simon Fraser  <simon.fraser@apple.com>
11172
11173        Don't always make backing store for -webkit-backface-visibility:hidden
11174        https://bugs.webkit.org/show_bug.cgi?id=132420
11175
11176        Reviewed by Sam Weinig.
11177        
11178        Previously, -webkit-backface-visibility:hidden unconditionally created
11179        compositing layers with backing store. This results in high memory use
11180        on pages with this style applied to many elements (a cargo-cult "optimization").
11181        
11182        Fix by only having -webkit-backface-visibility:hidden create compositing layers
11183        if some ancestor has a 3D transform. That's the only scenario in which the
11184        element can be flipped around to reveal the back side, so the only time we need
11185        to do compositing for this property. In future, we could be smarter, and only
11186        consider 3D transforms in the current preserve-3d context.
11187
11188        Tests: compositing/backing/backface-visibility-in-3dtransformed.html
11189               compositing/backing/backface-visibility-in-transformed.html
11190               compositing/backing/backface-visibility.html
11191
11192        * rendering/RenderLayer.cpp:
11193        (WebCore::RenderLayer::RenderLayer):
11194        (WebCore::RenderLayer::updateLayerPositions):
11195        (WebCore::RenderLayer::hitTestLayer):
11196        * rendering/RenderLayer.h:
11197        * rendering/RenderLayerCompositor.cpp:
11198        (WebCore::RenderLayerCompositor::requiresCompositingLayer):
11199        (WebCore::RenderLayerCompositor::requiresOwnBackingStore):
11200        (WebCore::RenderLayerCompositor::requiresCompositingForBackfaceVisibility):
11201        * rendering/RenderLayerCompositor.h:
11202
112032014-05-01  Alex Christensen  <achristensen@webkit.org>
11204
11205        Finish updating ANGLE.
11206        https://bugs.webkit.org/show_bug.cgi?id=132434
11207
11208        Reviewed by Dean Jackson.
11209
11210        * CMakeLists.txt:
11211        Removed Uniform.cpp which is no longer in ANGLE.
11212
112132014-05-01  David Hyatt  <hyatt@apple.com>
11214
11215        REGRESSION (new multi-column): WebKit2.ResizeReversePaginatedWebView fails on debug bots
11216        https://bugs.webkit.org/show_bug.cgi?id=132429
11217
11218        Reviewed by Alexey Proskuryakov.
11219        
11220        Make sure to get the column count directly from the column set.
11221        I was returning the theoretical column count from the flow thread,
11222        and that wasn't the right value.
11223
11224        * rendering/RenderMultiColumnSet.h:
11225        * rendering/RenderView.cpp:
11226        (WebCore::RenderView::pageCount):
11227
112282014-05-01  Brent Fulgham  <bfulgham@apple.com>
11229
11230        Fix handling of attributes prior to compiling shader
11231        https://bugs.webkit.org/show_bug.cgi?id=132430
11232
11233        Reviewed by Dean Jackson.
11234
11235        WebGL programs that called bindAttribLocations prior to compiling shader sources
11236        would perform the bind using the non-hashed symbol name, but would later create
11237        the attributes as hashed names. Consequently, the program would refer to
11238        attributes that were never actually part of any shader, resulting in some amazing
11239        display artifacts.
11240
11241        This patch adds a dictionary of hashed symbol names so that we can tell the WebGL
11242        program the proper name that will be used when the shader is eventually compiled,
11243        allowing the WebGL program to link against the proper symbol after compiling and
11244        linking completes.
11245
11246        * platform/graphics/GraphicsContext3D.h:
11247        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
11248        (WebCore::generateHashedName): Function uses the ANGLE hashing
11249        function to generate correct symbol.
11250        (WebCore::GraphicsContext3D::mappedSymbolName): If we haven't compiled shaders yet, look
11251        in our set of potentially unused attributes.
11252        (WebCore::GraphicsContext3D::originalSymbolName): Ditto, for reverse lookup.
11253
112542014-05-01  Zalan Bujtas  <zalan@apple.com>
11255
11256        Subpixel rendering: Make selection gaps painting subpixel aware.
11257        https://bugs.webkit.org/show_bug.cgi?id=132169
11258
11259        Reviewed by Simon Fraser.
11260
11261        Push selection gaps painting to device pixel boundaries instead of integral CSS pixel positions.
11262
11263        Test: fast/inline/hidpi-selection-gap-on-subpixel-position.html
11264
11265        * rendering/RenderBlock.cpp:
11266        (WebCore::RenderBlock::blockSelectionGap):
11267        (WebCore::RenderBlock::logicalLeftSelectionGap):
11268        (WebCore::RenderBlock::logicalRightSelectionGap):
11269
112702014-05-01  David Kilzer  <ddkilzer@apple.com>
11271
11272        Really remove ENABLE_PLUGIN_PROXY_FOR_VIDEO
11273        <http://webkit.org/b/132432>
11274
11275        Reviewed by Tim Horton.
11276
11277        * platform/graphics/wince/MediaPlayerPrivateWinCE.h: Remove
11278        methods and ivar in ENABLE(PLUGIN_PROXY_FOR_VIDEO).
11279
112802014-05-01  Javier Fernandez  <jfernandez@igalia.com>
11281
11282        [CSS Grid Layout] Clamping the number of repetitions in repeat()
11283        https://bugs.webkit.org/show_bug.cgi?id=131023
11284
11285        Reviewed by Brent Fulgham.
11286
11287        The ED suggests now to be able to clamp the number of repetitions when
11288        using the repeat() function, taking precautions about excessive memory
11289        usage.
11290
11291        The implemented max repetitions is 10K.
11292
11293        Test: fast/css-grid-layout/grid-element-repeat-max-repetitions.html
11294
11295        * css/CSSParser.cpp:
11296        (WebCore::CSSParser::parseGridTrackRepeatFunction):
11297
112982014-04-30  Jer Noble  <jer.noble@apple.com>
11299
11300        [MSE] Seeking between two buffered ranges enquues incorrect buffers.
11301        https://bugs.webkit.org/show_bug.cgi?id=132416
11302
11303        Reviewed by Eric Carlson.
11304
11305        std::equal_range(begin, end, value) will return an empty range if equal values cannot
11306        be found. But the range is not necessarily [end, end).  It may be some other value n,
11307        such that the empty range is [n, n). Check to see if the returned range is empty in
11308        findSampleContainingPresentationTime() and its reverse version, and if so, explicitly
11309        return presentationEnd() or reversePresentationEnd() respectively.
11310
11311        Drive-by fix: make the comparator functions take const& arguments to minimize object
11312        creation.
11313
11314        * Modules/mediasource/SampleMap.cpp:
11315        (WebCore::SampleIsLessThanMediaTimeComparator::operator()):
11316        (WebCore::SampleIsGreaterThanMediaTimeComparator::operator()):
11317        (WebCore::SampleMap::findSampleContainingPresentationTime):
11318        (WebCore::SampleMap::reverseFindSampleContainingPresentationTime):
11319
113202014-05-01  Zalan Bujtas  <zalan@apple.com>
11321
11322        Subpixel rendering: Inline text selection painting should not snap to integral CSS pixel position.
11323        https://bugs.webkit.org/show_bug.cgi?id=132164
11324
11325        Reviewed by Darin Adler.
11326
11327        Inline text selection painting now snaps to device pixels. It uses the same rounding logic as
11328        other painting functions.
11329
11330        Test: fast/inline/hidpi-select-inline-on-subpixel-position.html
11331
11332        * rendering/EllipsisBox.cpp:
11333        (WebCore::EllipsisBox::paintSelection):
11334        * rendering/InlineTextBox.cpp:
11335        (WebCore::InlineTextBox::paintSelection):
11336        (WebCore::alignSelectionRectToDevicePixels): Deleted.
11337        * rendering/InlineTextBox.h:
11338
113392014-05-01  Ryuan Choi  <ryuan.choi@samsung.com>
11340
11341        [EFL] There are many warnings with software backend
11342        https://bugs.webkit.org/show_bug.cgi?id=132422
11343
11344        Reviewed by Gyuyoung Kim.
11345
11346        ecore_evas_gl_x11_window_get should be called when only engine is opengl_x11.
11347
11348        This patch refactors not to call unnecessary API by checking engine type.
11349        In addition, removed unnecessary isUsingEcoreX().
11350
11351        * platform/efl/EflScreenUtilities.cpp:
11352        (WebCore::applyFallbackCursor):
11353        (WebCore::getEcoreXWindow):
11354        (WebCore::isUsingEcoreX): Deleted.
11355        * platform/efl/EflScreenUtilities.h:
11356
113572014-05-01  Rik Cabanier  <cabanier@adobe.com>
11358
11359        Calling createPattern with a broken image must throw an invalidstate error
11360        https://bugs.webkit.org/show_bug.cgi?id=132407
11361
11362        Reviewed by Dirk Schulze.
11363
11364        Per the WebIDL spec, passing non-finite parameter to a method that
11365        takes doubles, should generate a type error.
11366
11367        Tests:
11368        * canvas/philip/tests/2d.imageData.create2.nonfinite.html:
11369        * fast/canvas/canvas-2d-imageData-create-nonfinite.html:
11370
11371        * html/canvas/CanvasRenderingContext2D.cpp:
11372        (WebCore::CanvasRenderingContext2D::createImageData):
11373
113742014-04-30  David Hyatt  <hyatt@apple.com>
11375
11376        REGRESSION (r168046): [New Multicolumn] LeftToRight-rl.html (and all the other reversed/block-axis pagination tests) fail
11377        https://bugs.webkit.org/show_bug.cgi?id=132419
11378
11379        Reviewed by Andreas Kling.
11380
11381        * rendering/RenderMultiColumnSet.cpp:
11382        (WebCore::RenderMultiColumnSet::initialBlockOffsetForPainting):
11383        Don't flip here. The old code needed to do that, but the new code doesn't.
11384
113852014-04-30  Alexey Proskuryakov  <ap@apple.com>
11386
11387        Roll out fix for https://bugs.webkit.org/show_bug.cgi?id=131637:
11388        Clean up unnecessary methods in the BackForwardClient interface
11389
11390        It broke a regression test and an API test.
11391
11392        * WebCore.exp.in:
11393        * history/BackForwardClient.h:
11394        (WebCore::BackForwardClient::backItem):
11395        (WebCore::BackForwardClient::currentItem):
11396        (WebCore::BackForwardClient::forwardItem):
11397        * history/BackForwardController.cpp:
11398        (WebCore::BackForwardController::BackForwardController):
11399        * history/BackForwardController.h:
11400        (WebCore::BackForwardController::client):
11401        * history/BackForwardList.cpp:
11402        (WebCore::BackForwardList::BackForwardList):
11403        (WebCore::BackForwardList::close):
11404        * history/BackForwardList.h:
11405        (WebCore::BackForwardList::create):
11406        (WebCore::BackForwardList::page):
11407        * page/Page.cpp:
11408        (WebCore::Page::Page):
11409        (WebCore::Page::PageClients::PageClients):
11410        * page/Page.h:
11411
114122014-04-30  Simon Fraser  <simon.fraser@apple.com>
11413
11414        More iOS build fixing. MediaPlayerPrivateIOS is defunct and can be removed.
11415        Fix some build errors in other media files.
11416
11417        * WebCore.xcodeproj/project.pbxproj:
11418        * platform/graphics/MediaPlayer.cpp:
11419        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
11420        * platform/graphics/ios/MediaPlayerPrivateIOS.h: Removed.
11421        * platform/graphics/ios/MediaPlayerPrivateIOS.mm: Removed.
11422
114232014-04-30  Simon Fraser  <simon.fraser@apple.com>
11424
11425        Fix the iOS build, which no longer needs these calls
11426        to enter/exitFullscreen.
11427
11428        * html/HTMLMediaElement.cpp:
11429        (WebCore::HTMLMediaElement::parseAttribute):
11430
114312014-04-30  Simon Fraser  <simon.fraser@apple.com>
11432
11433        Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO
11434        https://bugs.webkit.org/show_bug.cgi?id=132396
11435
11436        Reviewed by Eric Carlson.
11437
11438        Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO and related code.
11439
11440        * Configurations/FeatureDefines.xcconfig:
11441        * WebCore.exp.in:
11442        * css/StyleResolver.cpp:
11443        (WebCore::StyleResolver::canShareStyleWithElement):
11444        * dom/DOMImplementation.cpp:
11445        (WebCore::DOMImplementation::createDocument):
11446        * editing/TextIterator.cpp:
11447        (WebCore::isRendererReplacedElement):
11448        * html/HTMLMediaElement.cpp:
11449        (WebCore::HTMLMediaElement::HTMLMediaElement):
11450        (WebCore::HTMLMediaElement::parseAttribute):
11451        * html/HTMLMediaElement.h:
11452        (WebCore::HTMLMediaElement::setNeedWidgetUpdate): Deleted.
11453        * html/HTMLMediaSession.cpp:
11454        (WebCore::HTMLMediaSession::showPlaybackTargetPicker):
11455        (WebCore::HTMLMediaSession::hasWirelessPlaybackTargets):
11456        (WebCore::HTMLMediaSession::setHasPlaybackTargetAvailabilityListeners):
11457        * html/HTMLVideoElement.cpp:
11458        (WebCore::HTMLVideoElement::createElementRenderer):
11459        (WebCore::HTMLVideoElement::didAttachRenderers):
11460        (WebCore::HTMLVideoElement::parseAttribute):
11461        (WebCore::HTMLVideoElement::setDisplayMode):
11462        * html/shadow/MediaControlElements.cpp:
11463        (WebCore::MediaControlTextTrackContainerElement::updateSizes):
11464        * loader/EmptyClients.cpp:
11465        (WebCore::EmptyFrameLoaderClient::createMediaPlayerProxyPlugin): Deleted.
11466        * loader/EmptyClients.h:
11467        * loader/FrameLoaderClient.h:
11468        * loader/SubframeLoader.cpp:
11469        (WebCore::SubframeLoader::loadPlugin):
11470        (WebCore::SubframeLoader::loadMediaPlayerProxyPlugin): Deleted.
11471        * loader/SubframeLoader.h:
11472        * page/FrameView.cpp:
11473        (WebCore::FrameView::updateEmbeddedObject):
11474        * page/Settings.cpp:
11475        (WebCore::Settings::setVideoPluginProxyEnabled): Deleted.
11476        * page/Settings.h:
11477        (WebCore::Settings::isVideoPluginProxyEnabled): Deleted.
11478        * platform/graphics/GraphicsLayerClient.h:
11479        (WebCore::GraphicsLayerClient::mediaLayerMustBeUpdatedOnMainThread): Deleted.
11480        * platform/graphics/MediaPlayer.cpp:
11481        (WebCore::installedMediaEngines):
11482        (WebCore::MediaPlayer::MediaPlayer):
11483        (WebCore::MediaPlayer::loadWithNextMediaEngine):
11484        (WebCore::NullMediaPlayerPrivate::deliverNotification): Deleted.
11485        (WebCore::NullMediaPlayerPrivate::setMediaPlayerProxy): Deleted.
11486        (WebCore::NullMediaPlayerPrivate::setControls): Deleted.
11487        (WebCore::MediaPlayer::deliverNotification): Deleted.
11488        (WebCore::MediaPlayer::setMediaPlayerProxy): Deleted.
11489        (WebCore::MediaPlayer::setControls): Deleted.
11490        * platform/graphics/MediaPlayer.h:
11491        * platform/graphics/MediaPlayerPrivate.h:
11492        (WebCore::MediaPlayerPrivateInterface::deliverNotification): Deleted.
11493        (WebCore::MediaPlayerPrivateInterface::setMediaPlayerProxy): Deleted.
11494        (WebCore::MediaPlayerPrivateInterface::setControls): Deleted.
11495        * platform/graphics/ca/GraphicsLayerCA.cpp:
11496        (WebCore::GraphicsLayerCA::updateGeometry):
11497        (WebCore::GraphicsLayerCA::updateContentsRects):
11498        (WebCore::GraphicsLayerCA::mediaLayerMustBeUpdatedOnMainThread): Deleted.
11499        * platform/graphics/ca/GraphicsLayerCA.h:
11500        * rendering/RenderEmbeddedObject.cpp:
11501        (WebCore::RenderEmbeddedObject::canHaveChildren):
11502        * rendering/RenderLayerBacking.cpp:
11503        (WebCore::RenderLayerBacking::mediaLayerMustBeUpdatedOnMainThread): Deleted.
11504        * rendering/RenderLayerBacking.h:
11505        * rendering/RenderLayerCompositor.cpp:
11506        (WebCore::RenderLayerCompositor::requiresCompositingForVideo):
11507
115082014-04-30  Simon Fraser  <simon.fraser@apple.com>
11509
11510        [iOS WK2] Some accerated overflow-scroll doesn't scroll correctly
11511        https://bugs.webkit.org/show_bug.cgi?id=132375
11512
11513        Reviewed by Tim Horton.
11514        
11515        We set the size of the scrolling layer (which becomes the bounds of
11516        the UIScrollView) to a non-pixel-snapped padding box size, but the
11517        size of the contents layer is an integral-snapped scroll size.
11518        This would result in a fractional difference between the two, which
11519        makes us thing that the element is scrollable when it really is not.
11520        
11521        Fix by setting the size of the scroll layer to pixel snapped client size,
11522        which is what we also use for scrollability computation.
11523        
11524        Added some FIXMEs in code that requires pixel snapping.
11525        
11526        Also use #if PLATFORM(IOS)/#else to bracket some code that never runs on iOS
11527        but tries to do something similar to iOS-only code.
11528
11529        * rendering/RenderLayerBacking.cpp:
11530        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
11531
115322014-04-30  David Hyatt  <hyatt@apple.com>
11533
11534        REGRESSION (r168046): [New Multicolumn] Painting order is wrong for columns and fixed positioned elements
11535        https://bugs.webkit.org/show_bug.cgi?id=132377
11536
11537        Reviewed by Simon Fraser.
11538
11539        Added fast/multicol/fixed-stack.html
11540
11541        * rendering/RenderLayer.cpp:
11542        (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
11543        (WebCore::RenderLayer::shouldBeNormalFlowOnly):
11544        Change the flow thread layer for multicolumn layout to be normal flow only and to
11545        stay self-painting. This has the effect of keeping the flow thread layer grouped
11546        with the enclosing multicolumn layer, and this keeps the paint order correct when
11547        compositing kicks in (or when something would otherwise try to get between the
11548        two layers).
11549
115502014-04-30  Eric Carlson  <eric.carlson@apple.com>
11551
11552        [iOS] do not pause video when entering background while playing to external device
11553        https://bugs.webkit.org/show_bug.cgi?id=132374
11554
11555        Reviewed by Jer Noble.
11556
11557        * WebCore.exp.in: Update beginInterruption signature.
11558
11559        * html/HTMLMediaElement.cpp:
11560        (WebCore::HTMLMediaElement::canOverrideBackgroundPlaybackRestriction): New, return true when
11561            playing to external device.
11562        * html/HTMLMediaElement.h:
11563
11564        * platform/audio/MediaSession.cpp:
11565        (WebCore::MediaSession::beginInterruption): Add interruption type to beginInterruption.
11566        * platform/audio/MediaSession.h:
11567
11568        * platform/audio/MediaSessionManager.cpp:
11569        (WebCore::MediaSessionManager::beginInterruption): Ditto.
11570        (WebCore::MediaSessionManager::applicationWillEnterBackground): Ditto.
11571        (WebCore::MediaSessionManager::systemWillSleep): Ditto.
11572        * platform/audio/MediaSessionManager.h:
11573
11574        * platform/audio/ios/AudioDestinationIOS.h:
11575        * platform/audio/ios/MediaSessionManagerIOS.mm:
11576        (-[WebMediaSessionHelper interruption:]): Ditto.
11577
11578        * platform/audio/mac/AudioDestinationMac.h: Make most methods private. Add 
11579            canOverrideBackgroundPlaybackRestriction. Add missing overrides.
11580        * testing/Internals.cpp:
11581        (WebCore::Internals::beginMediaSessionInterruption): Pass interruption type.
11582
115832014-04-30  Manuel Rego Casasnovas  <rego@igalia.com>
11584
11585        Unreviewed, rolling out r167879 and r167942.
11586        https://bugs.webkit.org/show_bug.cgi?id=132408
11587
11588        OrderIterator changes caused regressions in flexbox (Requested
11589        by rego on #webkit).
11590
11591        We're keeping the new layout test introduced in r167942
11592        (fast/flexbox/order-iterator-crash.html) to avoid similar
11593        regressions in the future.
11594
11595        Reverted changesets:
11596
11597        "OrderIterator refactoring to avoid extra loops"
11598        https://bugs.webkit.org/show_bug.cgi?id=119061
11599        http://trac.webkit.org/changeset/167879
11600
11601        "REGRESSION (r167879): Heap-use-after-free in
11602        WebCore::RenderFlexibleBox"
11603        https://bugs.webkit.org/show_bug.cgi?id=132337
11604        http://trac.webkit.org/changeset/167942
11605
116062014-04-30  Enrica Casucci  <enrica@apple.com>
11607
11608        Cursor gets thinner on empty lines.
11609        https://bugs.webkit.org/show_bug.cgi?id=132411
11610        <rdar://problem/15994556>
11611
11612        Reviewed by Benjamin Poulain.
11613
11614        RenderLineBreak::localCaretRect should not define
11615        locally the constant caretWidth, but use the one from
11616        RenderObject.h which knows about the differences between
11617        iOS and the other platforms.
11618
11619        * rendering/RenderLineBreak.cpp:
11620        (WebCore::RenderLineBreak::localCaretRect):
11621
116222014-04-30  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
11623
11624        [GStreamer] Use GstMetaVideo
11625        https://bugs.webkit.org/show_bug.cgi?id=132247
11626
11627        Reviewed by Philippe Normand.
11628
11629        In WebKitVideoSink we announce the usage of GstMetaVideo, but we do
11630        not use it when handling the video frames. This might break
11631        some decoders and filters that rely on buffer's meta, rather
11632        that in the caps structures.
11633
11634        This patch enables the use of GstMetaVideo through the GstVideoFrame
11635        API. And it is used everywhere the buffer mapping is required.
11636
11637        Also this patch changes to nullptr where zeros were used.
11638
11639        Also, compile conditionally the video buffer conversion when it is
11640        ARGB/BGRA, since it is only required for the Cairo backend.
11641
11642        No new tests, already covered by current tests.
11643
11644        * platform/graphics/gstreamer/GStreamerUtilities.cpp:
11645        (WebCore::getVideoSizeAndFormatFromCaps): init the GstVideoInfo before
11646        used and remove caps fixate check since it is done by
11647        gst_video_info_from_caps().
11648        * platform/graphics/gstreamer/ImageGStreamer.h:
11649        * platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
11650        (ImageGStreamer::ImageGStreamer): use GstVideoFrame for buffer mapping
11651        and unmapping.
11652        (ImageGStreamer::~ImageGStreamer): ditto.
11653        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
11654        (WebCore::MediaPlayerPrivateGStreamerBase::updateTexture): ditto.
11655        (WebCore::MediaPlayerPrivateGStreamerBase::currentVideoSinkCaps):
11656        return nullptr if failed.
11657        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
11658        (webkitVideoSinkRender): rely on GstVideoInfo rather than on the
11659        caps. Use GstVideoFrame for buffer mapping and unmapping. Add guards
11660        for buffer transformation, since it's only used by Cairo.
11661        (webkitVideoSinkDispose): remove glib version guards.
11662        (webkitVideoSinkSetCaps): update the value of the private
11663        GstVideoInfo.
11664
116652014-04-30  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
11666
11667        [GTK][GStreamer] Remove unnecessary GLIB_CHECK_VERSION #ifdefs
11668        https://bugs.webkit.org/show_bug.cgi?id=132390
11669
11670        Reviewed by Philippe Normand.
11671
11672        Since EFL port use GLib 2.38 and GTK+, 2.33.2, I assume it is OK
11673        remove, in GTK+ and GST, the existing glib version guards.
11674
11675        No new tests, already covered by current tests.
11676
11677        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
11678        (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
11679        (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
11680        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
11681        (webkitVideoSinkDispose):
11682        (webkitVideoSinkFinalize): Deleted.
11683
116842014-04-30  Alex Christensen  <achristensen@webkit.org>
11685
11686        Updated ANGLE.
11687        https://bugs.webkit.org/show_bug.cgi?id=132367
11688        <rdar://problem/16211451>
11689
11690        Reviewed by Dean Jackson.
11691
11692        * CMakeLists.txt
11693        Fixed ANGLE compiling with the update.
11694        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
11695        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
11696        Removed SH_MAP_LONG_VARIABLE_NAMES which is no longer defined in ANGLE.
11697        See https://chromium.googlesource.com/angle/angle/+/3cdfcce86b38ef31a0afd71855887193a7924468
11698        * platform/graphics/opengl/Extensions3DOpenGLES.h:
11699        * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
11700        Updated type names from ANGLE.
11701
117022014-04-30  Alexey Proskuryakov  <ap@apple.com>
11703
11704        Move Blob.slice() implementation into BlobRegistryImpl
11705        https://bugs.webkit.org/show_bug.cgi?id=132402
11706
11707        Reviewed by Anders Carlsson.
11708
11709        Part or centralizing the responsibility for file size tracking.
11710
11711        * fileapi/Blob.cpp:
11712        (WebCore::Blob::Blob):
11713        (WebCore::Blob::slice): Deleted.
11714        * fileapi/Blob.h:
11715        (WebCore::Blob::slice):
11716        * fileapi/ThreadableBlobRegistry.cpp:
11717        (WebCore::ThreadableBlobRegistry::registerBlobURL):
11718        (WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):
11719        (WebCore::registerBlobURLTask): Deleted.
11720        (WebCore::registerBlobURLFromTask): Deleted.
11721        * fileapi/ThreadableBlobRegistry.h:
11722        * platform/network/BlobRegistry.h:
11723        * platform/network/BlobRegistryImpl.cpp:
11724        (WebCore::BlobRegistryImpl::appendStorageItems):
11725        (WebCore::BlobRegistryImpl::registerBlobURLForSlice):
11726        (WebCore::BlobRegistryImpl::blobSize):
11727        * platform/network/BlobRegistryImpl.h:
11728
117292014-04-30  Brent Fulgham  <bfulgham@apple.com>
11730
11731        Unreviewed build fix after r168041.
11732
11733        * WebCore.exp.in: Add missing iOS exports.
11734
117352014-04-30  Beth Dakin  <bdakin@apple.com>
11736
11737        Always-visible scrollbars continuously repaint after non-momentum scrollling
11738        https://bugs.webkit.org/show_bug.cgi?id=132403
11739        -and corresponding-
11740        <rdar://problem/16553878>
11741
11742        Reviewed by Simon Fraser.
11743
11744        No longer universally opt into presentation value mode whenever the scroll 
11745        position changes on the scrolling thread. We really only want it for momentum 
11746        scrolls, and this will ensure that we always set it to NO once we have set it to 
11747        YES.
11748        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
11749        (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
11750        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
11751
11752        Expose shouldUsePresentationValue.
11753        * platform/mac/NSScrollerImpDetails.h:
11754
117552014-04-30  Anders Carlsson  <andersca@apple.com>
11756
11757        Move the legacy WebKit API into WebKitLegacy.framework and move it inside WebKit.framework
11758        https://bugs.webkit.org/show_bug.cgi?id=132399
11759        <rdar://problem/15920046>
11760
11761        Reviewed by Dan Bernstein.
11762
11763        Allow WebKitLegacy to link against WebCore.
11764
11765        * Configurations/WebCore.xcconfig:
11766
117672014-04-30  David Hyatt  <hyatt@apple.com>
11768
11769        [New Multicolumn] ASSERTs in fast/dynamic/continuation-detach-crash.html
11770        https://bugs.webkit.org/show_bug.cgi?id=132392
11771
11772        Reviewed by Dean Jackson.
11773
11774        * rendering/RenderFlowThread.cpp:
11775        (WebCore::RenderFlowThread::setRegionRangeForBox):
11776        Add ASSERTs in case we ever try to set regions from the wrong flow thread
11777        as part of the box's region range.
11778
11779        * rendering/RenderMultiColumnFlowThread.cpp:
11780        (WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
11781        Add a bunch of code that handles the discovery of a span from an outer flow thread
11782        being inserted into an inner flow thread. This forces us to delete that placeholder
11783        and shift the outer spanning content into the inner flow thread in order to get a new
11784        mapping/placeholder created in the inner flow thread.
11785
11786        (WebCore::RenderMultiColumnFlowThread::flowThreadRelativeWillBeRemoved):
11787        Tighten this code to use the parent() just in case we change the invariant of
11788        parent = containingBlock later.
11789
11790        * rendering/RenderMultiColumnFlowThread.h:
11791        Add a static guard when shifting a spanner to prevent the outer flow thread from
11792        thinking the spanner belongs to it when it gets punted out of the inner flow thread.
11793        A better long-term solution might be to make the spanner map global instead of
11794        per-flow thread.
11795
11796        * rendering/RenderMultiColumnSpannerPlaceholder.cpp:
11797        (WebCore::RenderMultiColumnSpannerPlaceholder::RenderMultiColumnSpannerPlaceholder):
11798        * rendering/RenderMultiColumnSpannerPlaceholder.h:
11799        Cache the flow thread so that we can get back to it in order to detect if the
11800        placeholder belongs to us or not.
11801
11802        * rendering/RenderObject.cpp:
11803        (WebCore::RenderObject::insertedIntoTree):
11804        Notifications from insertedIntoTree are problematic, since this can be called during
11805        the layout of the outer flow thread for content inside an inner flow thread that is
11806        not getting a layout yet. This makes the currentFlowThread in the flow thread controller
11807        inaccurate, so we have to add code to clear it out and put it back.
11808
118092014-04-29  Chris Fleizach  <cfleizach@apple.com>
11810
11811        AX: Make "contenteditable" regions into AXTextAreas
11812        https://bugs.webkit.org/show_bug.cgi?id=132379
11813
11814        Reviewed by Mario Sanchez Prada.
11815
11816        Make contenteditable regions into AXTextAreas. This will allow for a more standardized
11817        interface for interaction with assistive technologies.
11818
11819        Test: accessibility/content-editable-as-textarea.html
11820
11821        * accessibility/AccessibilityNodeObject.cpp:
11822        (WebCore::AccessibilityNodeObject::hasContentEditableAttributeSet):
11823        * accessibility/AccessibilityObject.cpp:
11824        (WebCore::AccessibilityObject::contentEditableAttributeIsEnabled):
11825        * accessibility/AccessibilityObject.h:
11826        * accessibility/AccessibilityRenderObject.cpp:
11827        (WebCore::AccessibilityRenderObject::documentBasedSelectedTextRange):
11828        (WebCore::AccessibilityRenderObject::selectedText):
11829        (WebCore::AccessibilityRenderObject::selectedTextRange):
11830        (WebCore::AccessibilityRenderObject::renderObjectIsObservable):
11831        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
11832        (WebCore::AccessibilityRenderObject::ariaSelectedTextRange): Deleted.
11833        * accessibility/AccessibilityRenderObject.h:
11834
118352014-04-30  Brian J. Burg  <burg@cs.washington.edu>
11836
11837        Clean up unnecessary methods in the BackForwardClient interface
11838        https://bugs.webkit.org/show_bug.cgi?id=131637
11839
11840        Reviewed by Andreas Kling.
11841
11842        Demote back/current/forwardItem and iOS-specific methods from the
11843        BackForwardClient interface. Convert the class to not be refcounted.
11844
11845        No new tests, no behavior was changed.
11846
11847        * WebCore.exp.in:
11848        * history/BackForwardClient.h:
11849        (WebCore::BackForwardClient::~BackForwardClient): Deleted.
11850        (WebCore::BackForwardClient::backItem): Deleted.
11851        (WebCore::BackForwardClient::currentItem): Deleted.
11852        (WebCore::BackForwardClient::forwardItem): Deleted.
11853        * history/BackForwardController.cpp:
11854        (WebCore::BackForwardController::BackForwardController):
11855        * history/BackForwardController.h: Take ownership of the passed BackForwardClient.
11856        (WebCore::BackForwardController::client): Return a reference.
11857        * history/BackForwardList.h: Remove the Page field, since it isn't used any more.
11858        (WebCore::BackForwardList::create): Deleted.
11859        * page/Page.h: Remove RefPtr from PageClient.
11860        * page/Page.cpp:
11861        (WebCore::PageClients::PageClients): Initialize client to nullptr.
11862
118632014-04-30  Brent Fulgham  <bfulgham@apple.com>
11864
11865        [Mac, iOS] Support caption activation via JS webkitHasClosedCaptions method
11866        https://bugs.webkit.org/show_bug.cgi?id=132320
11867
11868        Reviewed by Eric Carlson.
11869
11870        * Modules/mediacontrols/mediaControlsApple.css:
11871        (video::-webkit-media-text-track-container .hidden): Added.
11872        * html/HTMLMediaElement.cpp:
11873        (WebCore::HTMLMediaElement::configureTextTrackGroup): Added call to
11874        new 'updateCaptionsContainer'.
11875        (WebCore::HTMLMediaElement::updateCaptionContainer): Added.
11876        * html/HTMLMediaElement.h:
11877
118782014-04-30  Alexey Proskuryakov  <ap@apple.com>
11879
11880        https://bugs.webkit.org/show_bug.cgi?id=132363
11881        Make Blob RawData immutable
11882
11883        Reviewed by Anders Carlsson.
11884
11885        * Modules/websockets/WebSocket.cpp: (WebCore::WebSocket::didReceiveBinaryData):
11886        Create RawData in one step.
11887
11888        * WebCore.exp.in: Don't export a constructor that we no longer have (and the new one is inline).
11889
11890        * fileapi/Blob.cpp: Removed entirely dead code.
11891
11892        * fileapi/WebKitBlobBuilder.cpp:
11893        * fileapi/WebKitBlobBuilder.h:
11894        Updated to collect data in a plain Vector, so that we don't have to modify RawData.
11895        Removed FIXMEs about renaming - there used to be a BlobBuilder exposed to JS, but
11896        now this is just a helper to implement JS Blob constructor. We should probably
11897        still rename it, but not how the FIXME suggested.
11898
11899        * platform/network/BlobData.cpp:
11900        (WebCore::BlobDataItem::detachFromCurrentThread): RawData::detachFromCurrentThread()
11901        was a no-op.
11902        (WebCore::BlobDataHandle::BlobDataHandle): Deleted. This was entirely dead code.
11903        (WebCore::BlobDataHandle::~BlobDataHandle): Ditto.
11904
11905        * platform/network/BlobData.h: Made RawData immutable.
11906
11907        * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseBlob):
11908        Create RawData in one step.
11909
119102014-04-30  David Hyatt  <hyatt@apple.com>
11911
11912        [New Multicolumn] Region offset not factored in when mapping to local coords
11913        https://bugs.webkit.org/show_bug.cgi?id=132383
11914
11915        Reviewed by Anders Carlsson.
11916
11917        Make sure to cache the offset of the multicolumn set from its parent and then
11918        add that in to the translation offset.
11919
11920        * rendering/RenderMultiColumnFlowThread.cpp:
11921        (WebCore::RenderMultiColumnFlowThread::mapAbsoluteToLocalPoint):
11922
119232014-04-30  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
11924
11925        Move removeEquivalentProperties functions to EditingStyle
11926        https://bugs.webkit.org/show_bug.cgi?id=131093
11927
11928        Reviewed by Csaba Osztrogonác.
11929
11930        A follow-up to r167967. Use single line declaration for template methods.
11931
11932        * editing/EditingStyle.h:
11933
119342014-04-30  Manuel Rego Casasnovas  <rego@igalia.com>
11935
11936        [CSS Grid Layout] Enable runtime feature by default
11937        https://bugs.webkit.org/show_bug.cgi?id=132189
11938
11939        Reviewed by Benjamin Poulain.
11940
11941        * page/Settings.in: Set cssGridLayoutEnabled to true.
11942
119432014-04-30  Manuel Rego Casasnovas  <rego@igalia.com>
11944
11945        [CSS Grid Layout] Wrap some specific grid code under compilation flag
11946        https://bugs.webkit.org/show_bug.cgi?id=132341
11947
11948        Reviewed by Benjamin Poulain.
11949
11950        Some static variables in RenderBox are only used for CSS Grid Layout code. Wrap them and the related methods
11951        under ENABLE_CSS_GRID_LAYOUT compilation flag.
11952
11953        * rendering/RenderBox.cpp:
11954        (WebCore::RenderBox::willBeDestroyed):
11955        (WebCore::RenderBox::containingBlockLogicalWidthForContent):
11956        (WebCore::RenderBox::containingBlockLogicalHeightForContent):
11957        (WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
11958        (WebCore::RenderBox::computePercentageLogicalHeight):
11959        * rendering/RenderBox.h:
11960
119612014-04-29  Commit Queue  <commit-queue@webkit.org>
11962
11963        Unreviewed, rolling out r167962 and r167975.
11964        https://bugs.webkit.org/show_bug.cgi?id=132376
11965
11966        Mysteriously broke many tests (Requested by ap on #webkit).
11967
11968        Reverted changesets:
11969
11970        "[Mac, iOS] Support caption activation via JS
11971        webkitHasClosedCaptions method"
11972        https://bugs.webkit.org/show_bug.cgi?id=132320
11973        http://trac.webkit.org/changeset/167962
11974
11975        "Unreviewed test fix after r167962."
11976        http://trac.webkit.org/changeset/167975
11977
119782014-04-29  David Hyatt  <hyatt@apple.com>
11979
11980        [New Multicolumn] Multiple tests assert in RenderGeometryMap
11981        https://bugs.webkit.org/show_bug.cgi?id=132285
11982
11983        Reviewed by Simon Fraser.
11984
11985        Implement offsetFromContainer for RenderMultiColumnFlowThread so that the
11986        geometry map gets the right offsets. This is really only relevant for the 
11987        geometry map, since I already overrode mapAbsoluteToLocalPoint and multicolumn
11988        flow threads are repaint containers (so mapLocalToAbsolute never needs offsetFromContainer).
11989
11990        * rendering/RenderMultiColumnFlowThread.cpp:
11991        (WebCore::RenderMultiColumnFlowThread::offsetFromContainer):
11992        * rendering/RenderMultiColumnFlowThread.h:
11993
119942014-04-29  Benjamin Poulain  <bpoulain@apple.com>
11995
11996        [iOS][WK2] When pageScaleFactor * deviceScaleFactor = 1, the tile grid is completely messed up
11997        https://bugs.webkit.org/show_bug.cgi?id=132368
11998
11999        Reviewed by Simon Fraser.
12000
12001        * platform/graphics/ca/mac/TileController.mm:
12002        (WebCore::TileController::TileController):
12003        The initial device scale factor was initialized to 1. We were returning the wrong zoomedOutContentsScale() and
12004        contentsScale() on retina devices until the next successful scale update.
12005
120062014-04-29  Alexey Proskuryakov  <ap@apple.com>
12007
12008        Remove an unused override of BlobRegistryImpl::appendStorageItems
12009        https://bugs.webkit.org/show_bug.cgi?id=132365
12010
12011        Reviewed by Andreas Kling.
12012
12013        * platform/network/BlobRegistryImpl.cpp:
12014        (WebCore::BlobRegistryImpl::appendStorageItems): Deleted.
12015        * platform/network/BlobRegistryImpl.h:
12016
120172014-04-29  Eric Carlson  <eric.carlson@apple.com>
12018
12019        [Mac] tag the video layers with descriptive name to aid debugging
12020        https://bugs.webkit.org/show_bug.cgi?id=132371
12021
12022        Reviewed by Darin Adler.
12023
12024        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
12025        (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Set the AVPlayerLayer
12026            name in a debug build.
12027
120282014-04-29  Nikos Andronikos  <nikos.andronikos-webkit@cisra.canon.com.au>
12029
12030        [GTK][cmake] CMake variable (non)expansion causing 'File name too long' build error.
12031        https://bugs.webkit.org/show_bug.cgi?id=132244
12032
12033        Reviewed by Martin Robinson.
12034
12035        Removing quotes around include directory variable ${WebCore_INCLUDE_DIRECTORIES} in
12036        the include_directories cmake macro enables the variable to be expanded correctly.
12037
12038        No tests created as this fixes a platform specific build issue.
12039
12040        * PlatformGTK.cmake:
12041
120422014-04-29  Brent Fulgham  <bfulgham@apple.com>
12043
12044        Unreviewed test fix after r167962.
12045        * Modules/mediacontrols/mediaControlsApple.css:
12046        (.hidden): Use common '.hidden' class for controls.
12047        (video::-webkit-media-text-track-container .hidden): Deleted.
12048
120492014-04-29  Brady Eidson  <beidson@apple.com>
12050
12051        Handle selection services menu.
12052        <rdar://problem/16727798> and https://bugs.webkit.org/show_bug.cgi?id=132362
12053
12054        Reviewed by Tim Horton.
12055
12056        * WebCore.exp.in:
12057
120582014-04-29  Myles C. Maxfield  <mmaxfield@apple.com>
12059
12060        Removing unused argument in InlineFlowBox::placeBoxesInInlineDirection()
12061        https://bugs.webkit.org/show_bug.cgi?id=132369
12062
12063        Reviewed by Darin Adler.
12064
12065        This was not caught by our compiler because placeBoxesInInlineDirection()
12066        is mutually-recursive with placeBoxRangeInInlineDirection().
12067
12068        No new tests are necessary because there should be no behavior change.
12069
12070        * rendering/InlineFlowBox.cpp:
12071        (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
12072        (WebCore::InlineFlowBox::placeBoxRangeInInlineDirection):
12073        * rendering/InlineFlowBox.h:
12074        * rendering/RenderBlockLineLayout.cpp:
12075        (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine):
12076
120772014-04-29  Alex Christensen  <achristensen@webkit.org>
12078
12079        [WinCairo] Switch video from GStreamer to Media Foundation.
12080        https://bugs.webkit.org/show_bug.cgi?id=132358
12081
12082        Reviewed by Brent Fulgham.
12083
12084        * WebCore.vcxproj/WebCore.vcxproj:
12085        Removed dependencies on GStreamer.
12086
120872014-04-29  Simon Fraser  <simon.fraser@apple.com>
12088
12089        Remove some PLATFORM(IOS) #ifdefs related to hasAcceleratedTouchScrolling()
12090        https://bugs.webkit.org/show_bug.cgi?id=132353
12091
12092        Reviewed by Tim Horton & Darin Adler.
12093
12094        Minor cleanup and refactoring to remove #idefs.
12095
12096        * rendering/RenderLayer.cpp:
12097        (WebCore::RenderLayer::scrollTo): No need for this #ifdef, usesCompositedScrolling()
12098        gives the right answser already.
12099        (WebCore::RenderLayer::visibleContentRectInternal): Use showsOverflowControls() to
12100        avoid #ifdef.
12101        (WebCore::RenderLayer::invalidateScrollbarRect): Ditto.
12102        (WebCore::RenderLayer::invalidateScrollCornerRect): Ditto.
12103        (WebCore::RenderLayer::verticalScrollbarWidth): Ditto.
12104        (WebCore::RenderLayer::horizontalScrollbarHeight): Ditto.
12105        (WebCore::RenderLayer::showsOverflowControls): Return false on iOS.
12106        (WebCore::RenderLayer::paintOverflowControls): Ditto.
12107        (WebCore::RenderLayer::calculateClipRects): Ditto.
12108        * rendering/RenderLayer.h:
12109        * rendering/RenderLayerBacking.cpp:
12110        (WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
12111        Just #ifdef in side of this function rather than having two similar functions.
12112        (WebCore::RenderLayerBacking::shouldClipCompositedBounds):
12113        (WebCore::hasNonZeroTransformOrigin):
12114        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Use a local bool
12115        to reduce #ifdefs.
12116        (WebCore::layerOrAncestorIsTransformedOrScrolling): Deleted.
12117
121182014-04-29  Simon Fraser  <simon.fraser@apple.com>
12119
12120        Remove Settings::compositedScrollingForFramesEnabled
12121        https://bugs.webkit.org/show_bug.cgi?id=132352
12122
12123        Reviewed by Andreas Kling.
12124
12125        The usesCompositedScrolling setting was only used by Chromium, so
12126        remove it and associated code.
12127
12128        * page/FrameView.cpp:
12129        (WebCore::FrameView::usesCompositedScrolling): Deleted.
12130        * page/FrameView.h:
12131        * page/Settings.in:
12132        * rendering/RenderLayerCompositor.cpp:
12133        (WebCore::RenderLayerCompositor::updateScrollLayerPosition):
12134
121352014-04-29  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
12136
12137        Move removeEquivalentProperties functions to EditingStyle
12138        https://bugs.webkit.org/show_bug.cgi?id=131093
12139
12140        Reviewed by Darin Adler.
12141
12142        Moved the removeEquivalentProperties functions
12143        from StyleProperties to EditingStyle class.
12144
12145        * css/StyleProperties.cpp:
12146        (WebCore::MutableStyleProperties::removeEquivalentProperties): Deleted.
12147        * css/StyleProperties.h:
12148        * editing/EditingStyle.cpp:
12149        (WebCore::EditingStyle::removeStyleAddedByNode):
12150        (WebCore::EditingStyle::removeStyleConflictingWithStyleOfNode):
12151        (WebCore::EditingStyle::prepareToApplyAt):
12152        (WebCore::EditingStyle::removeEquivalentProperties):
12153        (WebCore::extractPropertiesNotIn):
12154        * editing/EditingStyle.h:
12155
121562014-04-29  David Hyatt  <hyatt@apple.com>
12157
12158        [New Multicolumn] Implement support for compositing
12159        https://bugs.webkit.org/show_bug.cgi?id=132298
12160
12161        Reviewed by Simon Fraser.
12162
12163        * rendering/RenderLayer.cpp:
12164        (WebCore::accumulateOffsetTowardsAncestor):
12165        Add in a case for the new columns that calls into the multi-column flow thread
12166        to get an offset to adjust by.
12167
12168        * rendering/RenderLayerBacking.cpp:
12169        (WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread):
12170        Make sure this code only runs for named flow threads.
12171
12172        * rendering/RenderLayerCompositor.cpp:
12173        (WebCore::RenderLayerCompositor::canBeComposited):
12174        Turn on compositing support for in-flow RenderFlowThreads instead of always returning
12175        false
12176
12177        * rendering/RenderMultiColumnFlowThread.cpp:
12178        (WebCore::RenderMultiColumnFlowThread::physicalTranslationOffsetFromFlowToRegion):
12179        Changed this function to fix a couple of bugs exposed by compositing/columns tests. Its
12180        end goal is the same, but the approach is improved.
12181
12182        * rendering/RenderMultiColumnSet.cpp:
12183        (WebCore::RenderMultiColumnSet::endFlow):
12184        Don't pad out to a multiple of column height. You can't flip around a flow thread
12185        to get back to accurate physical coordinates if bogus padding is introduced. This
12186        seemed to have no effect on any layout tests when removed, so I don't think it 
12187        was really serving any useful purpose.
12188
12189        (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
12190        Don't factor in the overall flow thread portion, since this is handled by the callers
12191        now.
12192
12193        (WebCore::RenderMultiColumnSet::adjustRegionBoundsFromFlowThreadPortionRect):
12194        * rendering/RenderMultiColumnSet.h:
12195        Change this function to be ASSERT_NOT_REACHED(), since we want to know if someone calls
12196        it. It only runs for named flow thread compositing code, so it would be a mistake if
12197        this ever gets invoked.
12198
121992014-04-29  Mark Hahnenberg  <mhahnenberg@apple.com>
12200
12201        JSProxies should be cacheable
12202        https://bugs.webkit.org/show_bug.cgi?id=132351
12203
12204        Reviewed by Geoffrey Garen.
12205
12206        No new tests.
12207
12208        Whenever we encounter a proxy in an inline cache we should try to cache on the 
12209        proxy's target instead of giving up.
12210
12211        This patch adds support for a simple "recursive" inline cache if the base object
12212        we're accessing is a pure forwarding proxy. JSGlobalObject and its subclasses 
12213        are the only ones to benefit from this right now.
12214
12215        This is performance neutral on the benchmarks we track. Currently we won't
12216        cache on JSDOMWindow due to HasImpureGetOwnPropertySlot, but this issue will be fixed soon.
12217
12218        * bindings/js/JSDOMWindowShell.h:
12219        (WebCore::JSDOMWindowShell::createStructure):
12220
122212014-04-29  Brent Fulgham  <bfulgham@apple.com>
12222
12223        [Mac, iOS] Support caption activation via JS webkitHasClosedCaptions method
12224        https://bugs.webkit.org/show_bug.cgi?id=132320
12225
12226        Reviewed by Eric Carlson.
12227
12228        * Modules/mediacontrols/mediaControlsApple.css:
12229        (video::-webkit-media-text-track-container .hidden): Added.
12230        * html/HTMLMediaElement.cpp:
12231        (WebCore::HTMLMediaElement::configureTextTrackGroup): Added call to
12232        new 'updateCaptionsContainer'.
12233        (WebCore::HTMLMediaElement::updateCaptionContainer): Added.
12234        * html/HTMLMediaElement.h:
12235        * html/shadow/MediaControlElements.cpp:
12236        (WebCore::MediaControlTextTrackContainerElement::hide): Use CSS class .hidden instead of
12237        hard-coded "display:none".
12238        (WebCore::MediaControlTextTrackContainerElement::show): Ditto.
12239        * html/shadow/MediaControlElements.h:
12240
122412014-04-28  Roger Fong  <roger_fong@apple.com>
12242
12243        Plugins hidden by images should autoplay.
12244        https://bugs.webkit.org/show_bug.cgi?id=132222.
12245        <rdar://problem/16653536>
12246
12247        Reviewed by Jon Lee and Darin Adler.
12248
12249        * WebCore.exp.in: Add exports needed by WK2.
12250
122512014-04-29  Filip Pizlo  <fpizlo@apple.com>
12252
12253        Use LLVM as a backend for the fourth-tier DFG JIT (a.k.a. the FTL JIT)
12254        https://bugs.webkit.org/show_bug.cgi?id=112840
12255
12256        Rubber stamped by Geoffrey Garen.
12257
12258        It already has a lot of tests.
12259
12260        * Configurations/FeatureDefines.xcconfig:
12261
122622014-04-29  Brady Eidson  <beidson@apple.com>
12263
12264        Change Image Controls replacement to use selection and paste
12265        <rdar://problem/16302722> and https://bugs.webkit.org/show_bug.cgi?id=131992
12266
12267        Reviewed by Tim Horton.
12268
12269        * WebCore.exp.in: Remove deleted symbol.
12270
12271        * html/shadow/mac/ImageControlsButtonElementMac.cpp:
12272        (WebCore::ImageControlsButtonElementMac::defaultEventHandler):
12273
12274        * page/ContextMenuController.cpp:
12275        (WebCore::ContextMenuController::showImageControlsMenu): Select the image element
12276          before showing the menu.
12277        (WebCore::ContextMenuController::replaceControlledImage): Deleted.
12278        * page/ContextMenuController.h:
12279
122802014-04-29  Jer Noble  <jer.noble@apple.com>
12281
12282        [iOS] Remove workaround for <rdar://problem/16578727>.
12283        https://bugs.webkit.org/show_bug.cgi?id=132338
12284
12285        Reviewed by Darin Adler.
12286
12287        Now that <rdar://problem/16578727> is fixed, remove the workaround by replacing the
12288        call to -_updatePlaybackControlsViewController with one to -layoutIfNeeded.
12289
12290        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
12291        (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
12292
122932014-04-29  Zan Dobersek  <zdobersek@igalia.com>
12294
12295        ScriptExecutionContext::Task should work well with C++11 lambdas
12296        https://bugs.webkit.org/show_bug.cgi?id=129795
12297
12298        Reviewed by Darin Adler.
12299
12300        Instead of having classes that subclass ScriptExecutionContext::Task and override
12301        the performTask(ScriptExecutionContext*) method, have the ScriptExecutionContext::Task
12302        take in a std::function<void (ScriptExecutionContext*)>-like object trough the constructor
12303        which would contain the code currently kept in the performTask() methods.
12304
12305        This enables inlining C++11 lambdas into ScriptExecutionContext::postTask() calls. For
12306        cleanup tasks, the Task object can be implicitly constructed by using the initializer list
12307        constructor with the first argument being the ScriptExecutionContext::Task::CleanupTask tag.
12308        The ScriptExecutionContext class remains non-copyable and now stores the passed-in invokable
12309        object in the std::function wrapper, along with a boolean member that indicates whether the
12310        task is of cleanup nature.
12311
12312        * Modules/quota/StorageErrorCallback.cpp:
12313        (WebCore::StorageErrorCallback::CallbackTask::CallbackTask):
12314        (WebCore::StorageErrorCallback::CallbackTask::performTask): Deleted.
12315        * Modules/quota/StorageErrorCallback.h:
12316        (WebCore::StorageErrorCallback::CallbackTask::create): Deleted.
12317        * Modules/webdatabase/Database.cpp:
12318        (WebCore::Database::~Database):
12319        (WebCore::Database::runTransaction):
12320        (WebCore::Database::scheduleTransactionCallback):
12321        (WebCore::DerefContextTask::create): Deleted.
12322        (WebCore::DerefContextTask::performTask): Deleted.
12323        (WebCore::DerefContextTask::isCleanupTask): Deleted.
12324        (WebCore::DerefContextTask::DerefContextTask): Deleted.
12325        (WebCore::callTransactionErrorCallback): Deleted.
12326        (WebCore::DeliverPendingCallbackTask::create): Deleted.
12327        (WebCore::DeliverPendingCallbackTask::performTask): Deleted.
12328        (WebCore::DeliverPendingCallbackTask::DeliverPendingCallbackTask): Deleted.
12329        * Modules/webdatabase/DatabaseManager.cpp:
12330        (WebCore::DatabaseManager::openDatabase):
12331        (WebCore::DatabaseCreationCallbackTask::create): Deleted.
12332        (WebCore::DatabaseCreationCallbackTask::performTask): Deleted.
12333        (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask): Deleted.
12334        * Modules/webdatabase/DatabaseSync.cpp:
12335        (WebCore::CloseSyncDatabaseOnContextThreadTask::create): Deleted.
12336        (WebCore::CloseSyncDatabaseOnContextThreadTask::performTask): Deleted.
12337        (WebCore::CloseSyncDatabaseOnContextThreadTask::CloseSyncDatabaseOnContextThreadTask): Deleted.
12338        * Modules/webdatabase/SQLCallbackWrapper.h:
12339        (WebCore::SQLCallbackWrapper::clear):
12340        (WebCore::SQLCallbackWrapper::SafeReleaseTask::create): Deleted.
12341        (WebCore::SQLCallbackWrapper::SafeReleaseTask::performTask): Deleted.
12342        (WebCore::SQLCallbackWrapper::SafeReleaseTask::isCleanupTask): Deleted.
12343        (WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask): Deleted.
12344        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
12345        (WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
12346        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
12347        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
12348        (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
12349        (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
12350        (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
12351        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
12352        (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
12353        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
12354        * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
12355        (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
12356        (WebCore::WorkerThreadableWebSocketChannel::mainThreadDestroy):
12357        (WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
12358        (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::create): Deleted.
12359        (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::~WorkerGlobalScopeDidInitializeTask): Deleted.
12360        (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::WorkerGlobalScopeDidInitializeTask): Deleted.
12361        * Modules/websockets/WorkerThreadableWebSocketChannel.h:
12362        * bindings/js/JSCallbackData.h:
12363        (WebCore::DeleteCallbackDataTask::DeleteCallbackDataTask):
12364        (WebCore::DeleteCallbackDataTask::create): Deleted.
12365        (WebCore::DeleteCallbackDataTask::performTask): Deleted.
12366        (WebCore::DeleteCallbackDataTask::isCleanupTask): Deleted.
12367        * bindings/js/JSDOMGlobalObjectTask.cpp:
12368        (WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
12369        (WebCore::JSGlobalObjectTask::~JSGlobalObjectTask): Deleted.
12370        (WebCore::JSGlobalObjectTask::performTask): Deleted.
12371        * bindings/js/JSDOMGlobalObjectTask.h:
12372        * bindings/js/JSDOMWindowBase.cpp:
12373        (WebCore::JSDOMWindowBase::queueTaskToEventLoop):
12374        * bindings/js/JSWorkerGlobalScopeBase.cpp:
12375        (WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):
12376        * bindings/scripts/CodeGeneratorJS.pm:
12377        * bindings/scripts/test/JS/JSTestCallback.cpp:
12378        (WebCore::JSTestCallback::~JSTestCallback):
12379        (GenerateCallbackImplementation):
12380        * dom/CrossThreadTask.h:
12381        (WebCore::CrossThreadTask1::performTask):
12382        (WebCore::CrossThreadTask2::performTask):
12383        (WebCore::CrossThreadTask3::performTask):
12384        (WebCore::CrossThreadTask4::performTask):
12385        (WebCore::CrossThreadTask5::performTask):
12386        (WebCore::CrossThreadTask6::performTask):
12387        (WebCore::CrossThreadTask7::performTask):
12388        (WebCore::CrossThreadTask8::performTask):
12389        (WebCore::createCallbackTask):
12390        (WebCore::CrossThreadTask1::create): Deleted.
12391        (WebCore::CrossThreadTask2::create): Deleted.
12392        (WebCore::CrossThreadTask3::create): Deleted.
12393        (WebCore::CrossThreadTask4::create): Deleted.
12394        (WebCore::CrossThreadTask5::create): Deleted.
12395        (WebCore::CrossThreadTask6::create): Deleted.
12396        (WebCore::CrossThreadTask7::create): Deleted.
12397        (WebCore::CrossThreadTask8::create): Deleted.
12398        * dom/Document.cpp:
12399        (WebCore::Document::addConsoleMessage):
12400        (WebCore::Document::addMessage):
12401        (WebCore::Document::postTask):
12402        (WebCore::Document::pendingTasksTimerFired):
12403        (WebCore::PerformTaskContext::PerformTaskContext): Deleted.
12404        (WebCore::Document::didReceiveTask): Deleted.
12405        * dom/Document.h:
12406        * dom/ScriptExecutionContext.cpp:
12407        (WebCore::ScriptExecutionContext::processMessagePortMessagesSoon):
12408        (WebCore::ScriptExecutionContext::timerAlignmentInterval):
12409        (WebCore::ProcessMessagesSoonTask::create): Deleted.
12410        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::performTask): Deleted.
12411        (WebCore::ScriptExecutionContext::Task::~Task): Deleted.
12412        * dom/ScriptExecutionContext.h:
12413        (WebCore::ScriptExecutionContext::Task::Task):
12414        (WebCore::ScriptExecutionContext::Task::performTask):
12415        (WebCore::ScriptExecutionContext::Task::isCleanupTask):
12416        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
12417        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::create): Deleted.
12418        * dom/StringCallback.cpp:
12419        (WebCore::StringCallback::scheduleCallback):
12420        * loader/appcache/ApplicationCacheGroup.cpp:
12421        (WebCore::ApplicationCacheGroup::postListenerTask):
12422        (WebCore::CallCacheListenerTask::create): Deleted.
12423        (WebCore::CallCacheListenerTask::CallCacheListenerTask): Deleted.
12424        * workers/DefaultSharedWorkerRepository.cpp:
12425        (WebCore::SharedWorkerProxy::postTaskToLoader):
12426        (WebCore::SharedWorkerProxy::postTaskForModeToWorkerGlobalScope):
12427        (WebCore::SharedWorkerConnectTask::SharedWorkerConnectTask):
12428        (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
12429        (WebCore::DefaultSharedWorkerRepository::connectToWorker):
12430        (WebCore::SharedWorkerConnectTask::create): Deleted.
12431        (WebCore::SharedWorkerConnectTask::performTask): Deleted.
12432        * workers/WorkerEventQueue.cpp:
12433        (WebCore::WorkerEventQueue::EventDispatcher::EventDispatcher):
12434        (WebCore::WorkerEventQueue::EventDispatcher::~EventDispatcher):
12435        (WebCore::WorkerEventQueue::EventDispatcher::dispatch):
12436        (WebCore::WorkerEventQueue::enqueueEvent):
12437        (WebCore::WorkerEventQueue::cancelEvent):
12438        (WebCore::WorkerEventQueue::close):
12439        * workers/WorkerEventQueue.h:
12440        * workers/WorkerGlobalScope.cpp:
12441        (WebCore::WorkerGlobalScope::close):
12442        (WebCore::WorkerGlobalScope::postTask):
12443        (WebCore::WorkerGlobalScope::addConsoleMessage):
12444        (WebCore::WorkerGlobalScope::addMessage):
12445        (WebCore::CloseWorkerGlobalScopeTask::create): Deleted.
12446        (WebCore::CloseWorkerGlobalScopeTask::performTask): Deleted.
12447        (WebCore::CloseWorkerGlobalScopeTask::isCleanupTask): Deleted.
12448        * workers/WorkerGlobalScope.h:
12449        * workers/WorkerLoaderProxy.h:
12450        * workers/WorkerMessagingProxy.cpp:
12451        (WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
12452        (WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
12453        (WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope):
12454        (WebCore::WorkerMessagingProxy::postTaskToLoader):
12455        (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
12456        (WebCore::WorkerMessagingProxy::workerThreadCreated):
12457        (WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
12458        (WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyed):
12459        (WebCore::WorkerMessagingProxy::workerGlobalScopeClosed):
12460        (WebCore::WorkerMessagingProxy::postMessageToPageInspector):
12461        (WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject):
12462        (WebCore::WorkerMessagingProxy::reportPendingActivity):
12463        (WebCore::MessageWorkerGlobalScopeTask::create): Deleted.
12464        (WebCore::MessageWorkerGlobalScopeTask::MessageWorkerGlobalScopeTask): Deleted.
12465        (WebCore::MessageWorkerGlobalScopeTask::performTask): Deleted.
12466        (WebCore::MessageWorkerTask::create): Deleted.
12467        (WebCore::MessageWorkerTask::MessageWorkerTask): Deleted.
12468        (WebCore::MessageWorkerTask::performTask): Deleted.
12469        (WebCore::WorkerExceptionTask::create): Deleted.
12470        (WebCore::WorkerExceptionTask::WorkerExceptionTask): Deleted.
12471        (WebCore::WorkerExceptionTask::performTask): Deleted.
12472        (WebCore::WorkerGlobalScopeDestroyedTask::create): Deleted.
12473        (WebCore::WorkerGlobalScopeDestroyedTask::WorkerGlobalScopeDestroyedTask): Deleted.
12474        (WebCore::WorkerGlobalScopeDestroyedTask::performTask): Deleted.
12475        (WebCore::WorkerTerminateTask::create): Deleted.
12476        (WebCore::WorkerTerminateTask::WorkerTerminateTask): Deleted.
12477        (WebCore::WorkerTerminateTask::performTask): Deleted.
12478        (WebCore::WorkerThreadActivityReportTask::create): Deleted.
12479        (WebCore::WorkerThreadActivityReportTask::WorkerThreadActivityReportTask): Deleted.
12480        (WebCore::WorkerThreadActivityReportTask::performTask): Deleted.
12481        (WebCore::PostMessageToPageInspectorTask::create): Deleted.
12482        (WebCore::PostMessageToPageInspectorTask::PostMessageToPageInspectorTask): Deleted.
12483        (WebCore::PostMessageToPageInspectorTask::performTask): Deleted.
12484        (WebCore::NotifyNetworkStateChangeTask::create): Deleted.
12485        (WebCore::NotifyNetworkStateChangeTask::NotifyNetworkStateChangeTask): Deleted.
12486        (WebCore::NotifyNetworkStateChangeTask::performTask): Deleted.
12487        * workers/WorkerMessagingProxy.h:
12488        * workers/WorkerRunLoop.cpp:
12489        (WebCore::WorkerRunLoop::postTask):
12490        (WebCore::WorkerRunLoop::postTaskAndTerminate):
12491        (WebCore::WorkerRunLoop::postTaskForMode):
12492        (WebCore::WorkerRunLoop::Task::create):
12493        (WebCore::WorkerRunLoop::Task::performTask):
12494        (WebCore::WorkerRunLoop::Task::Task):
12495        * workers/WorkerRunLoop.h:
12496        * workers/WorkerThread.cpp:
12497        (WebCore::WorkerThread::stop):
12498        (WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):
12499        (WebCore::WorkerThreadShutdownFinishTask::create): Deleted.
12500        (WebCore::WorkerThreadShutdownFinishTask::performTask): Deleted.
12501        (WebCore::WorkerThreadShutdownFinishTask::isCleanupTask): Deleted.
12502        (WebCore::WorkerThreadShutdownStartTask::create): Deleted.
12503        (WebCore::WorkerThreadShutdownStartTask::performTask): Deleted.
12504        (WebCore::WorkerThreadShutdownStartTask::isCleanupTask): Deleted.
12505
125062014-04-29  Manuel Rego Casasnovas  <rego@igalia.com>
12507
12508        REGRESSION (r167879): Heap-use-after-free in WebCore::RenderFlexibleBox
12509        https://bugs.webkit.org/show_bug.cgi?id=132337
12510
12511        Reviewed by Simon Fraser.
12512
12513        From Blink r154582 by <jchaffraix@chromium.org>
12514
12515        This is a regression from the changes in OrderIterator. The issue is
12516        that we don't invalidate our iterator when a child is removed. This
12517        means that we could hold onto free'd memory until the next layout
12518        when we will recompute the iterator.
12519
12520        The solution is simple: just clear the memory when we remove a child.
12521
12522        Note that RenderGrid is not impacted by this bug as we don't use the
12523        iterator outside layout yet, but if we do it at some point the very same
12524        problem will arise, so the same treatment was applied to the class.
12525
12526        Test: fast/flexbox/order-iterator-crash.html
12527
12528        * rendering/OrderIterator.cpp:
12529        (WebCore::OrderIterator::invalidate): Clear m_children Vector.
12530        * rendering/OrderIterator.h:
12531        (WebCore::OrderIteratorPopulator::OrderIteratorPopulator): Use
12532        invalidate() method.
12533        * rendering/RenderFlexibleBox.cpp:
12534        (WebCore::RenderFlexibleBox::removeChild): Invalidate m_orderIterator.
12535        * rendering/RenderFlexibleBox.h: Add removeChild() signature.
12536        * rendering/RenderGrid.cpp: Invalidate m_orderIterator.
12537        (WebCore::RenderGrid::removeChild):
12538        * rendering/RenderGrid.h: Add removeChild() header.
12539
125402014-04-29  Enrica Casucci  <enrica@apple.com>
12541
12542        iOS build fix after http://trac.webkit.org/changeset/167937.
12543        Unreviewed.
12544
12545        * rendering/RenderThemeIOS.mm:
12546        (WebCore::RenderThemeIOS::adjustButtonStyle):
12547
125482014-04-29  Hans Muller  <hmuller@adobe.com>
12549
12550        [CSS Shapes] off-by-one error in Shape::createRasterShape()
12551        https://bugs.webkit.org/show_bug.cgi?id=132154
12552
12553        Reviewed by Bem Jones-Bey.
12554
12555        This is a port of a patch for a bug that was reported by and fixed in Blink by
12556        David Vest: https://codereview.chromium.org/237123002/.  Shape::createRasterShape()
12557        now consistently reports "end-point exclusive" intervals. Before the patch
12558        an entire row of pixels was above the shape-image-threshold, the interval's end
12559        index was reported as image.width. Now it's image.width + 1, which is consistent
12560        with the way the end index is reported if the last above threshold pixel is within
12561        an image row.
12562
12563        Two existing tests were revised to account for this change.
12564
12565        * rendering/shapes/RasterShape.cpp:
12566        (WebCore::RasterShape::getExcludedIntervals):
12567        * rendering/shapes/Shape.cpp:
12568        (WebCore::Shape::createRasterShape):
12569
125702014-04-29  Bem Jones-Bey  <bjonesbe@adobe.com>
12571
12572        Wrap CSS length conversion arguments in an object
12573        https://bugs.webkit.org/show_bug.cgi?id=131552
12574
12575        Reviewed by Andreas Kling.
12576
12577        This patch introduces a class CSSToLengthConversionData to wrap the
12578        data required to convert CSS lengths to Lengths. This simplifies the
12579        plumbing that goes on whenever we need to resolve CSS lengths and
12580        makes it easier to update the arguments needed for resolving these (in
12581        particular adding a RenderView for resolving viewport units at style
12582        recalc time; removing the computingFontSize bool also appears
12583        possible).
12584
12585        Note that the zoom argument, which was previously a float in some
12586        places and a double in others is now a float.
12587
12588        This is a port of a Blink patch by timloh@chromium.org.
12589
12590        No new tests, no behavior change.
12591
12592        * CMakeLists.txt:
12593        * WebCore.vcxproj/WebCore.vcxproj:
12594        * WebCore.xcodeproj/project.pbxproj:
12595        * css/BasicShapeFunctions.cpp:
12596        (WebCore::convertToLength):
12597        (WebCore::convertToLengthSize):
12598        (WebCore::convertToCenterCoordinate):
12599        (WebCore::cssValueToBasicShapeRadius):
12600        (WebCore::basicShapeForValue):
12601        * css/BasicShapeFunctions.h:
12602        * css/CSSCalculationValue.cpp:
12603        (WebCore::CSSCalcValue::computeLengthPx):
12604        (WebCore::determineCategory):
12605        * css/CSSCalculationValue.h:
12606        (WebCore::CSSCalcValue::createCalculationValue):
12607        * css/CSSGradientValue.cpp:
12608        (WebCore::CSSGradientValue::addStops):
12609        (WebCore::positionFromValue):
12610        (WebCore::CSSGradientValue::computeEndPoint):
12611        (WebCore::CSSLinearGradientValue::createGradient):
12612        (WebCore::CSSRadialGradientValue::resolveRadius):
12613        (WebCore::CSSRadialGradientValue::createGradient):
12614        * css/CSSGradientValue.h:
12615        * css/CSSPrimitiveValue.cpp:
12616        (WebCore::CSSPrimitiveValue::computeLength):
12617        (WebCore::CSSPrimitiveValue::computeLengthDouble):
12618        * css/CSSPrimitiveValue.h:
12619        * css/CSSPrimitiveValueMappings.h:
12620        (WebCore::CSSPrimitiveValue::convertToLength):
12621        * css/CSSToLengthConversionData.cpp: Added.
12622        (WebCore::CSSToLengthConversionData::zoom):
12623        * css/CSSToLengthConversionData.h: Added.
12624        (WebCore::CSSToLengthConversionData::CSSToLengthConversionData):
12625        (WebCore::CSSToLengthConversionData::style):
12626        (WebCore::CSSToLengthConversionData::rootStyle):
12627        (WebCore::CSSToLengthConversionData::computingFontSize):
12628        (WebCore::CSSToLengthConversionData::copyWithAdjustedZoom):
12629        * css/CSSToStyleMap.cpp:
12630        (WebCore::CSSToStyleMap::CSSToStyleMap):
12631        (WebCore::CSSToStyleMap::mapFillSize):
12632        (WebCore::CSSToStyleMap::mapFillXPosition):
12633        (WebCore::CSSToStyleMap::mapFillYPosition):
12634        (WebCore::CSSToStyleMap::mapNinePieceImageQuad):
12635        * css/CSSToStyleMap.h:
12636        (WebCore::CSSToStyleMap::CSSToStyleMap): Deleted.
12637        * css/DeprecatedStyleBuilder.cpp:
12638        (WebCore::ApplyPropertyAuto::applyValue):
12639        (WebCore::ApplyPropertyClip::convertToLength):
12640        (WebCore::ApplyPropertyLength::applyValue):
12641        (WebCore::ApplyPropertyBorderRadius::applyValue):
12642        (WebCore::ApplyPropertyComputeLength::applyValue):
12643        (WebCore::ApplyPropertyFontSize::applyValue):
12644        (WebCore::csstoLengthConversionDataWithTextZoomFactor):
12645        (WebCore::ApplyPropertyMarqueeIncrement::applyValue):
12646        (WebCore::ApplyPropertyLineHeight::applyValue):
12647        (WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyValue):
12648        (WebCore::ApplyPropertyWordSpacing::applyValue):
12649        (WebCore::ApplyPropertyPageSize::mmLength):
12650        (WebCore::ApplyPropertyPageSize::inchLength):
12651        (WebCore::ApplyPropertyPageSize::applyValue):
12652        (WebCore::ApplyPropertyVerticalAlign::applyValue):
12653        (WebCore::ApplyPropertyClipPath::applyValue):
12654        (WebCore::ApplyPropertyShape::applyValue):
12655        (WebCore::ApplyPropertyTextIndent::applyValue):
12656        * css/MediaQueryEvaluator.cpp:
12657        (WebCore::colorMediaFeatureEval):
12658        (WebCore::color_indexMediaFeatureEval):
12659        (WebCore::monochromeMediaFeatureEval):
12660        (WebCore::orientationMediaFeatureEval):
12661        (WebCore::aspect_ratioMediaFeatureEval):
12662        (WebCore::device_aspect_ratioMediaFeatureEval):
12663        (WebCore::device_pixel_ratioMediaFeatureEval):
12664        (WebCore::resolutionMediaFeatureEval):
12665        (WebCore::gridMediaFeatureEval):
12666        (WebCore::computeLength):
12667        (WebCore::device_heightMediaFeatureEval):
12668        (WebCore::device_widthMediaFeatureEval):
12669        (WebCore::heightMediaFeatureEval):
12670        (WebCore::widthMediaFeatureEval):
12671        (WebCore::min_colorMediaFeatureEval):
12672        (WebCore::max_colorMediaFeatureEval):
12673        (WebCore::min_color_indexMediaFeatureEval):
12674        (WebCore::max_color_indexMediaFeatureEval):
12675        (WebCore::min_monochromeMediaFeatureEval):
12676        (WebCore::max_monochromeMediaFeatureEval):
12677        (WebCore::min_aspect_ratioMediaFeatureEval):
12678        (WebCore::max_aspect_ratioMediaFeatureEval):
12679        (WebCore::min_device_aspect_ratioMediaFeatureEval):
12680        (WebCore::max_device_aspect_ratioMediaFeatureEval):
12681        (WebCore::min_device_pixel_ratioMediaFeatureEval):
12682        (WebCore::max_device_pixel_ratioMediaFeatureEval):
12683        (WebCore::min_heightMediaFeatureEval):
12684        (WebCore::max_heightMediaFeatureEval):
12685        (WebCore::min_widthMediaFeatureEval):
12686        (WebCore::max_widthMediaFeatureEval):
12687        (WebCore::min_device_heightMediaFeatureEval):
12688        (WebCore::max_device_heightMediaFeatureEval):
12689        (WebCore::min_device_widthMediaFeatureEval):
12690        (WebCore::max_device_widthMediaFeatureEval):
12691        (WebCore::min_resolutionMediaFeatureEval):
12692        (WebCore::max_resolutionMediaFeatureEval):
12693        (WebCore::animationMediaFeatureEval):
12694        (WebCore::transitionMediaFeatureEval):
12695        (WebCore::transform_2dMediaFeatureEval):
12696        (WebCore::transform_3dMediaFeatureEval):
12697        (WebCore::view_modeMediaFeatureEval):
12698        (WebCore::video_playable_inlineMediaFeatureEval):
12699        (WebCore::hoverMediaFeatureEval):
12700        (WebCore::pointerMediaFeatureEval):
12701        (WebCore::MediaQueryEvaluator::eval):
12702        * css/SVGCSSStyleSelector.cpp:
12703        (WebCore::StyleResolver::applySVGProperty):
12704        * css/StyleResolver.cpp:
12705        (WebCore::StyleResolver::State::clear):
12706        (WebCore::StyleResolver::State::initForStyleResolve):
12707        (WebCore::StyleResolver::convertToIntLength):
12708        (WebCore::StyleResolver::convertToFloatLength):
12709        (WebCore::createGridTrackBreadth):
12710        (WebCore::StyleResolver::applyProperty):
12711        (WebCore::StyleResolver::createFilterOperations):
12712        * css/StyleResolver.h:
12713        (WebCore::StyleResolver::State::setStyle):
12714        (WebCore::StyleResolver::State::cssToLengthConversionData):
12715        * css/TransformFunctions.cpp:
12716        (WebCore::convertToFloatLength):
12717        (WebCore::transformsForValue):
12718        * css/TransformFunctions.h:
12719        * css/WebKitCSSMatrix.cpp:
12720        (WebCore::WebKitCSSMatrix::setMatrixValue):
12721        * rendering/RenderThemeIOS.mm:
12722        (WebCore::applyCommonButtonPaddingToStyle):
12723        (WebCore::RenderThemeIOS::adjustButtonStyle):
12724
127252014-04-29  Zoltan Horvath  <zoltan@webkit.org>
12726
12727        [CSS Shapes] complex calc args for inset round vanish
12728        https://bugs.webkit.org/show_bug.cgi?id=132293
12729
12730        Reviewed by Bem Jones-Bey.
12731
12732        In order to use calc in the rounded parameters for inset shapes, we need
12733        to pass RenderStyle for the value creation as we did for the width arguments.
12734        Without taking RenderStyle into account, we hit an assert not reache
12735        in CSSPrimitiveValue::init in the debug builds.
12736
12737        I've added new parsing test.
12738
12739        * css/BasicShapeFunctions.cpp:
12740        (WebCore::valueForBasicShape):
12741        * css/CSSPrimitiveValue.cpp:
12742        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
12743        (WebCore::CSSPrimitiveValue::init):
12744        * css/CSSPrimitiveValue.h:
12745        (WebCore::CSSPrimitiveValue::create):
12746        * css/CSSValuePool.h:
12747        (WebCore::CSSValuePool::createValue):
12748
127492014-04-29  Zoltan Horvath  <zoltan@webkit.org>
12750
12751        [CSS Shapes] complex calc values for shape-margin return null for computed style
12752        https://bugs.webkit.org/show_bug.cgi?id=132313
12753
12754        Reviewed by Bem Jones-Bey.
12755
12756        We need to pass RenderStyle* to the cssValuePool when parsing
12757        shape-margin in order to use calc() as a parameter.
12758
12759        I've added the new test case to parsing-shape-margin.html
12760
12761        * css/CSSComputedStyleDeclaration.cpp:
12762        (WebCore::ComputedStyleExtractor::propertyValue):
12763
127642014-04-29  Chris Fleizach  <cfleizach@apple.com>
12765
12766        AX: Row span info is wrong for table cells when a footer section is placed above a body section
12767        https://bugs.webkit.org/show_bug.cgi?id=131832
12768
12769        Reviewed by Mario Sanchez Prada.
12770
12771        If a <footer> section is placed before the body, it renders AX row information and order incorrectly.
12772        This also affects ARIA tables because they add their children by looking at renderer children, instead
12773        interrogating the RenderTable directly.
12774
12775        Test: accessibility/table-with-footer-section-above-body.html
12776
12777        * accessibility/AccessibilityARIAGrid.cpp:
12778        (WebCore::AccessibilityARIAGrid::addTableCellChild):
12779        (WebCore::AccessibilityARIAGrid::addChildren):
12780        * accessibility/AccessibilityTable.cpp:
12781        (WebCore::AccessibilityTable::addChildren):
12782        (WebCore::AccessibilityTable::addChildrenFromSection):
12783        * accessibility/AccessibilityTable.h:
12784        * accessibility/AccessibilityTableCell.cpp:
12785        (WebCore::AccessibilityTableCell::rowIndexRange):
12786        (WebCore::AccessibilityTableCell::columnIndexRange):
12787
127882014-04-29  Chris Fleizach  <cfleizach@apple.com>
12789
12790        AX: SpeechSynthesisUtterance cannot addEventListener
12791        https://bugs.webkit.org/show_bug.cgi?id=132321
12792
12793        Reviewed by Mario Sanchez Prada.
12794
12795        Modified an existing test (speech-synthesis-speak.html) to use addEventTarget.
12796
12797        * Modules/speech/SpeechSynthesisUtterance.idl:
12798
127992014-04-29  Hans Muller  <hmuller@adobe.com>
12800
12801        [CSS Shapes] shape-outside polygon fails when first vertex is 0,0
12802        https://bugs.webkit.org/show_bug.cgi?id=132132
12803
12804        Reviewed by Bem Jones-Bey.
12805
12806        ShapeInterval now distinguishes between x1==x2 - isEmpty() and x1,x2 haven't been
12807        set yet - isUndefined(). Removed the ShapeInterval setX1() and setX2() methods, since
12808        they're no longer used.
12809
12810        The polygon algorithm for computing excluded intervals now ignores horizontal
12811        edges. It also ignores edges whose lower vertex matches the top of the line, if
12812        the edge's Y direction is upwards (away from the top of the line). The rationale
12813        for this was explained here:
12814        http://hansmuller-webkit.blogspot.com/2012/11/revised-horizontal-box-algorithm.html
12815
12816        Test: fast/shapes/shape-outside-floats/shape-outside-polygon-zero-vertex.html
12817
12818        * rendering/shapes/PolygonShape.cpp:
12819        (WebCore::OffsetPolygonEdge::clippedEdgeXRange):
12820        (WebCore::PolygonShape::getExcludedIntervals):
12821        * rendering/shapes/ShapeInterval.h:
12822        (WebCore::ShapeInterval::ShapeInterval):
12823        (WebCore::ShapeInterval::isUndefined):
12824        (WebCore::ShapeInterval::x1):
12825        (WebCore::ShapeInterval::x2):
12826        (WebCore::ShapeInterval::width):
12827        (WebCore::ShapeInterval::isEmpty):
12828        (WebCore::ShapeInterval::setX1):
12829        (WebCore::ShapeInterval::setX2):
12830        (WebCore::ShapeInterval::overlaps):
12831        (WebCore::ShapeInterval::contains):
12832        (WebCore::ShapeInterval::unite):
12833
128342014-04-29  Andrei Bucur  <abucur@adobe.com>
12835
12836        [CSS Regions] Fix getClientRects() for content nodes
12837        https://bugs.webkit.org/show_bug.cgi?id=117407
12838
12839        Reviewed by David Hyatt.
12840
12841        This patch modifies getClientRects() to return a list of fragments
12842        for a fragmented box instead of a single rectangle positioned inside
12843        the region where the box center would appear.
12844
12845        The approach is to split the border box of the element in regions using
12846        the layout positioning. Then each fragment is mapped to the view coordinates
12847        and the result added to the list of rectangles. To preserve the originating
12848        region when mapping the fragment through the ancestor tree I've introduced
12849        the concept of a current region. The current region is stored inside a
12850        CurrentRenderRegionMaintainer object, created whenever an algorithm needing
12851        it needs to run. When the maintainer is destroyed, the cleanup is made
12852        automatically. The RenderFlowThread holds a pointer to this structure for
12853        easy access.
12854
12855        Tests: fast/regions/cssom/client-rects-fixed-content.html
12856               fast/regions/cssom/client-rects-forced-breaks.html
12857               fast/regions/cssom/client-rects-inline-complex.html
12858               fast/regions/cssom/client-rects-inline.html
12859               fast/regions/cssom/client-rects-nested-regions.html
12860               fast/regions/cssom/client-rects-positioned.html
12861               fast/regions/cssom/client-rects-relative-position.html
12862               fast/regions/cssom/client-rects-simple-block.html
12863               fast/regions/cssom/client-rects-transforms.html
12864               fast/regions/cssom/client-rects-unsplittable-float.html
12865
12866        * rendering/RenderBlock.cpp:
12867        (WebCore::RenderBlock::absoluteQuads): Split the box in fragments.
12868        * rendering/RenderBox.cpp:
12869        (WebCore::RenderBox::absoluteQuads): Split the box in fragments.
12870        * rendering/RenderFlowThread.cpp:
12871        (WebCore::RenderFlowThread::RenderFlowThread):
12872        (WebCore::RenderFlowThread::mapFromFlowToRegion):
12873        (WebCore::RenderFlowThread::mapLocalToContainer):
12874        (WebCore::RenderFlowThread::currentRegion):
12875        * rendering/RenderFlowThread.h:
12876        * rendering/RenderNamedFlowFragment.cpp:
12877        (WebCore::RenderNamedFlowFragment::absoluteQuadsForBoxInRegion): Get
12878        the fragments for this box in the region.
12879        * rendering/RenderNamedFlowFragment.h:
12880        * rendering/RenderNamedFlowThread.cpp:
12881        (WebCore::RenderNamedFlowThread::absoluteQuadsForBox): Virtual function
12882        that can be used to implement fragments to client rects mapping.
12883        * rendering/RenderNamedFlowThread.h:
12884        * rendering/RenderRegion.cpp:
12885        (WebCore::RenderRegion::rectFlowPortionForBox): Small change to correctly
12886        map empty rectangles to containers.
12887        (WebCore::CurrentRenderRegionMaintainer::CurrentRenderRegionMaintainer):
12888        (WebCore::CurrentRenderRegionMaintainer::~CurrentRenderRegionMaintainer):
12889        * rendering/RenderRegion.h:
12890        (WebCore::RenderRegion::absoluteQuadsForBoxInRegion):
12891        (WebCore::CurrentRenderRegionMaintainer::region):
12892
128932014-04-29  Andrei Bucur  <abucur@adobe.com>
12894
12895        Store the containing region map inside the flow thread
12896        https://bugs.webkit.org/show_bug.cgi?id=131647
12897
12898        Reviewed by Mihnea Ovidenie.
12899
12900        The patch moves the containing region map inside the flow thread where
12901        it can be better handled in case the region chain changes and the map
12902        needs to be cleared.
12903
12904        As a result of this move we are able to also cleanup the lines region
12905        information of a block flow when it is removed from the tree.
12906
12907        Test: fast/regions/inline-strike-through.html
12908
12909        * rendering/InlineFlowBox.h:
12910        (WebCore::InlineFlowBox::InlineFlowBox):
12911        * rendering/RenderBlockLineLayout.cpp:
12912        (WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
12913        * rendering/RenderFlowThread.cpp:
12914        (WebCore::RenderFlowThread::removeFlowChildInfo):
12915        (WebCore::RenderFlowThread::invalidateRegions):
12916        (WebCore::RenderFlowThread::removeLineRegionInfo):
12917        (WebCore::RenderFlowThread::checkLinesConsistency):
12918        (WebCore::RenderFlowThread::containingRegionMap):
12919        * rendering/RenderFlowThread.h:
12920        * rendering/RootInlineBox.cpp:
12921        (WebCore::containingRegionMap):
12922        (WebCore::RootInlineBox::~RootInlineBox):
12923        (WebCore::RootInlineBox::paint):
12924        (WebCore::RootInlineBox::containingRegion):
12925        (WebCore::RootInlineBox::clearContainingRegion):
12926        (WebCore::RootInlineBox::setContainingRegion):
12927
129282014-04-28  Benjamin Poulain  <benjamin@webkit.org>
12929
12930        SelectorCodeGenerator::generateElementIsNthChild() leaks the parent register :nth-child() is non-filtering
12931        https://bugs.webkit.org/show_bug.cgi?id=132311
12932
12933        Reviewed by Andreas Kling.
12934
12935        In two cases, the parent register was never returned to the register allocator:
12936        -Non filtering selectors (the early return).
12937        -Non marking selectors (at the moment: only querySelector API).
12938
12939        Unfortunately, generateElementIsNthChild() makes function call, which forces us to do this manual allocation
12940        of the parentElement register. Long term, I want RegisterAllocator and FunctionCall to have a special type for that.
12941
12942        Test: fast/selectors/several-nth-child.html
12943
12944        * cssjit/SelectorCompiler.cpp:
12945        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
12946
129472014-04-28  Yusuke Suzuki  <utatane.tea@gmail.com>
12948
12949        CSS JIT: backtracking with current / parent element for child
12950        https://bugs.webkit.org/show_bug.cgi?id=132057
12951
12952        Reviewed by Benjamin Poulain.
12953
12954        Calculate appropriate backtracking start height from the closest
12955        descendant. And at first, we use it for a simple optimization.
12956
12957        1. When backtracking start height equals to current height, we
12958        can simply jump to a descendant element check phase.
12959        2. When backtracking start height equals to current height + 1, we
12960        can simply jump to a descendant element traversing phase.
12961
12962        We can apply this optimization to fragments with adjacent combinators.
12963        But, in the meantime, we start to implement it for a fragment with
12964        child combinator.
12965
12966        * cssjit/SelectorCompiler.cpp:
12967        (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
12968        (WebCore::SelectorCompiler::TagNamePattern::TagNamePattern):
12969        (WebCore::SelectorCompiler::solveDescendantBacktrackingActionForChild):
12970        (WebCore::SelectorCompiler::solveBacktrackingAction):
12971        (WebCore::SelectorCompiler::equalTagNames):
12972        (WebCore::SelectorCompiler::equalTagNamePatterns):
12973        (WebCore::SelectorCompiler::computeBacktrackingStartHeightFromDescendant):
12974        (WebCore::SelectorCompiler::computeBacktrackingHeightFromDescendant):
12975        (WebCore::SelectorCompiler::requiresAdjacentTail):
12976        (WebCore::SelectorCompiler::requiresDescendantTail):
12977        (WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
12978        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
12979        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToParentNode):
12980        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToParentElement):
12981        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateParentElementTreeWalker):
12982        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAncestorTreeWalker):
12983        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
12984        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
12985        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
12986
129872014-04-28  Benjamin Poulain  <bpoulain@apple.com>
12988
12989        [iOS][WK2] Restore the scroll position and scale from the HistoryItem (mostly)
12990        https://bugs.webkit.org/show_bug.cgi?id=132307
12991
12992        Reviewed by Simon Fraser.
12993
12994        * WebCore.exp.in:
12995
129962014-04-28  Beth Dakin  <bdakin@apple.com>
12997
12998        Scrollbars do not update properly when topContentInset changes dynamically
12999        https://bugs.webkit.org/show_bug.cgi?id=132309
13000        -and corresponding-
13001        <rdar://problem/16642232>
13002
13003        Reviewed by Tim Horton.
13004
13005        It is not sufficient to do a layout and call updateScrollbars(). We must also call 
13006        RenderLayerCompositor::frameViewDidChangeSize() in order to properly adjust the 
13007        size and position of all of the scrolling-related layers.
13008        * page/FrameView.cpp:
13009        (WebCore::FrameView::topContentInsetDidChange):
13010
130112014-04-28  David Hyatt  <hyatt@apple.com>
13012
13013        [New Multicolumn] event.offsetX/offsetY don't work correctly
13014        https://bugs.webkit.org/show_bug.cgi?id=132284
13015
13016        Reviewed by Simon Fraser.
13017
13018        * rendering/RenderBoxModelObject.cpp:
13019        (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
13020        Change the code here to only trigger for CSS Regions and not for
13021        multi-column. Add a FIXME pointing out that the code is broken even for
13022        CSS regions.
13023
13024         * rendering/RenderMultiColumnFlowThread.cpp:
13025        (WebCore::RenderMultiColumnFlowThread::mapAbsoluteToLocalPoint):
13026        Override mapAbsoluteToLocalPoint in order to guess a region and attempt
13027        to translate the point from that region to the flow thread local coordinate
13028        space.
13029
13030        (WebCore::RenderMultiColumnFlowThread::physicalTranslationFromRegionToFlow):
13031        * rendering/RenderMultiColumnFlowThread.h:
13032        New helper function that just wraps calling the region's logical translation
13033        function and converting to/from physical coordinates.
13034
130352014-04-28  Commit Queue  <commit-queue@webkit.org>
13036
13037        Unreviewed, rolling out r167857.
13038        https://bugs.webkit.org/show_bug.cgi?id=132305
13039
13040        the change was rolled out, roll out the new expectations as
13041        well (Requested by thorton on #webkit).
13042
13043        Reverted changeset:
13044
13045        "Unreviewed. Updating one bindings test baseline after
13046        r167855."
13047        http://trac.webkit.org/changeset/167857
13048
130492014-04-28  Dean Jackson  <dino@apple.com>
13050
13051        [Mac] Use the animated version of setHighlighted on NSButtonCell where available
13052        https://bugs.webkit.org/show_bug.cgi?id=132295
13053        <rdar://problem/16747240>
13054
13055        Reviewed by Beth Dakin.
13056
13057        Like setState, there is an animated version of setHighlighted available.
13058
13059        * platform/mac/ThemeMac.mm:
13060        (WebCore::updateStates): Use private version of _setHighlighted where possible.
13061
130622014-04-28  Commit Queue  <commit-queue@webkit.org>
13063
13064        Unreviewed, rolling out r167855.
13065        https://bugs.webkit.org/show_bug.cgi?id=132301
13066
13067        Broke the windows build (Requested by bfulgham on #webkit).
13068
13069        Reverted changeset:
13070
13071        "ScriptExecutionContext::Task should work well with C++11
13072        lambdas"
13073        https://bugs.webkit.org/show_bug.cgi?id=129795
13074        http://trac.webkit.org/changeset/167855
13075
130762014-04-24  Andy Estes  <aestes@apple.com>
13077
13078        [iOS] Implement WebQuickLookHandleClient for WebKit2
13079        https://bugs.webkit.org/show_bug.cgi?id=132157
13080
13081        Reviewed by Darin Adler.
13082
13083        * WebCore.exp.in: Exported QuickLookHandle::previewUTI().
13084        * platform/network/ios/QuickLook.h:
13085        * platform/network/ios/QuickLook.mm:
13086        (WebCore::QuickLookHandle::previewFileName): Changed to return a WTF::String.
13087        (WebCore::QuickLookHandle::previewUTI): Added.
13088
130892014-04-28  Chris Fleizach  <cfleizach@apple.com>
13090
13091        REGRESSION: Intermittent crash in SpeechSynthesis::didFinishSpeaking
13092        https://bugs.webkit.org/show_bug.cgi?id=111613
13093
13094        Reviewed by Mark Lam.
13095
13096        I think it's possible that didFinishSpeaking ends up calling directly back into start speaking, and the utterance reference
13097        we were holding can get cleared, so protecting this should avoid a few asserts.
13098
13099        * platform/mock/PlatformSpeechSynthesizerMock.cpp:
13100        (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
13101
131022014-04-28  Commit Queue  <commit-queue@webkit.org>
13103
13104        Unreviewed, rolling out r167871.
13105        https://bugs.webkit.org/show_bug.cgi?id=132290
13106
13107        broke a newmulticol test (spanner-nested-dynamic) (Requested
13108        by thorton on #webkit).
13109
13110        Reverted changeset:
13111
13112        "Store the containing region map inside the flow thread"
13113        https://bugs.webkit.org/show_bug.cgi?id=131647
13114        http://trac.webkit.org/changeset/167871
13115
131162014-04-28  Commit Queue  <commit-queue@webkit.org>
13117
13118        Unreviewed, rolling out r167853.
13119        https://bugs.webkit.org/show_bug.cgi?id=132288
13120
13121        caused crashes+timeouts+layout test failures described in the
13122        bug (Requested by thorton on #webkit).
13123
13124        Reverted changeset:
13125
13126        "Coalesce responses on network process side"
13127        https://bugs.webkit.org/show_bug.cgi?id=132229
13128        http://trac.webkit.org/changeset/167853
13129
131302014-04-24  Simon Fraser  <simon.fraser@apple.com>
13131
13132        [iOS WK2] flickery scrolling with overflow-scrolling:touch
13133        https://bugs.webkit.org/show_bug.cgi?id=132150
13134
13135        Reviewed by Tim Horton.
13136
13137        Fix typo in a comment.
13138
13139        * page/scrolling/AsyncScrollingCoordinator.cpp:
13140        (WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):
13141
131422014-04-28  Martin Robinson  <mrobinson@igalia.com>
13143
13144        [GTK] Builtin cursors do not properly handle transparency
13145        https://bugs.webkit.org/show_bug.cgi?id=131866
13146
13147        Reviewed by Gustavo Noronha Silva.
13148
13149        Tested by ManualTests/cursor.html.
13150
13151        * platform/gtk/CursorGtk.cpp:
13152        (WebCore::createNamedCursor): Instead of interpreting the source bitmap as an A1 image, use
13153        it as a 1-bit black and white image. We do this by:
13154            1. Painting the result to a full color image with transparency instead of an alpha-only surface.
13155            2. Masking a white background using the cursor alpha surface.
13156            3. Painting the black parts of the cursor by painting the source surface, where black pixels
13157            will be interpreted as full opaque pixels.
13158
131592014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>
13160
13161        Unreviewed. Update GObject DOM bindings symbols file.
13162
13163        * bindings/gobject/webkitdom.symbols: Add missing symbols.
13164
131652014-04-28  Manuel Rego Casasnovas  <rego@igalia.com>
13166
13167        OrderIterator refactoring to avoid extra loops
13168        https://bugs.webkit.org/show_bug.cgi?id=119061
13169
13170        Reviewed by Darin Adler.
13171
13172        This patch removes order values Vector and use a Vector of pairs instead. The pairs are formed by a child
13173        (RenderBox) and the index of this child. In addition, OrderIterator code is simplified.
13174
13175        It provides a helper class OrderIteratorPopulator, used for manipulating the Vector directly. Which allows to
13176        consolidate the code into a single implementation across flexbox and grid. OrderIteratorPopulator part is based
13177        on a patch from Blink r153971 by <jchaffraix@chromium.org>.
13178
13179        Current implementation is O(number of children * number of order values). Now it will just do a sort operation
13180        and then a regular loop. So if you have different order values in a flexbox or grid the performance will
13181        improve.
13182
13183        Comparing results of perf-tests:
13184        * Layout/auto-grid-lots-of-data: ~0.5% worse.
13185        * Layout/fixed-grid-lots-of-data: ~0.5% worse.
13186        * Layout/fixed-grid-lots-of-data (setting 100 different order values): ~50% better.
13187        * Layout/flexbox-lots-of-data: ~5% better.
13188
13189        No new tests, already covered by current tests.
13190
13191        * rendering/OrderIterator.cpp:
13192        (WebCore::OrderIterator::currentChild): Return current child according to m_childrenIndex.
13193        (WebCore::OrderIterator::first): Initialize m_childrenIndex and return current child.
13194        (WebCore::OrderIterator::next): Increase m_childrenIndex and return current child.
13195        (WebCore::compareByOrderValueAndIndex): Sorts the Vector by order value and index.
13196        (WebCore::OrderIteratorPopulator::~OrderIteratorPopulator): Calls compareByOrderValueAndIndex() if there is any
13197        child with non default order value.
13198        (WebCore::OrderIteratorPopulator::collectChild): Adds the child and index to the Vector. Update
13199        m_allChildrenHaveDefaultOrderValue accordingly.
13200        (WebCore::OrderIterator::OrderIterator): Deleted.
13201        (WebCore::OrderIterator::setOrderValues): Deleted.
13202        (WebCore::OrderIterator::reset): Deleted.
13203        * rendering/OrderIterator.h:
13204        (WebCore::OrderIteratorPopulator::OrderIteratorPopulator): New helper class to manipulate the Vector.
13205        (WebCore::OrderIterator::currentChild): Deleted.
13206        * rendering/RenderFlexibleBox.cpp:
13207        (WebCore::RenderFlexibleBox::RenderFlexibleBox): Remove OrderIterator intialization.
13208        (WebCore::RenderFlexibleBox::layoutBlock): Remove unneeded code related to old OrderValues vector.
13209        (WebCore::RenderFlexibleBox::prepareOrderIteratorAndMargins): Populate OrderIterator using collectChild().
13210        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): Deleted.
13211        * rendering/RenderFlexibleBox.h: Rename computeMainAxisPreferredSizes() to prepareOrderIteratorAndMargins().
13212        * rendering/RenderGrid.cpp:
13213        (WebCore::RenderGrid::RenderGrid): Remove OrderIterator initialization.
13214        (WebCore::RenderGrid::populateExplicitGridAndOrderIterator): Populate OrderIterator using collectChild().
13215
132162014-04-28  Zan Dobersek  <zdobersek@igalia.com>
13217
13218        std::bitset<>::test() does unnecessary bounds checks on CSSPropertyID bitsets
13219        https://bugs.webkit.org/show_bug.cgi?id=131685
13220
13221        Reviewed by Darin Adler.
13222
13223        Use std::bitset<>::operator[]() instead of std::bitset<>::test() to avoid
13224        bounds checks which are not necessary as long as a CSSPropertyID value is used.
13225
13226        * css/CSSParser.cpp:
13227        (WebCore::filterProperties):
13228        * css/StyleProperties.cpp:
13229        (WebCore::StyleProperties::asText):
13230        * css/StyleResolver.cpp:
13231        (WebCore::StyleResolver::CascadedProperties::hasProperty):
13232        (WebCore::StyleResolver::CascadedProperties::set):
13233
132342014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>
13235
13236        [GTK] TextTrack kind and mode attributes are enums since r166180
13237        https://bugs.webkit.org/show_bug.cgi?id=132228
13238
13239        Reviewed by Martin Robinson.
13240
13241        Improve coding style according to review comments, that I forgot
13242        to do before landing previous commit.
13243
13244        * bindings/gobject/WebKitDOMCustom.cpp:
13245        (webkit_dom_text_track_get_kind):
13246        (webkit_dom_text_track_get_mode):
13247        (webkit_dom_text_track_set_mode):
13248
132492014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>
13250
13251        [GTK] TextTrack kind and mode attributes are enums since r166180
13252        https://bugs.webkit.org/show_bug.cgi?id=132228
13253
13254        Reviewed by Martin Robinson.
13255
13256        We don't support enum values yet in GObject DOM bindings, but they
13257        are internally strings anyway, so we can keep the old
13258        implementations using strings as custom functions until we
13259        properly support enums.
13260
13261        * bindings/gobject/WebKitDOMCustom.cpp:
13262        (webkit_dom_text_track_get_kind):
13263        (webkit_dom_text_track_get_mode):
13264        (webkit_dom_text_track_set_mode):
13265        * bindings/gobject/WebKitDOMCustom.h:
13266        * bindings/gobject/WebKitDOMCustom.symbols:
13267
132682014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>
13269
13270        [GTK] TextTrack::addCue can raise an exception since r163974
13271        https://bugs.webkit.org/show_bug.cgi?id=132227
13272
13273        Reviewed by Martin Robinson.
13274
13275        webkit_dom_text_track_add_cue() now receives a GError paramater
13276        which is an API break. Add
13277        webkit_dom_text_track_add_cue_with_error and keep
13278        webkit_dom_text_track_add_cue as deprecated to keep API
13279        compatibility.
13280
13281        * bindings/gobject/WebKitDOMDeprecated.cpp:
13282        (webkit_dom_text_track_add_cue):
13283        * bindings/gobject/WebKitDOMDeprecated.h:
13284        * bindings/gobject/WebKitDOMDeprecated.symbols:
13285        * bindings/gobject/webkitdom.symbols:
13286        * bindings/scripts/CodeGeneratorGObject.pm:
13287        (GetEffectiveFunctionName):
13288
132892014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>
13290
13291        [GTK] TextTrackCue API changed in r163649
13292        https://bugs.webkit.org/show_bug.cgi?id=132226
13293
13294        Reviewed by Martin Robinson.
13295
13296        TextTrackCue is now a base class and part of its API was moved to
13297        the derived class VTTCue. Update the GObject DOM bindings to keep
13298        backwards compatibility.
13299
13300        * PlatformGTK.cmake: Generate bindings for DataCue and VTTCue.
13301        * bindings/gobject/WebKitDOMDeprecated.cpp:
13302        (webkit_dom_text_track_cue_get_cue_as_html): Mark as deprecated in
13303        favor of VTTCue API.
13304        (webkit_dom_text_track_cue_get_vertical): Ditto.
13305        (webkit_dom_text_track_cue_set_vertical): Ditto.
13306        (webkit_dom_text_track_cue_get_snap_to_lines): Ditto.
13307        (webkit_dom_text_track_cue_set_snap_to_lines): Ditto.
13308        (webkit_dom_text_track_cue_get_line): Ditto.
13309        (webkit_dom_text_track_cue_set_line): Ditto.
13310        (webkit_dom_text_track_cue_get_position): Ditto.
13311        (webkit_dom_text_track_cue_set_position): Ditto.
13312        (webkit_dom_text_track_cue_get_size): Ditto.
13313        (webkit_dom_text_track_cue_set_size): Ditto.
13314        (webkit_dom_text_track_cue_get_align): Ditto.
13315        (webkit_dom_text_track_cue_set_align): Ditto.
13316        (webkit_dom_text_track_cue_get_text): Ditto.
13317        (webkit_dom_text_track_cue_set_text): Ditto.
13318        * bindings/gobject/WebKitDOMDeprecated.h:
13319        * bindings/gobject/WebKitDOMDeprecated.symbols: Add new deprecated symbols.
13320        * bindings/gobject/WebKitDOMPrivate.cpp:
13321        (WebKit::wrap): Add generic wrap for TextTrackCue now that it's a
13322        base class to generate DataCue or VTTCue objects.
13323        * bindings/gobject/WebKitDOMPrivate.h:
13324        * bindings/gobject/webkitdom.symbols: Add DataCue symbols.
13325        * bindings/scripts/CodeGeneratorGObject.pm:
13326        (IsPolymorphic): Add TextTrackCue to the list of polymorphic classes.
13327
133282014-04-27  Andrei Bucur  <abucur@adobe.com>
13329
13330        Store the containing region map inside the flow thread
13331        https://bugs.webkit.org/show_bug.cgi?id=131647
13332
13333        Reviewed by Mihnea Ovidenie.
13334
13335        The patch moves the containing region map inside the flow thread where
13336        it can be better handled in case the region chain changes and the map
13337        needs to be cleared.
13338
13339        As a result of this move we are able to also cleanup the lines region
13340        information of a block flow when it is removed from the tree.
13341
13342        Test: fast/regions/inline-strike-through.html
13343
13344        * rendering/InlineFlowBox.h:
13345        (WebCore::InlineFlowBox::InlineFlowBox):
13346        * rendering/RenderBlockLineLayout.cpp:
13347        (WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
13348        * rendering/RenderFlowThread.cpp:
13349        (WebCore::RenderFlowThread::removeFlowChildInfo):
13350        (WebCore::RenderFlowThread::invalidateRegions):
13351        (WebCore::RenderFlowThread::removeLineRegionInfo):
13352        (WebCore::RenderFlowThread::checkLinesConsistency):
13353        (WebCore::RenderFlowThread::containingRegionMap):
13354        * rendering/RenderFlowThread.h:
13355        * rendering/RootInlineBox.cpp:
13356        (WebCore::containingRegionMap):
13357        (WebCore::RootInlineBox::~RootInlineBox):
13358        (WebCore::RootInlineBox::paint):
13359        (WebCore::RootInlineBox::containingRegion):
13360        (WebCore::RootInlineBox::clearContainingRegion):
13361        (WebCore::RootInlineBox::setContainingRegion):
13362
133632014-04-27  Darin Adler  <darin@apple.com>
13364
13365        REGRESSION (r159345): The hover state for links in the top navigation of Yahoo.com doesn't work
13366        https://bugs.webkit.org/show_bug.cgi?id=132241
13367        rdar://problem/16501924
13368
13369        Reviewed by Andreas Kling.
13370
13371        Test: fast/text/simple-lines-hover-underline.html
13372
13373        Checked that this does not hurt performance by running the
13374        run-perf-tests PerformanceTests/Layout/line-layout.html command before and after.
13375
13376        * rendering/RenderBlockFlow.cpp:
13377        (WebCore::RenderBlockFlow::hitTestInlineChildren): Use simpleLineLayout function rather than
13378        getting at the data member directly.
13379        (WebCore::RenderBlockFlow::firstLineBaseline): Ditto.
13380        (WebCore::RenderBlockFlow::inlineBlockBaseline): Ditto.
13381        (WebCore::RenderBlockFlow::lineCount): Ditto.
13382        (WebCore::RenderBlockFlow::paintInlineChildren): Ditto.
13383        (WebCore::RenderBlockFlow::hasLines): Ditto.
13384        (WebCore::RenderBlockFlow::simpleLineLayout): Added logic to determine which path to use if
13385        m_lineLayoutPath is undetermined, and call createLineBoxes if it's not simple.
13386        (WebCore::RenderBlockFlow::ensureLineBoxes): Factored out most of the code into a new
13387        createLineBoxes function.
13388        (WebCore::RenderBlockFlow::createLineBoxes): Ditto.
13389
13390        * rendering/RenderBlockFlow.h: Made simpleLineLayout function no longer an inline.
13391        Added a private createLineBoxes function.
13392
133932014-04-27  Praveen R Jadhav  <praveen.j@samsung.com>
13394
13395        [MediaStream] .ended shouldn't be part of MediaStream IDL
13396        https://bugs.webkit.org/show_bug.cgi?id=132104
13397
13398        Reviewed by Eric Carlson.
13399
13400        .ended attribute is spec'ed out of MediaStream IDL. Instead, .active
13401        is introduced to handle more scenarios. This patch replaces all 'ended'
13402        attribute calls with corresponding 'active' attributes. 
13403
13404        MediaStream-add-remove-tracks.html is updated.
13405
13406        * Modules/mediastream/MediaStream.cpp:
13407        (WebCore::MediaStream::addTrack): Replaced ended() with active().
13408        (WebCore::MediaStream::removeTrack): setEnded() isn't called. setActive()
13409        is retained which propagates oninactive event.
13410        (WebCore::MediaStream::trackDidEnd): setEnded() isn't called.
13411        (WebCore::MediaStream::removeRemoteSource): Replaced ended() with active().
13412        (WebCore::MediaStream::addRemoteTrack): Replaced ended() with active().
13413        (WebCore::MediaStream::removeRemoteTrack): Replaced ended() with active().
13414        (WebCore::MediaStream::ended): Deleted.
13415        (WebCore::MediaStream::setEnded): Deleted.
13416        (WebCore::MediaStream::streamDidEnd): Deleted.
13417        * Modules/mediastream/MediaStream.h:
13418        * Modules/mediastream/MediaStream.idl:
13419        * Modules/mediastream/RTCPeerConnection.cpp:
13420        (WebCore::RTCPeerConnection::didRemoveRemoteStream): Replaced setEnded()
13421        with setActive().
13422        * platform/mediastream/MediaStreamPrivate.cpp:
13423        (WebCore::MediaStreamPrivate::MediaStreamPrivate):
13424        (WebCore::MediaStreamPrivate::setActive): Updated comment from bug 
13425        https://bugs.webkit.org/show_bug.cgi?id=131973
13426        (WebCore::MediaStreamPrivate::setEnded): Deleted.
13427        * platform/mediastream/MediaStreamPrivate.h:
13428        (WebCore::MediaStreamPrivate::ended): Deleted.
13429
134302014-04-25  Andy Estes  <aestes@apple.com>
13431
13432        [iOS] Stop creating a WKWebResourceQuickLookDelegate for every WebResourceLoader
13433        https://bugs.webkit.org/show_bug.cgi?id=132215
13434
13435        Reviewed by Dan Bernstein.
13436
13437        * WebCore.exp.in: Moved QuickLook symbols to the USE(QUICK_LOOK) stanza.
13438        * platform/network/ios/QuickLook.h: Changed one of the create() overloads to no longer take a delegate argument.
13439        * platform/network/ios/QuickLook.mm: Moved WKWebResourceQuickLookDelegate to here and renamed to WebResourceLoaderQuickLookDelegate.
13440        (WebCore::QuickLookHandle::create): Created a WebResourceLoaderQuickLookDelegate only if QuickLook can handle the response.
13441
134422014-04-27  Sam Weinig  <sam@webkit.org>
13443
13444        [iOS WebKit2] Add support for text autosizing
13445        <rdar://problem/16545245>
13446        https://bugs.webkit.org/show_bug.cgi?id=132237
13447
13448        Reviewed by Tim Horton.
13449
13450        Move text autosizing width from Frame to Page, as it is a Page level concept.
13451
13452        * WebCore.exp.in:
13453        * page/Frame.cpp:
13454        (WebCore::Frame::textAutosizingWidth): Deleted.
13455        (WebCore::Frame::setTextAutosizingWidth): Deleted.
13456        * page/Frame.h:
13457        * page/FrameView.cpp:
13458        (WebCore::FrameView::layout):
13459        * page/Page.cpp:
13460        (WebCore::Page::Page):
13461        * page/Page.h:
13462        (WebCore::Page::textAutosizingWidth):
13463        (WebCore::Page::setTextAutosizingWidth):
13464
134652014-04-27  Zan Dobersek  <zdobersek@igalia.com>
13466
13467        Unreviewed. Updating one bindings test baseline after r167855.
13468
13469        * bindings/scripts/test/JS/JSTestCallback.cpp:
13470        (WebCore::JSTestCallback::~JSTestCallback):
13471
134722014-04-27  Darin Adler  <darin@apple.com>
13473
13474        Webpages can trigger loads with invalid URLs
13475        https://bugs.webkit.org/show_bug.cgi?id=132224
13476        rdar://problem/16697142
13477
13478        Reviewed by Alexey Proskuryakov.
13479
13480        Invalid URLs can be a way to trick the user about what website they
13481        are looking at.  Still trying to figure out a good way to regression-test this.
13482
13483        * dom/Document.cpp:
13484        (WebCore::Document::processHttpEquiv): Pass a URL rather than a String to
13485        the navigation scheduler.
13486        * loader/FrameLoader.cpp:
13487        (WebCore::FrameLoader::receivedFirstData): Ditto.
13488
13489        * loader/NavigationScheduler.cpp:
13490        (WebCore::ScheduledURLNavigation::ScheduledURLNavigation): Take a URL rather
13491        than a string.
13492        (WebCore::ScheduledURLNavigation::url): Ditto.
13493        (WebCore::ScheduledRedirect::ScheduledRedirect): Ditto.
13494        (WebCore::ScheduledLocationChange::ScheduledLocationChange): Ditto.
13495        (WebCore::ScheduledRefresh::ScheduledRefresh): Ditto.
13496        (WebCore::NavigationScheduler::shouldScheduleNavigation): Added a check that
13497        prevents navigation to any URL that is invalid, except for JavaScript URLs,
13498        which need not be valid.
13499        (WebCore::NavigationScheduler::scheduleRedirect): Use URL instead of String.
13500        (WebCore::NavigationScheduler::scheduleLocationChange): Use URL instead of
13501        String. Also got rid of empty string check since empty URLs are also invalid,
13502        and so shouldScheduleNavigation will take care of it.
13503        (WebCore::NavigationScheduler::scheduleRefresh): Use URL instead of String.
13504
13505        * loader/NavigationScheduler.h: Take URL instead of String. Also removed some
13506        unneeded incldues and uses of WTF_MAKE_NONCOPYABLE. NavigationScheduler is
13507        already noncopyable because it has a reference for a data member, and the
13508        disabler doesn't have any real reason to be noncopyable.
13509
13510        * loader/SubframeLoader.cpp:
13511        (WebCore::SubframeLoader::loadOrRedirectSubframe): Pass a URL rather than a
13512        String to the NavigationScheduler.
13513        * page/DOMWindow.cpp:
13514        (WebCore::DOMWindow::createWindow): Ditto.
13515
13516        * page/SecurityOrigin.cpp:
13517        (WebCore::SecurityOrigin::urlWithUniqueSecurityOrigin): Return a URL instead
13518        of a String.
13519        * page/SecurityOrigin.h: Updated for above change.
13520
135212014-04-27  Zan Dobersek  <zdobersek@igalia.com>
13522
13523        ScriptExecutionContext::Task should work well with C++11 lambdas
13524        https://bugs.webkit.org/show_bug.cgi?id=129795
13525
13526        Reviewed by Darin Adler.
13527
13528        Instead of having classes that subclass ScriptExecutionContext::Task and override
13529        the performTask(ScriptExecutionContext*) method, have the ScriptExecutionContext::Task
13530        take in a std::function<void (ScriptExecutionContext*)>-like object trough the constructor
13531        which would contain the code currently kept in the performTask() methods.
13532
13533        This enables inlining C++11 lambdas into ScriptExecutionContext::postTask() calls. For
13534        cleanup tasks, the Task object can be implicitly constructed by using the initializer list
13535        constructor with the first argument being the ScriptExecutionContext::Task::CleanupTask tag.
13536        The ScriptExecutionContext class remains non-copyable and now stores the passed-in invokable
13537        object in the std::function wrapper, along with a boolean member that indicates whether the
13538        task is of cleanup nature.
13539
13540        * Modules/quota/StorageErrorCallback.cpp:
13541        (WebCore::StorageErrorCallback::CallbackTask::CallbackTask):
13542        (WebCore::StorageErrorCallback::CallbackTask::performTask): Deleted.
13543        * Modules/quota/StorageErrorCallback.h:
13544        (WebCore::StorageErrorCallback::CallbackTask::create): Deleted.
13545        * Modules/webdatabase/Database.cpp:
13546        (WebCore::Database::~Database):
13547        (WebCore::Database::runTransaction):
13548        (WebCore::Database::scheduleTransactionCallback):
13549        (WebCore::DerefContextTask::create): Deleted.
13550        (WebCore::DerefContextTask::performTask): Deleted.
13551        (WebCore::DerefContextTask::isCleanupTask): Deleted.
13552        (WebCore::DerefContextTask::DerefContextTask): Deleted.
13553        (WebCore::callTransactionErrorCallback): Deleted.
13554        (WebCore::DeliverPendingCallbackTask::create): Deleted.
13555        (WebCore::DeliverPendingCallbackTask::performTask): Deleted.
13556        (WebCore::DeliverPendingCallbackTask::DeliverPendingCallbackTask): Deleted.
13557        * Modules/webdatabase/DatabaseManager.cpp:
13558        (WebCore::DatabaseManager::openDatabase):
13559        (WebCore::DatabaseCreationCallbackTask::create): Deleted.
13560        (WebCore::DatabaseCreationCallbackTask::performTask): Deleted.
13561        (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask): Deleted.
13562        * Modules/webdatabase/DatabaseSync.cpp:
13563        (WebCore::CloseSyncDatabaseOnContextThreadTask::create): Deleted.
13564        (WebCore::CloseSyncDatabaseOnContextThreadTask::performTask): Deleted.
13565        (WebCore::CloseSyncDatabaseOnContextThreadTask::CloseSyncDatabaseOnContextThreadTask): Deleted.
13566        * Modules/webdatabase/SQLCallbackWrapper.h:
13567        (WebCore::SQLCallbackWrapper::clear):
13568        (WebCore::SQLCallbackWrapper::SafeReleaseTask::create): Deleted.
13569        (WebCore::SQLCallbackWrapper::SafeReleaseTask::performTask): Deleted.
13570        (WebCore::SQLCallbackWrapper::SafeReleaseTask::isCleanupTask): Deleted.
13571        (WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask): Deleted.
13572        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
13573        (WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
13574        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
13575        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
13576        (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
13577        (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
13578        (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
13579        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
13580        (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
13581        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
13582        * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
13583        (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
13584        (WebCore::WorkerThreadableWebSocketChannel::mainThreadDestroy):
13585        (WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
13586        (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::create): Deleted.
13587        (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::~WorkerGlobalScopeDidInitializeTask): Deleted.
13588        (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::WorkerGlobalScopeDidInitializeTask): Deleted.
13589        * Modules/websockets/WorkerThreadableWebSocketChannel.h:
13590        * bindings/js/JSCallbackData.h:
13591        (WebCore::DeleteCallbackDataTask::DeleteCallbackDataTask):
13592        (WebCore::DeleteCallbackDataTask::create): Deleted.
13593        (WebCore::DeleteCallbackDataTask::performTask): Deleted.
13594        (WebCore::DeleteCallbackDataTask::isCleanupTask): Deleted.
13595        * bindings/js/JSDOMGlobalObjectTask.cpp:
13596        (WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
13597        (WebCore::JSGlobalObjectTask::~JSGlobalObjectTask): Deleted.
13598        (WebCore::JSGlobalObjectTask::performTask): Deleted.
13599        * bindings/js/JSDOMGlobalObjectTask.h:
13600        * bindings/js/JSDOMWindowBase.cpp:
13601        (WebCore::JSDOMWindowBase::queueTaskToEventLoop):
13602        * bindings/js/JSWorkerGlobalScopeBase.cpp:
13603        (WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):
13604        * bindings/scripts/CodeGeneratorJS.pm:
13605        (GenerateCallbackImplementation):
13606        * dom/CrossThreadTask.h:
13607        (WebCore::CrossThreadTask1::performTask):
13608        (WebCore::CrossThreadTask2::performTask):
13609        (WebCore::CrossThreadTask3::performTask):
13610        (WebCore::CrossThreadTask4::performTask):
13611        (WebCore::CrossThreadTask5::performTask):
13612        (WebCore::CrossThreadTask6::performTask):
13613        (WebCore::CrossThreadTask7::performTask):
13614        (WebCore::CrossThreadTask8::performTask):
13615        (WebCore::createCallbackTask):
13616        (WebCore::CrossThreadTask1::create): Deleted.
13617        (WebCore::CrossThreadTask2::create): Deleted.
13618        (WebCore::CrossThreadTask3::create): Deleted.
13619        (WebCore::CrossThreadTask4::create): Deleted.
13620        (WebCore::CrossThreadTask5::create): Deleted.
13621        (WebCore::CrossThreadTask6::create): Deleted.
13622        (WebCore::CrossThreadTask7::create): Deleted.
13623        (WebCore::CrossThreadTask8::create): Deleted.
13624        * dom/Document.cpp:
13625        (WebCore::Document::addConsoleMessage):
13626        (WebCore::Document::addMessage):
13627        (WebCore::Document::postTask):
13628        (WebCore::Document::pendingTasksTimerFired):
13629        (WebCore::PerformTaskContext::PerformTaskContext): Deleted.
13630        (WebCore::Document::didReceiveTask): Deleted.
13631        * dom/Document.h:
13632        * dom/ScriptExecutionContext.cpp:
13633        (WebCore::ScriptExecutionContext::processMessagePortMessagesSoon):
13634        (WebCore::ScriptExecutionContext::timerAlignmentInterval):
13635        (WebCore::ProcessMessagesSoonTask::create): Deleted.
13636        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::performTask): Deleted.
13637        (WebCore::ScriptExecutionContext::Task::~Task): Deleted.
13638        * dom/ScriptExecutionContext.h:
13639        (WebCore::ScriptExecutionContext::Task::Task):
13640        (WebCore::ScriptExecutionContext::Task::performTask):
13641        (WebCore::ScriptExecutionContext::Task::isCleanupTask):
13642        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
13643        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::create): Deleted.
13644        * dom/StringCallback.cpp:
13645        (WebCore::StringCallback::scheduleCallback):
13646        * loader/appcache/ApplicationCacheGroup.cpp:
13647        (WebCore::ApplicationCacheGroup::postListenerTask):
13648        (WebCore::CallCacheListenerTask::create): Deleted.
13649        (WebCore::CallCacheListenerTask::CallCacheListenerTask): Deleted.
13650        * workers/DefaultSharedWorkerRepository.cpp:
13651        (WebCore::SharedWorkerProxy::postTaskToLoader):
13652        (WebCore::SharedWorkerProxy::postTaskForModeToWorkerGlobalScope):
13653        (WebCore::SharedWorkerConnectTask::SharedWorkerConnectTask):
13654        (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
13655        (WebCore::DefaultSharedWorkerRepository::connectToWorker):
13656        (WebCore::SharedWorkerConnectTask::create): Deleted.
13657        (WebCore::SharedWorkerConnectTask::performTask): Deleted.
13658        * workers/WorkerEventQueue.cpp:
13659        (WebCore::WorkerEventQueue::EventDispatcher::EventDispatcher):
13660        (WebCore::WorkerEventQueue::EventDispatcher::~EventDispatcher):
13661        (WebCore::WorkerEventQueue::EventDispatcher::dispatch):
13662        (WebCore::WorkerEventQueue::enqueueEvent):
13663        (WebCore::WorkerEventQueue::cancelEvent):
13664        (WebCore::WorkerEventQueue::close):
13665        * workers/WorkerEventQueue.h:
13666        * workers/WorkerGlobalScope.cpp:
13667        (WebCore::WorkerGlobalScope::close):
13668        (WebCore::WorkerGlobalScope::postTask):
13669        (WebCore::WorkerGlobalScope::addConsoleMessage):
13670        (WebCore::WorkerGlobalScope::addMessage):
13671        (WebCore::CloseWorkerGlobalScopeTask::create): Deleted.
13672        (WebCore::CloseWorkerGlobalScopeTask::performTask): Deleted.
13673        (WebCore::CloseWorkerGlobalScopeTask::isCleanupTask): Deleted.
13674        * workers/WorkerGlobalScope.h:
13675        * workers/WorkerLoaderProxy.h:
13676        * workers/WorkerMessagingProxy.cpp:
13677        (WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
13678        (WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
13679        (WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope):
13680        (WebCore::WorkerMessagingProxy::postTaskToLoader):
13681        (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
13682        (WebCore::WorkerMessagingProxy::workerThreadCreated):
13683        (WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
13684        (WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyed):
13685        (WebCore::WorkerMessagingProxy::workerGlobalScopeClosed):
13686        (WebCore::WorkerMessagingProxy::postMessageToPageInspector):
13687        (WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject):
13688        (WebCore::WorkerMessagingProxy::reportPendingActivity):
13689        (WebCore::MessageWorkerGlobalScopeTask::create): Deleted.
13690        (WebCore::MessageWorkerGlobalScopeTask::MessageWorkerGlobalScopeTask): Deleted.
13691        (WebCore::MessageWorkerGlobalScopeTask::performTask): Deleted.
13692        (WebCore::MessageWorkerTask::create): Deleted.
13693        (WebCore::MessageWorkerTask::MessageWorkerTask): Deleted.
13694        (WebCore::MessageWorkerTask::performTask): Deleted.
13695        (WebCore::WorkerExceptionTask::create): Deleted.
13696        (WebCore::WorkerExceptionTask::WorkerExceptionTask): Deleted.
13697        (WebCore::WorkerExceptionTask::performTask): Deleted.
13698        (WebCore::WorkerGlobalScopeDestroyedTask::create): Deleted.
13699        (WebCore::WorkerGlobalScopeDestroyedTask::WorkerGlobalScopeDestroyedTask): Deleted.
13700        (WebCore::WorkerGlobalScopeDestroyedTask::performTask): Deleted.
13701        (WebCore::WorkerTerminateTask::create): Deleted.
13702        (WebCore::WorkerTerminateTask::WorkerTerminateTask): Deleted.
13703        (WebCore::WorkerTerminateTask::performTask): Deleted.
13704        (WebCore::WorkerThreadActivityReportTask::create): Deleted.
13705        (WebCore::WorkerThreadActivityReportTask::WorkerThreadActivityReportTask): Deleted.
13706        (WebCore::WorkerThreadActivityReportTask::performTask): Deleted.
13707        (WebCore::PostMessageToPageInspectorTask::create): Deleted.
13708        (WebCore::PostMessageToPageInspectorTask::PostMessageToPageInspectorTask): Deleted.
13709        (WebCore::PostMessageToPageInspectorTask::performTask): Deleted.
13710        (WebCore::NotifyNetworkStateChangeTask::create): Deleted.
13711        (WebCore::NotifyNetworkStateChangeTask::NotifyNetworkStateChangeTask): Deleted.
13712        (WebCore::NotifyNetworkStateChangeTask::performTask): Deleted.
13713        * workers/WorkerMessagingProxy.h:
13714        * workers/WorkerRunLoop.cpp:
13715        (WebCore::WorkerRunLoop::postTask):
13716        (WebCore::WorkerRunLoop::postTaskAndTerminate):
13717        (WebCore::WorkerRunLoop::postTaskForMode):
13718        (WebCore::WorkerRunLoop::Task::create):
13719        (WebCore::WorkerRunLoop::Task::performTask):
13720        (WebCore::WorkerRunLoop::Task::Task):
13721        * workers/WorkerRunLoop.h:
13722        * workers/WorkerThread.cpp:
13723        (WebCore::WorkerThread::stop):
13724        (WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):
13725        (WebCore::WorkerThreadShutdownFinishTask::create): Deleted.
13726        (WebCore::WorkerThreadShutdownFinishTask::performTask): Deleted.
13727        (WebCore::WorkerThreadShutdownFinishTask::isCleanupTask): Deleted.
13728        (WebCore::WorkerThreadShutdownStartTask::create): Deleted.
13729        (WebCore::WorkerThreadShutdownStartTask::performTask): Deleted.
13730        (WebCore::WorkerThreadShutdownStartTask::isCleanupTask): Deleted.
13731
137322014-04-27  Antti Koivisto  <antti@apple.com>
13733
13734        Coalesce responses on network process side
13735        https://bugs.webkit.org/show_bug.cgi?id=132229
13736
13737        Reviewed by Andreas Kling.
13738
13739        * WebCore.exp.in:
13740
137412014-04-27  David Kilzer  <ddkilzer@apple.com>
13742
13743        Roll out changes not part of the patch reviewed for Bug 132089
13744        <http://webkit.org/b/132089>
13745
13746        * loader/SubframeLoader.cpp:
13747        (WebCore::SubframeLoader::loadOrRedirectSubframe):
13748        * page/DOMWindow.cpp:
13749        (WebCore::DOMWindow::setLocation):
13750        (WebCore::DOMWindow::createWindow):
13751        (WebCore::DOMWindow::open):
13752
137532014-04-26  Darin Adler  <darin@apple.com>
13754
13755        Frame and page lifetime fixes in WebCore::createWindow
13756        https://bugs.webkit.org/show_bug.cgi?id=132089
13757
13758        Reviewed by Sam Weinig.
13759
13760        Speculative fix because I was unable to reproduce the crash that was
13761        reported with the test case attached to this bug.
13762
13763        * loader/FrameLoader.cpp:
13764        (WebCore::createWindow): Changed code to remove the assumption that calls
13765        out will not destroy the page or frame. Use RefPtr for the frame, and
13766        added early exits if frame->page() becomes null at any point before we
13767        use a page pointer.
13768
137692014-04-26  Alexey Proskuryakov  <ap@apple.com>
13770
13771        Local files should not be allowed to read pasteboard data during drag
13772        https://bugs.webkit.org/show_bug.cgi?id=131767
13773
13774        Reviewed by Sam Weinig.
13775
13776        Test: fast/files/local-file-drag-security.html
13777
13778        * page/DragController.cpp:
13779        (WebCore::DragController::dragExited):
13780        (WebCore::DragController::tryDHTMLDrag):
13781        Make an old Dashboard quirk really Dashboard only.
13782
137832014-04-24  Darin Adler  <darin@apple.com>
13784
13785        REGRESSION (r164133): Selection doesn't paint when scrolling some pages
13786        https://bugs.webkit.org/show_bug.cgi?id=132172
13787        rdar://problem/16719473
13788
13789        Reviewed by Brent Fulgham.
13790
13791        Tests: fast/dynamic/remove-invisible-node-inside-selection.html
13792               fast/dynamic/remove-node-inside-selection.html
13793
13794        * editing/FrameSelection.cpp:
13795        (WebCore::clearRenderViewSelection): Changed to take a Node& because having
13796        this take a Position& was unnecessary and strange, when really it just needs
13797        to take a document as an argument.
13798        (WebCore::DragCaretController::nodeWillBeRemoved): Updated for the above.
13799        (WebCore::FrameSelection::respondToNodeModification): Added code to set the
13800        m_pendingSelectionUpdate flag and call RenderView::setNeedsLayout so the
13801        selection will be recomputed after it's temporarily cleared when one of
13802        the selected nodes is removed.
13803
138042014-04-25  Ryosuke Niwa  <rniwa@webkit.org>
13805
13806        REGRESSION (r167689): Hovering file name in a file input causes a crash
13807        https://bugs.webkit.org/show_bug.cgi?id=132214
13808
13809        Reviewed by Andreas Kling.
13810
13811        The bug was caused by callDefaultEventHandlersInTheBubblingOrder unconditionally
13812        accessing path.contextAt(0) even if the event path was empty.
13813
13814        Fixed the bug by exiting early when the event path is empty.
13815
13816        Test: fast/events/shadow-event-path-2.html
13817
13818        * dom/EventDispatcher.cpp:
13819        (WebCore::callDefaultEventHandlersInTheBubblingOrder):
13820
138212014-04-25  Tim Horton  <timothy_horton@apple.com>
13822
13823        REGRESSION (r167828): http/tests/media/hls/video-controls-live-stream.html fails
13824
13825        * English.lproj/mediaControlsLocalizedStrings.js:
13826        Add 'Live Broadcast' to the localized strings list.
13827
138282014-04-25  Brady Eidson  <beidson@apple.com>
13829
13830        Add a selection overlay.
13831        <rdar://problem/16727797> and https://bugs.webkit.org/show_bug.cgi?id=132200
13832
13833        Reviewed by David Hyatt.
13834
13835        No new tests (WK2 feature in development).
13836
13837        * WebCore.xcodeproj/project.pbxproj:
13838
13839        Add a SelectionRectGathterer class.
13840        It creates a Notifier (given a RenderView) then accepts Rects from the RenderView.
13841        When the Notifier is destroyed, the appropriate EditorClient is notified of the gathered rects.
13842        * editing/SelectionRectGatherer.cpp: Added.
13843        (WebCore::SelectionRectGatherer::SelectionRectGatherer):
13844        (WebCore::SelectionRectGatherer::addRect):
13845        (WebCore::SelectionRectGatherer::addRects):
13846        (WebCore::SelectionRectGatherer::Notifier::Notifier):
13847        (WebCore::SelectionRectGatherer::Notifier::~Notifier):
13848        (WebCore::SelectionRectGatherer::clearAndCreateNotifier):
13849        * editing/SelectionRectGatherer.h: Added.
13850
13851        * page/EditorClient.h:
13852        (WebCore::EditorClient::selectionRectsDidChange):
13853
13854        * rendering/RenderView.cpp:
13855        (WebCore::RenderView::RenderView):
13856        (WebCore::RenderView::setSelection): Clear the gatherer’s rects then create a Notifier.
13857        (WebCore::RenderView::setSubtreeSelection): Give all the selection rects to be painted to
13858          the SelectionRectGatherer.
13859        * rendering/RenderView.h:
13860
138612014-04-08  Jer Noble  <jer.noble@apple.com>
13862
13863        Support "Live" streams in media controls.
13864        https://bugs.webkit.org/show_bug.cgi?id=131390
13865
13866        Reviewed by Brent Fulgham.
13867
13868        Test: http/tests/media/hls/video-controls-live-stream.html
13869
13870        Support "Live" streams by adding an isLive property to our media controls.
13871
13872        * Modules/mediacontrols/mediaControlsApple.css:
13873        (audio::-webkit-media-controls-status-display):
13874        (video:-webkit-full-screen::-webkit-media-controls-status-display):
13875        * Modules/mediacontrols/mediaControlsApple.js:
13876        (Controller): isLive defaults to false.
13877        (Controller.prototype.setIsLive): Set the isLive property and conditionally reconfigure the controls.
13878        (Controller.prototype.configureInlineControls): Don't add the timeline if we are live.
13879        (Controller.prototype.configureFullScreenControls): Ditto.
13880        (Controller.prototype.updateStatusDisplay): Added.
13881        (Controller.prototype.handleLoadStart): Call updateStatusDisplay().
13882        (Controller.prototype.handleError): Ditto.
13883        (Controller.prototype.handleAbort): Ditto.
13884        (Controller.prototype.handleSuspend): Ditto.
13885        (Controller.prototype.handleStalled): Ditto.
13886        (Controller.prototype.handleWaiting): Ditto.
13887        (Controller.prototype.updateDuration): Ditto.
13888        (Controller.prototype.updateReadyState): Ditto.
13889
138902014-04-25  Dean Jackson  <dino@apple.com>
13891
13892        Allow a platform-specific size enumeration to be passed into popup-menu display
13893        https://bugs.webkit.org/show_bug.cgi?id=132195
13894
13895        Reviewed by Brent Fulgham. With some in-person review comments from Sam Weinig.
13896
13897        Platforms like OS X use a set of predefined sizes for built-in controls
13898        used for <select>: normal, small and mini. Expose that information to
13899        the PopupMenuClient via the PopupMenuStyle, allowing it to be passed
13900        into the platform code in WebKitSystemInterface.
13901
13902        * platform/PopupMenuStyle.h: Add a menu size enum.
13903        (WebCore::PopupMenuStyle::PopupMenuStyle):
13904        (WebCore::PopupMenuStyle::menuSize):
13905        * platform/mac/WebCoreSystemInterface.h: Pass in NSControlSize as a parameter
13906        to WKPopupMenu.
13907        * platform/mac/WebCoreSystemInterface.mm: Ditto.
13908        * rendering/RenderMenuList.cpp:
13909        (RenderMenuList::menuStyle): Ask the RenderTheme to calculate the size
13910        of the menu button, so that it can be added to the PopupMenuStyle.
13911        * rendering/RenderTheme.h: New method to retrieve the menu size.
13912        (WebCore::RenderTheme::popupMenuSize): Convert an NSControlSize into a PopupMenuSize.
13913        * rendering/RenderThemeMac.h: Override the base function, and add a
13914        controlSizeForCell helper.
13915        * rendering/RenderThemeMac.mm:
13916        (WebCore::RenderThemeMac::controlSizeForCell): Used by this new
13917        code and the old setControlSizeForCell to calculate the NSControlSize
13918        that would be used for the button.
13919        (WebCore::RenderThemeMac::setControlSize): Call the new helper.
13920        (WebCore::RenderThemeMac::popupMenuSize): Return the value from the helper.
13921
139222014-04-25  Javier Fernandez  <jfernandez@igalia.com>
13923
13924        REGRESSION(r167799): ASSERTION in parseGridTemplateShorthand in fast/css-grid-layout/grid-template-shorthand-get-set.html
13925        https://bugs.webkit.org/show_bug.cgi?id=132194
13926
13927        Reviewed by Martin Robinson.
13928
13929        Properly resolving the grid-template shorthand for the corresponding longhand
13930        properties.
13931
13932        No new tests, grid-template-shorthand-get-set.html already covers this case.
13933
13934        * css/StyleProperties.cpp:
13935        (WebCore::StyleProperties::getPropertyValue):
13936        * css/StylePropertyShorthand.cpp:
13937        (WebCore::shorthandForProperty):
13938        (WebCore::matchingShorthandsForLonghand):
13939        * css/StyleResolver.cpp:
13940        (WebCore::StyleResolver::applyProperty):
13941
139422014-04-25  David Hyatt  <hyatt@apple.com>
13943
13944        Column rules not respecting scroll offsets.
13945        https://bugs.webkit.org/show_bug.cgi?id=109683
13946
13947        Reviewed by Dean Jackson.
13948
13949        Added fast/multicol/scrolling-column-rules.html
13950
13951        * rendering/RenderBlock.cpp:
13952        (WebCore::RenderBlock::paintColumnRules):
13953        Make paintColumnRules virtual so that it works with both column implementations.
13954
13955        (WebCore::RenderBlock::paintObject):
13956        Changed to call paintColumnRules with the adjusted scroll offset and to do it after
13957        bailing on the root background only check.
13958
13959        * rendering/RenderBlock.h:
13960        paintColumnRules is now virtual.
13961
13962        * rendering/RenderBlockFlow.cpp:
13963        (WebCore::RenderBlockFlow::paintColumnRules):
13964        (WebCore::RenderBlockFlow::paintBoxDecorations): Deleted.
13965        * rendering/RenderBlockFlow.h:
13966        Got rid of paintBoxDecorations override since it failed when hasBoxDecorations was false
13967        anyway. Override paintColumnRules instead to paint at the right time.
13968
139692014-04-23  Jon Honeycutt  <jhoneycutt@apple.com>
13970
13971        Crash applying editing commands from iframe onload event
13972
13973        <https://bugs.webkit.org/show_bug.cgi?id=132103>
13974        <rdar://problem/15696351>
13975
13976        This patch merges the Chromium bug workaround from
13977        <http://src.chromium.org/viewvc/blink?revision=162080&view=revision>,
13978        which prevents reentrancy in CompositeEditCommand::apply().
13979
13980        Reviewed by Darin Adler.
13981
13982        Test: editing/apply-style-iframe-crash.html
13983
13984        * editing/CompositeEditCommand.cpp:
13985        (WebCore::HTMLNames::ReentrancyGuard::isRecursiveCall):
13986        (WebCore::HTMLNames::ReentrancyGuard::Scope::Scope):
13987        (WebCore::HTMLNames::ReentrancyGuard::Scope::~Scope):
13988        (WebCore::CompositeEditCommand::apply):
13989        If this is a recursive call, return early.
13990
139912014-04-25  David Hyatt  <hyatt@apple.com>
13992
13993        [New Multicolumn] fast/multicol/hit-test-* layout tests all fail
13994        https://bugs.webkit.org/show_bug.cgi?id=132081
13995
13996        Reviewed by Dean Jackson.
13997
13998        Added a bunch of tests in fast/multicol/newmulticol/compare-with-old-impl/hit-test-*.html
13999
14000        * rendering/RenderBlock.h:
14001        Make offsetForContents public, since I need to call it from RenderMultiColumnSet.
14002
14003        * rendering/RenderMultiColumnFlowThread.cpp:
14004        (WebCore::RenderMultiColumnFlowThread::populate):
14005        Stop an ASSERT in the new columns code on the hit tests by making sure layout state is
14006        disabled when moving children around.
14007
14008        * rendering/RenderMultiColumnSet.cpp:
14009        (WebCore::RenderMultiColumnSet::positionForPoint):
14010        Refactor this function to call a helper function instead, translateRegionPointToFlowThread.
14011
14012        (WebCore::RenderMultiColumnSet::translateRegionPointToFlowThread):
14013        This function is logical (unlike the mistaken physical function I first implemented in
14014        positionForPoint).
14015
14016        (WebCore::RenderMultiColumnSet::updateHitTestResult):
14017        * rendering/RenderMultiColumnSet.h:
14018        Overridden to fill in the correct local coordinate when the HTML document is inside a paginated
14019        RenderView. Note that column spans don't actually work, but once we move over to a 
14020        non-column based pagination API, that will become irrelevant.
14021
140222014-04-25  Andreas Kling  <akling@apple.com>
14023
14024        Mark some things with WTF_MAKE_FAST_ALLOCATED.
14025        <https://webkit.org/b/132198>
14026
14027        Use FastMalloc for more things.
14028
14029        Reviewed by Anders Carlsson.
14030
14031        * bindings/js/ScriptController.h:
14032        * dom/DocumentOrderedMap.h:
14033        * inspector/InspectorCSSAgent.h:
14034        * inspector/InspectorDOMAgent.h:
14035        * inspector/InspectorDOMDebuggerAgent.h:
14036        * inspector/InspectorDOMStorageAgent.h:
14037        * inspector/InspectorDatabaseAgent.h:
14038        * inspector/InspectorLayerTreeAgent.h:
14039        * inspector/InspectorPageAgent.h:
14040        * inspector/InspectorResourceAgent.h:
14041        * inspector/InspectorTimelineAgent.h:
14042        * inspector/InspectorWorkerAgent.h:
14043        * inspector/PageRuntimeAgent.h:
14044        * loader/HistoryController.h:
14045        * page/DeviceClient.h:
14046        * page/DeviceController.h:
14047        * page/EventHandler.h:
14048        * page/Page.h:
14049        * page/scrolling/ScrollingStateNode.h:
14050        * platform/graphics/FontGenericFamilies.h:
14051        * platform/graphics/FontPlatformData.h:
14052
140532014-04-25  Radu Stavila  <stavila@adobe.com>
14054
14055        [CSS Regions] Rename objectShouldPaintInFlowRegion to something more clear
14056        https://bugs.webkit.org/show_bug.cgi?id=132050
14057
14058        Reviewed by Andreas Kling.
14059
14060        The objectShouldPaintInFlowRegion is no longer used only by the painting process
14061        but also for hit-testing, so it was renamed to something more generic (objectShouldFragmentInFlowRegion).
14062
14063        No new tests required, it's just a method rename.
14064
14065        * rendering/RenderBlock.cpp:
14066        (WebCore::RenderBlock::paint):
14067        (WebCore::RenderBlock::selectionGaps):
14068        (WebCore::RenderBlock::nodeAtPoint):
14069        * rendering/RenderBox.cpp:
14070        (WebCore::RenderBox::positionForPoint):
14071        * rendering/RenderFlowThread.cpp:
14072        (WebCore::RenderFlowThread::objectShouldFragmentInFlowRegion):
14073        (WebCore::RenderFlowThread::objectShouldPaintInFlowRegion): Deleted.
14074        * rendering/RenderFlowThread.h:
14075        * rendering/RenderLayer.cpp:
14076        (WebCore::RenderLayer::paintLayer):
14077        (WebCore::RenderLayer::hitTestLayer):
14078        * rendering/RenderRegion.cpp:
14079        (WebCore::RenderRegion::ensureOverflowForBox):
14080        * rendering/RenderReplaced.cpp:
14081        (WebCore::RenderReplaced::shouldPaint):
14082
140832014-04-25  Enrica Casucci  <enrica@apple.com>
14084
14085        iOS build fix after http://trac.webkit.org/changeset/167803
14086        Unreviewed.
14087
14088        * page/Frame.cpp:
14089        (WebCore::Frame::checkOverflowScroll):
14090        * rendering/RenderBlock.cpp:
14091        (WebCore::positionForPointRespectingEditingBoundaries):
14092
140932014-04-24  David Hyatt  <hyatt@apple.com>
14094
14095        [New Multicolumn] Add support for offsetLeft and offsetTop.
14096        https://bugs.webkit.org/show_bug.cgi?id=132080
14097
14098        Reviewed by Andrei Bucur.
14099
14100        Added fast/multicol/client-spanners-complex.html and offset-top-left.html
14101
14102        * rendering/RenderBoxModelObject.cpp:
14103        (WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
14104        Patch the offsetLeft/Top loop to handle calling into RenderMultiColumnFlowThread
14105        in order to adjust the coordinates for the new multicolumn layout.
14106
14107        * rendering/RenderMultiColumnFlowThread.cpp:
14108        (WebCore::RenderMultiColumnFlowThread::mapFromFlowToRegion):
14109        Modified to use a helper that can be shared by offsetLeft/Top code. This code
14110        ran for client rects, and I'm moving/refactoring it for more sharing.
14111
14112        (WebCore::RenderMultiColumnFlowThread::physicalTranslationOffsetFromFlowToRegion):
14113        (WebCore::RenderMultiColumnFlowThread::physicalTranslationFromFlowToRegion):
14114        * rendering/RenderMultiColumnFlowThread.h:
14115        New functions that beef up what was in mapFromFlowToRegion and fix some bugs
14116        with the translation code.
14117
14118        * rendering/RenderMultiColumnSet.cpp:
14119        (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
14120        Patched to factor in the flow thread portion rect of the specific multicolumn set.
14121
14122        * rendering/RenderObject.h:
14123        (WebCore::RenderObject::isRenderMultiColumnFlowThread):
14124        Added for toRenderMultiColumnFlowThread capability.
14125
141262014-04-25  Brent Fulgham  <bfulgham@apple.com>
14127
14128        ScrollingCoordinator is unaware of topContentInset
14129        https://bugs.webkit.org/show_bug.cgi?id=132158
14130        <rdar://problem/16706152>
14131
14132        Reviewed by Darin Adler.
14133
14134        Test: platform/mac/fast/scrolling/scroll-select-bottom-test.html
14135
14136        The calculation of non-fast-scrollable regions does not currently take
14137        the topContentOffset into account. Consequently, the logic that decides
14138        whether to stay on the scrolling thread, or drop down to an individual
14139        page element, can make the wrong choice. This is especially true for
14140        small scrollable regions (such as <select> elements), where the
14141        topContentInset may be quite close to the size of the scrollable
14142         element itself.
14143
14144        * page/scrolling/ScrollingCoordinator.cpp:
14145        (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion): Also
14146        include the topContentInset value in our calculation.
14147
141482014-04-25  Javier Fernandez  <jfernandez@igalia.com>
14149
14150        REGRESSION(r167799): Breaks debug build
14151        https://bugs.webkit.org/show_bug.cgi?id=132194
14152
14153        Reviewed by Andrei Bucur.
14154
14155        Fix the debug bots after r167799
14156
14157        No new tests, no new functionality.
14158
14159        * css/CSSParser.cpp:
14160        (WebCore::CSSParser::parseGridTemplateShorthand):
14161
141622014-04-25  Miyoung Shin  <myid.shin@samsung.com>
14163
14164        Web process is crashed during dispatching touchEvent created by JS.
14165        https://bugs.webkit.org/show_bug.cgi?id=113225
14166
14167        Reviewed by Benjamin Poulain.
14168
14169        TouchEvent created by JS should have the necessary attributes
14170        of touches, targetTouches and changedTouches.
14171        It should be verified weather there are touchLists before dispatching touch event.
14172
14173        Test: fast/events/touch/create-touch-event-without-touchList.html
14174
14175        * dom/EventDispatcher.cpp:
14176        (WebCore::EventDispatcher::dispatchEvent):
14177        (WebCore::EventPath::updateTouchLists):
14178        (WebCore::addRelatedNodeResolversForTouchList): Deleted.
14179
141802014-04-25  Philippe Normand  <pnormand@igalia.com>
14181
14182        [GTK] File webkitRelativePath attribute was removed in r163483
14183        https://bugs.webkit.org/show_bug.cgi?id=132193
14184
14185        Reviewed by Carlos Garcia Campos.
14186
14187        Add the removed getter as deprecated API to keep backwards compatibility.
14188
14189        * bindings/gobject/WebKitDOMDeprecated.cpp:
14190        (webkit_dom_file_get_webkit_relative_path):
14191        * bindings/gobject/WebKitDOMDeprecated.h:
14192        * bindings/gobject/WebKitDOMDeprecated.symbols:
14193
141942014-04-25  Radu Stavila  <stavila@adobe.com>
14195
14196        [CSS Regions] Overflow selection doesn't work properly
14197        https://bugs.webkit.org/show_bug.cgi?id=130715
14198
14199        Reviewed by David Hyatt.
14200
14201        When hit-testing, painting block selection gaps and searching for the node at a specific point inside a flow thread,
14202        the region range of the box being checked must be validated in order to not return false positives. Otherwise, hit-testing
14203        at the top of region B could hit elements that overflow the bottom of region A.
14204
14205        Tests: fast/regions/selection-in-overflow-hit-testing.html
14206               fast/regions/selection-in-overflow.html
14207               fast/regions/selection-in-text-after-overflow-hit-testing.html
14208
14209        * accessibility/AccessibilityRenderObject.cpp:
14210        (WebCore::AccessibilityRenderObject::visiblePositionRangeForLine):
14211        (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
14212        * dom/Document.cpp:
14213        (WebCore::Document::caretRangeFromPoint):
14214        * editing/FrameSelection.cpp:
14215        (WebCore::FrameSelection::contains):
14216        * editing/VisibleUnits.cpp:
14217        (WebCore::previousLinePosition):
14218        (WebCore::nextLinePosition):
14219        * page/EventHandler.cpp:
14220        (WebCore::EventHandler::selectClosestWordFromHitTestResult):
14221        (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
14222        (WebCore::EventHandler::handleMousePressEventTripleClick):
14223        (WebCore::EventHandler::handleMousePressEventSingleClick):
14224        (WebCore::selectionExtentRespectingEditingBoundary):
14225        (WebCore::EventHandler::updateSelectionForMouseDrag):
14226        (WebCore::EventHandler::handleMouseReleaseEvent):
14227        * page/Frame.cpp:
14228        (WebCore::Frame::visiblePositionForPoint):
14229        * rendering/RenderBlock.cpp:
14230        (WebCore::RenderBlock::selectionGaps):
14231        (WebCore::RenderBlock::nodeAtPoint):
14232        (WebCore::positionForPointRespectingEditingBoundaries):
14233        (WebCore::RenderBlock::positionForPointWithInlineChildren):
14234        (WebCore::isChildHitTestCandidate):
14235        (WebCore::RenderBlock::positionForPoint):
14236        * rendering/RenderBlock.h:
14237        * rendering/RenderBlockFlow.cpp:
14238        (WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
14239        (WebCore::RenderBlockFlow::positionForPoint):
14240        * rendering/RenderBlockFlow.h:
14241        * rendering/RenderBox.cpp:
14242        (WebCore::RenderBox::positionForPoint):
14243        * rendering/RenderBox.h:
14244        * rendering/RenderFileUploadControl.cpp:
14245        (WebCore::RenderFileUploadControl::positionForPoint):
14246        * rendering/RenderFileUploadControl.h:
14247        * rendering/RenderInline.cpp:
14248        (WebCore::RenderInline::positionForPoint):
14249        * rendering/RenderInline.h:
14250        * rendering/RenderLineBreak.cpp:
14251        (WebCore::RenderLineBreak::positionForPoint):
14252        * rendering/RenderLineBreak.h:
14253        * rendering/RenderMultiColumnSet.cpp:
14254        (WebCore::RenderMultiColumnSet::positionForPoint):
14255        * rendering/RenderMultiColumnSet.h:
14256        * rendering/RenderObject.cpp:
14257        (WebCore::RenderObject::positionForPoint):
14258        * rendering/RenderObject.h:
14259        * rendering/RenderRegion.cpp:
14260        (WebCore::RenderRegion::positionForPoint):
14261        * rendering/RenderRegion.h:
14262        * rendering/RenderReplaced.cpp:
14263        (WebCore::RenderReplaced::positionForPoint):
14264        * rendering/RenderReplaced.h:
14265        * rendering/RenderText.cpp:
14266        (WebCore::RenderText::positionForPoint):
14267        * rendering/RenderText.h:
14268        * rendering/svg/RenderSVGInlineText.cpp:
14269        (WebCore::RenderSVGInlineText::positionForPoint):
14270        * rendering/svg/RenderSVGInlineText.h:
14271        * rendering/svg/RenderSVGText.cpp:
14272        (WebCore::RenderSVGText::positionForPoint):
14273        * rendering/svg/RenderSVGText.h:
14274
142752014-04-25  Philippe Normand  <pnormand@igalia.com>
14276
14277        [GTK] Iframe seamless support was removed in r163427
14278        https://bugs.webkit.org/show_bug.cgi?id=132192
14279
14280        Reviewed by Carlos Garcia Campos.
14281
14282        Add the removed get and set methods as deprecated API to keep
14283        backwards compatibility.
14284
14285        * bindings/gobject/WebKitDOMDeprecated.cpp:
14286        (webkit_dom_processing_instruction_set_data):
14287        (webkit_dom_html_iframe_element_get_seamless):
14288        (webkit_dom_html_iframe_element_set_seamless):
14289        * bindings/gobject/WebKitDOMDeprecated.h:
14290        * bindings/gobject/WebKitDOMDeprecated.symbols:
14291
142922014-04-25  Philippe Normand  <pnormand@igalia.com>
14293
14294        [GTK] HTMLInputElement webkitdirectory property was removed in r163483
14295        https://bugs.webkit.org/show_bug.cgi?id=132191
14296
14297        Reviewed by Carlos Garcia Campos.
14298
14299        Add the removed get and set methods as deprecated API to keep
14300        backwards compatibility.
14301
14302        * bindings/gobject/WebKitDOMDeprecated.cpp:
14303        (webkit_dom_html_input_element_get_webkitdirectory):
14304        (webkit_dom_html_input_element_set_webkitdirectory):
14305        * bindings/gobject/WebKitDOMDeprecated.h:
14306        * bindings/gobject/WebKitDOMDeprecated.symbols:
14307
143082014-04-25  Javier Fernandez  <jfernandez@igalia.com>
14309
14310        [CSS Grid Layout] Implementation of the grid-template shorthand.
14311        https://bugs.webkit.org/show_bug.cgi?id=128980
14312
14313        Reviewed by Darin Adler.
14314
14315        This shorthand sets the values for the grid-template-columns,
14316        grid-template-rows and grid-template-areas, so the implementation
14317        tries to reuse as much available parsing functions as possible.
14318
14319        The "parsingGridTrackList" was refactored to return a CSSValue and
14320        let the "parseValue" function to assign the property value. The
14321        "forwardSlash" operator is now valid when the track-list clause is
14322        part of a shorthand. The "parseValue" function checkouts that only
14323        additional clauses are allowed when processing shorthands; the
14324        grid-columns-rows-get-set.html tests was modified to verify this.
14325
14326        The "parseGridTemplateAreas" was refactored too, in order to
14327        process single areas's rows. This is very useful for the
14328        gris-template secondary syntax, which mixes areas and rows values.
14329
14330        Finally, the "parseGirdLineNames" function was modified as well by
14331        defining an new argument to concatenate head/tail custom-ident
14332        elements and ensure the identList is at the heading index, since
14333        it's now possible the parseList was rewound.
14334
14335        The implementation of the grid-template shorthand tries first to
14336        match the <grid-template-columns> / <grid-template-rows> syntax,
14337        failing back to the secondary syntax if needed.  This approach
14338        requires to rewind the parseList but it produces a clearer code.
14339
14340        Test: fast/css-grid-layout/grid-template-shorthand-get-set.html
14341
14342        * css/CSSComputedStyleDeclaration.cpp:
14343        (WebCore::ComputedStyleExtractor::propertyValue):
14344        * css/CSSParser.cpp:
14345        (WebCore::CSSParser::parseValue):
14346        (WebCore::CSSParser::parseGridTemplateRowsAndAreas):
14347        (WebCore::CSSParser::parseGridTemplateShorthand):
14348        (WebCore::CSSParser::parseGridLineNames):
14349        (WebCore::CSSParser::parseGridTrackList):
14350        (WebCore::CSSParser::parseGridTemplateAreasRow):
14351        (WebCore::CSSParser::parseGridTemplateAreas):
14352        * css/CSSParser.h:
14353        * css/CSSParserValues.h:
14354        (WebCore::CSSParserValueList::setCurrentIndex):
14355        * css/CSSPropertyNames.in:
14356        * css/StylePropertyShorthand.cpp:
14357        (WebCore::webkitGridTemplateShorthand):
14358        * css/StylePropertyShorthand.h:
14359
143602014-04-25  Andreas Kling  <akling@apple.com>
14361
14362        Remove two unused SVGDocument functions.
14363        <https://webkit.org/b/132178>
14364
14365        Reviewed by Antti Koivisto.
14366
14367        * svg/SVGDocument.cpp:
14368        (WebCore::SVGDocument::dispatchZoomEvent): Deleted.
14369        (WebCore::SVGDocument::dispatchScrollEvent): Deleted.
14370        * svg/SVGDocument.h:
14371
143722014-04-25  Ion Rosca  <rosca@adobe.com>
14373
14374        Incomplete body painting when using blend modes
14375        https://bugs.webkit.org/show_bug.cgi?id=131889
14376
14377        The incomplete painting was caused by the transparency layer created for
14378        the root renderer. We can safely skip creating this transparency layer at
14379        the root level, as there is nothing else being painted behind this layer that
14380        could be used erroneously as a backdrop.
14381
14382        Reviewed by Simon Fraser.
14383
14384        Test: css3/compositing/blend-mode-with-body.html
14385
14386        * rendering/RenderLayer.h:
14387        Changing RenderLayer::paintsWithTransparency so that it will not
14388        return true when the root renderer needs to isolate blending.
14389
143902014-04-25  Darin Adler  <darin@apple.com>
14391
14392        ASSERTION FAILED: "!m_isolatedWorld->isNormal() || m_wrapper || !m_jsFunction" in svg/custom/use-instanceRoot-event-listeners.xhtml
14393        https://bugs.webkit.org/show_bug.cgi?id=132148
14394
14395        Reviewed by Andreas Kling.
14396
14397        Changed how JSCustomMarkFunction generation works. Instead of leaving out
14398        the generated visitChildren function, just generate a call to visitAdditionalChildren.
14399        This eliminates the need to repeat boilerplate.
14400
14401        The fix for the above bug was to correct mistaken logic where JSSVGElementInstance
14402        had a visitChildren that did not properly mark event listeners because it explicitly
14403        did not call through to the base class visitChildren. The new arrangement makes that
14404        mistake impossible.
14405
14406        * bindings/js/JSAttrCustom.cpp:
14407        (WebCore::JSAttr::visitAdditionalChildren): Use this instead of visitChildren.
14408        * bindings/js/JSAudioTrackCustom.cpp:
14409        (WebCore::JSAudioTrack::visitAdditionalChildren): Ditto.
14410        * bindings/js/JSAudioTrackListCustom.cpp:
14411        (WebCore::JSAudioTrackList::visitAdditionalChildren): Ditto.
14412        * bindings/js/JSCSSRuleCustom.cpp:
14413        (WebCore::JSCSSRule::visitAdditionalChildren): Ditto.
14414        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
14415        (WebCore::JSCSSStyleDeclaration::visitAdditionalChildren): Ditto.
14416        * bindings/js/JSCanvasRenderingContextCustom.cpp:
14417        (WebCore::JSCanvasRenderingContext::visitAdditionalChildren): Ditto.
14418        * bindings/js/JSCryptoKeyPairCustom.cpp:
14419        (WebCore::JSCryptoKeyPair::visitAdditionalChildren): Ditto.
14420        * bindings/js/JSDOMWindowCustom.cpp:
14421        (WebCore::JSDOMWindow::visitAdditionalChildren): Ditto.
14422        * bindings/js/JSMessageChannelCustom.cpp:
14423        (WebCore::JSMessageChannel::visitAdditionalChildren): Ditto.
14424        * bindings/js/JSMessagePortCustom.cpp:
14425        (WebCore::JSMessagePort::visitAdditionalChildren): Ditto.
14426        * bindings/js/JSNodeCustom.cpp:
14427        (WebCore::JSNode::visitAdditionalChildren): Ditto.
14428        * bindings/js/JSNodeFilterCustom.cpp:
14429        (WebCore::JSNodeFilter::visitAdditionalChildren): Ditto.
14430        * bindings/js/JSNodeIteratorCustom.cpp:
14431        (WebCore::JSNodeIterator::visitAdditionalChildren): Ditto.
14432        * bindings/js/JSSVGElementInstanceCustom.cpp:
14433        (WebCore::JSSVGElementInstance::visitAdditionalChildren): Ditto.
14434        * bindings/js/JSSharedWorkerCustom.cpp:
14435        (WebCore::JSSharedWorker::visitAdditionalChildren): Ditto.
14436        * bindings/js/JSStyleSheetCustom.cpp:
14437        (WebCore::JSStyleSheet::visitAdditionalChildren): Ditto.
14438        * bindings/js/JSTextTrackCueCustom.cpp:
14439        (WebCore::JSTextTrackCue::visitAdditionalChildren): Ditto.
14440        * bindings/js/JSTextTrackCustom.cpp:
14441        (WebCore::JSTextTrack::visitAdditionalChildren): Ditto.
14442        * bindings/js/JSTextTrackListCustom.cpp:
14443        (WebCore::JSTextTrackList::visitAdditionalChildren): Ditto.
14444        * bindings/js/JSTreeWalkerCustom.cpp:
14445        (WebCore::JSTreeWalker::visitAdditionalChildren): Ditto.
14446        * bindings/js/JSVideoTrackCustom.cpp:
14447        (WebCore::JSVideoTrack::visitAdditionalChildren): Ditto.
14448        * bindings/js/JSVideoTrackListCustom.cpp:
14449        (WebCore::JSVideoTrackList::visitAdditionalChildren): Ditto.
14450        * bindings/js/JSWebGLRenderingContextCustom.cpp:
14451        (WebCore::JSWebGLRenderingContext::visitAdditionalChildren): Ditto.
14452        * bindings/js/JSWorkerGlobalScopeCustom.cpp:
14453        (WebCore::JSWorkerGlobalScope::visitAdditionalChildren): Ditto.
14454        * bindings/js/JSXMLHttpRequestCustom.cpp:
14455        (WebCore::JSXMLHttpRequest::visitAdditionalChildren): Ditto.
14456        * bindings/js/JSXPathResultCustom.cpp:
14457        (WebCore::JSXPathResult::visitAdditionalChildren): Ditto.
14458
14459        * bindings/js/JSDOMGlobalObject.cpp:
14460        (WebCore::JSDOMGlobalObject::visitChildren): Rewrote to use modern for loops.
14461
14462        * bindings/scripts/CodeGeneratorJS.pm:
14463        (GenerateHeader): Generate declaration of visitAdditionalChildren.
14464        (GenerateImplementation): Generate call to visitAdditionalChildren.
14465
144662014-04-24  Andreas Kling  <akling@apple.com>
14467
14468        [iOS WebKit2] Enable optimization to mmap downloaded resources once they become file-backed.
14469        <https://webkit.org/b/132171>
14470        <rdar://problem/16720733>
14471
14472        Add a missing export for the USE(CFNETWORK) + WebKit2 combo.
14473
14474        Reviewed by Antti Koivisto.
14475
14476        * WebCore.exp.in:
14477
144782014-04-24  Darin Adler  <darin@apple.com>
14479
14480        FrameLoader::checkCompleted can hit the "ref'ing while destroyed" assertion
14481        https://bugs.webkit.org/show_bug.cgi?id=132163
14482        rdar://problem/16720640
14483
14484        Reviewed by Brady Eidson.
14485
14486        Couldn't find a way to test this yet. Would be nice to have a test.
14487
14488        * loader/FrameLoader.cpp:
14489        (WebCore::FrameLoader::checkCompleted): Move protector until after we check
14490        if the frame is already complete. That can happen in practice when this is
14491        called from within the frame's destructor. All the code that runs before the
14492        protector simply checks state and does not require protection.
14493
144942014-04-24  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
14495
14496        Mark Supplement instead of RefCountedSupplement in NavigatorContentUtils 
14497        https://bugs.webkit.org/show_bug.cgi?id=132151
14498
14499        Reviewed by Darin Adler.
14500
14501        Though Original goal was to make it sharable across navigator instances, the NavigatorContentUtils
14502        has used RefCountedSupplement<Page> instead of RefCountedSupplement<Navigator>. This patch makes it
14503        use Supplement<Page> because there is no scenario which needs to be shared across navigator instances.
14504
14505        Blink merge from https://src.chromium.org/viewvc/blink?view=rev&revision=171403.
14506
14507        No new tests, no behavior changes.
14508
14509        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
14510        (WebCore::NavigatorContentUtils::from):
14511        (WebCore::NavigatorContentUtils::create):
14512        (WebCore::provideNavigatorContentUtilsTo):
14513        * Modules/navigatorcontentutils/NavigatorContentUtils.h:
14514
145152014-04-24  Commit Queue  <commit-queue@webkit.org>
14516
14517        Unreviewed, rolling out r167700.
14518        https://bugs.webkit.org/show_bug.cgi?id=132142
14519
14520        Incorrectly reverted the change in r167547 for
14521        webkit.org/b/131898 (Requested by rniwa on #webkit).
14522
14523        Reverted changeset:
14524
14525        "Cursor doesn't change back to pointer when leaving the Safari
14526        window"
14527        https://bugs.webkit.org/show_bug.cgi?id=132038
14528        http://trac.webkit.org/changeset/167700
14529
145302014-04-24  Brady Eidson  <beidson@apple.com>
14531
14532        Rename "IMAGE_CONTROLS" feature to "SERVICE_CONTROLS"
14533        https://bugs.webkit.org/show_bug.cgi?id=132155
14534
14535        Reviewed by Tim Horton.
14536
14537        No new tests (No change in behavior).
14538
14539        * Configurations/FeatureDefines.xcconfig:
14540        * DerivedSources.make:
14541        * WebCore.exp.in:
14542        * css/CSSDefaultStyleSheets.cpp:
14543        (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
14544        * css/CSSPrimitiveValueMappings.h:
14545        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
14546        * css/CSSValueKeywords.in:
14547        * dom/Node.h:
14548        * html/HTMLImageElement.cpp:
14549        (WebCore::HTMLImageElement::HTMLImageElement):
14550        (WebCore::HTMLImageElement::parseAttribute):
14551        (WebCore::HTMLImageElement::didAttachRenderers):
14552        * html/HTMLImageElement.h:
14553        * html/shadow/ImageControlsRootElement.cpp:
14554        * html/shadow/ImageControlsRootElement.h:
14555        * html/shadow/mac/ImageControlsButtonElementMac.cpp:
14556        * html/shadow/mac/ImageControlsButtonElementMac.h:
14557        * html/shadow/mac/ImageControlsRootElementMac.cpp:
14558        * html/shadow/mac/ImageControlsRootElementMac.h:
14559        * page/ContextMenuContext.cpp:
14560        (WebCore::ContextMenuContext::ContextMenuContext):
14561        * page/ContextMenuContext.h:
14562        * page/ContextMenuController.cpp:
14563        (WebCore::ContextMenuController::maybeCreateContextMenu):
14564        (WebCore::ContextMenuController::populate):
14565        * page/ContextMenuController.h:
14566        * page/Settings.in:
14567        * platform/ThemeTypes.h:
14568        * rendering/RenderImage.cpp:
14569        (WebCore::RenderImage::canHaveChildren):
14570        * rendering/RenderTheme.cpp:
14571        (WebCore::RenderTheme::adjustStyle):
14572        (WebCore::RenderTheme::paint):
14573        (WebCore::RenderTheme::paintBorderOnly):
14574        (WebCore::RenderTheme::paintDecorations):
14575        * rendering/RenderTheme.h:
14576        * rendering/RenderThemeMac.h:
14577        * rendering/RenderThemeMac.mm:
14578        (WebCore::RenderThemeMac::servicesRolloverButtonCell):
14579        (WebCore::RenderThemeMac::paintImageControlsButton):
14580        (WebCore::RenderThemeMac::imageControlsButtonSize):
14581
145822014-04-24  Timothy Hatcher  <timothy@apple.com>
14583
14584        Web Inspector: Restore PageDebuggerAgent::enable / disable
14585        https://bugs.webkit.org/show_bug.cgi?id=132156
14586
14587        Restore functions that were eroniously removed in r167530.
14588
14589        Reviewed by Joseph Pecoraro.
14590
14591        * inspector/PageDebuggerAgent.cpp:
14592        (WebCore::PageDebuggerAgent::enable): Added.
14593        (WebCore::PageDebuggerAgent::disable): Added.
14594        * inspector/PageDebuggerAgent.h:
14595
145962014-04-24  Alexey Proskuryakov  <ap@apple.com>
14597
14598        Dropzone effects don't work in non-file documents
14599        https://bugs.webkit.org/show_bug.cgi?id=131770
14600
14601        Reviewed by Darin Adler.
14602
14603        File documents have two quirks that were making dropzone work in these before:
14604        1. An ancient hack for Dashboard allows pasteboard access from JS.
14605        2. On Mac, sandbox doesn't prevent File object creation, as we already have the access.
14606
14607        * dom/DataTransfer.cpp:
14608        (WebCore::DataTransfer::hasFileOfType):
14609        (WebCore::DataTransfer::hasStringOfType):
14610        * dom/DataTransfer.h:
14611        Moved these functions from EventHandler to DataTransfer. We can't create a DataTransfer
14612        with Files while dragging, security doesn't permit us to. But we can get the file name.
14613
14614        * fileapi/File.cpp:
14615        (WebCore::createBlobDataForFile):
14616        (WebCore::createBlobDataForFileWithName):
14617        (WebCore::File::contentTypeFromFilePath):
14618        (WebCore::getContentTypeFromFileName): Deleted.
14619        * fileapi/File.h:
14620        Exposed a function to get file type from path without creating a File first.
14621        This is much cheaper than creating a File, and works even when sandbox disallows
14622        read access to content, such as when dragging over a target.
14623
14624        * page/EventHandler.cpp:
14625        (WebCore::hasDropZoneType):
14626        (WebCore::hasFileOfType): Deleted.
14627        (WebCore::hasStringOfType): Deleted.
14628
146292014-04-24  Commit Queue  <commit-queue@webkit.org>
14630
14631        Unreviewed, rolling out r167441.
14632        https://bugs.webkit.org/show_bug.cgi?id=132152
14633
14634        Caused full screen regressions on vimeo, youtube, and others.
14635        (Requested by jernoble on #webkit).
14636
14637        Reverted changeset:
14638
14639        "Fullscreen media controls are unusable in pagination mode"
14640        https://bugs.webkit.org/show_bug.cgi?id=131705
14641        http://trac.webkit.org/changeset/167441
14642
146432014-04-24  Adenilson Cavalcanti  <cavalcantii@gmail.com>
14644
14645        Unused class forward declarations in Page
14646        https://bugs.webkit.org/show_bug.cgi?id=132141
14647
14648        Reviewed by Benjamin Poulain.
14649
14650        No new tests, no change on behavior.
14651
14652        * page/Page.h:
14653
146542014-04-24  Eric Carlson  <eric.carlson@apple.com>
14655
14656        [Mac] don't ask for AVAssetTrack properties before they are available
14657        https://bugs.webkit.org/show_bug.cgi?id=131902
14658        <rdar://problem/16505076>
14659
14660        Reviewed by Brent Fulgham.
14661
14662        No new tests, the behavior this changes can not be tested with a layout test.
14663
14664        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
14665        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
14666        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize
14667            m_cachedTotalBytes.
14668        (WebCore::MediaPlayerPrivateAVFoundationObjC::beginLoadingMetadata): Don't report that
14669            metadata has been loaded until the track properties we need have been loaded too.
14670        (WebCore::MediaPlayerPrivateAVFoundationObjC::totalBytes): Cache totalBytes instead
14671            of recalculating it every time.
14672        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange): Invalidate cached
14673            total bytes.
14674        (WebCore::assetTrackMetadataKeyNames): Array of AVAssetTrack properties we use.
14675
146762014-04-24  Myles C. Maxfield  <mmaxfield@apple.com>
14677
14678        Unify platformWidthForGlyph across OS X and iOS
14679        https://bugs.webkit.org/show_bug.cgi?id=132036
14680
14681        Reviewed by Darin Adler.
14682
14683        This patch creates on shared SimpleFontData::platformWidthForGlyph() function for both OS X and iOS.
14684
14685        No new tests are necessary because there should be no behavior changes.
14686
14687        * platform/graphics/SimpleFontData.h: Signatures for two helper functions
14688        * platform/graphics/ios/SimpleFontDataIOS.mm: Replace iOS implementation of platformWidthForGlyph() with
14689        implementations of only the two helper functions
14690        (WebCore::SimpleFontData::getRenderingStyle): Compute style argument to CGFontGetGlyphAdvancesForStyle()
14691        (WebCore::SimpleFontData::advanceForColorBitmapFont): iOS doesn't have color bitmap fonts
14692        (WebCore::SimpleFontData::platformWidthForGlyph): Deleted.
14693        * platform/graphics/mac/SimpleFontDataMac.mm:
14694        (WebCore::SimpleFontData::getRenderingStyle): Compute style argument to CGFontGetGlyphAdvancesForStyle()
14695        (WebCore::SimpleFontData::advanceForColorBitmapFont): Use [NSFont advancementForGlyph] to compute the advance
14696        (WebCore::hasCustomTracking): Removed #if
14697        (WebCore::isEmoji): Only relevant on iOS
14698        (WebCore::SimpleFontData::platformWidthForGlyph): Shared implementation. Calls helper functions.
14699
147002014-04-24  Zalan Bujtas  <zalan@apple.com>
14701
14702        Subpixel rendering: Clipping on text areas when shifted by one device pixel.
14703        https://bugs.webkit.org/show_bug.cgi?id=132008
14704
14705        Reviewed by Darin Adler.
14706
14707        Make RenderTheme paint* functions LayoutRect aware. Textarea is device pixel snapped, while
14708        other theme controls are still on integral size/positions.
14709
14710        Test: fast/forms/hidpi-textarea-on-subpixel-position.html
14711
14712        * rendering/RenderBox.cpp:
14713        (WebCore::RenderBox::paintBoxDecorations):
14714        * rendering/RenderTheme.cpp:
14715        (WebCore::RenderTheme::paint):
14716        (WebCore::RenderTheme::paintBorderOnly):
14717        (WebCore::RenderTheme::paintDecorations):
14718        * rendering/RenderTheme.h:
14719        (WebCore::RenderTheme::paintTextField):
14720        (WebCore::RenderTheme::paintTextFieldDecorations):
14721        (WebCore::RenderTheme::paintTextArea):
14722        (WebCore::RenderTheme::paintTextAreaDecorations):
14723        * rendering/RenderThemeIOS.h:
14724        * rendering/RenderThemeIOS.mm:
14725        (WebCore::RenderThemeIOS::paintTextFieldDecorations):
14726        (WebCore::RenderThemeIOS::paintTextAreaDecorations):
14727        * rendering/RenderThemeMac.h:
14728        * rendering/RenderThemeMac.mm:
14729        (WebCore::RenderThemeMac::paintTextField):
14730        (WebCore::RenderThemeMac::paintTextArea):
14731
147322014-04-24  Myles C. Maxfield  <mmaxfield@apple.com>
14733
14734        FontCache::fontCache() never returns nullptr so it can be made to return a reference instead
14735        https://bugs.webkit.org/show_bug.cgi?id=132110
14736
14737        Reviewed by Tim Horton.
14738
14739        Updates callers to use '.' instead of '->'.
14740
14741        No new tests are necessary because there should be no behavior change.
14742
14743        * css/CSSFontFaceSource.cpp:
14744        (WebCore::CSSFontFaceSource::getFontData):
14745        * css/CSSFontSelector.cpp:
14746        (WebCore::CSSFontSelector::CSSFontSelector):
14747        (WebCore::CSSFontSelector::~CSSFontSelector):
14748        (WebCore::CSSFontSelector::addFontFaceRule):
14749        (WebCore::fontDataForGenericFamily):
14750        (WebCore::CSSFontSelector::getFallbackFontData):
14751        * platform/MemoryPressureHandler.cpp:
14752        (WebCore::MemoryPressureHandler::releaseMemory):
14753        * platform/graphics/FontCache.cpp:
14754        (WebCore::fontCache): Return a reference
14755        * platform/graphics/FontCache.h:
14756        (WebCore::FontCachePurgePreventer::FontCachePurgePreventer):
14757        (WebCore::FontCachePurgePreventer::~FontCachePurgePreventer):
14758        * platform/graphics/FontGlyphs.cpp:
14759        (WebCore::FontGlyphs::FontGlyphs):
14760        (WebCore::FontGlyphs::releaseFontData):
14761        (WebCore::FontGlyphs::realizeFontDataAt):
14762        (WebCore::FontGlyphs::glyphDataAndPageForCharacter):
14763        * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
14764        (WebCore::FontPlatformData::verticalData):
14765        * platform/graphics/ios/SimpleFontDataIOS.mm:
14766        (WebCore::SimpleFontData::platformCreateScaledFontData):
14767        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
14768        (WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
14769        * platform/graphics/mac/FontCacheMac.mm:
14770        (WebCore::invalidateFontCache):
14771        (WebCore::fontCacheRegisteredFontsChangedNotificationCallback):
14772        * platform/graphics/mac/SimpleFontDataMac.mm:
14773        (WebCore::SimpleFontData::platformDestroy):
14774        (WebCore::SimpleFontData::platformCreateScaledFontData):
14775        * platform/graphics/win/FontCacheWin.cpp:
14776        (WebCore::getCJKCodePageMasks):
14777        * platform/graphics/win/SimpleFontDataWin.cpp:
14778        (WebCore::SimpleFontData::containsCharacters):
14779        * platform/graphics/wince/FontCacheWinCE.cpp:
14780        (WebCore::getCJKCodePageMasks):
14781        * platform/graphics/wince/FontPlatformData.cpp:
14782        (WebCore::FontFamilyCodePageInfo::codePages):
14783        (WebCore::FixedSizeFontData::create):
14784        * platform/graphics/wince/GlyphPageTreeNodeWinCE.cpp:
14785        (WebCore::GlyphPage::fill):
14786        * platform/graphics/wince/SimpleFontDataWinCE.cpp:
14787        (WebCore::SimpleFontData::platformCreateScaledFontData):
14788        (WebCore::SimpleFontData::containsCharacters):
14789
147902014-04-24  Eric Carlson  <eric.carlson@apple.com>
14791
14792        [iOS] Manage AudioSession category according to media type
14793        https://bugs.webkit.org/show_bug.cgi?id=132096
14794
14795        Reviewed by Jer Noble.
14796
14797        * WebCore.exp.in: Export setting.
14798
14799        * html/HTMLMediaSession.cpp:
14800        (WebCore::HTMLMediaSession::HTMLMediaSession):
14801        (WebCore::initializeAudioSession): Deleted.
14802
14803        * page/Settings.cpp:
14804        * page/Settings.h:
14805        (WebCore::Settings::setShouldManageAudioSession): New.
14806        (WebCore::Settings::shouldManageAudioSession): Ditto.
14807
14808        * platform/audio/ios/AudioDestinationIOS.cpp:
14809        (WebCore::AudioDestinationIOS::AudioDestinationIOS): Use a MediaSession instead of inheriting
14810            from AudioListener and calling the AudioSession directly.
14811        (WebCore::AudioDestinationIOS::~AudioDestinationIOS): Ditto.
14812        (WebCore::AudioDestinationIOS::start): Notify session.
14813        (WebCore::AudioDestinationIOS::stop): Ditto.
14814        (WebCore::AudioDestinationIOS::beganAudioInterruption): Deleted.
14815        (WebCore::AudioDestinationIOS::endedAudioInterruption): Deleted.
14816        * platform/audio/ios/AudioDestinationIOS.h:
14817        (WebCore::AudioDestinationIOS::mediaType):
14818        (WebCore::AudioDestinationIOS::canReceiveRemoteControlCommands):
14819        (WebCore::AudioDestinationIOS::didReceiveRemoteControlCommand):
14820        (WebCore::AudioDestinationIOS::isPlaying): Deleted.
14821
14822        * platform/audio/ios/AudioSessionIOS.mm:
14823        (WebCore::categoryName): Debug-only logging function.
14824        (WebCore::AudioSession::setCategory): Don't stick with "media" once it is set.
14825
14826        * platform/audio/ios/MediaSessionManagerIOS.mm:
14827        (WebCore::MediaSessionManageriOS::resetRestrictions): Set up restrictions for WebAudio.
14828        (WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Don't set invalid start time.
14829
14830        * platform/audio/mac/MediaSessionManagerMac.cpp:
14831        (MediaSessionManager::updateSessionState): Manage AudioSession.active when WebAudio clients
14832            come and go. Manage AudioSession.category according to the number of WebAudio and
14833            HTMLMediaElement clients.
14834
148352014-04-24  David Hyatt  <hyatt@apple.com>
14836
14837        [New Multicolumn] Client rects don't work with column spans.
14838        https://bugs.webkit.org/show_bug.cgi?id=132131
14839
14840        Reviewed by Dean Jackson.
14841        
14842        Don't factor in the offset of the multicolumn set from the top
14843        of the multicolumn block. This was added already, and it doesn't
14844        need to be a part of columnTranslationForOffset.
14845
14846        Added fast/multicol/client-rects-spanners.html
14847
14848        * rendering/RenderMultiColumnSet.cpp:
14849        (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
14850
148512014-04-24  Praveen R Jadhav  <praveen.j@samsung.com>
14852
14853        [EFL] WebKit build fails when MEDIA_SOURCE is enabled
14854        https://bugs.webkit.org/show_bug.cgi?id=132118
14855
14856        Reviewed by Brent Fulgham.
14857
14858        Files MediaSourceGStreamer.cpp, SourceBufferPrivateGStreamer.cpp and
14859        WebKitMediaSourceGStreamer.cpp are included for EFL port build.
14860
14861        No new tests. No change in behaviour.
14862
14863        * PlatformEfl.cmake: MediaSourceGStreamer.cpp, SourceBufferPrivateGStreamer.cpp
14864        and WebKitMediaSourceGStreamer.cpp are included for compilation.
14865
148662014-04-24  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
14867
14868        ASSERTION FAILED: !begin.isIndefinite() in WebCore::SVGSMILElement::resolveFirstInterval.
14869        https://bugs.webkit.org/show_bug.cgi?id=131097
14870
14871        Reviewed by Darin Adler.
14872
14873        According to smil animation reference, max attribute cannot be 0.
14874
14875        Test: svg/animations/smil-animation-max-attribute-zero-crash.svg
14876
14877        * svg/animation/SVGSMILElement.cpp:
14878        (WebCore::SVGSMILElement::maxValue):
14879          changed (result < 0) to (result <= 0)
14880
148812014-04-24  Ryuan Choi  <ryuan.choi@samsung.com>
14882
14883        Remove screenColorProfile()
14884        https://bugs.webkit.org/show_bug.cgi?id=132035
14885
14886        Reviewed by Darin Adler.
14887
14888        Only chromium used screenColorProfile() since r120789.
14889
14890        * platform/PlatformScreen.h:
14891        * platform/efl/PlatformScreenEfl.cpp:
14892        (WebCore::screenColorProfile): Deleted.
14893        * platform/gtk/PlatformScreenGtk.cpp:
14894        (WebCore::screenColorProfile): Deleted.
14895        * platform/image-decoders/ImageDecoder.h:
14896        (WebCore::ImageDecoder::qcmsOutputDeviceProfile):
14897        * platform/ios/PlatformScreenIOS.mm:
14898        (WebCore::screenColorProfile): Deleted.
14899        * platform/mac/PlatformScreenMac.mm:
14900        (WebCore::screenColorProfile): Deleted.
14901        * platform/win/PlatformScreenWin.cpp:
14902        (WebCore::screenColorProfile): Deleted.
14903
149042014-04-24  Zalan Bujtas  <zalan@apple.com>
14905
14906        One more unreviewed build fix after r167755.
14907
14908        * html/shadow/mac/ImageControlsButtonElementMac.cpp:
14909        (WebCore::RenderImageControlsButton::updateLogicalWidth):
14910        (WebCore::RenderImageControlsButton::computeLogicalHeight):
14911
149122014-04-24  Zalan Bujtas  <zalan@apple.com>
14913
14914        Unreviewed build fix after r167755.
14915
14916        * rendering/RenderThemeMac.h:
14917
149182014-04-24  Zalan Bujtas  <zalan@apple.com>
14919
14920        Transition RenderTheme API from RenderObject* to const RenderObject&
14921        https://bugs.webkit.org/show_bug.cgi?id=132037
14922
14923        Reviewed by Andreas Kling.
14924
14925        Using const references provides better encapsulation and improve security.
14926
14927        No change in behavior.
14928
14929        * accessibility/AccessibilityObject.cpp:
14930        (WebCore::AccessibilityObject::boundingBoxForQuads):
14931        * dom/Element.cpp:
14932        (WebCore::Element::setActive):
14933        (WebCore::Element::setHovered):
14934        * editing/FrameSelection.cpp:
14935        (WebCore::FrameSelection::focusedOrActiveStateChanged):
14936        * html/HTMLFormControlElement.cpp:
14937        (WebCore::HTMLFormControlElement::disabledStateChanged):
14938        (WebCore::HTMLFormControlElement::readOnlyAttributeChanged):
14939        * html/HTMLInputElement.cpp:
14940        (WebCore::HTMLInputElement::setChecked):
14941        (WebCore::HTMLInputElement::setIndeterminate):
14942        * html/HTMLOptionElement.cpp:
14943        (WebCore::HTMLOptionElement::parseAttribute):
14944        * rendering/RenderBlock.cpp:
14945        (WebCore::RenderBlock::addVisualOverflowFromTheme):
14946        (WebCore::RenderBlock::baselinePosition):
14947        * rendering/RenderBox.cpp:
14948        (WebCore::RenderBox::paintBoxDecorations):
14949        * rendering/RenderButton.cpp:
14950        (WebCore::RenderButton::styleDidChange):
14951        * rendering/RenderFileUploadControl.cpp:
14952        (WebCore::RenderFileUploadControl::paintObject):
14953        * rendering/RenderFlowThread.cpp:
14954        (WebCore::RenderFlowThread::addRegionsVisualOverflowFromTheme):
14955        * rendering/RenderObject.cpp:
14956        (WebCore::RenderObject::drawLineForBoxSide):
14957        * rendering/RenderObject.h:
14958        * rendering/RenderProgress.cpp:
14959        (WebCore::RenderProgress::computeLogicalHeight):
14960        * rendering/RenderTextControlSingleLine.cpp:
14961        (WebCore::RenderTextControlSingleLine::paint):
14962        * rendering/RenderTheme.cpp:
14963        (WebCore::RenderTheme::paint):
14964        (WebCore::RenderTheme::paintBorderOnly):
14965        (WebCore::RenderTheme::paintDecorations):
14966        (WebCore::RenderTheme::baselinePosition):
14967        (WebCore::RenderTheme::adjustRepaintRect):
14968        (WebCore::RenderTheme::stateChanged):
14969        (WebCore::RenderTheme::updateControlStatesForRenderer):
14970        (WebCore::RenderTheme::extractControlStatesForRenderer):
14971        (WebCore::RenderTheme::isActive):
14972        (WebCore::RenderTheme::isChecked):
14973        (WebCore::RenderTheme::isIndeterminate):
14974        (WebCore::RenderTheme::isEnabled):
14975        (WebCore::RenderTheme::isFocused):
14976        (WebCore::RenderTheme::isPressed):
14977        (WebCore::RenderTheme::isSpinUpButtonPartPressed):
14978        (WebCore::RenderTheme::isReadOnlyControl):
14979        (WebCore::RenderTheme::isHovered):
14980        (WebCore::RenderTheme::isSpinUpButtonPartHovered):
14981        (WebCore::RenderTheme::isDefault):
14982        (WebCore::RenderTheme::paintInputFieldSpeechButton):
14983        (WebCore::RenderTheme::paintMeter):
14984        (WebCore::RenderTheme::paintSliderTicks):
14985        (WebCore::RenderTheme::progressBarRectForBounds):
14986        * rendering/RenderTheme.h:
14987        (WebCore::RenderTheme::controlSupportsTints):
14988        (WebCore::RenderTheme::paintCapsLockIndicator):
14989        (WebCore::RenderTheme::paintFileUploadIconDecorations):
14990        (WebCore::RenderTheme::imageControlsButtonSize):
14991        (WebCore::RenderTheme::paintCheckbox):
14992        (WebCore::RenderTheme::paintRadio):
14993        (WebCore::RenderTheme::paintButton):
14994        (WebCore::RenderTheme::paintInnerSpinButton):
14995        (WebCore::RenderTheme::paintCheckboxDecorations):
14996        (WebCore::RenderTheme::paintRadioDecorations):
14997        (WebCore::RenderTheme::paintButtonDecorations):
14998        (WebCore::RenderTheme::paintTextField):
14999        (WebCore::RenderTheme::paintTextFieldDecorations):
15000        (WebCore::RenderTheme::paintTextArea):
15001        (WebCore::RenderTheme::paintTextAreaDecorations):
15002        (WebCore::RenderTheme::paintMenuList):
15003        (WebCore::RenderTheme::paintMenuListDecorations):
15004        (WebCore::RenderTheme::paintMenuListButtonDecorations):
15005        (WebCore::RenderTheme::paintPushButtonDecorations):
15006        (WebCore::RenderTheme::paintSquareButtonDecorations):
15007        (WebCore::RenderTheme::paintProgressBar):
15008        (WebCore::RenderTheme::paintSliderTrack):
15009        (WebCore::RenderTheme::paintSliderThumb):
15010        (WebCore::RenderTheme::paintSliderThumbDecorations):
15011        (WebCore::RenderTheme::paintSearchField):
15012        (WebCore::RenderTheme::paintSearchFieldDecorations):
15013        (WebCore::RenderTheme::paintSearchFieldCancelButton):
15014        (WebCore::RenderTheme::paintSearchFieldDecorationPart):
15015        (WebCore::RenderTheme::paintSearchFieldResultsDecorationPart):
15016        (WebCore::RenderTheme::paintSearchFieldResultsButton):
15017        (WebCore::RenderTheme::paintMediaFullscreenButton):
15018        (WebCore::RenderTheme::paintMediaPlayButton):
15019        (WebCore::RenderTheme::paintMediaOverlayPlayButton):
15020        (WebCore::RenderTheme::paintMediaMuteButton):
15021        (WebCore::RenderTheme::paintMediaSeekBackButton):
15022        (WebCore::RenderTheme::paintMediaSeekForwardButton):
15023        (WebCore::RenderTheme::paintMediaSliderTrack):
15024        (WebCore::RenderTheme::paintMediaSliderThumb):
15025        (WebCore::RenderTheme::paintMediaVolumeSliderContainer):
15026        (WebCore::RenderTheme::paintMediaVolumeSliderTrack):
15027        (WebCore::RenderTheme::paintMediaVolumeSliderThumb):
15028        (WebCore::RenderTheme::paintMediaRewindButton):
15029        (WebCore::RenderTheme::paintMediaReturnToRealtimeButton):
15030        (WebCore::RenderTheme::paintMediaToggleClosedCaptionsButton):
15031        (WebCore::RenderTheme::paintMediaControlsBackground):
15032        (WebCore::RenderTheme::paintMediaCurrentTime):
15033        (WebCore::RenderTheme::paintMediaTimeRemaining):
15034        (WebCore::RenderTheme::paintMediaFullScreenVolumeSliderTrack):
15035        (WebCore::RenderTheme::paintMediaFullScreenVolumeSliderThumb):
15036        (WebCore::RenderTheme::paintSnapshottedPluginOverlay):
15037        (WebCore::RenderTheme::paintImageControlsButton):
15038        * rendering/RenderThemeIOS.h:
15039        * rendering/RenderThemeIOS.mm:
15040        (WebCore::RenderThemeIOS::addRoundedBorderClip):
15041        (WebCore::RenderThemeIOS::paintCheckboxDecorations):
15042        (WebCore::RenderThemeIOS::baselinePosition):
15043        (WebCore::RenderThemeIOS::paintRadioDecorations):
15044        (WebCore::RenderThemeIOS::paintTextFieldDecorations):
15045        (WebCore::RenderThemeIOS::paintTextAreaDecorations):
15046        (WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
15047        (WebCore::RenderThemeIOS::paintSliderTrack):
15048        (WebCore::RenderThemeIOS::paintSliderThumbDecorations):
15049        (WebCore::RenderThemeIOS::paintProgressBar):
15050        (WebCore::RenderThemeIOS::paintSearchFieldDecorations):
15051        (WebCore::RenderThemeIOS::paintButtonDecorations):
15052        (WebCore::RenderThemeIOS::paintPushButtonDecorations):
15053        (WebCore::RenderThemeIOS::paintFileUploadIconDecorations):
15054        * rendering/RenderThemeMac.h:
15055        (WebCore::RenderThemeMac::updateActiveState):
15056        * rendering/RenderThemeMac.mm:
15057        (WebCore::RenderThemeMac::documentViewFor):
15058        (WebCore::RenderThemeMac::adjustRepaintRect):
15059        (WebCore::RenderThemeMac::convertToPaintingRect):
15060        (WebCore::RenderThemeMac::updateCheckedState):
15061        (WebCore::RenderThemeMac::updateEnabledState):
15062        (WebCore::RenderThemeMac::updateFocusedState):
15063        (WebCore::RenderThemeMac::updatePressedState):
15064        (WebCore::RenderThemeMac::controlSupportsTints):
15065        (WebCore::RenderThemeMac::paintTextField):
15066        (WebCore::RenderThemeMac::paintCapsLockIndicator):
15067        (WebCore::RenderThemeMac::paintTextArea):
15068        (WebCore::RenderThemeMac::paintMenuList):
15069        (WebCore::RenderThemeMac::paintMeter):
15070        (WebCore::RenderThemeMac::progressBarRectForBounds):
15071        (WebCore::RenderThemeMac::paintProgressBar):
15072        (WebCore::RenderThemeMac::paintMenuListButtonGradients):
15073        (WebCore::RenderThemeMac::paintMenuListButtonDecorations):
15074        (WebCore::RenderThemeMac::setPopupButtonCellState):
15075        (WebCore::RenderThemeMac::paintSliderTrack):
15076        (WebCore::RenderThemeMac::paintSliderThumb):
15077        (WebCore::RenderThemeMac::paintSearchField):
15078        (WebCore::RenderThemeMac::setSearchCellState):
15079        (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
15080        (WebCore::RenderThemeMac::paintSearchFieldDecorationPart):
15081        (WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart):
15082        (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
15083        (WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):
15084        (WebCore::RenderThemeMac::paintImageControlsButton):
15085        (WebCore::RenderThemeMac::imageControlsButtonSize):
15086
150872014-04-23  Carlos Garcia Campos  <cgarcia@igalia.com>
15088
15089        [GTK] HTML Media capture attribute is a boolean since r163958
15090        https://bugs.webkit.org/show_bug.cgi?id=132061
15091
15092        Reviewed by Gustavo Noronha Silva.
15093
15094        Add new methods webkit_dom_html_input_element_get_capture_enabled
15095        and webkit_dom_html_input_element_set_capture_enabled using a
15096        boolean and deprecate the old methods.
15097
15098        * bindings/gobject/WebKitDOMDeprecated.cpp:
15099        (webkit_dom_html_input_element_get_capture):
15100        (webkit_dom_html_input_element_set_capture):
15101        * bindings/gobject/WebKitDOMDeprecated.h:
15102        * bindings/gobject/WebKitDOMDeprecated.symbols:
15103        * bindings/gobject/webkitdom.symbols:
15104        * bindings/scripts/CodeGeneratorGObject.pm:
15105        (GetEffectiveFunctionName): Helper function to rename API methods
15106        for special cases.
15107        (GenerateFunction): Use GetEffectiveFunctionName().
15108
151092014-04-23  Praveen R Jadhav  <praveen.j@samsung.com>
15110
15111        [MediaStream] Implement MediaStream active attribute
15112        https://bugs.webkit.org/show_bug.cgi?id=131973
15113
15114        Reviewed by Eric Carlson.
15115
15116        MediaStream .active attribute are introduced which will replace
15117        .ended attribute. This patch implements the newly introduced attributes.
15118
15119        MediaStream-add-remove-tracks.html is updated to handle this scenario.
15120
15121        * Modules/mediastream/MediaStream.cpp:
15122        (WebCore::MediaStream::active): Added.
15123        (WebCore::MediaStream::setActive): Added.
15124        (WebCore::MediaStream::addTrack): Propagates 'onactive' event when required.
15125        (WebCore::MediaStream::removeTrack): Propagates 'oninactive' event when required.
15126        (WebCore::MediaStream::trackDidEnd): Propagates 'oninactive' event when required.
15127        (WebCore::MediaStream::streamDidEnd):
15128        (WebCore::MediaStream::setStreamIsActive): Added.
15129        * Modules/mediastream/MediaStream.h:
15130        * Modules/mediastream/MediaStream.idl:
15131        * dom/EventNames.h:
15132        * platform/mediastream/MediaStreamPrivate.cpp:
15133        (WebCore::MediaStreamPrivate::MediaStreamPrivate): Initialize .active attribute
15134        (WebCore::MediaStreamPrivate::setEnded):
15135        (WebCore::MediaStreamPrivate::setActive): Added.
15136        * platform/mediastream/MediaStreamPrivate.h:
15137        (WebCore::MediaStreamPrivate::active): Added.
15138
151392014-04-23  Darin Adler  <darin@apple.com>
15140
15141        [Cocoa] fix CF leaks found by code inspection
15142        https://bugs.webkit.org/show_bug.cgi?id=132106
15143
15144        Reviewed by Andreas Kling.
15145
15146        * page/CaptionUserPreferencesMediaAF.cpp:
15147        (WebCore::trackDisplayName): Added a missing adoptCF.
15148
15149        * platform/Language.cpp:
15150        (WebCore::displayNameForLanguageLocale): Added a missing adoptCF.
15151
15152        * platform/graphics/FontPlatformData.cpp:
15153        (WebCore::FontPlatformData::openTypeTable): Added a missing adoptCF.
15154
15155        * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:
15156        (WebCore::InbandTextTrackPrivateAVCF::label): Added two missing adoptCF.
15157
15158        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
15159        (WebCore::AVFWrapper::createImageForTimeInRect): Added two missing adoptCF.
15160
15161        * platform/graphics/cg/PDFDocumentImage.cpp:
15162        (WebCore::PDFDocumentImage::createPDFDocument): Added missing adoptCF.
15163
15164        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
15165        (WebCore::cascadeToLastResortFontDescriptor): Added two missing adoptCF.
15166
15167        * platform/graphics/mac/FontMac.mm:
15168        (WebCore::Font::primaryFontDataIsSystemFont): Added missing adoptCF.
15169
15170        * platform/graphics/mac/SimpleFontDataMac.mm:
15171        (WebCore::hasCustomTracking): Added missing adoptCF.
15172
15173        * platform/image-decoders/ImageDecoder.h:
15174        (WebCore::ImageDecoder::qcmsOutputDeviceProfile): Added CFRelease.
15175
15176        * plugins/mac/PluginPackageMac.cpp:
15177        (WebCore::readPListFile): Added two missing adoptCF.
15178
151792014-04-23  Ryosuke Niwa  <rniwa@webkit.org>
15180
15181        REGRESSION (r157328): popover to check into flight ba.com dismisses instantly when focusing form
15182        https://bugs.webkit.org/show_bug.cgi?id=131949
15183
15184        Address the review comment.
15185
15186        * dom/EventDispatcher.cpp:
15187        (WebCore::EventRelatedNodeResolver::findHostOfTreeScopeInTargetTreeScope):
15188
151892014-04-23  Andreas Kling  <akling@apple.com>
15190
15191        CachedResourceLoader hoards URLs indefinitely for no good reason.
15192        <https://webkit.org/b/132102>
15193        <rdar://problem/16708265>
15194
15195        Since we don't care about CachedResourceLoader::m_validatedURL's after
15196        the Document has finished dispatching its initial load event, clear the
15197        set at that point, and don't add any new URLs to it.
15198
15199        Reviewed by Anders Carlsson.
15200
15201        * dom/Document.cpp:
15202        (WebCore::Document::dispatchWindowLoadEvent):
15203        * loader/cache/CachedResourceLoader.cpp:
15204        (WebCore::CachedResourceLoader::requestResource):
15205        (WebCore::CachedResourceLoader::documentDidFinishLoadEvent):
15206        * loader/cache/CachedResourceLoader.h:
15207
152082014-04-23  Andreas Kling  <akling@apple.com>
15209
15210        Canvas cache of clean URLs can grow without bounds.
15211        <https://webkit.org/b/132091>
15212        <rdar://problem/16695665>
15213
15214        Remove a silly "optimization" that kept a cache of clean URLs
15215        that can be drawn into a canvas without tainting it, all to avoid
15216        the "expensive" checks to determine whether it would taint.
15217
15218        Reviewed by Benjamin Poulain.
15219
15220        * html/canvas/CanvasRenderingContext.cpp:
15221        (WebCore::CanvasRenderingContext::wouldTaintOrigin):
15222        * html/canvas/CanvasRenderingContext.h:
15223
152242014-04-23  Benjamin Poulain  <bpoulain@apple.com>
15225
15226        [iOS][WK2] Fix a few mistakes affecting the initial layout and the initial unobscured rect
15227        https://bugs.webkit.org/show_bug.cgi?id=132093
15228
15229        Reviewed by Tim Horton.
15230
15231        Change the minimum layout size to float point values to account for size defined on retina displays.
15232        The minimum layout size supports half-pixels, the value is rounded later when computing the layout size
15233        in document coordinates.
15234
15235        * WebCore.exp.in:
15236        * page/ViewportConfiguration.cpp:
15237        (WebCore::ViewportConfiguration::ViewportConfiguration):
15238        Setting the initial content size is incorrect. The layout size computation already take into account
15239        empty size for the first layout.
15240
15241        Setting the content size upfront make the first computation incorrect when the viewport arguments specify
15242        the initial scale.
15243
15244        (WebCore::ViewportConfiguration::setMinimumLayoutSize):
15245        * page/ViewportConfiguration.h:
15246        (WebCore::ViewportConfiguration::minimumLayoutSize):
15247
152482014-04-23  Brent Fulgham  <bfulgham@apple.com>
15249
15250        [Mac, iOS] Stop buffering media when on an inactive tab. 
15251        https://bugs.webkit.org/show_bug.cgi?id=132077
15252
15253        Reviewed by Eric Carlson.
15254
15255        * html/HTMLMediaElement.cpp: Rename 'm_isDisplaySleepDisablingSuspended'
15256        to 'm_elementIsHidden'.
15257        (WebCore::HTMLMediaElement::HTMLMediaElement):
15258        (WebCore::HTMLMediaElement::visibilityStatusChanged): Notify the
15259        media session that the element is (or is not) hidden.
15260        (WebCore::HTMLMediaElement::setShouldBufferData): Added.
15261        * html/HTMLMediaElement.h:
15262        * platform/audio/MediaSession.cpp:
15263        (WebCore::MediaSession::clientWillBeginPlayback): Tell media to
15264        buffer if not hidden or playing.
15265        (WebCore::MediaSession::clientWillPausePlayback): Ditto.
15266        (WebCore::MediaSession::visibilityChanged): Added. Client API, just relays call
15267        to updateClientDataBuffering.
15268        (WebCore::MediaSession::updateClientDataBuffering): Tell client it should only
15269        buffer data if it's currently playing, or not hidden.
15270        * platform/audio/MediaSession.h:
15271        * platform/graphics/MediaPlayer.cpp:
15272        (WebCore::MediaPlayer::setShouldBufferData): Added: Just relays to
15273        MediaPlayerPrivate object.
15274        * platform/graphics/MediaPlayer.h:
15275        * platform/graphics/MediaPlayerPrivate.h:
15276        (WebCore::MediaPlayerPrivateInterface::setShouldBufferData):
15277        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
15278        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
15279        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
15280        (WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldBufferData): Added.
15281        Detach the player item from the player if we don't want to continue
15282        buffering or other background tasks.
15283
152842014-04-23  Alexey Proskuryakov  <ap@apple.com>
15285
15286        Eliminate internals.setMockScrollbarsEnabled()
15287        https://bugs.webkit.org/show_bug.cgi?id=132085
15288
15289        Reviewed by Tim Horton.
15290
15291        This was essentially unused, and also didnt work.
15292
15293        * testing/InternalSettings.cpp:
15294        (WebCore::InternalSettings::Backup::restoreTo):
15295        (WebCore::InternalSettings::setMockScrollbarsEnabled): Deleted.
15296        * testing/InternalSettings.h:
15297        * testing/InternalSettings.idl:
15298
152992014-04-23  Anders Carlsson  <andersca@apple.com>
15300
15301        Don't migrate the WKView.h header from WebCore to WebKit
15302        https://bugs.webkit.org/show_bug.cgi?id=132086
15303
15304        Reviewed by Dan Bernstein.
15305
15306        * WebCore.xcodeproj/project.pbxproj:
15307        Add WAKViewInternal.h.
15308
15309        * platform/WAKViewInternal.h: Added.
15310
15311        * platform/ios/wak/WAKClipView.m:
15312        Import WAKViewInternal.h instead of WAKViewPrivate.h.
15313
15314        * platform/ios/wak/WAKScrollView.mm:
15315        Import WAKViewInternal.h instead of WAKViewPrivate.h.
15316
15317        * platform/ios/wak/WAKView.h:
15318        Move ivars to a class extension in WAKViewInternal.h and remove WKView.h import.
15319
15320        * platform/ios/wak/WAKView.mm:
15321        Import WAKViewInternal.h instead of WAKViewPrivate.h.
15322
15323        * platform/ios/wak/WAKViewPrivate.h:
15324        Import WKViewPrivate.h.
15325
153262014-04-23  David Hyatt  <hyatt@apple.com>
15327
15328        [New Multicolumn] fast/multicol/fixed-column-percent-logical-height-orthogonal-writing-mode.html fails
15329        https://bugs.webkit.org/show_bug.cgi?id=132078
15330
15331        Reviewed by Anders Carlsson.
15332
15333        * rendering/RenderBox.cpp:
15334        (WebCore::RenderBox::skipContainingBlockForPercentHeightCalculation):
15335        Add a parameter to test for orthogonal writing modes. If we're perpendicular,
15336        then we should not skip the flow thread, since we resolve relative to the column width,
15337        and that is always set.
15338
15339        (WebCore::RenderBox::computePercentageLogicalHeight):
15340        Patched to pass in whether or not the box and the ancestor block are perpendicular.
15341
15342        * rendering/RenderBox.h:
15343        Patched the signature of skipContainingBlockForPercentHeightCalculation
15344
153452014-04-23  Myles C. Maxfield  <mmaxfield@apple.com>
15346
15347        [OS X] Make checking if a font is the system font more robust
15348        https://bugs.webkit.org/show_bug.cgi?id=132030
15349
15350        Reviewed by Dean Jackson.
15351
15352        Instead of inspecting a font's name to determine if it is a system font,
15353        on OS X we can ask the system directly.
15354
15355        This patch also moves a platform-specific check into platform-specific
15356        code, so that other platforms don't check for OS X-specific behavior.
15357
15358        Covered by existing tests.
15359
15360        * platform/graphics/Font.cpp:
15361        (WebCore::Font::hasValidAverageCharWidth):
15362        * platform/graphics/Font.h:
15363        * platform/graphics/mac/FontMac.mm:
15364        (WebCore::Font::primaryFontDataIsSystemFont):
15365
153662014-04-23  David Hyatt  <hyatt@apple.com>
15367
15368        [New Multicolumn] Assertion failure in huge-column-count.html
15369        https://bugs.webkit.org/show_bug.cgi?id=132071
15370
15371        Reviewed by Dean Jackson.
15372
15373        * rendering/RenderBlock.cpp:
15374        (WebCore::RenderBlock::regionAtBlockOffset):
15375        Back out this change, since it wasn't general enough.
15376
15377        * rendering/RenderFlowThread.cpp:
15378        (WebCore::RenderFlowThread::getRegionRangeForBox):
15379        The real issue was that this loop needed to consider the actual box
15380        rather than starting from the parent. This was a non-issue for normal
15381        regions (which cannot have nested flow threads), but for columns, you 
15382        have to consider the fact that the box could itself be a flow thread.
15383
153842014-04-23  Andreas Kling  <akling@apple.com>
15385
15386        [iOS] Memory pressure notification should fire on main thread.
15387        <https://webkit.org/b/132074>
15388
15389        Rejig the memory pressure notification to fire on the main queue
15390        directly instead of rerouting it manually.
15391
15392        Reviewed by Mark Rowe.
15393
15394        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
15395        (WebCore::MemoryPressureHandler::install):
15396
153972014-04-23  Commit Queue  <commit-queue@webkit.org>
15398
15399        Unreviewed, rolling out r167720.
15400        https://bugs.webkit.org/show_bug.cgi?id=132075
15401
15402        broke eight newmulticol tests (Requested by thorton on
15403        #webkit).
15404
15405        Reverted changeset:
15406
15407        "[New Multicolumn] Assertion failure in huge-column-
15408        count.html"
15409        https://bugs.webkit.org/show_bug.cgi?id=132071
15410        http://trac.webkit.org/changeset/167720
15411
154122014-04-23  David Hyatt  <hyatt@apple.com>
15413
15414        [New Multicolumn] Assertion failure in huge-column-count.html
15415        https://bugs.webkit.org/show_bug.cgi?id=132071
15416
15417        Reviewed by Dean Jackson.
15418
15419        * rendering/RenderBlock.cpp:
15420        (WebCore::RenderBlock::regionAtBlockOffset):
15421        Remove the code that returned 0 here, since we're going to patch a lower-level
15422        function to catch all cases.
15423
15424        * rendering/RenderFlowThread.cpp:
15425        (WebCore::RenderFlowThread::getRegionRangeForBox):
15426        Don't allow in-flow RenderFlowThreads to ever have a region range. The sets
15427        are what should have ranges... the flow thread needs to just be ignored.
15428
154292014-04-23  David Hyatt  <hyatt@apple.com>
15430
15431        [New Multicolumn] Crasher when clearing out a flow thread in multicolumn layout.
15432        https://bugs.webkit.org/show_bug.cgi?id=132069
15433
15434        Reviewed by Dean Jackson.
15435
15436        This is imported from a patch Morten did for Blink, but I had to change it a fair
15437        bit. deleteLines() is used to handle simple line box layout instead of just calling
15438        deleteLineBoxTree.
15439        
15440        I also had to disable the layout state to stop asserts on repaint when the children
15441        get moved. Not sure why Blink didn't hit this, but it's simple enough to add a
15442        LayoutStateDisabler to stop the assert.
15443
15444        Added fast/multicol/inline-children-crash.html
15445
15446        * rendering/RenderMultiColumnFlowThread.cpp:
15447        (WebCore::RenderMultiColumnFlowThread::evacuateAndDestroy):
15448
154492014-04-23  Andreas Kling  <akling@apple.com>
15450
15451        [iOS WebKit2] IOSurfacePool should force CA to actually garbage collect surfaces.
15452        <https://webkit.org/b/132065>
15453        <rdar://problem/16110687>
15454
15455        Add a platformGarbageCollectNow() helper function to IOSurfacePool that
15456        triggers a sweep of the IOSurfaces. Call this from collectionTimerFired()
15457        and discardAllSurfaces().
15458
15459        This lets us drop all otherwise-unused 420f surfaces on memory pressure.
15460
15461        Reviewed by Tim Horton.
15462
15463        * WebCore.xcodeproj/project.pbxproj:
15464        * platform/graphics/cg/IOSurfacePool.cpp:
15465        (WebCore::IOSurfacePool::collectionTimerFired):
15466        (WebCore::IOSurfacePool::discardAllSurfaces):
15467        * platform/graphics/cg/IOSurfacePool.h:
15468        * platform/graphics/cocoa/IOSurfacePoolCocoa.mm: Added.
15469        (WebCore::IOSurfacePool::platformGarbageCollectNow):
15470
154712014-04-23  Morten Stenshorne  <mstensho@opera.com>
15472
15473        REGRESSION (Safari 6 - ToT): Incorrectly assumes that RenderStyle data can be shared
15474        https://bugs.webkit.org/show_bug.cgi?id=113058
15475
15476        Reviewed by David Hyatt.
15477
15478        Before sharing CSS properties with an element in the cache, we need to
15479        check that the new element is suitable for this, just like we check
15480        elements before inserting them into the cache.
15481
15482        Test: fast/css/identical-logical-height-decl.html
15483
15484        * css/StyleResolver.cpp:
15485        (WebCore::StyleResolver::applyMatchedProperties):
15486
154872014-04-23  Commit Queue  <commit-queue@webkit.org>
15488
15489        Unreviewed, rolling out r167713.
15490        https://bugs.webkit.org/show_bug.cgi?id=132070
15491
15492        broke hundreds of tests (Requested by thorton on #webkit).
15493
15494        Reverted changeset:
15495
15496        "[OS X] Make checking if a font is the system font more
15497        robust"
15498        https://bugs.webkit.org/show_bug.cgi?id=132030
15499        http://trac.webkit.org/changeset/167713
15500
155012014-04-22  David Hyatt  <hyatt@apple.com>
15502
15503        [New Multicolumn] Nested columns not working at all.
15504        https://bugs.webkit.org/show_bug.cgi?id=131805
15505
15506        Reviewed by Dean Jackson.
15507
15508        Add support for nested pagination contexts, allowing for an arbitrary level
15509        of nesting of multicolumn layouts. There were a number of things that had to
15510        be patched in order for this to work.
15511
15512        * rendering/RenderBlock.cpp:
15513        (WebCore::RenderBlock::regionAtBlockOffset):
15514        Make sure RenderMultiColumnFlowThreads just return null for regions at any
15515        block offset. Individual region sets will be created as you cross ancestor
15516        regions eventually, so this is just getting in the way.
15517
15518        * rendering/RenderLayer.cpp:
15519        (WebCore::RenderLayer::enclosingPaginationLayerInSubtree):
15520        Add a new helper method for obtaining an enclosingPaginationLayer when
15521        constrained by some root. This function ensures you don't accidentally
15522        cross your subtree root when looking for enclosing pagination layers.
15523
15524        (WebCore::RenderLayer::collectFragments):
15525        Patch collectFragments to know how to recur to collect ancestor fragments
15526        in order to apply nested splitting as you cross pagination boundaries.
15527
15528        (WebCore::RenderLayer::updatePaintingInfoForFragments):
15529        (WebCore::RenderLayer::calculateClipRects):
15530        * rendering/RenderLayer.h:
15531        (WebCore::LayerFragment::LayerFragment):
15532        (WebCore::LayerFragment::setRects):
15533        (WebCore::LayerFragment::moveBy):
15534        (WebCore::LayerFragment::intersect):
15535        Improve the LayerFragment so that it caches transformed bounding boxes as
15536        well. This is needed to fix intersectsDamageRect so that it doesn't grab
15537        the wrong bounding box when checking inline layers that are paginated.
15538
15539        * rendering/RenderMultiColumnFlowThread.cpp:
15540        (WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
15541        Ignore inserted flow threads inside an ancestor flow thread, since we only
15542        care about what the sets do.
15543        
15544        * rendering/RenderObject.cpp:
15545        (WebCore::RenderObject::insertedIntoTree):
15546        Make sure that nested flow thread layers return themselves when a child
15547        is inserted directly under them.
15548
155492014-04-22  Myles C. Maxfield  <mmaxfield@apple.com>
15550
15551        [OS X] Make checking if a font is the system font more robust
15552        https://bugs.webkit.org/show_bug.cgi?id=132030
15553
15554        Reviewed by Dean Jackson.
15555
15556        Instead of inspecting a font's name to determine if it is a system font,
15557        on OS X we can ask the system directly.
15558
15559        This patch also moves a platform-specific check into platform-specific
15560        code, so that other platforms don't check for OS X-specific behavior.
15561
15562        Covered by existing tests.
15563
15564        * platform/graphics/Font.cpp:
15565        (WebCore::Font::hasValidAverageCharWidth):
15566        * platform/graphics/Font.h:
15567        * platform/graphics/mac/FontMac.mm:
15568        (WebCore::Font::primaryFontDataIsSystemFont):
15569
155702014-04-23  Philippe Normand  <pnormand@igalia.com>
15571
15572        [GTK] Focus management API was moved from HTMLDocument to Document in r166668
15573        https://bugs.webkit.org/show_bug.cgi?id=132060
15574
15575        Reviewed by Carlos Garcia Campos.
15576
15577        Deprecate the removed methods in WebKitDOMHTMLDocument to keep API compatibility.
15578
15579        * bindings/gobject/WebKitDOMDeprecated.cpp:
15580        (webkit_dom_html_document_get_active_element):
15581        (webkit_dom_html_document_has_focus):
15582        * bindings/gobject/WebKitDOMDeprecated.h:
15583        * bindings/gobject/WebKitDOMDeprecated.symbols:
15584        * bindings/gobject/webkitdom.symbols:
15585
155862014-04-22  Andreas Kling  <akling@apple.com>
15587
15588        [iOS WebKit1] MemoryPressureHandler::respondToMemoryPressure called on wrong thread.
15589        <https://webkit.org/b/132041>
15590        <rdar://problem/16687238>
15591
15592        Always dispatch the memory pressure relief code on the main queue.
15593        This is really only needed for iOS/WK1, but we might as well share the code.
15594
15595        Reviewed by Michael Saboff.
15596
15597        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
15598        (WebCore::MemoryPressureHandler::install):
15599
156002014-04-23  Philippe Normand  <pnormand@igalia.com>
15601
15602        [GTK] ShadowRoot API was removed in r164131
15603        https://bugs.webkit.org/show_bug.cgi?id=132059
15604
15605        Reviewed by Gustavo Noronha Silva.
15606
15607        Add ShadowRoot removed API to WebKitDOMDeprecated to keep API/ABI compatibility.
15608
15609        * bindings/gobject/WebKitDOMDeprecated.cpp:
15610        (webkit_dom_shadow_root_class_init):
15611        (webkit_dom_shadow_root_init):
15612        (webkit_dom_shadow_root_element_from_point):
15613        (webkit_dom_shadow_root_get_active_element):
15614        (webkit_dom_shadow_root_get_apply_author_styles):
15615        (webkit_dom_shadow_root_get_element_by_id):
15616        (webkit_dom_shadow_root_get_elements_by_class_name):
15617        (webkit_dom_shadow_root_get_elements_by_tag_name):
15618        (webkit_dom_shadow_root_get_elements_by_tag_name_ns):
15619        (webkit_dom_shadow_root_get_inner_html):
15620        (webkit_dom_shadow_root_get_reset_style_inheritance):
15621        (webkit_dom_shadow_root_get_selection):
15622        (webkit_dom_shadow_root_set_apply_author_styles):
15623        (webkit_dom_shadow_root_set_inner_html):
15624        (webkit_dom_shadow_root_set_reset_style_inheritance):
15625        * bindings/gobject/WebKitDOMDeprecated.h:
15626        * bindings/gobject/WebKitDOMDeprecated.symbols:
15627
156282014-04-23  Morten Stenshorne  <mstensho@opera.com>
15629
15630        [New Multicolumn] fast/multicol/overflow-content.html displays red
15631        https://bugs.webkit.org/show_bug.cgi?id=131809
15632
15633        Reviewed by David Hyatt.
15634
15635        Insert a break at end of content on our own in the multicol code, to make sure
15636        that overflow is accounted for, and also to make sure that we account for all
15637        content in non-final sets (i.e. those preceding spanners).
15638
15639        In other words, this will additionally fix balancing issues in sets preceding
15640        a spanner. Added a test for that.
15641
15642        Tests: fast/multicol/break-in-columns-before-spanner.html
15643               fast/multicol/newmulticol/compare-with-old-impl/overflow-content.html
15644
15645        * rendering/RenderFlowThread.cpp:
15646        (WebCore::RenderFlowThread::regionInRange): Deleted.
15647        * rendering/RenderFlowThread.h:
15648        * rendering/RenderMultiColumnSet.cpp:
15649        (WebCore::RenderMultiColumnSet::distributeImplicitBreaks):
15650        * rendering/RenderNamedFlowThread.cpp:
15651        (WebCore::RenderNamedFlowThread::applyBreakAfterContent):
15652        * rendering/RenderNamedFlowThread.h:
15653
156542014-04-23  Morten Stenshorne  <mstensho@opera.com>
15655
15656        Overflow propagation broken in BTT and RTL writing-modes
15657        https://bugs.webkit.org/show_bug.cgi?id=113781
15658
15659        Reviewed by David Hyatt.
15660
15661        Overflow rectangles are not quite physical, not quite logical. This
15662        means that we cannot use clientBoxRect() directly to represent a
15663        rectangle that expresses exactly no overflow. This rectangle is the
15664        padding box (relative to the border box) in vertical-lr and
15665        horizontal-tb, but the block-direction borders need to be flipped in
15666        vertical-rl and horizontal-bt.
15667
15668        Tests: fast/css/overflow-btt-border-after.html
15669               fast/css/overflow-rtl-border-after.html
15670
15671        * WebCore.exp.in:
15672        * rendering/RenderBlock.cpp:
15673        (WebCore::RenderBlock::computeOverflow):
15674        * rendering/RenderBox.cpp:
15675        (WebCore::RenderBox::addLayoutOverflow):
15676        (WebCore::RenderBox::addVisualOverflow):
15677        (WebCore::RenderBox::layoutOverflowRectForPropagation):
15678        * rendering/RenderBox.h:
15679        (WebCore::RenderBox::layoutOverflowRect):
15680
156812014-04-23  Andrei Bucur  <abucur@adobe.com>
15682
15683        [CSS Regions] Improve the debugging infrastructure
15684        https://bugs.webkit.org/show_bug.cgi?id=132042
15685
15686        Reviewed by Mihnea Ovidenie.
15687
15688        This patch improves the debugging code for CSS Regions.
15689
15690        Tests: No function change. No new tests.
15691
15692        * rendering/RenderObject.cpp:
15693        (WebCore::RenderObject::showRegionsInformation): Print brackets around the region range when dumping
15694        the render tree to the console.
15695        * rendering/RootInlineBox.cpp:
15696        (WebCore::RootInlineBox::containingRegion): Convert the ASSERT to an ASSERT_WITH_SECURITY_IMPLICATION.
15697
156982014-04-22  Ryosuke Niwa  <rniwa@webkit.org>
15699
15700        Cursor doesn't change back to pointer when leaving the Safari window
15701        https://bugs.webkit.org/show_bug.cgi?id=132038
15702
15703        Reviewed by Alexey Proskuryakov.
15704
15705        r147739 incorrectly added an early exit in EventHandler::selectCursor when hit test result didn't have
15706        any node associated with it. Since we will hit this code when the cursor is outside of the WebView,
15707        we still need to take the CURSOR_AUTO path as did the code before r147739.
15708
15709        No new test is added since this behavior can't be tested in DRT or WTR.
15710
15711        * page/EventHandler.cpp:
15712        (WebCore::EventHandler::selectCursor):
15713
157142014-04-22  Zalan Bujtas  <zalan@apple.com>
15715
15716        Do not paint border image when the border rect is empty.
15717        https://bugs.webkit.org/show_bug.cgi?id=131988
15718
15719        Reviewed by Darin Adler.
15720
15721        http://trac.webkit.org/changeset/167351 introduced an early return when border
15722        rect is empty. This patch ensures that border image is not painted either in that case.
15723
15724        Modified padding-margin-negative-border.html to cover border-image case.
15725
15726        * rendering/RenderBoxModelObject.cpp:
15727        (WebCore::RenderBoxModelObject::paintBorder):
15728
157292014-04-22  Tim Horton  <timothy_horton@apple.com>
15730
15731        ASSERTION FAILED: scrollerImp == scrollbarPainterForScrollbar(_scrollbar) on two API tests
15732        https://bugs.webkit.org/show_bug.cgi?id=132034
15733        <rdar://problem/16624332>
15734
15735        Reviewed by Simon Fraser.
15736
15737        * platform/mac/ScrollAnimatorMac.mm:
15738        (-[WebScrollbarPainterDelegate shouldUseLayerPerPartForScrollerImp:]):
15739        scrollerImpWithStyle:controlSize:horizontal:replacingScrollerImp: moves the delegate
15740        from the old scrollerImp to the new one, and also happens to call shouldUseLayerPerPartForScrollerImp.
15741        Since scrollerImpWithStyle: has not returned yet, the scrollbarPainterForScrollbar still returns the old scrollerImp,
15742        so this assertion fires. It's safe to remove this because supportsUpdateOnSecondaryThread doesn't make use of the imp.
15743
157442014-04-22  Ryosuke Niwa  <rniwa@webkit.org>
15745
15746        REGRESSION (r157328): popover to check into flight ba.com dismisses instantly when focusing form
15747        https://bugs.webkit.org/show_bug.cgi?id=131949
15748
15749        Reviewed by Darin Adler.
15750
15751        The regression was caused by two bugs:
15752        1. The event didn't stop propagating itself even when it should.
15753           If the related target is same as the event origin, the event propagation should stop when the event reaches
15754           the root of the related target's tree scope. Otherwise, it should stop when it reaches the related target.
15755
15756        2. Mouse event's related target exposed nodes inside a user-agent shadow DOM when the related target appeared
15757           inside the origin.
15758
15759        Fixed the bugs by re-introducing path shrinkage algorithm removed in r157328 into EventPath::setRelatedTarget
15760        and adding an algorithm to determine the least common ancestor of the related target and the current target
15761        in moveToParentOrShadowHost. The latter algorithm doesn't match the shadow DOM specification:
15762        http://www.w3.org/TR/2013/WD-shadow-dom-20130514/
15763        but it's good enough in terms of the Web exposed behavior as we don't support author defined insertion points.
15764
15765        Test: fast/events/shadow-event-path.html
15766
15767        * dom/EventDispatcher.cpp:
15768        (WebCore::EventRelatedNodeResolver::moveToParentOrShadowHost):
15769        (WebCore::EventRelatedNodeResolver::findHostOfTreeScopeInTargetTreeScope): Added.
15770        (WebCore::EventDispatcher::dispatchEvent):
15771        (WebCore::EventPath::setRelatedTarget):
15772
157732014-04-22  Ryosuke Niwa  <rniwa@webkit.org>
15774
15775        Rollout r156635 since the old behavior was intentional.
15776
15777        * page/EventHandler.cpp:
15778        (WebCore::EventHandler::selectCursor):
15779
157802014-04-22  Commit Queue  <commit-queue@webkit.org>
15781
15782        Unreviewed, rolling out r167674.
15783        https://bugs.webkit.org/show_bug.cgi?id=132025
15784
15785        Going a different way with this (Requested by bradee-oh on
15786        #webkit).
15787
15788        Reverted changeset:
15789
15790        "Change Image Controls replacement to use selection and paste"
15791        https://bugs.webkit.org/show_bug.cgi?id=131992
15792        http://trac.webkit.org/changeset/167674
15793
157942014-04-22  Brent Fulgham  <bfulgham@apple.com>
15795
15796        [Win] Support Python 2.7 in Cygwin
15797        https://bugs.webkit.org/show_bug.cgi?id=132023
15798
15799        Reviewed by Michael Saboff.
15800
15801        * DerivedSources.make: Use proper path to Cygwin on
15802        all platforms.
15803
158042014-04-22  Andreas Kling  <akling@apple.com>
15805
15806        REGRESSION (r151839): Subframe keeps getting mousemove events with the same coordinates after hiding a hovered element.
15807        <https://webkit.org/b/131974>
15808        <rdar://problem/15907469>
15809
15810        When the currently hovered element disappears as a result of style recalc,
15811        we send a fake mousemove event to the page, to see if anything newly added
15812        should become hovered.
15813
15814        The faking mechanism lives in EventHandler and simply synthesizes a new
15815        mousemove event using the last seen mouse location.
15816
15817        The problem here is that we were sending this fake mousemove event to the
15818        subframe where the hovered element lived. Since subframes aren't kept up
15819        to date on recent mouse locations, this could cause some strange behavior
15820        where a subframe would dispatch mousemove events with stale coordinates.
15821
15822        The solution is to always dispatch fake mousemove events from the main
15823        frame's event handler. This is how real event delivery happens, and hit
15824        testing will then find the appropriate subframe, if any.
15825
15826        Reviewed by Benjamin Poulain.
15827
15828        Test: fast/events/ghostly-mousemoves-in-subframe.html
15829
15830        * dom/Document.cpp:
15831        (WebCore::Document::recalcStyle):
15832
158332014-04-22  Myles C. Maxfield  <mmaxfield@apple.com>
15834
15835        [OS X] Glyph spacing for system fonts may be incorrect
15836        https://bugs.webkit.org/show_bug.cgi?id=131967
15837
15838        Unreviewed iOS build fix after r167679.
15839
15840        * platform/graphics/mac/SimpleFontDataMac.mm:
15841
158422014-04-22  Myles C. Maxfield  <mmaxfield@apple.com>
15843
15844        [OS X] Glyph spacing for system fonts may be incorrect
15845        https://bugs.webkit.org/show_bug.cgi?id=131967
15846
15847        Unreviewed build fix after r167679.
15848
15849        * platform/graphics/mac/SimpleFontDataMac.mm:
15850        (WebCore::hasCustomTracking):
15851
158522014-04-21  Myles C. Maxfield  <mmaxfield@apple.com>
15853
15854        [OS X] Glyph spacing for system fonts may be incorrect
15855        https://bugs.webkit.org/show_bug.cgi?id=131967
15856
15857        Reviewed by Simon Fraser.
15858
15859        Covered by existing tests.
15860
15861        * platform/graphics/mac/SimpleFontDataMac.mm:
15862        (WebCore::SimpleFontData::platformWidthForGlyph): Update to use CTFontGetAdvancesForGlyphs() for system fonts
15863        (WebCore::hasCustomTracking):
15864
158652014-04-22  David Hyatt  <hyatt@apple.com>
15866
15867        [New Multicolumn] widows/orphans cause assertion failures.
15868        https://bugs.webkit.org/show_bug.cgi?id=131233
15869
15870        Reviewed by Dean Jackson.
15871
15872        * rendering/RenderMultiColumnSet.cpp:
15873        (WebCore::RenderMultiColumnSet::recordSpaceShortage):
15874        Fix an obvious bug where the space shortage is recorded twice (and the
15875        if statement that kept it from being negative is accidentally ignored).
15876
158772014-04-22  David Hyatt  <hyatt@apple.com>
15878
15879        [New Multicolumn] Make sure columnTranslationForOffset has the same column-span-aware
15880        translation that fragment collection does.
15881        https://bugs.webkit.org/show_bug.cgi?id=131738
15882
15883        Reviewed by Anders Carlsson.
15884
15885        * rendering/RenderMultiColumnSet.cpp:
15886        (WebCore::RenderMultiColumnSet::collectLayerFragments):
15887        Remove a FIXME that is no longer needed, since the translation offset of the 
15888        column set did get patched.
15889
15890        (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
15891        Add the exact same fix to columnTranslationForOffset that was applied to collectLayerFragments.
15892
158932014-04-22  Mark Lam  <mark.lam@apple.com>
15894
15895        WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript() needs to acquire the JSLock before calling into JS.
15896        <https://webkit.org/b/132021>
15897
15898        Reviewed by Mark Hahnenberg.
15899
15900        Covered by existing layout test.
15901
15902        * html/HTMLMediaElement.cpp:
15903        (WebCore::HTMLMediaElement::parseAttribute):
15904
159052014-04-22  Manuel Rego Casasnovas  <rego@igalia.com>
15906
15907        REGRESSION (r167652): Broke fast/regions/cssom/region-range-for-box-crash.html in debug mode
15908        https://bugs.webkit.org/show_bug.cgi?id=131982
15909
15910        Reviewed by David Hyatt.
15911
15912        The problem was creating the Range from the arguments received at RenderView::setSelection(). Specifically
15913        in this test endPos is 1 when the element has not children which creates an invalid Range.
15914
15915        * rendering/RenderView.cpp:
15916        (WebCore::RenderView::splitSelectionBetweenSubtrees): Pass 0 as startPos and endPos to Range::create() as we are
15917        not interested in the positions at this point.
15918
159192014-04-22  Brady Eidson  <beidson@apple.com>
15920
15921        Change Image Controls replacement to use selection and paste
15922        <rdar://problem/16302722> and https://bugs.webkit.org/show_bug.cgi?id=131992
15923
15924        Reviewed by Tim Horton.
15925
15926        * WebCore.exp.in: Remove deleted symbol.
15927
15928        * html/shadow/mac/ImageControlsButtonElementMac.cpp:
15929        (WebCore::ImageControlsButtonElementMac::defaultEventHandler):
15930
15931        * page/ContextMenuController.cpp:
15932        (WebCore::ContextMenuController::showImageControlsMenu): Select the image element
15933          before showing the menu.
15934        (WebCore::ContextMenuController::replaceControlledImage): Deleted.
15935        * page/ContextMenuController.h:
15936
159372014-04-22  David Hyatt  <hyatt@apple.com>
15938
15939        REGRESSION: Hitting asserts in new flow thread selection code.
15940        https://bugs.webkit.org/show_bug.cgi?id=132019
15941
15942        Reviewed by Anders Carlsson.
15943
15944        Null checking flowThreadController is not enough. The list of threads
15945        can be null even when the flowThreadController is not. That's why you
15946        use hasRenderNamedFlowThreads. I patched the two bad places in the code
15947        to use hasRenderNamedFlowThreads to stop the crashes.
15948        
15949        * rendering/RenderView.cpp:
15950        (WebCore::RenderView::selectionBounds):
15951        (WebCore::RenderView::repaintSelection):
15952
159532014-04-22  Brent Fulgham  <bfulgham@apple.com>
15954
15955        Check (rather than assume) element is a RenderTableSection before using it
15956        https://bugs.webkit.org/show_bug.cgi?id=121858
15957
15958        Reviewed by David Kilzer.
15959
15960        Test: fast/table/table-insert-object-before-td-crash.html
15961
15962        * rendering/RenderTable.cpp:
15963        (WebCore::RenderTable::addChild): Check that lastBox is a table section before
15964        using the node as if it was one.
15965
159662014-04-22  Alex Christensen  <achristensen@webkit.org>
15967
15968        Begin implementation of video using Media Foundation.
15969        https://bugs.webkit.org/show_bug.cgi?id=131830
15970
15971        Reviewed by Brent Fulgham.
15972
15973        * WebCore.vcxproj/WebCore.vcxproj:
15974        * WebCore.vcxproj/WebCore.vcxproj.filters:
15975        Added MediaPlayerPrivateMediaFoundation files.
15976        * platform/graphics/MediaPlayer.cpp:
15977        Include MediaPlayerPrivateMediaFoundation inside new USE(MEDIA_FOUNDATION) flag.
15978        * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp: Added.
15979        * platform/graphics/win/MediaPlayerPrivateMediaFoundation.h: Added.
15980
159812014-04-22  Commit Queue  <commit-queue@webkit.org>
15982
15983        Unreviewed, rolling out r167658.
15984        https://bugs.webkit.org/show_bug.cgi?id=131993
15985
15986        Caused many crashes on media tests (Requested by ap on
15987        #webkit).
15988
15989        Reverted changeset:
15990
15991        "[Mac] don't ask for AVAssetTrack properties before they are
15992        available"
15993        https://bugs.webkit.org/show_bug.cgi?id=131902
15994        http://trac.webkit.org/changeset/167658
15995
159962014-04-22  David Hyatt  <hyatt@apple.com>
15997
15998        [New Multicolumn] fast/multicol/multicol-with-child-renderLayer-for-input.html puts the textfield in the wrong place
15999        https://bugs.webkit.org/show_bug.cgi?id=131808
16000
16001        Reviewed by Brady Eidson.
16002    
16003        Make sure FrameView is patched to pass in the update pagination flag when subtree layout
16004        is done on textfields. It had code for the old multicolumn system but did not have a check
16005        for the new multicolumn system.
16006
16007        Added fast/multicol/newmulticol/compare-with-old-impl/multicol-with-child-renderLayer-for-input.html
16008
16009        * page/FrameView.cpp:
16010        (WebCore::updateLayerPositionFlags):
16011
160122014-04-22  Zalan Bujtas  <zalan@apple.com>
16013
16014        border-style: double rendered as solid when combined with border-radius
16015        https://bugs.webkit.org/show_bug.cgi?id=131927
16016
16017        Reviewed by Simon Fraser.
16018
16019        BorderEdge::getDoubleBorderStripeWidths() should return the calculated inner, outer border widths. 
16020
16021        Test: fast/borders/hidpi-double-border-with-border-radius-always-produce-solid-line.html
16022
16023        * rendering/BorderEdge.cpp:
16024        (WebCore::BorderEdge::getDoubleBorderStripeWidths):
16025        * rendering/BorderEdge.h:
16026
160272014-04-22  Eric Carlson  <eric.carlson@apple.com>
16028
16029        [Mac] don't ask for AVAssetTrack properties before they are available
16030        https://bugs.webkit.org/show_bug.cgi?id=131902
16031        <rdar://problem/16505076>
16032
16033        Reviewed by Jer Noble.
16034
16035        No new tests, the behavior this changes can not be tested with a layout test.
16036
16037        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
16038        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
16039        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize
16040            m_cachedTotalBytes.
16041        (WebCore::MediaPlayerPrivateAVFoundationObjC::beginLoadingMetadata): Don't report that
16042            metadata has been loaded until the track properties we need have been loaded too.
16043        (WebCore::MediaPlayerPrivateAVFoundationObjC::totalBytes): Cache totalBytes instead
16044            of recalculating it every time.
16045        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange): Invalidate cached
16046            total bytes.
16047        (WebCore::assetTrackMetadataKeyNames): Array of AVAssetTrack properties we use.
16048
160492014-04-22  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
16050
16051        Buildfix after r167650 broke non-Cocoa builds
16052        https://bugs.webkit.org/show_bug.cgi?id=131980
16053
16054        Reviewed by Mario Sanchez Prada.
16055
16056        * page/EventHandler.cpp:
16057        (WebCore::EventHandler::handleWheelEvent):
16058
160592014-04-22  Manuel Rego Casasnovas  <rego@igalia.com>
16060
16061        [CSS Regions] Selection highlight doesn't match DOM selection
16062        https://bugs.webkit.org/show_bug.cgi?id=131511
16063
16064        Reviewed by David Hyatt.
16065
16066        This patch implements a subtrees approach to fix selection interaction in CSS Regions.
16067
16068        The idea is to divide the Render tree in subtrees. One subtree will be the RenderView (which is always present),
16069        then for each RenderNamedFlowThread (which are children of RenderView) we will have an extra subtree.
16070
16071        For each subtree it determines the start and end positions according to the DOM tree. So, every subtree will
16072        always have a start and end position, and the selection algorithm will be able to reach the end from the start
16073        without problems (this allows us to remove the changes introduced in r155058).
16074
16075        Then selection related methods in RenderView are adapted to ensure that they are called for each subtree. Making
16076        the selection highlight to match DOM selection as expected.
16077
16078        Test: fast/regions/selection/selecting-text-including-region.html
16079
16080        * CMakeLists.txt: Add new class SelectionSubtreeRoot to build file.
16081        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
16082        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
16083        * WebCore.xcodeproj/project.pbxproj: Ditto.
16084        * rendering/RenderNamedFlowThread.h: Inherit from SelectionSubtreeRoot.
16085        * rendering/RenderObject.cpp:
16086        (WebCore::RenderObject::selectionRoot): New method to return the RenderNamedFlowThread if any or the RenderView
16087        otherwise.
16088        (WebCore::RenderObject::selectionStartEnd): If it's inside a RenderNamedFlowThread use specific method instead
16089        of the RenderView's one.
16090        * rendering/RenderObject.h: Add new method signature.
16091        * rendering/RenderView.cpp:
16092        (WebCore::RenderView::selectionBounds): Adapt method to subtrees approach.
16093        (WebCore::RenderView::subtreeSelectionBounds): Modify previous method in order to use SelectionSubtreeRoot
16094        objects.
16095        (WebCore::RenderView::repaintSelection): Adapt method to subtrees approach.
16096        (WebCore::RenderView::repaintSubtreeSelection): Modify previous method in order to use SelectionSubtreeRoot
16097        objects.
16098        (getNextOrPrevRenderObjectBasedOnDirection): Deleted method from r155058 as it is not needed anymore. Each
16099        subtree will have start and end positions, so the selection algorithm will always find the end.
16100        (WebCore::RenderView::setSelection): Adapt method to subtrees approach.
16101        (WebCore::RenderView::splitSelectionBetweenSubtrees): Determine start and end positions for each subtree and
16102        call setSubtreeSelection().
16103        (WebCore::RenderView::setSubtreeSelection): Modify previous method in order to use SelectionSubtreeRoot objects.
16104        * rendering/RenderView.h: Inherit from SelectionSubtreeRoot. Add signature for new helper methods receiving
16105        SelectionSubtreeRoot objects.
16106        * rendering/SelectionSubtreeRoot.cpp: Added.
16107        (WebCore::SelectionSubtreeRoot::SelectionSubtreeRoot):
16108        (WebCore::SelectionSubtreeRoot::selectionStartEndPositions):
16109        * rendering/SelectionSubtreeRoot.h: Added. New class to identify root elements for the subtrees. With some basic
16110        attributes and methods to store the start and end positions and offsets.
16111        (WebCore::SelectionSubtreeRoot::selectionStart):
16112        (WebCore::SelectionSubtreeRoot::selectionStartPos):
16113        (WebCore::SelectionSubtreeRoot::selectionEnd):
16114        (WebCore::SelectionSubtreeRoot::selectionEndPos):
16115        (WebCore::SelectionSubtreeRoot::setSelectionStart):
16116        (WebCore::SelectionSubtreeRoot::setSelectionStartPos):
16117        (WebCore::SelectionSubtreeRoot::setSelectionEnd):
16118        (WebCore::SelectionSubtreeRoot::setSelectionEndPos):
16119
161202014-04-21  Brent Fulgham  <bfulgham@apple.com>
16121
16122        [Mac] Follow-up: After a horizontal overflow scroll with a mechanical wheel mouse, vertical scrolling no longer works
16123        https://bugs.webkit.org/show_bug.cgi?id=131960
16124        <rdar://problem/16142100>
16125
16126        Unreviewed build fix.
16127
16128        * page/EventHandler.cpp:
16129        (WebCore::EventHandler::handleWheelEvent): The test to clear the
16130        last scrolled node was too broad. It should only follow this path
16131        if both the phase and momentum phase are 'None'.
16132
161332014-04-21  Brent Fulgham  <bfulgham@apple.com>
16134
16135        [Mac] After a horizontal overflow scroll with a mechanical wheel mouse, vertical scrolling no longer works
16136        https://bugs.webkit.org/show_bug.cgi?id=131960
16137        <rdar://problem/16142100>
16138
16139        Reviewed by Darin Adler.
16140
16141        Test: platform/mac/fast/scrolling/scroll-div-no-latching.html
16142
16143        * page/EventHandler.cpp:
16144        (WebCore::EventHandler::handleWheelEvent): When not latching, always clear m_latchedWheelEventElement and m_previousWheelScrolledElement.
16145
161462014-04-21  Joseph Pecoraro  <pecoraro@apple.com>
16147
16148        WebProfilerAgent::disable is calling the wrong superclass method
16149        https://bugs.webkit.org/show_bug.cgi?id=131968
16150
16151        Reviewed by Simon Fraser.
16152
16153        * inspector/WebProfilerAgent.cpp:
16154        (WebCore::WebProfilerAgent::disable):
16155
161562014-04-21  Enrica Casucci  <enrica@apple.com>
16157
16158        Followup from http://trac.webkit.org/changeset/167624
16159
16160        Reviewed by Darin Adler.
16161
16162        Fixing incorrect use of ? : syntax.
16163
16164        * editing/VisibleUnits.cpp:
16165        (WebCore::characterBeforePosition):
16166
161672014-04-21  Ryuan Choi  <ryuan.choi@samsung.com>
16168
16169        Move CoordinatedGraphics related codes out of CMakeLists.txt
16170        https://bugs.webkit.org/show_bug.cgi?id=131931
16171
16172        Reviewed by Gyuyoung Kim.
16173
16174        Move CoordinatedGraphics related files to PlatformEfl.cmake because they are not common files.
16175
16176        * CMakeLists.txt: 
16177        * PlatformEfl.cmake:
16178
161792014-04-21  Jer Noble  <jer.noble@apple.com>
16180
16181        [MSE][Mac] AVSampleBufferDisplayLayer and AudioRenderer is overretained.
16182        https://bugs.webkit.org/show_bug.cgi?id=131963
16183
16184        Reviewed by Jon Honeycutt.
16185
16186        Adopt the results of -[[class alloc] init] rather than retaining them.
16187
16188        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
16189        (WebCore::SourceBufferPrivateAVFObjC::hasVideo):
16190        (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
16191
161922014-04-21  Zalan Bujtas  <zalan@apple.com>
16193
16194        REGRESSION (r166784): Gradient at background of iCloud login page doesn’t go all the way to the bottom
16195        https://bugs.webkit.org/show_bug.cgi?id=131924
16196
16197        Computing tile dimension for contain/cover requires higher precision than what LayoutUnit has. Switching to floats.
16198
16199        Reviewed by Simon Fraser.
16200
16201        Test: fast/backgrounds/hidpi-background-image-contain-cover-scale-needs-more-precision.html
16202
16203        * rendering/RenderBoxModelObject.cpp:
16204        (WebCore::RenderBoxModelObject::calculateFillTileSize):
16205
162062014-04-21  Dean Jackson  <dino@apple.com>
16207
16208        Build fix for Mountain Lion.
16209
16210        * platform/mac/SerializedPlatformRepresentationMac.mm:
16211        (WebCore::SerializedPlatformRepresentationMac::deserialize):
16212
162132014-04-21  Dan Bernstein  <mitz@apple.com>
16214
16215        WebCore part of <rdar://problem/16631323> Page::setDefersLoading doesn’t do anything when using the Network process
16216        https://bugs.webkit.org/show_bug.cgi?id=131939
16217
16218        Reviewed by David Kilzer.
16219
16220        * WebCore.exp.in: Exported WebCore::ResourceHandle::setDefersLoading.
16221
16222        * loader/ResourceLoadScheduler.cpp:
16223        (WebCore::ResourceLoadScheduler::setDefersLoading): Added a no-op implementation.
16224        * loader/ResourceLoadScheduler.h: Declared new virtual member function setDefersLoading.
16225
16226        * loader/ResourceLoader.cpp:
16227        (WebCore::ResourceLoader::setDefersLoading): Added a call to the above function.
16228
162292014-04-21  Brent Fulgham  <bfulgham@apple.com>
16230
16231        [Mac] Difficulty gesture scrolling vertically with trackpad after scrolling horizontally 
16232        https://bugs.webkit.org/show_bug.cgi?id=131959
16233        <rdar://problem/16654523>
16234
16235        Reviewed by Simon Fraser.
16236
16237        * page/mac/EventHandlerMac.mm:
16238        (WebCore::deltaIsPredominantlyVertical): Added.
16239        (WebCore::scrolledToEdgeInDominantDirection): Only consider current mouse wheel event. We don't care about
16240        overall history when deciding if we are bumping against the edge of a scrollable region. Short-circuit if
16241        the element style indicates that overflow is hidden, since this means there is no scroll possible in that
16242        direction.
16243        (WebCore::EventHandler::platformPrepareForWheelEvents): Update for new signature.
16244
162452014-04-21  Eric Carlson  <eric.carlson@apple.com>
16246
16247        [Mac] implement WebKitDataCue
16248        https://bugs.webkit.org/show_bug.cgi?id=131799
16249
16250        Reviewed by Dean Jackson.
16251
16252        Tests: http/tests/media/track-in-band-hls-metadata.html
16253               media/track/track-datacue-value.html
16254
16255        * Configurations/FeatureDefines.xcconfig: Define ENABLE_DATACUE_VALUE.
16256        * DerivedSources.make: Add ENABLE_DATACUE_VALUE to HTML_FLAGS when appropriate.
16257
16258        * CMakeLists.txt: Add JSDataCueCustom.cpp.
16259        * bindings/js/JSBindingsAllInOne.cpp:
16260        * WebCore.xcodeproj/project.pbxproj: Add new files.
16261
16262        * bindings/js/JSDataCueCustom.cpp: Added.
16263        (WebCore::JSDataCue::value): 
16264        (WebCore::JSDataCue::setValue):
16265        (WebCore::JSDataCueConstructor::constructJSDataCue): Custom constructor.
16266
16267        * html/HTMLMediaElement.cpp:
16268        (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Drive-by fixes: don't schedule timeupdate
16269            events when paused, don't call sort on an Vector that can't be sorted.
16270
16271        * html/track/DataCue.cpp:
16272        (WebCore::DataCue::DataCue): Initialize m_type.
16273        (WebCore::DataCue::~DataCue): Unprotect the JSValue if necessary.
16274        (WebCore::DataCue::data): Ask the platform value for data if non-null.
16275        (WebCore::DataCue::setData): Clear m_platformValue and m_value.
16276        (WebCore::DataCue::isEqual): New.
16277        (WebCore::DataCue::value): Return a JSValue from the platform value, or the value passed
16278            to the constructor/set by script.
16279        (WebCore::DataCue::setValue): Set m_value.
16280        * html/track/DataCue.h:
16281        * html/track/DataCue.idl:
16282
16283        * html/track/InbandDataTextTrack.cpp:
16284        (WebCore::InbandDataTextTrack::addDataCue): Don't add the same cue more than once.
16285        (WebCore::InbandDataTextTrack::updateDataCue): Update a cue's duration.
16286        (WebCore::InbandDataTextTrack::removeDataCue): Remove an incomplete cue.
16287        (WebCore::InbandDataTextTrack::removeCue): Remove a cue from the incomplete cue map if necessary.
16288        * html/track/InbandDataTextTrack.h:
16289
16290        * html/track/InbandGenericTextTrack.cpp:
16291        (WebCore::InbandGenericTextTrack::addGenericCue): CueMatchRules is now in TextTrackCue instead
16292            of VTTCue.
16293        * html/track/InbandTextTrack.h:
16294
16295        * html/track/InbandWebVTTTextTrack.cpp:
16296        (WebCore::InbandWebVTTTextTrack::newCuesParsed): Ditto.
16297
16298        * html/track/TextTrack.cpp:
16299        (WebCore::TextTrack::hasCue): Ditto.
16300        * html/track/TextTrack.h:
16301
16302        * html/track/TextTrackCue.cpp:
16303        (WebCore::TextTrackCue::isEqual): New, test base class equality.
16304        * html/track/TextTrackCue.h:
16305
16306        * html/track/TextTrackCueGeneric.cpp:
16307        (WebCore::TextTrackCueGeneric::isEqual): Call TextTrackCue::isEqual first.
16308        * html/track/TextTrackCueGeneric.h:
16309
16310        * html/track/VTTCue.cpp:
16311        (WebCore::VTTCue::isEqual): Call TextTrackCue::isEqual first.
16312        * html/track/VTTCue.h:
16313
16314        * platform/SerializedPlatformRepresentation.h: Added.
16315        (WebCore::SerializedPlatformRepresentation::~SerializedPlatformRepresentation):
16316        (WebCore::SerializedPlatformRepresentation::SerializedPlatformRepresentation):
16317
16318        * platform/graphics/InbandTextTrackPrivateClient.h: Add methods for DataCue with SerializedPlatformRepresentation.
16319
16320        * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp: Added.
16321        (WebCore::InbandMetadataTextTrackPrivateAVF::create):
16322        (WebCore::InbandMetadataTextTrackPrivateAVF::InbandMetadataTextTrackPrivateAVF):
16323        (WebCore::InbandMetadataTextTrackPrivateAVF::~InbandMetadataTextTrackPrivateAVF):
16324        (WebCore::InbandMetadataTextTrackPrivateAVF::addDataCue):
16325        (WebCore::InbandMetadataTextTrackPrivateAVF::updatePendingCueEndTimes):
16326        (WebCore::InbandMetadataTextTrackPrivateAVF::flushPartialCues):
16327        * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h: Added.
16328
16329        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
16330        (WebCore::MediaPlayerPrivateAVFoundation::seekWithTolerance): currentTrack -> currentTextTrack.
16331        (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Ditto.
16332        (WebCore::MediaPlayerPrivateAVFoundation::configureInbandTracks): Ditto.
16333        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
16334        (WebCore::MediaPlayerPrivateAVFoundation::setCurrentTextTrack):
16335        (WebCore::MediaPlayerPrivateAVFoundation::setCurrentTrack): Deleted.
16336
16337        Renamed currentTrack and setCurrentTrack to currentTextTrack and setCurrentTextTrack.
16338        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
16339        (WebCore::AVFWrapper::currentTextTrack):
16340        (WebCore::MediaPlayerPrivateAVFoundationCF::setCurrentTextTrack):
16341        (WebCore::MediaPlayerPrivateAVFoundationCF::currentTextTrack):
16342        (WebCore::AVFWrapper::setCurrentTextTrack):
16343        (WebCore::AVFWrapper::AVFWrapper):
16344        (WebCore::AVFWrapper::processCue):
16345        (WebCore::AVFWrapper::currentTrack): Deleted.
16346        (WebCore::MediaPlayerPrivateAVFoundationCF::setCurrentTrack): Deleted.
16347        (WebCore::MediaPlayerPrivateAVFoundationCF::currentTrack): Deleted.
16348        (WebCore::AVFWrapper::setCurrentTrack): Deleted.
16349        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
16350
16351        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
16352        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
16353        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
16354        (WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime): currentTrack -> currentTextTrack
16355        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): currentTrack -> currentTextTrack.
16356        (WebCore::MediaPlayerPrivateAVFoundationObjC::processMetadataTrack): New.
16357        (WebCore::MediaPlayerPrivateAVFoundationObjC::processCue): m_currentTrack -> m_currentTextTrack.
16358        (WebCore::MediaPlayerPrivateAVFoundationObjC::flushCues): Ditto.
16359        (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTextTrack): Renamed from setCurrentTextTrack.
16360        (WebCore::metadataType): Map an AVFoundation metadata key space to a metadata cue type.
16361        (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive): Process new metadata.
16362        (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
16363        (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Deleted.
16364
16365        Create a JSValue representation from an AVMetadataItem.
16366        * platform/mac/SerializedPlatformRepresentationMac.h: Added.
16367        (WebCore::SerializedPlatformRepresentationMac::platformType):
16368        (WebCore::SerializedPlatformRepresentationMac::nativeValue):
16369        * platform/mac/SerializedPlatformRepresentationMac.mm: Added.
16370        (WebCore::SerializedPlatformRepresentationMac::SerializedPlatformRepresentationMac):
16371        (WebCore::SerializedPlatformRepresentationMac::~SerializedPlatformRepresentationMac):
16372        (WebCore::SerializedPlatformRepresentationMac::create):
16373        (WebCore::SerializedPlatformRepresentationMac::data):
16374        (WebCore::SerializedPlatformRepresentationMac::deserialize):
16375        (WebCore::SerializedPlatformRepresentationMac::isEqual):
16376        (WebCore::toSerializedPlatformRepresentationMac):
16377        (WebCore::jsValueWithValueInContext):
16378        (WebCore::jsValueWithDataInContext):
16379        (WebCore::jsValueWithArrayInContext):
16380        (WebCore::jsValueWithDictionaryInContext):
16381        (WebCore::jsValueWithAVMetadataItemInContext):
16382
163832014-04-21  Benjamin Poulain  <benjamin@webkit.org>
16384
16385        Add Element.matches, the standard name for webkitMatchesSelector
16386        https://bugs.webkit.org/show_bug.cgi?id=131922
16387
16388        Reviewed by Andreas Kling.
16389
16390        This patch just renames webkitMatchesSelector() to matches().
16391
16392        * bindings/scripts/CodeGeneratorObjC.pm:
16393        (GenerateImplementation):
16394        The Objective-C binding generator only supported ImplementedAs for getters and setters.
16395        This adds support for the option so that Element.matches can be generated for Obj-C.
16396
16397        * dom/Element.cpp:
16398        (WebCore::Element::matches):
16399        (WebCore::Element::webkitMatchesSelector): Deleted.
16400        * dom/Element.h:
16401        * dom/Element.idl:
16402        * inspector/InspectorCSSAgent.cpp:
16403        (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
16404
164052014-04-21  Beth Dakin  <bdakin@apple.com>
16406
16407        topContentInset does not play well with fullscreen elements
16408        https://bugs.webkit.org/show_bug.cgi?id=131955
16409        -and corresponding-
16410        <rdar://problem/16651925>
16411
16412        Reviewed by Sam Weinig.
16413
16414        Calling setNeedsLayout() is not sufficient when the topContentInset has changed 
16415        dynamically. We need to perform the layout right away and update the scrollbars. 
16416        This works completely when the inset changes due to entering/exiting fullscreen, 
16417        but I left a FIXME behind because it is possible to change the inset dynamically 
16418        just through the WK2 API and end up in a situation where everything looks right 
16419        except for the scrollbars. 
16420        * page/FrameView.cpp:
16421        (WebCore::FrameView::topContentInsetDidChange):
16422        * page/FrameView.h:
16423        * page/Page.cpp:
16424        (WebCore::Page::setTopContentInset):
16425
164262014-04-18  Jon Honeycutt  <jhoneycutt@apple.com>
16427
16428        Empty RenderInline objects should not be line break objects.
16429
16430        https://bugs.webkit.org/show_bug.cgi?id=131861
16431        <rdar://problem/15663617>
16432
16433        Reviewed by David Hyatt.
16434
16435        * rendering/line/BreakingContextInlineHeaders.h:
16436        (WebCore::BreakingContext::canBreakAtThisPosition):
16437        Don't break at this position if this is an empty RenderInline.
16438
164392014-04-21  Enrica Casucci  <enrica@apple.com>
16440
16441        [iOS WebKit2] support replacements for misspelled words.
16442        https://bugs.webkit.org/show_bug.cgi?id=131827
16443        <rdar://problem/16319657>
16444
16445        Reviewed by Darin Adler.
16446
16447        Adds utility function to return the character before the current selection
16448        and converts the nbsp to the space character.
16449
16450        * WebCore.exp.in:
16451        * editing/VisibleUnits.cpp:
16452        (WebCore::characterBeforePosition):
16453        * editing/VisibleUnits.h:
16454
164552014-04-21  Eric Carlson  <eric.carlson@apple.com>
16456
16457        [iOS] enable plug-in replacement
16458        https://bugs.webkit.org/show_bug.cgi?id=131947
16459
16460        Reviewed by Jer Noble.
16461
16462        * bindings/generic/RuntimeEnabledFeatures.cpp:
16463        (WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures): initialize m_isPluginReplacementEnabled
16464            to true on iOS.
16465
164662014-04-21  Rik Cabanier  <cabanier@adobe.com>
16467
16468        [CSS Blending] Remove support for non-separable blend modes from mix-blend-mode
16469        https://bugs.webkit.org/show_bug.cgi?id=131824
16470
16471        Reviewed by Dean Jackson.
16472
16473        Removed support for non-separable blend modes from the CSS parser.
16474
16475        Covered by existing tests
16476
16477        * css/CSSParser.cpp:
16478        (WebCore::isValidKeywordPropertyAndValue):
16479        * platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
16480        (PlatformCAFilters::setBlendingFiltersOnLayer):
16481
164822014-04-21  David Hyatt  <hyatt@apple.com>
16483
16484        [New Multicolumn] Column set drawing under horizontal scrollbar.
16485        https://bugs.webkit.org/show_bug.cgi?id=131812.
16486
16487        Reviewed by Sam Weinig.
16488
16489        Added fast/multicol/newmulticol/compare-with-old-impl/LeftToRight-tb.html.
16490
16491        * rendering/RenderBlockFlow.cpp:
16492        (WebCore::RenderBlockFlow::layoutBlock):
16493        (WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):
16494        * rendering/RenderBlockFlow.h:
16495        Pass in relayoutChildren as a reference boolean to checkForPaginationLogicalHeightChange.
16496        The new columns need to be able to set it to true if the amount of available column
16497        height ever changes, so that the RenderFlowThread and the sets get a layout call.
16498
16499        * rendering/style/RenderStyle.cpp:
16500        (WebCore::RenderStyle::setColumnStylesFromPaginationMode):
16501        Make sure that the pagination mode is set up with an auto column-fill specified. You
16502        don't ever want to balance when you set a pagination mode on the RenderView.
16503
165042014-04-21  Tim Horton  <timothy_horton@apple.com>
16505
16506        [iOS WebKit2] Implement CSS viewport units
16507        https://bugs.webkit.org/show_bug.cgi?id=131863
16508        <rdar://problem/16279088>
16509
16510        Reviewed by Darin Adler.
16511
16512        * WebCore.exp.in:
16513        * page/FrameView.cpp:
16514        (WebCore::FrameView::setViewportSize):
16515        * page/FrameView.h:
16516        (WebCore::FrameView::viewportSize):
16517        Add setViewportSize() and viewportSize().
16518        If the viewport size changes, we have to do style recalc.
16519        If we have an overridden viewport size, use it.
16520
16521        * rendering/RenderView.cpp:
16522        (WebCore::RenderView::viewportSize):
16523        * rendering/RenderView.h:
16524        Get the size from FrameView.
16525
165262014-04-21  Joseph Pecoraro  <pecoraro@apple.com>
16527
16528        Remove unused WebKitSystemInterface functions
16529        https://bugs.webkit.org/show_bug.cgi?id=131938
16530
16531        Reviewed by Alexey Proskuryakov.
16532
16533        * WebCore.exp.in:
16534        * platform/ios/WebCoreSystemInterfaceIOS.mm:
16535        * platform/mac/WebCoreSystemInterface.h:
16536        * platform/mac/WebCoreSystemInterface.mm:
16537
165382014-04-21  Andreas Kling  <akling@apple.com>
16539
16540        Move the JSString cache from DOMWrapperWorld to VM.
16541        <https://webkit.org/b/131940>
16542
16543        Since there's no need for JSStrings to be world-specific, this patch
16544        moves the string cache to JSC::VM. This makes jsStringWithCache()
16545        a lot faster since it no longer has to jump through twenty-eleven
16546        hoops to find the DOMWrapperWorld.
16547
16548        Reviewed by Geoff Garen.
16549
16550        * bindings/js/DOMWrapperWorld.cpp:
16551        (WebCore::DOMWrapperWorld::clearWrappers):
16552        * bindings/js/DOMWrapperWorld.h:
16553        * bindings/js/JSDOMBinding.cpp:
16554        (WebCore::jsStringWithCache):
16555
165562014-04-21  David Hyatt  <hyatt@apple.com>
16557
16558        [New Multicolumn] Column balancing is slow on float-multicol.html
16559        https://bugs.webkit.org/show_bug.cgi?id=131801
16560
16561        Reviewed by Enrica Casucci.
16562
16563        Added fast/multicol/tall-float.html
16564
16565        * rendering/RenderBlock.cpp:
16566        (WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
16567        Make RenderFlowThreads expand to encompass floats. Also from Morten's patch for
16568        Blink (#361551).
16569
16570        * rendering/RenderBlockFlow.cpp:
16571        (WebCore::RenderBlockFlow::computeOverflow):
16572        Fix a bug where the new multi-column code was adding in overflow for floats
16573        when it should not. This was resulting in the creation of scrollbars when none
16574        should exist. This is my own addition.
16575
16576        (WebCore::RenderBlockFlow::addOverhangingFloats):
16577        Make RenderFlowThreads and RenderRegions ignore overhanging float additions. This
16578        comes from Morten's patch for Blink (#361551).
16579
165802014-04-21  Darin Adler  <darin@apple.com>
16581
16582        REGRESSION (r160908): Safari doesn't draw rotated images properly first time
16583        https://bugs.webkit.org/show_bug.cgi?id=131930
16584
16585        Reviewed by Anders Carlsson.
16586
16587        With render tree creation sufficiently lazy, we had to put some explicit
16588        calls to updateStyleIfNeeded into the ImageDocument class.
16589
16590        * dom/DOMImplementation.cpp:
16591        (WebCore::DOMImplementation::createDocument): Pass a Frame&.
16592
16593        * html/ImageDocument.cpp:
16594        (WebCore::ImageDocument::imageSize): Added this helper function. This updates
16595        style so we can use the renderer to compute an image size taking things like
16596        orientation into account, and also passes in the zoom factor.
16597        (WebCore::ImageDocument::updateDuringParsing): Moved the body of the
16598        ImageDocumentParser::appendBytes function into this function. Since it's a
16599        member of ImageDocument, it has better access to appropriate private members,
16600        and we don't have to expose as many functions to the public. Also changed to
16601        not use the frame so much. Also merged in the code that creates the document
16602        instead of having it be a side effect in the cachedImage helper function; all
16603        the other call sites were checking for null before calling cachedImage.
16604        (WebCore::ImageDocument::finishedParsing): Moved the body of the
16605        ImageDocumentParser::finish function here. Added a call to updateStyleIfNeeded
16606        before using the renderer to get the image size.
16607        (WebCore::ImageDocumentParser::document): Made this return a reference. It's
16608        just a convenience function used in the two functions below.
16609        (WebCore::ImageDocumentParser::appendBytes): Just call updateDuringParsing.
16610        (WebCore::ImageDocumentParser::finish): Just call finishedParsing.
16611        (WebCore::ImageDocument::ImageDocument): Take a reference for the argument,
16612        use nullptr, and also initialize m_shouldShrinkImage directly instead of using
16613        a shouldShrinkToFit() helper function to do it.
16614        (WebCore::ImageDocument::createDocumentStructure): Removed unneeded check of
16615        null for the frame, since the caller does it. Removed some unneeded
16616        IGNORE_EXCEPTON and a stray semicolon. Use m_shouldShrinkImage instead of
16617        calling shouldShrinkToFit since at this early point they will be identical.
16618        (WebCore::ImageDocument::scale): Make non-const so we can call the new
16619        imageSize helper. Use Document::view instead of Frame::view. Improved the
16620        conversion to floating point so it doesn't involve a static_cast and an extra
16621        conversion from int to LayoutUnit.
16622        (WebCore::ImageDocument::resizeImageToFit): Ditto.
16623        (WebCore::ImageDocument::imageClicked): Ditto.
16624        (WebCore::ImageDocument::imageUpdated): Ditto. Also use m_shouldShrinkImage
16625        ibnstead of shouldShrinkToFit.
16626        (WebCore::ImageDocument::restoreImageSize): Ditto.
16627        (WebCore::ImageDocument::imageFitsInWindow): Ditto.
16628        (WebCore::ImageDocument::windowSizeChanged): Ditto.
16629        (WebCore::ImageDocument::cachedImage): Deleted. Moved logic into updateDuringParsing.
16630        (WebCore::ImageDocument::shouldShrinkToFit): Deleted. Moved logic into constructor.
16631        (WebCore::ImageEventListener::handleEvent): Updated for changes above.
16632        (WebCore::ImageEventListener::operator==): Simplified. No reason this has to check
16633        whether both listeners are in the same document.
16634        (WebCore::ImageDocumentElement::didMoveToNewDocument): Use nullptr.
16635
16636        * html/ImageDocument.h: Deleted some unused things, updated for changes above,
16637        and made some memer functions private.
16638
16639        * loader/FrameLoaderClient.h: Deleted the allowScriptFromSource, allowPlugins,
16640        allowImage, and allowDisplayingInsecureContent functions. These were only used in
16641        Chromium and are now unneeded complexity. We could bring them back if anyone wants them.
16642
16643        * loader/MixedContentChecker.cpp:
16644        (WebCore::MixedContentChecker::canDisplayInsecureContent): Removed call to
16645        allowDisplayingInsecureContent, just use the setting directly.
16646        (WebCore::MixedContentChecker::canRunInsecureContent): Removed call to
16647        allowRunningInsecureContent, just use the setting directly.
16648
16649        * loader/SubframeLoader.cpp:
16650        (WebCore::SubframeLoader::allowPlugins): Removed call to allowPlugins, just
16651        use the arePluginsEnabled setting directly.
16652
16653        * loader/cache/CachedResourceLoader.cpp:
16654        (WebCore::CachedResourceLoader::canRequest): Removed call to allowScriptFromSource, just
16655        use the isScriptEnabled setting directly.
16656        (WebCore::CachedResourceLoader::clientDefersImage): Removed call to allowImage.
16657
166582014-04-21  David Hyatt  <hyatt@apple.com>
16659
16660        [New Multicolumn] Pagination mode messed up with non-inline axis and reversed direction.
16661        https://bugs.webkit.org/show_bug.cgi?id=131811
16662
16663        Reviewed by Dean Jackson.
16664
16665        Added fast/multicol/newmulticol/compare-with-old-impl/BottomToTop-tb.html
16666        
16667        With block axis pagination mode, it is possible to set a column height that is not the same
16668        as the available fill height for a block. The new multi-column code had the assumption that
16669        the column height was the same as the amount of fill room you had available. This is not
16670        the case.
16671        
16672        To correct the issue, I added a member variable to RenderMultiColumnSet that stores the
16673        available column height as a separate variable from the computed column height. This allows
16674        the pagination API to specify a different column height that is not the same as the view's
16675        content height.
16676
16677        Even though it isn't involved in the solution, I also patched pageOrViewLogicalHeight on
16678        RenderView to work with the new column code as well.
16679
16680        To address the layout test failures (that caused the previous rollout), I made sure to
16681        initialize m_availableHeight to 0 when m_computedColumnHeight also gets reset to 0.
16682        
16683        The assertion is not something I could reproduce on any machine, but I can see the problem.
16684        I patched Page's pageCount method to not have column code directly in Page.cpp, 
16685        and to make a new pageCount() method on RenderView that Page calls
16686        into. This method is now patched to handle the new column code as well as the old. I have
16687        no real way of testing this method though, since I can't reproduce the assertion that the
16688        bots were experiencing.
16689
16690        * page/Page.cpp:
16691        (WebCore::Page::pageCount):
16692        * rendering/RenderMultiColumnSet.cpp:
16693        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
16694        (WebCore::RenderMultiColumnSet::setAndConstrainColumnHeight):
16695        (WebCore::RenderMultiColumnSet::prepareForLayout):
16696        (WebCore::RenderMultiColumnSet::computeLogicalHeight):
16697        * rendering/RenderMultiColumnSet.h:
16698        * rendering/RenderView.cpp:
16699        (WebCore::RenderView::pageOrViewLogicalHeight):
16700        (WebCore::RenderView::pageCount):
16701        * rendering/RenderView.h:
16702
167032014-04-18  Dean Jackson  <dino@apple.com>
16704
16705        [Media] Clean up localized strings in controls
16706        https://bugs.webkit.org/show_bug.cgi?id=131857
16707        <rdar://problem/16663005>
16708
16709        Reviewed by Eric Carlson.
16710
16711        There is no need for separate localization files
16712        on OS X and iOS. Move the small number of iOS-specific
16713        localizations into a shared file.
16714
16715        We also don't need a function to return a static table.
16716        Ultimately I think we want a top-level WebKit object that
16717        hold the table, but for now use a global variable
16718        called UIStringTable. Since we're in an isolated world, we
16719        won't clash with anything.
16720
16721        I noticed a few cases were we grab a localized string and
16722        then instantly run a replacement on it. This should be
16723        supported directly in the UIString() accessor.
16724
16725        * English.lproj/mediaControlsLocalizedStrings.js: Add iOS strings. Just
16726        use a static table.
16727        (mediaControlsLocalizedStrings): Deleted.
16728        * English.lproj/mediaControlsLocalizedStringsiOS.js: Removed.
16729        * Modules/mediacontrols/mediaControlsApple.js:
16730        (Controller.prototype.extend): Fix braces.
16731        (Controller.prototype.UIString): Use the string table, and allow replacement.
16732        (Controller.prototype.createControls): Use new UIString replacement.
16733        * Modules/mediacontrols/mediaControlsiOS.js:
16734        (ControllerIOS.prototype.updateWirelessPlaybackStatus): Use new UIString.
16735        (ControllerIOS.prototype.UIString): Deleted. Use the parent class version.
16736        * WebCore.xcodeproj/project.pbxproj: Remove file from Resources.
16737        * rendering/RenderThemeIOS.mm:
16738        (WebCore::RenderThemeIOS::mediaControlsScript): No need to include the iOS
16739        specific localization file.
16740
167412014-04-21  Brent Fulgham  <bfulgham@apple.com>
16742
16743        [Win] Unreviewed build fix.
16744
16745        * inspector/TimelineRecordFactory.cpp: Add missing include.
16746
167472014-04-21  Zan Dobersek  <zdobersek@igalia.com>
16748
16749        Move cross-port Source/WebCore/page/ code to std::unique_ptr
16750        https://bugs.webkit.org/show_bug.cgi?id=130534
16751
16752        Reviewed by Darin Adler.
16753
16754        Replace uses of OwnPtr and PassOwnPtr in cross-port code under Source/WebCore/page/ with
16755        std::unique_ptr. Unnecessary OwnPtr.h and PassOwnPtr.h header inclusions are removed as well.
16756
16757        * dom/Document.cpp:
16758        (WebCore::Document::initSecurityContext):
16759        * dom/SecurityContext.cpp:
16760        (WebCore::SecurityContext::setContentSecurityPolicy):
16761        * dom/SecurityContext.h:
16762        * page/CaptionUserPreferences.h:
16763        * page/ContentSecurityPolicy.cpp:
16764        (WebCore::CSPDirectiveList::create):
16765        (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
16766        (WebCore::CSPDirectiveList::checkInlineAndReportViolation):
16767        (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
16768        (WebCore::CSPDirectiveList::setCSPDirective):
16769        (WebCore::ContentSecurityPolicy::didReceiveHeader):
16770        * page/ContentSecurityPolicy.h:
16771        * page/DOMSecurityPolicy.h:
16772        * page/DOMWindow.cpp:
16773        (WebCore::PostMessageTimer::fired):
16774        (WebCore::DOMWindow::postMessageTimerFired):
16775        * page/DOMWindow.h:
16776        * page/EventHandler.cpp:
16777        (WebCore::EventHandler::EventHandler):
16778        * page/EventHandler.h:
16779        * page/Frame.cpp:
16780        (WebCore::Frame::Frame):
16781        (WebCore::createRegExpForLabels):
16782        (WebCore::Frame::searchForLabelsAboveCell):
16783        (WebCore::Frame::searchForLabelsBeforeElement):
16784        (WebCore::matchLabelsAgainstString):
16785        (WebCore::Frame::setTiledBackingStoreEnabled):
16786        * page/Frame.h:
16787        * page/FrameView.cpp:
16788        (WebCore::FrameView::addEmbeddedObjectToUpdate):
16789        (WebCore::FrameView::addSlowRepaintObject):
16790        (WebCore::FrameView::addViewportConstrainedObject):
16791        (WebCore::FrameView::addScrollableArea):
16792        * page/FrameView.h:
16793        * page/Page.cpp:
16794        (WebCore::Page::Page):
16795        * page/Page.h:
16796        * page/PageConsole.h:
16797        * page/PageThrottler.h:
16798        * page/SecurityPolicy.cpp:
16799        (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
16800        * page/animation/AnimationController.h:
16801        * page/animation/CSSPropertyAnimation.cpp:
16802        (WebCore::PropertyWrapperVisitedAffectedColor::PropertyWrapperVisitedAffectedColor):
16803        (WebCore::CSSPropertyAnimationWrapperMap::instance):
16804        (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
16805        * page/mac/PageMac.cpp:
16806        (WebCore::Page::addSchedulePair):
16807        * workers/WorkerGlobalScope.cpp:
16808        (WebCore::WorkerGlobalScope::applyContentSecurityPolicyFromString):
16809
168102014-04-21  Darin Adler  <darin@apple.com>
16811
16812        Add HashSet::takeAny
16813        https://bugs.webkit.org/show_bug.cgi?id=131928
16814
16815        Reviewed by Benjamin Poulain.
16816
16817        * dom/Document.cpp:
16818        (WebCore::Document::takeAnyMediaCanStartListener): Use HashSet::takeAny.
16819        * dom/ScriptExecutionContext.cpp:
16820        (WebCore::takeAny): Deleted.
16821        (WebCore::ScriptExecutionContext::~ScriptExecutionContext): Use HashSet::takeAny.
16822
168232014-04-21  Zan Dobersek  <zdobersek@igalia.com>
16824
16825        iOS and non-iOS RemoteCommandListener::create() functions should use std::make_unique<>()
16826        https://bugs.webkit.org/show_bug.cgi?id=131916
16827
16828        Reviewed by Darin Adler.
16829
16830        A follow-up to r167197. Make RemoteCommandListener ctor public and use std::make_unique<>()
16831        in both versions of RemoteCommandListener::create() functions (iOS and non-iOS).
16832
16833        * platform/RemoteCommandListener.cpp:
16834        (WebCore::RemoteCommandListener::create):
16835        * platform/RemoteCommandListener.h:
16836        (WebCore::RemoteCommandListener::RemoteCommandListener):
16837        * platform/ios/RemoteCommandListenerIOS.mm:
16838        (WebCore::RemoteCommandListener::create):
16839
168402014-04-21  Andreas Kling  <akling@apple.com>
16841
16842        Micro-optimize the way we hand NodeLists to JSC.
16843        <https://webkit.org/b/131932>
16844
16845        Use HashMap::fastAdd() when returning cached node lists and collections.
16846        10.9% progression on Bindings/get-elements-by-tag-name.html
16847
16848        Reviewed by Antti Koivisto.
16849
16850        * dom/NodeRareData.h:
16851        (WebCore::NodeListsNodeData::addCacheWithAtomicName):
16852        (WebCore::NodeListsNodeData::addCacheWithName):
16853        (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
16854        (WebCore::NodeListsNodeData::addCachedCollection):
16855
168562014-04-21  Commit Queue  <commit-queue@webkit.org>
16857
16858        Unreviewed, rolling out r167584.
16859        https://bugs.webkit.org/show_bug.cgi?id=131929
16860
16861        Broke Objective-C bindings test (Requested by ap on #webkit).
16862
16863        Reverted changeset:
16864
16865        "Add Element.matches, the standard name for
16866        webkitMatchesSelector"
16867        https://bugs.webkit.org/show_bug.cgi?id=131922
16868        http://trac.webkit.org/changeset/167584
16869
168702014-04-20  Benjamin Poulain  <benjamin@webkit.org>
16871
16872        Compile the :root pseudo class and fix a related issue with :nth-child()
16873        https://bugs.webkit.org/show_bug.cgi?id=131926
16874
16875        Reviewed by Andreas Kling.
16876
16877        Add the :root pseudo class. This is another trivial selector, we just need to compare
16878        the element pointer with the documentElement.
16879
16880        I discovered some issues with :nth-child(n) through the layout tests for ":root".
16881        When the pseudo class nth-child could match anything, no code was generated. That decision
16882        was taken when generating the fragments.
16883
16884        The specification of :nth-child() has two tests: the parent test and the counter test.
16885        Since some fragments would not generate any code for :nth-child(n), they would succeed on the root,
16886        which is incorrect since the root should fail the parent test.
16887
16888        This was fixed by moving the filtering of non-counting :nth-child() after we generate the parent
16889        check.
16890        We still don't generate any counter test unless required.
16891
16892        Test: fast/selectors/nth-child-on-root.html
16893
16894        * cssjit/SelectorCompiler.cpp:
16895        (WebCore::SelectorCompiler::addPseudoClassType):
16896        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
16897        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
16898        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsRoot):
16899        * dom/Document.h:
16900        (WebCore::Document::documentElementMemoryOffset):
16901
169022014-04-20  Benjamin Poulain  <benjamin@webkit.org>
16903
16904        Add Element.matches, the standard name for webkitMatchesSelector
16905        https://bugs.webkit.org/show_bug.cgi?id=131922
16906
16907        Reviewed by Andreas Kling.
16908
16909        This patch just renames webkitMatchesSelector() to matches().
16910
16911        * bindings/scripts/CodeGeneratorObjC.pm:
16912        (GenerateImplementation):
16913        The Objective-C binding generator only supported ImplementedAs for getters and setters.
16914        This adds support for the option so that Element.matches can be generated for Obj-C.
16915
16916        * dom/Element.cpp:
16917        (WebCore::Element::matches):
16918        (WebCore::Element::webkitMatchesSelector): Deleted.
16919        * dom/Element.h:
16920        * dom/Element.idl:
16921        * inspector/InspectorCSSAgent.cpp:
16922        (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
16923
169242014-04-20  Zalan Bujtas  <zalan@apple.com>
16925
16926        Subpixel rendering: RenderLayer's size is set using enclosingRect() which can result in cruft.
16927        https://bugs.webkit.org/show_bug.cgi?id=131468
16928
16929        Reviewed by Darin Adler.
16930
16931        Layers marked opaque may not paint edge pixels, when RenderLayer bounds are non-integral and
16932        get device pixel snapped.
16933        For details see this: https://trac.webkit.org/r159463
16934
16935        Test: compositing/hidpi-non-simple-compositing-layer-with-fractional-size-and-background.html
16936
16937        * rendering/RenderLayerBacking.cpp:
16938        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
16939
169402014-04-19  Darin Adler  <darin@apple.com>
16941
16942        Simple layout can get confused by coordinate overflow
16943        https://bugs.webkit.org/show_bug.cgi?id=131890
16944        rdar://problem/15558510
16945
16946        Reviewed by Andreas Kling.
16947
16948        Test: fast/css/simple-layout-overflow.html
16949
16950        * rendering/SimpleLineLayoutResolver.h:
16951        (WebCore::SimpleLineLayout::RunResolver::rangeForRect):
16952        If lastLine is smaller than firstLine, just ignore it.
16953
169542014-04-20  Darin Adler  <darin@apple.com>
16955
16956        ScriptExecutionContext::stopActiveDOMObjects iterates a hash map that can change during iteration (for multiple reasons, including GC)
16957        https://bugs.webkit.org/show_bug.cgi?id=52719
16958
16959        Reviewed by Alexey Proskuryakov.
16960
16961        At least two specific ways this can happen:
16962
16963        1) XMLHttpRequest::stop can trigger a JavaScript garbage collection.
16964        2) NotificationCenter::stop can delete the last references to notifications;
16965           those notifications are also active DOM objects.
16966
16967        Besides fixing the iteration in that function, did some other fixes for the
16968        ScriptExecutionContext class, including some coding style changes. Many uses
16969        of nullptr instead of 0, without listing each function separately below.
16970
16971        * Modules/webdatabase/DatabaseContext.cpp:
16972        (WebCore::DatabaseContext::contextDestroyed): Call through to the base class
16973        version of contextDestroyed rather than repeating what it does (with a large
16974        comment that doesn't acknowledge the base class alread does it).
16975        * Modules/webdatabase/DatabaseContext.h: Removed some unneeded includes.
16976        Wrote out "private" explicitly for deriving from ActiveDOMObject. Made the
16977        ActiveDOMObject function overrides private, and marked them override and final.
16978
16979        * dom/ActiveDOMObject.h: Updated comments. Replaced suspendIfNeededCalled with
16980        assertSuspendIfNeededWasCalled, which has an empty inline version in the header.
16981        Renamed m_suspendIfNeededCalled to m_suspendIfNeededWasCalled.
16982
16983        * dom/ActiveDOMObject.cpp:
16984        (WebCore::ActiveDOMObject::ActiveDOMObject): Pass a reference instead of a pointer.
16985        (WebCore::ActiveDOMObject::~ActiveDOMObject): Ditto.
16986        (WebCore::ActiveDOMObject::suspendIfNeeded): Ditto.
16987
16988        * dom/ContextDestructionObserver.cpp:
16989        (WebCore::ContextDestructionObserver::observeContext): Pass a reference instead of a pointer.
16990
16991        * dom/MessagePort.cpp:
16992        (WebCore::MessagePort::MessagePort): Pass a reference instead of a pointer.
16993        (WebCore::MessagePort::~MessagePort): Ditto.
16994        (WebCore::MessagePort::disentangle): Ditto.
16995
16996        * dom/ScriptExecutionContext.cpp:
16997        (WebCore::ScriptExecutionContext::ScriptExecutionContext): Updated flags used
16998        for assertions so they are conditional and updated their names.
16999        (WebCore::takeAny): Added. Helper function that we can consider for HashSet in
17000        the future; makes loop below easier to read.
17001        (WebCore::checkConsistency): Added. Assertions that were done multiple places below,
17002        and should not be written over and over again.
17003        (WebCore::ScriptExecutionContext::~ScriptExecutionContext): Changed to use C++11
17004        for loops and the takeAny function above.
17005        (WebCore::ScriptExecutionContext::dispatchMessagePortEvents): Ditto.
17006        (WebCore::ScriptExecutionContext::createdMessagePort): Changed to take a reference
17007        for clarity and so it doesn't have to do an assert the pointer is non-null.
17008        (WebCore::ScriptExecutionContext::destroyedMessagePort): Ditto.
17009        (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects): Changed to use
17010        C++11 for loop and reworded comment and redid assertions.
17011        (WebCore::ScriptExecutionContext::suspendActiveDOMObjects): Ditto.
17012        (WebCore::ScriptExecutionContext::resumeActiveDOMObjects): Ditto.
17013        (WebCore::ScriptExecutionContext::stopActiveDOMObjects): Changed to support
17014        removal of an active DOM object during the stop function. Included new comments
17015        to clarify what the rules are.
17016        (WebCore::ScriptExecutionContext::suspendActiveDOMObjectIfNeeded): Changed to take
17017        a reference for clarity and so it doesn't have to assert a pointer is non-null.
17018        (WebCore::ScriptExecutionContext::didCreateActiveDOMObject): Ditto. Also changed to
17019        use RELEASE_ASSERT instead of CRASH.
17020        (WebCore::ScriptExecutionContext::willDestroyActiveDOMObject): Ditto.
17021        (WebCore::ScriptExecutionContext::didCreateDestructionObserver): Ditto.
17022        (WebCore::ScriptExecutionContext::willDestroyDestructionObserver): Ditto.
17023        (WebCore::ScriptExecutionContext::closeMessagePorts): Moved the body of this
17024        function into its one call site, ScriptExecutionContext::stopActiveDOMObjects,
17025        since it's simple enough when written as a C++11 for loop.
17026        (WebCore::ScriptExecutionContext::hasPendingActivity): Added. This function was
17027        already exported for workers, and implementing it outside this class required
17028        exposing the private HashSet members; more sensible to implement it here and
17029        simply make it public in WorkerGlobalScope.
17030
17031        * dom/ScriptExecutionContext.h: Removed unnecessary includes and forward declarations.
17032        Removed a long-ago-fixed FIXME. Changed various functions to take references instead of
17033        pointers. Added a protected hasPendingActivity function, deleted the closeMessagePorts
17034        function, deleted the ActiveDOMObjectsSet typedef, made the assertion flags be
17035        !ASSERT_DISABLED only, and deleted the messagePorts and activeDOMObjects functions.
17036
17037        * workers/WorkerGlobalScope.cpp:
17038        (WebCore::WorkerGlobalScope::hasPendingActivity): Deleted. This is now implemented
17039        in the base class.
17040
17041        * workers/WorkerGlobalScope.h: Make hasPendingActivity function from the base class
17042        public instead of declaring it in this class.
17043
170442014-04-20  Brent Fulgham  <bfulgham@apple.com>
17045
17046        [Mac] Unable to select 'Off' or 'Auto' from track menu when tracks consist of unsupported track types
17047        https://bugs.webkit.org/show_bug.cgi?id=131908
17048        <rdar://problem/15999882>
17049
17050        Reviewed by Eric Carlson.
17051
17052        * html/HTMLMediaElement.cpp:
17053        (WebCore::HTMLMediaElement::setSelectedTextTrack): When the user selects 'Off', make sure the currently 'showing'
17054        track is switched to 'disabled'.
17055
170562014-04-20  Andreas Kling  <akling@apple.com>
17057
17058        Speed up jsStringWithCache() through WeakGCMap inlining.
17059        <https://webkit.org/b/131923>
17060
17061        Inline the common path of WeakGCMap::add() in jsStringWithCache().
17062        26% progression on Bindings/id-getter.html
17063
17064        Reviewed by Darin Adler.
17065
17066        * WebCore.exp.in:
17067        * bindings/js/JSDOMBinding.h:
17068        * bindings/js/JSDOMBinding.cpp:
17069        (WebCore::jsStringWithCache):
17070
17071            Move jsStringWithCache() out of line since we're now blowing up
17072            its size quite a bit.
17073
170742014-04-20  Benjamin Poulain  <benjamin@webkit.org>
17075
17076        Fix the build after r167574
17077
17078        * cssjit/SelectorCompiler.cpp:
17079        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
17080
170812014-04-20  Benjamin Poulain  <benjamin@webkit.org>
17082
17083        Compile the pseudo class :target
17084        https://bugs.webkit.org/show_bug.cgi?id=131904
17085
17086        Reviewed by Andreas Kling.
17087
17088        The pseudo class :target is trivial, it just compare the current element with
17089        Document::cssTarget().
17090
17091        * cssjit/SelectorCompiler.cpp:
17092        (WebCore::SelectorCompiler::addPseudoType):
17093        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
17094        (WebCore::SelectorCompiler::getDocument):
17095        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueExactMatching):
17096        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsTarget):
17097        * dom/Document.h:
17098        (WebCore::Document::cssTargetMemoryOffset):
17099
171002014-04-20  Benjamin Poulain  <benjamin@webkit.org>
17101
17102        Rename the CSSSelector PseudoType to PseudoClassType
17103        https://bugs.webkit.org/show_bug.cgi?id=131907
17104
17105        Reviewed by Andreas Kling.
17106
17107        Pseudo Elements and Page Pseudo Classes have been moved out of PseudoType in previous patches.
17108        The remaining values in the PseudoType enumeration are the pseudo classes.
17109
17110        This patch is the final clean up, PseudoType is renamed to PseudoClassType.
17111
17112        * css/CSSGrammar.y.in:
17113        * css/CSSParserValues.cpp:
17114        (WebCore::CSSParserSelector::parsePseudoClassAndCompatibilityElementSelector):
17115        * css/CSSParserValues.h:
17116        (WebCore::CSSParserSelector::pseudoClassType):
17117        (WebCore::CSSParserSelector::pseudoType): Deleted.
17118        * css/CSSSelector.cpp:
17119        (WebCore::CSSSelector::specificityForOneSelector):
17120        (WebCore::appendPseudoClassFunctionTail):
17121        (WebCore::CSSSelector::selectorText):
17122        * css/CSSSelector.h:
17123        (WebCore::CSSSelector::pseudoClassType):
17124        (WebCore::CSSSelector::pseudoElementType):
17125        (WebCore::CSSSelector::pagePseudoClassType):
17126        (WebCore::pseudoClassIsRelativeToSiblings):
17127        (WebCore::CSSSelector::isSiblingSelector):
17128        (WebCore::CSSSelector::CSSSelector):
17129        (WebCore::CSSSelector::pseudoType): Deleted.
17130        * css/RuleSet.cpp:
17131        (WebCore::RuleSet::findBestRuleSetAndAdd):
17132        * css/SelectorChecker.cpp:
17133        (WebCore::SelectorChecker::checkOne):
17134        (WebCore::SelectorChecker::checkScrollbarPseudoClass):
17135        (WebCore::SelectorChecker::determineLinkMatchType):
17136        (WebCore::SelectorChecker::matchesFocusPseudoClass):
17137        * css/SelectorChecker.h:
17138        (WebCore::SelectorChecker::isCommonPseudoClassSelector):
17139        * css/SelectorCheckerFastPath.cpp:
17140        (WebCore::SelectorCheckerFastPath::commonPseudoClassSelectorMatches):
17141        * css/SelectorPseudoClassAndCompatibilityElementMap.in:
17142        * css/SelectorPseudoTypeMap.h:
17143        * css/StyleResolver.cpp:
17144        (WebCore::StyleResolver::styleForElement):
17145        * css/makeSelectorPseudoClassAndCompatibilityElementMap.py:
17146        (enumerablePseudoType):
17147        * cssjit/SelectorCompiler.cpp:
17148        (WebCore::SelectorCompiler::addPseudoClassType):
17149        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
17150        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
17151        (WebCore::SelectorCompiler::addPseudoType): Deleted.
17152        * inspector/InspectorCSSAgent.cpp:
17153        (WebCore::computePseudoClassMask):
17154        (WebCore::InspectorCSSAgent::forcePseudoState):
17155        * inspector/InspectorCSSAgent.h:
17156        * inspector/InspectorInstrumentation.cpp:
17157        (WebCore::InspectorInstrumentation::forcePseudoStateImpl):
17158        * inspector/InspectorInstrumentation.h:
17159        (WebCore::InspectorInstrumentation::forcePseudoState):
17160
171612014-04-19  Alexey Proskuryakov  <ap@apple.com>
17162
17163        Crashes in HTMLFormElement::submit.
17164        https://bugs.webkit.org/show_bug.cgi?id=131910
17165        <rdar://problem/15661790>
17166
17167        Based on a patch by Kent Tamura.
17168
17169        Reviewed by Anders Carlsson.
17170
17171        Tests: fast/forms/form-submission-crash-2.html
17172               fast/forms/form-submission-crash.html
17173
17174        Code that executes arbitrary JS needs to protect objects that it uses afterwards.
17175
17176        * html/HTMLFormElement.cpp:
17177        (WebCore::HTMLFormElement::prepareForSubmission):
17178        (WebCore::HTMLFormElement::submit):
17179        * loader/FrameLoader.cpp:
17180        (WebCore::FrameLoader::submitForm):
17181
171822014-04-20  Antti Koivisto  <antti@apple.com>
17183
17184        Text bounding box computation for simple line layout is wrong
17185        https://bugs.webkit.org/show_bug.cgi?id=131912
17186
17187        Reviewed by Andreas Kling.
17188
17189        Top-left is currently the first line top-left which is not always correct.
17190
17191        * WebCore.exp.in:
17192        * rendering/RenderText.cpp:
17193        (WebCore::RenderText::firstRunLocation):
17194        (WebCore::RenderText::firstRunOrigin): Deleted.
17195        (WebCore::RenderText::firstRunX): Deleted.
17196        (WebCore::RenderText::firstRunY): Deleted.
17197        
17198            Keep just one accessor and rename it.
17199            Encapsulate the line box and simple line versions.
17200
17201        * rendering/RenderText.h:
17202        * rendering/RenderTextLineBoxes.cpp:
17203        (WebCore::RenderTextLineBoxes::firstRunLocation):
17204
17205            Line box version.
17206
17207        * rendering/RenderTextLineBoxes.h:
17208        * rendering/RenderTreeAsText.cpp:
17209        
17210            Simplify RenderText dumping.
17211
17212        (WebCore::RenderTreeAsText::writeRenderObject):
17213        * rendering/SimpleLineLayoutFunctions.cpp:
17214        (WebCore::SimpleLineLayout::computeTextBoundingBox):
17215        
17216            Return the correct x position.
17217
17218        (WebCore::SimpleLineLayout::computeTextFirstRunLocation):
17219        
17220            Simple line version.
17221
17222        * rendering/SimpleLineLayoutFunctions.h:
17223        * rendering/svg/SVGRenderTreeAsText.cpp:
17224        (WebCore::writeSVGInlineText):
17225
172262014-04-19  Zalan Bujtas  <zalan@apple.com>
17227
17228        Subpixel rendering: RenderLayer's clipping should snap to device pixel boundaries.
17229        https://bugs.webkit.org/show_bug.cgi?id=131466
17230
17231        Reviewed by Simon Fraser.
17232
17233        Fractional pixel clipping can produce cruft on RenderLayers. Since RenderLayer
17234        sizing and painting are snapped, painting clip rect needs to be snapped the same way.
17235
17236        Test: fast/clip/clip-when-rect-has-fractional-pixel-value.html
17237
17238        * rendering/RenderLayer.cpp:
17239        (WebCore::RenderLayer::clipToRect):
17240
172412014-04-19  Brent Fulgham  <bfulgham@apple.com>
17242
17243        Latched scrolling may interact badly with custom programmatic scrolling
17244        https://bugs.webkit.org/show_bug.cgi?id=131869
17245        <rdar://problem/16249557>
17246
17247        Reviewed by Darin Adler.
17248
17249        * dom/Element.cpp:
17250        (WebCore::Element::setScrollLeft): Mark scrollable area as having
17251        been scrolled programmatically.
17252        (WebCore::Element::setScrollTop): Ditto.
17253        * page/EventHandler.cpp:
17254        (WebCore::EventHandler::handleWheelEvent): Check for programmatic scroll, and
17255        clear latched state if the handler manually scrolled. Clear programmatic
17256        scroll state at the end of event handling.
17257        (WebCore::EventHandler::clearLatchedState): Refactored code.
17258        * page/EventHandler.h:
17259        * page/mac/EventHandlerMac.mm:
17260        (WebCore::EventHandler::platformPrepareForWheelEvents): Check
17261        if scrollable area was scrolled programmatically. If it was, do
17262        not honor latching behavior.
17263        * platform/ScrollableArea.cpp:
17264        (WebCore::ScrollableArea::ScrollableArea): Initialize new member.
17265        * platform/ScrollableArea.h:
17266        (WebCore::ScrollableArea::isScrolledProgrammatically): Added.
17267        (WebCore::ScrollableArea::setScrolledProgrammatically): Added.
17268
172692014-04-19  Chris Fleizach  <cfleizach@apple.com>
17270
17271        AX: grid rows are not recognized do to lack of explicit role="row", role="gridcell"
17272        https://bugs.webkit.org/show_bug.cgi?id=131819
17273
17274        Reviewed by Darin Adler.
17275
17276        Test: accessibility/table-with-missing-aria-role-rows.html
17277
17278        If a table is using role="grid", and it has <tr> elements that do not have
17279        role="row", we should still treat them as row elements.
17280
17281        * accessibility/AccessibilityARIAGrid.cpp:
17282        (WebCore::AccessibilityARIAGrid::addTableCellChild):
17283
172842014-04-19  Chris Fleizach  <cfleizach@apple.com>
17285
17286        AX: Malformed tables exposing incorrect col and colSpans
17287        https://bugs.webkit.org/show_bug.cgi?id=131796
17288
17289        Reviewed by Darin Adler.
17290
17291        Test: accessibility/table-incorrect-colspan-cell.html
17292
17293        When a developer has specified malformed colspans, accessibility is reporting those values instead of the effective column information.
17294
17295        * accessibility/AccessibilityTableCell.cpp:
17296        (WebCore::AccessibilityTableCell::columnIndexRange):
17297
172982014-04-19  Benjamin Poulain  <bpoulain@apple.com>
17299
17300        Make the CSS JIT compile for ARM64
17301        https://bugs.webkit.org/show_bug.cgi?id=131834
17302
17303        Reviewed by Gavin Barraclough.
17304
17305        Add the CPU specific code required to compile SelectorCompiler on ARM64.
17306        The code is absolutely non-functional, it would crash immediately, but it compiles.
17307
17308        * cssjit/FunctionCall.h:
17309        (WebCore::FunctionCall::FunctionCall):
17310        (WebCore::FunctionCall::callAndBranchOnCondition):
17311        * cssjit/RegisterAllocator.h:
17312        What am I supposed to do with all those registers? There are so many of them :)
17313        The array calleeSavedRegisters is defined for compatibility but it cannot be reached at the moment.
17314
17315        (WebCore::RegisterAllocator::isValidRegister):
17316        * cssjit/SelectorCompiler.cpp:
17317        (WebCore::SelectorCompiler::SelectorCodeGenerator::modulo):
17318        Implement modulo by doing dividend - (divisor * int(dividend/divisor)).
17319
17320        * cssjit/StackAllocator.h:
17321        StackAllocator will need a small redesign to handle the 16 bytes alligned stack of
17322        ARM64.
17323        The code has been modified to build but it is pretty useless.
17324
17325        (WebCore::StackAllocator::allocateUninitialized):
17326        (WebCore::StackAllocator::push):
17327        (WebCore::StackAllocator::pop):
17328        (WebCore::StackAllocator::popAndDiscard):
17329        (WebCore::StackAllocator::popAndDiscardUpTo):
17330        (WebCore::StackAllocator::alignStackPreFunctionCall):
17331        (WebCore::StackAllocator::unalignStackPostFunctionCall):
17332
173332014-04-19  Simon Fraser  <simon.fraser@apple.com>
17334
17335        [UI-side compositing] Implement blend modes
17336        https://bugs.webkit.org/show_bug.cgi?id=131891
17337        <rdar://problem/16490085>
17338
17339        Reviewed by Tim Horton.
17340
17341        Implement blend modes with UI-side compositing.
17342        
17343        PlatformCALayer::setBlendMode() becomes pure virtual, and overridden in
17344        PlatformCALayerMac and PlatformCALayerRemote.
17345        PlatformCAFilters::setBlendingFiltersOnLayer() now takes a raw platform
17346        layer, so it can be called from the UI process on a CALayer*.
17347        
17348        Fix an issue with GraphicsLayerCA::LayerChange flags. 1 << 31 shifts
17349        a signed integer, so it ended up setting all the high bits in m_uncommittedChanges,
17350        causing us to push blend modes to the UI process for every layer. Fix by shifting
17351        an unsigned long long (1LLU << 31). This should also fix a build warning on Windows.
17352
17353        * WebCore.exp.in:
17354        * platform/graphics/ca/GraphicsLayerCA.h:
17355        * platform/graphics/ca/PlatformCAFilters.h:
17356        * platform/graphics/ca/PlatformCALayer.h:
17357        * platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
17358        (PlatformCAFilters::setBlendingFiltersOnLayer):
17359        * platform/graphics/ca/mac/PlatformCALayerMac.h:
17360        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
17361        (PlatformCALayerMac::setFilters):
17362        (PlatformCALayerMac::setBlendMode):
17363        (PlatformCALayer::setBlendMode): Deleted.
17364
173652014-04-19  Joseph Pecoraro  <pecoraro@apple.com>
17366
17367        Fix AVPlayerController leak on pages with video
17368        https://bugs.webkit.org/show_bug.cgi?id=131878
17369
17370        Reviewed by Eric Carlson.
17371
17372        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
17373        (-[WebAVPlayerController init]):
17374        Assigning to the retain property will increment the count,
17375        so balance the alloc with an autorelease.
17376
173772014-04-19  Andreas Kling  <akling@apple.com>
17378
17379        Slap ALWAYS_INLINE on Element attribute lookup things.
17380        <https://webkit.org/b/131892>
17381
17382        Most of the "inline" helpers for setting/getting attributes were not
17383        actually getting inlined by the compiler, so let's make that happen.
17384
17385        Reviewed by Geoffrey Garen.
17386
17387        * dom/Element.cpp:
17388        (WebCore::Element::synchronizeAttribute):
17389        * dom/ElementData.h:
17390        (WebCore::ElementData::findAttributeByName):
17391        (WebCore::ElementData::findAttributeIndexByName):
17392
173932014-04-19  Darin Adler  <darin@apple.com>
17394
17395        Telephone number detection should respect its setting consistently
17396        https://bugs.webkit.org/show_bug.cgi?id=131893
17397        rdar://problem/16597639
17398
17399        Reviewed by Tim Horton.
17400
17401        * editing/Editor.cpp:
17402        (WebCore::Editor::respondToChangedSelection): Only start the timer
17403        if shouldDetectTelephoneNumbers returns true.
17404        (WebCore::Editor::shouldDetectTelephoneNumbers): Added. Calls both
17405        isTelephoneNumberParsingEnabled and TelephoneNumberDetector::isSupported.
17406        (WebCore::Editor::scanSelectionForTelephoneNumbers): Use
17407        shouldDetectTelephoneNumbers.
17408        (WebCore::Editor::clearDataDetectedTelephoneNumbers): Use document()
17409        instead of m_frame.document().
17410
17411        * editing/Editor.h: Added declaration of shouldDetectTelephoneNumbers.
17412
174132014-04-19  Andrei Bucur  <abucur@adobe.com>
17414
17415        [CSS Regions] Harden the layout in case there are no regions
17416        https://bugs.webkit.org/show_bug.cgi?id=131517
17417
17418        Reviewed by Mihnea Ovidenie.
17419
17420        The patch fixes the cases when the content of a flow thread is not
17421        properly invalidated when all the regions of its chain are removed.
17422
17423        Test: fast/regions/simplified-layout-no-regions.html
17424
17425        * rendering/RenderFlowThread.cpp:
17426        (WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock):
17427        * rendering/RenderRegion.cpp:
17428        (WebCore::RenderRegion::ensureOverflowForBox):
17429
174302014-04-19  Zalan Bujtas  <zalan@apple.com>
17431
17432        https://bugs.webkit.org/show_bug.cgi?id=131594
17433        Subpixel rendering: WK1: Wrong repaint rect is calculated when layer has non-compositing transform.
17434
17435        Reviewed by Simon Fraser.
17436
17437        We need to snap the repaint rect for transformed object the same way when we paint them.
17438
17439        Test: fast/repaint/hidpi-wrong-repaint-rect-when-parent-has-noncompositing-transform.html
17440
17441        * rendering/RenderBox.cpp:
17442        (WebCore::RenderBox::computeRectForRepaint):
17443
174442014-04-18  Simon Fraser  <simon.fraser@apple.com>
17445
17446        Use 'override' in GraphicsLayerCA
17447        https://bugs.webkit.org/show_bug.cgi?id=131882
17448
17449        Reviewed by Tim Horton.
17450
17451        Add 'override' to all overridden functions. Found a few that need
17452        not have been virtual. Removed "allowTiledLayer" stuff that was
17453        never called.
17454
17455        * WebCore.exp.in:
17456        * platform/graphics/ca/GraphicsLayerCA.cpp:
17457        (WebCore::GraphicsLayerCA::GraphicsLayerCA):
17458        (WebCore::GraphicsLayerCA::requiresTiledLayer):
17459        (WebCore::GraphicsLayerCA::setAllowTiledLayer): Deleted.
17460        * platform/graphics/ca/GraphicsLayerCA.h:
17461        (WebCore::GraphicsLayerCA::platformCALayer):
17462        (WebCore::GraphicsLayerCA::hasContentsLayer): Deleted.
17463        (WebCore::GraphicsLayerCA::allowTiledLayer): Deleted.
17464        (WebCore::GraphicsLayerCA::isGraphicsLayerCA): Deleted.
17465        (WebCore::GraphicsLayerCA::platformCALayerLayoutSublayersOfLayer): Deleted.
17466        (WebCore::GraphicsLayerCA::platformCALayerRespondsToLayoutChanges): Deleted.
17467        (WebCore::GraphicsLayerCA::platformCALayerContentsOrientation): Deleted.
17468        (WebCore::GraphicsLayerCA::platformCALayerShowDebugBorders): Deleted.
17469        (WebCore::GraphicsLayerCA::platformCALayerIncrementRepaintCount): Deleted.
17470        (WebCore::GraphicsLayerCA::platformCALayerContentsOpaque): Deleted.
17471        (WebCore::GraphicsLayerCA::platformCALayerDrawsContent): Deleted.
17472        (WebCore::GraphicsLayerCA::platformCALayerLayerDidDisplay): Deleted.
17473
174742014-04-18  Timothy Hatcher  <timothy@apple.com>
17475
17476        Web Inspector: Move InspectorProfilerAgent to JavaScriptCore
17477        https://bugs.webkit.org/show_bug.cgi?id=131673
17478
17479        Passes existing profiler and inspector tests.
17480
17481        Reviewed by Joseph Pecoraro.
17482
17483        * CMakeLists.txt:
17484        * DerivedSources.make:
17485        * ForwardingHeaders/inspector/agents/InspectorProfilerAgent.h: Added.
17486        * WebCore.exp.in:
17487        * WebCore.vcxproj/WebCore.vcxproj:
17488        * WebCore.vcxproj/WebCore.vcxproj.filters:
17489        * WebCore.xcodeproj/project.pbxproj:
17490        * bindings/js/ScriptProfile.cpp: Removed.
17491        * bindings/js/ScriptProfile.h:
17492        * bindings/js/ScriptProfiler.cpp: Removed.
17493        * bindings/js/ScriptProfiler.h: Removed.
17494        * inspector/InspectorAllInOne.cpp:
17495        * inspector/InspectorConsoleInstrumentation.h:
17496        (WebCore::InspectorInstrumentation::profilerEnabled):
17497        (WebCore::InspectorInstrumentation::startProfiling):
17498        (WebCore::InspectorInstrumentation::stopProfiling):
17499        * inspector/InspectorController.cpp:
17500        (WebCore::InspectorController::InspectorController):
17501        * inspector/InspectorController.h:
17502        * inspector/InspectorInstrumentation.cpp:
17503        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
17504        (WebCore::InspectorInstrumentation::startProfilingImpl):
17505        (WebCore::InspectorInstrumentation::stopProfilingImpl):
17506        (WebCore::InspectorInstrumentation::consoleTimeStampImpl): Deleted.
17507        * inspector/InspectorInstrumentation.h:
17508        * inspector/InspectorProfilerAgent.cpp: Removed.
17509        * inspector/InspectorProfilerAgent.h: Removed.
17510        * inspector/InspectorTimelineAgent.cpp:
17511        (WebCore::startProfiling):
17512        (WebCore::stopProfiling):
17513        (WebCore::InspectorTimelineAgent::willCallFunction):
17514        (WebCore::InspectorTimelineAgent::didCallFunction):
17515        (WebCore::InspectorTimelineAgent::willEvaluateScript):
17516        (WebCore::InspectorTimelineAgent::didEvaluateScript):
17517        (WebCore::InspectorTimelineAgent::didDispatchXHRLoadEvent): Deleted.
17518        * inspector/InstrumentingAgents.h:
17519        (WebCore::InstrumentingAgents::inspectorProfilerAgent):
17520        (WebCore::InstrumentingAgents::setInspectorProfilerAgent):
17521        * inspector/PageDebuggerAgent.cpp:
17522        (WebCore::PageDebuggerAgent::sourceMapURLForScript): Deleted.
17523        * inspector/PageDebuggerAgent.h:
17524        * inspector/PageProfilerAgent.cpp: Added.
17525        (WebCore::PageProfilerAgent::PageProfilerAgent):
17526        (WebCore::PageProfilerAgent::profilingGlobalExecState):
17527        * inspector/PageProfilerAgent.h: Added.
17528        (WebCore::PageProfilerAgent::~PageProfilerAgent):
17529        * inspector/ScriptProfile.idl:
17530        * inspector/TimelineRecordFactory.cpp:
17531        (WebCore::TimelineRecordFactory::appendProfile):
17532        * inspector/TimelineRecordFactory.h:
17533        * inspector/WebConsoleAgent.cpp:
17534        * inspector/WebProfilerAgent.cpp: Added.
17535        (WebCore::WebProfilerAgent::WebProfilerAgent):
17536        (WebCore::WebProfilerAgent::enable):
17537        (WebCore::WebProfilerAgent::disable):
17538        * inspector/WebProfilerAgent.h: Added.
17539        (WebCore::WebProfilerAgent::~WebProfilerAgent):
17540        * inspector/WorkerInspectorController.cpp:
17541        (WebCore::WorkerInspectorController::WorkerInspectorController):
17542        * inspector/WorkerProfilerAgent.cpp: Added.
17543        (WebCore::WorkerProfilerAgent::WorkerProfilerAgent):
17544        (WebCore::WorkerProfilerAgent::profilingGlobalExecState):
17545        * inspector/WorkerProfilerAgent.h: Added.
17546        (WebCore::WorkerProfilerAgent::~WorkerProfilerAgent):
17547        * loader/appcache/ApplicationCacheGroup.cpp:
17548        * page/PageConsole.cpp:
17549        (WebCore::PageConsole::profile):
17550        (WebCore::PageConsole::profileEnd):
17551        (WebCore::PageConsole::time): Deleted.
17552        (WebCore::PageConsole::timeEnd): Deleted.
17553        (WebCore::PageConsole::timeStamp): Deleted.
17554        * page/PageConsole.h:
17555        * testing/Internals.cpp:
17556        * testing/Internals.h:
17557        * xml/XMLHttpRequest.cpp:
17558
175592014-04-18  Simon Fraser  <simon.fraser@apple.com>
17560
17561        Contents of directly composited image layers are sometimes missing
17562        https://bugs.webkit.org/show_bug.cgi?id=131880
17563
17564        Reviewed by Tim Horton.
17565        
17566        RenderLayerBacking::updateGraphicsLayerGeometry() tested whether a
17567        GraphicsLayer had a contents layer to determine whether to call code
17568        that updates the contents rect. However, on Mac, we don't make a contents
17569        layer until later at layer flush time. That would result in an empty
17570        contentsRect being set.
17571        
17572        Fix by renaming GraphicsLayer::hasContentsLayer() to usesContentsLayer(),
17573        and on Mac consulting the m_contentsLayerPurpose flag, which is set
17574        at the appropriate time.
17575
17576        Test: compositing/images/update-content-rect.html
17577
17578        * platform/ScrollView.cpp:
17579        (WebCore::positionScrollbarLayer):
17580        * platform/graphics/GraphicsLayer.cpp:
17581        (WebCore::GraphicsLayer::getDebugBorderInfo):
17582        * platform/graphics/GraphicsLayer.h:
17583        (WebCore::GraphicsLayer::usesContentsLayer):
17584        (WebCore::GraphicsLayer::hasContentsLayer): Deleted.
17585        * platform/graphics/ca/GraphicsLayerCA.h:
17586        (WebCore::GraphicsLayerCA::hasContentsLayer): Deleted.
17587        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
17588        (WebCore::GraphicsLayerTextureMapper::usesContentsLayer):
17589        (WebCore::GraphicsLayerTextureMapper::hasContentsLayer): Deleted.
17590        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
17591        * rendering/RenderLayerBacking.cpp:
17592        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
17593        (WebCore::RenderLayerBacking::positionOverflowControlsLayers):
17594        (WebCore::RenderLayerBacking::compositingLayerType):
17595
175962014-04-18  Commit Queue  <commit-queue@webkit.org>
17597
17598        Unreviewed, rolling out r167527.
17599        https://bugs.webkit.org/show_bug.cgi?id=131883
17600
17601        Broke 32-bit build (Requested by ap on #webkit).
17602
17603        Reverted changeset:
17604
17605        "[Mac] implement WebKitDataCue"
17606        https://bugs.webkit.org/show_bug.cgi?id=131799
17607        http://trac.webkit.org/changeset/167527
17608
176092014-04-18  Eric Carlson  <eric.carlson@apple.com>
17610
17611        [Mac] implement WebKitDataCue
17612        https://bugs.webkit.org/show_bug.cgi?id=131799
17613
17614        Reviewed by Dean Jackson.
17615
17616        Tests: http/tests/media/track-in-band-hls-metadata.html
17617               media/track/track-datacue-value.html
17618
17619        * Configurations/FeatureDefines.xcconfig: Define ENABLE_DATACUE_VALUE.
17620        * DerivedSources.make: Add ENABLE_DATACUE_VALUE to HTML_FLAGS when appropriate.
17621
17622        * CMakeLists.txt: Add JSDataCueCustom.cpp.
17623        * bindings/js/JSBindingsAllInOne.cpp:
17624        * WebCore.xcodeproj/project.pbxproj: Add new files.
17625
17626        * bindings/js/JSDataCueCustom.cpp: Added.
17627        (WebCore::JSDataCue::value): 
17628        (WebCore::JSDataCue::setValue):
17629        (WebCore::JSDataCueConstructor::constructJSDataCue): Custom constructor.
17630
17631        * html/HTMLMediaElement.cpp:
17632        (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Drive-by fixes: don't schedule timeupdate
17633            events when paused, don't call sort on an Vector that can't be sorted.
17634
17635        * html/track/DataCue.cpp:
17636        (WebCore::DataCue::DataCue): Initialize m_type.
17637        (WebCore::DataCue::~DataCue): Unprotect the JSValue if necessary.
17638        (WebCore::DataCue::data): Ask the platform value for data if non-null.
17639        (WebCore::DataCue::setData): Clear m_platformValue and m_value.
17640        (WebCore::DataCue::isEqual): New.
17641        (WebCore::DataCue::value): Return a JSValue from the platform value, or the value passed
17642            to the constructor/set by script.
17643        (WebCore::DataCue::setValue): Set m_value.
17644        * html/track/DataCue.h:
17645        * html/track/DataCue.idl:
17646
17647        * html/track/InbandDataTextTrack.cpp:
17648        (WebCore::InbandDataTextTrack::addDataCue): Don't add the same cue more than once.
17649        (WebCore::InbandDataTextTrack::updateDataCue): Update a cue's duration.
17650        (WebCore::InbandDataTextTrack::removeDataCue): Remove an incomplete cue.
17651        (WebCore::InbandDataTextTrack::removeCue): Remove a cue from the incomplete cue map if necessary.
17652        * html/track/InbandDataTextTrack.h:
17653
17654        * html/track/InbandGenericTextTrack.cpp:
17655        (WebCore::InbandGenericTextTrack::addGenericCue): CueMatchRules is now in TextTrackCue instead
17656            of VTTCue.
17657        * html/track/InbandTextTrack.h:
17658
17659        * html/track/InbandWebVTTTextTrack.cpp:
17660        (WebCore::InbandWebVTTTextTrack::newCuesParsed): Ditto.
17661
17662        * html/track/TextTrack.cpp:
17663        (WebCore::TextTrack::hasCue): Ditto.
17664        * html/track/TextTrack.h:
17665
17666        * html/track/TextTrackCue.cpp:
17667        (WebCore::TextTrackCue::isEqual): New, test base class equality.
17668        * html/track/TextTrackCue.h:
17669
17670        * html/track/TextTrackCueGeneric.cpp:
17671        (WebCore::TextTrackCueGeneric::isEqual): Call TextTrackCue::isEqual first.
17672        * html/track/TextTrackCueGeneric.h:
17673
17674        * html/track/VTTCue.cpp:
17675        (WebCore::VTTCue::isEqual): Call TextTrackCue::isEqual first.
17676        * html/track/VTTCue.h:
17677
17678        * platform/SerializedPlatformRepresentation.h: Added.
17679        (WebCore::SerializedPlatformRepresentation::~SerializedPlatformRepresentation):
17680        (WebCore::SerializedPlatformRepresentation::SerializedPlatformRepresentation):
17681
17682        * platform/graphics/InbandTextTrackPrivateClient.h: Add methods for DataCue with SerializedPlatformRepresentation.
17683
17684        * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp: Added.
17685        (WebCore::InbandMetadataTextTrackPrivateAVF::create):
17686        (WebCore::InbandMetadataTextTrackPrivateAVF::InbandMetadataTextTrackPrivateAVF):
17687        (WebCore::InbandMetadataTextTrackPrivateAVF::~InbandMetadataTextTrackPrivateAVF):
17688        (WebCore::InbandMetadataTextTrackPrivateAVF::addDataCue):
17689        (WebCore::InbandMetadataTextTrackPrivateAVF::updatePendingCueEndTimes):
17690        (WebCore::InbandMetadataTextTrackPrivateAVF::flushPartialCues):
17691        * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h: Added.
17692
17693        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
17694        (WebCore::MediaPlayerPrivateAVFoundation::seekWithTolerance): currentTrack -> currentTextTrack.
17695        (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Ditto.
17696        (WebCore::MediaPlayerPrivateAVFoundation::configureInbandTracks): Ditto.
17697        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
17698        (WebCore::MediaPlayerPrivateAVFoundation::setCurrentTextTrack):
17699        (WebCore::MediaPlayerPrivateAVFoundation::setCurrentTrack): Deleted.
17700
17701        Renamed currentTrack and setCurrentTrack to currentTextTrack and setCurrentTextTrack.
17702        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
17703        (WebCore::AVFWrapper::currentTextTrack):
17704        (WebCore::MediaPlayerPrivateAVFoundationCF::setCurrentTextTrack):
17705        (WebCore::MediaPlayerPrivateAVFoundationCF::currentTextTrack):
17706        (WebCore::AVFWrapper::setCurrentTextTrack):
17707        (WebCore::AVFWrapper::AVFWrapper):
17708        (WebCore::AVFWrapper::processCue):
17709        (WebCore::AVFWrapper::currentTrack): Deleted.
17710        (WebCore::MediaPlayerPrivateAVFoundationCF::setCurrentTrack): Deleted.
17711        (WebCore::MediaPlayerPrivateAVFoundationCF::currentTrack): Deleted.
17712        (WebCore::AVFWrapper::setCurrentTrack): Deleted.
17713        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
17714
17715        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
17716        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
17717        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
17718        (WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime): currentTrack -> currentTextTrack
17719        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): currentTrack -> currentTextTrack.
17720        (WebCore::MediaPlayerPrivateAVFoundationObjC::processMetadataTrack): New.
17721        (WebCore::MediaPlayerPrivateAVFoundationObjC::processCue): m_currentTrack -> m_currentTextTrack.
17722        (WebCore::MediaPlayerPrivateAVFoundationObjC::flushCues): Ditto.
17723        (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTextTrack): Renamed from setCurrentTextTrack.
17724        (WebCore::metadataType): Map an AVFoundation metadata key space to a metadata cue type.
17725        (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive): Process new metadata.
17726        (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
17727        (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Deleted.
17728
17729        Create a JSValue representation from an AVMetadataItem.
17730        * platform/mac/SerializedPlatformRepresentationMac.h: Added.
17731        (WebCore::SerializedPlatformRepresentationMac::platformType):
17732        (WebCore::SerializedPlatformRepresentationMac::nativeValue):
17733        * platform/mac/SerializedPlatformRepresentationMac.mm: Added.
17734        (WebCore::SerializedPlatformRepresentationMac::SerializedPlatformRepresentationMac):
17735        (WebCore::SerializedPlatformRepresentationMac::~SerializedPlatformRepresentationMac):
17736        (WebCore::SerializedPlatformRepresentationMac::create):
17737        (WebCore::SerializedPlatformRepresentationMac::data):
17738        (WebCore::SerializedPlatformRepresentationMac::deserialize):
17739        (WebCore::SerializedPlatformRepresentationMac::isEqual):
17740        (WebCore::toSerializedPlatformRepresentationMac):
17741        (WebCore::jsValueWithValueInContext):
17742        (WebCore::jsValueWithDataInContext):
17743        (WebCore::jsValueWithArrayInContext):
17744        (WebCore::jsValueWithDictionaryInContext):
17745        (WebCore::jsValueWithAVMetadataItemInContext):
17746
177472014-04-18  Jon Honeycutt  <jhoneycutt@apple.com>
17748
17749        Harden RenderInline::inlineElementContinuation()
17750
17751        <https://bugs.webkit.org/show_bug.cgi?id=131858>
17752
17753        Reviewed by Sam Weinig.
17754
17755        No new tests, as there are no known cases of this happening.
17756
17757        * rendering/RenderInline.cpp:
17758        (WebCore::RenderInline::inlineElementContinuation):
17759        Return nullptr if the continuation is neither a RenderInline nor a
17760        RenderBlock.
17761
177622014-04-18  Stephanie Lewis  <slewis@apple.com>
17763
17764        We shouldn’t create page throttlers for other pages than WebKit2 pages.
17765        Part of <rdar://problem/16473045> Visibility state counters are often incorrect
17766        https://bugs.webkit.org/show_bug.cgi?id=131696
17767
17768        Reviewed by Gavin Barraclough.
17769
17770        No new test since not web exposed.
17771
17772        Page throttlers were being created for SVG images and other page instances that
17773        were not accurately tracking the states that enable and disable page throttling.
17774        Make the throttler an unique ptr and only initialize it for WebKit2.
17775
17776        This also fixes an inefficiency where we would throttle a new page on creation because 
17777        we assumed it was visible even if that was not the case.
17778
17779        * WebCore.exp.in:
17780        * html/HTMLMediaElement.cpp:
17781        (WebCore::HTMLMediaElement::parseAttribute): Check page throttler exists.
17782        * loader/FrameLoader.cpp:
17783        (WebCore::FrameLoader::started): ditto
17784        * page/Page.cpp:
17785        (WebCore::Page::Page): Don’t automatically create page throttler.
17786        (WebCore::Page::createPageThrottler): Create page throttler.
17787        (WebCore::Page::setViewState): Check page throttler exists.
17788        * page/Page.h:
17789        (WebCore::Page::pageThrottler): Make the page throttler a unique ptr.
17790        * page/PageThrottler.h:
17791        * page/Settings.cpp: 
17792        (WebCore::Settings::setHiddenPageDOMTimerThrottlingEnabled): Check page throttler exists.
17793
177942014-04-18  Stephanie Lewis  <slewis@apple.com>
17795
17796        Move DOM throttling out of the page throttler
17797        <rdar://problem/16473004>
17798        https://bugs.webkit.org/show_bug.cgi?id=131697
17799
17800        Reviewed by Gavin Barraclough.
17801
17802        No new tests since it's not web exposed.
17803
17804        DOM timer throttling is currently part of the page throttler which uses per process 
17805        state and per page state to determine when to throttle.  This led us to being overly 
17806        conservative when turning DOM throttling off.  It should only respond to view state changes.
17807
17808        Additionally since creating extra page throttlers SVG images caused bugs 
17809        in tracking state we'll reserve the page throttler for WebKit2 views.  To avoid regressing 
17810        WebKit1 we should move DOM timer throttling back to the page.
17811
17812        * page/Page.cpp:
17813        (WebCore::Page::Page): set DOM timer throttling.
17814        (WebCore::Page::setIsVisuallyIdleInternal): ditto.
17815        (WebCore::Page::hiddenPageDOMTimerThrottlingStateChanged): ditto.
17816        (WebCore::Page::setIsVisible): Update view state masks for WebKit1 to include IsVisibleOrOccluded and IsVisuallyIdle
17817        * page/Page.h:
17818        * page/PageThrottler.cpp:
17819        (WebCore::PageThrottler::PageThrottler): remove DOM timer throttling.
17820        (WebCore::PageThrottler::started): ditto.
17821        (WebCore::PageThrottler::stopped): ditto.
17822        (WebCore::PageThrottler::hiddenPageDOMTimerThrottlingStateChanged): Deleted.
17823        * page/PageThrottler.h:
17824        * page/Settings.cpp:
17825        (WebCore::Settings::setHiddenPageDOMTimerThrottlingEnabled):
17826
178272014-04-18  Dean Jackson  <dino@apple.com>
17828
17829        [WebGL] Limit maximum texture sizes on older Intel hardware
17830        https://bugs.webkit.org/show_bug.cgi?id=131867
17831
17832        Reviewed by Geoffrey Garen.
17833
17834        Both Chrome and Firefox limit the MAX_TEXTURE_SIZE on
17835        older Intel hardware to be at most 4096. This does the
17836        same for WebKit.
17837
17838        * platform/graphics/Extensions3D.h: Add requiresRestrictedMaximumTextureSize() accessor.
17839        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
17840        (WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon): Record the value of GL_RENDERER
17841        and test for "Intel HD Graphics 3000", which is the problematic hardware.
17842        * platform/graphics/opengl/Extensions3DOpenGLCommon.h:
17843        (WebCore::Extensions3DOpenGLCommon::requiresRestrictedMaximumTextureSize): Getter.
17844        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
17845        (WebCore::GraphicsContext3D::getIntegerv): If you're asking for MAX_TEXTURE_SIZE or
17846        MAX_CUBE_MAP_TEXTURE_SIZE, and you're on problematic hardware, return a clamped value
17847        (4096 and 1024 respectively).
17848
178492014-04-18  Hans Muller  <hmuller@adobe.com>
17850
17851        [CSS Shapes] Add parsing support for gradients
17852        https://bugs.webkit.org/show_bug.cgi?id=131444
17853
17854        Reviewed by Bem Jones-Bey.
17855
17856        Added support for shape-outside gradient values.
17857
17858        Test: fast/shapes/shape-outside-floats/shape-outside-linear-gradient.html
17859
17860        * css/DeprecatedStyleBuilder.cpp:
17861        (WebCore::ApplyPropertyShape::applyValue): Accept generated images as shape-outside values.
17862        * rendering/shapes/ShapeOutsideInfo.cpp:
17863        (WebCore::checkShapeImageOrigin): Generated images get a pass, others do not.
17864        (WebCore::getShapeImageAndRect): Use StyleImage::image() to get a generated image.
17865        (WebCore::ShapeOutsideInfo::isEnabledFor):
17866        * rendering/style/ShapeValue.h:
17867        (WebCore::ShapeValue::isImageValid): Generated images are always considered valid.
17868
178692014-04-18  Brady Eidson  <beidson@apple.com>
17870
17871        REGRESSION (r155700): Pasting an image into content-editable regions is broken.
17872        <rdar://problem/16654156> and https://bugs.webkit.org/show_bug.cgi?id=131844
17873
17874        Reviewed by Enrica Casucci.
17875
17876        * editing/mac/EditorMac.mm:
17877        (WebCore::Editor::createFragmentForImageResourceAndAddResource): Add the ArchiveResource before
17878          creating the element that uses it.
17879
178802014-04-18  Simon Fraser  <simon.fraser@apple.com>
17881
17882        [iOS WK2] Make window.scroll() and window.scrollBy() work
17883        https://bugs.webkit.org/show_bug.cgi?id=131848
17884        <rdar://problem/16638319>
17885
17886        Reviewed by Beth Dakin.
17887
17888        The scrolling-related functions in DOMWindow were #ifdeffed for iOS
17889        to use the hacky WK1-specific "actual scroll" functions, which do nothing
17890        in WK2.
17891        
17892        Fix by adding a scroll position wrapper (contentsScrollPosition) which does
17893        the right thing on WK1 and WK2, and change almost all the places that used "actualScrollPosition"
17894        to us it (with the exception of contentsScrollOffset() in MouseRelatedEvent.cpp, which has
17895        confusing scaling behavior).
17896
17897        * dom/MouseRelatedEvent.cpp:
17898        (WebCore::MouseRelatedEvent::MouseRelatedEvent):
17899        * dom/TreeScope.cpp:
17900        (WebCore::nodeFromPoint): Remove #ifdefs. 
17901        * html/HTMLBodyElement.cpp:
17902        (WebCore::HTMLBodyElement::scrollLeft):
17903        (WebCore::HTMLBodyElement::scrollTop):
17904        * page/DOMWindow.cpp:
17905        (WebCore::DOMWindow::scrollX):
17906        (WebCore::DOMWindow::scrollY):
17907        (WebCore::DOMWindow::scrollBy):
17908        (WebCore::DOMWindow::scrollTo):
17909        * platform/ScrollView.cpp:
17910        (WebCore::ScrollView::contentsScrollPosition):
17911        (WebCore::ScrollView::setContentsScrollPosition):
17912        * platform/ScrollView.h:
17913
179142014-04-18  Simon Fraser  <simon.fraser@apple.com>
17915
17916        Worse animation performance on pages with 3D transforms
17917        https://bugs.webkit.org/show_bug.cgi?id=131838
17918        <rdar://problem/16428630&15705876>
17919
17920        Reviewed by Dean Jackson.
17921        
17922        r155977 added logic to adjust the contentsScale of compositing layers
17923        based on a root-relative transform. However, this resulted in
17924        the contentsScale continually changing on layers whose transforms
17925        are changed dynamically, which caused lots of expensive painting.
17926        
17927        Fix by bucketing the part of the scale computed from the root-relative transform
17928        into buckets of 0.25 via rounding.
17929
17930        Test: compositing/contents-scale/rounded-contents-scale.html
17931
17932        * platform/graphics/ca/GraphicsLayerCA.cpp:
17933        (WebCore::clampedContentsScaleForScale):
17934        (WebCore::GraphicsLayerCA::updateContentsOpaque):
17935        (WebCore::GraphicsLayerCA::updateContentsScale):
17936        (WebCore::GraphicsLayerCA::updateContentsVisibility): Deleted.
17937        (WebCore::GraphicsLayerCA::animatedLayerClones): Deleted.
17938
179392014-04-18  Simon Fraser  <simon.fraser@apple.com>
17940
17941        Remove some includes from image-related headers, and Document.h
17942        https://bugs.webkit.org/show_bug.cgi?id=131797
17943
17944        Reviewed by Martin Robinson.
17945
17946        Remove some #includes from Document.h, DragImage.h, GradientImage.h,
17947        Image.h, and ImageBuffer.h and deal with the fallout.
17948
17949        * dom/ContainerNode.h:
17950        * dom/Document.cpp:
17951        (WebCore::Document::setInputCursor):
17952        * dom/Document.h:
17953        (WebCore::Document::inputCursor):
17954        * dom/MutationObserverRegistration.cpp:
17955        * html/canvas/WebGLRenderingContext.cpp:
17956        * page/FrameSnapshotting.cpp:
17957        * page/Page.cpp:
17958        * platform/DragImage.h:
17959        * platform/graphics/BitmapImage.cpp:
17960        * platform/graphics/GradientImage.cpp:
17961        (WebCore::GradientImage::GradientImage):
17962        (WebCore::GradientImage::~GradientImage):
17963        * platform/graphics/GradientImage.h:
17964        * platform/graphics/Image.h:
17965        * platform/graphics/ImageBuffer.cpp:
17966        * platform/graphics/ImageBuffer.h:
17967        (WebCore::ImageBuffer::create):
17968        (WebCore::ImageBuffer::internalSize):
17969        (WebCore::ImageBuffer::logicalSize):
17970        (WebCore::ImageBuffer::baseTransform):
17971        (WebCore::ImageBuffer::spaceSize):
17972        (WebCore::ImageBuffer::setSpaceSize):
17973        * rendering/RenderThemeMac.mm:
17974        * rendering/shapes/Shape.cpp:
17975        * rendering/svg/RenderSVGContainer.cpp:
17976        * svg/SVGURIReference.h:
17977
179782014-04-18  Gabor Rapcsanyi  <rgabor@webkit.org>
17979
17980        Unreviewed. ARM64 buildfix after r167473.
17981
17982        * platform/audio/DenormalDisabler.h: Put back the MathExtras.h include.
17983
179842014-04-18  Radu Stavila  <stavila@adobe.com>
17985
17986        [CSSRegions] Incorrect background paint on positioned element hover
17987        https://bugs.webkit.org/show_bug.cgi?id=131617
17988
17989        Reviewed by Andrei Bucur.
17990
17991        When computing the repaint rect for absolute elements flowed into regions, the Y location of the
17992        region within the flow thread must no longer be added to the repaint rect's location because absolute
17993        positioned elements get pushed down through the regions by their absolute top. So adding the region's
17994        position in the flow thread and then adding the element's absolute top would cause us to add
17995        something twice.
17996
17997        Tests: fast/regions/repaint/repaint-absolute-pushed-to-next-region.html
17998
17999        * rendering/RenderBox.cpp:
18000        (WebCore::RenderBox::computeRectForRepaint):
18001
180022014-04-18  Philippe Normand  <pnormand@igalia.com>
18003
18004        Remove NETWORK_INFO support
18005        https://bugs.webkit.org/show_bug.cgi?id=131841
18006
18007        Reviewed by Gyuyoung Kim.
18008
18009        * CMakeLists.txt:
18010        * Modules/networkinfo/NavigatorNetworkInfoConnection.cpp: Removed.
18011        * Modules/networkinfo/NavigatorNetworkInfoConnection.h: Removed.
18012        * Modules/networkinfo/NavigatorNetworkInfoConnection.idl: Removed.
18013        * Modules/networkinfo/NetworkInfo.cpp: Removed.
18014        * Modules/networkinfo/NetworkInfo.h: Removed.
18015        * Modules/networkinfo/NetworkInfoClient.h: Removed.
18016        * Modules/networkinfo/NetworkInfoConnection.cpp: Removed.
18017        * Modules/networkinfo/NetworkInfoConnection.h: Removed.
18018        * Modules/networkinfo/NetworkInfoConnection.idl: Removed.
18019        * Modules/networkinfo/NetworkInfoController.cpp: Removed.
18020        * Modules/networkinfo/NetworkInfoController.h: Removed.
18021        * PlatformEfl.cmake:
18022        * dom/EventTargetFactory.in:
18023        * platform/efl/NetworkInfoProviderEfl.cpp: Removed.
18024        * platform/efl/NetworkInfoProviderEfl.h: Removed.
18025        * testing/Internals.cpp:
18026        (WebCore::Internals::setNetworkInformation): Deleted.
18027        * testing/Internals.h:
18028        * testing/Internals.idl:
18029
180302014-04-17  Commit Queue  <commit-queue@webkit.org>
18031
18032        Unreviewed, rolling out r167478.
18033        https://bugs.webkit.org/show_bug.cgi?id=131840
18034
18035        Broke multicol tests (Requested by ap on #webkit).
18036
18037        Reverted changeset:
18038
18039        "[New Multicolumn] Pagination mode messed up with non-inline
18040        axis and reversed direction."
18041        https://bugs.webkit.org/show_bug.cgi?id=131811
18042        http://trac.webkit.org/changeset/167478
18043
180442014-04-17  Daniel Bates  <dabates@apple.com>
18045
18046        [iOS] Hook up screen.{availHeight, availWidth, height, width}
18047        https://bugs.webkit.org/show_bug.cgi?id=131821
18048        <rdar://problem/16413795>
18049
18050        Reviewed by Benjamin Poulain and Tim Horton.
18051
18052        Implement support for screen.{availHeight, availWidth, height, width} in WebKit2 for iOS.
18053
18054        Additionally substitute "screenSize" for "viewporScreenSize" to make the code more understandable.
18055
18056        * WebCore.exp.in: Export symbol for WebCore System Interface function
18057        _wkGetAvailableScreenSize.
18058        * dom/Document.cpp:
18059        (WebCore::Document::processViewport): Modified to call Chrome::screenSize(); formerly it
18060        called ChromeClient::viewportScreenSize().
18061        * page/Chrome.cpp:
18062        (WebCore::Chrome::screenSize): Added; turns around and calls ChromeClient::screenSize().
18063        (WebCore::Chrome::availableScreenSize): Added; turns around and calls ChromeClient::availableScreenSize().
18064        * page/Chrome.h:
18065        * page/ChromeClient.h:
18066        (WebCore::ChromeClient::screenSize): Renamed; formerly named viewportScreenSize.
18067        (WebCore::ChromeClient::availableScreenSize): Added; default implementation, which
18068        returns the size of Chrome::windowRect().
18069        * page/ViewportConfiguration.cpp:
18070        (WebCore::ViewportConfiguration::textDocumentParameters):
18071        * platform/HostWindow.h: Added declarations for availableScreenSize() and screenSize()
18072        so that a caller (e.g. WebCore::screenRect()) can query for such screen information using
18073        only the HostWindow interface. That is, a caller doesn't need to know about ChromeClient.
18074        * platform/ios/PlatformScreenIOS.mm:
18075        (WebCore::screenRect): Modified to query HostWindow::screenSize() when computing the
18076        screen rectangle in WebKit2 for iOS.
18077        (WebCore::screenAvailableRect): Modified to query HostWindow::availableScreenSize()
18078        when computing the available screen rectangle in WebKit2 for iOS.
18079        * platform/ios/WebCoreSystemInterfaceIOS.mm:
18080        * platform/mac/WebCoreSystemInterface.h:
18081
180822014-04-17  Darin Adler  <darin@apple.com>
18083
18084        origin spoofing possible (HTTP Origin, postMessage event.origin) due to inappropriate URL escape sequence decoding
18085        https://bugs.webkit.org/show_bug.cgi?id=131837
18086        rdar://problem/15211936
18087
18088        Reviewed by Anders Carlsson and Dave Hyatt.
18089
18090        Tests: fast/dom/DOMURL/parsing.html
18091               fast/dom/HTMLAnchorElement/anchor-element-href-parsing.html
18092
18093        * platform/URL.cpp:
18094        (WebCore::URL::host): Removed unnecessary call to decodeURLEscapeSequences, which caused
18095        problems and was not needed.
18096
180972014-04-17  David Hyatt  <hyatt@apple.com>
18098
18099        [New Multicolumn] Pagination mode messed up with non-inline axis and reversed direction.
18100        https://bugs.webkit.org/show_bug.cgi?id=131811
18101
18102        Reviewed by Dean Jackson.
18103
18104        Added fast/multicol/newmulticol/compare-with-old-impl/BottomToTop-tb.html
18105        
18106        With block axis pagination mode, it is possible to set a column height that is not the same
18107        as the available fill height for a block. The new multi-column code had the assumption that
18108        the column height was the same as the amount of fill room you had available. This is not
18109        the case.
18110        
18111        To correct the issue, I added a member variable to RenderMultiColumnSet that stores the
18112        available column height as a separate variable from the computed column height. This allows
18113        the pagination API to specify a different column height that is not the same as the view's
18114        content height.
18115
18116        Even though it isn't involved in the solution, I also patched pageOrViewLogicalHeight on
18117        RenderView to work with the new column code as well.
18118
18119        * rendering/RenderMultiColumnSet.cpp:
18120        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
18121        (WebCore::RenderMultiColumnSet::setAndConstrainColumnHeight):
18122        (WebCore::RenderMultiColumnSet::computeLogicalHeight):
18123        * rendering/RenderMultiColumnSet.h:
18124        * rendering/RenderView.cpp:
18125        (WebCore::RenderView::pageOrViewLogicalHeight):
18126
181272014-04-17  Anders Carlsson  <andersca@apple.com>
18128
18129        Build fix.
18130
18131        * svg/animation/SMILTime.h:
18132
181332014-04-17  Bem Jones-Bey  <bjonesbe@adobe.com>
18134
18135        Unreviewed, rolling out r167384.
18136
18137        Sounds like this isn't the right fix, and causes generation to
18138        run far too often.
18139
18140        Reverted changeset:
18141
18142        "Fix CodeGenerator.pm to only write files if the generated
18143        content has changed"
18144        https://bugs.webkit.org/show_bug.cgi?id=131756
18145        http://trac.webkit.org/changeset/167384
18146
181472014-04-17  Ryuan Choi  <ryuan.choi@samsung.com>
18148
18149        Remove unnecessary MathExtras.h includes
18150        https://bugs.webkit.org/show_bug.cgi?id=131789
18151
18152        Reviewed by Anders Carlsson.
18153
18154        * platform/FileSystem.h:
18155        * platform/Scrollbar.h:
18156        * platform/animation/AnimationUtilities.h:
18157        * platform/audio/DenormalDisabler.h:
18158        * platform/graphics/Font.h:
18159        * platform/graphics/IntPoint.h: Included cmath instad of MathExtras.h.
18160        * platform/graphics/LayoutPoint.h:
18161        * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
18162        * rendering/svg/SVGMarkerData.h:
18163        * svg/animation/SMILTime.h:
18164
181652014-04-16  Huang Dongsung  <luxtella@company100.net>
18166
18167        Make RenderLayerBacking get the timingFunction of the correct animation.
18168        https://bugs.webkit.org/show_bug.cgi?id=100632
18169
18170        Reviewed by Simon Fraser.
18171
18172        When an element has multiple animations that have different timingFunctions,
18173        the progress of each animation should be calculated using its respective
18174        timingFunction. But at this point, the timingFunction of the first animation is
18175        only used in RenderLayerBacking::startAnimation(), regardless of how many
18176        animations the element has.
18177
18178        getAnimationFromStyleByName() was introduced in r89462 so that the
18179        timingFunction of the correct animation searched by its name would be
18180        used. This patch moves the function to KeyframeValue::timingFunction()
18181        so that RenderLayerBacking reuses this method.
18182
18183        Test: animations/keyframe-multiple-timing-functions-transform.html
18184
18185        * page/animation/KeyframeAnimation.cpp:
18186        (WebCore::KeyframeAnimation::fetchIntervalEndpointsForProperty):
18187        * rendering/RenderLayerBacking.cpp:
18188        (WebCore::RenderLayerBacking::startAnimation):
18189        * rendering/style/KeyframeList.cpp:
18190        (WebCore::KeyframeValue::timingFunction):
18191        (WebCore):
18192        * rendering/style/KeyframeList.h:
18193        (WebCore):
18194        (KeyframeValue):
18195
181962014-04-17  Andreas Kling  <akling@apple.com>
18197
18198        Rollout: Add a way to cache never-changing IDL attributes in the wrapper.
18199        <https://webkit.org/b/131759>
18200
18201        This behavior may be observable from the web, so we can't do it this way.
18202
18203        * bindings/scripts/CodeGeneratorJS.pm:
18204        (GenerateImplementation):
18205        * bindings/scripts/IDLAttributes.txt:
18206        * bindings/scripts/test/*:
18207        * dom/Element.idl:
18208        * dom/Node.idl:
18209
182102014-04-17  Andreas Kling  <akling@apple.com>
18211
18212        Cheesy Mountain Lion build fix.
18213
18214        * platform/MemoryPressureHandler.h:
18215        (WebCore::MemoryPressureHandler::ReliefLogger::logString):
18216
182172014-04-17  David Hyatt  <hyatt@apple.com>
18218
18219        [New Multicolumn] Column rules don't respect the specified stacking order.
18220        https://bugs.webkit.org/show_bug.cgi?id=131804
18221
18222        Reviewed by Beth Dakin.
18223
18224        Added fast/multicol/newmulticol/compare_with_old_impl/column-rules-stacking.html
18225
18226        * rendering/RenderBlockFlow.cpp:
18227        (WebCore::RenderBlockFlow::paintBoxDecorations):
18228        * rendering/RenderBlockFlow.h:
18229        Override paintBoxDecorations for block flows so that we can iterate over our column sets
18230        and paint their rules just after painting our background and border. We can't wait until
18231        the child column sets paint their backgrounds, since that is specified as being above negative
18232        z-index children. We have to pretend that the column sets don't exist as
18233        far as column rule painting is concerned.
18234
18235        * rendering/RenderMultiColumnSet.cpp:
18236        (WebCore::RenderMultiColumnSet::paintObject): Deleted.
18237        * rendering/RenderMultiColumnSet.h:
18238        Turn paintObject in RenderMultiColumnSet into an override that doesn't paint anything.
18239
182402014-04-17  Beth Dakin  <bdakin@apple.com>
18241
18242        Hit-testing is incorrect for plugins inside iframes when there is a 
18243        topContentInset
18244        https://bugs.webkit.org/show_bug.cgi?id=131826
18245        -and corresponding-
18246        <rdar://problem/16649996>
18247
18248        Reviewed by Tim Horton.
18249
18250        I missed one coordinate-conversion spot when getting hit-testing to work. Like 
18251        headerHeight() which also manipulates the location of the root layer, 
18252        topContentInset() has to be factored into all of these conversions.
18253        * page/FrameView.cpp:
18254        (WebCore::FrameView::convertFromRenderer):
18255
182562014-04-17  Andreas Kling  <akling@apple.com>
18257
18258        Stub out MemoryPressureHandler::ReliefLogger on older OS X'es.
18259
18260        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
18261        (WebCore::MemoryPressureHandler::ReliefLogger::platformLog):
18262        (WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):
18263
182642014-04-17  Dirk Schulze  <krit@webkit.org>
18265
18266        Remove CANVAS_PATH where possible
18267        https://bugs.webkit.org/show_bug.cgi?id=131788
18268
18269        Reviewed by Dean Jackson.
18270
18271        Since Firefox and Chrome ship the same interoperable subset of Path2D soon, 
18272        it is time to remove CANVAS_PATH where possible.
18273
18274        * html/canvas/CanvasRenderingContext2D.cpp:
18275        (WebCore::CanvasRenderingContext2D::clip):
18276        (WebCore::CanvasRenderingContext2D::isPointInStroke):
18277        * html/canvas/CanvasRenderingContext2D.h:
18278        * html/canvas/CanvasRenderingContext2D.idl:
18279        * html/canvas/DOMPath.h:
18280        * html/canvas/DOMPath.idl:
18281
182822014-04-17  Brendan Long  <b.long@cablelabs.com>
18283
18284        [GStreamer] Store TrackPrivateBaseGStreamer's label and language as AtomicStrings
18285        https://bugs.webkit.org/show_bug.cgi?id=130404
18286
18287        Reviewed by Philippe Normand.
18288
18289        No new tests, this just makes things more efficient.
18290
18291        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
18292        (WebCore::TrackPrivateBaseGStreamer::getLanguageCode):
18293        (WebCore::TrackPrivateBaseGStreamer::getTag):
18294        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
18295
182962014-04-17  Andreas Kling  <akling@apple.com>
18297
18298        Fix Cocoa build.
18299
18300        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
18301        (WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):
18302
183032014-04-17  Rik Cabanier  <cabanier@adobe.com>
18304
18305        [CSS Blending] Remove the -webkit- prefix for mix-blend-mode and isolation CSS properties
18306        https://bugs.webkit.org/show_bug.cgi?id=131355
18307
18308        Reviewed by Dean Jackson.
18309
18310        Removed webkit prefix from mix-blend-mode and isolation. These properties
18311        never shipped and their spec is now in CR.
18312
18313        Covered by existing tests.
18314
18315        * css/CSSComputedStyleDeclaration.cpp:
18316        (WebCore::ComputedStyleExtractor::propertyValue):
18317        * css/CSSParser.cpp:
18318        (WebCore::isValidKeywordPropertyAndValue):
18319        (WebCore::isKeywordPropertyID):
18320        (WebCore::CSSParser::parseValue):
18321        * css/CSSPropertyNames.in:
18322        * css/DeprecatedStyleBuilder.cpp:
18323        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
18324
183252014-04-17  David Kilzer  <ddkilzer@apple.com>
18326
18327        Tidy up isIsolatedInline() and highestContainingIsolateWithinRoot()
18328        <http://webkit.org/b/131117>
18329
18330        Reviewed by Daniel Bates.
18331
18332        Based on review feedback for r166650.
18333
18334        * rendering/InlineIterator.h:
18335        (WebCore::isIsolatedInline):
18336        - Switch argument to a reference since it is never called with a
18337          nullptr.
18338        (WebCore::highestContainingIsolateWithinRoot):
18339        - Switch first argument to a reference since it's never a
18340          nullptr.
18341        - Use nullptr for pointer initialization.
18342        - Switch while() loop to for() loop. Pass reference to
18343          isIsolatedInline().
18344        (WebCore::numberOfIsolateAncestors):
18345        - Switch while() loop to for() loop. Pass reference to
18346          isIsolatedInline().
18347        * rendering/RenderBlockLineLayout.cpp:
18348        (WebCore::constructBidiRunsForSegment):
18349        - Rename startObj to startObject.
18350        - No longer need to pass the address of startObject here.
18351
183522014-04-17  Andreas Kling  <akling@apple.com>
18353
18354        Log number of bytes reclaimed at each step of memory pressure relief.
18355        <https://webkit.org/b/131751>
18356
18357        Reviewed by Antti Koivisto.
18358
18359        * platform/MemoryPressureHandler.h:
18360        * platform/MemoryPressureHandler.cpp:
18361        (WebCore::MemoryPressureHandler::ReliefLogger::platformLog):
18362        (WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):
18363        (WebCore::MemoryPressureHandler::ReliefLogger::ReliefLogger):
18364        (WebCore::MemoryPressureHandler::ReliefLogger::~ReliefLogger):
18365        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
18366        (WebCore::MemoryPressureHandlerCocoa::ReliefLogger::platformMemoryUsage):
18367        (WebCore::MemoryPressureHandlerCocoa::ReliefLogger::platformLog):
18368
18369            Add a simple RAII helper to check memory usage before and after
18370            a block of code, and then dump the delta to system log.
18371
18372        (WebCore::MemoryPressureHandler::releaseMemory):
18373        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
18374        (WebCore::MemoryPressureHandler::platformReleaseMemory):
18375
18376            Use ReliefLogger to annotate the various attempts to reduce
18377            our memory footprint. This will help us understand the efficiency
18378            of our current strategy.
18379
183802014-04-17  David Hyatt  <hyatt@apple.com>
18381
18382        [New Multicolumn] columnNumberForOffset is not patched for new multicolumn code yet.
18383        https://bugs.webkit.org/show_bug.cgi?id=131740
18384
18385        Reviewed by Enrica Casucci.
18386        
18387        I took the opportunity to clean this code up while adding support for the new columns.
18388        columnNumberForOffset only applied for paginated RenderViews and was really about
18389        pages and not columns. It also only returns an actual page number if the columns are
18390        block progressed (e.g., right-to-left vertical Japanese books).
18391        
18392        Therefore I renamed columnNumberForOffset to pageNumberForBlockProgressionOffset and
18393        moved it to RenderView.
18394        
18395        I also renamed the member variable of SelectionRect to be pageNumber instead of
18396        columnNumber in order to make it more obvious that this isn't about columns per se
18397        (since the fact that we implemented RenderView's pagination mode using columns is an
18398        implementation detail).
18399
18400        * dom/Range.cpp:
18401        (WebCore::coalesceSelectionRects):
18402        (WebCore::Range::collectSelectionRects):
18403        * platform/ios/SelectionRect.h:
18404        (WebCore::SelectionRect::pageNumber):
18405        (WebCore::SelectionRect::columnNumber): Deleted.
18406        * rendering/RenderImage.cpp:
18407        (WebCore::RenderImage::collectSelectionRects):
18408        * rendering/RenderObject.cpp:
18409        (WebCore::RenderObject::collectSelectionRects):
18410        (WebCore::RenderObject::columnNumberForOffset): Deleted.
18411        * rendering/RenderObject.h:
18412        * rendering/RenderText.cpp:
18413        (WebCore::RenderText::collectSelectionRects):
18414        * rendering/RenderView.cpp:
18415        (WebCore::RenderView::pageNumberForBlockProgressionOffset):
18416        * rendering/RenderView.h:
18417
184182014-04-16  Brent Fulgham  <bfulgham@apple.com>
18419
18420        [Win] A few final cleanups to the DataObject classes.
18421        https://bugs.webkit.org/show_bug.cgi?id=131784
18422
18423        Reviewed by Anders Carlsson.
18424
18425        * platform/win/WCDataObject.cpp:
18426        (WebCore::WCDataObject::clearData): Use 'last()' method.
18427
184282014-04-15  Jer Noble  <jer.noble@apple.com>
18429
18430        Fullscreen media controls are unusable in pagination mode
18431        https://bugs.webkit.org/show_bug.cgi?id=131705
18432
18433        Reviewed by Darin Adler.
18434
18435        When pagination mode is enabled, the full screen media will (depending on the width of the
18436        pagination columns) overflow its column, and hit testing will be clipped to the column. In extreme
18437        cases, where the column width < 0.5 * media element width, the media controls will be entirely
18438        unclickable.
18439
18440        Rather than making the RenderFullScreen a child of the full screen element's parent's renderer,
18441        make it a child of the RenderView, putting it outside of the columns entirely. Always create and
18442        insert the fullscreenRenderer's placeholder, using it as the remembered insertion point for the
18443        fullscreen element's renderer when we exit full screen.
18444
18445        Drive-by fix: don't wrap the full screen element's renderer in webkitWillEnterFullScreenForElement();
18446        it will just be re-wrapped in createRendererIfNeeded().
18447
18448        * dom/Document.cpp:
18449        (WebCore::Document::webkitWillEnterFullScreenForElement): Don't wrap the full screen element's renderer.
18450        (WebCore::Document::setFullScreenRenderer): Call setPlaceholderStyle.
18451        * rendering/RenderFullScreen.cpp:
18452        (WebCore::RenderFullScreenPlaceholder::willBeDestroyed): Call clearPlaceholder.
18453        (WebCore::RenderFullScreen::wrapRenderer): Make fullscreenRenderer a child of the view().
18454        (WebCore::RenderFullScreen::unwrapRenderer): Return the children to the parent of the placeholder().
18455        (WebCore::RenderFullScreen::clearPlaceholder): Renamed from setPlaceholder().
18456        (WebCore::RenderFullScreen::ensurePlaceholder): Added. 
18457        (WebCore::RenderFullScreen::setPlaceholderStyle): Renamed from createPlaceholder().
18458        (WebCore::RenderFullScreen::setPlaceholder): Deleted.
18459        (WebCore::RenderFullScreen::createPlaceholder): Deleted.
18460        * rendering/RenderFullScreen.h:
18461
184622014-04-16  Jer Noble  <jer.noble@apple.com>
18463
18464        [MSE] Multiple initialization segments with same codecs in tracks fail validation.
18465        https://bugs.webkit.org/show_bug.cgi?id=131768
18466
18467        Additional initialization segments added to the same SourceBuffer with the same
18468        codec values will fail validation. Update the validation check to add the correct
18469        codec information for the initial segment, and check against the correct codecs during
18470        the validation step.
18471
18472        Additionally, after validation, if successful update the Audio, Video, and TextTracks
18473        for the SourceBuffer with the updated initialization segment information.
18474
18475        Reviewed by Eric Carlson.
18476
18477        Test: media/media-source/media-source-multiple-initialization-segments.html
18478
18479        * Modules/mediasource/SourceBuffer.cpp:
18480        (WebCore::SourceBuffer::appendBufferTimerFired): m_source may have been cleared
18481            as a result of the append, so check it before using.
18482        (WebCore::SourceBuffer::sourceBufferPrivateDidEndStream): Call streamEndedWithError
18483            instead of endOfStream as the latter is safe to call within an update.
18484        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment): Ditto.
18485            Update the track lists if validation succeeds.
18486        (WebCore::SourceBuffer::validateInitializationSegment): Switch the audio and video
18487            codec checks.
18488
18489        Add the ability for Audio, Video, and InbandTextTracks to replace their private tracks:
18490        * html/track/AudioTrack.cpp:
18491        (WebCore::AudioTrack::AudioTrack): Call updateKindFromPrivate().
18492        (WebCore::AudioTrack::setPrivate):
18493        (WebCore::AudioTrack::updateKindFromPrivate): Split out from constructor.
18494        * html/track/AudioTrack.h:
18495        * html/track/InbandTextTrack.cpp:
18496        (WebCore::InbandTextTrack::InbandTextTrack): Call updateKindFromPrivate().
18497        (WebCore::InbandTextTrack::setPrivate):
18498        (WebCore::InbandTextTrack::setMode): Split up into setModeInternal().
18499        (WebCore::InbandTextTrack::setModeInternal): Broke out from setMode().
18500        (WebCore::InbandTextTrack::updateKindFromPrivate): Split out from constructor.
18501        * html/track/InbandTextTrack.h:
18502        * html/track/TextTrack.h:
18503        (WebCore::TextTrack::isInband): Added, returns false.
18504        * html/track/VideoTrack.cpp:
18505        (WebCore::VideoTrack::VideoTrack): Call updateKindFromPrivate().
18506        (WebCore::VideoTrack::setPrivate):
18507        (WebCore::VideoTrack::updateKindFromPrivate):  Split out from constructor.
18508        * html/track/VideoTrack.h:
18509
185102014-04-17  David Hyatt  <hyatt@apple.com>
18511
18512        [New Multicolumn] Column sets below spanners don't repaint properly.
18513        https://bugs.webkit.org/show_bug.cgi?id=131778
18514
18515        Reviewed by Beth Dakin.
18516
18517        Added fast/repaint/spanner-with-margins.html.
18518
18519        * rendering/RenderBox.cpp:
18520        (WebCore::RenderBox::computeRectForRepaint):
18521        Turn off some code that was running for in-flow RenderFlowThreads that made no sense.
18522        I'm not convinced the code is right for other types of RenderFlowThreads either,
18523        but will leave that to the named flow thread experts. :)
18524
185252014-04-17  Koji Ishii  <kojishi@gmail.com>
18526
18527        Catch up ruby and its tag omission rule changes in HTML5 CR Feb 2014
18528        https://bugs.webkit.org/show_bug.cgi?id=131175
18529
18530        Reviewed by Darin Adler.
18531
18532        Tests: html5lib/resources/ruby.dat
18533               html5lib/resources/tests19.dat
18534
18535        This patch makes WebKit HTML parser to match to the tag omission rules of HTML5 CR Feb 2014:
18536        http://www.w3.org/TR/2014/CR-html5-20140204/syntax.html#syntax-tag-omission
18537        with the support for two new elements (rb, rtc) which were also defined in the spec:
18538        http://www.w3.org/TR/2014/CR-html5-20140204/text-level-semantics.html#the-rb-element
18539        http://www.w3.org/TR/2014/CR-html5-20140204/text-level-semantics.html#the-rtc-element
18540        to better support use cases presented by W3C I18N WG:
18541        http://www.w3.org/TR/ruby-use-cases/
18542
18543        * html/HTMLTagNames.in: rb and rtc added as HTMLElement interfaces.
18544        * html/parser/HTMLConstructionSite.cpp:
18545        (WebCore::hasImpliedEndTag): the spec says rb and rtc have implied end tags.
18546        * html/parser/HTMLTreeBuilder.cpp:
18547        (WebCore::HTMLTreeBuilder::processStartTagForInBody): rb and rtc added. rt excludes rtc from its implied end tags.
18548
185492014-04-17  Darin Adler  <darin@apple.com>
18550
18551        Try to fix EFL and GTK builds.
18552
18553        * workers/WorkerGlobalScope.idl: Touch file to make it rebuild, assuming that
18554        module dependencies aren't working right with CMake. Tweaked formatting quite a
18555        bit while I was in here.
18556
185572014-04-17  David Hyatt  <hyatt@apple.com>
18558
18559        [New Multicolumn] REGRESSION: Column set styles don't update when zooming etc.
18560        https://bugs.webkit.org/show_bug.cgi?id=131777
18561
18562        Reviewed by Enrica Casucci.
18563
18564        Added fast/multicol/zoom-test.html
18565
18566        * rendering/RenderBlockFlow.cpp:
18567        (WebCore::RenderBlockFlow::styleDidChange):
18568        Put back in the code that propagates new styles to the flow thread and column sets
18569        when styles change. This propagation was removed when the column span code landed.
18570        This patch puts it back in but qualifies the types of objects that get styles
18571        propagated to avoid accidentally propagating the wrong style to column spans.
18572
185732014-04-17  Darin Adler  <darin@apple.com>
18574
18575        Add separate flag for IndexedDatabase in workers since the current implementation is not threadsafe
18576        https://bugs.webkit.org/show_bug.cgi?id=131785
18577        rdar://problem/16003108
18578
18579        Reviewed by Brady Eidson.
18580
18581        * Configurations/FeatureDefines.xcconfig: Added INDEXED_DATABASE_IN_WORKERS.
18582
18583        * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp: Use the new conditional
18584        instead of the old one.
18585        * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h: Ditto.
18586        * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl: Ditto.
18587
185882014-04-17  Dan Bernstein  <mitz@apple.com>
18589
18590        WebCore part of <rdar://problem/16601336> [Cocoa] _userInitiated is always NO in WKNavigationAction passed to -webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:
18591        https://bugs.webkit.org/show_bug.cgi?id=131783
18592
18593        Reviewed by Tim Horton.
18594
18595        * loader/NavigationAction.cpp:
18596        (WebCore::NavigationAction::NavigationAction): Initialize m_processingUserGesture to
18597        ScriptController::processingUserGesture() at the time the NavigationAction is constructed.
18598        * loader/NavigationAction.h:
18599        Added boolean member variable m_processionUserGesture
18600        (WebCore::NavigationAction::processingUserGesture): Added this getter.
18601
186022014-04-17  Ion Rosca  <rosca@adobe.com>
18603
18604        [CSS Blending] Isolation descendant dependent flags are not updated correctly
18605        https://bugs.webkit.org/show_bug.cgi?id=130892
18606
18607        Reviewed by Dean Jackson.
18608
18609        The isolation descendant dependent flag (m_hasUnisolatedBlendingDescendants)
18610        will help us to determine if a layer should isolate blending descendants or not.
18611        The m_hasUnisolatedBlendingDescendants flag should be set for layers that have blending descendant layers
18612        not isolated by descendant stacking contexts.
18613        An element isolatesBlending() if it has this flag set and creates stacking context.
18614
18615        Tests: css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending.html
18616               css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending.html
18617               css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending.html
18618               css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending.html
18619               css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation.html
18620               css3/compositing/blend-mode-isolation-flags-turn-off-blending.html
18621               css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context.html
18622               css3/compositing/blend-mode-isolation-flags-turn-on-blending.html
18623               css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context.html
18624
18625        * rendering/RenderLayer.cpp:
18626        (WebCore::RenderLayer::RenderLayer):
18627        (WebCore::RenderLayer::updateBlendMode):
18628        (WebCore::RenderLayer::updateAncestorChainHasBlendingDescendants):
18629            When a layer has blending and it hasn't had it before, we set the isolation
18630        flag for all its ancestors up to the first layer creating stacking context.
18631        I removed the isComposited() check here. Isolation flags should be correct regardless
18632        of compositing state. Moreover, if this method is called from styleChanged(),
18633        the compositing state might not be accurate, it's going to be recalculated afterwards.  
18634        (WebCore::RenderLayer::dirtyAncestorChainHasBlendingDescendants):
18635            When a layer doesn't have blending, but it used to have it before, we mark
18636        the isolation flag as dirty for all its ancestors up to the first layer
18637        creating stacking context. The isolation flags will be recalculated by
18638        RenderLayer::updateDescendantDependentFlags.
18639        (WebCore::RenderLayer::updateDescendantDependentFlags):
18640            Evaluates if the layer has unisolated blending descendants by traversing
18641        the layer subtree.
18642        (WebCore::RenderLayer::addChild):
18643            When adding a subtree that has blending or has some unisolated descendants,
18644        we set the flag for all the ancestors, up to the stacking context layer.
18645        (WebCore::RenderLayer::removeChild):
18646            When removing a subtree that had blending or had some unisolated descendants,
18647        we dirty the flag so that it could be reevaluated.
18648        (WebCore::RenderLayer::calculateClipRects):
18649        (WebCore::RenderLayer::updateTransform):
18650        * rendering/RenderLayer.h:
18651            Rename m_hasBlendedElementInChildStackingContext => m_hasUnisolatedBlendingDescendants
18652        and m_hasBlendedElementInChildStackingContextStatusDirty => m_hasUnisolatedBlendingDescendantsStatusDirty,
18653        * rendering/RenderLayerCompositor.cpp:
18654        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
18655            Add an assert to make sure that if m_hasUnisolatedCompositedBlendingDescendants is true,
18656        then m_hasUnisolatedBlendingDescendants is true as well.
18657
186582014-04-17  Tim Horton  <timothy_horton@apple.com>
18659
18660        Uninline blend(Color, Color) to get AnimationUtilities out of Color.h
18661        https://bugs.webkit.org/show_bug.cgi?id=131781
18662
18663        Reviewed by Simon Fraser.
18664
18665        * platform/graphics/Color.cpp:
18666        (WebCore::blend):
18667        Un-inline.
18668
18669        * platform/graphics/Color.h:
18670        No more AnimationUtilities.
18671
186722014-04-16  Benjamin Poulain  <bpoulain@apple.com>
18673
18674        Fix the build after r167412
18675
18676        * platform/ScrollView.cpp:
18677        (WebCore::ScrollView::updateScrollbars):
18678
186792014-04-16  Benjamin Poulain  <bpoulain@apple.com>
18680
18681        [iOS][WK2] Fix annoying scrolling bugs
18682        https://bugs.webkit.org/show_bug.cgi?id=131722
18683
18684        Reviewed by Simon Fraser.
18685
18686        * platform/ScrollView.cpp:
18687        (WebCore::ScrollView::updateScrollbars):
18688        Since ScrollingStateScrollingNode::setRequestedScrollPosition() was added, we see ScrollView::updateScrollbars()
18689        keep changing the scroll position to incorrect values.
18690
18691        On iOS, the scrollbars are handled by the native UI, the code just compute incorrect scroll position. On WebKit1,
18692        the code does not run because there is a platformWidget().
18693
18694        Just #ifdef the whole useless code.
18695
186962014-04-16  Alexandru Chiculita  <achicu@adobe.com>
18697
18698        Improve performance of the RenderLayerCompositor::OverlapMap
18699        https://bugs.webkit.org/show_bug.cgi?id=115063
18700
18701        Reviewed by Simon Fraser.
18702
18703        No new tests, no new functionality or behavior.
18704
18705        Do not use the OverlapMap in RenderLayerCompositor::computeCompositingRequirements if the layer already
18706        has a 3D transform. This way we can avoid a potential expensive lookups when we know for sure the layer
18707        is already supposed to be composited. 
18708
18709        Also, added a bounding box of the overlap map, so that it can catch cases when the new layer is not overlapping
18710        any of the previous layers. This is pretty common when having composited layers laid out in a vertical/horizontal list.
18711
18712
18713        * rendering/RenderLayerCompositor.cpp:
18714        (OverlapMapContainer):
18715        (WebCore::OverlapMapContainer::add):
18716        (WebCore::OverlapMapContainer::overlapsLayers):
18717        (WebCore::OverlapMapContainer::unite):
18718        (WebCore):
18719        (WebCore::RenderLayerCompositor::OverlapMap::add):
18720        (WebCore::RenderLayerCompositor::OverlapMap::overlapsLayers):
18721        (WebCore::RenderLayerCompositor::OverlapMap::pushCompositingContainer):
18722        (WebCore::RenderLayerCompositor::OverlapMap::popCompositingContainer):
18723        (RenderLayerCompositor::OverlapMap):
18724        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
18725
187262014-04-16  Brian J. Burg  <burg@cs.washington.edu>
18727
18728        Web Replay: memoize fallback time values for document.lastModified
18729        https://bugs.webkit.org/show_bug.cgi?id=131318
18730
18731        Reviewed by Joseph Pecoraro.
18732
18733        If a document's Last-Modified header can't be found or used, then 
18734        document.lastModified is derived from the current system time or
18735        from filesystem data, which is obviously nondeterministic.
18736
18737        It's better to handle this inside Document::lastModified rather than using
18738        MemoizedDOMResult, because only the fallback case is nondeterministic.
18739
18740        Test: http/tests/inspector/replay/document-last-modified-fallback-value.html
18741
18742        The test is skipped for now, as it will be very flaky without the
18743        functionality introduced by bugs 130728 and 129391.
18744
18745        * dom/Document.cpp:
18746        (WebCore::Document::lastModified): Save or reuse memoized fallback value.
18747        * replay/WebInputs.json: Add input DocumentLastModifiedDate.
18748
187492014-04-16  David Hyatt  <hyatt@apple.com>
18750
18751        [New Multicolumn] Selection gets confused when the mouse is in the column gaps.
18752        https://bugs.webkit.org/show_bug.cgi?id=131739
18753
18754        Reviewed by Enrica Casucci.
18755
18756        * rendering/RenderBlock.cpp:
18757        (WebCore::RenderBlock::selectionGaps):
18758        Make sure not to paint selection gaps. This matches the old multi-column behavior. Even though
18759        selection gaps *nearly* work with the new multi-column code, I am disabling them so that we
18760        can turn them on without visual regressions.
18761        
18762        (WebCore::isChildHitTestCandidate):
18763        Don't allow in-flow RenderFlowThreads to be descended into from positionForPoint. We always want
18764        to look only at the spanners and at the sets.
18765
18766        * rendering/RenderMultiColumnFlowThread.cpp:
18767        (WebCore::RenderMultiColumnFlowThread::nodeAtPoint):
18768        * rendering/RenderMultiColumnFlowThread.h:
18769        Override nodeAtPoint to disallow the RenderMultiColumnFlowThread from being considered for hit
18770        testing when no DOM node is found. It's better to just let RenderBlock's positionForPoint run
18771        to drill back down into the appropriate column set.
18772
18773        * rendering/RenderMultiColumnSet.cpp:
18774        (WebCore::RenderMultiColumnSet::positionForPoint):
18775        Implement positionForPoint for RenderMultiColumnSets. This is a straight-up port of the
18776        old multi-column code's adjustPointToColumnContents function.
18777
18778        * rendering/RenderMultiColumnSet.h:
18779        Add override of positionForPoint.
18780
187812014-04-16  Dean Jackson  <dino@apple.com>
18782
18783        MediaDocument on iOS should be full page
18784        https://bugs.webkit.org/show_bug.cgi?id=131774
18785
18786        Reviewed by Jer Noble.
18787
18788        A MediaDocument on iOS has two problems. It can't rely
18789        on intrinsic size, since it doesn't load the content until
18790        a user gesture. Secondly, on a small screen you want the
18791        media to fill the page.
18792
18793        Add width/height 100% for iOS documents.
18794
18795        Test: platform/iphone-simulator/media/media-document-controls-size.html
18796
18797        * html/MediaDocument.cpp:
18798        (WebCore::MediaDocumentParser::createDocumentStructure):
18799
188002014-04-16  Roger Fong  <roger_fong@apple.com>
18801
18802        Add a way for layout tests to determine whether or not a plugin is snapshotted.
18803        https://bugs.webkit.org/show_bug.cgi?id=131650.
18804        <rdar://problem/16615528>
18805
18806        Reviewed by Dean Jackson.
18807
18808        * testing/Internals.cpp:
18809        (WebCore::Internals::isPluginSnapshotted):
18810        * testing/Internals.h:
18811        * testing/Internals.idl:
18812
188132014-04-16  Zoltan Horvath  <zoltan@webkit.org>
18814
18815        Vanish unnecessary includes from Shapes.{h|cpp}
18816        https://bugs.webkit.org/show_bug.cgi?id=131762
18817
18818        Reviewed by Andreas Kling.
18819
18820        No new tests, no behavior change.
18821
18822        * rendering/shapes/BoxShape.h:
18823        * rendering/shapes/Shape.cpp:
18824        * rendering/shapes/Shape.h:
18825        * rendering/shapes/ShapeOutsideInfo.h:
18826
188272014-04-16  Andreas Kling  <akling@apple.com>
18828
18829        Revert direct caching of tagName and nodeName from r167383.
18830
18831        Ryosuke tells me this is not entirely safe, will need to rethink.
18832
18833        * dom/Element.idl:
18834        * dom/Node.idl:
18835
188362014-04-16  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
18837
18838        Improve security mitigation added in webkit r94001.
18839        We missed the case where attachLine was called when we already had an inline box wrapper.
18840        https://bugs.webkit.org/show_bug.cgi?id=127285
18841
18842        Reviewed by Brent Fulgham.
18843
18844        Merged from Blink: https://src.chromium.org/viewvc/blink?revision=150697&view=revision
18845
18846        * rendering/RenderBox.cpp:
18847        (WebCore::RenderBox::positionLineBox):
18848        * rendering/RenderBox.h:
18849        (WebCore::RenderBox::setInlineBoxWrapper):
18850
188512014-04-16  Bem Jones-Bey  <bjonesbe@adobe.com>
18852
18853        Fix CodeGenerator.pm to only write files if the generated content has changed
18854        https://bugs.webkit.org/show_bug.cgi?id=131756
18855
18856        Reviewed by Sam Weinig.
18857
18858        To improve build speed, don't touch generated files unless the newly
18859        generated content is actually different.
18860
18861        * bindings/scripts/CodeGenerator.pm:
18862        (UpdateFile):
18863
188642014-04-16  Andreas Kling  <akling@apple.com>
18865
18866        Add a way to cache never-changing IDL attributes in the wrapper.
18867        <https://webkit.org/b/131759>
18868
18869        Some IDL attributes will always return the same value when queried
18870        on an object, so let's have a way to avoid calling into C++ code
18871        every time they are queried.
18872
18873        This patch adds a custom IDL thingy called "ReturnsCacheableValue"
18874        which causes the code generator to emit code to cache the returned
18875        value directly in the JS wrapper object.
18876
18877        Reviewed by Oliver Hunt.
18878
18879        * bindings/scripts/IDLAttributes.txt:
18880        * bindings/scripts/CodeGeneratorJS.pm:
18881        (GenerateImplementation):
18882
18883            Add ReturnsCacheableValue custom attribute.
18884
18885        * dom/Element.idl:
18886        * dom/Node.idl:
18887
18888            Annotate some attributes that return fully cacheable values.
18889
18890        * bindings/scripts/test/*:
18891
18892            Rebaseline.
18893
188942014-04-16  Noel Gordon  <noel.gordon@gmail.com>
18895
18896        Progressive JPEG outputScanlines() calls should handle failure
18897        https://bugs.webkit.org/show_bug.cgi?id=116701
18898
18899        Reviewed by Brent Fulgham.
18900
18901        outputScanlines() can fail and delete |this|. Copy the decoder pointer
18902        member and use that copy to detect and handle the failure case.
18903
18904        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
18905        (WebCore::JPEGImageReader::decode):
18906
189072014-04-16  Robert Sipka  <sipka@inf.u-szeged.hu>
18908
18909        [curl] Add WEB_TIMING support
18910        https://bugs.webkit.org/show_bug.cgi?id=127555
18911
18912        Reviewed by Brent Fulgham.
18913
18914        Access timing information related to navigation.
18915
18916        * platform/network/curl/ResourceHandleManager.cpp:
18917        (WebCore::milisecondsSinceRequest):
18918        (WebCore::calculateWebTimingInformations):
18919        (WebCore::sockoptfunction):
18920        (WebCore::headerCallback):
18921        (WebCore::ResourceHandleManager::downloadTimerCallback):
18922        (WebCore::ResourceHandleManager::dispatchSynchronousJob):
18923        (WebCore::ResourceHandleManager::initializeHandle):
18924
189252014-04-16  Zoltan Horvath  <zoltan@webkit.org>
18926
18927        Cleanup header includes in ShapeOutsideInfo.h
18928        https://bugs.webkit.org/show_bug.cgi?id=131750
18929
18930        Reviewed by Antti Koivisto.
18931
18932        Make the build faster by removing unnecessary header includes.
18933
18934        No new tests, no behavior change.
18935
18936        * rendering/shapes/ShapeOutsideInfo.h:
18937
189382014-04-16  Simon Fraser  <simon.fraser@apple.com>
18939
18940        Fix the iOS build.
18941
18942        * platform/graphics/cg/BitmapImageCG.cpp:
18943        (WebCore::BitmapImage::draw):
18944
189452014-04-16  Alexey Proskuryakov  <ap@apple.com>
18946
18947        DataTransfer should cache its FileList
18948        https://bugs.webkit.org/show_bug.cgi?id=131694
18949
18950        Reviewed by Darin Adler.
18951
18952        Test: fast/events/data-transfer-files-attribute-identity.html
18953
18954        * bindings/js/SerializedScriptValue.cpp: (WebCore::CloneDeserializer::readTerminal):
18955        Switched to a new FileList constructor, CloneDeserializer doesn't really need to modify
18956        the FileList with append().
18957
18958        * dom/DataTransfer.h:
18959        * dom/DataTransfer.cpp:
18960        (WebCore::DataTransfer::types): Added a FIXME.
18961        (WebCore::DataTransfer::files): Changed to reuse a cached FileList. It's currently
18962        easy, because we don't support DataTransferItemList. Once we do, making any changes
18963        through it will also require updating the FileList in a way that doesn't replace
18964        File objects for unchanged files.
18965
18966        * fileapi/FileList.h:
18967        (WebCore::FileList::create):
18968        (WebCore::FileList::isEmpty):
18969        (WebCore::FileList::FileList):
18970        (WebCore::FileList::append):
18971        (WebCore::FileList::clear):
18972        Made non-const functions private, because neither DataTransfer nor FileInputType
18973        expect the list to be modified without their knowledge. Added a new Vector based
18974        constructor so that a FileList could be created without the use of append().
18975
18976        * html/FileInputType.cpp: (WebCore::FileInputType::createFileList): Simplified
18977        the code a little bit. FileInputType still needs to modify the list for clear(),
18978        but doesn't need to add to it dynamically - unlike with DataTransfer, it's expected
18979        to create a new FileList when it's modified.
18980
189812014-04-15  Brent Fulgham  <bfulgham@apple.com>
18982
18983        [Win] Eliminate use of deleteAllValues in Windows Files
18984        https://bugs.webkit.org/show_bug.cgi?id=131631
18985
18986        Reviewed by Darin Adler.
18987
18988        Update to use std::unique_ptr for object lifetime. Get rid of
18989        deleteAllValues now that it is no loner needed. Use ranged for
18990        loops where possible.
18991
18992        * platform/win/WCDataObject.cpp:
18993        (WebCore::WCEnumFormatEtc::WCEnumFormatEtc):
18994        (WebCore::WCDataObject::~WCDataObject):
18995        (WebCore::WCDataObject::GetData):
18996        (WebCore::WCDataObject::QueryGetData):
18997        (WebCore::WCDataObject::SetData):
18998        (WebCore::WCDataObject::clearData):
18999        * platform/win/WCDataObject.h:
19000
190012014-04-16  Chris Fleizach  <cfleizach@apple.com>
19002
19003        AX: Accessing a table cell with an invalid column header crashes
19004        https://bugs.webkit.org/show_bug.cgi?id=131719
19005
19006        Reviewed by Darin Adler.
19007
19008        If no tableCell is available as a column/row header, then do not continue processing.
19009
19010        Test: accessibility/table-missing-column-header-crash.html
19011
19012        * accessibility/AccessibilityTableCell.cpp:
19013        (WebCore::AccessibilityTableCell::columnHeaders):
19014        (WebCore::AccessibilityTableCell::rowHeaders):
19015
190162014-04-16  Brendan Long  <b.long@cablelabs.com>
19017
19018        [GTK] Fix unused parameter warnings
19019        https://bugs.webkit.org/show_bug.cgi?id=131721
19020
19021        Reviewed by Darin Adler.
19022
19023        * bindings/js/JSMediaStreamCapabilitiesCustom.cpp:
19024        (WebCore::toJS): Remove unused 'exec' parameter.
19025
190262014-04-16  Simon Fraser  <simon.fraser@apple.com>
19027
19028        Convert the boolean param of Image::startAnimation() to an enum
19029        https://bugs.webkit.org/show_bug.cgi?id=131742
19030
19031        Reviewed by Tim Horton.
19032
19033        Use an enum to make the code more readable.
19034
19035        * platform/graphics/BitmapImage.cpp:
19036        (WebCore::BitmapImage::startAnimation):
19037        * platform/graphics/BitmapImage.h:
19038        * platform/graphics/Image.cpp:
19039        (WebCore::Image::drawTiled):
19040        * platform/graphics/Image.h:
19041        (WebCore::Image::startAnimation):
19042        * svg/graphics/SVGImage.cpp:
19043        (WebCore::SVGImage::startAnimation):
19044        * svg/graphics/SVGImage.h:
19045
190462014-04-16  David Hyatt  <hyatt@apple.com>
19047
19048        Make sure to skip the RenderMultiColumnFlowThread when resolving percentage heights inside columns against
19049        containing blocks. The flow thread's auto height should not interfere if a fixed height is specified on
19050        an ancestor.
19051
19052        https://bugs.webkit.org/show_bug.cgi?id=131741
19053
19054        Reviewed by Simon Fraser.
19055
19056        Added fast/multicol/percent-height.html.
19057
19058        * rendering/RenderBox.cpp:
19059        (WebCore::RenderBox::skipContainingBlockForPercentHeightCalculation):
19060        Add an isInFlowRenderFlowThread check so that we skip those blocks and don't consider them at all
19061        when resolving percentage heights.
19062
190632014-04-16  Daewoong Jang  <daewoong.jang@navercorp.com>
19064
19065        [WinCairo][cURL] Build fix for WinCairo build with USE(CURL).
19066        https://bugs.webkit.org/show_bug.cgi?id=131614
19067
19068        Reviewed by Brent Fulgham.
19069
19070        Build fix, no new tests needed.
19071
19072        * platform/network/curl/CurlCacheEntry.cpp:
19073        (WebCore::CurlCacheEntry::loadResponseHeaders):
19074        * platform/network/curl/CurlCacheManager.cpp:
19075        (WebCore::CurlCacheManager::loadIndex):
19076        * platform/network/soup/ResourceError.h:
19077        * platform/network/soup/SocketStreamHandle.h:
19078
190792014-04-16  Martin Hodovan  <mhodovan@inf.u-szeged.hu>
19080
19081        ASSERTION FAILED: x2 >= x1 in WebCore::RenderObject::drawLineForBoxSide
19082        https://bugs.webkit.org/show_bug.cgi?id=127835
19083
19084        In some cases when a negative margin and a positive padding are applied
19085        together to the right and/or left side of the box, the logical width of
19086        the borders can be set to a negative value, making the assertion fire.
19087        The fix checks if the width or height of the box is negative, and if so,
19088        it will not display the borders and shadows of the box.
19089
19090        Reviewed by Darin Adler.
19091
19092        Test: fast/css/padding-margin-negative-border.html
19093
19094        * rendering/RenderBoxModelObject.cpp:
19095        (WebCore::RenderBoxModelObject::paintBorder):
19096
190972014-04-16  Jer Noble  <jer.noble@apple.com>
19098
19099        [MSE] Seeks into buffered ranges will never complete.
19100        https://bugs.webkit.org/show_bug.cgi?id=131717
19101
19102        Reviewed by Eric Carlson.
19103
19104        Test: media/media-source/media-source-seek-complete.html
19105
19106        Run the SourceBuffer Monitoring step after initiating a seek.
19107
19108        * Modules/mediasource/SourceBuffer.cpp:
19109        (WebCore::SourceBuffer::sourceBufferPrivateSeekToTime):
19110
191112014-04-15  Hyowon Kim  <hw1008.kim@samsung.com>
19112
19113        [EFL] Fix problems with the pixel dump.
19114        https://bugs.webkit.org/show_bug.cgi?id=131265
19115
19116        Reviewed by Gyuyoung Kim.
19117
19118        Painting and compositing paths of WebKit-EFL were totally modified from r166768.
19119        However pixel dump codes still call deprecated functions like ewk_view_paint(),
19120        which causes that nothing is drawn.
19121
19122        This patch adds new member functions to AcceleratedCompositingContext to support pixel dump.
19123        One of new functions is AcceleratedCompositingContext::extractImageData(),
19124        which replaces deprecated function calls. Besides the extractImageData() is invoked by
19125        ewk_view_screenshot_contents_get() in order to take the visible content displayed on the EFL webview.
19126
19127        * platform/graphics/cairo/CairoUtilities.cpp:
19128        (WebCore::flipImageSurfaceVertically): Flip pixel data of given cairo_surface_t vertically up/down.
19129        Whereas Cairo uses the top-left corner as being 0,0 of the coordinate system,
19130        OpenGL uses the bottom-left corner being 0,0.
19131        So we need to vertically flip resultant images taken by glReadPixels().
19132        * platform/graphics/cairo/CairoUtilities.h:
19133
191342014-04-15  Hyowon Kim  <hw1008.kim@samsung.com>
19135
19136        Make page overlay functionality working on coordinated graphics.
19137        https://bugs.webkit.org/show_bug.cgi?id=131425
19138
19139        Reviewed by Darin Adler.
19140
19141        Page overlay functionality did not work on coordinated graphics since r166975.
19142        This patch removes deprecated code related to the PageOverlay GraphicsLayer management.
19143        and makes CoordinatedLayerTreeHost use PageOverlayController.
19144
19145        * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
19146        (WebCore::CompositingCoordinator::setRootCompositingLayer):
19147        (WebCore::CompositingCoordinator::flushPendingLayerChanges):
19148        * platform/graphics/texmap/coordinated/CompositingCoordinator.h:
19149
191502014-04-10  Roger Fong  <roger_fong@apple.com>
19151
19152        Snapshotted plugins may need to be restarted if style properties are changed after initial load of plugin.
19153        https://bugs.webkit.org/show_bug.cgi?id=131553.
19154        <rdar://problem/15443375>
19155
19156        Reviewed by Timothy Horton.
19157
19158        Test: plugins/snapshotting/set-plugin-size-to-tiny.html
19159
19160        When updating embedded objects during our post layout checks, check for certain style changes
19161        that may result in the plugin needing to be restarted.
19162
19163        * html/HTMLPlugInImageElement.h: 
19164        Add m_plugInDimensionsSpecified field to keep track of whether or not dimensions on the plugin’s renderer have been specified.
19165        * html/HTMLPlugInImageElement.cpp:
19166        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
19167        Initialize m_plugInDimensionsSpecified.
19168        (WebCore::isSmallerThanTinySizingThreshold):
19169        Refactoring, move check for whether or not plugin is smaller than the tiny plugin size threshold to this method.
19170        (WebCore::HTMLPlugInImageElement::isTopLevelFullPage): 
19171        Refactoring, move check for whether or not plugin is top level full page to this method.
19172        (WebCore::HTMLPlugInImageElement::checkSnapshotStatus): 
19173        Use refactored checks here as well to determine whether or not we need to restart the snapshotted plugin.
19174        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Use refactored checks.
19175        If plugin dimensions were specified, set m_plugInDimensionsSpecified to true.
19176
191772014-04-15  Andreas Kling  <akling@apple.com>
19178
19179        [iOS WebKit2] Listen for system memory pressure notifications.
19180        <https://webkit.org/b/131653>
19181        <rdar://problem/16208123>
19182
19183        Reviewed by Antti Koivisto.
19184
19185        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
19186        (WebCore::MemoryPressureHandler::install):
19187
19188            Use the right invocation to summon the memory pressure handler.
19189
19190        (WebCore::MemoryPressureHandler::install):
19191        (WebCore::MemoryPressureHandler::uninstall):
19192        (WebCore::MemoryPressureHandler::holdOff):
19193        (WebCore::MemoryPressureHandler::respondToMemoryPressure):
19194
19195            Make stubbed out functions !PLATFORM(COCOA)
19196
191972014-04-14  Morten Stenshorne  <mstensho@opera.com>
19198
19199        [New Multicolumn] Add support for column-span:all
19200        https://bugs.webkit.org/show_bug.cgi?id=129330
19201
19202        Reviewed by Dave Hyatt.
19203
19204        Column spanners are implemented as siblings of RenderMultiColumnSet
19205        objects (i.e. the regions for the column rows). This means that they
19206        are pulled out from the flow thread tree where they would otherwise
19207        live. This causes some complexity, most of which is contained within
19208        the multicol code.
19209
19210        A placeholder is put in the flow thread tree where the spanner's
19211        renderer would otherwise live. This is needed in order make sure that
19212        we interrupt line layout before after the spanner. We also need this
19213        to be able to switch from one multicol set to the next.
19214
19215        Some extra logic is required when dynamically inserting and removing
19216        flow thread descendants now, because we need to figure out if the
19217        renderer added should trigger creation of new multi column sets. If
19218        a spanner is inserted in the middle of a multi column set, we need to
19219        detect this, split the set and put the spanner in the middle.
19220
19221        Wrote a bunch of tests. A few of the tests were copied from existing
19222        (old-impl) tests and put in a separate directory. That directory can
19223        be wiped when we turn on the new multicol implementation by default.
19224
19225        Tests: fast/multicol/newmulticol/adjacent-spanners.html
19226               fast/multicol/newmulticol/block-becomes-spanner.html
19227               fast/multicol/newmulticol/change-spanner-display.html
19228               fast/multicol/newmulticol/change-spanner-parent-display.html
19229               fast/multicol/newmulticol/compare-with-old-impl/anonymous-block-split-crash.html
19230               fast/multicol/newmulticol/compare-with-old-impl/before-child-anonymous-column-block.html
19231               fast/multicol/newmulticol/compare-with-old-impl/clone-before-after-content-crash.html
19232               fast/multicol/newmulticol/compare-with-old-impl/clone-block-children-inline-mismatch-crash.html
19233               fast/multicol/newmulticol/compare-with-old-impl/clone-flexbox.html
19234               fast/multicol/newmulticol/compare-with-old-impl/clone-summary.html
19235               fast/multicol/newmulticol/compare-with-old-impl/column-span-inside-multicol-webkit-box.html
19236               fast/multicol/newmulticol/compare-with-old-impl/continuation-crash.html
19237               fast/multicol/newmulticol/compare-with-old-impl/double-merge-anonymous-block-crash.html
19238               fast/multicol/newmulticol/compare-with-old-impl/empty-anonymous-block-split-crash.html
19239               fast/multicol/newmulticol/compare-with-old-impl/float-not-removed-crash.html
19240               fast/multicol/newmulticol/compare-with-old-impl/list-multi-column-crash.html
19241               fast/multicol/newmulticol/compare-with-old-impl/positioned-child-not-removed-crash.html
19242               fast/multicol/newmulticol/compare-with-old-impl/positioned-objects-not-removed-crash.html
19243               fast/multicol/newmulticol/compare-with-old-impl/recursive-split-flow-crash.html
19244               fast/multicol/newmulticol/compare-with-old-impl/removal-of-multicol-span-crash.html
19245               fast/multicol/newmulticol/compare-with-old-impl/remove-child-split-flow-crash.html
19246               fast/multicol/newmulticol/compare-with-old-impl/runin-continuation-crash.html
19247               fast/multicol/newmulticol/compare-with-old-impl/span-as-immediate-child-complex-splitting.html
19248               fast/multicol/newmulticol/compare-with-old-impl/span-as-nested-inline-block-child.html
19249               fast/multicol/newmulticol/compare-with-old-impl/split-flow-anonymous-wrapper-crash.html
19250               fast/multicol/newmulticol/compare-with-old-impl/split-inline-wrong-post-block-crash.html
19251               fast/multicol/newmulticol/compare-with-old-impl/table-multi-column-crash.html
19252               fast/multicol/newmulticol/compare-with-old-impl/textbox-not-removed-crash.html
19253               fast/multicol/newmulticol/compare-with-old-impl/update-after-content-before-child-crash.html
19254               fast/multicol/newmulticol/insert-row-content1.html
19255               fast/multicol/newmulticol/insert-row-content2.html
19256               fast/multicol/newmulticol/insert-row-content3.html
19257               fast/multicol/newmulticol/insert-row-content4.html
19258               fast/multicol/newmulticol/insert-row-content5.html
19259               fast/multicol/newmulticol/insert-row-content6.html
19260               fast/multicol/newmulticol/insert-row-content7.html
19261               fast/multicol/newmulticol/insert-row-content8.html
19262               fast/multicol/newmulticol/insert-row-content9.html
19263               fast/multicol/newmulticol/insert-spanner-child1.html
19264               fast/multicol/newmulticol/insert-spanner-child2.html
19265               fast/multicol/newmulticol/insert-spanner-child3.html
19266               fast/multicol/newmulticol/insert-spanner1.html
19267               fast/multicol/newmulticol/insert-spanner2.html
19268               fast/multicol/newmulticol/insert-spanner3.html
19269               fast/multicol/newmulticol/insert-spanner4.html
19270               fast/multicol/newmulticol/insert-spanner5.html
19271               fast/multicol/newmulticol/insert-spanner6.html
19272               fast/multicol/newmulticol/insert-spanner7.html
19273               fast/multicol/newmulticol/insert-spanner8.html
19274               fast/multicol/newmulticol/multicol-with-spanner-becomes-regular-block.html
19275               fast/multicol/newmulticol/remove-row-content1.html
19276               fast/multicol/newmulticol/remove-row-content2.html
19277               fast/multicol/newmulticol/remove-row-content3.html
19278               fast/multicol/newmulticol/remove-row-content4.html
19279               fast/multicol/newmulticol/remove-row-content5.html
19280               fast/multicol/newmulticol/remove-row-content6.html
19281               fast/multicol/newmulticol/remove-row-content7.html
19282               fast/multicol/newmulticol/remove-row-content8.html
19283               fast/multicol/newmulticol/remove-row-content9.html
19284               fast/multicol/newmulticol/remove-spanner1.html
19285               fast/multicol/newmulticol/remove-spanner2.html
19286               fast/multicol/newmulticol/remove-spanner3.html
19287               fast/multicol/newmulticol/remove-spanner4.html
19288               fast/multicol/newmulticol/remove-spanner5.html
19289               fast/multicol/newmulticol/remove-spanner6.html
19290               fast/multicol/newmulticol/sole-spanner.html
19291               fast/multicol/newmulticol/span-between-text.html
19292               fast/multicol/newmulticol/spanner-becomes-regular-block.html
19293               fast/multicol/newmulticol/spanner-first.html
19294               fast/multicol/newmulticol/spanner-img.html
19295               fast/multicol/newmulticol/spanner-inline-block.html
19296               fast/multicol/newmulticol/spanner-last.html
19297               fast/multicol/newmulticol/spanner-nested-dynamic.html
19298               fast/multicol/newmulticol/spanner-nested.html
19299               fast/multicol/newmulticol/spanner-pseudo-after1.html
19300               fast/multicol/newmulticol/spanner-pseudo-after2.html
19301               fast/multicol/newmulticol/spanner-pseudo-after3.html
19302               fast/multicol/newmulticol/spanner-pseudo-after4.html
19303               fast/multicol/newmulticol/spanner-pseudo-before-after1.html
19304               fast/multicol/newmulticol/spanner-pseudo-before-after2.html
19305               fast/multicol/newmulticol/spanner-pseudo-before-after3.html
19306               fast/multicol/newmulticol/spanner-pseudo-before-after4.html
19307               fast/multicol/newmulticol/spanner-pseudo-before1.html
19308               fast/multicol/newmulticol/spanner-pseudo-before2.html
19309               fast/multicol/newmulticol/spanner-pseudo-before3.html
19310               fast/multicol/newmulticol/spanner-pseudo-before4.html
19311               fast/multicol/newmulticol/spanner-table.html
19312               fast/multicol/newmulticol/spanner-with-margin.html
19313               fast/multicol/newmulticol/spanner1.html
19314               fast/multicol/newmulticol/spanner2.html
19315               fast/multicol/newmulticol/spanner3.html
19316               fast/multicol/newmulticol/spanner4.html
19317               fast/multicol/newmulticol/spanner5.html
19318               fast/multicol/newmulticol/spanner6.html
19319               fast/multicol/newmulticol/spanner7.html
19320               fast/multicol/newmulticol/spanner8.html
19321               fast/multicol/newmulticol/spanner9.html
19322               fast/multicol/newmulticol/trailing-margin-with-spanner.html
19323               fast/multicol/newmulticol/trailing-margin-with-spanner2.html
19324
19325        * CMakeLists.txt:
19326        * WebCore.vcxproj/WebCore.vcxproj:
19327        * WebCore.vcxproj/WebCore.vcxproj.filters:
19328        * rendering/RenderBlock.cpp:
19329        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
19330        Disable the old anonymous multicol container and spanner anonymous
19331        block generation machinery when the new multicol implementation is
19332        enabled.
19333        * rendering/RenderBlockFlow.cpp:
19334        (WebCore::RenderBlockFlow::createMultiColumnFlowThread):
19335        (WebCore::RenderBlockFlow::destroyMultiColumnFlowThread):
19336        (WebCore::RenderBlockFlow::layoutBlockChild): Need to notify the
19337        flow thread when a descendant's final position is known. Spanner
19338        placeholders need to know where to terminate the column set that
19339        it follows.
19340        (WebCore::RenderBlockFlow::styleDidChange): Remove old code that
19341        isn't needed anymore. The renderers in question (flow thread and
19342        column sets) set display:block on themselves already. This code
19343        caused problems for spanners, which got all their style wiped.
19344        (WebCore::RenderBlockFlow::setMultiColumnFlowThread): If setting
19345        the flow thread to nullptr, there's no need to create the "rare
19346        data" structure.
19347        (WebCore::RenderBlockFlow::relayoutForPagination):
19348        (WebCore::RenderBlockFlow::layoutSpecialExcludedChild):
19349        (WebCore::RenderBlockFlow::addChild): beforeChild is retrieved via
19350        the DOM. If it is a spanner, we need to locate the placeholder
19351        here, because that's the correct location to insert siblings,
19352        DOM-wise.
19353        (WebCore::RenderBlockFlow::removeChild): The multicol flow thread
19354        needs to know when children disappear.
19355        (WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):
19356        Don't modify the height back and forth when calculating the
19357        multicol container's final height, as that messes up balancing.
19358        (WebCore::RenderBlockFlow::insertedIntoTree): Deleted.
19359        (WebCore::RenderBlockFlow::willBeDestroyed): Deleted.
19360        (WebCore::RenderBlockFlow::styleWillChange): Deleted.
19361        (WebCore::RenderBlockFlow::lineAtIndex): Deleted.
19362        * rendering/RenderBlockFlow.h:
19363        * rendering/RenderElement.cpp:
19364        (WebCore::RenderElement::insertedIntoTree): Set up an element's
19365        layer before notifying the flow thread. The multicol flow thread
19366        may decide to move the element (if it's a spanner), which may
19367        involve re-insertion of layers.  Calling
19368        RenderObject::insertedIntoTree() last instead of first also better
19369        matches the order we used to have prior to the introduction of
19370        RenderElement, FWIW.
19371        * rendering/RenderFlowThread.cpp:
19372        (WebCore::RenderFlowThread::layout):
19373        (WebCore::RenderFlowThread::removeRegionFromThread): Deleted.
19374        (WebCore::RenderFlowThread::invalidateRegions): Deleted.
19375        * rendering/RenderFlowThread.h:
19376        * rendering/RenderMultiColumnFlowThread.cpp:
19377        (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
19378        (WebCore::RenderMultiColumnFlowThread::removeFlowChildInfo): When
19379        a flow thread descendant is inserted, the multicol flow thread
19380        needs to be notified.
19381        (WebCore::RenderMultiColumnFlowThread::firstMultiColumnSet):
19382        (WebCore::RenderMultiColumnFlowThread::lastMultiColumnSet):
19383        (WebCore::RenderMultiColumnFlowThread::firstColumnSetOrSpanner):
19384        (WebCore::RenderMultiColumnFlowThread::nextColumnSetOrSpannerSiblingOf):
19385        (WebCore::RenderMultiColumnFlowThread::previousColumnSetOrSpannerSiblingOf):
19386        (WebCore::RenderMultiColumnFlowThread::layout):
19387        (WebCore::RenderMultiColumnFlowThread::findSetRendering):
19388        (WebCore::RenderMultiColumnFlowThread::populate):
19389        (WebCore::RenderMultiColumnFlowThread::evacuateAndDestroy):
19390        (WebCore::RenderMultiColumnFlowThread::addRegionToThread):
19391        (WebCore::RenderMultiColumnFlowThread::willBeRemovedFromTree):
19392        Need to detach column sets here, since they have pointers to their
19393        flow thread.
19394        (WebCore::RenderMultiColumnFlowThread::resolveMovedChild):
19395        (WebCore::isValidColumnSpanner):
19396        (WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
19397        (WebCore::RenderMultiColumnFlowThread::flowThreadRelativeWillBeRemoved):
19398        (WebCore::RenderMultiColumnFlowThread::flowThreadDescendantBoxLaidOut):
19399        (WebCore::RenderMultiColumnFlowThread::autoGenerateRegionsToBlockOffset):
19400        Nothing to be done here for the time being. Column sets are now
19401        created during box creation. We are going to need to add some code
19402        here again once multicol properly supports nested fragmentation
19403        contexts (and you get adjacent column rows because of that).
19404        (WebCore::RenderMultiColumnFlowThread::regionAtBlockOffset):
19405        During layout, don't trust the region interval tree, as that one
19406        depends on the resulting layout.
19407        (WebCore::RenderMultiColumnFlowThread::setRegionRangeForBox): With
19408        a convenience method to get the last column set, and column sets
19409        now being created during normal box creation, this young method
19410        needs an overhaul.
19411        (WebCore::RenderMultiColumnFlowThread::setRegionRangeForBox):
19412        (WebCore::RenderMultiColumnFlowThread::isPageLogicalHeightKnown):
19413        * rendering/RenderMultiColumnFlowThread.h:
19414        * rendering/RenderMultiColumnSet.cpp:
19415        (WebCore::RenderMultiColumnSet::nextSiblingMultiColumnSet):
19416        (WebCore::RenderMultiColumnSet::previousSiblingMultiColumnSet):
19417        (WebCore::RenderMultiColumnSet::firstRendererInFlowThread):
19418        (WebCore::RenderMultiColumnSet::lastRendererInFlowThread):
19419        (WebCore::precedesRenderer):
19420        (WebCore::RenderMultiColumnSet::containsRendererInFlowThread):
19421        (WebCore::RenderMultiColumnSet::setLogicalTopInFlowThread):
19422        (WebCore::RenderMultiColumnSet::setLogicalBottomInFlowThread):
19423        (WebCore::RenderMultiColumnSet::pageLogicalTopForOffset):
19424        (WebCore::RenderMultiColumnSet::distributeImplicitBreaks):
19425        (WebCore::RenderMultiColumnSet::calculateBalancedHeight):
19426        (WebCore::RenderMultiColumnSet::addForcedBreak):
19427        (WebCore::RenderMultiColumnSet::recalculateColumnHeight):
19428        Previously only needed if columns were to be balanced, now it's
19429        also needed when not balancing.
19430        (WebCore::RenderMultiColumnSet::recordSpaceShortage): Some layout
19431        elements actually have 0 height. Skip them, since they're not
19432        taking us anywhere.
19433        (WebCore::RenderMultiColumnSet::updateLogicalWidth):
19434        (WebCore::RenderMultiColumnSet::requiresBalancing): Column sets
19435        now have individual balancing needs. If they precede a spanner,
19436        they must always be balanced. For the last column set, see if
19437        height is unspecified or column-fill is 'balance' (like before).
19438        (WebCore::RenderMultiColumnSet::prepareForLayout):
19439        (WebCore::RenderMultiColumnSet::beginFlow):
19440        (WebCore::RenderMultiColumnSet::endFlow):
19441        (WebCore::RenderMultiColumnSet::layout):
19442        (WebCore::RenderMultiColumnSet::calculateMaxColumnHeight):
19443        (WebCore::RenderMultiColumnSet::columnRectAt):
19444        (WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
19445        (WebCore::RenderMultiColumnSet::paintColumnRules):
19446        (WebCore::RenderMultiColumnSet::initialBlockOffsetForPainting):
19447        (WebCore::RenderMultiColumnSet::collectLayerFragments):
19448        (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
19449        (WebCore::RenderMultiColumnSet::setAndConstrainColumnHeight): Deleted.
19450        (WebCore::RenderMultiColumnSet::findRunWithTallestColumns): Deleted.
19451        (WebCore::RenderMultiColumnSet::clearForcedBreaks): Deleted.
19452        (WebCore::RenderMultiColumnSet::repaintFlowThreadContent): Deleted.
19453        * rendering/RenderMultiColumnSet.h:
19454        * rendering/RenderMultiColumnSpannerPlaceholder.cpp: Added.
19455        (WebCore::RenderMultiColumnSpannerPlaceholder::createAnonymous):
19456        (WebCore::RenderMultiColumnSpannerPlaceholder::RenderMultiColumnSpannerPlaceholder):
19457        (WebCore::RenderMultiColumnSpannerPlaceholder::renderName):
19458        * rendering/RenderMultiColumnSpannerPlaceholder.h: Added.
19459        * rendering/RenderObject.cpp:
19460        (WebCore::RenderObject::insertedIntoTree): Need to notify the
19461        multicol flow thread when descendants are inserted. That may
19462        trigger insertion of column sets, or, in the case of spanners,
19463        they need to be moved out from the flow thread.
19464        * rendering/RenderObject.h:
19465        (WebCore::RenderObject::isRenderMultiColumnSpannerPlaceholder):
19466        (WebCore::RenderObject::isAnonymousBlock): Exclude column sets
19467        here, so that they don't get involved in anonymous block merging
19468        and other kinds of fun.
19469        * rendering/RenderRegion.h:
19470        * rendering/RenderRegionSet.h:
19471
194722014-04-15  Simon Fraser  <simon.fraser@apple.com>
19473
19474        LayerTreeAsTextBehavior should be in the WebCore namespace
19475        https://bugs.webkit.org/show_bug.cgi?id=131683
19476
19477        Reviewed by Andrei Bucur.
19478
19479        Move LayerTreeAsTextBehavior and the bit flags into the WebCore namespace.
19480
19481        * platform/graphics/GraphicsLayer.cpp:
19482        (showGraphicsLayerTree):
19483        * platform/graphics/GraphicsLayer.h:
19484
194852014-04-15  Benjamin Poulain  <bpoulain@apple.com>
19486
19487        ViewportConfiguration handles userZoom incorrectly
19488        https://bugs.webkit.org/show_bug.cgi?id=131657
19489
19490        Reviewed by Darin Adler.
19491
19492        * page/ViewportConfiguration.cpp:
19493        (WebCore::viewportArgumentUserZoomIsSet):
19494        (WebCore::ViewportConfiguration::updateConfiguration):
19495        The other viewport values must be strictly positive, userZoom is always either zero, one or minus one.
19496        As a result, the value zero was never set.
19497
194982014-04-15  Simon Fraser  <simon.fraser@apple.com>
19499
19500        [iOS WK2] Pages often blank on first load if page loaded by typing the URL
19501        https://bugs.webkit.org/show_bug.cgi?id=131665
19502
19503        Reviewed by Tim Horton.
19504
19505        The document overlay-related code in RemoteLayerTreeDrawingArea::setRootCompositingLayer()
19506        was triggering a compositing layer flush when called with a null rootLayer, which happens
19507        for pages going into the page cache. This would trigger a layer flush that would clobber
19508        the root layer for the visible page, resulting in missing content.
19509        
19510        Also, rebuildCompositingLayerTree() is called recursively and the m_documentOverlayRootLayer
19511        was being added to (and then removed from) every single compositing layers.
19512        
19513        Fix both these by changing to a pull model, where RenderLayerCompositor requests
19514        the overlay layer via ChromeClient, and gets it at the end of every flush,
19515        adding to the children of the root layer.
19516
19517        * WebCore.exp.in:
19518        * page/ChromeClient.h:
19519        (WebCore::ChromeClient::documentOverlayLayerForFrame):
19520        * rendering/RenderLayerCompositor.cpp:
19521        (WebCore::RenderLayerCompositor::RenderLayerCompositor):
19522        (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Put visibleRect
19523        into a variable for ease of debugging.
19524        (WebCore::RenderLayerCompositor::updateCompositingLayers): Asser
19525        that we're not in the page cache (this would have caught the bug).
19526        (WebCore::RenderLayerCompositor::appendOverlayLayers):
19527        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
19528        (WebCore::RenderLayerCompositor::setDocumentOverlayRootLayer): Deleted.
19529        * rendering/RenderLayerCompositor.h:
19530
195312014-04-15  Commit Queue  <commit-queue@webkit.org>
19532
19533        Unreviewed, rolling out r167199 and r167251.
19534        https://bugs.webkit.org/show_bug.cgi?id=131678
19535
19536        Caused a DYEBench regression and does not seem to improve perf
19537        on relevant websites (Requested by rniwa on #webkit).
19538
19539        Reverted changesets:
19540
19541        "Rewrite Function.bind as a builtin"
19542        https://bugs.webkit.org/show_bug.cgi?id=131083
19543        http://trac.webkit.org/changeset/167199
19544
19545        "Update test result"
19546        http://trac.webkit.org/changeset/167251
19547
195482014-04-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
19549
19550        Remove unnecessary null checking in NavigatorContentUtils
19551        https://bugs.webkit.org/show_bug.cgi?id=131652
19552
19553        Reviewed by Darin Adler.
19554
19555        Some functions have checked if document is null. However, document is always not
19556        null when frame is existed.
19557
19558        No new tests, no behavior changes.
19559
19560        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
19561        (WebCore::NavigatorContentUtils::registerProtocolHandler):
19562        (WebCore::NavigatorContentUtils::isProtocolHandlerRegistered):
19563        (WebCore::NavigatorContentUtils::unregisterProtocolHandler):
19564
195652014-04-15  Commit Queue  <commit-queue@webkit.org>
19566
19567        Unreviewed, rolling out r167298.
19568        https://bugs.webkit.org/show_bug.cgi?id=131670
19569
19570        Broke CSS filters (17 test crashes) (Requested by ap on
19571        #webkit).
19572
19573        Reverted changeset:
19574
19575        "[iOS WK2] Pages often blank on first load if page loaded by
19576        typing the URL"
19577        https://bugs.webkit.org/show_bug.cgi?id=131665
19578        http://trac.webkit.org/changeset/167298
19579
195802014-04-14  Pratik Solanki  <psolanki@apple.com>
19581
19582        Unreviewed. Attempt to fix Windows build after r167277.
19583
19584        * page/FrameView.cpp:
19585        (WebCore::FrameView::willPaintContents):
19586
195872014-04-14  Commit Queue  <commit-queue@webkit.org>
19588
19589        Unreviewed, rolling out r167261.
19590        https://bugs.webkit.org/show_bug.cgi?id=131667
19591
19592        broke many navigation tests (Requested by ap on #webkit).
19593
19594        Reverted changeset:
19595
19596        "Web Replay: memoize fallback time values for
19597        document.lastModified"
19598        https://bugs.webkit.org/show_bug.cgi?id=131318
19599        http://trac.webkit.org/changeset/167261
19600
196012014-04-14  Simon Fraser  <simon.fraser@apple.com>
19602
19603        [iOS WK2] Pages often blank on first load if page loaded by typing the URL
19604        https://bugs.webkit.org/show_bug.cgi?id=131665
19605
19606        Reviewed by Tim Horton.
19607
19608        The document overlay-related code in RemoteLayerTreeDrawingArea::setRootCompositingLayer()
19609        was triggering a compositing layer flush when called with a null rootLayer, which happens
19610        for pages going into the page cache. This would trigger a layer flush that would clobber
19611        the root layer for the visible page, resulting in missing content.
19612        
19613        Also, rebuildCompositingLayerTree() is called recursively and the m_documentOverlayRootLayer
19614        was being added to (and then removed from) every single compositing layers.
19615        
19616        Fix both these by changing to a pull model, where RenderLayerCompositor requests
19617        the overlay layer via ChromeClient, and gets it at the end of every flush,
19618        adding to the children of the root layer.
19619
19620        * WebCore.exp.in:
19621        * page/ChromeClient.h:
19622        (WebCore::ChromeClient::documentOverlayLayerForFrame):
19623        * rendering/RenderLayerCompositor.cpp:
19624        (WebCore::RenderLayerCompositor::RenderLayerCompositor):
19625        (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Put visibleRect
19626        into a variable for ease of debugging.
19627        (WebCore::RenderLayerCompositor::updateCompositingLayers): Asser
19628        that we're not in the page cache (this would have caught the bug).
19629        (WebCore::RenderLayerCompositor::appendOverlayLayers):
19630        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
19631        (WebCore::RenderLayerCompositor::setDocumentOverlayRootLayer): Deleted.
19632        * rendering/RenderLayerCompositor.h:
19633
196342014-04-14  Jon Honeycutt  <jhoneycutt@apple.com>
19635
19636        Assertion failure under FEImage::determineAbsolutePaintRect()
19637
19638        <https://bugs.webkit.org/show_bug.cgi?id=131660>
19639        <rdar://problem/15669294>
19640
19641        This patch merges Chromium r149536 (see
19642        <https://chromiumcodereview.appspot.com/14701012>), which moves
19643        m_absoluteTransform out of SVGFilter and into the base Filter class, so
19644        that it isn't necessary to cast a Filter to SVGFilter to get the
19645        absolute transform.
19646
19647        Reviewed by Geoffrey Garen.
19648
19649        Test: svg/filters/feImage-filter-assertion.html
19650
19651        * platform/graphics/filters/Filter.h:
19652        (WebCore::Filter::Filter):
19653        Changed to take the absolute transform.
19654        (WebCore::Filter::absoluteTransform):
19655        Moved from SVGFilter.
19656        (WebCore::Filter::mapAbsolutePointToLocalPoint):
19657        Ditto.
19658
19659        * rendering/FilterEffectRenderer.cpp:
19660        (WebCore::FilterEffectRenderer::FilterEffectRenderer):
19661        Pass a default AffineTransform() to the Filter base class.
19662
19663        * svg/graphics/filters/SVGFEImage.cpp:
19664        (WebCore::FEImage::determineAbsolutePaintRect):
19665        Use the Filter without casting it to SVGFilter.
19666        (WebCore::FEImage::platformApplySoftware):
19667        Ditto.
19668
19669        * svg/graphics/filters/SVGFilter.cpp:
19670        (WebCore::SVGFilter::SVGFilter):
19671        Pass the transform to the base class, and remove initialization of a
19672        removed member var.
19673
19674        * svg/graphics/filters/SVGFilter.h:
19675        Member var moved to Filter.h.
19676
196772014-04-14  Darin Adler  <darin@apple.com>
19678
19679        REGRESSION (r158617): Find on Page can get stuck in a loop when the search string occurs in an <input> in a <fieldset>
19680        https://bugs.webkit.org/show_bug.cgi?id=126322
19681
19682        Reviewed by Ryosuke Niwa.
19683
19684        One additional tweak to the fix for the bug above.
19685        Fixes crash in editing/editability/ignored-content.html test.
19686
19687        * html/HTMLObjectElement.cpp:
19688        (WebCore::HTMLObjectElement::canContainRangeEndPoint): Call through to
19689        HTMLElement::canContainRangeEndPoint, bypassing HTMLPlugInElement override
19690        that always returns false. Without this change, this function was always
19691        returning false.
19692
196932014-04-14  Simon Fraser  <simon.fraser@apple.com>
19694
19695        Crash in TileController::tileRevalidationTimerFired
19696        https://bugs.webkit.org/show_bug.cgi?id=131656
19697        <rdar://problem/16583166>
19698
19699        Reviewed by Sam Weinig.
19700
19701        It's possible for the TileController revalidation timer to fire after
19702        the GraphicsLayer has been destroyed, so the PlatformCALayer no longer
19703        has an owningGraphicsLayer.
19704        
19705        Bail from the timer callback if owningGraphicsLayer() is null.
19706        
19707        Also some drive-by 0 -> nullptr changes.
19708
19709        * platform/graphics/ca/GraphicsLayerCA.cpp:
19710        (WebCore::GraphicsLayerCA::willBeDestroyed):
19711        * platform/graphics/ca/PlatformCALayer.cpp:
19712        (WebCore::PlatformCALayer::~PlatformCALayer):
19713        * platform/graphics/ca/mac/TileController.mm:
19714        (WebCore::TileController::tileRevalidationTimerFired):
19715
197162014-04-14  Bem Jones-Bey  <bjonesbe@adobe.com>
19717
19718        [CSS Shapes] Remove some leftover shape-inside code
19719        https://bugs.webkit.org/show_bug.cgi?id=131641
19720
19721        Reviewed by Dean Jackson.
19722
19723        I discovered that some code had been leftover from the shape-inside
19724        removal. This removes that leftover code.
19725
19726        No new tests, no behavior change.
19727
19728        * platform/text/BidiResolver.h:
19729        * rendering/BidiRun.cpp:
19730        (WebCore::BidiRun::BidiRun):
19731        * rendering/RenderBlockFlow.h:
19732        * rendering/RenderBlockLineLayout.cpp:
19733        (WebCore::RenderBlockFlow::createLineBoxes):
19734        (WebCore::RenderBlockFlow::constructLine):
19735        (WebCore::computeExpansionForJustifiedText):
19736        (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):
19737
197382014-04-14  Jer Noble  <jer.noble@apple.com>
19739
19740        [MSE][Mac] video.currentTime is sometimes negative.
19741        https://bugs.webkit.org/show_bug.cgi?id=131644
19742
19743        Reviewed by Eric Carlson.
19744
19745        AVSampleBufferRenderSynchronizer will occasionally return slightly negative values
19746        when beginning playback. Clamp the return value to 0.
19747
19748        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
19749        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentTimeDouble):
19750
197512014-04-14  Bem Jones-Bey  <bjonesbe@adobe.com>
19752
19753        [CSSExclusions] Remove FIXME referencing closed bug
19754        https://bugs.webkit.org/show_bug.cgi?id=131645
19755
19756        Reviewed by Dean Jackson.
19757
19758        This is silly, but the comment is really confusing as it's entirely
19759        wrong now.
19760
19761        No new tests, no behavior change.
19762
19763        * rendering/style/RenderStyle.cpp:
19764        (WebCore::RenderStyle::changeRequiresRepaint):
19765
197662014-04-14  Andreas Kling  <akling@apple.com>
19767
19768        Build fixage.
19769
19770        * page/FrameView.cpp:
19771
197722014-04-14  Jon Honeycutt  <jhoneycutt@apple.com>
19773
19774        Assertion failure !node || node->isElementNode() in
19775        WebCore::RenderBlock::inlineElementContinuation
19776  
19777        https://bugs.webkit.org/show_bug.cgi?id=108829
19778        <rdar://problem/13666405>
19779  
19780        I can't reproduce this assertion failure, but there seems to be an
19781        invalid assumption in RenderBlock::inlineElementContinuation() that
19782        anything with the "isInline()" bit set is a RenderInline.
19783        
19784        No new test because the test case in the bug does not repro for me.
19785
19786        Reviewed by Brent Fulgham.
19787
19788        * rendering/RenderBlock.cpp:
19789        (WebCore::RenderBlock::inlineElementContinuation):
19790        Dave Hyatt says that this function should only return RenderInline
19791        objects (not non-RenderInline inline objects), so update the checks
19792        from isInline() to isRenderInline() before casting with
19793        toRenderInline().
19794
19795        * rendering/RenderInline.cpp:
19796        (WebCore::RenderInline::inlineElementContinuation):
19797        Ditto.
19798
197992014-04-14  Andreas Kling  <akling@apple.com>
19800
19801        Do more things under memory pressure on non-iOS platforms.
19802        <https://webkit.org/b/131625>
19803
19804        Reviewed by Antti Koivisto.
19805
19806        Rename hasReceivedMemoryPressure() to isUnderMemoryPressure() and
19807        make it use std::atomic<bool> instead of OSAtomic primitives.
19808
19809        Unmask most of the PLATFORM(IOS) blocks so all platforms can take
19810        advantage of optimizations done while under pressure. Note that
19811        isUnderMemoryPressure() will still always return false on platforms
19812        other than iOS/WK1, but this will change soon.
19813
19814        * history/PageCache.cpp:
19815        (WebCore::PageCache::canCache):
19816        * loader/FrameLoader.cpp:
19817        (WebCore::FrameLoader::commitProvisionalLoad):
19818        * page/FrameView.cpp:
19819        (WebCore::FrameView::willPaintContents):
19820        (WebCore::FrameView::didPaintContents):
19821        * platform/MemoryPressureHandler.cpp:
19822        (WebCore::MemoryPressureHandler::MemoryPressureHandler):
19823        * platform/MemoryPressureHandler.h:
19824        (WebCore::MemoryPressureHandler::isUnderMemoryPressure):
19825        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
19826        (WebCore::MemoryPressureHandler::setReceivedMemoryPressure):
19827        (WebCore::MemoryPressureHandler::clearMemoryPressure):
19828        (WebCore::MemoryPressureHandler::respondToMemoryPressureIfNeeded):
19829        (WebCore::MemoryPressureHandler::hasReceivedMemoryPressure): Deleted.
19830        * platform/graphics/FontCache.cpp:
19831        (WebCore::FontCache::purgeInactiveFontDataIfNeeded):
19832        * platform/ios/LegacyTileCache.mm:
19833        (WebCore::LegacyTileCache::createTilesInActiveGrid):
19834        * platform/ios/LegacyTileGrid.mm:
19835        (WebCore::LegacyTileGrid::shouldUseMinimalTileCoverage):
19836        * platform/ios/LegacyTileLayerPool.mm:
19837        (WebCore::LegacyTileLayerPool::addLayer):
19838        * platform/ios/TileControllerMemoryHandlerIOS.cpp:
19839        (WebCore::TileControllerMemoryHandler::tileControllerGainedUnparentedTiles):
19840
198412014-04-14  Beth Dakin  <bdakin@apple.com>
19842
19843        RenderLayerCompositor's m_layerForOverhangAreas should be offset by the 
19844        topContentInset
19845        https://bugs.webkit.org/show_bug.cgi?id=131632
19846        -and corresponding-
19847        <rdar://problem/16609602>
19848
19849        Reviewed by Tim Horton.
19850
19851        Offset m_layerForOverhangAreas by the topContentInset. 
19852        * rendering/RenderLayerCompositor.cpp:
19853        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
19854
198552014-04-14  Alexey Proskuryakov  <ap@apple.com>
19856
19857        Eliminate CachedFrame::m_mousePressNode
19858        https://bugs.webkit.org/show_bug.cgi?id=131626
19859
19860        Reviewed by Brady Eidson.
19861
19862        I couldn't find any observable effect of this change.
19863
19864        * history/CachedFrame.cpp:
19865        (WebCore::CachedFrameBase::CachedFrameBase):
19866        (WebCore::CachedFrameBase::restore):
19867        (WebCore::CachedFrame::clear):
19868        * history/CachedFrame.h:
19869        (WebCore::CachedFrame::documentLoader):
19870        (WebCore::CachedFrame::mousePressNode): Deleted.
19871        Eliminated m_mousePressNode, accessor, and code that reached out to EventHandler.
19872
19873        * page/EventHandler.cpp:
19874        (WebCore::EventHandler::mousePressNode): Deleted.
19875        (WebCore::EventHandler::setMousePressNode): Deleted.
19876        * page/EventHandler.h:
19877        (WebCore::EventHandler::setMousePressed): Deleted. This function was already unused.
19878
198792014-04-14  Simon Fraser  <simon.fraser@apple.com>
19880
19881        Run filter animations in the UI process with UI-side compositing
19882        https://bugs.webkit.org/show_bug.cgi?id=131199
19883        <rdar://problem/16479487>
19884
19885        Reviewed by Sam Weinig.
19886
19887        Add FilterOperation::clone() which is used during decoding.
19888        Export some things.
19889
19890        * WebCore.exp.in:
19891        * platform/graphics/filters/FilterOperation.h:
19892
198932014-04-14  Jer Noble  <jer.noble@apple.com>
19894
19895        Use after free in WebCore::CachedResourceHandleBase::~CachedResourceHandleBase / WebCore::removeDetachedChildrenInContainer
19896        https://bugs.webkit.org/show_bug.cgi?id=131169
19897
19898        Reviewed by Eric Carlson.
19899
19900        Invalidate the WebCoreAVFResourceLoader owned by MediaPlayerPrivateAVFoundationObjC
19901        in its destructor, to prevent a private function being called in response to the
19902        WebCoreAVFResourceLoader being stopped.
19903
19904        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
19905        (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
19906        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
19907        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
19908        (WebCore::WebCoreAVFResourceLoader::invalidate):
19909
199102014-04-14  Simon Fraser  <simon.fraser@apple.com>
19911
19912        [WK2 iOS] Scrolling to anchor links is broken
19913        https://bugs.webkit.org/show_bug.cgi?id=131618
19914        <rdar://problem/16599144>
19915
19916        Reviewed by Tim Horton.
19917
19918        Have ScrollingTreeScrollingNode pass RequestedScrollPosition updates
19919        to the scrolling tree, so that the scrolling tree can have custom behavior
19920        for them if necessary.
19921
19922        * page/scrolling/ScrollingTree.h:
19923        (WebCore::ScrollingTree::scrollingTreeNodeRequestsScroll):
19924        * page/scrolling/ScrollingTreeScrollingNode.cpp:
19925        (WebCore::ScrollingTreeScrollingNode::updateAfterChildren):
19926        * page/scrolling/ScrollingTreeScrollingNode.h:
19927
199282014-04-14  Brian J. Burg  <burg@cs.washington.edu>
19929
19930        Web Replay: memoize fallback time values for document.lastModified
19931        https://bugs.webkit.org/show_bug.cgi?id=131318
19932
19933        Reviewed by Joseph Pecoraro.
19934
19935        If a document's Last-Modified header can't be found or used, then 
19936        document.lastModified is derived from the current system time or
19937        from filesystem data, which is obviously nondeterministic.
19938
19939        It's better to handle this inside Document::lastModified rather than using
19940        MemoizedDOMResult, because only the fallback case is nondeterministic.
19941
19942        Test: http/tests/inspector/replay/document-last-modified-fallback-value.html
19943
19944        * dom/Document.cpp:
19945        (WebCore::Document::lastModified): Save or reuse memoized fallback value.
19946        * replay/WebInputs.json: Add input DocumentLastModifiedDate.
19947
199482014-04-12  Antti Koivisto  <antti@apple.com>
19949
19950        Keep secondary tile grid for zoomed-out scale
19951        https://bugs.webkit.org/show_bug.cgi?id=131586
19952
19953        Reviewed by Darin Adler.
19954
19955        * platform/graphics/ca/GraphicsLayerCA.cpp:
19956        (WebCore::GraphicsLayerCA::updateContentsScale):
19957        
19958            Don't repaint tiled backing with setNeedsDisplay, it invalidates itself correctly in setContentsScale.
19959            Update custom child layers when tiled backing scale changes.
19960
19961        * platform/graphics/ca/mac/TileController.h:
19962        * platform/graphics/ca/mac/TileController.mm:
19963        (WebCore::TileController::TileController):
19964        (WebCore::TileController::setNeedsDisplay):
19965        
19966            Drop the whole zoomed-out grid on full repaint.
19967
19968        (WebCore::TileController::setNeedsDisplayInRect):
19969            
19970            Drop changed zoomed-out tiles. A more sophisticated strategy is possible.
19971
19972        (WebCore::TileController::setContentsScale):
19973        
19974            Swap the zoomed-out grid in and out as needed.
19975            Repaint the active grid after scale change so the client does not have to.
19976
19977        (WebCore::TileController::contentsScale):
19978        
19979            Get the content scale from the tile grid so it is not kept in two places.
19980
19981        (WebCore::TileController::zoomedOutContentsScale):
19982        (WebCore::TileController::setZoomedOutContentsScale):
19983        
19984            Drop the zoomed-out grid if it no longer matches the zoomed-out scale.
19985
19986        (WebCore::TileController::tileRevalidationTimerFired):
19987        (WebCore::TileController::retainedTileBackingStoreMemory):
19988        (WebCore::TileController::containerLayers):
19989        
19990            Return both zoomed-out tiles and the active tiles. Active tiles are on top.
19991
19992        (WebCore::TileController::numberOfUnparentedTiles):
19993        (WebCore::TileController::removeUnparentedTilesNow):
19994        * platform/graphics/ca/mac/TileGrid.h:
19995        * platform/graphics/ca/mac/TileGrid.mm:
19996        (WebCore::TileGrid::dropTilesInRect):
19997        
19998            Add a function for dropping tiles.
19999
20000        (WebCore::TileGrid::revalidateTiles):
20001
200022014-04-14  Oliver Hunt  <oliver@apple.com>
20003
20004        Update test result
20005
20006        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
20007        (WebCore::JSTestNondeterministicConstructor::finishCreation):
20008
200092014-04-14  Dirk Schulze  <krit@webkit.org>
20010
20011        Optimize Canvas fill and drawImage with SourceIn, DestinationIn, SourceOut, and DestinationAtop using transparencyLayer.
20012        https://bugs.webkit.org/show_bug.cgi?id=79659
20013
20014        Reviewed by Darin Adler.
20015
20016        Optimize fill() and fillRect() operations in Canvas on composited contexts by
20017        10 to 20 times on CG.
20018
20019        Replacing the ImageBuffer code by transparency layers allows the
20020        graphics library to optimize the drawing.
20021
20022        Doing the same for drawImage() would give performance regressions.
20023
20024        An inline function will create a transparency layer for CG. Cairo graphics
20025        does not composite correctly when a transparency layer gets created. 
20026        The inline function is just a NOOP for Cairo.
20027
20028        This fixes bug 131303 as well.
20029
20030        Added performance tests with r167124 already.
20031
20032        * html/canvas/CanvasRenderingContext2D.cpp:
20033        (WebCore::CanvasRenderingContext2D::fillInternal):
20034        (WebCore::CanvasRenderingContext2D::strokeInternal):
20035        (WebCore::CanvasRenderingContext2D::beginCompositeLayer):
20036        (WebCore::CanvasRenderingContext2D::endCompositeLayer):
20037        (WebCore::CanvasRenderingContext2D::fillRect):
20038        (WebCore::CanvasRenderingContext2D::strokeRect):
20039        (WebCore::CanvasRenderingContext2D::drawTextInternal):
20040        (WebCore::CanvasRenderingContext2D::fullCanvasCompositedFill): Deleted.
20041        * html/canvas/CanvasRenderingContext2D.h:
20042
200432014-04-14  Tim Horton  <timothy_horton@apple.com>
20044
20045        Lots of compositing test failures after r167152
20046        https://bugs.webkit.org/show_bug.cgi?id=131574
20047
20048        Reviewed by Darin Adler.
20049
20050        * platform/graphics/GraphicsLayer.cpp:
20051        (WebCore::dumpChildren):
20052        (WebCore::GraphicsLayer::dumpProperties):
20053        Make child-dumping recursive so that we can easily skip layers up to any depth.
20054
200552014-04-14  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
20056
20057        Fix incorrect indentations in CodeGeneratorJS.pm introduced in r165521
20058        https://bugs.webkit.org/show_bug.cgi?id=131613
20059
20060        Reviewed by Csaba Osztrogonác.
20061
20062        * bindings/scripts/CodeGeneratorJS.pm:
20063        (GenerateImplementation):
20064        Fixed 5-space indentation.
20065        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
20066        Updated the tests accordingly.
20067
200682014-04-14  Manuel Rego Casasnovas  <rego@igalia.com>
20069
20070        [JSC] CSSStyleDeclaration report incorrect descriptor
20071        https://bugs.webkit.org/show_bug.cgi?id=89697
20072
20073        Reviewed by Benjamin Poulain.
20074
20075        Change descriptor of CSSStyleDeclaration properties in order to have
20076        writable and enumerable attributes set to true. Configurable is kept to
20077        false since the property is not deleteable.
20078
20079        Test: fast/dom/CSSStyleDeclaration/cssstyledeclaration-properties-descriptor.html
20080
20081        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
20082        (WebCore::JSCSSStyleDeclaration::getOwnPropertySlotDelegate): Only set
20083        DontDelete attribute when creating the descriptor for
20084        CSSStyleDeclaration properties.
20085
200862014-04-14  Benjamin Poulain  <benjamin@webkit.org>
20087
20088        [JSC] Improve the call site of string comparison in some hot path
20089        https://bugs.webkit.org/show_bug.cgi?id=131605
20090
20091        Reviewed by Darin Adler.
20092
20093        * dom/NodeRareData.h:
20094        (WebCore::NodeListsNodeData::NodeListCacheMapEntryHash::equal):
20095        We should use the right comparison operation depending on the Hash Traits.
20096
200972014-04-14  Andreas Kling  <akling@apple.com>
20098
20099        Merge MemoryPressureHandler{Mac,IOS}.mm
20100        <https://webkit.org/b/131603>
20101
20102        Join the iOS and Mac platform implementations of MemoryPressureHandler
20103        under the shared Cocoa banner. Each platform still has its own quirky
20104        behavior, but this puts them in the same file so we can start sharing.
20105
20106        Reviewed by Darin Adler.
20107
20108        * WebCore.xcodeproj/project.pbxproj:
20109        * platform/cocoa/MemoryPressureHandlerCocoa.mm: Renamed from Source/WebCore/platform/mac/MemoryPressureHandlerMac.mm.
20110        (WebCore::MemoryPressureHandler::platformReleaseMemory):
20111        (WebCore::MemoryPressureHandler::install):
20112        (WebCore::MemoryPressureHandler::uninstall):
20113        (WebCore::MemoryPressureHandler::holdOff):
20114        (WebCore::MemoryPressureHandler::respondToMemoryPressure):
20115        (WebCore::respondToMemoryPressureCallback):
20116        (WebCore::MemoryPressureHandler::installMemoryReleaseBlock):
20117        (WebCore::MemoryPressureHandler::setReceivedMemoryPressure):
20118        (WebCore::MemoryPressureHandler::hasReceivedMemoryPressure):
20119        (WebCore::MemoryPressureHandler::clearMemoryPressure):
20120        (WebCore::MemoryPressureHandler::shouldWaitForMemoryClearMessage):
20121        (WebCore::MemoryPressureHandler::respondToMemoryPressureIfNeeded):
20122        * platform/ios/MemoryPressureHandlerIOS.mm: Removed.
20123
201242014-04-14  Benjamin Poulain  <benjamin@webkit.org>
20125
20126        CSS JIT: compile the :nth-child() pseudo class
20127        https://bugs.webkit.org/show_bug.cgi?id=131602
20128
20129        Reviewed by Andreas Kling.
20130
20131        Tests: fast/selectors/nth-child-bounds.html
20132               fast/selectors/nth-child-with-backtracking.html
20133
20134        Compile the :nth-child() pseudo class function + some related clean up.
20135
20136        * css/CSSSelector.cpp:
20137        (WebCore::CSSSelector::nthA):
20138        (WebCore::CSSSelector::nthB):
20139        Expose the parsed value of an+b filters. Those values are used to compile
20140        the selector.
20141
20142        (WebCore::CSSSelector::RareData::parseNth):
20143        While working on the patch, I discovered some severe issues with the parsing of large
20144        values of a and/or b. The problem comes from the way the CSS parser handle the values:
20145        the values are parsed as a double then converted to an AtomicString for CSSSelector.
20146
20147        There are many problems related to large values but we never got bug reports because
20148        they are very uncommon. Fixing those problem would require changing the parser.
20149
20150        Here, CSSSelector::RareData::parseNth() is hardened a little bit to avoid absurd values
20151        of a and b.
20152
20153        * css/CSSSelector.h:
20154        * cssjit/RegisterAllocator.h:
20155        It looks like I forgot RDX in the list of register. Add it now since it is required
20156        for SelectorCodeGenerator::modulo().
20157
20158        * cssjit/SelectorCompiler.cpp:
20159        (WebCore::SelectorCompiler::addPseudoType):
20160        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
20161        (WebCore::SelectorCompiler::SelectorCodeGenerator::modulo):
20162        (WebCore::SelectorCompiler::SelectorCodeGenerator::moduloIsZero):
20163        There is no modulo() operation exposed on the macro assemblers. This is a basic
20164        implementation on top of idiv for x86_64.
20165
20166        Since idiv works exclusively with RAX and RDX, most of the code is about getting
20167        those registers efficiently.
20168
20169        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
20170        (WebCore::SelectorCompiler::setElementChildIndex):
20171        (WebCore::SelectorCompiler::setElementChildIndexAndUpdateStyle):
20172        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
20173        This is pretty much a straightforward implementation of :nth-child().
20174        The first part counts the number of previous elements.
20175        The second part updates the tree if this is style resolution.
20176        The last part compares the number of previous siblings to an+b to find if the filter matches.
20177
20178        The only part that diverges from SelectorChecker is how childIndex is used. Instead of testing it
20179        at every iteration, only the first iteration handle the cache.
20180
20181        * dom/ElementRareData.h:
20182        (WebCore::ElementRareData::childIndexMemoryOffset):
20183        * dom/Node.h:
20184        (WebCore::Node::rareDataMemoryOffset):
20185        (WebCore::Node::flagHasRareData):
20186        * rendering/style/RenderStyle.h:
20187
201882014-04-14  Tim Horton  <timothy_horton@apple.com>
20189
20190        Support setting a background color on page overlays
20191        https://bugs.webkit.org/show_bug.cgi?id=131600
20192
20193        Reviewed by Darin Adler.
20194
20195        * rendering/RenderLayerCompositor.cpp:
20196        (WebCore::RenderLayerCompositor::setDocumentOverlayRootLayer):
20197        Mark the compositing tree as needing a rebuild when we get a new document-relative
20198        overlay layer; otherwise we were depending on something else coming along and
20199        requiring a rebuild, which didn't always happen.
20200
202012014-04-14  Mihnea Ovidenie  <mihnea@adobe.com>
20202
20203        [CSS Regions] Hit testing doesn't work in video
20204        https://bugs.webkit.org/show_bug.cgi?id=131485
20205
20206        Reviewed by Andrei Bucur.
20207
20208        When hit testing flow thread layer through the region layer,
20209        we have to pass the depth sorting information and take that
20210        into account for the situation in which an ancestor of the region
20211        has preserve-3d transform style.
20212
20213        Test: fast/regions/hit-test-region-preserve3d-container.html
20214
20215        * rendering/RenderLayer.cpp:
20216        (WebCore::RenderLayer::hitTestLayer):
20217        (WebCore::RenderLayer::hitTestFlowThreadIfRegionForFragments):
20218        * rendering/RenderLayer.h:
20219
202202014-04-13  Darin Adler  <darin@apple.com>
20221
20222        userVisibleString should not try to "encode" host names
20223        https://bugs.webkit.org/show_bug.cgi?id=131587
20224        rdar://problem/14686849
20225
20226        Reviewed by Alexey Proskuryakov.
20227
20228        * WebCore.exp.in: Updated for WebCoreNSURLExtras argument type changes.
20229
20230        * platform/mac/WebCoreNSURLExtras.h: Removed unneeded code to make this
20231        Objective-C++ header compile in plain C++ files, which we never need to do.
20232        Added missing argument name, baseURL, and changed mysterious CFIndex arguments
20233        to the correct type, CFURLComponentType.
20234
20235        * platform/mac/WebCoreNSURLExtras.mm:
20236        (WebCore::isLookalikeCharacter): Removed the inline keyword from this, and added
20237        more lookalike characters from the Mozilla list referenced here.
20238        (WebCore::URLByTruncatingOneCharacterBeforeComponent): Updated argument type.
20239        (WebCore::dataForURLComponentType): Ditto.
20240        (WebCore::userVisibleString): Only call mapHostNames if host name decoding is
20241        needed; no encoding here.
20242
202432014-04-13  Darin Adler  <darin@apple.com>
20244
20245        REGRESSION (r158617): Find on Page can get stuck in a loop when the search string occurs in an <input> in a <fieldset>
20246        https://bugs.webkit.org/show_bug.cgi?id=126322
20247
20248        Reviewed by Ryosuke Niwa.
20249
20250        * dom/Element.cpp:
20251        (WebCore::Element::canContainRangeEndPoint): Now returns false when the role of the element
20252        is "img". This is the same rule that's hard-coded in isRenderReplacedElement for the same
20253        reason. Need more test coverage to make sure this role feature works consistently.
20254
20255        * dom/Element.h: Made canContainRangeEndPoint no longer inline since it's not just a
20256        return statement any more.
20257
20258        * dom/Position.cpp:
20259        (WebCore::Position::isCandidate): Took out code that calls isRendererReplacedElement
20260        that was added in r158617; not needed now that we updated canContainRangeEndPoint.
20261
20262        * dom/Range.cpp:
20263        (WebCore::Range::firstNode): Removed code here that called isRendererReplacedElement.
20264        This was the wrong level to be adding editing logic, and there's a FIXME here to that
20265        effect, which we are now deleting. This was the change that broke Find.
20266
20267        * editing/TextIterator.cpp: Added a comment about the redundancy between the
20268        isRendererReplacedElement and editingIgnoresContent functions.
20269
20270        * html/HTMLHRElement.cpp:
20271        (WebCore::HTMLHRElement::canContainRangeEndPoint): Call through to base class instead
20272        of just returning true when we have child nodes. Lets Element::canContainRangeEndPoint
20273        do its thing.
20274        * html/HTMLHRElement.h: Ditto.
20275
20276        * html/HTMLObjectElement.cpp:
20277        (WebCore::HTMLObjectElement::canContainRangeEndPoint): Call through to base class instead
20278        of just returning true when we have fallback content. Lets Element::canContainRangeEndPoint
20279        do its thing.
20280        * html/HTMLObjectElement.h: Ditto.
20281
20282        * testing/Internals.cpp:
20283        (WebCore::Internals::countMatchesForText): Set the limit to 1000 instead of infinite.
20284
202852014-04-12  Darin Adler  <darin@apple.com>
20286
20287        Use unique_ptr for FillLayer::m_next
20288        https://bugs.webkit.org/show_bug.cgi?id=75222
20289
20290        Reviewed by Dan Bernstein.
20291
20292        * css/DeprecatedStyleBuilder.cpp:
20293        (WebCore::ApplyPropertyFillLayer::applyInheritValue):
20294        Renamed currChild to just child and prevChild to previousChild.
20295        Changed code to pass ownership of the new FillLayer immediately.
20296        Changed some loops to be for loops.
20297        (WebCore::ApplyPropertyFillLayer::applyInitialValue): Ditto.
20298        (WebCore::ApplyPropertyFillLayer::applyValue): Ditto.
20299
20300        * rendering/RenderBox.cpp:
20301        (WebCore::RenderBox::backgroundHasOpaqueTopLayer): Use reference
20302        instead of pointer.
20303        (WebCore::RenderBox::paintFillLayers): Ditto.
20304        * rendering/RenderBoxModelObject.cpp:
20305        (WebCore::RenderBoxModelObject::paintFillLayerExtended): Ditto.
20306
20307        * rendering/style/FillLayer.cpp:
20308        (WebCore::FillLayer::FillLayer): Removed m_next initializer since it is now an
20309        OwnPtr and initializes automatically. In a couple other places, changed m_next
20310        initializer to use make_unique.
20311        (WebCore::FillLayer::~FillLayer): Wrote loop for deletion of m_next.
20312        (WebCore::FillLayer::operator=): Removed unneeded explicit deletion of m_next.
20313        (WebCore::FillLayer::cullEmptyLayers): Ditto.
20314        (WebCore::clipMax): Marked inline.
20315        (WebCore::FillLayer::computeClipMax): Rewrote to use a loop instead of recursion.
20316        (WebCore::FillLayer::containsImage): Ditto.
20317        (WebCore::FillLayer::imagesAreLoaded): Ditto.
20318        (WebCore::FillLayer::hasOpaqueImage): Rewrote to use && instead of multiple if.
20319        (WebCore::FillLayer::hasImage): Rewrote to use a loop instead of recursion.
20320        (WebCore::FillLayer::hasFixedImage): Ditto.
20321
20322        * rendering/style/FillLayer.h: Changed m_next to be a unique_ptr.
20323
203242014-04-13  Andy Estes  <aestes@apple.com>
20325
20326        [QuickLook] Move file system-related code into WebKit
20327        https://bugs.webkit.org/show_bug.cgi?id=131597
20328
20329        Reviewed by Dan Bernstein.
20330
20331        QuickLookHandle should not be responsible for saving a copy of the
20332        original document to disk as it might be running in a process that
20333        either can't write to disk or can only write into a sandboxed
20334        container. To account for this, we need to separate the concern of
20335        quick look conversion from that of original document saving so that
20336        each activity can run in the appropriate process.
20337
20338        Created a new interface between WebCore and WebKit by adding a client
20339        (QuickLookHandleClient) to QuickLookHandle which is notified of incoming
20340        bytes. A new function on FrameLoaderClient tells WebKit when a new
20341        QuickLookHandle is created, giving WebKit the opportunity to register a
20342        handle client. Moved the existing file system-related code as well as
20343        code only needed by WebKit1 in QuickLookHandle into a new WebKit1
20344        QuickLookHandleClient subclass.
20345
20346        * WebCore.exp.in:
20347        * WebCore.xcodeproj/project.pbxproj: Made QuickLookHandleClient.h Private.
20348        * loader/FrameLoaderClient.h:
20349        (WebCore::FrameLoaderClient::didCreateQuickLookHandle): Added.
20350        * loader/ResourceLoader.cpp:
20351        (WebCore::ResourceLoader::didCreateQuickLookHandle): Called FrameLoaderClient::didCreateQuickLookHandle().
20352        * loader/ResourceLoader.h:
20353        * platform/network/ResourceHandle.h: Made m_quickLook a unique_ptr.
20354        (WebCore::ResourceHandle::setQuickLookHandle): Changed to take a unique_ptr.
20355        * platform/network/ResourceHandleClient.h:
20356        (WebCore::ResourceHandleClient::didCreateQuickLookHandle): Added.
20357        * platform/network/ios/QuickLook.h: Added m_client, gave m_converter a stronger type, and made m_nsResponse a RetainPtr.
20358        (WebCore::QuickLookHandle::setClient): Added.
20359        (WebCore::QuickLookHandle::firstRequestURL): Added.
20360        (WebCore::QuickLookHandle::converter): Added.
20361        * platform/network/ios/QuickLook.mm:
20362        (WebCore::registerQLPreviewConverterIfNeeded):
20363        (WebCore::createTemporaryFileForQuickLook): Made non-static.
20364        (WebCore::emptyClient): Returned a shared empty QuickLookHandleClient.
20365        (WebCore::QuickLookHandle::QuickLookHandle): Removed file system and WebKit1-only code.
20366        (WebCore::QuickLookHandle::create): Changed to return a unique_ptr.
20367        (WebCore::QuickLookHandle::nsResponse):
20368        (WebCore::QuickLookHandle::didReceiveDataArray): Removed file system code and called QuickLookHandleClient::didReceiveDataArray() instead.
20369        (WebCore::QuickLookHandle::didReceiveData): Removed file system code and called QuickLookHandleClient::didReceiveData() instead.
20370        (WebCore::QuickLookHandle::didFinishLoading): Removed file system code and called QuickLookHandleClient::didFinishLoading() instead.
20371        (WebCore::QuickLookHandle::didFail): Removed file system and WebKit1-only code, calling QuickLookHandleClient::didFail() instead.
20372        (WebCore::QuickLookHandle::~QuickLookHandle): Removed file system and WebKit1-only code. Cleared our reference to m_client.
20373        (WebCore::QuickLookHandle::previewFileName): Retrieved from m_converter.
20374        (WebCore::QuickLookHandle::previewRequestURL): Ditto.
20375        * platform/network/ios/QuickLookHandleClient.h: Added.
20376        (WebCore::QuickLookHandleClient::~QuickLookHandleClient):
20377        (WebCore::QuickLookHandleClient::didReceiveDataArray):
20378        (WebCore::QuickLookHandleClient::didReceiveData):
20379        (WebCore::QuickLookHandleClient::didFinishLoading):
20380        (WebCore::QuickLookHandleClient::didFail):
20381
203822014-04-10  Pratik Solanki  <psolanki@apple.com>
20383
20384        Move early return out of dispatch_async() block so we can return from willSendRequest quickly
20385        https://bugs.webkit.org/show_bug.cgi?id=131478
20386        <rdar://problem/16575535>
20387
20388        Reviewed by Alexey Proskuryakov.
20389
20390        Do a quick check to see if we need to synthesize the redirect response on the dispatch queue
20391        and return from willSendRequest callback quickly instead of always doing an effectively synchronous
20392        call to the main thread. We can't call synthesizeRedirectResponseIfNecessary on the dispatch
20393        queue since that accesses the ResourceRequest.
20394
20395        No new tests because no change in functionality.
20396
20397        * platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
20398        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
20399        (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::setupRequest): Save the
20400        request scheme to use later for early return from willSendRequest.
20401        (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
20402
204032014-04-08  Oliver Hunt  <oliver@apple.com>
20404
20405        Rewrite Function.bind as a builtin
20406        https://bugs.webkit.org/show_bug.cgi?id=131083
20407
20408        Reviewed by Geoffrey Garen.
20409
20410        Switch WebCore to use the helper functions when defining the
20411        prototype properties on DOM constructors, and update bindings
20412        tests accordingly.
20413
20414        * bindings/js/JSImageConstructor.cpp:
20415        (WebCore::JSImageConstructor::finishCreation):
20416        * bindings/scripts/CodeGeneratorJS.pm:
20417        (GenerateConstructorHelperMethods):
20418        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
20419        (WebCore::JSTestActiveDOMObjectConstructor::finishCreation):
20420        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
20421        (WebCore::JSTestCustomNamedGetterConstructor::finishCreation):
20422        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
20423        (WebCore::JSTestEventConstructorConstructor::finishCreation):
20424        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
20425        (WebCore::JSTestEventTargetConstructor::finishCreation):
20426        * bindings/scripts/test/JS/JSTestException.cpp:
20427        (WebCore::JSTestExceptionConstructor::finishCreation):
20428        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
20429        (WebCore::JSTestGenerateIsReachableConstructor::finishCreation):
20430        * bindings/scripts/test/JS/JSTestInterface.cpp:
20431        (WebCore::JSTestInterfaceConstructor::finishCreation):
20432        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
20433        (WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):
20434        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
20435        (WebCore::JSTestNamedConstructorConstructor::finishCreation):
20436        (WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
20437        * bindings/scripts/test/JS/JSTestNode.cpp:
20438        (WebCore::JSTestNodeConstructor::finishCreation):
20439        * bindings/scripts/test/JS/JSTestObj.cpp:
20440        (WebCore::JSTestObjConstructor::finishCreation):
20441        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
20442        (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
20443        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
20444        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
20445        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
20446        (WebCore::JSTestTypedefsConstructor::finishCreation):
20447        * bindings/scripts/test/JS/JSattribute.cpp:
20448        (WebCore::JSattributeConstructor::finishCreation):
20449        * bindings/scripts/test/JS/JSreadonly.cpp:
20450        (WebCore::JSreadonlyConstructor::finishCreation):
20451
204522014-04-13  Simon Fraser  <simon.fraser@apple.com>
20453
20454        [iOS WK2] Hook up scrolling tree nodes when coming out of the page cache
20455        https://bugs.webkit.org/show_bug.cgi?id=131577
20456
20457        Reviewed by Tim Horton.
20458
20459        The call to scrollingCoordinator->frameViewRootLayerDidChange() was inside
20460        a #if !PLATFORM(IOS) block, but now that we use the ScrollingCoordinator
20461        for WK2 we want to call this.
20462
20463        * loader/HistoryController.cpp:
20464        (WebCore::HistoryController::restoreScrollPositionAndViewState):
20465
204662014-04-13  Zan Dobersek  <zdobersek@igalia.com>
20467
20468        Unreviewed build fix after r167196.
20469
20470        * platform/RemoteCommandListener.cpp:
20471        (WebCore::RemoteCommandListener::create): Fall back to using the new operator
20472        for allocating RemoteCommandListener object. Using std::make_unique() requires
20473        for the operator to be public, which doesn't work well with the static create()
20474        method.
20475
204762014-04-13  Zan Dobersek  <zdobersek@igalia.com>
20477
20478        Remove unnecessary uses of std::move() in return statements
20479        https://bugs.webkit.org/show_bug.cgi?id=131457
20480
20481        Reviewed by Darin Adler.
20482
20483        Don't use std::move() in return statements unless necessary as it inhibits
20484        named return value optimizations as performed by compilers.
20485
20486        * Modules/battery/BatteryManager.cpp:
20487        (WebCore::BatteryManager::create):
20488        * html/FormController.cpp:
20489        (WebCore::FormController::createSavedFormStateMap):
20490        * html/canvas/WebGLRenderingContext.cpp:
20491        (WebCore::WebGLRenderingContext::create):
20492        * platform/RemoteCommandListener.cpp:
20493        (WebCore::RemoteCommandListener::create):
20494        * platform/graphics/ca/GraphicsLayerCA.cpp:
20495        (WebCore::GraphicsLayer::create):
20496        * platform/ios/RemoteCommandListenerIOS.mm:
20497        (WebCore::RemoteCommandListener::create):
20498        * rendering/RenderGrid.cpp:
20499        (WebCore::RenderGrid::GridIterator::nextEmptyGridArea):
20500        * rendering/RenderLayer.cpp:
20501        (WebCore::RenderLayer::setupFilters):
20502        * rendering/style/CounterDirectives.cpp:
20503        (WebCore::clone):
20504
205052014-04-13  Commit Queue  <commit-queue@webkit.org>
20506
20507        Unreviewed, rolling out r167168 and r167194.
20508        https://bugs.webkit.org/show_bug.cgi?id=131589
20509
20510        Caused massive ASSERTION failures on the GTK Debug bot
20511        (Requested by philn on #webkit).
20512
20513        Reverted changesets:
20514
20515        "[GTK] Add HighDPI support for non-accelerated compositing
20516        contents"
20517        https://bugs.webkit.org/show_bug.cgi?id=131562
20518        http://trac.webkit.org/changeset/167168
20519
20520        "Unreviewed. Fix GTK+ build with recent cairo and GTK+ after
20521        r167168."
20522        http://trac.webkit.org/changeset/167194
20523
205242014-04-13  Youenn Fablet  <youenn.fablet@crf.canon.fr>
20525
20526        [GStreamer] No CORS support for media elements
20527        https://bugs.webkit.org/show_bug.cgi?id=99037
20528
20529        Reviewed by Philippe Normand.
20530
20531        Added CORS access control check to media sources when crossorigin attribute is set.
20532
20533        Added getter to CORS access control check status (used to compute whether the stream is tainted or not).
20534        Related test is http/tests/security/video-cross-origin-readback.html.
20535
20536        Disabled access to cross-origin streams that fail CORS check when crossorigin attribute is set.
20537        Related test is http/tests/security/video-cross-origin-accessfailure.html.
20538
20539        Tests: http/tests/security/video-cross-origin-accessfailure.html
20540               http/tests/security/video-cross-origin-accesssameorigin.html
20541
20542        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
20543        (WebCore::MediaPlayerPrivateGStreamer::didPassCORSAccessCheck): Return whether media is cross-origin (tainted) or not by querying the gstreamer source layer.
20544        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Added MediaPlayerPrivateGStreamer::didPassCORSAccessCheck declaration.
20545        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
20546        (webKitWebSrcStart): Passed CORS mode parameter to the streaming client. In case of CORS check failure, stop the resource loading.
20547        (webKitSrcPassedCORSAccessCheck): Return whether CORS access control check was done and successful.
20548        (StreamingClient::handleResponseReceived): Take a parameter to assign the CORS access control check result.
20549        (CachedResourceStreamingClient::CachedResourceStreamingClient): Updated setting of the ResourceLoaderOptions according CORS mode.
20550        (CachedResourceStreamingClient::responseReceived): Check CORS and pass result to handleResponseReceived.
20551        (ResourceHandleStreamingClient::didReceiveResponse): No CORS check.
20552        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.h: Added webKitSrcPassedCORSAccessCheck declaration.
20553
205542014-04-12  Darin Adler  <darin@apple.com>
20555
20556        REGRESSION (r166860): ASSERTION FAILED: !isCalculated() on fast/css/image-set-value-not-removed-crash.html
20557        https://bugs.webkit.org/show_bug.cgi?id=131480
20558
20559        Reviewed by Andreas Kling.
20560
20561        Fixes intermittent assertion failure in fast/css/image-set-value-not-removed-crash.html.
20562
20563        * css/CSSComputedStyleDeclaration.cpp:
20564        (WebCore::valueForImageSliceSide): Added. Helper used below in valueForNinePieceImageSlice.
20565        Handles calculated values by returning 0; incorrect but predictable.
20566        (WebCore::valueForNinePieceImageSlice): Updated to call valueForImageSliceSide.
20567        (WebCore::positionOffsetValue): Use nullptr.
20568        (WebCore::ComputedStyleExtractor::propertyValue): Updated to call positionOffsetValue
20569        by its new name. Removed "get" from the name.
20570        (WebCore::positionOffsetValue): Renamed from getPositionOffsetValue.
20571
20572        * platform/Length.h: Made isCalculated public.
20573
205742014-04-12  Andy Estes  <aestes@apple.com>
20575
20576        Fix the iOS build after r167183.
20577
20578        * platform/network/ResourceHandle.h:
20579        * platform/network/cf/ResourceHandleCFNet.cpp:
20580        (WebCore::ResourceHandle::schedule):
20581        (WebCore::ResourceHandle::unschedule):
20582
205832014-04-12  Andy Estes  <aestes@apple.com>
20584
20585        [iOS] Move QuickLookHandle from ResourceLoader to WebResourceLoader
20586        https://bugs.webkit.org/show_bug.cgi?id=131580
20587
20588        Reviewed by Darin Adler.
20589
20590        There's no need to bloat WebKit1's ResourceLoader with a pointer that
20591        only WebKit2's WebResourceLoader cares about.
20592
20593        * loader/ResourceLoader.h:
20594        (WebCore::ResourceLoader::quickLookHandle): Deleted.
20595        (WebCore::ResourceLoader::setQuickLookHandle): Deleted.
20596
205972014-04-12  Chris Fleizach  <cfleizach@apple.com>
20598
20599        AX: Cleanup AccessibilityObject::getAttribute
20600        https://bugs.webkit.org/show_bug.cgi?id=131555
20601
20602        Reviewed by Darin Adler.
20603
20604        No new functionality.
20605
20606        * accessibility/AccessibilityObject.cpp:
20607        (WebCore::AccessibilityObject::getAttribute):
20608
206092014-04-12  Youenn Fablet  <youenn.fablet@crf.canon.fr>
20610
20611        [SOUP] Libsoup internal credential setting should be controlled by loader decision
20612        https://bugs.webkit.org/show_bug.cgi?id=130963
20613
20614        Reviewed by Darin Adler.
20615
20616        Disabled libsoup internal authentication manager for messages for which no credential is available and no stored credentials should be used.
20617        Updated synchronous loader to return whether using credentials or not according StoredCredential loader option parameter.
20618        Unskipped test http/tests/xmlhttprequest/cross-origin-no-authorization.html covers the patch.
20619
20620        * platform/network/ResourceHandleInternal.h:
20621        (WebCore::ResourceHandleInternal::ResourceHandleInternal): Added m_useAuthenticationManager boolean to control whether disable authentication manager or not.
20622        * platform/network/soup/ResourceHandleSoup.cpp:
20623        (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader): Added m_storedCredentials member.
20624        (WebCore::WebCoreSynchronousLoader::shouldUseCredentialStorage): Return true if stored credentials are allowed.
20625        (WebCore::applyAuthenticationToRequest): Set m_useAuthenticationManager value to disable authentication manager if cannot use stored credentials and ResourceHandleInternal has no username and password.
20626        (WebCore::createSoupMessageForHandleAndRequest): Disable authentication mananger according m_useAuthenticationManager value.
20627        (WebCore::ResourceHandle::platformLoadResourceSynchronously): Added StoredCredentials loader option to the sync loader constructor.
20628
206292014-04-11  Darin Adler  <darin@apple.com>
20630
20631        Some small loader refinements and refactoring
20632        https://bugs.webkit.org/show_bug.cgi?id=131541
20633
20634        Reviewed by Alexey Proskuryakov.
20635
20636        Cut down on use of ResourceLoader::handle, which always returns null when
20637        using a network process. Also streamlined conditionals and did some other
20638        small refactoring.
20639
20640        * loader/DocumentLoader.h: Use references rather than pointers for SchedulePair.
20641
20642        * loader/ResourceLoader.cpp:
20643        (WebCore::ResourceLoader::didChangePriority): Use m_handle instead of handle(),
20644        since we'd like to delete handle() entirely soon.
20645        (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Ditto.
20646        (WebCore::ResourceLoader::schedule): Added.
20647        (WebCore::ResourceLoader::unschedule): Ditto.
20648        * loader/ResourceLoader.h: Rearranged header to eliminate nested conditionals.
20649        Added schedule and unschedule functions for Mac.
20650
20651        * loader/mac/DocumentLoaderMac.cpp:
20652        (WebCore::scheduleAll): Changed to take a reference and call ResourceLoader::schedule.
20653        (WebCore::unscheduleAll): Ditto.
20654        (WebCore::DocumentLoader::schedule): Ditto.
20655        (WebCore::DocumentLoader::unschedule): Ditto.
20656
20657        * page/mac/PageMac.cpp:
20658        (WebCore::Page::addSchedulePair): Pass a reference rather than a pointer to schedule.
20659        (WebCore::Page::removeSchedulePair): Ditto.
20660
20661        * platform/network/ResourceHandle.h: Did a bit of reformatting and reorganizing of
20662        conditionals.
20663
20664        * platform/network/ResourceHandleInternal.h: Removed a tiny bit of unneeded declaration.
20665
20666        * platform/network/mac/ResourceHandleMac.mm:
20667        (WebCore::ResourceHandle::schedule): Updated to take a reference rather than a pointer.
20668        (WebCore::ResourceHandle::unschedule): Ditto.
20669
206702014-04-11  Andreas Kling  <akling@apple.com>
20671
20672        Make NodeList.length inline-cacheable by JSC.
20673        <https://webkit.org/b/131579>
20674
20675        For objects with custom index or name getters, we have to make sure
20676        that builtin properties take precedence. We do this by scanning the
20677        ancestor chain for a suitable property slot before moving on to
20678        named items.
20679
20680        With this patch, we now mark such builtins as cacheable. This is
20681        safe since the whole point of doing this before processing named
20682        items is to ensure the same slot is returned consistently.
20683
20684        Reviewed by Benjamin Poulain.
20685
20686        * bindings/scripts/CodeGeneratorJS.pm:
20687        (GenerateGetOwnPropertySlotBody):
20688
206892014-04-11  Tim Horton  <timothy_horton@apple.com>
20690
20691        Lots of compositing test failures after r167152
20692        https://bugs.webkit.org/show_bug.cgi?id=131574
20693
20694        Reviewed by Simon Fraser.
20695
20696        * platform/graphics/GraphicsLayer.cpp:
20697        (WebCore::GraphicsLayer::dumpProperties):
20698        We were asking the parent's client whether the child should be dumped,
20699        but really the child's client is the one who should decide.
20700
207012014-04-11  Benjamin Poulain  <bpoulain@apple.com>
20702
20703        ViewportConfiguration::layoutWidth() compute the width incorrectly when initial-scale+width do not fit in view
20704        https://bugs.webkit.org/show_bug.cgi?id=131575
20705
20706        Reviewed by Enrica Casucci.
20707
20708        I made a mistake when writing the new viewport code: ViewportConfiguration::layoutWidth() uses m_contentSize in one place.
20709        That make no sense, contentSize depends on the layout width.
20710
20711        * page/ViewportConfiguration.cpp:
20712        (WebCore::ViewportConfiguration::layoutWidth):
20713
207142014-04-11  Andreas Kling  <akling@apple.com>
20715
20716        Remove "numeric index getter" stuff from bindings code generator.
20717        <https://webkit.org/b/131565>
20718
20719        This was used for an earlier generation of typed arrays. Now that JSC
20720        has native typed array support, we're not using this functionality and
20721        can just remove it.
20722
20723        Reviewed by Geoffrey Garen.
20724
20725        * bindings/scripts/CodeGeneratorJS.pm:
20726        (GenerateGetOwnPropertySlotBody):
20727        (HasComplexGetOwnProperty):
20728        (InterfaceRequiresAttributesOnInstance):
20729        (InstanceOverridesGetOwnPropertySlot):
20730        (GenerateHeader):
20731        (GenerateImplementation):
20732
207332014-04-11  Brian J. Burg  <burg@cs.washington.edu>
20734
20735        Web Replay: consolidate decoding macros used in SerializationMethods
20736        https://bugs.webkit.org/show_bug.cgi?id=131564
20737
20738        Reviewed by Timothy Hatcher.
20739
20740        We can use EncodingTraits<T>::DecodedType to create a local variable
20741        with the appropriate decoded type, rather than special casing.
20742
20743        * replay/SerializationMethods.cpp:
20744        (JSC::EncodingTraits<NondeterministicInputBase>::decodeValue):
20745        (JSC::EncodingTraits<KeypressCommand>::decodeValue):
20746        (JSC::EncodingTraits<PlatformKeyboardEvent>::decodeValue):
20747        (JSC::EncodingTraits<PlatformMouseEvent>::decodeValue):
20748        (JSC::EncodingTraits<PlatformWheelEvent>::decodeValue):
20749        (JSC::EncodingTraits<PluginData>::decodeValue):
20750
207512014-04-11  Beth Dakin  <bdakin@apple.com>
20752
20753        Need WK2 API to disable rubber-banding
20754        https://bugs.webkit.org/show_bug.cgi?id=131567
20755
20756        Reviewed by Simon Fraser.
20757
20758        Page will now store a vertical and horizontal ScrollElasticity in case the API has 
20759        been called before the FrameView even exists.
20760
20761        New Page functions.
20762        * WebCore.exp.in:
20763
20764        Use Page’s cached ScrollElasticity.
20765        * page/FrameView.cpp:
20766        (WebCore::FrameView::FrameView):
20767
20768        If there is already a FrameView, then assign it the new ScrollElasticity.
20769        * page/Page.cpp:
20770        (WebCore::Page::Page):
20771        (WebCore::Page::setVerticalScrollElasticity):
20772        (WebCore::Page::setHorizontalScrollElasticity):
20773        * page/Page.h:
20774        (WebCore::Page::verticalScrollElasticity):
20775        (WebCore::Page::horizontalScrollElasticity):
20776
207772014-04-11  Martin Robinson  <mrobinson@igalia.com>
20778
20779        REGRESSION(167145): Many media tests fail
20780        https://bugs.webkit.org/show_bug.cgi?id=131569
20781
20782        Reviewed by Brent Fulgham.
20783
20784        * PlatformGTK.cmake: Add the localized strings file to the list of user agent scripts.
20785        * platform/gtk/RenderThemeGtk.cpp:
20786        (WebCore::RenderThemeGtk::mediaControlsScript): Include the localized strings file in the script body.
20787
207882014-04-11  Tim Horton  <timothy_horton@apple.com>
20789
20790        [iOS WebKit2] Find-in-page indicator
20791        https://bugs.webkit.org/show_bug.cgi?id=131510
20792        <rdar://problem/16547777>
20793
20794        Reviewed by Simon Fraser and Enrica Casucci.
20795
20796        * editing/Editor.cpp:
20797        (WebCore::Editor::findString):
20798        * editing/FindOptions.h:
20799        Add a find option which prevents WebCore from revealing the selection
20800        after selecting a successful find match.
20801
208022014-04-11  Owen Taylor  <otaylor@redhat.com>
20803
20804        [GTK] Add HighDPI support for non-accelerated compositing contents
20805        https://bugs.webkit.org/show_bug.cgi?id=131562
20806
20807        Reviewed by Martin Robinson.
20808
20809        No new tests. This will be tested once we have the proper dependencies in the WebKit testing
20810        JHBuild.
20811
20812        * platform/cairo/WidgetBackingStore.h:
20813        (WebCore::WidgetBackingStore::WidgetBackingStore): Accept a device scale argument.
20814        * platform/cairo/WidgetBackingStoreCairo.cpp: Use the device scale argument to make the surface the proper size and set the surface device scale.
20815        * platform/cairo/WidgetBackingStoreCairo.h: Accept a device scale argument.
20816        * platform/graphics/cairo/CairoUtilities.cpp: Add a new helper to set the device scale if Cairo built against is new enough.
20817        * platform/graphics/cairo/CairoUtilities.h:
20818        * platform/gtk/GtkVersioning.h: Add the HAVE_GTK_SCALE_FACTOR macro.
20819        * platform/gtk/WidgetBackingStoreGtkX11.cpp: Use the device scale argument to make the surface the proper size and set the surface device scale.
20820        * platform/gtk/WidgetBackingStoreGtkX11.h: Accept a device scale argument.
20821
208222014-04-11  Jon Honeycutt  <jhoneycutt@apple.com>
20823
20824        Assertion failure changing select element size during focus event
20825        dispatch
20826        <https://bugs.webkit.org/show_bug.cgi?id=131566>
20827        <rdar://problem/16400735>
20828
20829        Reviewed by Andy Estes.
20830
20831        Test: fast/forms/select-change-size-during-focus.html
20832
20833        * html/HTMLSelectElement.cpp:
20834        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
20835        Adopt the fix from Chromium r171216; check that the renderer is still
20836        of the expected type, and return early if it is not.
20837
208382014-04-11  Bem Jones-Bey  <bjonesbe@adobe.com>
20839
20840        Clear sibling floats while splitting inline flow
20841        https://bugs.webkit.org/show_bug.cgi?id=130905
20842
20843        Reviewed by David Hyatt.
20844
20845        This is a port of a Blink patch by kenrb@chromium.org.
20846        (https://src.chromium.org/viewvc/blink?revision=169658&view=revision)
20847
20848        During RenderInline::splitFlow(), floats are cleared on an anonymous
20849        containingBlock() for the inline being split. This is a problem if
20850        siblings of the block contain references to the same floats, since the
20851        float removal code in markSiblingsWithFloatsForLayout() will not later
20852        find them.
20853
20854        This change also affects RenderBlock::splitFlow() and
20855        RenderBoxModelObject::moveChildrenTo, since those are called in
20856        similar situations as RenderInline::splitFlow().
20857
20858        Test: fast/block/float/split-inline-sibling-of-float-crash.html
20859
20860        * rendering/RenderBlockFlow.cpp:
20861        (WebCore::RenderBlockFlow::removeFloatingObjects): Add call to
20862            markSiblingsWithFloatsForLayout() before removing floats.
20863
208642014-04-11  Gavin Barraclough  <baraclough@apple.com>
20865
20866        Rollout - Rewrite Function.bind as a builtin
20867        https://bugs.webkit.org/show_bug.cgi?id=131083
20868
20869        Unreviewed.
20870
20871        Rolling out r167020 while investigating a performance regression.
20872
20873        * bindings/js/JSImageConstructor.cpp:
20874        (WebCore::JSImageConstructor::finishCreation):
20875        * bindings/scripts/CodeGeneratorJS.pm:
20876        (GenerateConstructorHelperMethods):
20877        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
20878        (WebCore::JSTestActiveDOMObjectConstructor::finishCreation):
20879        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
20880        (WebCore::JSTestCustomNamedGetterConstructor::finishCreation):
20881        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
20882        (WebCore::JSTestEventConstructorConstructor::finishCreation):
20883        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
20884        (WebCore::JSTestEventTargetConstructor::finishCreation):
20885        * bindings/scripts/test/JS/JSTestException.cpp:
20886        (WebCore::JSTestExceptionConstructor::finishCreation):
20887        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
20888        (WebCore::JSTestGenerateIsReachableConstructor::finishCreation):
20889        * bindings/scripts/test/JS/JSTestInterface.cpp:
20890        (WebCore::JSTestInterfaceConstructor::finishCreation):
20891        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
20892        (WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):
20893        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
20894        (WebCore::JSTestNamedConstructorConstructor::finishCreation):
20895        (WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
20896        * bindings/scripts/test/JS/JSTestNode.cpp:
20897        (WebCore::JSTestNodeConstructor::finishCreation):
20898        * bindings/scripts/test/JS/JSTestObj.cpp:
20899        (WebCore::JSTestObjConstructor::finishCreation):
20900        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
20901        (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
20902        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
20903        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
20904        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
20905        (WebCore::JSTestTypedefsConstructor::finishCreation):
20906        * bindings/scripts/test/JS/JSattribute.cpp:
20907        (WebCore::JSattributeConstructor::finishCreation):
20908        * bindings/scripts/test/JS/JSreadonly.cpp:
20909        (WebCore::JSreadonlyConstructor::finishCreation):
20910
209112014-04-11  Myles C. Maxfield  <mmaxfield@apple.com>
20912
20913        Build Fix after r167151.
20914
20915        Unreviewed.
20916
20917        * editing/AlternativeTextController.cpp:
20918        (WebCore::AlternativeTextController::applyAlternativeTextToRange):
20919
209202014-04-10  Jer Noble  <jer.noble@apple.com>
20921
20922        [EME][Mac] Using KeySession.update([renew]) should trigger KeyMessage event instead of NeedKey event
20923        https://bugs.webkit.org/show_bug.cgi?id=131527
20924
20925        Reviewed by Eric Carlson.
20926
20927        Rather than triggering a needKey() event, necessatating the creation
20928        of an entirely new MediaKeySession, cause a new key request to be
20929        created by sending the same initData back into the AVSampleDataParser.
20930
20931        Also, do some drive-by clean up suggested by Darin in the review for
20932        r166509.
20933
20934        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
20935        (WebCore::isEqual): Support an alloc-free equality check between
20936            Uint8Array and static strings.
20937        (WebCore::CDMSessionMediaSourceAVFObjC::update):
20938
209392014-04-11  David Kilzer  <ddkilzer@apple.com>
20940
20941        Build fix (r167151): Do not dereference Node::document() before passing to Range::create()
20942        <https://webkit.org/b/131475>
20943
20944        Fixes the following build failure:
20945
20946            WebCore/editing/AlternativeTextController.cpp:275:71: error: indirection requires pointer operand ('WebCore::Document' invalid)
20947                int paragraphStartIndex = TextIterator::rangeLength(Range::create(*rootNode.document(), &rootNode, 0, paragraphRangeContainingCorrection.get()->startContainer(), paragraphRangeContainingCorrection.get()->startOffset()).get());
20948                                                                                  ^~~~~~~~~~~~~~~~~~~~
20949
20950        * editing/AlternativeTextController.cpp:
20951        (WebCore::AlternativeTextController::applyAlternativeTextToRange):
20952        Remove unneeded '*' operator since Node::document() returns a
20953        Document& and Range::create() accepts a Document& for its first
20954        argument.
20955
209562014-04-11  Brian J. Burg  <burg@cs.washington.edu>
20957
20958        Web Replay: memoize nondeterministic attributes of the Navigator interface
20959        https://bugs.webkit.org/show_bug.cgi?id=131340
20960
20961        Reviewed by Timothy Hatcher.
20962
20963        Most attributes of window.navigator do not change very often, but they
20964        could be easily changed by the user or embedder. So, memoize attribute values.
20965
20966        This change does not include navigator.mimeTypes and navigator.plugins,
20967        which will be handled at a different level. <https://webkit.org/b/131341>
20968
20969        Test: ManualTests/inspector/replay-window-navigator-basic.html
20970
20971        * page/Navigator.idl: Add Nondeterministic attribute.
20972
209732014-04-10  Jer Noble  <jer.noble@apple.com>
20974
20975        [iOS][WK2] Videos should animate into and out of fullscreen.
20976        https://bugs.webkit.org/show_bug.cgi?id=131497
20977
20978        Reviewed by Simon Fraser.
20979
20980        Use AVPlayerViewController's new enterFullScreenWithCompletionHandler: and exitFullScreenWithCompletionHandler:
20981        methods to animate into and out of full screen. To do so, use the provided initialFrame and finalFrame screen
20982        rects to correctly place the AVPlayerViewController's view before entering or exiting fullscreen.
20983
20984        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
20985        (-[WebVideoFullscreenController enterFullscreen:]): Pass the media element's screen rect.
20986        (-[WebVideoFullscreenController exitFullscreen]): Ditto.
20987        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
20988        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
20989        (-[WebAVPlayerController playerViewController:shouldExitFullScreenWithReason:]): Renamed from shouldDismissWithReason.
20990        (WebVideoFullscreenInterfaceAVKit::enterFullscreen): Use the new AVKit APIs.
20991        (WebVideoFullscreenInterfaceAVKit::exitFullscreen): Ditto.
20992        * WebCore.exp.in: Modify the exported symbols for enter and exitFullscreen.
20993
209942014-04-11  Tim Horton  <timothy_horton@apple.com>
20995
20996        Support document-relative and custom-frame page overlays
20997        https://bugs.webkit.org/show_bug.cgi?id=131560
20998        <rdar://problem/16595556>
20999
21000        Reviewed by Simon Fraser.
21001
21002        * WebCore.exp.in:
21003        * rendering/RenderLayerCompositor.cpp:
21004        (WebCore::RenderLayerCompositor::RenderLayerCompositor):
21005        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
21006        (WebCore::RenderLayerCompositor::setDocumentOverlayRootLayer):
21007        * rendering/RenderLayerCompositor.h:
21008        Add the concept of a document overlay layer, which is plugged in as the
21009        last child of the root content layer. Expose it to WebKit2.
21010
210112014-04-09  Myles C. Maxfield  <mmaxfield@apple.com>
21012
21013        Autocorrection causes ASSERT when replacing alternative string
21014        https://bugs.webkit.org/show_bug.cgi?id=131475
21015
21016        Reviewed by Ryosuke Niwa.
21017
21018        In AlternativeTextController::applyAlternativeTextToRange(), we attempt to create
21019        a Range that crosses from outside of a shadow root to inside of one. Instead,
21020        we should keep the Range entirely within the shadow root.
21021
21022        Test: ManualTests/autocorrection/autocorrection-accept-crash.html
21023
21024        * editing/AlternativeTextController.cpp:
21025        (WebCore::AlternativeTextController::applyAlternativeTextToRange):
21026
210272014-04-11  Hans Muller  <hmuller@adobe.com>
21028
21029        [CSS Shapes] shape-outside from image doesn't load properly
21030        https://bugs.webkit.org/show_bug.cgi?id=131491
21031
21032        Reviewed by Bem Jones-Bey.
21033
21034        Make RenderImage::imageChanged() call super if there's a shape-outside
21035        image because the shape-outside imageChanged() logic is in RenderBox.
21036
21037        Test: http/tests/css/shape-image-file.html
21038
21039        * rendering/RenderElement.h:
21040        (WebCore::RenderElement::hasShapeOutside):
21041        * rendering/RenderImage.cpp:
21042        (WebCore::RenderImage::imageChanged):
21043
210442014-04-11  Brady Eidson  <beidson@apple.com>
21045
21046        Aggregate multiple "respondToChangedSelection" calls to one scan for telephone numbers
21047        https://bugs.webkit.org/show_bug.cgi?id=131559
21048
21049        Reviewed by Gavin Barraclough.
21050
21051        No new tests (Perf-only change to an untested feature)
21052
21053        * editing/Editor.cpp:
21054        (WebCore::Editor::Editor):
21055        (WebCore::Editor::respondToChangedSelection): Start a one shot timer for scanSelectionForTelephoneNumbers
21056          instead of scanning synchronously.
21057        (WebCore::Editor::scanSelectionForTelephoneNumbers):
21058        * editing/Editor.h:
21059
210602014-04-11  Antti Koivisto  <antti@apple.com>
21061
21062        Try to fix windows build.
21063        
21064        * platform/graphics/ca/GraphicsLayerCA.h:
21065
210662014-04-11  Brent Fulgham  <bfulgham@apple.com>
21067
21068        Unreviewed follow-up for r167145
21069
21070        * English.lproj/mediaControlsLocalizedStringsiOS.js:
21071        (mediaControlsLocalizedStringsiOS): Use smart-quote in
21072        message string.
21073
210742014-04-11  Brent Fulgham  <bfulgham@apple.com>
21075
21076        Regression: media controls and status messages are no longer localized.
21077        https://bugs.webkit.org/show_bug.cgi?id=120956
21078
21079        Reviewed by Jer Noble.
21080
21081        * English.lproj/mediaControlsLocalizedStrings.js: Added.
21082        (mediaControlsLocalizedStrings): Moved from mediaControlsApple.js.
21083        * English.lproj/mediaControlsLocalizedStringsiOS.js: Added.
21084        (mediaControlsLocalizedStringsiOS): Moved from mediaControlsiOS.js.
21085        * Modules/mediacontrols/mediaControlsApple.js:
21086        (Controller.prototype.UIString): Get strings from external file.
21087        * Modules/mediacontrols/mediaControlsiOS.js:
21088        (ControllerIOS.prototype.UIString): Ditto.
21089        * WebCore.vcxproj/copyWebCoreResourceFiles.cmd: Copy to Windows bundle.
21090        * WebCore.xcodeproj/project.pbxproj: Copy new files to bundle.
21091        * rendering/RenderThemeIOS.mm:
21092        (WebCore::RenderThemeIOS::mediaControlsScript): Load the locale-specific
21093        string resource when loading the media controls.
21094        * rendering/RenderThemeMac.mm:
21095        (WebCore::RenderThemeMac::mediaControlsScript): Ditto.
21096        * rendering/RenderThemeWin.cpp:
21097        (WebCore::RenderThemeWin::mediaControlsScript): Ditto.
21098
210992014-04-11  Brent Fulgham  <bfulgham@apple.com>
21100
21101        [Win] Build fix after r167138
21102
21103        * platform/graphics/ca/GraphicsLayerCA.h: The TileController is
21104        only available on Mac/Cocoa builds.
21105
211062014-04-11  Mark Lam  <mark.lam@apple.com>
21107
21108        JSMainThreadExecState::call() should clear exceptions before returning.
21109        <https://webkit.org/b/131530>
21110
21111        Reviewed by Geoffrey Garen.
21112
21113        Test: fast/dom/regress-131530.html
21114
21115        Previously, JSMainThreadExecState::call() did not clear any pending
21116        exceptions in the VM before returning.  On returning, the
21117        JSMainThreadExecState destructor may re-enter the VM to notify
21118        MutationObservers.  This may result in a crash because the VM expects
21119        exceptions to be cleared at entry.
21120
21121        We now change JSMainThreadExecState::call() to return the exception
21122        (if present) via an argument, and clear it from the VM before returning.
21123
21124        As part of this change, I updated various parts of the code base to use the
21125        new API as needed.
21126
21127        * bindings/js/JSCallbackData.cpp:
21128        (WebCore::JSCallbackData::invokeCallback):
21129        * bindings/js/JSCustomXPathNSResolver.cpp:
21130        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
21131        * bindings/js/JSDOMGlobalObjectTask.cpp:
21132        - Assert that there's no unhandled exception after the Microtask returns.
21133          See comment for WebCore::JSMainThreadExecState::runTask below for more
21134          details.
21135
21136        * bindings/js/JSErrorHandler.cpp:
21137        (WebCore::JSErrorHandler::handleEvent):
21138        * bindings/js/JSEventListener.cpp:
21139        (WebCore::JSEventListener::handleEvent):
21140        * bindings/js/JSHTMLDocumentCustom.cpp:
21141        (WebCore::JSHTMLDocument::open):
21142        - Document.open() cannot be the first function on the JS stack.  Hence,
21143          there is no need to use JSMainThreadExecState to call into the VM, as
21144          this is only needed to catch the event of returning from the first
21145          function for the purpose of notifying MutationObservers.  Change to
21146          call JSC::call() directly.
21147
21148        * bindings/js/JSMainThreadExecState.cpp:
21149        (WebCore::functionCallHandlerFromAnyThread):
21150        * bindings/js/JSMainThreadExecState.h:
21151        (WebCore::JSMainThreadExecState::call):
21152        (WebCore::JSMainThreadExecState::evaluate):
21153        - Remove the explicitly acquisition of the JSLock here because we now
21154          acquire the JSLock as part of the JSMainThreadExecState instance.
21155        (WebCore::JSMainThreadExecState::runTask):
21156        - Added an assert to verify that the task does not return with an
21157          unhandled exception.  Currently, the only Microtask in use is for the
21158          Promise implementation, which will eat the exception before returning.
21159          This assertion is added here to verify that this contract does not
21160          inadvertantly change in the future.
21161        (WebCore::JSMainThreadExecState::JSMainThreadExecState):
21162        - Now acquires the JSLock as well since by definition, we're only
21163          instantiating the JSMainThreadExecState because we're about to enter
21164          the VM.
21165
21166        * bindings/js/JSMutationCallback.cpp:
21167        (WebCore::JSMutationCallback::call):
21168        * bindings/js/JSNodeFilterCondition.cpp:
21169        (WebCore::JSNodeFilterCondition::acceptNode):
21170        - acceptNode() is only used in the TreeWalker and NodeIterator APIs which
21171          cannot be the first function on the JS stack.  Hence, we should call
21172          JSC::call() directly instead of going through JSMainThreadExecState.
21173
21174        * bindings/js/ScheduledAction.cpp:
21175        (WebCore::ScheduledAction::executeFunctionInContext):
21176        * bindings/objc/WebScriptObject.mm:
21177        (WebCore::addExceptionToConsole):
21178        (-[WebScriptObject callWebScriptMethod:withArguments:]):
21179
211802014-04-11  Brian J. Burg  <burg@cs.washington.edu>
21181
21182        Web Replay: CodeGeneratorJS should guard includes of replay-related headers
21183        https://bugs.webkit.org/show_bug.cgi?id=131407
21184
21185        Reviewed by Timothy Hatcher.
21186
21187        This patch adds guards to headers that are only required by generated replay code
21188        that is itself guarded. Other ports probably haven't added the headers to their
21189        build files, so we don't want to emit the unused header includes.
21190
21191        This patch also converts generated uses of DEFINE_STATIC_LOCAL to NeverDestroyed<T>.
21192        Finally, a new bindings test was added to document changes to generated replay code.
21193
21194        Test: Source/WebCore/bindings/scripts/test/TestNondeterministic.idl
21195
21196        * bindings/scripts/CodeGeneratorJS.pm:
21197        (GenerateImplementation):
21198        (GenerateImplementationFunctionCall):
21199
21200        * bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.cpp: Added.
21201        * bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.h: Added.
21202        * bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.symbols: Added.
21203        * bindings/scripts/test/GObject/WebKitDOMTestNondeterministicPrivate.h: Added.
21204        * bindings/scripts/test/JS/JSTestNondeterministic.cpp: Added.
21205        * bindings/scripts/test/JS/JSTestNondeterministic.h: Added.
21206        * bindings/scripts/test/ObjC/DOMTestNondeterministic.h: Added.
21207        * bindings/scripts/test/ObjC/DOMTestNondeterministic.mm: Added.
21208        * bindings/scripts/test/ObjC/DOMTestNondeterministicInternal.h: Added.
21209        * bindings/scripts/test/TestNondeterministic.idl: Added.
21210
212112014-04-11  Antti Koivisto  <antti@apple.com>
21212
21213        Pipe initial scale factor to TileController
21214        https://bugs.webkit.org/show_bug.cgi?id=131521
21215
21216        Reviewed by Tim Horton.
21217
21218        * WebCore.exp.in:
21219        * page/Page.cpp:
21220        (WebCore::Page::Page):
21221        (WebCore::Page::setZoomedOutPageScaleFactor):
21222        * page/Page.h:
21223        (WebCore::Page::zoomedOutPageScaleFactor):
21224        * platform/graphics/GraphicsLayerClient.h:
21225        (WebCore::GraphicsLayerClient::zoomedOutPageScaleFactor):
21226        * platform/graphics/TiledBacking.h:
21227        * platform/graphics/ca/GraphicsLayerCA.cpp:
21228        (WebCore::GraphicsLayerCA::updateContentsScale):
21229        * platform/graphics/ca/GraphicsLayerCA.h:
21230        * platform/graphics/ca/mac/TileController.h:
21231        * platform/graphics/ca/mac/TileController.mm:
21232        (WebCore::TileController::TileController):
21233        (WebCore::TileController::setContentsScale):
21234        (WebCore::TileController::setZoomedOutContentsScale):
21235        * rendering/RenderLayerBacking.cpp:
21236        (WebCore::RenderLayerBacking::zoomedOutPageScaleFactor):
21237        * rendering/RenderLayerBacking.h:
21238        * rendering/RenderLayerCompositor.cpp:
21239        (WebCore::RenderLayerCompositor::zoomedOutPageScaleFactor):
21240        * rendering/RenderLayerCompositor.h:
21241
212422014-04-10  Chris Fleizach  <cfleizach@apple.com>
21243
21244        Heap-use-after-free in WebCore::SpeechSynthesisUtterance::startTime
21245        https://bugs.webkit.org/show_bug.cgi?id=131482
21246
21247        Reviewed by David Kilzer.
21248
21249        Hold onto the utterance until it has time to fire, in case other references have been removed.
21250
21251        Merged from Blink r171077 by <dmazzoni@chromium.org>
21252
21253        Test: platform/mac/fast/speechsynthesis/speech-synthesis-gc-utterance-crash.html
21254
21255        * Modules/speech/SpeechSynthesis.cpp:
21256        (WebCore::SpeechSynthesis::handleSpeakingCompleted):
21257
212582014-04-11  Zan Dobersek  <zdobersek@igalia.com>
21259
21260        Avoid Vector copies in RenderGrid::placeItemsOnGrid()
21261        https://bugs.webkit.org/show_bug.cgi?id=131452
21262
21263        Reviewed by Sergio Villar Senin.
21264
21265        * rendering/RenderGrid.cpp:
21266        (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid): Take in a const reference to the
21267        Vector object. Make the for-loop that iterates through it range-based.
21268        (WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid): Ditto.
21269        * rendering/RenderGrid.h:
21270
212712014-04-11  Joseph Pecoraro  <pecoraro@apple.com>
21272
21273        Web Inspector: Remove shared PageScriptDebugServer, create per-Page
21274        https://bugs.webkit.org/show_bug.cgi?id=131523
21275
21276        Reviewed by Timothy Hatcher.
21277
21278        Having a shared PageScriptDebugServer was causing issues when we called
21279        JSC::Debugger::clearBreakpoints() closing one inspector while another
21280        is open for another WebCore::Page in the same process. Having the same
21281        JSC::Debugger underlying multiple InspectorDebuggerAgent instances
21282        means that when clearBreakpoints is called, the real JSC breakpoints
21283        underlying other InspectorDebuggerAgent's get removed. When those
21284        InspectorDebuggerAgents attempt to remove their breakpoints they
21285        encounter unexpected issues.
21286
21287        This entirely rebuilds PageScriptDebugServer to be per-Page instead
21288        of shared across all pages. So take this opportunity to move the
21289        file from WebCore/bindings/js to WebCore/inspector.
21290
21291        * CMakeLists.txt:
21292        * WebCore.vcxproj/WebCore.vcxproj:
21293        * WebCore.vcxproj/WebCore.vcxproj.filters:
21294        * WebCore.xcodeproj/project.pbxproj:
21295        * bindings/js/JSBindingsAllInOne.cpp:
21296        * bindings/js/PageScriptDebugServer.h: Removed.
21297        * inspector/InspectorAllInOne.cpp:
21298        Move PageScriptDebugServer.
21299
21300        * inspector/InspectorController.h:
21301        * inspector/InspectorController.cpp:
21302        (WebCore::InspectorController::InspectorController):
21303        Set the ScriptDebugServer directly on some other agents that
21304        were previously using the global debug server.
21305
21306        * inspector/InspectorProfilerAgent.h:
21307        (WebCore::InspectorProfilerAgent::scriptDebugServer):
21308        * inspector/InspectorProfilerAgent.cpp:
21309        (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
21310        (WebCore::InspectorProfilerAgent::setScriptDebugServer):
21311        (WebCore::InspectorProfilerAgent::start):
21312        (WebCore::InspectorProfilerAgent::willDestroyFrontendAndBackend): Deleted.
21313        * inspector/InspectorTimelineAgent.h:
21314        * inspector/InspectorTimelineAgent.cpp:
21315        (WebCore::InspectorTimelineAgent::start):
21316        (WebCore::InspectorTimelineAgent::stop):
21317        (WebCore::InspectorTimelineAgent::setPageScriptDebugServer):
21318        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
21319        Refactor these two agents to take in a script debug server.
21320        The server is expected to be set during initialization and
21321        to always be valid (like debug server on RuntimeAgent).
21322
21323        * inspector/PageDebuggerAgent.h:
21324        * inspector/PageDebuggerAgent.cpp:
21325        (WebCore::PageDebuggerAgent::PageDebuggerAgent):
21326        (WebCore::PageDebuggerAgent::startListeningScriptDebugServer):
21327        (WebCore::PageDebuggerAgent::stopListeningScriptDebugServer):
21328        (WebCore::PageDebuggerAgent::scriptDebugServer):
21329        Have PageDebuggerAgent hold the PageScriptDebugServer.
21330        Update for the simplified interfaces.
21331
21332        * inspector/PageScriptDebugServer.h: Added.
21333        * inspector/PageScriptDebugServer.cpp: Renamed from Source/WebCore/bindings/js/PageScriptDebugServer.cpp.
21334        (WebCore::PageScriptDebugServer::PageScriptDebugServer):
21335        (WebCore::PageScriptDebugServer::addListener):
21336        (WebCore::PageScriptDebugServer::removeListener):
21337        (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
21338        (WebCore::PageScriptDebugServer::didPause):
21339        (WebCore::PageScriptDebugServer::didContinue):
21340        (WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
21341        (WebCore::PageScriptDebugServer::runEventLoopWhilePausedInternal):
21342        (WebCore::PageScriptDebugServer::isContentScript):
21343        (WebCore::PageScriptDebugServer::reportException):
21344        (WebCore::PageScriptDebugServer::setJavaScriptPaused):
21345        Model after JSGlobalObjectScriptDebugServer, the PageScriptDebugServer
21346        holds a reference to a Page.
21347
213482014-04-11  Bear Travis  <betravis@adobe.com>
21349
21350        [CSS Shapes] inset args and radial args should serialize to the simplest form
21351        https://bugs.webkit.org/show_bug.cgi?id=129825
21352
21353        Reviewed by Dirk Schulze.
21354
21355        Modify inset serialization to omit components where possible. The insets simplify
21356        according to the margin shorthand, while the corner radii simplify according to
21357        the border-radius shorthand.
21358
21359        Modifying existing parsing tests.
21360
21361        * css/CSSBasicShapes.cpp:
21362        (WebCore::buildInsetRadii): Add the necessary radii, omitting components where possible.
21363        (WebCore::buildInsetString): Omit components where possible.
21364
213652014-04-11  Praveen R Jadhav  <praveen.j@samsung.com>
21366
21367        "playbackTime" parameter is not present in AudioProcessingEvent Interface as per W3C spec
21368        https://bugs.webkit.org/show_bug.cgi?id=105518
21369
21370        Reviewed by Jer Noble.
21371
21372        Attribute "playbackTime" in AudioProcessingEvent implemented to pass playback time of
21373        audiobuffer associated with ScriptProcessorNode of the context.
21374 
21375        Reference: https://codereview.chromium.org/210973002
21376
21377        Spec: http://www.w3.org/TR/webaudio/#AudioProcessingEvent
21378
21379        Test: webaudio/audioprocessingevent.html
21380
21381        * Modules/webaudio/AudioProcessingEvent.cpp:
21382        (WebCore::AudioProcessingEvent::create):
21383        (WebCore::AudioProcessingEvent::AudioProcessingEvent):
21384        * Modules/webaudio/AudioProcessingEvent.h:
21385        (WebCore::AudioProcessingEvent::playbackTime):
21386        * Modules/webaudio/AudioProcessingEvent.idl:
21387        * Modules/webaudio/ScriptProcessorNode.cpp:
21388        (WebCore::ScriptProcessorNode::fireProcessEvent):
21389
213902014-04-11  Zalan Bujtas  <zalan@apple.com>
21391
21392        Subpixel rendering: WK1: Trail of cruft in redraw during animations.
21393        https://bugs.webkit.org/show_bug.cgi?id=131525
21394
21395        Reviewed by Simon Fraser.
21396
21397        Use enclosing rect instead of snapping to make sure the repaint rect always
21398        covers the dirty area when painting is requested in a non-compositing RenderView.
21399        This only applies to WK1 as WK2 has compositing RenderView and the repainting 
21400        is managed by RenderLayerBacking.
21401
21402        This is a temporary solution until after ScrollView/FrameView/RenderView
21403        is transitioned to device pixels. (tracked here: webkit.org/b/131526).
21404
21405        Test: fast/repaint/hidpi-block-width-change-leaves-cruft.html
21406
21407        * rendering/RenderView.cpp:
21408        (WebCore::RenderView::repaintViewRectangle):
21409
214102014-04-10  Dean Jackson  <dino@apple.com>
21411
21412        WebGL: need error checking after texture uploads
21413        https://bugs.webkit.org/show_bug.cgi?id=62902
21414        rdar://problem/9640309
21415
21416        Reviewed by Brent Fulgham.
21417
21418        A followup to Darin's r167109. We need to also check for errors
21419        in the texImage2D case.
21420
21421        This is difficult to reproducibly test because it would require
21422        attempting to exhaust GPU memory.
21423
21424        * html/canvas/WebGLRenderingContext.cpp:
21425        (WebCore::WebGLRenderingContext::compressedTexImage2D): Check for errors by calling
21426        moveErrorsToSyntheticErrorList twice, once before and once after. If an error
21427        occurred, explicitly mark the texture as invalid.
21428        (WebCore::WebGLRenderingContext::texImage2DBase): Ditto.
21429        * html/canvas/WebGLTexture.cpp:
21430        (WebCore::WebGLTexture::markInvalid): If the LevelInfo exists for this
21431        mipmap level, then set the valid flag to false. There is a chance that
21432        a previous call to texImage2D succeeded for this level, but it's probably
21433        better to assume that is now invalid.
21434        * html/canvas/WebGLTexture.h: New markInvalid method.
21435
214362014-04-10  Darin Adler  <darin@apple.com>
21437
21438        WebGL: need error checking after texture and buffer uploads in some cases
21439        https://bugs.webkit.org/show_bug.cgi?id=62902
21440        rdar://problem/9640309
21441
21442        Reviewed by Dean Jackson.
21443
21444        Not clear how to write a test for this.
21445
21446        * html/canvas/WebGLBuffer.cpp:
21447        (WebCore::WebGLBuffer::disassociateBufferData): Added.
21448        * html/canvas/WebGLBuffer.h: Added disassociateBufferData.
21449
21450        * html/canvas/WebGLRenderingContext.cpp:
21451        (WebCore::WebGLRenderingContext::bufferData): Check for errors by calling
21452        moveErrorsToSyntheticErrorList twice, once before and once after. If an error
21453        occurred, call the WebGLBuffer so it doesn't think it has data.
21454        (WebCore::WebGLRenderingContext::bufferSubData): Ditto.
21455
21456        * platform/graphics/GraphicsContext3D.h: Added moveErrorsToSyntheticErrorList.
21457
21458        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
21459        (WebCore::GraphicsContext3D::moveErrorsToSyntheticErrorList): Added. Calls
21460        glError and moves any errors to the synthetic error list.
21461        (WebCore::GraphicsContext3D::getError): Added call to moveErrorsToSyntheticErrorList
21462        to preserve error ordering.
21463        (WebCore::GraphicsContext3D::synthesizeGLError): Ditto.
21464
214652014-04-10  Enrica Casucci  <enrica@apple.com>
21466
21467        iOS build fix to deal with CoreText changes.
21468        
21469        Reviewed by Benjamin Poulain.
21470        
21471        This is a temporary fix until CT fixes the issue.
21472
21473        * rendering/RenderThemeIOS.mm:
21474
214752014-04-10  Commit Queue  <commit-queue@webkit.org>
21476
21477        Unreviewed, rolling out r167073.
21478        https://bugs.webkit.org/show_bug.cgi?id=131516
21479
21480        This patch caused crashes in video tests. (Requested by
21481        mrobinson on #webkit).
21482
21483        Reverted changeset:
21484
21485        "[GStreamer] No CORS support for media elements"
21486        https://bugs.webkit.org/show_bug.cgi?id=99037
21487        http://trac.webkit.org/changeset/167073
21488
214892014-04-10  Beth Dakin  <bdakin@apple.com>
21490
21491        Radio buttons are using the wrong sizes and margins
21492        https://bugs.webkit.org/show_bug.cgi?id=131503
21493
21494        Reviewed by Jer Noble.
21495
21496        This is a regression that I caused recently when I combined radio button and 
21497        checkbox code. 
21498        * platform/mac/ThemeMac.mm:
21499        (WebCore::paintToggleButton):
21500
215012014-04-08  Jon Honeycutt  <jhoneycutt@apple.com>
21502
21503        Assertion failure in WebCore::FlexBoxIterator::next()
21504        <https://bugs.webkit.org/show_bug.cgi?id=117176>
21505        <rdar://problem/14054549>
21506
21507        Code added in r115687 began removing anonymous wrappers when children
21508        become inline. However, there are some objects, like
21509        RenderDeprecatedFlexBox, whose children should always be blocks.
21510
21511        Reviewed by Tim Horton.
21512
21513        * rendering/RenderBlock.h:
21514        (WebCore::RenderBlock::canCollapseAnonymousBlockChild):
21515        Made public.
21516
21517        * rendering/RenderObject.cpp:
21518        (WebCore::RenderObject::removeAnonymousWrappersForInlinesIfNecessary):
21519        Return early if we can't collapse anonymous block children.
21520
215212014-04-07  Jon Honeycutt  <jhoneycutt@apple.com>
21522
21523        Assertion failure, !node || node->isElementNode(), in
21524        WebCore::RenderBlock::clone()
21525        <https://bugs.webkit.org/show_bug.cgi?id=110489>
21526        <rdar://problem/13666425>
21527
21528        Reviewed by Antti Koivisto.
21529
21530        We're ending up in RenderBlock::splitBlocks() with |this| ==
21531        |fromBlock|.  We then try to climb the ancestor block chain from
21532        this->parent() to |fromBlock|, but this->parent() is already above
21533        |fromBlock|, so we end up climbing up to the RenderView and trying to
21534        clone it, causing the assertion failure.
21535
21536        Adopt Chromium's mitigation for this from
21537        <https://codereview.chromium.org/13852041>. This is not intended as a
21538        fix for the underlying issue.
21539
21540        Also, fix another issue that occurs with this fuzzed test case that's
21541        not handled by the Chromium fix.
21542
21543        * rendering/RenderBlock.cpp:
21544        (WebCore::RenderBlock::splitBlocks):
21545        Ensure while we're in the loop that |curr| is a descendant of
21546        |fromBlock|. From the Chromium patch:
21547
21548            We need to check in every iteration of the loop because
21549            moveChildrenTo could have moved |curr|. This is a mitigation and
21550            not really a fix against a class of tree craziness.
21551
21552        Finally, before moving children from |fromBlock| to |toBlock|, ensure
21553        that the children are children of |fromBlock|. If we never entered the
21554        loop, they will be siblings of |fromBlock|, not children.
21555
215562014-04-10  Enrica Casucci  <enrica@apple.com>
21557
21558        Build fix after http://trac.webkit.org/changeset/167085.
21559
21560        Reviewed by Timothy Hatcher.
21561
21562        * plugins/PluginData.h:
21563
215642014-04-10  Zalan Bujtas  <zalan@apple.com>
21565
21566        Web Inspector: Breakpoint in gutter has clipped / broken border image.
21567        https://bugs.webkit.org/show_bug.cgi?id=131500
21568
21569        Reviewed by Joseph Pecoraro.
21570
21571        Typo in r166925.
21572
21573        Test: fast/borders/border-image-slice-missing-right.html
21574
21575        * rendering/RenderBoxModelObject.cpp:
21576        (WebCore::RenderBoxModelObject::paintNinePieceImage):
21577
215782014-04-10  James Craig  <jcraig@apple.com>
21579
21580        Web Inspector: AXI: expose aria-busy state of current and ancestor nodes
21581        https://bugs.webkit.org/show_bug.cgi?id=130826
21582
21583        Reviewed by Timothy Hatcher.
21584
21585        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
21586
21587        Expose if node is contained by any "busy" ancestor nodes, too.
21588
21589        * inspector/InspectorDOMAgent.cpp:
21590        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
21591
215922014-04-10  Joseph Pecoraro  <pecoraro@apple.com>
21593
21594        Web Inspector: Remove unused ruler in overlay code
21595        https://bugs.webkit.org/show_bug.cgi?id=131507
21596
21597        Reviewed by Timothy Hatcher.
21598
21599        * inspector/InspectorDOMAgent.cpp:
21600        (WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject):
21601        * inspector/InspectorOverlay.cpp:
21602        (WebCore::buildObjectForHighlight):
21603        * inspector/InspectorOverlay.h:
21604        (WebCore::Highlight::Highlight):
21605        (WebCore::Highlight::setDataFromConfig):
21606        * inspector/InspectorOverlayPage.js:
21607        (_drawFragmentHighlight):
21608        (_drawRegionNumber): Deleted.
21609        (quadToPath): Deleted.
21610        (drawOutlinedQuad): Deleted.
21611        (pathCommand): Deleted.
21612        (drawPath): Deleted.
21613        (drawOutlinedQuadWithClip): Deleted.
21614        (quadEquals): Deleted.
21615        (drawGutter): Deleted.
21616        (drawNodeHighlight): Deleted.
21617        (drawQuadHighlight): Deleted.
21618        (setPlatform): Deleted.
21619        (dispatch): Deleted.
21620        (log): Deleted.
21621
216222014-04-10  Brian J. Burg  <burg@cs.washington.edu>
21623
21624        Web Replay: memoize plugin data for navigator.mimeTypes and navigator.plugins
21625        https://bugs.webkit.org/show_bug.cgi?id=131341
21626
21627        Reviewed by Timothy Hatcher.
21628
21629        Information about plugins and mime types is nondeterministic and can change
21630        at any time, whether by system events, browser settings changes, or
21631        triggered by script. To avoid interposing on all those code paths, just
21632        memoize the plugin data used by DOMPluginArray and DOMMimeTypeArray.
21633
21634        This is less efficient than controlling mutations to the underlying PluginData
21635        of a Page, but that can be done later if better plugin support is desired.
21636        The point of this change is to make analytics trackers deterministic across
21637        enabling/disabling of plugins.
21638
21639        Test: LayoutTests/inspector/window-navigator-plugins-memoized.hml
21640
21641        * plugins/DOMMimeTypeArray.cpp:
21642        (WebCore::DOMMimeTypeArray::getPluginData):
21643        * plugins/DOMPluginArray.cpp:
21644        (WebCore::DOMPluginArray::pluginData): Save or restore memoized plugin
21645        data during capture and replay, respectively.
21646
21647        * plugins/PluginData.h:
21648        (WebCore::PluginData::PluginData): Add a constructor that uses the
21649        provided plugin data rather than fetching live plugin data. This is
21650        marked protected so it's only used by a subclass specifically for
21651        deserialization.
21652
21653        * replay/SerializationMethods.cpp: Add encoder specializations.
21654        (JSC::EncodingTraits<MimeClassInfo>::encodeValue):
21655        (JSC::EncodingTraits<MimeClassInfo>::decodeValue):
21656        (JSC::EncodingTraits<PluginInfo>::encodeValue):
21657        (JSC::EncodingTraits<PluginInfo>::decodeValue):
21658        (JSC::EncodingTraits<PluginData>::encodeValue):
21659        (JSC::DeserializedPluginData::DeserializedPluginData): Add a custom
21660        subclass of PluginData that can be initialized from deserialized data.
21661        (JSC::EncodingTraits<PluginData>::decodeValue):
21662        * replay/SerializationMethods.h:
21663        * replay/WebInputs.json: Add new input FetchPluginData.
21664
216652014-04-10  Myles C. Maxfield  <mmaxfield@apple.com>
21666
21667        Remove "System Font" from character width calculations
21668        https://bugs.webkit.org/show_bug.cgi?id=131411
21669
21670        Reviewed by Tim Horton.
21671
21672        Covered by existing tests
21673
21674        * platform/graphics/Font.cpp:
21675        (WebCore::Font::hasValidAverageCharWidth):
21676
216772014-04-10  Bem Jones-Bey  <bjonesbe@adobe.com>
21678
21679        Invalid cast in WebCore::RenderLayer::setupClipPath
21680        https://bugs.webkit.org/show_bug.cgi?id=131368
21681
21682        Reviewed by Dirk Schulze.
21683
21684        Only attempt to clip to a box shape if the renderer being clipped is
21685        actually a box.
21686
21687        Test: css3/masking/clip-path-box-shape-on-inline-crash.html
21688
21689        * rendering/RenderLayer.cpp:
21690        (WebCore::RenderLayer::setupClipPath): Add isBox() check.
21691
216922014-04-10  Owen Taylor  <otaylor@redhat.com>
21693
21694        [GTK] Remove a comment that was incorrectly cut-and-pasted from WidgetBackingStoreCairo
21695        https://bugs.webkit.org/show_bug.cgi?id=131499
21696
21697        Reviewed by Martin Robinson.
21698
21699        * platform/gtk/WidgetBackingStoreGtkX11.cpp: Remove a comment that was incorrectly copy and pasted
21700        from the Cairo implementation.
21701
217022014-04-09  Alexey Proskuryakov  <ap@apple.com>
21703
21704        Eliminate DragSession structure
21705        https://bugs.webkit.org/show_bug.cgi?id=131465
21706
21707        Reviewed by Benjamin Poulain.
21708
21709        DragSession is really just a transient response to NSDragDestination delegate methods.
21710        The "session" name was quite misleading, and thankfully, we don't need a class for this
21711        bag of data at all.
21712
21713        * WebCore.xcodeproj/project.pbxproj:
21714        * page/DragController.cpp:
21715        (WebCore::DragController::DragController):
21716        (WebCore::DragController::dragEntered):
21717        (WebCore::DragController::dragUpdated):
21718        (WebCore::DragController::dragEnteredOrUpdated):
21719        (WebCore::DragController::tryDocumentDrag):
21720        * page/DragController.h:
21721        (WebCore::DragController::mouseIsOverFileInput):
21722        (WebCore::DragController::numberOfItemsToBeAccepted):
21723        * page/DragSession.h: Removed.
21724
217252014-04-10  Youenn Fablet  <youenn.fablet@crf.canon.fr>
21726
21727        [GStreamer] No CORS support for media elements
21728        https://bugs.webkit.org/show_bug.cgi?id=99037
21729
21730        Reviewed by Philippe Normand.
21731
21732        Added CORS access control check to media sources when crossorigin attribute is set.
21733
21734        Added getter to CORS access control check status (used to compute whether the stream is tainted or not).
21735        Related test is http/tests/security/video-cross-origin-readback.html.
21736
21737        Disabled access to cross-origin streams that fail CORS check when crossorigin attribute is set.
21738        Related test is http/tests/security/video-cross-origin-accessfailure.html.
21739
21740        Tests: http/tests/security/video-cross-origin-accessfailure.html
21741               http/tests/security/video-cross-origin-accesssameorigin.html
21742
21743        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
21744        (WebCore::MediaPlayerPrivateGStreamer::didPassCORSAccessCheck): Return whether media is cross-origin (tainted) or not by querying the gstreamer source layer.
21745        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Added MediaPlayerPrivateGStreamer::didPassCORSAccessCheck declaration.
21746        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
21747        (webKitWebSrcStart): Passed CORS mode parameter to the streaming client. In case of CORS check failure, stop the resource loading.
21748        (webKitSrcPassedCORSAccessCheck): Return whether CORS access control check was done and successful.
21749        (StreamingClient::handleResponseReceived): Take a parameter to assign the CORS access control check result.
21750        (CachedResourceStreamingClient::CachedResourceStreamingClient): Updated setting of the ResourceLoaderOptions according CORS mode.
21751        (CachedResourceStreamingClient::responseReceived): Check CORS and pass result to handleResponseReceived.
21752        (ResourceHandleStreamingClient::didReceiveResponse): No CORS check.
21753        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.h: Added webKitSrcPassedCORSAccessCheck declaration.
21754
217552014-04-10  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
21756
21757        Move UseJSC.cmake back to CMakeLists.txt
21758        https://bugs.webkit.org/show_bug.cgi?id=130834
21759
21760        Reviewed by Csaba Osztrogonác.
21761
21762        No new tests required.
21763
21764        * CMakeLists.txt:
21765        * UseJSC.cmake: Removed.
21766
217672014-04-09  Commit Queue  <commit-queue@webkit.org>
21768
21769        Unreviewed, rolling out r167046.
21770        https://bugs.webkit.org/show_bug.cgi?id=131479
21771
21772        Caused 300+ failures on Mavericks WK1 tester (Requested by ap
21773        on #webkit).
21774
21775        Reverted changeset:
21776
21777        "Remove "System Font" from whitelisted DRT fonts and char
21778        width calculations"
21779        https://bugs.webkit.org/show_bug.cgi?id=131411
21780        http://trac.webkit.org/changeset/167046
21781
217822014-04-09  Jeremy Jones  <jeremyj@apple.com>
21783
21784        Fix build failure.
21785        https://bugs.webkit.org/show_bug.cgi?id=131473
21786
21787        Reviewed by Dan Bernstein.
21788
21789        Fix build failure.
21790
21791        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
21792        (mediaSelectionOptions):
21793
217942014-04-09  Enrica Casucci  <enrica@apple.com>
21795
21796        Unreviewed build fix after http://trac.webkit.org/changeset/167045
21797
21798        The file contained an invalid character.
21799
21800        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
21801        (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
21802
218032014-04-09  Dean Jackson  <dino@apple.com>
21804
21805        [iOS] Media controls should resize as the user zooms
21806        https://bugs.webkit.org/show_bug.cgi?id=131322
21807
21808        Reviewed by Eric Carlson.
21809
21810        On iOS the media controls should remain the same size
21811        independent of user zoom. Have the HTMLMediaElement optionally
21812        register for updates in the page scale to apply an inverse
21813        scale.
21814
21815        * Modules/mediacontrols/MediaControlsHost.cpp: New exposed property that calls
21816        back into HTMLMediaElement::mediaControlsDependOnPageScaleFactor.
21817        (WebCore::MediaControlsHost::controlsDependOnPageScaleFactor):
21818        (WebCore::MediaControlsHost::setControlsDependOnPageScaleFactor):
21819        * Modules/mediacontrols/MediaControlsHost.h: Keep a reference to the actual
21820        controls from the JavaScript side so we can talk to it later.
21821        (WebCore::MediaControlsHost::controllerJSValue):
21822        (WebCore::MediaControlsHost::setControllerJSValue):
21823        * Modules/mediacontrols/MediaControlsHost.idl: Expose controlsDependOnPageScaleFactor.
21824
21825        * Modules/mediacontrols/mediaControlsiOS.css:
21826        (audio::-webkit-media-controls-panel): Specify the transform origin so that
21827        scaling will keep the controls pinned to the bottom left corner.
21828        (audio::-webkit-media-controls-start-playback-button): Update to the correct size
21829        and provide new artwork.
21830        (audio::-webkit-media-controls-start-playback-button.failed): New artwork.
21831        * Modules/mediacontrols/mediaControlsiOS.js:
21832        (ControllerIOS): Tell the host that these controls care about the page scale.
21833        (ControllerIOS.prototype.get pageScaleFactor): New getter.
21834        (ControllerIOS.prototype.set pageScaleFactor): When set, update the play button and the panel.
21835
21836        * html/HTMLMediaElement.cpp:
21837        (WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript): Small naming cleanup.
21838        (setPageScaleFactorProperty): Static helper to set a JS property value.
21839        (WebCore::HTMLMediaElement::didAddUserAgentShadowRoot): Keep a reference to the controls object,
21840        and make sure to set the page scale factor on the controls.
21841        (WebCore::HTMLMediaElement::pageScaleFactorChanged): Implement the callback, telling
21842        the controls object that it needs to relayout.
21843
218442014-04-09  Antti Koivisto  <antti@apple.com>
21845
21846        Try to fix iOS build.
21847
21848        * platform/graphics/ca/mac/TileController.mm:
21849
218502014-04-09  Andy Estes  <aestes@apple.com>
21851
21852        REGRESSION (r165908): ~QuickLookHandle() tries to dereference a null ResourceHandle
21853        https://bugs.webkit.org/show_bug.cgi?id=131467
21854
21855        Reviewed by Tim Horton.
21856
21857        QuickLookHandle stored a ResourceHandle pointer in order to later
21858        retrive the URL of its firstRequest(), but after r165908 we no longer
21859        always have a ResourceHandle. Since firstRequest()'s URL is the only
21860        thing we need from ResourceHandle, store it directly rather than a
21861        ResourceHandle pointer. In the case where we create a QuickLookHandle
21862        from a ResourceLoader rather than a ResourceHandle, pass the loader's
21863        originalRequest(), which represents the same request as firstRequest()
21864        (i.e. the request after willSendRequest() but before redirects).
21865
21866        * platform/network/ios/QuickLook.h:
21867        * platform/network/ios/QuickLook.mm:
21868        (WebCore::QuickLookHandle::QuickLookHandle):
21869        (WebCore::QuickLookHandle::create):
21870        (WebCore::QuickLookHandle::didFail):
21871        (WebCore::QuickLookHandle::~QuickLookHandle):
21872
218732014-04-09  James Craig  <jcraig@apple.com>
21874
21875        AX: Bug in AccessibilityNodeObject::helpText
21876        https://bugs.webkit.org/show_bug.cgi?id=130386
21877
21878        Reviewed by Chris Fleizach.
21879
21880        Test: accessibility/help-text.html
21881
21882        Ancestor loop was always checking attribute of original node rather than current node.
21883
21884        * accessibility/AccessibilityNodeObject.cpp:
21885        (WebCore::AccessibilityNodeObject::helpText):
21886
218872014-04-09  Chris Fleizach  <cfleizach@apple.com>
21888
21889        Regression: AX: list heuristics sometimes determined as presentational even when explicit roles applied
21890        https://bugs.webkit.org/show_bug.cgi?id=131041
21891
21892        Reviewed by Mario Sanchez Prada.
21893
21894        When display:table is used on a list item, it inserts RenderObjects that can be ignored as the children
21895        of the list. This allows normal list heuristics to be applied.
21896
21897        * accessibility/AccessibilityTableCell.cpp:
21898        (WebCore::AccessibilityTableCell::computeAccessibilityIsIgnored):
21899
219002014-04-09  Antti Koivisto  <antti@apple.com>
21901
21902        TileGrid should be PlatformCALayerClient instead of TileController
21903        https://bugs.webkit.org/show_bug.cgi?id=131456
21904        
21905        Switch one more place to use removeTiles.
21906
21907        * platform/graphics/ca/mac/TileGrid.mm:
21908        (WebCore::TileGrid::revalidateTiles):
21909
219102014-04-09  Myles C. Maxfield  <mmaxfield@apple.com>
21911
21912        Remove "System Font" from whitelisted DRT fonts and char width calculations
21913        https://bugs.webkit.org/show_bug.cgi?id=131411
21914
21915        Reviewed by Tim Horton.
21916
21917        Covered by existing tests.
21918
21919        * platform/graphics/Font.cpp:
21920        (WebCore::Font::hasValidAverageCharWidth):
21921
219222014-04-09  Jeremy Jones  <jeremyj@apple.com>
21923
21924        Fullscreen does two view controller changes at once
21925        https://bugs.webkit.org/show_bug.cgi?id=131432
21926
21927        Reviewed by Eric Carlson.
21928
21929        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
21930        (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
21931        delay -presentViewController on the main run loop to allow
21932        previous view controller change to complete.
21933
219342014-04-09  Jeremy Jones  <jeremyj@apple.com>
21935
21936        Enable fullscreen captions selection
21937        https://bugs.webkit.org/show_bug.cgi?id=131069
21938
21939        Reviewed by Eric Carlson.
21940
21941        Enable media selection options from fullscreen. i.e. captions.
21942
21943        * WebCore.exp.in:
21944        Add exports for 
21945        setAudioMediaSelectionOptions
21946        setLegibleMediaSelectionOptions
21947        selectAudioMediaOption
21948        selectLegibleMediaOption
21949
21950        * platform/ios/WebVideoFullscreenInterface.h:
21951        Add setAudioMediaSelectionOptions/setLegibleMediaSelectionOptions
21952
21953        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
21954        Add setAudioMediaSelectionOptions/setLegibleMediaSelectionOptions
21955
21956        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
21957        Add setAudioMediaSelectionOptions/setLegibleMediaSelectionOptions
21958
21959        (-[WebAVPlayerController dealloc]):
21960        (-[WebAVPlayerController hasMediaSelectionOptions]):
21961        (+[WebAVPlayerController keyPathsForValuesAffectingHasMediaSelectionOptions]):
21962        (-[WebAVPlayerController hasAudioMediaSelectionOptions]):
21963        (+[WebAVPlayerController keyPathsForValuesAffectingHasAudioMediaSelectionOptions]):
21964        (-[WebAVPlayerController hasLegibleMediaSelectionOptions]):
21965        (+[WebAVPlayerController keyPathsForValuesAffectingHasLegibleMediaSelectionOptions]):
21966        (-[WebAVPlayerController currentAudioMediaSelectionOption]):
21967        (-[WebAVPlayerController setCurrentAudioMediaSelectionOption:]):
21968        (-[WebAVPlayerController currentLegibleMediaSelectionOption]):
21969        (-[WebAVPlayerController setCurrentLegibleMediaSelectionOption:]):
21970        (WebVideoFullscreenInterfaceAVKit::setAudioMediaSelectionOptions):
21971        (WebVideoFullscreenInterfaceAVKit::setLegibleMediaSelectionOptions):
21972        * platform/ios/WebVideoFullscreenModel.h:
21973        Add selectAudioMediaOption/selectLegibleMediaOption
21974
21975        * platform/ios/WebVideoFullscreenModelMediaElement.h:
21976        Add selectAudioMediaOption/selectLegibleMediaOption
21977
21978        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
21979        Add selectAudioMediaOption/selectLegibleMediaOption
21980
21981        (WebVideoFullscreenModelMediaElement::setMediaElement):
21982        Send initial media selection options.
21983
21984        (WebVideoFullscreenModelMediaElement::selectAudioMediaOption):
21985        Will be implemented when audio track slection is implemented.
21986
21987        (WebVideoFullscreenModelMediaElement::selectLegibleMediaOption):
21988        Select corresponding text track on HTMLMediaElement.
21989
219902014-04-09  Antti Koivisto  <antti@apple.com>
21991
21992        TileGrid should be PlatformCALayerClient instead of TileController
21993        https://bugs.webkit.org/show_bug.cgi?id=131456
21994
21995        Reviewed by Tim Horton.
21996
21997        The client interface is for the tiles in the grid.
21998
21999        * platform/graphics/ca/mac/TileController.h:
22000        * platform/graphics/ca/mac/TileController.mm:
22001        (WebCore::TileController::setContentsScale):
22002        (WebCore::TileController::createTileLayer):
22003        (WebCore::TileController::platformCALayerPaintContents): Deleted.
22004        (WebCore::TileController::platformCALayerDeviceScaleFactor): Deleted.
22005        (WebCore::TileController::platformCALayerShowDebugBorders): Deleted.
22006        (WebCore::TileController::platformCALayerShowRepaintCounter): Deleted.
22007        (WebCore::TileController::platformCALayerIncrementRepaintCount): Deleted.
22008        * platform/graphics/ca/mac/TileGrid.h:
22009        
22010            Move repaint counter to TileGrid too.
22011
22012        * platform/graphics/ca/mac/TileGrid.mm:
22013        (WebCore::TileGrid::removeTiles):
22014        (WebCore::TileGrid::removeAllSecondaryTiles):
22015        (WebCore::TileGrid::removeTilesInCohort):
22016        
22017           Cleaned up tile removal.
22018
22019        (WebCore::TileGrid::revalidateTiles):
22020        (WebCore::TileGrid::ensureTilesForRect):
22021        (WebCore::TileGrid::platformCALayerPaintContents):
22022        (WebCore::TileGrid::platformCALayerDeviceScaleFactor):
22023        (WebCore::TileGrid::platformCALayerShowDebugBorders):
22024        (WebCore::TileGrid::platformCALayerShowRepaintCounter):
22025        (WebCore::TileGrid::platformCALayerContentsOpaque):
22026        (WebCore::TileGrid::platformCALayerIncrementRepaintCount):
22027        (WebCore::queueTileForRemoval): Deleted.
22028
220292014-04-09  Alexey Proskuryakov  <ap@apple.com>
22030
22031        Rename some dragging functions
22032        https://bugs.webkit.org/show_bug.cgi?id=131460
22033
22034        Reviewed by Tim Horton.
22035
22036        Renamed performDrag to performDragOperation. This function is responsible for
22037        accepting a drop, not for the whole drag.
22038
22039        The new name is not perfect either, but I think that it's better, and at least
22040        it matches AppKit, like the other dragging destination functions already do.
22041
22042        * WebCore.exp.in:
22043        * page/DragController.cpp:
22044        (WebCore::DragController::performDragOperation):
22045        (WebCore::DragController::performDrag): Deleted.
22046        * page/DragController.h:
22047
220482014-04-08  Samuel White  <samuel_white@apple.com>
22049
22050        AX: Initial text selection point should respect element focus.
22051        https://bugs.webkit.org/show_bug.cgi?id=131402
22052
22053        Reviewed by Chris Fleizach.
22054
22055        Support the case where we want to set the initial selection and there's already a focused element.
22056
22057        No new tests, updated existing selection-initial to test this functionality.
22058
22059        * page/EventHandler.cpp:
22060        (WebCore::setKeyboardSelection):
22061        (WebCore::handleKeyboardSelectionMovement):
22062
220632014-04-09  Ryosuke Niwa  <rniwa@webkit.org>
22064
22065        HTMLCollection::updateNamedElementCach iterates over items twice
22066        https://bugs.webkit.org/show_bug.cgi?id=131448
22067
22068        Reviewed by Andreas Kling.
22069
22070        Compute the length first and go through the cache interface to traverse through items.
22071
22072        * html/HTMLCollection.cpp:
22073        (WebCore::HTMLCollection::updateNamedElementCache):
22074
220752014-04-09  Brendan Long  <b.long@cablelabs.com>
22076
22077        [GStreamer] Expose MPEG-TS metadata
22078        https://bugs.webkit.org/show_bug.cgi?id=122001
22079
22080        Reviewed by Eric Carlson.
22081
22082        Test: media/track/in-band/track-in-band-mpegts-metadata.html
22083
22084        * CMakeLists.txt: Add InbandDataTextTrack.
22085        * PlatformGTK.cmake: Look for gstreamer-mpegts and use it if available.
22086        * WebCore.vcxproj/WebCore.vcxproj: Add InbandDataTextTrack.
22087        * WebCore.vcxproj/WebCore.vcxproj.filters: Same.
22088        * WebCore.xcodeproj/project.pbxproj: Same.
22089        * html/track/DataCue.cpp:
22090        (WebCore::DataCue::DataCue): Add a constructor using raw data.
22091        * html/track/DataCue.h:
22092        (WebCore::DataCue::create): Same.
22093        * html/track/InbandDataTextTrack.cpp: Added, InbandTextTrack which implements addDataCue().
22094        * html/track/InbandDataTextTrack.h:
22095        * html/track/InbandGenericTextTrack.h: Move unimplemented methods to InbandTextTrack.
22096        * html/track/InbandWebVTTTextTrack.h: Same.
22097        * html/track/InbandTextTrack.h: Same, and add inBandMetadataTrackDispatchType.
22098        * html/track/InbandTextTrack.cpp:
22099        (WebCore::InbandTextTrack::create): Add constructor for InbandDataTextTrack.
22100        (WebCore::InbandTextTrack::inBandMetadataTrackDispatchType): Added.
22101        * html/track/TextTrack.h:
22102        (WebCore::TextTrack::inBandMetadataTrackDispatchType): Added (empty).
22103        * html/track/TextTrack.idl: Add inBandMetadataTrackDispatchType.
22104        * platform/graphics/InbandTextTrackPrivate.h: Add inBandMetadataTrackDispatchType and Data format.
22105        (WebCore::InbandTextTrackPrivate::inBandMetadataTrackDispatchType):
22106        * platform/graphics/InbandTextTrackPrivateClient.h: Add addDataCue() method.
22107        * platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h:
22108        (WebCore::InbandMetadataTextTrackPrivateGStreamer::create): Allow specifying the cue format and id.
22109         (WebCore::InbandMetadataTextTrackPrivateGStreamer::InbandMetadataTextTrackPrivateGStreamer): Same.
22110        (WebCore::InbandMetadataTextTrackPrivateGStreamer::setInBandMetadataTrackDispatchType): Added.
22111        (WebCore::InbandMetadataTextTrackPrivateGStreamer::addDataCue): Added.
22112        (WebCore::InbandMetadataTextTrackPrivateGStreamer::addGenericCue): Added.
22113        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
22114        (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Check for MPEG-TS sections.
22115        (WebCore::MediaPlayerPrivateGStreamer::processMpegTsSection): Add MPEG-TS section metadata, and get inBandMetadataTrackDispatchType from the PMT.
22116        (WebCore::MediaPlayerPrivateGStreamer::processTableOfContents): Explicitly use Generic CueFormat.
22117        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
22118
221192014-04-08  Chris Fleizach  <cfleizach@apple.com>
22120
22121        AX: Make AXPress much more reliable on the Web
22122        https://bugs.webkit.org/show_bug.cgi?id=131426
22123
22124        Reviewed by Mario Sanchez Prada.
22125
22126        AXPress fails when an event handler is on a node higher in the parent chain than the focused node.
22127
22128        We need to make AXPress more reliable by 
22129            1) Using the element that is focused as the target of the event
22130            2) Search for the inner most control object when dispatching the event
22131
22132        Updated existing accessibility/press-works-on-control-types.html
22133
22134        * accessibility/AccessibilityMenuList.cpp:
22135        (WebCore::AccessibilityMenuList::press):
22136        * accessibility/AccessibilityMenuList.h:
22137        * accessibility/AccessibilityMenuListPopup.cpp:
22138        (WebCore::AccessibilityMenuListPopup::press):
22139        * accessibility/AccessibilityMenuListPopup.h:
22140        * accessibility/AccessibilityObject.cpp:
22141        (WebCore::AccessibilityObject::press):
22142        * accessibility/AccessibilityObject.h:
22143        (WebCore::AccessibilityObject::performDefaultAction):
22144        * accessibility/AccessibilitySearchFieldButtons.cpp:
22145        (WebCore::AccessibilitySearchFieldCancelButton::press):
22146        * accessibility/AccessibilitySearchFieldButtons.h:
22147        * accessibility/AccessibilitySpinButton.cpp:
22148        (WebCore::AccessibilitySpinButtonPart::press):
22149        * accessibility/AccessibilitySpinButton.h:
22150
221512014-04-09  Brady Eidson  <beidson@apple.com>
22152
22153        ContentFilterMac is broken when NE_FILTER_SOURCE is enabled.
22154        <rdar://problem/15978793> and https://bugs.webkit.org/show_bug.cgi?id=131445
22155
22156        Reviewed by Andy Estes.
22157
22158        No new tests (Not a tested feature).
22159
22160        * platform/mac/ContentFilterMac.mm:
22161        (WebCore::ContentFilter::needsMoreData): Only consider m_neFilterSourceStatus if m_neFilterSource exists.
22162        (WebCore::ContentFilter::didBlockData): Ditto.
22163
221642014-04-08  Oliver Hunt  <oliver@apple.com>
22165
22166        Rewrite Function.bind as a builtin
22167        https://bugs.webkit.org/show_bug.cgi?id=131083
22168
22169        Reviewed by Geoffrey Garen.
22170
22171        Switch WebCore to use the helper functions when defining the
22172        prototype properties on DOM constructors, and update bindings
22173        tests accordingly.
22174
22175        * bindings/js/JSImageConstructor.cpp:
22176        (WebCore::JSImageConstructor::finishCreation):
22177        * bindings/scripts/CodeGeneratorJS.pm:
22178        (GenerateConstructorHelperMethods):
22179        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
22180        (WebCore::JSTestActiveDOMObjectConstructor::finishCreation):
22181        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
22182        (WebCore::JSTestCustomNamedGetterConstructor::finishCreation):
22183        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
22184        (WebCore::JSTestEventConstructorConstructor::finishCreation):
22185        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
22186        (WebCore::JSTestEventTargetConstructor::finishCreation):
22187        * bindings/scripts/test/JS/JSTestException.cpp:
22188        (WebCore::JSTestExceptionConstructor::finishCreation):
22189        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
22190        (WebCore::JSTestGenerateIsReachableConstructor::finishCreation):
22191        * bindings/scripts/test/JS/JSTestInterface.cpp:
22192        (WebCore::JSTestInterfaceConstructor::finishCreation):
22193        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
22194        (WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):
22195        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
22196        (WebCore::JSTestNamedConstructorConstructor::finishCreation):
22197        (WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
22198        * bindings/scripts/test/JS/JSTestNode.cpp:
22199        (WebCore::JSTestNodeConstructor::finishCreation):
22200        * bindings/scripts/test/JS/JSTestObj.cpp:
22201        (WebCore::JSTestObjConstructor::finishCreation):
22202        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
22203        (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
22204        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
22205        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
22206        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
22207        (WebCore::JSTestTypedefsConstructor::finishCreation):
22208        * bindings/scripts/test/JS/JSattribute.cpp:
22209        (WebCore::JSattributeConstructor::finishCreation):
22210        * bindings/scripts/test/JS/JSreadonly.cpp:
22211        (WebCore::JSreadonlyConstructor::finishCreation):
22212
222132014-04-09  Enrica Casucci  <enrica@apple.com>
22214
22215        Unreviewed iOS build fix. Replacing deprecated enum with AVPlayerViewControllerExitFullScreenReason.
22216
22217        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
22218        (-[WebAVPlayerController playerViewController:shouldDismissWithReason:]):
22219
222202014-04-09  Radu Stavila  <stavila@adobe.com>
22221
22222        [CSS Regions] Monolithic elements should not affect the layout of the content outside its region
22223        https://bugs.webkit.org/show_bug.cgi?id=130499
22224
22225        Reviewed by David Hyatt.
22226
22227        When performing layout on an element flowed into regions, its logical height must not be incremented 
22228        past the region's logical bottom for monolithic elements in regions different than the last region their containing
22229        block is fragmented into. This ensures that the following elements are correctly laid out 
22230        from the top of the next region.
22231        This change must also be applied to floats in order to prevent text from avoiding part
22232        of a float that did not actually made it into the current region, but instead overflowed
22233        the previous one.
22234
22235        Tests: fast/regions/fragmentation-after-float-overflow-single-region.html
22236               fast/regions/fragmentation-after-monolithic-overflow-self-collapsed.html
22237               fast/regions/fragmentation-after-monolithic-overflow-single-region.html
22238               fast/regions/fragmentation-after-monolithic-overflow.html
22239
22240        * rendering/FloatingObjects.cpp:
22241        (WebCore::FloatingObjects::computePlacedFloatsTree):
22242        * rendering/RenderBlockFlow.cpp:
22243        (WebCore::RenderBlockFlow::layoutBlockChild):
22244        (WebCore::RenderBlockFlow::adjustBlockChildForPagination):
22245        (WebCore::RenderBlockFlow::lowestFloatLogicalBottom):
22246        (WebCore::RenderBlockFlow::getClearDelta):
22247        (WebCore::RenderBlockFlow::applyAfterBreak): Deleted.
22248        (WebCore::RenderBlockFlow::nextFloatLogicalBottomBelow): Deleted.
22249        (WebCore::RenderBlockFlow::nextFloatLogicalBottomBelowForBlock): Deleted.
22250        (WebCore::RenderBlockFlow::flipFloatForWritingModeForChild): Deleted.
22251        * rendering/RenderBlockFlow.h:
22252        * rendering/RenderFlowThread.cpp:
22253        (WebCore::RenderFlowThread::isBoxInDifferentRegionsAsFloat):
22254        * rendering/RenderFlowThread.h:
22255
222562014-04-09  Anders Carlsson  <andersca@apple.com>
22257
22258        Use std::array in AffineTransform, and get rid of setMatrix
22259        https://bugs.webkit.org/show_bug.cgi?id=131416
22260
22261        Reviewed by Sam Weinig.
22262
22263        * platform/graphics/transforms/AffineTransform.cpp:
22264        (WebCore::AffineTransform::AffineTransform):
22265        (WebCore::AffineTransform::multiply):
22266        * platform/graphics/transforms/AffineTransform.h:
22267        (WebCore::AffineTransform::setMatrix): Deleted.
22268
222692014-04-09  Carlos Garcia Campos  <cgarcia@igalia.com>
22270
22271        [GTK] Plugin process crashes when loading totem plugin
22272        https://bugs.webkit.org/show_bug.cgi?id=131357
22273
22274        Reviewed by Martin Robinson.
22275
22276        Remove netscape plugin implementation from WebCore that was only
22277        used by WebKit1. This removes the conflict between the WebCore NPN
22278        symbols and the ones used by the plugins.
22279
22280        * CMakeLists.txt:
22281        * PlatformEfl.cmake:
22282        * PlatformGTK.cmake:
22283        * PlatformWin.cmake:
22284        * plugins/PluginViewNone.cpp:
22285        * plugins/gtk/PluginPackageGtk.cpp: Removed.
22286        * plugins/gtk/PluginViewGtk.cpp: Removed.
22287        * plugins/gtk/gtk2xtbin.c: Removed.
22288        * plugins/gtk/gtk2xtbin.h: Removed.
22289        * plugins/gtk/xembed.h: Removed.
22290
222912014-04-09  Jeremy Jones  <jeremyj@apple.com>
22292
22293        fullscreen controls first show a play button instead of a pause button
22294        https://bugs.webkit.org/show_bug.cgi?id=131430
22295
22296        Reviewed by Jer Noble.
22297
22298        isPlaying() is false while buffering, paused() isn't; use paused() for
22299        the play button.
22300
22301        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
22302        (WebVideoFullscreenModelMediaElement::setMediaElement):
22303        (WebVideoFullscreenModelMediaElement::handleEvent):
22304        Use HTMLMediaElement::paused() instead of HTMLMediaElement::isPlaying()
22305
223062014-04-09  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
22307
22308        Remove duplicated files and unnecessary conditions from UseJSC.cmake
22309        https://bugs.webkit.org/show_bug.cgi?id=131438
22310
22311        Reviewed by Csaba Osztrogonác.
22312
22313        No new tests required.
22314
22315        * UseJSC.cmake:
22316
223172014-04-09  Mario Sanchez Prada  <mario.prada@samsung.com>
22318
22319        [GTK] Layout tests accessibility/children-changed-sends-notification.html and accessibility/notification-listeners.html fails
22320        https://bugs.webkit.org/show_bug.cgi?id=131380
22321
22322        Reviewed by Chris Fleizach.
22323
22324        Don't emit signals for added objects that we know won't be exposed
22325        to the accessibility hierarchy (e.g. static text).
22326
22327        * accessibility/atk/AXObjectCacheAtk.cpp:
22328        (WebCore::AXObjectCache::attachWrapper): Add extra check and early return.
22329
223302014-04-09  Mario Sanchez Prada  <mario.prada@samsung.com>
22331
22332        [AX][GTK] No new lines in some AX tests output
22333        https://bugs.webkit.org/show_bug.cgi?id=131294
22334
22335        Reviewed by Martin Robinson.
22336
22337        Do not implement Hypetext or AtkText for the WebArea. Those
22338        interfaces will be implemented by the containers (automatically
22339        generated or not) for the different parts of the DOM and the
22340        render subtree under this element anyway.
22341
22342        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
22343        (getInterfaceMaskFromObject): Make sure we don't apply
22344        WAIHypertext nor WAIText to objects with role WebAreaRole.
22345
223462014-04-08  Conrad Shultz  <conrad_shultz@apple.com>
22347
22348        nil should only be used for objects
22349        https://bugs.webkit.org/show_bug.cgi?id=131431
22350
22351        Reviewed by Chris Fleizach.
22352
22353        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
22354        (-[WebAccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
22355        nil -> NO.
22356
22357        * platform/mac/WebVideoFullscreenController.mm:
22358        (-[WebVideoFullscreenController setMediaElement:]):
22359        nil -> 0; change a NULL to nullptr while we're here.
22360
223612014-04-08  Mihnea Ovidenie  <mihnea@adobe.com>
22362
22363        [CSSRegions] Crash when video in region exits fullscreen
22364        https://bugs.webkit.org/show_bug.cgi?id=131366
22365
22366        Reviewed by Andrei Bucur.
22367
22368        After fix for https://bugs.webkit.org/show_bug.cgi?id=130392, we compute the region ranges
22369        information for inline elements collected in named flows with associated region chains.
22370        The algorithm for this computation, implemented in RenderFlowThread::getRegionRangeForBox,
22371        walks up the render tree trying to find the top-most unsplittable box under the named flow
22372        in the case where the region ranges information is not available.
22373
22374        As this traversal works properly only when the starting box is not detached from the render tree,
22375        i changed the named flow information clearing in RenderBlock::collapseAnonymousBoxChild
22376        to occur before the child to be collapsed is removed from the render tree.
22377
22378        Test: fast/regions/full-screen-video-in-region-crash.html
22379
22380        * rendering/RenderBlock.cpp:
22381        (WebCore::RenderBlock::collapseAnonymousBoxChild):
22382        * rendering/RenderFlowThread.cpp:
22383        (WebCore::RenderFlowThread::getRegionRangeForBox):
22384
223852014-04-08  Chris Fleizach  <cfleizach@apple.com>
22386
22387        Unreviewed build fix for iOS (redux).
22388
22389        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
22390        (-[WebAccessibilityObjectWrapper accessibilityARIAIsBusy]):
22391        (-[WebAccessibilityObjectWrapper accessibilityARIALiveRegionIsAtomic]):
22392
223932014-04-08  Chris Fleizach  <cfleizach@apple.com>
22394 
22395        Unreviewed build fix for iOS.
22396
22397        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
22398        (-[WebAccessibilityObjectWrapper accessibilityElementCount]):
22399
224002014-04-08  Antti Koivisto  <antti@apple.com>
22401
22402        Factor tile coverage map into a class
22403        https://bugs.webkit.org/show_bug.cgi?id=131417
22404
22405        Reviewed by Tim Horton.
22406
22407        * WebCore.xcodeproj/project.pbxproj:
22408        * platform/graphics/ca/PlatformCALayerClient.h:
22409        (WebCore::PlatformCALayerClient::platformCALayerLayoutSublayersOfLayer):
22410        (WebCore::PlatformCALayerClient::platformCALayerRespondsToLayoutChanges):
22411        (WebCore::PlatformCALayerClient::platformCALayerAnimationStarted):
22412        (WebCore::PlatformCALayerClient::platformCALayerContentsOrientation):
22413        (WebCore::PlatformCALayerClient::platformCALayerShowDebugBorders):
22414        (WebCore::PlatformCALayerClient::platformCALayerShowRepaintCounter):
22415        (WebCore::PlatformCALayerClient::platformCALayerIncrementRepaintCount):
22416        (WebCore::PlatformCALayerClient::platformCALayerLayerDidDisplay):
22417        
22418            Added default implementation to some of these to make clients less messy.
22419
22420        * platform/graphics/ca/mac/TileController.h:
22421        * platform/graphics/ca/mac/TileController.mm:
22422        (WebCore::TileController::~TileController):
22423        (WebCore::TileController::platformCALayerPaintContents):
22424        (WebCore::TileController::setTiledScrollingIndicatorPosition):
22425        (WebCore::TileController::updateTileCoverageMap):
22426        (WebCore::TileController::tiledScrollingIndicatorLayer):
22427        * platform/graphics/ca/mac/TileCoverageMap.h: Added.
22428        (WebCore::TileCoverageMap::setPosition):
22429        (WebCore::TileCoverageMap::layer):
22430        * platform/graphics/ca/mac/TileCoverageMap.mm: Added.
22431        
22432            The new class.
22433
22434        (WebCore::TileCoverageMap::TileCoverageMap):
22435        (WebCore::TileCoverageMap::~TileCoverageMap):
22436        (WebCore::TileCoverageMap::update):
22437        (WebCore::TileCoverageMap::platformCALayerPaintContents):
22438        (WebCore::TileCoverageMap::platformCALayerDeviceScaleFactor):
22439        * platform/graphics/ca/mac/TileGrid.h:
22440        * platform/graphics/ca/mac/TileGrid.mm:
22441        (WebCore::TileGrid::drawTileMapContents):
22442
224432014-04-08  Zalan Bujtas  <zalan@apple.com>
22444
22445        Subpixel rendering: Clip outer rounded border rect on device pixel boundaries.
22446        https://bugs.webkit.org/show_bug.cgi?id=131404
22447
22448        Reviewed by Simon Fraser.
22449
22450        Use device pixel snapped rectangle to clip out rounded rects, when not all sides are solid/double.
22451        Snapping it to device pixel boundaries ensures that when we call drawRect(devicePixelSnappedRect) later,
22452        it leaves no cruft behind.
22453
22454        Test: fast/borders/hidpi-rounded-border-on-subpixel-position.html
22455
22456        * rendering/RenderBoxModelObject.cpp:
22457        (WebCore::RenderBoxModelObject::paintBorder):
22458
224592014-04-08  Jon Lee  <jonlee@apple.com>
22460
22461        Turn MSE on by default
22462        https://bugs.webkit.org/show_bug.cgi?id=131313
22463        <rdar://problem/16525223>
22464
22465        Reviewed by Jer Noble.
22466
22467        * Configurations/FeatureDefines.xcconfig:
22468        * page/Settings.in: Add MEDIA_SOURCE conditional.
22469
224702014-04-08  Anders Carlsson  <andersca@apple.com>
22471
22472        Remove an unused parameter from loadResource.
22473
22474        Reviewed by Darin Adler.
22475
22476        Since the CachedResourceRequest has the charset in it, we don't need to pass it separately to loadRequest.
22477
22478        * loader/cache/CachedResourceLoader.cpp:
22479        (WebCore::CachedResourceLoader::requestResource):
22480        (WebCore::CachedResourceLoader::loadResource):
22481        * loader/cache/CachedResourceLoader.h:
22482
224832014-04-08  Ryuan Choi  <ryuan.choi@samsung.com>
22484
22485        Unreviewed EFL build fix attempt since r166956
22486
22487        * page/efl/DragControllerEfl.cpp: Rename Clipboard to DataTransfer.
22488        (WebCore::DragController::declareAndWriteDragImage):
22489
224902014-04-08  Simon Fraser  <simon.fraser@apple.com>
22491
22492        REGRESSION (r155998): Elements render at very low resolution with some 3d transforms
22493        https://bugs.webkit.org/show_bug.cgi?id=131412
22494        <rdar://problem/16525044>
22495
22496        Reviewed by Tim Horton.
22497        
22498        In r155998 we started to compute a root-relative transform in order to choose
22499        a good contentsScale to avoid blurring on scaling.
22500        
22501        However, the code failed to update this transform when passing over
22502        GraphicsLayerCAs with no uncommitted changes, which caused us to choose
22503        an incorrect contentsScale sometimes, resulting in blurriness.
22504        
22505        Fix by updating the root-relative transform on layers with no uncommitted
22506        changes.
22507
22508        Test: compositing/contents-scale/incremental-change.html
22509
22510        * platform/graphics/ca/GraphicsLayerCA.cpp:
22511        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
22512
225132014-04-08  Anders Carlsson  <andersca@apple.com>
22514
22515        Don't call CGPathAddPath with invalid CGAffineTransform objects
22516        https://bugs.webkit.org/show_bug.cgi?id=131413
22517        <rdar://problem/16399645>
22518
22519        Reviewed by Darin Adler.
22520
22521        Covered by existing tests.
22522
22523        * platform/graphics/cg/PathCG.cpp:
22524        (WebCore::Path::addPath):
22525        Don't try to add the path if the affine transform isn't invertible.
22526
22527        * platform/graphics/transforms/AffineTransform.cpp:
22528        (WebCore::AffineTransform::isInvertible):
22529        Handle infinite and NaN determinants.
22530
22531        (WebCore::AffineTransform::inverse):
22532        Handle infinite and NaN determinants.
22533
225342014-04-08  Brian J. Burg  <burg@cs.washington.edu>
22535
22536        Web Replay: memoize nondeterministic attributes of the Screen interface
22537        https://bugs.webkit.org/show_bug.cgi?id=131339
22538
22539        Reviewed by Timothy Hatcher.
22540
22541        The values from the screen interface are nondeterministic. Since we can't
22542        change the physical screen dimensions, instead memoize values of attributes.
22543
22544        Test: ManualTests/inspector/replay-window-screen.html
22545
22546        * page/Screen.idl: Add Nondeterministic attribute.
22547
225482014-04-08  Beth Dakin  <bdakin@apple.com>
22549
22550        https://bugs.webkit.org/show_bug.cgi?id=131408
22551        Scrollbars layers don't dynamically update when device scale factor changes
22552        -and corresponding-
22553        <rdar://problem/16503875>
22554
22555        Reviewed by Tim Horton.
22556
22557        The scrollbar layers are not children of the RenderView's layer, so they were 
22558        completely skipped over by this function before. We need to start this higher up 
22559        the tree in the rootGraphicsLayer(), which will typically return the 
22560        m_overflowControlsHostLayer.
22561        * rendering/RenderLayerCompositor.cpp:
22562        (WebCore::RenderLayerCompositor::deviceOrPageScaleFactorChanged):
22563
225642014-04-08  Ryosuke Niwa  <rniwa@webkit.org>
22565
22566        HTMLConverter::aggregatedAttributesForAncestors should cache intermediate results
22567        https://bugs.webkit.org/show_bug.cgi?id=131400
22568
22569        Reviewed by Sam Weinig.
22570
22571        Instead of accumulating attributes from a character node to the highest ancestor,
22572        recursively call aggregatedAttributesForElementAndItsAncestors so that aggregated
22573        attributes are cached on each ancestor to eliminate the old O(n^2) behavior.
22574
22575        * editing/cocoa/HTMLConverter.mm:
22576        (HTMLConverter::aggregatedAttributesForAncestors):
22577        (HTMLConverter::aggregatedAttributesForElementAndItsAncestors): Extracted from aggregatedAttributesForAncestors.
22578
225792014-04-08  Jinwoo Song  <jinwoo7.song@samsung.com>
22580
22581        Unreviewed CMake build fix after r166965.
22582
22583        * UseJSC.cmake: Rename JSClipboardCustom.cpp to JSDataTransferCustom.cpp.
22584
225852014-04-08  Enrica Casucci  <enrica@apple.com>
22586
22587        Unreviewed iOS build fix.
22588
22589        Return false instead of nil in a function that returns BOOL.
22590
22591        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
22592        (-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
22593
225942014-04-08  Brady Eidson  <beidson@apple.com>
22595
22596        Non-empty ranges misdetected as empty ranges, avoiding telephone number detection.
22597        <rdar://problem/16553441> and https://bugs.webkit.org/show_bug.cgi?id=131397 
22598
22599        Reviewed by Tim Horton.
22600
22601        No new tests (Only affects a currently untested Mac-only WK2 feature)
22602
22603        * editing/Editor.cpp:
22604        (WebCore::Editor::scanSelectionForTelephoneNumbers): Fix detection of empty ranges so we don’t
22605          early return erroneously.
22606
226072014-04-08  Adenilson Cavalcanti  <cavalcantii@gmail.com>
22608
22609        [SVG] Fix CSS transform handling when zoomed
22610        https://bugs.webkit.org/show_bug.cgi?id=125836
22611
22612        Reviewed by Tim Horton.
22613
22614        Tests: svg/zoom/page/zoom-css-transforms-expected.svg
22615               svg/zoom/page/zoom-css-transforms.svg
22616
22617        Adjusts CSS transforms when used in SVG to account for unexpected
22618        translation scale. Backport from Chromium #174910.
22619
22620        * svg/SVGGraphicsElement.cpp:
22621        (WebCore::SVGGraphicsElement::animatedLocalTransform):
22622
226232014-04-08  Hans Muller  <hmuller@adobe.com>
22624
22625        [CSS Shapes] large corner radius combined with 0 radius does not wrap properly
22626        https://bugs.webkit.org/show_bug.cgi?id=129739
22627
22628        Reviewed by Bem Jones-Bey.
22629
22630        Corrected special case handling for shape-outside border-box values with border-radius
22631        values that greater than or equal to the box's height.
22632
22633        Tests: fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius-001.html
22634               fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius-002.html
22635
22636        * rendering/shapes/BoxShape.cpp:
22637        (WebCore::BoxShape::getExcludedIntervals):
22638
226392014-04-08  Alexey Proskuryakov  <ap@apple.com>
22640
22641        Rename Clipboard to DataTransfer
22642        https://bugs.webkit.org/show_bug.cgi?id=131371
22643
22644        Reviewed by Anders Carlsson.
22645
22646        This is the name used in HTML5, and it's much better than the confusing Clipboard one.
22647
22648        Renamed related enums too, and made DataTransferAccessPolicy an enum class.
22649
22650        * CMakeLists.txt:
22651        * Configurations/WebCore.xcconfig:
22652        * DerivedSources.cpp:
22653        * DerivedSources.make:
22654        * WebCore.exp.in:
22655        * WebCore.vcxproj/WebCore.vcxproj:
22656        * WebCore.vcxproj/WebCore.vcxproj.filters:
22657        * WebCore.xcodeproj/project.pbxproj:
22658        * bindings/js/JSBindingsAllInOne.cpp:
22659        * bindings/js/JSClipboardCustom.cpp: Removed.
22660        * bindings/js/JSDataTransferCustom.cpp: Copied from Source/WebCore/bindings/js/JSClipboardCustom.cpp.
22661        (WebCore::JSDataTransfer::types):
22662        (WebCore::JSClipboard::types): Deleted.
22663        * bindings/js/JSEventCustom.cpp:
22664        * dom/Clipboard.cpp: Removed.
22665        * dom/Clipboard.h: Removed.
22666        * dom/Clipboard.idl: Removed.
22667        * dom/ClipboardAccessPolicy.h: Removed.
22668        * dom/ClipboardEvent.cpp:
22669        (WebCore::ClipboardEvent::ClipboardEvent):
22670        * dom/ClipboardEvent.h:
22671        (WebCore::ClipboardEvent::create):
22672        (WebCore::ClipboardEvent::clipboard): Deleted.
22673        * dom/ClipboardMac.mm: Removed.
22674        * dom/DOMAllInOne.cpp:
22675        * dom/DataTransfer.cpp: Copied from Source/WebCore/dom/Clipboard.cpp.
22676        (WebCore::DataTransfer::DataTransfer):
22677        (WebCore::DataTransfer::createForCopyAndPaste):
22678        (WebCore::DataTransfer::~DataTransfer):
22679        (WebCore::DataTransfer::setAccessPolicy):
22680        (WebCore::DataTransfer::canReadTypes):
22681        (WebCore::DataTransfer::canReadData):
22682        (WebCore::DataTransfer::canWriteData):
22683        (WebCore::DataTransfer::clearData):
22684        (WebCore::DataTransfer::getData):
22685        (WebCore::DataTransfer::setData):
22686        (WebCore::DataTransfer::types):
22687        (WebCore::DataTransfer::files):
22688        (WebCore::DataTransfer::dropEffect):
22689        (WebCore::DataTransfer::setDropEffect):
22690        (WebCore::DataTransfer::effectAllowed):
22691        (WebCore::DataTransfer::setEffectAllowed):
22692        (WebCore::DataTransfer::setDragImage):
22693        (WebCore::DataTransfer::createForDragAndDrop):
22694        (WebCore::DataTransfer::canSetDragImage):
22695        (WebCore::DataTransfer::updateDragImage):
22696        (WebCore::DataTransfer::createDragImage):
22697        (WebCore::DragImageLoader::DragImageLoader):
22698        (WebCore::DragImageLoader::imageChanged):
22699        (WebCore::DataTransfer::sourceOperation):
22700        (WebCore::DataTransfer::destinationOperation):
22701        (WebCore::DataTransfer::setSourceOperation):
22702        (WebCore::DataTransfer::setDestinationOperation):
22703        (WebCore::Clipboard::Clipboard): Deleted.
22704        (WebCore::Clipboard::createForCopyAndPaste): Deleted.
22705        (WebCore::Clipboard::~Clipboard): Deleted.
22706        (WebCore::Clipboard::setAccessPolicy): Deleted.
22707        (WebCore::Clipboard::canReadTypes): Deleted.
22708        (WebCore::Clipboard::canReadData): Deleted.
22709        (WebCore::Clipboard::canWriteData): Deleted.
22710        (WebCore::Clipboard::clearData): Deleted.
22711        (WebCore::Clipboard::getData): Deleted.
22712        (WebCore::Clipboard::setData): Deleted.
22713        (WebCore::Clipboard::types): Deleted.
22714        (WebCore::Clipboard::files): Deleted.
22715        (WebCore::Clipboard::dropEffect): Deleted.
22716        (WebCore::Clipboard::setDropEffect): Deleted.
22717        (WebCore::Clipboard::effectAllowed): Deleted.
22718        (WebCore::Clipboard::setEffectAllowed): Deleted.
22719        (WebCore::Clipboard::setDragImage): Deleted.
22720        (WebCore::Clipboard::createForDragAndDrop): Deleted.
22721        (WebCore::Clipboard::canSetDragImage): Deleted.
22722        (WebCore::Clipboard::updateDragImage): Deleted.
22723        (WebCore::Clipboard::createDragImage): Deleted.
22724        (WebCore::Clipboard::sourceOperation): Deleted.
22725        (WebCore::Clipboard::destinationOperation): Deleted.
22726        (WebCore::Clipboard::setSourceOperation): Deleted.
22727        (WebCore::Clipboard::setDestinationOperation): Deleted.
22728        * dom/DataTransfer.h: Copied from Source/WebCore/dom/Clipboard.h.
22729        * dom/DataTransfer.idl: Copied from Source/WebCore/dom/Clipboard.idl.
22730        * dom/DataTransferAccessPolicy.h: Copied from Source/WebCore/dom/ClipboardAccessPolicy.h.
22731        * dom/DataTransferItemList.h:
22732        * dom/DataTransferMac.mm: Copied from Source/WebCore/dom/ClipboardMac.mm.
22733        (WebCore::DataTransfer::createDragImage):
22734        (WebCore::Clipboard::createDragImage): Deleted.
22735        * dom/Event.h:
22736        (WebCore::Event::clipboardData):
22737        (WebCore::Event::internalDataTransfer):
22738        (WebCore::Event::clipboard): Deleted.
22739        * dom/Event.idl:
22740        * dom/MouseEvent.cpp:
22741        (WebCore::MouseEvent::create):
22742        (WebCore::MouseEvent::MouseEvent):
22743        (WebCore::MouseEvent::initMouseEvent):
22744        * dom/MouseEvent.h:
22745        (WebCore::MouseEvent::dataTransfer):
22746        * dom/MouseEvent.idl:
22747        * dom/WheelEvent.cpp:
22748        * editing/Editor.cpp:
22749        (WebCore::Editor::canDHTMLCut):
22750        (WebCore::Editor::canDHTMLCopy):
22751        (WebCore::Editor::canDHTMLPaste):
22752        (WebCore::Editor::tryDHTMLCopy):
22753        (WebCore::Editor::tryDHTMLCut):
22754        (WebCore::Editor::tryDHTMLPaste):
22755        (WebCore::Editor::dispatchCPPEvent):
22756        (WebCore::Editor::performCutOrCopy):
22757        (WebCore::Editor::selectedTextForDataTransfer):
22758        (WebCore::Editor::selectedTextForClipboard): Deleted.
22759        * editing/Editor.h:
22760        * editing/ios/EditorIOS.mm:
22761        (WebCore::Editor::stringSelectionForPasteboardWithImageAltText):
22762        * editing/mac/EditorMac.mm:
22763        (WebCore::Editor::takeFindStringFromSelection):
22764        (WebCore::Editor::stringSelectionForPasteboardWithImageAltText):
22765        * loader/EmptyClients.h:
22766        * page/DragClient.h:
22767        * page/DragController.cpp:
22768        (WebCore::DragController::dragExited):
22769        (WebCore::DragController::performDrag):
22770        (WebCore::DragController::tryDHTMLDrag):
22771        (WebCore::DragController::startDrag):
22772        (WebCore::DragController::doImageDrag):
22773        (WebCore::DragController::doSystemDrag):
22774        * page/DragController.h:
22775        * page/DragState.h:
22776        * page/EventHandler.cpp:
22777        (WebCore::EventHandler::dispatchDragEvent):
22778        (WebCore::hasFileOfType):
22779        (WebCore::hasStringOfType):
22780        (WebCore::hasDropZoneType):
22781        (WebCore::findDropZone):
22782        (WebCore::EventHandler::updateDragAndDrop):
22783        (WebCore::EventHandler::cancelDragAndDrop):
22784        (WebCore::EventHandler::performDragAndDrop):
22785        (WebCore::EventHandler::freeDataTransfer):
22786        (WebCore::EventHandler::dragSourceEndedAt):
22787        (WebCore::EventHandler::dispatchDragSrcEvent):
22788        (WebCore::EventHandler::handleDrag):
22789        (WebCore::EventHandler::freeClipboard): Deleted.
22790        * page/EventHandler.h:
22791        * page/efl/EventHandlerEfl.cpp:
22792        (WebCore::EventHandler::createDraggingDataTransfer):
22793        (WebCore::EventHandler::createDraggingClipboard): Deleted.
22794        * page/gtk/DragControllerGtk.cpp:
22795        (WebCore::DragController::declareAndWriteDragImage):
22796        * page/gtk/EventHandlerGtk.cpp:
22797        (WebCore::EventHandler::createDraggingDataTransfer):
22798        (WebCore::EventHandler::createDraggingClipboard): Deleted.
22799        * page/mac/DragControllerMac.mm:
22800        (WebCore::DragController::declareAndWriteDragImage):
22801        * page/mac/EventHandlerMac.mm:
22802        (WebCore::EventHandler::createDraggingDataTransfer):
22803        (WebCore::EventHandler::createDraggingClipboard): Deleted.
22804        * page/win/DragControllerWin.cpp:
22805        (WebCore::DragController::declareAndWriteDragImage):
22806        * page/win/EventHandlerWin.cpp:
22807        (WebCore::EventHandler::createDraggingataTransfer):
22808        (WebCore::EventHandler::createDraggingClipboard): Deleted.
22809        * platform/Pasteboard.h:
22810        * platform/gtk/PasteboardGtk.cpp:
22811        (WebCore::Pasteboard::writeSelection):
22812        * platform/mac/PasteboardMac.mm:
22813        * platform/win/PasteboardWin.cpp:
22814        (WebCore::Pasteboard::writeRangeToDataObject):
22815        (WebCore::Pasteboard::writeSelection):
22816
228172014-04-08  Jer Noble  <jer.noble@apple.com>
22818
22819        Unreviewed iOS build fix. Pass 0 instead of nil to the options parameter of addObserver:forKeyPath:options:context.
22820
22821        * platform/graphics/ios/TextTrackRepresentationIOS.mm:
22822        (-[WebCoreTextTrackRepresentationIOSHelper setParent:]):
22823
228242014-04-08  Antti Koivisto  <antti@apple.com>
22825
22826        Remove exposedRect from TileController
22827        https://bugs.webkit.org/show_bug.cgi?id=131378
22828
22829        Reviewed by Simon Fraser.
22830
22831        Having two separate visible rectangles is confusing. We should compute one on higher level.
22832
22833        * page/FrameView.cpp:
22834        (WebCore::FrameView::setExposedRect):
22835        
22836            Push exposed rect to tile controller by doing a layer flush (like the changed visible rect is normally passed).
22837
22838        * platform/graphics/TiledBacking.h:
22839        * platform/graphics/ca/mac/TileController.h:
22840        * platform/graphics/ca/mac/TileController.mm:
22841        
22842            Remove exposedRect and just use visibleRect.
22843
22844        (WebCore::TileController::TileController):
22845        (WebCore::TileController::setTiledScrollingIndicatorPosition):
22846        
22847            Update the scrolling indicator position.
22848
22849        (WebCore::TileController::updateTileCoverageMap):
22850        (WebCore::TileController::setExposedRect): Deleted.
22851        * platform/graphics/ca/mac/TileGrid.h:
22852        * platform/graphics/ca/mac/TileGrid.mm:
22853        (WebCore::TileGrid::tilesWouldChangeForVisibleRect):
22854        (WebCore::TileGrid::revalidateTiles):
22855        (WebCore::TileGrid::scaledExposedRect): Deleted.
22856        * rendering/RenderLayerBacking.cpp:
22857        (WebCore::RenderLayerBacking::RenderLayerBacking):
22858        
22859            No need to push exposedRect anymore.
22860
22861        * rendering/RenderLayerCompositor.cpp:
22862        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
22863        
22864            Integrate exposed rect to visible rect when flushing layers.
22865
228662014-04-08  Andreas Kling  <akling@apple.com>
22867
22868        [Mac] Always do a full GC when simulating memory pressure.
22869        <https://webkit.org/b/129790>
22870
22871        To get more consistent accounting on automated memory testers,
22872        add a synchronous GC as part of the simulated memory pressure event.
22873
22874        Reviewed by Geoffrey Garen.
22875
22876        * platform/mac/MemoryPressureHandlerMac.mm:
22877        (WebCore::MemoryPressureHandler::install):
22878
228792014-04-08  Jer Noble  <jer.noble@apple.com>
22880
22881        Unreviewed iOS build fix. Pass 0 instead of nil to setRate: when pausing.
22882
22883        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
22884        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformPause):
22885
228862014-04-08  Mark Lam  <mark.lam@apple.com>
22887
22888        Refactor to make JSMainThreadExecState's constructor and destructor private.
22889        <https://webkit.org/b/131372>
22890
22891        Reviewed by Mark Hahnenberg.
22892
22893        This is in preparation for subsequent patches to ensure that we don't
22894        exit the VM with an exception still pending.
22895
22896        No new tests required.  This is only a refactor of existing behavior.
22897
22898        * bindings/js/JSDOMGlobalObjectTask.cpp:
22899        * bindings/js/JSMainThreadExecState.h:
22900        (WebCore::JSMainThreadExecState::runTask):
22901
229022014-04-07  Jer Noble  <jer.noble@apple.com>
22903
22904        [WK2][iOS] Consecutive videos in full screen display only black
22905        https://bugs.webkit.org/show_bug.cgi?id=131316
22906
22907        Reviewed by Eric Carlson.
22908
22909        Update the MediaPlayer's full screen attributes whenever the underlying engine changes,
22910        not just when the engine is initially created. Also, clear the videoLayer out of the
22911        fullscreen layer when destroying the videoLayer.
22912
22913        * html/HTMLMediaElement.cpp:
22914        (WebCore::HTMLMediaElement::parseAttribute):
22915        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
22916        (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer):
22917
229182014-04-08  Morten Stenshorne  <mstensho@opera.com>
22919
22920        [New Multicolumn] Child top margin sometimes ignored for column balancing
22921        https://bugs.webkit.org/show_bug.cgi?id=122754
22922
22923        Reviewed by David Hyatt.
22924
22925        We need to set zero page logical height in LayoutState when column
22926        height is unknown (when the columns haven't yet been
22927        balanced). There's code that assumes that non-zero page height means
22928        that page height is known. Lying about this makes the pagination code
22929        believe that every top margin is adjacent to a column break, which
22930        makes it eat and ignore all top margins.
22931
22932        This should be cleaned up, but it's easier to wait until the old
22933        multicol code has been removed.
22934
22935        Tests: fast/multicol/break-in-scrollable.html
22936               fast/multicol/newmulticol/leading-and-trailing-margin.html
22937               fast/multicol/newmulticol/leading-margin.html
22938
22939        * rendering/LayoutState.cpp:
22940        (WebCore::LayoutState::LayoutState):
22941        * rendering/RenderBlockFlow.cpp:
22942        (WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):
22943        * rendering/RenderFlowThread.h:
22944        * rendering/RenderMultiColumnFlowThread.cpp:
22945        (WebCore::RenderMultiColumnFlowThread::isPageLogicalHeightKnown):
22946        * rendering/RenderMultiColumnFlowThread.h:
22947
229482014-04-07  Dean Jackson  <dino@apple.com>
22949
22950        Allow elements to register for changes in page scale
22951        https://bugs.webkit.org/show_bug.cgi?id=131319
22952
22953        Reviewed by Eric Carlson.
22954
22955        Some parts of WebCore need to react to changes in the page
22956        scale factor, such as resizing when the user zooms. A followup
22957        patch will enable this for media controls - this simply lays
22958        the groundwork.
22959
22960        At the moment we only allow HTMLMediaElements to register, but if
22961        necessary this could be expanded in the future.
22962
22963        * dom/Document.cpp: New methods to keep a list of HTMLMediaElements that
22964        are interested in updates.
22965        (WebCore::Document::registerForPageScaleFactorChangedCallbacks):
22966        (WebCore::Document::unregisterForPageScaleFactorChangedCallbacks):
22967        (WebCore::Document::pageScaleFactorChanged):
22968        * dom/Document.h:
22969        * html/HTMLMediaElement.cpp:
22970        (WebCore::HTMLMediaElement::HTMLMediaElement):
22971        (WebCore::HTMLMediaElement::registerWithDocument): Add ourselves to the
22972        the document's pageScale callback.
22973        (WebCore::HTMLMediaElement::unregisterWithDocument): Remove ourselves from the
22974        the document's pageScale callback.
22975        (WebCore::HTMLMediaElement::setMediaControlsDependOnPageScaleFactor): Add/remove ourselves to/from
22976        the callback if necessary.
22977        (WebCore::HTMLMediaElement::pageScaleFactorChanged): The callback function. Empty for now.
22978        * html/HTMLMediaElement.h:
22979        (WebCore::HTMLMediaElement::mediaControlsDependOnPageScaleFactor): Accessor.
22980        * page/Page.cpp:
22981        (WebCore::Page::setPageScaleFactor): Tell all documents that the user has zoomed.
22982
229832014-04-08  peavo@outlook.com  <peavo@outlook.com>
22984
22985        [WinCairo] Compile error in TextureMapper.h
22986        https://bugs.webkit.org/show_bug.cgi?id=131360
22987
22988        Reviewed by Brent Fulgham.
22989
22990        The TextureMapper class has pure virtual methods, and cannot be instantiated.
22991
22992        * platform/graphics/texmap/TextureMapper.h:
22993        (WebCore::TextureMapper::platformCreateAccelerated):
22994
229952014-04-08  Zalan Bujtas  <zalan@apple.com>
22996
22997        Subpixel rendering: Slow paint path for inlines should snap to device pixels.
22998        https://bugs.webkit.org/show_bug.cgi?id=131259
22999
23000        Reviewed by Simon Fraser.
23001
23002        InlineTextBox::paint needs to round to the same device pixel position as SimpleLineLayout does.
23003
23004        Test: fast/inline/hidpi-slow-path-text-on-subpixel-position.html
23005
23006        * rendering/InlineTextBox.cpp:
23007        (WebCore::InlineTextBox::paint):
23008        * rendering/TextPainter.h: Cleanup. No reason to have them as references here.
23009
230102014-04-07  Brent Fulgham  <bfulgham@apple.com>
23011
23012        Keep 'webkitClosedCaptionsVisible' API in sync with captions display preferences
23013        https://bugs.webkit.org/show_bug.cgi?id=131344
23014
23015        Reviewed by Eric Carlson.
23016
23017        * html/HTMLMediaElement.cpp:
23018        (WebCore::HTMLMediaElement::configureTextTrackGroup) If we decide that captions should
23019        be active (due to user preferences) make sure the 'webkitClosedCaptionsVisible' state
23020        is turned on.
23021
230222014-04-08  Zalan Bujtas  <zalan@apple.com>
23023
23024        Subpixel rendering: Paint the filter effect result image on device pixel position.
23025        https://bugs.webkit.org/show_bug.cgi?id=131255
23026
23027        Reviewed by Simon Fraser.
23028
23029        This patch moves filter effect images from integral to device pixel position. However,
23030        result images are still integral based.
23031
23032        Test: css3/filters/hidpi-filter-is-on-subpixel-position.html
23033
23034        * rendering/FilterEffectRenderer.cpp:
23035        (WebCore::FilterEffectRendererHelper::applyFilterEffect):
23036
230372014-04-08  Zalan Bujtas  <zalan@apple.com>
23038
23039        Subpixel rendering: Make border images device pixel aware.
23040        https://bugs.webkit.org/show_bug.cgi?id=131209
23041
23042        Reviewed by Simon Fraser.
23043
23044        Snap border-image size and position to device pixels. It works both on generated and bitmap images.
23045
23046        Test: fast/borders/hidpi-border-image-gradient-on-subpixels.html
23047
23048        * rendering/RenderBoxModelObject.cpp:
23049        (WebCore::RenderBoxModelObject::paintNinePieceImage):
23050
230512014-04-08  Youenn Fablet  <youenn.fablet@crf.canon.fr>
23052
23053        [SOUP] Control cookie management according ResourceRequest.allowCookies()
23054        https://bugs.webkit.org/show_bug.cgi?id=131026
23055
23056        Reviewed by Sergio Villar Senin.
23057
23058        Added per soup-message disabling of cookie jar manager when related ResourceRequest does not allow cookies (e.g. some cross-origin requests).
23059
23060        Patch is covered by unskipped test http/tests/xmlhttprequest/cross-origin-cookie-storage.html.
23061
23062        * platform/network/soup/ResourceRequestSoup.cpp:
23063        (WebCore::ResourceRequest::updateSoupMessageMembers): Added disabling of cookie jar manager if cookies are not allowed.
23064
230652014-04-08  Sergio Villar Senin  <svillar@igalia.com>
23066
23067        [CSS Grid Layout] Handle min/max height in the grid element
23068        https://bugs.webkit.org/show_bug.cgi?id=131302
23069
23070        Reviewed by Darin Adler.
23071
23072        Removed a FIXME in the code as we're already handling min/max
23073        height in the code. Added a couple of test cases to improve the
23074        test coverage.
23075
23076        Merged from Blink r161876 by <jchaffraix@chromium.org>
23077
23078        Tests: fast/css-grid-layout/flex-content-sized-columns-resize.html
23079               fast/css-grid-layout/grid-element-min-max-height.html
23080
23081        * rendering/RenderGrid.cpp:
23082        (WebCore::RenderGrid::layoutGridItems):
23083
230842014-04-08  Mihnea Ovidenie  <mihnea@adobe.com>
23085
23086        [CSSRegions] Remove unused RenderBox::clearRenderBoxRegionInfo
23087        https://bugs.webkit.org/show_bug.cgi?id=131352
23088
23089        Reviewed by Andrei Bucur.
23090
23091        No new tests, code clean-up.
23092
23093        * rendering/RenderBox.cpp:
23094        (WebCore::RenderBox::clearRenderBoxRegionInfo): Deleted.
23095        * rendering/RenderBox.h:
23096
230972014-04-08  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
23098
23099        Buildfix after r166917
23100        https://bugs.webkit.org/show_bug.cgi?id=131351
23101
23102        Reviewed by Andrei Bucur.
23103
23104        * accessibility/AccessibilityNodeObject.cpp:
23105        (WebCore::accessibleNameForNode):
23106
231072014-04-08  Darin Adler  <darin@apple.com>
23108
23109        Fix assertions triggered by CSS calc changes in r166860
23110        https://bugs.webkit.org/show_bug.cgi?id=131346
23111
23112        Reviewed by Andrei Bucur.
23113
23114        * css/CSSComputedStyleDeclaration.cpp:
23115        (WebCore::getBorderRadiusCornerValues): Use isPercentNotCalculated() instead of
23116        type() == Percent; no behavior change.
23117        (WebCore::getBorderRadiusCornerValue): Ditto.
23118        (WebCore::lineHeightFromStyle): Use isPercentNotCalculated() before code
23119        that calls percent(), which won't work for a calculated length.
23120
23121        * css/DeprecatedStyleBuilder.cpp:
23122        (WebCore::ApplyPropertyBorderRadius::applyValue): Use isNegative and isZero rather
23123        than calling value() unconditionally. Should make calculated values work better.
23124
23125        * html/HTMLPlugInImageElement.cpp:
23126        (WebCore::is100Percent): Use isPercentNotCalculated() before code
23127        that calls percent(), which won't work for a calculated length.
23128
23129        * platform/Length.cpp:
23130        (WebCore::CalculationValueMap::deref): Use adoptRef here instead of calling deref
23131        immediately, so the deref will happen after calling remove. This makes the code
23132        work properly even if it's reentered inside the calculation value's destructor.
23133
23134        * platform/Length.h:
23135        (WebCore::Length::percent): Change assert to isPercentNotCalculated, since the
23136        value function this calls only works for non-calculated values anyway.
23137        (WebCore::Length::isPercentNotCalculated): Added.
23138        (WebCore::Length::isPercent): Changed to call isPercentNotCalculated.
23139        (WebCore::Length::isSpecified): Changed to call isPercent.
23140
23141        * platform/graphics/transforms/TranslateTransformOperation.h:
23142        (WebCore::TranslateTransformOperation::apply): Use isPercentNotCalculated()
23143        instead of type() == Percent; no behavior change.
23144
23145        * rendering/AutoTableLayout.cpp:
23146        (WebCore::AutoTableLayout::recalcColumn): Use isPercentNotCalculated()
23147        before code that calls value() or percent(), which won't work for a calculated length.
23148        (WebCore::AutoTableLayout::computeIntrinsicLogicalWidths): Ditto.
23149        (WebCore::AutoTableLayout::calcEffectiveLogicalWidth): Ditto.
23150        (WebCore::AutoTableLayout::layout): Ditto.
23151        * rendering/FixedTableLayout.cpp:
23152        (WebCore::FixedTableLayout::layout): Ditto.
23153        * rendering/RenderBoxModelObject.cpp:
23154        (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions): Ditto.
23155        * rendering/RenderTableSection.cpp:
23156        (WebCore::updateLogicalHeightForCell): Ditto.
23157        (WebCore::RenderTableSection::distributeExtraLogicalHeightToPercentRows): Ditto.
23158        (WebCore::RenderTableSection::distributeExtraLogicalHeightToRows): Ditto.
23159
23160        * rendering/style/RenderStyle.cpp:
23161        (WebCore::requireTransformOrigin): Use modern for loop. Also marked function static,
23162        since it's private to this file.
23163        (WebCore::RenderStyle::applyTransform): Use isPercentNotCalculated() instead of
23164        type() == Percent; no behavior change. Also use a modern for loop and auto& to avoid
23165        a really long type name.
23166
23167        * rendering/svg/RenderSVGRoot.cpp:
23168        (WebCore::RenderSVGRoot::computeIntrinsicRatioInformation): Use isPercentNotCalculated()
23169        before code that calls percent(), which won't work for a calculated length.
23170
23171        * platform/Length.h:
23172        (WebCore::Length::percent):
23173        (WebCore::Length::isPercentNotCalculated):
23174        (WebCore::Length::isPercent):
23175        (WebCore::Length::isSpecified):
23176        * platform/graphics/transforms/TranslateTransformOperation.h:
23177        (WebCore::TranslateTransformOperation::apply):
23178        * rendering/AutoTableLayout.cpp:
23179        (WebCore::AutoTableLayout::recalcColumn):
23180        (WebCore::AutoTableLayout::computeIntrinsicLogicalWidths):
23181        (WebCore::AutoTableLayout::calcEffectiveLogicalWidth):
23182        (WebCore::AutoTableLayout::layout):
23183        * rendering/FixedTableLayout.cpp:
23184        (WebCore::FixedTableLayout::layout):
23185        * rendering/RenderBoxModelObject.cpp:
23186        (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions):
23187        * rendering/RenderTableSection.cpp:
23188        (WebCore::updateLogicalHeightForCell):
23189        (WebCore::RenderTableSection::distributeExtraLogicalHeightToPercentRows):
23190        (WebCore::RenderTableSection::distributeExtraLogicalHeightToRows):
23191        * rendering/style/RenderStyle.cpp:
23192        (WebCore::requireTransformOrigin):
23193        (WebCore::RenderStyle::applyTransform):
23194        * rendering/svg/RenderSVGRoot.cpp:
23195        (WebCore::RenderSVGRoot::computeIntrinsicRatioInformation):
23196
231972014-04-08  Xabier Rodriguez Calvar  <calvaris@igalia.com>
23198
23199        [GTK] Remove media controls dead code
23200        https://bugs.webkit.org/show_bug.cgi?id=131300
23201
23202        Reviewed by Eric Carlson.
23203
23204        MediaControlsGtk.cpp is no longer used so we can remove it from
23205        the repo.
23206
23207        No new tests needed.
23208
23209        * PlatformGTK.cmake: Remove html/shadow/MediaControlsGtk.cpp from
23210        compilation.
23211        * html/shadow/MediaControlsGtk.cpp: Removed.
23212
232132014-04-08  Mihnea Ovidenie  <mihnea@adobe.com>
23214
23215        [CSSRegions] Fixed positioned elements in named flows have fragmented content
23216        https://bugs.webkit.org/show_bug.cgi?id=130595
23217
23218        Reviewed by Darin Adler.
23219
23220        Fixed positioned elements that have the named flow as parent are positioned
23221        and sized relative to the viewport. Because of that, when the named flow
23222        has an associated region chain, the fixed positioned elements should not
23223        be fragmented.
23224
23225        By making a fixed positioned element with a named flow parent unsplittable
23226        for fragmentation, we prevent this wrong behavior.
23227
23228        Test: fast/regions/fixed-pos-content-fragmented.html
23229
23230        * rendering/RenderBox.cpp:
23231        (WebCore::RenderBox::isUnsplittableForPagination):
23232
232332014-04-07  Chris Fleizach  <cfleizach@apple.com>
23234
23235        Regression: AX: image labels no longer exposed to AX API in SVG test case
23236        https://bugs.webkit.org/show_bug.cgi?id=131208
23237
23238        Reviewed by Daniel Bates.
23239
23240        accessibleNameForNode should work on any Element, not just HTML elements.
23241
23242        Test: accessibility/svg-labelledby.html
23243
23244        * accessibility/AccessibilityNodeObject.cpp:
23245        (WebCore::accessibleNameForNode):
23246
232472014-04-08  Andres Gomez  <agomez@igalia.com>
23248
23249        [GTK] [EFL] Build fails with GCC < 4.8.x
23250        https://bugs.webkit.org/show_bug.cgi?id=130585
23251
23252        Reviewed by Martin Robinson.
23253
23254        The behavior in lower versions of GCC seem to be related to
23255        http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#2132.
23256
23257        Provided explicit casts for the failing ambiguous overloads.
23258
23259        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
23260        (WebCore::AudioFileReader::createBus):
23261        * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
23262        (webKitMediaSrcChangeState):
23263        (webKitMediaVideoSrcNeedDataCb):
23264        (webKitMediaAudioSrcNeedDataCb):
23265        (webKitMediaVideoSrcEnoughDataCb):
23266        (webKitMediaAudioSrcEnoughDataCb):
23267        (webKitMediaVideoSrcSeekDataCb):
23268        (webKitMediaAudioSrcSeekDataCb):
23269        * platform/gtk/GtkDragAndDropHelper.cpp:
23270        (WebCore::GtkDragAndDropHelper::handleDragLeave):
23271        * platform/gtk/SharedTimerGtk.cpp:
23272        (WebCore::setSharedTimerFireInterval):
23273
232742014-04-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
23275
23276        Change NavigatorContentUtils client ownership from port side to NavigatorContentUtils
23277        https://bugs.webkit.org/show_bug.cgi?id=131299
23278
23279        Reviewed by Darin Adler.
23280
23281        EFL and GTK ports have managed own client of NavigatorContentUtils though it is only passed to
23282        NavigatorContentUtils. The NavigatorContentUtils has used the client to call port functions. So,
23283        there is no reason port implementation needs to manage the ownership. To manage the client is
23284        unnecessary work in current implementation.
23285
23286        No new tests, no behavior changes.
23287
23288        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
23289        (WebCore::NavigatorContentUtils::create):
23290        (WebCore::provideNavigatorContentUtilsTo):
23291        * Modules/navigatorcontentutils/NavigatorContentUtils.h:
23292        * Modules/navigatorcontentutils/NavigatorContentUtilsClient.h:
23293
232942014-04-07  Zoltan Horvath  <zoltan@webkit.org>
23295
23296        [CSS Shapes] Simplify the parsing of width arguments for Inset shapes
23297        https://bugs.webkit.org/show_bug.cgi?id=131305
23298
23299        Reviewed by Andreas Kling.
23300
23301        This code introduces some helper functions for setting the size arguments of inset shapes. This change
23302        also modifies the code to be the same as in Blink, so it helps us to keep the shapes code similar.
23303
23304        No new tests, no behavior change.
23305
23306        * css/CSSBasicShapes.h:
23307        (WebCore::CSSBasicShapeInset::updateShapeSize4Values):
23308        (WebCore::CSSBasicShapeInset::updateShapeSize1Value):
23309        (WebCore::CSSBasicShapeInset::updateShapeSize2Values):
23310        (WebCore::CSSBasicShapeInset::updateShapeSize3Values):
23311        * css/CSSParser.cpp:
23312        (WebCore::CSSParser::parseBasicShapeInset):
23313
233142014-04-07  Martin Robinson  <mrobinson@igalia.com>
23315
23316        fast/css3-text/css3-text-decoration/text-decoration-thickness.html fails on GTK
23317        https://bugs.webkit.org/show_bug.cgi?id=129957
23318
23319        Reviewed by Dean Jackson.
23320
23321        Causes existing tests to pass.
23322
23323        * platform/graphics/cairo/GraphicsContextCG.cpp: Use the now-shared computeLineBoundsAndAntialiasingModeForText.
23324        * platform/graphics/cairo/GraphicsContextCairo.cpp: Align the Cairo version of text underline drawing with the CG version.
23325        * platform/graphics/GraphicsContext.h: Add computeLineBoundsAndAntialiasingModeForText.
23326        * platform/graphics/GraphicsContext.cpp: Ditto.
23327
233282014-04-07  Beth Dakin  <bdakin@apple.com>
23329
23330        REGRESSION (r163194-r163227): Garbage tiles in overflow of RTL page with 
23331        background image
23332        https://bugs.webkit.org/show_bug.cgi?id=131323
23333        -and corresponding-
23334        <rdar://problem/16402013>
23335
23336        Reviewed by Tim Horton.
23337
23338        Returning the TiledBacking::bounds() for the 
23339        FrameView::extendedBackgroundRectForPainting() in convenient for ltr pages, but it 
23340        is simply incorrect in rtl. There is no easy way to map the rect into the right 
23341        coordinate space, so this patch re-works the code to use computations in 
23342        RenderView to get the right rect.
23343
23344        Call RenderView::unextendedBackgroundRect() and expand and move it based on the 
23345        TiledBacking’s margins.
23346        * page/FrameView.cpp:
23347        (WebCore::FrameView::extendedBackgroundRectForPainting):
23348
23349        The logic that used to be in backgroundRect() has been moved to 
23350        unextendedBackgroundRect(). 
23351        * rendering/RenderView.cpp:
23352        (WebCore::RenderView::unextendedBackgroundRect):
23353        (WebCore::RenderView::backgroundRect):
23354        * rendering/RenderView.h:
23355
233562014-04-07  Zoltan Horvath  <zoltan@webkit.org>
23357
23358        [CSS Shapes] inset complex calc() args vanish in serialized computed style
23359        https://bugs.webkit.org/show_bug.cgi?id=129838
23360
23361        Reviewed by Bem Jones-Bey.
23362
23363        We didn't pass the style parameter when setting the width members of CSSBasicShapeInset,
23364        which lead to a 'should never reach asserttion' in CSSPrimitiveValue::init. This patch
23365        adds the missing parameters to the call sites.
23366
23367        Extended existing parsing test script.
23368
23369        * css/BasicShapeFunctions.cpp:
23370        (WebCore::valueForBasicShape):
23371
233722014-04-07  Eric Carlson  <eric.carlson@apple.com>
23373
23374        [iOS] MediaDocument should allow autoplay
23375        https://bugs.webkit.org/show_bug.cgi?id=131301
23376
23377        Reviewed by Jer Noble.
23378
23379        * html/HTMLMediaElement.cpp:
23380        (WebCore::HTMLMediaElement::HTMLMediaElement): Don't add the RequireUserGestureForRateChange
23381            behavior restriction when in a MediaDocument.
23382
233832014-04-07  Hyowon Kim  <hw1008.kim@samsung.com>
23384
23385        Move to using std::unique_ptr for opengl, texmap, transforms and efl in WebCore/platform/graphics.
23386        https://bugs.webkit.org/show_bug.cgi?id=131276
23387
23388        Reviewed by Darin Adler.
23389
23390        Replace uses of OwnPtr and PassOwnPtr in code under WebCore/platform/graphics/
23391        opengl, texmap, transforms and efl with std::unique_ptr.
23392
23393        * html/canvas/WebGLRenderingContext.cpp:
23394        (WebCore::WebGLRenderingContext::initializeNewContext):
23395        * platform/graphics/GraphicsContext3D.h:
23396        * platform/graphics/GraphicsContext3DPrivate.cpp:
23397        (WebCore::GraphicsContext3DPrivate::create): Deleted.
23398        * platform/graphics/GraphicsContext3DPrivate.h:
23399        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
23400        (WebCore::GraphicsContext3D::GraphicsContext3D):
23401        (WebCore::GraphicsContext3D::setContextLostCallback):
23402        (WebCore::GraphicsContext3D::setErrorMessageCallback):
23403        * platform/graphics/efl/EvasGLContext.h:
23404        * platform/graphics/efl/EvasGLSurface.h:
23405        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
23406        (WebCore::GraphicsContext3D::setContextLostCallback):
23407        (WebCore::GraphicsContext3D::setErrorMessageCallback):
23408        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
23409        (WebCore::GraphicsContext3DPrivate::create):
23410        (WebCore::GraphicsContext3DPrivate::setContextLostCallback):
23411        * platform/graphics/efl/GraphicsContext3DPrivate.h:
23412        * platform/graphics/mac/GraphicsContext3DMac.mm:
23413        (WebCore::GraphicsContext3D::GraphicsContext3D):
23414        (WebCore::GraphicsContext3D::setContextLostCallback):
23415        (WebCore::GraphicsContext3D::setErrorMessageCallback):
23416        * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
23417        (WebCore::Extensions3DOpenGLES::setEXTContextLostCallback):
23418        * platform/graphics/opengl/Extensions3DOpenGLES.h:
23419        * platform/graphics/opengl/GLPlatformContext.cpp:
23420        (WebCore::createOffScreenContext):
23421        (WebCore::GLPlatformContext::createContext):
23422        * platform/graphics/opengl/GLPlatformContext.h:
23423        * platform/graphics/opengl/GLPlatformSurface.cpp:
23424        (WebCore::GLPlatformSurface::createOffScreenSurface):
23425        * platform/graphics/opengl/GLPlatformSurface.h:
23426        * platform/graphics/surfaces/efl/GraphicsSurfaceCommon.cpp:
23427        * platform/graphics/surfaces/egl/EGLSurface.cpp:
23428        (WebCore::EGLOffScreenSurface::createOffScreenSurface):
23429        * platform/graphics/surfaces/egl/EGLSurface.h:
23430        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
23431        (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
23432        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
23433        * platform/graphics/texmap/TextureMapper.cpp:
23434        (WebCore::TextureMapper::create):
23435        (WebCore::TextureMapper::TextureMapper):
23436        * platform/graphics/texmap/TextureMapper.h:
23437        (WebCore::TextureMapper::platformCreateAccelerated):
23438        * platform/graphics/texmap/TextureMapperGL.cpp:
23439        (WebCore::TextureMapper::platformCreateAccelerated):
23440        * platform/graphics/texmap/TextureMapperGL.h:
23441        (WebCore::TextureMapperGL::create): Deleted.
23442        * platform/graphics/texmap/TextureMapperImageBuffer.h:
23443        (WebCore::TextureMapperImageBuffer::TextureMapperImageBuffer):
23444        (WebCore::TextureMapperImageBuffer::create): Deleted.
23445        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
23446        (WebCore::CoordinatedGraphicsScene::purgeGLResources):
23447        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
23448        * platform/graphics/transforms/TransformState.cpp:
23449        (WebCore::TransformState::operator=):
23450        (WebCore::TransformState::applyTransform):
23451        * platform/graphics/transforms/TransformState.h:
23452        * platform/graphics/win/GraphicsContext3DWin.cpp:
23453        (WebCore::GraphicsContext3D::GraphicsContext3D):
23454        (WebCore::GraphicsContext3D::setContextLostCallback):
23455        (WebCore::GraphicsContext3D::setErrorMessageCallback):
23456
234572014-04-07  Tim Horton  <timothy_horton@apple.com>
23458
23459        [iOS WebKit2] Make back-buffers purgeable when possible
23460        https://bugs.webkit.org/show_bug.cgi?id=131213
23461        <rdar://problem/15373906>
23462
23463        Reviewed by Simon Fraser.
23464
23465        * WebCore.exp.in:
23466        * platform/graphics/cg/IOSurfacePool.cpp:
23467        (WebCore::IOSurfacePool::takeSurface):
23468        (WebCore::IOSurfacePool::markOlderSurfacesPurgeable):
23469        (WebCore::IOSurfacePool::showPoolStatistics):
23470        * platform/graphics/cocoa/IOSurface.h:
23471        * platform/graphics/cocoa/IOSurface.mm:
23472        (IOSurface::isVolatile):
23473        (IOSurface::setIsVolatile):
23474        Rename purgeability functions to match the system
23475        and reduce confusion between purgeable memory
23476        and volatile vs. non-volatile memory.
23477
234782014-04-07  Benjamin Poulain  <benjamin@webkit.org>
23479
23480        Split CSS Selectors pseudo class and pseudo elements
23481        https://bugs.webkit.org/show_bug.cgi?id=131295
23482
23483        Reviewed by Andreas Kling.
23484
23485        Split pseudo class and pseudo element to make it clearer what pseudo types
23486        are possible for a given match type.
23487
23488        Pseudo Element types are separated and Pseudo Class are left in place. The Pseudo Class
23489        will have to be renamed too but that will be done separately to make this change smaller.
23490
23491        * css/CSSGrammar.y.in:
23492        * css/CSSParser.cpp:
23493        (WebCore::CSSParser::rewriteSpecifiersWithElementName):
23494        (WebCore::CSSParser::rewriteSpecifiers):
23495        Use a method isPseudoElementCueFunction() to abstract the #ifdef out of the parser.
23496
23497        * css/CSSParserValues.cpp:
23498        (WebCore::CSSParserSelector::parsePseudoElementSelector):
23499
23500        (WebCore::CSSParserSelector::parsePseudoElementCueFunctionSelector):
23501        Rename to specify this is for the pseudo element cue function, not the pseudo element cue.
23502
23503        (WebCore::CSSParserSelector::parsePseudoClassAndCompatibilityElementSelector):
23504        (WebCore::CSSParserSelector::parsePseudoCueFunctionSelector): Deleted.
23505        * css/CSSParserValues.h:
23506        (WebCore::CSSParserSelector::isPseudoElementCueFunction):
23507        * css/CSSSelector.cpp:
23508        (WebCore::CSSSelector::specificityForOneSelector):
23509        (WebCore::CSSSelector::pseudoId):
23510        (WebCore::CSSSelector::parsePseudoElementType):
23511        (WebCore::CSSSelector::operator==):
23512        * css/CSSSelector.h:
23513        (WebCore::CSSSelector::pseudoType):
23514        (WebCore::CSSSelector::setPseudoElementType):
23515        (WebCore::CSSSelector::pseudoElementType):
23516        (WebCore::CSSSelector::isUnknownPseudoElement):
23517        (WebCore::CSSSelector::isCustomPseudoElement):
23518        (WebCore::pseudoClassIsRelativeToSiblings):
23519        (WebCore::CSSSelector::isSiblingSelector):
23520        * css/RuleFeature.cpp:
23521        (WebCore::RuleFeatureSet::collectFeaturesFromSelector):
23522        * css/RuleSet.cpp:
23523        (WebCore::determinePropertyWhitelistType):
23524        (WebCore::RuleSet::findBestRuleSetAndAdd):
23525        * css/SelectorChecker.cpp:
23526        (WebCore::SelectorChecker::matchRecursively):
23527        (WebCore::SelectorChecker::checkOne):
23528        (WebCore::SelectorChecker::checkScrollbarPseudoClass):
23529        (WebCore::SelectorChecker::determineLinkMatchType):
23530        * css/SelectorPseudoClassAndCompatibilityElementMap.in:
23531        * css/SelectorPseudoElementTypeMap.in:
23532        * css/SelectorPseudoTypeMap.h:
23533        * css/makeSelectorPseudoClassAndCompatibilityElementMap.py:
23534        * css/makeSelectorPseudoElementsMap.py:
23535        (enumerablePseudoType):
23536        * page/DOMWindow.cpp:
23537        (WebCore::DOMWindow::getMatchedCSSRules):
23538
23539        * rendering/style/RenderStyleConstants.h:
23540        All the fullscreen pseudo types are pseudo class selectors. They should not have a pseudo ID.
23541
235422014-04-07  Brian J. Burg  <burg@cs.washington.edu>
23543
23544        Web Replay: detect possible replay divergence from unexpected DOM event dispatches
23545        https://bugs.webkit.org/show_bug.cgi?id=131193
23546
23547        Reviewed by Andreas Kling.
23548
23549        Add assertions to catch potential nondeterministic behavior.
23550
23551        The assertion added by this patch catches dispatched DOM events
23552        that are triggered by nondeterministic event loop cycles. If we
23553        did not capture an event loop input in the current event loop
23554        cycle nor are we manually simulating an event loop input during
23555        playback, then DOM events fired during the unordered cycle could
23556        run JavaScript and diverge the execution.
23557
23558        During playback, we can assert that EventLoopInputDispatcher is dispatching
23559        when a DOM event is be dispatched to a document that is being replayed.
23560
23561        During capturing, event loop inputs are captured rather than
23562        dispatched, so we add some accounting to track what caused a DOM
23563        event. To approximate the extent of computation triggered by an
23564        event loop input, we add RAII helpers to call sites where event
23565        loop inputs are captured.
23566
23567        The assertions are disabled by default until the most common
23568        sources of nondeterminism are handled and playback errors are
23569        gracefully surfaced to the user. <https://webkit.org/b/131279>
23570
23571        No new tests. This patch adds extra assertions for debugging purposes.
23572
23573        * WebCore.xcodeproj/project.pbxproj:
23574        * inspector/InspectorInstrumentation.cpp: Notify ReplayAgent of dispatched DOM event.
23575        (WebCore::InspectorInstrumentation::willDispatchEventImpl):
23576        (WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
23577        * inspector/InspectorReplayAgent.cpp: Forward dispatched DOM events to ReplayController.
23578        (WebCore::InspectorReplayAgent::willDispatchEvent): Added.
23579        * inspector/InspectorReplayAgent.h:
23580        * replay/CapturingInputCursor.cpp:
23581        (WebCore::CapturingInputCursor::CapturingInputCursor):
23582        (WebCore::CapturingInputCursor::setWithinEventLoopInputExtent): Added.
23583        * replay/CapturingInputCursor.h:
23584        * replay/EventLoopInput.cpp: Added.
23585        (WebCore::EventLoopInputExtent::EventLoopInputExtent): Added.
23586        (WebCore::EventLoopInputExtent::~EventLoopInputExtent): Added.
23587        * replay/EventLoopInput.h:
23588        * replay/EventLoopInputDispatcher.h:
23589        (WebCore::EventLoopInputDispatcher::isDispatching): Add a getter.
23590        * replay/ReplayController.cpp:
23591        (WebCore::logDispatchedDOMEvent): Added. This is useful for understanding script-visible events.
23592        (WebCore::ReplayController::willDispatchEvent): Added.
23593        * replay/ReplayController.h:
23594        * replay/UserInputBridge.cpp: Add extent helpers to call sites that capture inputs.
23595        (WebCore::UserInputBridge::handleMousePressEvent):
23596        (WebCore::UserInputBridge::handleMouseReleaseEvent):
23597        (WebCore::UserInputBridge::handleMouseMoveEvent):
23598        (WebCore::UserInputBridge::handleMouseMoveOnScrollbarEvent):
23599        (WebCore::UserInputBridge::handleKeyEvent):
23600        (WebCore::UserInputBridge::handleWheelEvent):
23601        (WebCore::UserInputBridge::scrollRecursively):
23602        (WebCore::UserInputBridge::logicalScrollRecursively):
23603
236042014-04-07  Timothy Hatcher  <timothy@apple.com>
23605
23606        Remove copy of combine-javascript-resources.pl that isn't used anymore
23607        https://bugs.webkit.org/show_bug.cgi?id=131307
23608
23609        Reviewed by Joseph Pecoraro.
23610
23611        * WebCore.xcodeproj/project.pbxproj:
23612        * inspector/combine-javascript-resources.pl: Removed.
23613
236142014-04-07  Zoltan Horvath  <zoltan@webkit.org>
23615
23616        [CSS Shapes] Clean up invalid FIXME
23617        https://bugs.webkit.org/show_bug.cgi?id=131304
23618
23619        Reviewed by Andreas Kling.
23620
23621        No new tests, no behavior change.
23622
23623        * page/animation/CSSPropertyAnimation.cpp:
23624        (WebCore::blendFunc):
23625
236262014-04-07  Ryuan Choi  <ryuan.choi@samsung.com>
23627
23628        [EFL] Turn on ENABLE_MEDIA_CONTROLS_SCRIPT
23629        https://bugs.webkit.org/show_bug.cgi?id=131257
23630
23631        Reviewed by Gyuyoung Kim.
23632
23633        no new tests. just rebased exisiting tests.
23634
23635        * PlatformEfl.cmake: Added the media controls script associated files.
23636        * css/mediaControlsEfl.css: Removed.
23637        * css/mediaControlsEflFullscreen.css: Removed.
23638        * platform/efl/DefaultTheme/CMakeLists.txt:
23639        * platform/efl/DefaultTheme/default.edc:
23640        * platform/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/enterfullscreenbutton.png: Removed.
23641        * platform/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/exitfullscreenbutton.png: Removed.
23642        * platform/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/fullscreen_button.edc: Removed.
23643        * platform/efl/DefaultTheme/widget/mediacontrol/mutebutton/mute_button.edc: Removed.
23644        * platform/efl/DefaultTheme/widget/mediacontrol/mutebutton/mutebutton.png: Removed.
23645        * platform/efl/DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.png: Removed.
23646        * platform/efl/DefaultTheme/widget/mediacontrol/playpausebutton/pausebutton.png: Removed.
23647        * platform/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playbutton.png: Removed.
23648        * platform/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playpause_button.edc: Removed.
23649        * platform/efl/DefaultTheme/widget/mediacontrol/seekbackwardbutton/seekbackward_button.edc: Removed.
23650        * platform/efl/DefaultTheme/widget/mediacontrol/seekbackwardbutton/seekbackwardbutton.png: Removed.
23651        * platform/efl/DefaultTheme/widget/mediacontrol/seekforwardbutton/seekforward_button.edc: Removed.
23652        * platform/efl/DefaultTheme/widget/mediacontrol/seekforwardbutton/seekforwardbutton.png: Removed.
23653        * platform/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption.png: Removed.
23654        * platform/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption_disabled.png: Removed.
23655        * platform/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/toggle_captions_button.edc: Removed.
23656        * platform/efl/RenderThemeEfl.cpp:
23657        (WebCore::toEdjeGroup):
23658        (WebCore::RenderThemeEfl::RenderThemeEfl):
23659        (WebCore::RenderThemeEfl::adjustSliderThumbSize):
23660        (WebCore::RenderThemeEfl::mediaControlsStyleSheet): Modified to load bundle style sheet.
23661        (WebCore::RenderThemeEfl::mediaControlsScript): Added to load bundle scripts.
23662        (WebCore::RenderThemeEfl::emitMediaButtonSignal): Deleted.
23663        (WebCore::RenderThemeEfl::extraMediaControlsStyleSheet): Deleted.
23664        (WebCore::RenderThemeEfl::extraFullScreenStyleSheet): Deleted.
23665        (WebCore::RenderThemeEfl::formatMediaControlsCurrentTime): Deleted.
23666        (WebCore::RenderThemeEfl::hasOwnDisabledStateHandlingFor): Deleted.
23667        (WebCore::RenderThemeEfl::paintMediaFullscreenButton): Deleted.
23668        (WebCore::RenderThemeEfl::paintMediaMuteButton): Deleted.
23669        (WebCore::RenderThemeEfl::paintMediaPlayButton): Deleted.
23670        (WebCore::RenderThemeEfl::paintMediaSeekBackButton): Deleted.
23671        (WebCore::RenderThemeEfl::paintMediaSeekForwardButton): Deleted.
23672        (WebCore::RenderThemeEfl::paintMediaSliderTrack): Deleted.
23673        (WebCore::RenderThemeEfl::paintMediaSliderThumb): Deleted.
23674        (WebCore::RenderThemeEfl::paintMediaVolumeSliderContainer): Deleted.
23675        (WebCore::RenderThemeEfl::paintMediaVolumeSliderTrack): Deleted.
23676        (WebCore::RenderThemeEfl::paintMediaVolumeSliderThumb): Deleted.
23677        (WebCore::RenderThemeEfl::paintMediaCurrentTime): Deleted.
23678        (WebCore::RenderThemeEfl::supportsClosedCaptioning): Deleted.
23679        (WebCore::RenderThemeEfl::paintMediaToggleClosedCaptionsButton): Deleted.
23680        * platform/efl/RenderThemeEfl.h:
23681
236822014-04-07  Benjamin Poulain  <benjamin@webkit.org>
23683
23684        CSS JIT: change the node flags directly instead of using function calls when possible
23685        https://bugs.webkit.org/show_bug.cgi?id=131292
23686
23687        Reviewed by Andreas Kling.
23688
23689        For historical reasons, changing the node flags was always done with function calls.
23690        This patch changes those calls to modify the nodes directly.
23691
23692        * cssjit/SelectorCompiler.cpp:
23693        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
23694        (WebCore::SelectorCompiler::setNodeFlag):
23695        (WebCore::SelectorCompiler::SelectorCodeGenerator::markParentElementIfResolvingStyle):
23696        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFirstChild):
23697        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsLastChild):
23698        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsOnlyChild):
23699        (WebCore::SelectorCompiler::markElementWithSetChildrenAffectedByLastChildRules): Deleted.
23700        (WebCore::SelectorCompiler::markElementWithSetChildrenAffectedByFirstChildAndLastChildRules): Deleted.
23701        * dom/Element.cpp:
23702        (WebCore::Element::setChildrenAffectedByFirstChildRules): Deleted.
23703        (WebCore::Element::setChildrenAffectedByDirectAdjacentRules): Deleted.
23704        * dom/Element.h:
23705        * dom/Node.h:
23706        (WebCore::Node::flagChildrenAffectedByFirstChildRulesFlag):
23707        (WebCore::Node::flagChildrenAffectedByLastChildRulesFlag):
23708        (WebCore::Node::flagChildrenAffectedByDirectAdjacentRulesFlag):
23709
237102014-04-07  Krzysztof Czech  <k.czech@samsung.com>
23711
23712        Remove unused header from PlatformSpeechSynthesizer.h
23713        https://bugs.webkit.org/show_bug.cgi?id=131103
23714
23715        Reviewed by Anders Carlsson.
23716
23717        Since WebSpeech has switched to use std::unique_ptr, we do not need to include PassOwnPtr.
23718
23719        No new tests. No behaviour change, just quick fix.
23720
23721        * platform/PlatformSpeechSynthesizer.h:
23722
237232014-04-06  Mihnea Ovidenie  <mihnea@adobe.com>
23724
23725        [CSSRegions] Use RenderRegion::isValid() before using a region
23726        https://bugs.webkit.org/show_bug.cgi?id=131232
23727
23728        Reviewed by Andreas Kling.
23729
23730        RenderRegion method isValid() should be used to test whether a region
23731        is good to use instead of a mix between isValid() and flowThread().
23732        When the region is designed to fragment content from a parent flow thread,
23733        the m_flowThread is not nullified anymore, thus ensuring the same treatment for all invalid
23734        regions.
23735        Covered by existing regions tests.
23736
23737        * inspector/InspectorOverlay.cpp:
23738        (WebCore::buildObjectForElementInfo):
23739        * rendering/RenderBox.cpp:
23740        (WebCore::RenderBox::layoutOverflowRectForPropagation):
23741        * rendering/RenderBoxModelObject.cpp:
23742        (WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
23743        * rendering/RenderLayer.cpp:
23744        (WebCore::RenderLayer::updateLayerPositions):
23745        (WebCore::RenderLayer::paintLayer):
23746        (WebCore::RenderLayer::hitTestLayer):
23747        (WebCore::RenderLayer::calculateClipRects):
23748        * rendering/RenderNamedFlowFragment.cpp:
23749        (WebCore::RenderNamedFlowFragment::pageLogicalHeight):
23750        (WebCore::RenderNamedFlowFragment::maxPageLogicalHeight):
23751        * rendering/RenderNamedFlowThread.cpp:
23752        (WebCore::RenderNamedFlowThread::getRanges):
23753        (WebCore::RenderNamedFlowThread::clearRenderObjectCustomStyle):
23754        (WebCore::RenderNamedFlowThread::checkRegionsWithStyling):
23755        * rendering/RenderRegion.cpp:
23756        (WebCore::RenderRegion::RenderRegion):
23757        (WebCore::RenderRegion::positionForPoint):
23758        (WebCore::RenderRegion::pageLogicalWidth):
23759        (WebCore::RenderRegion::pageLogicalHeight):
23760        (WebCore::RenderRegion::styleDidChange):
23761        (WebCore::RenderRegion::installFlowThread):
23762        (WebCore::RenderRegion::attachRegion):
23763        (WebCore::RenderRegion::detachRegion):
23764        (WebCore::RenderRegion::ensureOverflowForBox):
23765        (WebCore::RenderRegion::renderBoxRegionInfo):
23766
237672014-04-06  Benjamin Poulain  <benjamin@webkit.org>
23768
23769        Fix the debug bots after r166863
23770
23771        * css/PageRuleCollector.cpp:
23772        (WebCore::checkPageSelectorComponents): I forgot to update one call site for PagePseudoClass.
23773
237742014-04-06  Darin Adler  <darin@apple.com>
23775
23776        Make some bindings improvements, with smaller code size for error message generation
23777        https://bugs.webkit.org/show_bug.cgi?id=131285
23778
23779        Reviewed by Andreas Kling.
23780
23781        * WebCore.exp.in: Updated to remove old and add new functions, for use by the Internals
23782        JavaScript bindings.
23783
23784        * bindings/js/JSDOMBinding.cpp:
23785        (WebCore::makeDOMBindingsTypeErrorStringInternal): Deleted.
23786        (WebCore::throwTypeError): Added. Helper to avoid repeating throwVMError/createTypeError.
23787        (WebCore::appendArgumentMustBe): Added. Helper for building up argument error strings.
23788        (WebCore::reportDeprecatedGetterError): Added. For bindings to use.
23789        (WebCore::throwArgumentMustBeEnumError): Ditto.
23790        (WebCore::throwArgumentMustBeFunctionError): Ditto.
23791        (WebCore::throwArgumentTypeError): Ditto.
23792        (WebCore::throwArrayElementTypeError): Ditto.
23793        (WebCore::throwAttributeTypeError): Ditto.
23794        (WebCore::throwConstructorDocumentUnavailableError): Ditto.
23795        (WebCore::throwGetterTypeError): Ditto.
23796        (WebCore::throwSequenceTypeError): Ditto.
23797        (WebCore::throwSetterTypeError): Ditto.
23798        (WebCore::throwThisTypeError): Ditto.
23799
23800        * bindings/js/JSDOMBinding.h: Added declarations for new functions. Removed forward
23801        declarations for things not used in this file. Use nullptr instead of 0. Format
23802        templates consistently. Use a better for loop in the jsArray function. Removed
23803        unused HasMemoryCostMemberFunction, makeDOMBindingsTypeErrorString, and
23804        makeDOMBindingsTypeErrorStringInternal.
23805
23806        * bindings/js/JSNavigatorCustom.cpp: Fixed a hand-written binding that was using
23807        makeDOMBindingsTypeErrorString to make a string.
23808
23809        * bindings/js/ScriptController.h: Updated forward declarations.
23810
23811        * bindings/scripts/CodeGeneratorJS.pm:
23812        (GenerateImplementation): Cut down on use of UNUSED_PARAM. Use the new functions
23813        for errors, keeping the code in the generated file to a minimum.
23814        (GenerateParametersCheck): Ditto.
23815        (GenerateConstructorDefinition): Ditto.
23816
23817        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
23818        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
23819        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
23820        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
23821        * bindings/scripts/test/JS/JSTestException.cpp:
23822        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
23823        * bindings/scripts/test/JS/JSTestInterface.cpp:
23824        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
23825        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
23826        * bindings/scripts/test/JS/JSTestNode.cpp:
23827        * bindings/scripts/test/JS/JSTestObj.cpp:
23828        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
23829        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
23830        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
23831        * bindings/scripts/test/JS/JSattribute.cpp:
23832        * bindings/scripts/test/JS/JSreadonly.cpp:
23833        Updated expected results for changes above.
23834
238352014-04-06  Benjamin Poulain  <benjamin@webkit.org>
23836
23837        Move the PseudoPageClass types out of the pseudo element/class mix
23838        https://bugs.webkit.org/show_bug.cgi?id=131284
23839
23840        Reviewed by Darin Adler.
23841
23842        Some more cleanup of Selector's pseudo types. This patch moves the page pseudo
23843        class types into their own enumeration (PagePseudoClassType).
23844
23845        * css/CSSParserValues.cpp:
23846        (WebCore::CSSParserSelector::parsePagePseudoSelector):
23847        * css/CSSSelector.cpp:
23848        (WebCore::CSSSelector::specificityForPage):
23849        (WebCore::CSSSelector::pseudoId):
23850        (WebCore::CSSSelector::selectorText):
23851        * css/CSSSelector.h:
23852        (WebCore::CSSSelector::setPagePseudoType):
23853        (WebCore::CSSSelector::pagePseudoClassType):
23854        * css/PageRuleCollector.cpp:
23855        (WebCore::checkPageSelectorComponents):
23856        * cssjit/SelectorCompiler.cpp:
23857        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
23858
238592014-04-06  Benjamin Poulain  <benjamin@webkit.org>
23860
23861        CSS JIT: add support for :last-child and :only-child
23862        https://bugs.webkit.org/show_bug.cgi?id=131283
23863
23864        Reviewed by Andreas Kling.
23865
23866        This is the straightforward implementation of :last-child and :only-child.
23867
23868        Both are extremely similar to :first-child. There are only minor differences:
23869        -:last-child has an additional check for the flag IsParsingChildrenFinished.
23870        -:only-child is like :first-child + :last-child but with combined marking.
23871
23872        * cssjit/SelectorCompiler.cpp:
23873        (WebCore::SelectorCompiler::addPseudoType):
23874        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToNextAdjacentElement):
23875        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
23876        (WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNoPreviousAdjacentElement):
23877        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFirstChild):
23878        (WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNoNextAdjacentElement):
23879        (WebCore::SelectorCompiler::markElementWithSetChildrenAffectedByLastChildRules):
23880        (WebCore::SelectorCompiler::setLastChildState):
23881        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsLastChild):
23882        (WebCore::SelectorCompiler::markElementWithSetChildrenAffectedByFirstChildAndLastChildRules):
23883        (WebCore::SelectorCompiler::setOnlyChildState):
23884        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsOnlyChild):
23885        * dom/Node.h:
23886        (WebCore::Node::nextSiblingMemoryOffset):
23887        (WebCore::Node::flagIsParsingChildrenFinished):
23888        * rendering/style/RenderStyle.h:
23889        Removed the unused flags, I will add them back later as needed.
23890
238912014-04-06  Darin Adler  <darin@apple.com>
23892
23893        Rework CSS calc logic, fixing some reference count mistakes in Length
23894        https://bugs.webkit.org/show_bug.cgi?id=131280
23895        rdar://problem/16400823
23896
23897        Reviewed by Andreas Kling.
23898
23899        New unit test in TestWebKitAPI.
23900
23901        Changed the classes related to CSS "calc" to make the code a bit easier to read by
23902        moving code out of class definitions. Also used final some more, made more things private,
23903        used references instead of pointers, and other such changes. Biggest change, though, is to
23904        Length, which had a broken system for managing reference counted calculated objects.
23905        There were multiple bugs including a basic design mistake of not having a reference count
23906        and trying to use the reference count in the object itself. Fixed and covered by the unit
23907        test now; test found multiple problems in both the old and new implementations.
23908
23909        * WebCore.exp.in: Updated exports, including symbols to make the unit test practical.
23910
23911        * WebCore.xcodeproj/project.pbxproj: Made CalculationValue.h a Private file so it can
23912        be used in a unit test. Also let Xcode update the file type for a gperf file.
23913
23914        * css/CSSCalculationValue.cpp:
23915        (WebCore::CSSCalcValue::equals): Updated since m_expression is a Ref now.
23916        (WebCore::CSSCalcValue::clampToPermittedRange): Marked inline and updated for data member
23917        name change.
23918        (WebCore::isIntegerResult): Changed argument order to put the operator first and use
23919        references instead of pointers. Also marked inline.
23920        (WebCore::createBlendHalf): Added. Helper to make the other functions more readable.
23921        (WebCore::createExpressionNode): Made non-member function private to this file. Also made
23922        many small improvements.
23923        (WebCore::CSSCalcValue::create): Updated so both of these call the same constructor.
23924
23925        * css/CSSCalculationValue.h: Cut down CSSCalcValue class by making more things private
23926        and deleting unneeded things. Also use Ref instead of RefPtr.
23927
23928        * css/CSSComputedStyleDeclaration.cpp:
23929        (WebCore::getPositionOffsetValue): Use isFixed function instead of type function.
23930
23931        * css/CSSGradientValue.cpp:
23932        (WebCore::CSSGradientValue::addStops): Updated code since toCalcValue now returns PassRef
23933        instead of PassRefPtr. Unfortunately the new code is a bit more verbose.
23934        (WebCore::positionFromValue): Ditto.
23935
23936        * css/CSSParser.cpp:
23937        (WebCore::CSSParser::parseCalculation):
23938
23939        * css/CSSPrimitiveValue.cpp:
23940        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Updated to pass reference rather than pointer.
23941        (WebCore::CSSPrimitiveValue::init): Ditto.
23942
23943        * css/CSSToStyleMap.h: Removed unneeded include of LengthBox.h.
23944
23945        * css/DeprecatedStyleBuilder.cpp:
23946        (WebCore::ApplyPropertyLength::applyValue): Updated for function name change.
23947        (WebCore::ApplyPropertyBorderRadius::applyValue): Removed extra parentheses.
23948        (WebCore::ApplyPropertyFontSize::applyValue): Ditto. Also updated since toCalcValue returns Ref.
23949
23950        * css/LengthFunctions.cpp:
23951        (WebCore::floatValueForLength): Updated to call value instead of getFloatValue; both are the same.
23952
23953        * css/StyleResolver.cpp:
23954        (WebCore::addIntrinsicMargins): Updated for function name change.
23955        (WebCore::createGridTrackBreadth): Ditto.
23956
23957        * platform/CalculationValue.cpp:
23958        (WebCore::CalculationValue::create): Changed to return PassRef.
23959        (WebCore::CalcExpressionNumber::evaluate): Moved this function out of the header, since it's
23960        virtual and not really going to be inlined.
23961        (WebCore::CalcExpressionNumber::operator==): Ditto.
23962        (WebCore::CalculationValue::evaluate): Ditto.
23963        (WebCore::CalcExpressionBinaryOperation::operator==): Ditto.
23964        (WebCore::CalcExpressionLength::evaluate): Ditto.
23965        (WebCore::CalcExpressionLength::operator==): Ditto.
23966        (WebCore::CalcExpressionBlendLength::evaluate): Ditto.
23967        (WebCore::CalcExpressionBlendLength::operator==): Ditto.
23968
23969        * platform/CalculationValue.h: Moved most functions out of the class bodies so the classes are
23970        easier to see. Made all the == operator functions non-member ones except for the polymorphic
23971        one from the base class. Changed the casting functions to work on references instead of pointers.
23972        Tweaked name of some members.
23973
23974        * platform/Length.cpp: Reworked the CalculationValueMap (formerly CalculationValueHandleMap) to
23975        use unsigned instead of int, and store reference counts in the map rather than trying to share the
23976        reference count of the underlying CalculationValue object, which can lead to storage leaks where
23977        handles end up in the map permanently.
23978        (WebCore::calculationValues): Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL.
23979        (WebCore::Length::Length): Updated some data member names.
23980        (WebCore::Length::calculationValue): Updated to return a reference instead of a PassRefPtr.
23981        (WebCore::Length::ref): Renamed and updated for new interface to the map.
23982        (WebCore::Length::deref): Ditto.
23983        (WebCore::Length::nonNanCalculatedValue): Updated to use a reference instead of a pointer.
23984        (WebCore::Length::isCalculatedEqual): Updated since this is now only called if both objects are
23985        known to be calculated values.
23986
23987        * platform/Length.h: Moved most functions out of the class definition to make the class definition
23988        easier to read. Reworked the constructors and assignment operators to handle the reference counting
23989        correctly. Added various FIXMEs and assertions. Removed some unused functions, made others private.
23990
23991        * platform/LengthBox.h: Renamed some one-letter arguments to use words instead.
23992
23993        * rendering/AutoTableLayout.cpp:
23994        (WebCore::AutoTableLayout::recalcColumn): Updated for change to Length::setValue.
23995        * rendering/FixedTableLayout.cpp:
23996        (WebCore::FixedTableLayout::calcWidthArray): Ditto.
23997
23998        * rendering/style/FillLayer.h:
23999        (WebCore::FillLayer::initialFillXPosition): Updated to not convert a double to a float at runtime.
24000        (WebCore::FillLayer::initialFillYPosition): Ditto.
24001
24002        * rendering/style/RenderStyle.cpp:
24003        (WebCore::RenderStyle::setWordSpacing): Removed a bogus FALLTHROUGH that was clearly wrong, but
24004        harmless. Updated for changes to Length.
24005
24006        * rendering/style/RenderStyle.h: Updated for name changes and to avoid converting doubles to floats
24007        at runtime.
24008
240092014-04-06  Brent Fulgham  <bfulgham@apple.com>
24010
24011        Honor System-Level User Preferences for Caption Display
24012        https://bugs.webkit.org/show_bug.cgi?id=131258
24013
24014        Reviewed by Eric Carlson.
24015
24016        * html/HTMLMediaElement.cpp:
24017        (WebCore::HTMLMediaElement::setSelectedTextTrack): Allow preferenced change to fully dispatch
24018        so we can properly deal with captions being turned off.
24019        (WebCore::HTMLMediaElement::captionPreferencesChanged): Use 'webkit' variant of the
24020        setWebKitClosedCaptionsVisible method so we properly adjust settings needed for the JS API call.
24021        * html/shadow/MediaControlElements.cpp:
24022        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): When captions are turned off, e.g.
24023        because the user turned off the preference, don't inadvertently turn them back on just bacause there
24024        was an existing track that was not in a 'hidden' state.
24025
240262014-04-06  Brian J. Burg  <burg@cs.washington.edu>
24027
24028        Web Replay: add methods to encode a frame's index based on its FrameTree position
24029        https://bugs.webkit.org/show_bug.cgi?id=131281
24030
24031        Reviewed by Timothy Hatcher.
24032
24033        Given a frame, its encoded index is computed by traversing the frame tree
24034        and saving how many nodes have been traversed to reach a given frame.
24035
24036        This is used to disambiguate frames when dispatching frame-specific event
24037        loop inputs during replay, such as timers and resource loaders.
24038
24039        * replay/SerializationMethods.cpp:
24040        (WebCore::frameIndexFromDocument): Added.
24041        (WebCore::frameIndexFromFrame): Added.
24042        (WebCore::documentFromFrameIndex): Added.
24043        (WebCore::frameFromFrameIndex): Added.
24044        * replay/SerializationMethods.h:
24045
240462014-04-06  Alexey Proskuryakov  <ap@apple.com>
24047
24048        iOS build fix.
24049
24050        * WebCore.exp.in: Move newly exported function to a right section of this file.
24051
240522014-04-06  Darin Adler  <darin@apple.com>
24053
24054        Refactor post-attach and HTMLObjectElement-related code
24055        https://bugs.webkit.org/show_bug.cgi?id=131282
24056
24057        Reviewed by Antti Koivisto.
24058
24059        * dom/ContainerNode.cpp: Moved the post-attach callback code from here to
24060        StyleResolveTree.h/cpp.
24061        * dom/ContainerNode.h: Ditto.
24062
24063        * dom/Document.cpp:
24064        (WebCore::Document::recalcStyle): Use Style::PostResolutionCallbackDisabler instead of
24065        PostAttachCallbackDisabler.
24066
24067        * dom/Element.h: Moved the post-attach callback code from here to StyleResolveTree.h/cpp.
24068
24069        * html/HTMLEmbedElement.cpp:
24070        (WebCore::HTMLEmbedElement::parseAttribute): Simplified the code for typeAttr, turning
24071        it into a 1-liner. Added a FIXME in codeAttr about the fact that it does not have the
24072        code to trigger image loads.
24073
24074        * html/HTMLFormControlElement.cpp:
24075        (WebCore::HTMLFormControlElement::didAttachRenderers): Updated to use
24076        Style::queuePostResolutionCallback and use a lambda instead of a function.
24077        (WebCore::HTMLFormControlElement::didRecalcStyle): Ditto. Also added RefPtr instead
24078        of just using wishful thinking to keep the object alive.
24079        * html/HTMLFrameOwnerElement.cpp:
24080        (WebCore::HTMLFrameOwnerElement::scheduleSetNeedsStyleRecalc): Ditto.
24081
24082        * html/HTMLObjectElement.cpp:
24083        (WebCore::HTMLObjectElement::parseAttribute):: Simplified the code for typeAttr, turning
24084        it into a 1-liner. Made dataAttr call setNeedsWidgetUpdate(true) unconditionally after
24085        checking carefully to see that's harmless if there is no renderer. Changed classidAttr
24086        to call setNeedsWidgetUpdate(true) unconditionally and not set m_classId.
24087        (WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk): Use fastGetAttribute
24088        instead of classId and descendantsOfType instead of getElementsByTagName.
24089        (WebCore::HTMLObjectElement::hasValidClassId): Use fastGetAttribute instead of classId.
24090        (WebCore::HTMLObjectElement::renderFallbackContent): Use imageLoader instead of m_imageLoader.
24091
24092        * html/HTMLObjectElement.h: Removed classId, since there is no reason to cache that
24093        attribute in a data member. Rearranged header, making more private, and fixing some typos,
24094        and doing a "using" instead of a function to disambiguate the inherited form functions.
24095
24096        * html/HTMLPlugInImageElement.cpp:
24097        (WebCore::HTMLPlugInImageElement::createElementRenderer): Fixed some code that assumed the
24098        first child of the shadow root is guaranteed to be an element.
24099        (WebCore::HTMLPlugInImageElement::didMoveToNewDocument): Removed null check on oldDocument,
24100        since m_needsDocumentActivationCallbacks can't be true if the old document was null.
24101        (WebCore::is100Percent): Added helper to make function below more readable.
24102        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Restructured the code a
24103        bit. The part that attracted my attention was the local variable of type RenderBox, which
24104        was named renderEmbeddedObject. Turns out the caller guarantees to only call this if there
24105        is a renderer of type RenderEmbeddedObject, so depend on that.
24106
24107        * html/HTMLPlugInImageElement.h: Trimmed includes a bit. Made more members private.
24108        Marked more function members final. Made a protected imageLoader function so that
24109        m_imageLoader can be private eventually. Made m_imageLoader be std::unique_ptr.
24110
24111        * style/StyleResolveTree.cpp:
24112        (WebCore::Style::needsPseudoElement): Fixed spelling error in the name of this function.
24113        (WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded): Updated for name change.
24114        (WebCore::Style::attachRenderTree): Update for new name of PostResolutionCallbackDisabler.
24115        (WebCore::Style::updateBeforeOrAfterPseudoElement): Updated for name change.
24116        (WebCore::Style::postResolutionCallbackQueue): Added.
24117        (WebCore::Style::queuePostResolutionCallback): Added.
24118        (WebCore::Style::suspendMemoryCacheClientCalls): Added. This is a side effect of the original
24119        PostAttachCallbackDisabler that is now done in a cleaner way, using the callback queue, instead
24120        of as a special case. It should not work for multiple documents across multiple pages instead of
24121        only the outermost one.
24122        (WebCore::Style::PostResolutionCallbackDisabler::PostResolutionCallbackDisabler): Added.
24123        Calls suspendMemoryCacheClientCalls, but a FIXME tries to point out why that isn't so great.
24124        (WebCore::Style::PostResolutionCallbackDisabler::~PostResolutionCallbackDisabler): Added.
24125        (WebCore::Style::postResolutionCallbacksAreSuspended): Added.
24126
24127        * style/StyleResolveTree.h: Added queuePostResolutionCallback and
24128        postResolutionCallbacksAreSuspended. Also added PostResolutionCallbackDisabler, which should
24129        eventually become a private implementation detail.
24130
241312014-04-04  Brian J. Burg  <burg@cs.washington.edu>
24132
24133        Enable WEB_REPLAY for PLATFORM(MAC)
24134        https://bugs.webkit.org/show_bug.cgi?id=130700
24135
24136        Reviewed by Timothy Hatcher.
24137
24138        Switch on WEB_REPLAY feature flag for non-production builds.
24139
24140        * Configurations/FeatureDefines.xcconfig:
24141        * replay/ReplayInputDispatchMethods.cpp: Fix the ENABLE(WEB_REPLAY) build.
24142        It was broken by the bool to enum refactoring in r166684.
24143        (WebCore::InitialNavigation::dispatch):
24144
241452014-04-05  Brian J. Burg  <burg@cs.washington.edu>
24146
24147        Web Inspector: remove unused test hook setInspectorResourcesDataSizeLimits
24148        https://bugs.webkit.org/show_bug.cgi?id=131268
24149
24150        Reviewed by Timothy Hatcher.
24151
24152        This was used in the old inspector frontend tests for the Network panel.
24153        It's no longer used by any tests or frontend code.
24154
24155        * WebCore.exp.in: Remove symbols.
24156        * inspector/InspectorController.cpp:
24157        (WebCore::InspectorController::setInspectorResourcesDataSizeLimits): Deleted.
24158        * inspector/InspectorController.h:
24159        * inspector/InspectorResourceAgent.cpp:
24160        (WebCore::InspectorResourceAgent::setResourcesDataSizeLimitsFromInternals): Deleted.
24161        * inspector/InspectorResourceAgent.h:
24162        * inspector/NetworkResourcesData.cpp:
24163        (WebCore::NetworkResourcesData::setResourcesDataSizeLimits): Deleted.
24164        * inspector/NetworkResourcesData.h:
24165        * testing/Internals.cpp:
24166        (WebCore::Internals::setInspectorResourcesDataSizeLimits): Deleted.
24167        * testing/Internals.h:
24168        * testing/Internals.idl:
24169
241702014-04-05  Alexey Proskuryakov  <ap@apple.com>
24171
24172        REGRESSION (NetworkProcess): Subresources fail to load from AppCache
24173        https://bugs.webkit.org/show_bug.cgi?id=131262
24174        <rdar://problem/15370653>
24175
24176        Reviewed by Sam Weinig.
24177
24178        Exported ApplicationCacheHost::maybeLoadResource. Changed it to take a const
24179        reference to ResourceRequest, as appropriate for WebResourceLoadScheduler.
24180
24181        * WebCore.exp.in:
24182        * WebCore.xcodeproj/project.pbxproj:
24183        * loader/appcache/ApplicationCacheHost.cpp:
24184        (WebCore::ApplicationCacheHost::maybeLoadResource):
24185        * loader/appcache/ApplicationCacheHost.h:
24186
241872014-04-05  Brian J. Burg  <burg@cs.washington.edu>
24188
24189        Web Inspector: remove unused metrics and commands from the Timeline agent
24190        https://bugs.webkit.org/show_bug.cgi?id=131184
24191
24192        Reviewed by Timothy Hatcher.
24193
24194        This patch removes several instrumentation hooks that are not being
24195        used by the frontend in any way. Most of them are not hooked up to
24196        produce any data, so they just clutter up InspectorClient and the agent.
24197
24198        * WebCore.exp.in: Remove didBeginFrame/didCancelFrame.
24199        * inspector/InspectorClient.h: Remove client methods that are never overridden.
24200        (WebCore::InspectorClient::canMonitorMainThread): Deleted.
24201        (WebCore::InspectorClient::supportsFrameInstrumentation): Deleted.
24202        (WebCore::InspectorClient::getAllocatedObjects): Deleted.
24203        (WebCore::InspectorClient::dumpUncountedAllocatedObjects): Deleted.
24204
24205        * inspector/InspectorController.cpp: Remove unused instrumentation.
24206        (WebCore::InspectorController::didBeginFrame): Deleted.
24207        (WebCore::InspectorController::didCancelFrame): Deleted.
24208        (WebCore::InspectorController::didComposite): Deleted.
24209        (WebCore::InspectorController::wilComposite): Deleted.
24210        * inspector/InspectorController.h:
24211
24212        * inspector/InspectorTimelineAgent.cpp: Remove the backend's BeginFrame enum
24213        value, but keep it in the protocol for when it is reimplemented. Remove
24214        management of the current frame record, and simplify some code.
24215        (WebCore::toProtocol):
24216        (WebCore::InspectorTimelineAgent::addRecordToTimeline):
24217        (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
24218        (WebCore::InspectorTimelineAgent::pushCurrentRecord):
24219        (WebCore::InspectorTimelineAgent::clearRecordStack):
24220        (WebCore::InspectorTimelineAgent::canMonitorMainThread): Deleted.
24221        (WebCore::InspectorTimelineAgent::supportsFrameInstrumentation): Deleted.
24222        (WebCore::InspectorTimelineAgent::didBeginFrame): Deleted.
24223        (WebCore::InspectorTimelineAgent::didCancelFrame): Deleted.
24224        (WebCore::InspectorTimelineAgent::didComposite): Deleted.
24225        (WebCore::InspectorTimelineAgent::wilComposite): Deleted.
24226        (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline): Deleted. Undo telescoping.
24227        (WebCore::usedHeapSize): Deleted.
24228        (WebCore::InspectorTimelineAgent::commitFrameRecord): Deleted.
24229        * inspector/InspectorTimelineAgent.h:
24230        (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
24231        * inspector/protocol/Timeline.json:
24232
24233        * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp: Remove
24234        instrumentation hook for beginFrame. This is the only backend that implements it.
24235        (WebCore::CompositingCoordinator::syncDisplayState):
24236
24237        * testing/Internals.cpp: Remove crufty test methods that aren't used.
24238        (WebCore::Internals::emitInspectorDidBeginFrame): Deleted.
24239        (WebCore::Internals::emitInspectorDidCancelFrame): Deleted.
24240        * testing/Internals.h:
24241        * testing/Internals.idl:
24242
242432014-04-05  Alexey Proskuryakov  <ap@apple.com>
24244
24245        REGRESSION (r163914): Application cache cannot be used in main frame
24246        https://bugs.webkit.org/show_bug.cgi?id=131263
24247        <rdar://problem/16532063>
24248
24249        Reviewed by Sam Weinig.
24250
24251        * loader/appcache/ApplicationCacheHost.cpp: (WebCore::ApplicationCacheHost::isApplicationCacheBlockedForRequest):
24252        Don't check main frame origin when loading into main frame, it's not a 3rd party
24253        subframe, and the URL is unrelated to the page we are loading now.
24254
24255        * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::cacheForMainRequest):
24256        Removed the same incorrect check that was duplicated here. The only caller already
24257        checks isApplicationCacheBlockedForRequest().
24258
242592014-04-05  Dan Bernstein  <mitz@apple.com>
24260
24261        [Xcode] Clean up the platform/graphics group
24262        https://bugs.webkit.org/show_bug.cgi?id=131271
24263
24264        Reviewed by Eric Carlson.
24265
24266        * WebCore.xcodeproj/project.pbxproj: Created an opentype group and moved opentype file
24267        references into it. Removed duplicate file references.
24268
242692014-04-05  Andreas Kling  <akling@apple.com>
24270
24271        Remove unused type casting helpers for HTMLUnknownElement...
24272
24273        ...to fix the debug build.
24274
24275        * html/HTMLUnknownElement.h:
24276
242772014-04-05  Dirk Schulze  <krit@webkit.org>
24278
24279        Canvas strokeText and fillText with SourceIn, DestinationIn, SourceOut, DestinationAtop and Copy have errors
24280        https://bugs.webkit.org/show_bug.cgi?id=66766
24281
24282        Reviewed by Andreas Kling.
24283
24284        Use transparency layers to draw text with certain compositing modes on
24285        the canvas. This follows the Canvas specification and makes WebKit fully
24286        compatible with IE. It also makes it more compatible with Firefox, even though
24287        Firefox still has some bugs.
24288
24289        Test: fast/canvas/canvas-composite-text-alpha.html
24290
24291        * html/canvas/CanvasRenderingContext2D.cpp:
24292        (WebCore::CanvasRenderingContext2D::drawTextInternal):
24293
242942014-04-05  Andreas Kling  <akling@apple.com>
24295
24296        Devirtualize isHTMLUnknownElement().
24297        <https://webkit.org/b/131269>
24298
24299        We were hitting isHTMLUnknownElement() pretty hard when marking
24300        out-of-document Nodes. (The check is part of isHTMLAudioElement()
24301        which is called by JSNodeOwner::isReachableFromOpaqueRoots().)
24302
24303        This patch uses a Node flag for the unknown element instead.
24304        I'm also adding HTMLUnknownElement.{h,idl} to the Xcode project
24305        since they were suspiciously missing.
24306
24307        Reviewed by Benjamin Poulain.
24308
24309        * WebCore.xcodeproj/project.pbxproj:
24310        * dom/Node.h:
24311        * html/HTMLElement.h:
24312        (WebCore::HTMLElement::isHTMLUnknownElement):
24313        * html/HTMLUnknownElement.h:
24314        (WebCore::toHTMLUnknownElement): Deleted.
24315
243162014-04-05  Dirk Schulze  <krit@webkit.org>
24317
24318        Canvas stroke and strokeRect with SourceIn, DestinationIn, SourceOut, DestinationAtop and Copy have errors
24319        https://bugs.webkit.org/show_bug.cgi?id=66762
24320
24321        Reviewed by Andreas Kling.
24322
24323        For fill operations we create a new ImageBuffer to ensure that the results are composited
24324        correctly according to the Canvas spec. This patch creates a new transparency layer
24325        for stroking on certain compositing operators to archive the same. This makes WebKit's
24326        behavior interoperable with Firefox and IE as well. 
24327
24328        Test: fast/fast/canvas/canvas-composite-stroke-alpha.html
24329
24330        * html/canvas/CanvasRenderingContext2D.cpp:
24331        (WebCore::CanvasRenderingContext2D::strokeInternal):
24332        (WebCore::CanvasRenderingContext2D::strokeRect):
24333
243342014-04-05  Yusuke Suzuki  <utatane.tea@gmail.com>
24335
24336        Use preallocated stack reference to store adjacentBacktrackingStart
24337        https://bugs.webkit.org/show_bug.cgi?id=131237
24338
24339        Reviewed by Benjamin Poulain.
24340
24341        * cssjit/SelectorCompiler.cpp:
24342        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
24343        (WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
24344        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
24345        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
24346        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAdjacentBacktrackingTail):
24347        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateBacktrackingTailsIfNeeded):
24348        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToPreviousAdjacent): Deleted.
24349        (WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures): Deleted.
24350        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDescendantBacktrackingTail): Deleted.
24351        * cssjit/StackAllocator.h:
24352        (WebCore::StackAllocator::allocateUninitialized):
24353
243542014-04-05  Jeongeun Kim  <je_julie.kim@samsung.com>
24355
24356        bad values from HTMLImageElement x and y attributes (CSSOM-View)
24357        https://bugs.webkit.org/show_bug.cgi?id=130308
24358        
24359        Reviewed by Simon Fraser.
24360
24361        According to CSSOM-View, interface HTMLImageElement,
24362        The x attribute must return the x-coordinate.
24363        If style is not updated when x() is called, it can’t return anything.
24364        Style and layout should be done before getting value for x() and y(). 
24365
24366        Test: cssom/cssom-view-img-attributes-001.html
24367
24368        * html/HTMLImageElement.cpp:
24369        (WebCore::HTMLImageElement::x):
24370        (WebCore::HTMLImageElement::y):
24371
243722014-04-05  Zoltan Horvath  <zoltan@webkit.org>
24373
24374        [CSS Shapes] Remove CSSBoxType member from BasicShape and CSSBasicShape
24375        https://bugs.webkit.org/show_bug.cgi?id=129706
24376
24377        Reviewed by Andreas Kling.
24378
24379        The CSSBoxType has been moved up to ShapeValue and is no longer needed in the BasicShape classes.
24380
24381        No new tests, no behavior change.
24382
24383        * css/BasicShapeFunctions.cpp:
24384        (WebCore::valueForBasicShape):
24385        (WebCore::basicShapeForValue):
24386        * rendering/style/BasicShapes.cpp:
24387        (WebCore::BasicShape::canBlend):
24388        * rendering/style/BasicShapes.h:
24389        (WebCore::BasicShape::referenceBox): Deleted.
24390        (WebCore::BasicShape::setReferenceBox): Deleted.
24391        (WebCore::BasicShape::BasicShape): Deleted.
24392
243932014-04-05  Mark Rowe  <mrowe@apple.com>
24394
24395        Fix the 32-bit build after r166818.
24396
24397        * WebCore.exp.in:
24398
243992014-04-03  Brian J. Burg  <burg@cs.washington.edu>
24400
24401        Web Inspector: hook up probe samples to TimelineAgent's records
24402        https://bugs.webkit.org/show_bug.cgi?id=131127
24403
24404        Reviewed by Timothy Hatcher.
24405
24406        Hook up probe callbacks from ScriptDebugListener so that timeline records are
24407        created for probe samples. The record includes the probe identifier and hit count.
24408        The actual probe evaluation result is sent separately by DebuggerAgent, and
24409        can be looked up in frontend models using the identifier and hit count.
24410
24411        * inspector/InspectorTimelineAgent.cpp: Only listen to the debug server when recording.
24412        (WebCore::InspectorTimelineAgent::start):
24413        (WebCore::InspectorTimelineAgent::stop):
24414        (WebCore::InspectorTimelineAgent::breakpointActionProbe):
24415        (WebCore::toProtocol):
24416        * inspector/InspectorTimelineAgent.h:
24417        * inspector/TimelineRecordFactory.cpp:
24418        (WebCore::TimelineRecordFactory::createProbeSampleData):
24419        * inspector/TimelineRecordFactory.h:
24420        * inspector/protocol/Timeline.json: Add new enum value.
24421
244222014-04-04  Andreas Kling  <akling@apple.com>
24423
24424        Streamline cached wrapper lookup for Nodes in the normal world.
24425        <https://webkit.org/b/131249>
24426
24427        Inline the hot path for toJS(..., Node*) for cached wrapper lookups
24428        in the normal world. (Or really, out-of-line the cold path, since
24429        that was preventing the compiler from inlining this function.)
24430
24431        Also have JSDOMGlobalObject cache the "is normal world" flag from
24432        the DOMWrapperWorld so we can avoid the extra load.
24433
24434        Reviewed by Benjamin Poulain.
24435
24436        * WebCore.exp.in:
24437        * bindings/js/JSDOMGlobalObject.cpp:
24438        (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
24439        * bindings/js/JSDOMGlobalObject.h:
24440        (WebCore::JSDOMGlobalObject::worldIsNormal):
24441        * bindings/js/JSNodeCustom.cpp:
24442        (WebCore::getOutOfLineCachedWrapper):
24443        * bindings/js/JSNodeCustom.h:
24444        (WebCore::toJS):
24445
244462014-04-04  Brady Eidson  <beidson@apple.com>
24447
24448        Show DataDetector UI on scanned phone numbers.
24449        <rdar://problem/16379588> and https://bugs.webkit.org/show_bug.cgi?id=131247
24450
24451        Reviewed by Tim Horton.
24452
24453        Gather the ranges of the scanned telephone numbers and send them up to WK2:
24454        * editing/Editor.cpp:
24455        (WebCore::Editor::respondToChangedSelection):
24456        (WebCore::Editor::scanSelectionForTelephoneNumbers):
24457        (WebCore::Editor::scanRangeForTelephoneNumbers):
24458        * editing/Editor.h:
24459
24460        Add client method to receive scanned telephone number ranges:
24461        * page/EditorClient.h:
24462        (WebCore::EditorClient::selectedTelephoneNumberRangesChanged):
24463
24464        Remove unneeded placeholder UI:
24465        * rendering/InlineTextBox.cpp:
24466        (WebCore::InlineTextBox::paintDocumentMarkers):
24467        (WebCore::InlineTextBox::computeRectForReplacementMarker): Deleted.
24468        (WebCore::InlineTextBox::paintCompositionUnderline): Deleted.
24469        * rendering/InlineTextBox.h:
24470        (WebCore::InlineTextBox::expansionBehavior): Deleted.
24471
244722014-04-04  James Craig  <jcraig@apple.com>
24473
24474        AX: supportsARIAExpanded should always return true for a few roles: combobox, disclosure.
24475        https://bugs.webkit.org/show_bug.cgi?id=129787
24476
24477        Reviewed by Chris Fleizach.
24478
24479        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
24480
24481        * accessibility/AccessibilityObject.cpp:
24482        (WebCore::AccessibilityObject::supportsARIAExpanded):
24483
244842014-04-04  Andreas Kling  <akling@apple.com>
24485
24486        JSGenerateToNativeObject should use fast JSNode/JSElement casts.
24487        <https://webkit.org/b/131245>
24488
24489        Make JSGenerateToNativeObject spit out code using the fast new wrapper
24490        casts for JSNode and JSElement.
24491
24492        This avoids walking the ClassInfo chain in many core functions, e.g:
24493
24494            - Node.insertBefore()
24495            - Node.replaceChild()
24496            - Node.removeChild()
24497            - Node.appendChild()
24498            - window.getComputedStyle()
24499
24500        Reviewed by Geoff Garen.
24501
24502        * bindings/scripts/CodeGeneratorJS.pm:
24503        (GenerateImplementation):
24504
245052014-04-04  Zoltan Horvath  <zoltan@webkit.org>
24506
24507        [CSS Shapes] polygon y-value calc() args serialize incorrectly
24508        https://bugs.webkit.org/show_bug.cgi?id=129842
24509
24510        Reviewed by Bem Jones-Bey.
24511
24512        The code hit ASSERT(isCalculation(value)) in CSSParser::createPrimitiveNumbericValue, because
24513        CSSParser::validUnit had been called on both coordinates, which set the value for m_parsedCalculation,
24514        but only one of the coordinates was calculation value. I reordered calling valudUnit and
24515        createPrimitiveNumbericValue to be called in the correct order on the coordinates.
24516
24517        I added the new test case to parsing-test-utils.js.
24518
24519        * css/CSSParser.cpp:
24520        (WebCore::CSSParser::parseBasicShapePolygon):
24521
245222014-04-04  Brian J. Burg  <burg@cs.washington.edu>
24523
24524        Web Replay: capture and replay wheel events and scroll commands
24525        https://bugs.webkit.org/show_bug.cgi?id=129402
24526
24527        Reviewed by Timothy Hatcher and Simon Fraser.
24528
24529        To capture and replay scrolling, the scrolling coordinator will force synchronous 
24530        scrolling during capture and replay. If the page is capturing or replaying,
24531        ForceOnMainThread will be added to the coordinator's SynchronousScrollingReasons.
24532
24533        A callback was added to signal that replay session state have changed,
24534        and thus the synchronous scrolling reasons should be recomputed.
24535
24536        Automated replay reftests for scrolling are not included, because they will be
24537        too flaky until more nondeterminism is handled. Specifically, resource loading,
24538        initial focus/active state, and parsing are known blocking issues.
24539
24540        Test: ManualTests/inspector/replay-wheel-events.html
24541
24542        * page/scrolling/ScrollingCoordinator.cpp: Add a new callback for replay state
24543        session changes. Add ForceOnMainThread if the page's active input cursor is
24544        capturing or replaying.
24545
24546        (WebCore::ScrollingCoordinator::synchronousScrollingReasons):
24547        (WebCore::ScrollingCoordinator::replaySessionStateDidChange): Added.
24548        * page/scrolling/ScrollingCoordinator.h:
24549
24550        * platform/PlatformWheelEvent.h:
24551        * platform/ScrollTypes.h: Add explicit enum storage types so these enums can
24552        be forward-declared. This is necessary to generate enum encode/decode implementations.
24553
24554        * replay/ReplayController.cpp:
24555        (WebCore::ReplayController::setForceDeterministicSettings): If async scrolling
24556        support is available, tell the scrolling tree to behave deterministically.
24557
24558        * replay/ReplayInputDispatchMethods.cpp:
24559        (WebCore::HandleWheelEvent::dispatch): Added.
24560        (WebCore::LogicalScrollPage::dispatch): Added.
24561        (WebCore::ScrollPage::dispatch): Added.
24562        * replay/SerializationMethods.cpp: Introduce more specific macros for values
24563        deserialized to arbitraray lvalues, scalars, RefPtr, and unique_ptr. Fix existing
24564        uses of decode macros.
24565
24566        (JSC::EncodingTraits<NondeterministicInputBase>::encodeValue): Fix macro name.
24567        (JSC::EncodingTraits<KeypressCommand>::encodeValue): Fix macro name.
24568        (JSC::EncodingTraits<PlatformKeyboardEvent>::encodeValue): Fix macro name.
24569        (JSC::EncodingTraits<PlatformMouseEvent>::encodeValue): Fix macro name.
24570        (JSC::PlatformWheelEventCocoa::PlatformWheelEventCocoa): Added. Encapsulate
24571        and initialize data members specific to PLATFORM(COCOA).
24572
24573        (JSC::EncodingTraits<PlatformWheelEvent>::encodeValue): Added.
24574        (JSC::EncodingTraits<PlatformWheelEvent>::decodeValue): Added.
24575        * replay/SerializationMethods.h:
24576        * replay/UserInputBridge.cpp: Fill in bridge methods to capture inputs.
24577        (WebCore::UserInputBridge::handleWheelEvent):
24578        (WebCore::UserInputBridge::scrollRecursively):
24579        (WebCore::UserInputBridge::logicalScrollRecursively):
24580        * replay/WebInputs.json: Add inputs and new enum types.
24581
245822014-04-04  Yusuke Suzuki  <utatane.tea@gmail.com>
24583
24584        Upgrade to SelectorFailsAllSiblings when Child selector is failed.
24585        https://bugs.webkit.org/show_bug.cgi?id=130961
24586
24587        Reviewed by Benjamin Poulain.
24588
24589        When Child selector fails, we should resume matching from the closest
24590        Descendant selector.
24591        So upgrading SelectorFailsLocally to SelectorFailsAllSibling at least
24592        to prevent unnecessary direct/indirect adjacent selectors matching.
24593
24594        * css/SelectorChecker.cpp:
24595        (WebCore::SelectorChecker::matchRecursively):
24596
245972014-04-04  Roger Fong  <roger_fong@apple.com>
24598
24599        Keep track of filtered active attribute/uniform indices per shader program.
24600        https://bugs.webkit.org/show_bug.cgi?id=131235.
24601
24602        Reviewed by Dean Jackson.
24603
24604        Tests: Covered by existing Khronos Conformance tests. 
24605        Will create a test to use multiple shader programs in a follow-up patch.
24606
24607        * html/canvas/WebGLProgram.cpp:
24608        (WebCore::WebGLProgram::cacheActiveAttribLocations): Use getActiveAttribImpl. We do not need to use the filtered list of attributes here.
24609        * html/canvas/WebGLRenderingContext.cpp:
24610        (WebCore::WebGLRenderingContext::getUniformLocation): Use filtered list of uniforms for uniform count.
24611        * platform/graphics/GraphicsContext3D.h: Create a map of shader programs to ActiveShaderSymbolCounts.
24612        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
24613        (WebCore::GraphicsContext3D::attachShader): 
24614        When attaching or detaching a shader the shader program's active symbols list will change. Clear it so that it will be updated later.
24615        (WebCore::GraphicsContext3D::detachShader): Ditto.
24616        (WebCore::GraphicsContext3D::compileShader): No need to clear symbol counts here.
24617        (WebCore::GraphicsContext3D::getActiveAttrib): getActiveAttrib should only be able to query for attributes in the filtered list.
24618        (WebCore::GraphicsContext3D::getActiveUniform): getActiveUniform should only be able to query for uniforms in the filtered list.
24619        (WebCore::GraphicsContext3D::getNonBuiltInActiveSymbolCount): Return the filtered symbol count for a shader program.
24620
246212014-04-04  Ion Rosca  <rosca@adobe.com>
24622
24623        [CSS Blending] Add compositing reason for isolation.
24624        https://bugs.webkit.org/show_bug.cgi?id=131153
24625
24626        Reviewed by Joseph Pecoraro.
24627
24628        There are 2 reasons involving blend modes for a layer to be composited:
24629        1) the layer has blend mode and has composited descendants: CompositingReasonBlendingWithCompositedDescendants.
24630        2) the layer has to isolate composited blending descendants: CompositingReasonIsolatesCompositedBlendingDescendants
24631
24632        Test: inspector-protocol/layers/layers-blending-compositing-reasons.html
24633
24634        * inspector/InspectorLayerTreeAgent.cpp:
24635        (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer):
24636        * inspector/protocol/LayerTree.json:
24637        * rendering/RenderLayerCompositor.cpp:
24638        (WebCore::RenderLayerCompositor::reasonsForCompositing):
24639        (WebCore::RenderLayerCompositor::logReasonsForCompositing):
24640        * rendering/RenderLayerCompositor.h: adding CompositingReasonIsolatesCompositedBlendingDescendants.
24641
246422014-04-04  Bem Jones-Bey  <bjonesbe@adobe.com>
24643
24644        Use more const refs in ShapeOutsideInfo and some misc cleanup
24645        https://bugs.webkit.org/show_bug.cgi?id=131192
24646
24647        Reviewed by Dirk Schulze.
24648
24649        Use const refs for pretty much everything that can't be null. Also
24650        cleanup some code that got a bit messy when ShapeInfo was merged into
24651        ShapeOutsideInfo.
24652
24653        No new tests, no behavior change.
24654
24655        * rendering/shapes/ShapeOutsideInfo.cpp:
24656        (WebCore::ShapeOutsideInfo::shapeToRendererPoint):
24657        (WebCore::ShapeOutsideInfo::shapeToRendererSize):
24658        (WebCore::referenceBox):
24659        (WebCore::ShapeOutsideInfo::setReferenceBoxLogicalSize):
24660        (WebCore::getShapeImageAndRect):
24661        (WebCore::ShapeOutsideInfo::computedShape):
24662        (WebCore::ShapeOutsideInfo::logicalTopOffset):
24663        (WebCore::ShapeOutsideInfo::logicalLeftOffset):
24664        * rendering/shapes/ShapeOutsideInfo.h:
24665
246662014-04-04  Alexey Proskuryakov  <ap@apple.com>
24667
24668        REGRESSION (r166615): Pressing return doesn’t submit search term at bing.com
24669        https://bugs.webkit.org/show_bug.cgi?id=131212
24670        <rdar://problem/16521788>
24671
24672        Reviewed by Dan Bernstein.
24673
24674        Test: fast/forms/submit-while-you-submit.html
24675
24676        Turns out that m_shouldSubmit can actually be modified in a code path where we can't
24677        directly return the result. I'm not sure if the current behavior is entirely correct
24678        (we have open bugs about submitting forms multiple times), but let's restore it to
24679        pre-r166615 state.
24680
24681        * html/HTMLFormElement.cpp:
24682        (WebCore::HTMLFormElement::HTMLFormElement):
24683        (WebCore::HTMLFormElement::prepareForSubmission):
24684        (WebCore::HTMLFormElement::submit):
24685        * html/HTMLFormElement.h:
24686
246872014-04-04  Martin Hock  <mhock@apple.com>
24688
24689        [Mac] Change operation queue width to NSOperationQueueDefaultMaxConcurrentOperationCount.
24690        https://bugs.webkit.org/show_bug.cgi?id=131231
24691
24692        <rdar://problem/13913483>
24693
24694        Reviewed by Brady Eidson.
24695
24696        No new tests, no behavior change.
24697
24698        * platform/network/mac/ResourceHandleMac.mm:
24699        (WebCore::operationQueueForAsyncClients):
24700
247012014-04-04  Hans Muller  <hmuller@adobe.com>
24702
24703        [CSS Shapes] Simplify Polygon implementation
24704        https://bugs.webkit.org/show_bug.cgi?id=130975
24705
24706        Reviewed by Andreas Kling.
24707
24708        Only floats can specify shape-outside. For polygon shape-outside values, the problem
24709        of finding the left and right exclusion edges reduces to finding the X axis
24710        limits of the polygon edges that overlap a particular layout line. This is a much
24711        simpler version of the problem that PolygonShape was originally designed for, and so
24712        the implementation can also be simplified. There's more about the new algorithm in
24713        http://hansmuller-webkit.blogspot.com/2014/03/a-simpler-algorithm-for-css-shapes.html.
24714
24715        No new tests, since functionality was only removed.
24716
24717        * platform/graphics/FloatRect.h:
24718        (WebCore::FloatRect::overlapsYRange):
24719        (WebCore::FloatRect::overlapsXRange):
24720        * rendering/shapes/PolygonShape.cpp:
24721        (WebCore::OffsetPolygonEdge::xIntercept):
24722        (WebCore::circleXIntercept):
24723        (WebCore::OffsetPolygonEdge::clippedEdgeXRange): X axis extent of the edge clipped to a vertical interval.
24724        (WebCore::clippedCircleXRange): X axis extent of a circle clipped to a vertical interval.
24725        (WebCore::PolygonShape::shapeMarginLogicalBoundingBox):
24726        (WebCore::PolygonShape::getExcludedIntervals):
24727        (WebCore::PolygonShape::buildDisplayPaths):
24728        * rendering/shapes/PolygonShape.h:
24729        (WebCore::OffsetPolygonEdge::OffsetPolygonEdge):
24730        (WebCore::OffsetPolygonEdge::isWithinYRange):
24731        (WebCore::OffsetPolygonEdge::overlapsYRange):
24732        (WebCore::PolygonShape::PolygonShape):
24733        * rendering/shapes/ShapeInterval.h:
24734        (WebCore::ShapeInterval::isEmpty):
24735        (WebCore::ShapeInterval::unite):
24736
247372014-04-04  Bem Jones-Bey  <bjonesbe@adobe.com>
24738
24739        [CSS Shapes] shape-margin in percentage units always computes to 0px
24740        https://bugs.webkit.org/show_bug.cgi?id=130369
24741
24742        Reviewed by Andreas Kling.
24743
24744        Make shape-margin parsing accept percentages and properly compute the
24745        length once the percentage is accepted.
24746
24747        Test: fast/shapes/shape-outside-floats/shape-outside-floats-shape-margin-percent.html
24748
24749        * css/CSSParser.cpp:
24750        (WebCore::CSSParser::parseValue):
24751        * rendering/shapes/Shape.cpp:
24752        (WebCore::Shape::createShape):
24753        (WebCore::Shape::createRasterShape):
24754        (WebCore::Shape::createBoxShape):
24755        * rendering/shapes/Shape.h:
24756        * rendering/shapes/ShapeOutsideInfo.cpp:
24757        (WebCore::ShapeOutsideInfo::computedShape):
24758
247592014-04-04  Zoltan Horvath  <zoltan@webkit.org>
24760
24761        [CSS Shapes] Remove outside-shape CSS value
24762        https://bugs.webkit.org/show_bug.cgi?id=131201
24763
24764        Reviewed by Bem Jones-Bey.
24765
24766        Outside-shape is not a valid CSS value anymore. This patch removes it.
24767
24768        No new tests, existing tests are removed.
24769
24770        * css/CSSComputedStyleDeclaration.cpp:
24771        (WebCore::shapePropertyValue):
24772        * css/CSSValueKeywords.in:
24773        * css/DeprecatedStyleBuilder.cpp:
24774        (WebCore::ApplyPropertyShape::applyValue):
24775        * rendering/shapes/ShapeOutsideInfo.cpp:
24776        (WebCore::ShapeOutsideInfo::computedShape):
24777        (WebCore::ShapeOutsideInfo::isEnabledFor):
24778        * rendering/style/ShapeValue.h:
24779        (WebCore::ShapeValue::createOutsideValue): Deleted.
24780
247812014-04-04  Dirk Schulze  <krit@webkit.org>
24782
24783        Gradient offsets are off if compositing operator != source-over
24784        https://bugs.webkit.org/show_bug.cgi?id=129791
24785
24786        Reviewed by Andreas Kling.
24787
24788        Instead of transforming the path before drawing it on the context,
24789        the whole context should be transformed. This will make the gradient
24790        map correctly to the context space.
24791
24792        Test: fast/canvas/canvas-gradient-on-compositing.html
24793
24794        * html/canvas/CanvasRenderingContext2D.cpp:
24795        (WebCore::CanvasRenderingContext2D::fullCanvasCompositedFill):
24796
247972014-04-04  Zalan Bujtas  <zalan@apple.com>
24798
24799        Subpixel rendering: Move background images to device pixel boundaries.
24800        https://bugs.webkit.org/show_bug.cgi?id=131144
24801
24802        Reviewed by Simon Fraser.
24803
24804        Replace integral snapping with device pixel snapping.
24805        Background image geometry calculation uses LayoutUnits and we snap to device pixels right before painting.
24806
24807        Tests: fast/backgrounds/hidpi-bitmap-background-on-subpixel-position.html
24808               fast/backgrounds/hidpi-bitmap-background-origin-on-subpixel-position.html
24809               fast/backgrounds/hidpi-bitmap-background-repeat-on-subpixel-position.html
24810               fast/backgrounds/hidpi-generated-gradient-background-on-subpixel-position.html
24811
24812        * platform/graphics/GraphicsLayer.h:
24813        (WebCore::GraphicsLayer::setContentsTilePhase):
24814        (WebCore::GraphicsLayer::contentsTilePhase):
24815        (WebCore::GraphicsLayer::setContentsTileSize):
24816        (WebCore::GraphicsLayer::contentsTileSize):
24817        * platform/graphics/texmap/TextureMapperLayer.cpp:
24818        (WebCore::TextureMapperLayer::setContentsTileSize):
24819        (WebCore::TextureMapperLayer::setContentsTilePhase):
24820        * platform/graphics/texmap/TextureMapperLayer.h:
24821        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
24822        (WebCore::CoordinatedGraphicsLayer::setContentsTileSize):
24823        (WebCore::CoordinatedGraphicsLayer::setContentsTilePhase):
24824        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
24825        * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
24826        * rendering/RenderBox.cpp:
24827        (WebCore::RenderBox::repaintLayerRectsForImage):
24828        * rendering/RenderBoxModelObject.cpp:
24829        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
24830        (WebCore::resolveWidthForRatio):
24831        (WebCore::resolveHeightForRatio):
24832        (WebCore::resolveAgainstIntrinsicWidthOrHeightAndRatio):
24833        (WebCore::resolveAgainstIntrinsicRatio):
24834        (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions):
24835        (WebCore::RenderBoxModelObject::calculateFillTileSize):
24836        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setNoRepeatX):
24837        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setNoRepeatY):
24838        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::useFixedAttachment):
24839        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::clip):
24840        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::relativePhase):
24841        (WebCore::getSpace):
24842        (WebCore::RenderBoxModelObject::pixelSnapBackgroundImageGeometryForPainting):
24843        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
24844        (WebCore::RenderBoxModelObject::getGeometryForBackgroundImage):
24845        (WebCore::RenderBoxModelObject::paintNinePieceImage):
24846        (WebCore::applySubPixelHeuristicForTileSize): Deleted.
24847        * rendering/RenderBoxModelObject.h:
24848        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::destOrigin):
24849        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setDestOrigin):
24850        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::destRect):
24851        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setDestRect):
24852        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::phase):
24853        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhase):
24854        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::tileSize):
24855        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setTileSize):
24856        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::spaceSize):
24857        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setSpaceSize):
24858        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhaseX):
24859        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhaseY):
24860        * rendering/RenderLayerBacking.cpp:
24861        (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
24862        * rendering/shapes/ShapeOutsideInfo.cpp:
24863        (WebCore::getShapeImageAndRect):
24864
248652014-04-04  Brent Fulgham  <bfulgham@apple.com>
24866
24867        [Win] Unreviewed test fix (crash in debug build).
24868
24869        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
24870        (WebCore::AVFWrapper::legibleOutputCallback): Correct assertion. This
24871        callback is scheduled for the caption queue, not the main queue.
24872
248732014-04-03  Brent Fulgham  <bfulgham@apple.com>
24874
24875        [Win] Load Media Controls js/css from bundle
24876        https://bugs.webkit.org/show_bug.cgi?id=131194
24877
24878        Reviewed by Dean Jackson.
24879
24880        * DerivedSources.cpp: Remove no-longer generated file.
24881        * DerivedSources.make: Don't generate unneeded files.
24882        * WebCore.vcxproj/WebCore.vcxproj: Don't compile unneeded files.
24883        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
24884        * WebCore.vcxproj/copyWebCoreResourceFiles.cmd: Copy css/js to resource
24885        * rendering/RenderThemeSafari.cpp:
24886        * rendering/RenderThemeSafari.h:
24887        * rendering/RenderThemeWin.cpp:
24888        * rendering/RenderThemeWin.h:
24889
248902014-04-04  Mihnea Ovidenie  <mihnea@adobe.com>
24891
24892        [CSSRegions] Region's behaviour not updated when becoming valid from invalid
24893        https://bugs.webkit.org/show_bug.cgi?id=131211
24894
24895        Reviewed by Andrei Bucur.
24896
24897        When a region becomes valid again from invalid, it was part of a dependency cycle and the dependency cycle was broken,
24898        it needs to behave like a valid region again: if it has autoheight then it should compute its height based on the
24899        named flow content, if it has region styling then it should apply the additional style to the flowed content.
24900
24901        Added a new method, updateRegionFlags, that is used to ensure that auto-height and region-styling flags
24902        are properly set in several situations. Checking the behaviour, autoheight or styling, is done only
24903        if the region is valid.
24904
24905        Tests: fast/regions/auto-size/autoheight-region-valid-from-invalid.html
24906               fast/regions/region-styling/region-withstyling-valid-from-invalid.html
24907
24908        * rendering/RenderNamedFlowFragment.cpp:
24909        (WebCore::RenderNamedFlowFragment::updateRegionFlags):
24910        (WebCore::RenderNamedFlowFragment::styleDidChange):
24911        (WebCore::RenderNamedFlowFragment::updateRegionHasAutoLogicalHeightFlag):
24912        (WebCore::RenderNamedFlowFragment::checkRegionStyle):
24913        (WebCore::RenderNamedFlowFragment::attachRegion):
24914        (WebCore::RenderNamedFlowFragment::detachRegion):
24915        * rendering/RenderNamedFlowFragment.h:
24916        * rendering/RenderNamedFlowThread.cpp:
24917        (WebCore::RenderNamedFlowThread::addFragmentToNamedFlowThread):
24918
249192014-04-04  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
24920
24921        [GTK][CMake] Remove FindXt.cmake.
24922        https://bugs.webkit.org/show_bug.cgi?id=131227
24923
24924        Reviewed by Anders Carlsson.
24925
24926        * PlatformGTK.cmake: Use FindX11.cmake's Xt variables instead of our own FindXt.cmake's ones.
24927
249282014-04-03  Andreas Kling  <akling@apple.com>
24929
24930        Fast-path for casting JS wrappers to JSElement.
24931        <https://webkit.org/b/131210>
24932
24933        Add an extended JSType for Element wrappers so we can avoid walking
24934        the ClassInfo chain in those bindings as well.
24935
24936        Generalized the code to select a casting helper in the bindings
24937        generator into a function (GetCastingHelperForThisObject.)
24938        Updated all the jsDynamicCast call sites to go through this, in case
24939        there's an optimized cast available for the desired type.
24940
24941        Reviewed by Benjamin Poulain.
24942
24943        * WebCore.xcodeproj/project.pbxproj:
24944        * bindings/js/JSDOMWrapper.h:
24945        * bindings/js/JSElementCustom.h: Added.
24946        (WebCore::jsElementCast):
24947        * bindings/js/JSNodeCustom.h:
24948        (WebCore::jsNodeCast):
24949        * bindings/scripts/CodeGeneratorJS.pm:
24950        (GenerateHeader):
24951        (GetCastingHelperForThisObject):
24952        (GenerateImplementation):
24953        * dom/Element.idl:
24954
249552014-04-03  Andreas Kling  <akling@apple.com>
24956
24957        Rebaseline a bindings test.
24958
24959        * bindings/scripts/test/JS/JSTestNode.h:
24960        (WebCore::JSTestNode::createStructure):
24961
249622014-04-03  Andreas Kling  <akling@apple.com>
24963
24964        Fast-path for casting JS wrappers to JSNode.
24965        <https://webkit.org/b/131196>
24966
24967        Add a way to quickly determine that a given JSObject is a JSNode.
24968        This lets us avoid walking the ClassInfo chain in the DOM bindings
24969        for WebCore::Node.
24970
24971        Reviewed by Mark Hahnenberg and Geoff Garen.
24972
24973        * bindings/js/JSDOMWrapper.h:
24974
24975            Added a JSNodeType constant that extends beyond JSC::JSType.
24976
24977        * bindings/js/JSNodeCustom.h:
24978        (WebCore::jsNodeCast):
24979
24980            Added. Fast cast from JSValue to JSNode.
24981
24982        * bindings/scripts/CodeGeneratorJS.pm:
24983        (GenerateHeader):
24984        (GenerateImplementation):
24985
24986            Generate code that uses jsNodeCast in Node interfaces.
24987
249882014-04-03  Bem Jones-Bey  <bjonesbe@adobe.com>
24989
24990        Merge ShapeInfo & ShapeOutsideInfo now that ShapeInsideInfo is no more
24991        https://bugs.webkit.org/show_bug.cgi?id=131180
24992
24993        Reviewed by Andreas Kling.
24994
24995        Now that ShapeInsideInfo is gone, having a class hiearachy and
24996        templates doesn't make any sense. As a first step to cleaning up the
24997        code, this remove ShapeInfo and puts all of its functionality into
24998        ShapeOutsideInfo.
24999
25000        No new tests, no behavior change.
25001
25002        * CMakeLists.txt:
25003        * WebCore.vcxproj/WebCore.vcxproj:
25004        * WebCore.vcxproj/WebCore.vcxproj.filters:
25005        * WebCore.xcodeproj/project.pbxproj:
25006        * rendering/shapes/ShapeInfo.cpp: Removed.
25007        * rendering/shapes/ShapeInfo.h: Removed.
25008        * rendering/shapes/ShapeOutsideInfo.cpp:
25009        (WebCore::ShapeOutsideInfo::computedShapePhysicalBoundingBox):
25010        (WebCore::ShapeOutsideInfo::shapeToRendererPoint):
25011        (WebCore::ShapeOutsideInfo::shapeToRendererSize):
25012        (WebCore::referenceBox):
25013        (WebCore::ShapeOutsideInfo::setReferenceBoxLogicalSize):
25014        (WebCore::checkShapeImageOrigin):
25015        (WebCore::getShapeImageAndRect):
25016        (WebCore::getShapeImageMarginRect):
25017        (WebCore::ShapeOutsideInfo::computedShape):
25018        (WebCore::borderBeforeInWritingMode):
25019        (WebCore::borderAndPaddingBeforeInWritingMode):
25020        (WebCore::ShapeOutsideInfo::logicalTopOffset):
25021        (WebCore::borderStartWithStyleForWritingMode):
25022        (WebCore::borderAndPaddingStartWithStyleForWritingMode):
25023        (WebCore::ShapeOutsideInfo::logicalLeftOffset):
25024        (WebCore::ShapeOutsideInfo::computeSegmentsForLine):
25025        (WebCore::ShapeOutsideInfo::updateDeltasForContainingBlockLine):
25026        (WebCore::ShapeOutsideInfo::shapeValue): Deleted.
25027        (WebCore::ShapeOutsideInfo::styleForWritingMode): Deleted.
25028        * rendering/shapes/ShapeOutsideInfo.h:
25029
250302014-04-03  Andreas Kling  <akling@apple.com>
25031
25032        Fix over-retain in SharedBufferCF's createCFData().
25033        <https://webkit.org/b/131139>
25034
25035        Constructing the return type (RetainPtr<CFDataRef>) will also retain
25036        the pointee, so this would end up leaking.
25037
25038        Reviewed by Anders Carlsson.
25039
25040        * platform/cf/SharedBufferCF.cpp:
25041        (WebCore::SharedBuffer::createCFData):
25042
250432014-04-03  Brent Fulgham  <bfulgham@apple.com>
25044
25045        [Win] Turn on ENABLE_CSS_GRID_LAYOUT
25046        https://bugs.webkit.org/show_bug.cgi?id=131147
25047
25048        Reviewed by Simon Fraser.
25049
25050        Covered by existing fast/css/getComputedStyle tests.
25051
25052        * css/CSSAllInOne.cpp: Add CSSGridLineNamesValue.cpp when building
25053        with ENABLE(CSS_GRID_LAYOUT)
25054
250552014-04-03  Simon Fraser  <simon.fraser@apple.com>
25056
25057        Pixelated WebView when display is changed from hiDPI to regularDPI
25058        https://bugs.webkit.org/show_bug.cgi?id=131185
25059
25060        Reviewed by Tim Horton.
25061
25062        r166309 added a short circuit in GraphicsLayerCA::updateContentsScale()
25063        when the scale didn't change. This broke layers which expected to
25064        unconditionally receive a setContentsScale(), namely the WebTiledBackingLayer
25065        which owns the TileController. WebTiledBackingLayer overrode -setContentsScale:
25066        to pass the scale down to the TileController; however, it didn't override
25067        -contentsScale, and it mucked with the scale passed in.
25068        
25069        Fix by having setting and fetching contentsScale on a WebTiledBackingLayer
25070        work as expected. Also rename the TileController functions to mirror the
25071        CALayer functions better.
25072
25073        * WebCore.exp.in:
25074        * platform/graphics/ca/GraphicsLayerCA.cpp:
25075        (WebCore::GraphicsLayerCA::updateContentsScale):
25076        * platform/graphics/ca/mac/TileController.h:
25077        * platform/graphics/ca/mac/TileController.mm:
25078        (WebCore::TileController::TileController):
25079        (WebCore::TileController::contentsScale):
25080        (WebCore::TileController::setContentsScale):
25081        (WebCore::TileController::scale): Deleted.
25082        (WebCore::TileController::setScale): Deleted.
25083        * platform/graphics/ca/mac/WebTiledBackingLayer.mm:
25084        (-[WebTiledBackingLayer setContentsScale:]):
25085        (-[WebTiledBackingLayer contentsScale]):
25086
250872014-04-03  Zoltan Horvath  <zoltan@webkit.org>
25088
25089        [CSS Shapes] LineSegment logicalLeft and logicalRight members should be floats
25090        https://bugs.webkit.org/show_bug.cgi?id=116160
25091
25092        Reviewed by Andreas Kling. 
25093
25094        LineSegment edges should not have been changed to LayoutUnit. These are
25095        used only as floats. I modified them back to floats. 
25096
25097        No new tests are needed, no behavior change.
25098
25099        * rendering/shapes/Shape.h:
25100
251012014-04-03  Dirk Schulze  <krit@webkit.org>
25102
25103        [CG] Canvas lineDashOffset does not handle negative numbers correctly
25104        https://bugs.webkit.org/show_bug.cgi?id=80560
25105
25106        Reviewed by Dean Jackson.
25107
25108        CG ignores negative dash array offsets. Check if we have a negative offset, if yes
25109        then calculate the length of the dash array and modulo the dash array offset with
25110        the dash array length.
25111
25112        Test: fast/canvas/canvas-negative-lineDashOffset.html
25113
25114        * platform/graphics/cg/GraphicsContextCG.cpp:
25115        (WebCore::GraphicsContext::setLineDash):
25116
251172014-04-03  David Hyatt  <hyatt@apple.com>
25118
25119        REGRESSION: fast/css/relative-positioned-block-nested-with-inline-parent-multiple-descendant-blocks-dynamic.html broken
25120        https://bugs.webkit.org/show_bug.cgi?id=131183
25121
25122        Reviewed by Simon Fraser.
25123
25124        Revert the loop to continue rather than breaking when an invalid block is encountered.
25125        This is what it used to do if it encountered a non-continuation block.
25126
25127        * rendering/RenderInline.cpp:
25128        (WebCore::updateStyleOfAnonymousBlockContinuations):
25129
251302014-04-02  Simon Fraser  <simon.fraser@apple.com>
25131
25132        Harden FilterOperation type casting
25133        https://bugs.webkit.org/show_bug.cgi?id=131142
25134
25135        Reviewed by Sam Weinig.
25136
25137        DefaultFilterOperation had an error-prone behavior where it set the base class
25138        OperationType to the type of some other filter class, but overrode isDefault(). 
25139        This made it very easy to write incorrect code that casted incorrectly based on type().
25140        
25141        Fix by making adding a DEFAULT filter operation type, and storing the represented
25142        type on DefaultFilterOperation().
25143        
25144        Also remove the OperationType argument for constructors of FilterOperations that
25145        can only be of one type, to avoid possible mistakes.
25146        
25147        Make the type cast macros a bit more normal, and use them in a few places.
25148        
25149        Fixed PlatformCAFiltersMac to handle the default filter case more cleanly.
25150
25151        * WebCore.exp.in:
25152        * css/CSSComputedStyleDeclaration.cpp:
25153        (WebCore::ComputedStyleExtractor::valueForFilter):
25154        * css/StyleResolver.cpp:
25155        (WebCore::StyleResolver::createFilterOperations):
25156        * platform/graphics/ca/PlatformCAFilters.h:
25157        * platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
25158        (PlatformCAFilters::filterValueForOperation):
25159        (PlatformCAFilters::colorMatrixValueForFilter):
25160        * platform/graphics/filters/FilterOperation.cpp:
25161        (WebCore::DefaultFilterOperation::operator==):
25162        (WebCore::ReferenceFilterOperation::ReferenceFilterOperation):
25163        (WebCore::ReferenceFilterOperation::operator==):
25164        (WebCore::BlurFilterOperation::operator==):
25165        (WebCore::BlurFilterOperation::blend):
25166        (WebCore::DropShadowFilterOperation::operator==):
25167        (WebCore::DropShadowFilterOperation::blend):
25168        * platform/graphics/filters/FilterOperation.h:
25169        (WebCore::FilterOperation::blend):
25170        (WebCore::FilterOperation::type):
25171        (WebCore::FilterOperation::isBasicColorMatrixFilterOperation):
25172        (WebCore::FilterOperation::isBasicComponentTransferFilterOperation):
25173        (WebCore::FilterOperation::isSameType):
25174        (WebCore::DefaultFilterOperation::create):
25175        (WebCore::DefaultFilterOperation::representedType):
25176        (WebCore::DefaultFilterOperation::DefaultFilterOperation):
25177        (WebCore::ReferenceFilterOperation::create):
25178        (WebCore::BlurFilterOperation::create):
25179        (WebCore::BlurFilterOperation::BlurFilterOperation):
25180        (WebCore::DropShadowFilterOperation::create):
25181        (WebCore::DropShadowFilterOperation::DropShadowFilterOperation):
25182        (WebCore::FilterOperation::isDefault): Deleted.
25183        * platform/graphics/filters/FilterOperations.cpp:
25184        (WebCore::FilterOperations::outsets):
25185        * rendering/FilterEffectRenderer.cpp:
25186        (WebCore::FilterEffectRenderer::build):
25187        * rendering/RenderLayerFilterInfo.cpp:
25188        (WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients):
25189
251902014-04-03  Andreas Kling  <akling@apple.com>
25191
25192        Stop throwing away the Document's StyleResolver on a timer.
25193        <https://webkit.org/b/131168>
25194        <rdar://problem/15227045>
25195
25196        This was causing some unfortunate pauses when returning to idle pages
25197        after a long-ish time. There's already a mechanism in place that will
25198        throw these away if the system comes under memory pressure.
25199
25200        Reviewed by Sam Weinig.
25201
25202        * css/StyleResolver.cpp:
25203        (WebCore::StyleResolver::styleForElement):
25204        (WebCore::StyleResolver::styleForKeyframe):
25205        (WebCore::StyleResolver::pseudoStyleForElement):
25206        (WebCore::StyleResolver::styleForPage):
25207        * dom/Document.cpp:
25208        (WebCore::Document::Document):
25209        (WebCore::Document::didAccessStyleResolver): Deleted.
25210        (WebCore::Document::styleResolverThrowawayTimerFired): Deleted.
25211        * dom/Document.h:
25212
252132014-04-02  Simon Fraser  <simon.fraser@apple.com>
25214
25215        Assertion under RenderLayerCompositor::updateScrollCoordinatedLayer on time.com on iOS
25216        https://bugs.webkit.org/show_bug.cgi?id=131150
25217
25218        Reviewed by Beth Dakin.
25219
25220        When calling updateScrollCoordinatedLayer() under styleChanged, we haven't done
25221        layout yet so our composting layers haven't been hooked together. Don't try
25222        to add a zero nodeID to the map in this case.
25223
25224        * rendering/RenderLayerCompositor.cpp:
25225        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
25226
252272014-04-03  David Hyatt  <hyatt@apple.com>
25228
25229        Continuations casting issue.
25230        https://bugs.webkit.org/show_bug.cgi?id=130057
25231        <rdar://problem/16283406>
25232
25233        Reviewed by Simon Fraser.
25234
25235        The code to update relative positioned anonymous block continuations should not
25236        have assumed that all siblings were RenderBlocks. Make the code smarter and
25237        make it bail when it hits something that isn't part of the block continuation
25238        chain.
25239
25240        Added fast/block/continuation-crash.html
25241
25242        * rendering/RenderInline.cpp:
25243        (WebCore::updateStyleOfAnonymousBlockContinuations):
25244
252452014-04-03  Bem Jones-Bey  <bjonesbe@adobe.com>
25246
25247        [CSS Shapes] CRASH with calc() value args in inset round
25248        https://bugs.webkit.org/show_bug.cgi?id=129816
25249
25250        Reviewed by Andreas Kling.
25251
25252        The code to parse the inset rounded corners was adding the parser
25253        value arguments to a temporary CSSParserValueList. Unfortunately,
25254        CSSParserValueList expects to own the values it contains, and it frees
25255        the values it contains when the list is destroyed. This was a problem
25256        because the values are owned by the CSSParserValueList passed in to
25257        parseInsetRoundedCorners, and thus the calc's argument list would get
25258        double freed, resulting in a crash. This patch fixes this by using a
25259        Vector to hold the pointers instead.
25260
25261        Test: fast/shapes/shape-outside-floats/shape-outside-inset-round-calc-crash.html
25262
25263        * css/CSSParser.cpp:
25264        (WebCore::CSSParser::parseInsetRoundedCorners):
25265
252662014-04-03  Jer Noble  <jer.noble@apple.com>
25267
25268        Leaving a streaming movie by going "Back" keeps playing the audio
25269        https://bugs.webkit.org/show_bug.cgi?id=131149
25270
25271        Reviewed by Eric Carlson.
25272
25273        When stopping a HTMLMediaElement, call userCancelledLoad() (which clears the
25274        MediaPlayer) only after calling setPausedInternal() (which pauses the MediaPlayer).
25275        Previously, and in the reverse order, the MediaPlayer would never get a chance to pause
25276        before being cleared. There is an underlying error with the QTKit media engine which
25277        is causing it to continue playing even after its last reference is released, but this
25278        does fix the symptom of playback continuing even after stopping.
25279
25280        * html/HTMLMediaElement.cpp:
25281        (WebCore::HTMLMediaElement::stop):
25282
252832014-04-03  Jer Noble  <jer.noble@apple.com>
25284
25285        [EME] Crash when passing a NULL initData to MediaKeys.createSession()
25286        https://bugs.webkit.org/show_bug.cgi?id=131156
25287
25288        Reviewed by Eric Carlson.
25289
25290        Update the checks at the start of createSession() to match the current spec, notably
25291        bailing early if the initData parameter is NULL or empty.
25292
25293        * Modules/encryptedmedia/MediaKeys.cpp:
25294        (WebCore::MediaKeys::createSession):
25295
252962014-04-03  Eric Carlson  <eric.carlson@apple.com>
25297
25298        [iOS] add missing QuickTime plug-in replacement API
25299        https://bugs.webkit.org/show_bug.cgi?id=131042
25300
25301        Reviewed by Dean Jackson.
25302
25303        Rename QuickTimePluginReplacement.cpp to QuickTimePluginReplacement.mm to make it possible
25304        to use the ObjC JSC API.
25305        * Modules/plugins/QuickTimePluginReplacement.cpp:
25306        * Modules/plugins/QuickTimePluginReplacement.h:
25307        (WebCore::QuickTimePluginReplacement::parentElement):
25308        * Modules/plugins/QuickTimePluginReplacement.idl:
25309
25310        * Modules/plugins/QuickTimePluginReplacement.js:
25311        (Replacement.prototype.timedMetadataUpdates): Implement.
25312        (Replacement.prototype.accessLog): Ditto.
25313        (Replacement.prototype.errorLog): Ditto.
25314
25315        Use the JSC ObjC API to create a JavaScript object from an array of AVMetadataItems. The
25316        JSC ObjC API supports basic NSTypes, but an AVMetadataItem can also contain NSData which 
25317        the existing plug-in returns as base-64 encoded data, so create wrappers for NSDictionary
25318        and NSArray.
25319        * Modules/plugins/QuickTimePluginReplacement.mm: Copied from Source/WebCore/Modules/plugins/QuickTimePluginReplacement.cpp.
25320        (WebCore::QuickTimePluginReplacement::ensureReplacementScriptInjected): Disambiguate with "JSC::"
25321        (WebCore::QuickTimePluginReplacement::installReplacement): Ditto.
25322        (WebCore::jsValueWithDataInContext): Create JSValue* from NSData.
25323        (WebCore::jsValueWithArrayInContext): Create JSValue* from NSArray.
25324        (WebCore::jsValueWithDictionaryInContext): Create JSValue* from NSDictionary.
25325        (WebCore::jsValueWithValueInContext): Create JSValue* from basic NSTypes plus AVMetadataItem
25326            and NSData.
25327        (WebCore::jsValueWithAVMetadataItemInContext): Create JSValue* from AVMetadataItem.
25328        (WebCore::JSQuickTimePluginReplacement::timedMetaData): Script interface.
25329        (WebCore::JSQuickTimePluginReplacement::accessLog): Ditto.
25330        (WebCore::JSQuickTimePluginReplacement::errorLog): Ditto.
25331
25332        * WebCore.xcodeproj/project.pbxproj: QuickTimePluginReplacement.cpp -> QuickTimePluginReplacement.mm.
25333
25334        * platform/graphics/MediaPlayer.cpp:
25335        (WebCore::MediaPlayer::timedMetadata): iOS only accessor.
25336        (WebCore::MediaPlayer::accessLog): Ditto.
25337        (WebCore::MediaPlayer::errorLog): Ditto.
25338        * platform/graphics/MediaPlayer.h:
25339        * platform/graphics/MediaPlayerPrivate.h:
25340
25341        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
25342        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
25343        (WebCore::MediaPlayerPrivateAVFoundationObjC::timedMetadata):
25344        (WebCore::MediaPlayerPrivateAVFoundationObjC::accessLog):
25345        (WebCore::MediaPlayerPrivateAVFoundationObjC::errorLog):
25346        (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
25347        (WebCore::itemKVOProperties):
25348        (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
25349
253502014-04-03  Andrei Bucur  <abucur@adobe.com>
25351
25352        [CSS Regions] Include region range information when printing the render tree
25353        https://bugs.webkit.org/show_bug.cgi?id=131159
25354
25355        Reviewed by Mihnea Ovidenie.
25356
25357        With this change showRenderObject() will print the region range for objects inside
25358        a flow thread. The format is:
25359        Rs: <startRegion> Re: <endRegion>
25360
25361        Because this can be called anytime during debugging, it's necessary to disable the
25362        current flow thread caching to prevent using the wrong flow thread for an object.
25363
25364        Tests: No new tests, no functional change.
25365
25366        * rendering/RenderFlowThread.cpp:
25367        (WebCore::CurrentRenderFlowThreadDisabler::CurrentRenderFlowThreadDisabler):
25368        (WebCore::CurrentRenderFlowThreadDisabler::~CurrentRenderFlowThreadDisabler):
25369        * rendering/RenderFlowThread.h:
25370        * rendering/RenderObject.cpp:
25371        (WebCore::RenderObject::showRegionsInformation): Added.
25372        (WebCore::RenderObject::showRenderObject):
25373        * rendering/RenderObject.h:
25374
253752014-04-03  Antti Koivisto  <antti@apple.com>
25376
25377        RenderSnapshottedPlugIn::paint should use iterator for traversal.
25378        https://bugs.webkit.org/show_bug.cgi?id=131158
25379
25380        Reviewed by Dean Jackson.
25381
25382        * rendering/RenderSnapshottedPlugIn.cpp:
25383        (WebCore::RenderSnapshottedPlugIn::paint):
25384
253852014-03-27  Sergio Villar Senin  <svillar@igalia.com>
25386
25387        [CSS Grid Layout] <string> not allowed in grid-{area | row | column} syntax
25388        https://bugs.webkit.org/show_bug.cgi?id=129713
25389
25390        Reviewed by Darin Adler.
25391
25392        Grid positioning properties no longer accept <string> values for
25393        named grid lines as they did in previous versions of the specs. They
25394        were first replaced by <ident> and since the beginning of 2014 they
25395        should only accept <custom-ident>.
25396
25397        Updated the parser and the style resolver to this new syntax. Also
25398        updated the tests accordingly.
25399
25400        Test: fast/css-grid-layout/grid-container-change-named-grid-lines-recompute-child.html
25401
25402        * css/CSSParser.cpp:
25403        (WebCore::isValidCustomIdent): New function that checks that the
25404        <custom-ident> is valid.
25405        (WebCore::CSSParser::parseIntegerOrCustomIdentFromGridPosition):
25406        (WebCore::CSSParser::parseGridPosition):
25407        (WebCore::CSSParser::parseIntegerOrStringFromGridPosition):
25408        Replaced by WebCore::CSSParser::parseIntegerOrCustomIdentFromGridPosition.
25409        * css/CSSParser.h:
25410        * css/StyleResolver.cpp:
25411        (WebCore::createGridPosition):
25412
254132014-04-03  Antti Koivisto  <antti@apple.com>
25414
25415        Crash after mutating after pseudo style
25416        https://bugs.webkit.org/show_bug.cgi?id=130881
25417
25418        Reviewed by Andreas Kling.
25419
25420        Test: fast/css/pseudo-after-crash.html
25421
25422        * style/StyleResolveTree.cpp:
25423        (WebCore::Style::updateBeforeOrAfterPseudoElement):
25424        
25425            Invalidate the cached renderer for pseudo elements too.
25426    
25427        (WebCore::Style::needsPseudeElement): Deleted.
25428        
25429            Fix spelling.
25430
254312014-04-02  Chris Fleizach  <cfleizach@apple.com>
25432
25433        AX: AccessibilityObject::children() returns invalid results sometimes
25434        https://bugs.webkit.org/show_bug.cgi?id=130563
25435
25436        Reviewed by Joseph Pecoraro.
25437
25438        Allow the DOM inspector to handle AX objects that do not have Node equivalents
25439        (e.g. anonymous renderers).
25440
25441        * inspector/InspectorDOMAgent.cpp:
25442        (WebCore::InspectorDOMAgent::processAccessibilityChildren):
25443        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
25444        * inspector/InspectorDOMAgent.h:
25445
254462014-04-02  Alexey Proskuryakov  <ap@apple.com>
25447
25448        Sandbox violation in NetworkProcess when uploading a bundle
25449        https://bugs.webkit.org/show_bug.cgi?id=131133
25450
25451        Reviewed by Brady Eidson.
25452
25453        Track generated file ownership explicitly, so that each copy of FormData would know
25454        whether to delete the file.
25455
25456        This part is needed to prevent asserting in FormData destructor in NetworkProcess,
25457        because it doesn't delete the files. Also, some cleanup.
25458
25459        * WebCore.exp.in: Don't export FormData::removeGeneratedFilesIfNeeded(), WebKit2
25460        doesn't need it any more.
25461        * platform/network/FormData.cpp: Removed m_hasGeneratedFiles. There is no problem
25462        iterating over FormDataElements to compute it, and that's more robust when FormDatas
25463        are passed or stored on disk permanently.
25464        Updated touched functions to use C++ iteration, and renamed "e" to "element".
25465        (WebCore::FormData::encode): Keep encoding a boolean for hasGeneratedFiles, because
25466        the encoded FormData can be stored persitently, and we can't change the format.
25467
25468        * platform/network/FormData.h: (WebCore::FormDataElement::FormDataElement):
25469        Added m_ownsGeneratedFile. FormData will only delete files it owns. Since files
25470        are generated immediately before form submission, it's always the FormData being
25471        submitted that owns the generated files.
25472
254732014-04-02  Mihnea Ovidenie  <mihnea@adobe.com>
25474
25475        [CSSRegions] Use RenderStyle::hasFlowInto when needed
25476        https://bugs.webkit.org/show_bug.cgi?id=131092
25477
25478        Reviewed by Andrei Bucur.
25479
25480        Add hasFlowInto() helper method on RenderStyle to be used
25481        instead of directly checking the presence or absence of flowThread value.
25482        No new functionality, no new tests.
25483
25484        * css/CSSComputedStyleDeclaration.cpp:
25485        (WebCore::ComputedStyleExtractor::propertyValue):
25486        * dom/Element.cpp:
25487        (WebCore::Element::shouldMoveToFlowThread):
25488        * rendering/style/RenderStyle.h:
25489        * style/StyleResolveTree.cpp:
25490        (WebCore::Style::isRendererReparented):
25491
254922014-04-02  Benjamin Poulain  <benjamin@webkit.org>
25493
25494        CSS JIT: the adjacent position is never reset
25495        https://bugs.webkit.org/show_bug.cgi?id=131145
25496
25497        Reviewed by Andreas Kling.
25498
25499        Corresponding radar: <rdar://problem/16440036>. The backtracking action would use a tail
25500        when not needed.
25501
25502        Test: fast/selectors/multiple-adjacent-chain-without-adjacent-tail.html
25503
25504        * cssjit/SelectorCompiler.cpp:
25505        (WebCore::SelectorCompiler::updateChainStates):
25506
255072014-04-02  Brent Fulgham  <bfulgham@apple.com>
25508
25509        Speculative build fix for Windows.
25510
25511        * DerivedSources.make: Make sure we generate our media control
25512        scripts for Apple Windows (but not WinCairo)
25513
255142014-04-02  Tim Horton  <timothy_horton@apple.com>
25515
25516        Fix the !USE(IOSURFACE) iOS build.
25517
25518        * platform/ios/MemoryPressureHandlerIOS.mm:
25519        (WebCore::MemoryPressureHandler::platformReleaseMemory):
25520
255212014-04-02  Mark Rowe  <mrowe@apple.com>
25522
25523        <https://webkit.org/b/131136> Remove FrameLoadRequest's m_lockHistory member since it's always false.
25524
25525        Reviewed by Andreas Kling.
25526
25527        * loader/FrameLoadRequest.cpp:
25528        (WebCore::FrameLoadRequest::FrameLoadRequest):
25529        * loader/FrameLoadRequest.h:
25530        (WebCore::FrameLoadRequest::FrameLoadRequest):
25531        (WebCore::FrameLoadRequest::lockHistory): Deleted.
25532        (WebCore::FrameLoadRequest::setLockHistory): Deleted.
25533        * loader/FrameLoader.cpp:
25534        (WebCore::FrameLoader::load): Remove an if whose body was never executed.
25535
255362014-04-02  Mark Rowe  <mrowe@apple.com>
25537
25538        <https://webkit.org/b/131135> Introduce LockHistory and LockBackForwardList enums to use in place of bools.
25539
25540        These arguments are often passed using literals at the call site, where the use of bools severely hinders
25541        the readability of the code.
25542
25543        Reviewed by Andreas Kling.
25544
25545        * WebCore.exp.in:
25546        * html/HTMLAnchorElement.cpp:
25547        (WebCore::HTMLAnchorElement::handleClick):
25548        * html/HTMLFormElement.cpp:
25549        (WebCore::HTMLFormElement::submit):
25550        * html/HTMLFrameElementBase.cpp:
25551        (WebCore::HTMLFrameElementBase::openURL):
25552        (WebCore::HTMLFrameElementBase::setLocation):
25553        * html/HTMLFrameElementBase.h:
25554        * inspector/InspectorFrontendClientLocal.cpp:
25555        (WebCore::InspectorFrontendClientLocal::openInNewTab):
25556        * inspector/InspectorPageAgent.cpp:
25557        (WebCore::InspectorPageAgent::navigate):
25558        * loader/FormSubmission.cpp:
25559        (WebCore::FormSubmission::FormSubmission):
25560        (WebCore::FormSubmission::create):
25561        * loader/FormSubmission.h:
25562        (WebCore::FormSubmission::lockHistory):
25563        * loader/FrameLoader.cpp:
25564        (WebCore::FrameLoader::changeLocation):
25565        (WebCore::FrameLoader::urlSelected):
25566        (WebCore::FrameLoader::loadURLIntoChildFrame):
25567        (WebCore::FrameLoader::loadFrameRequest):
25568        (WebCore::FrameLoader::loadURL):
25569        (WebCore::FrameLoader::loadWithNavigationAction):
25570        (WebCore::FrameLoader::clientRedirected):
25571        (WebCore::FrameLoader::loadPostRequest):
25572        (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
25573        (WebCore::FrameLoader::loadDifferentDocumentItem):
25574        * loader/FrameLoader.h:
25575        * loader/FrameLoaderTypes.h:
25576        * loader/NavigationScheduler.cpp:
25577        (WebCore::ScheduledNavigation::ScheduledNavigation):
25578        (WebCore::ScheduledNavigation::lockHistory):
25579        (WebCore::ScheduledNavigation::lockBackForwardList):
25580        (WebCore::ScheduledURLNavigation::ScheduledURLNavigation):
25581        (WebCore::ScheduledRedirect::ScheduledRedirect):
25582        (WebCore::ScheduledLocationChange::ScheduledLocationChange):
25583        (WebCore::ScheduledRefresh::ScheduledRefresh):
25584        (WebCore::ScheduledHistoryNavigation::ScheduledHistoryNavigation):
25585        (WebCore::ScheduledFormSubmission::ScheduledFormSubmission):
25586        (WebCore::NavigationScheduler::scheduleRedirect):
25587        (WebCore::NavigationScheduler::mustLockBackForwardList):
25588        (WebCore::NavigationScheduler::scheduleLocationChange):
25589        (WebCore::NavigationScheduler::scheduleFormSubmission):
25590        * loader/NavigationScheduler.h:
25591        * loader/SubframeLoader.cpp:
25592        (WebCore::SubframeLoader::requestFrame):
25593        (WebCore::SubframeLoader::requestObject):
25594        (WebCore::SubframeLoader::loadOrRedirectSubframe):
25595        * loader/SubframeLoader.h:
25596        * page/ContextMenuController.cpp:
25597        (WebCore::openNewWindow):
25598        (WebCore::ContextMenuController::contextMenuItemSelected):
25599        * page/DOMWindow.cpp:
25600        (WebCore::DOMWindow::setLocation):
25601        (WebCore::DOMWindow::createWindow):
25602        (WebCore::DOMWindow::open):
25603        * svg/SVGAElement.cpp:
25604        (WebCore::SVGAElement::defaultEventHandler):
25605
256062014-04-02  Tim Horton  <timothy_horton@apple.com>
25607
25608        Pool IOSurfaces to help with allocation cost
25609        https://bugs.webkit.org/show_bug.cgi?id=131096
25610        <rdar://problem/15373942>
25611
25612        Reviewed by Simon Fraser.
25613
25614        * WebCore.exp.in:
25615        * WebCore.xcodeproj/project.pbxproj:
25616        
25617        * platform/Timer.h:
25618        (WebCore::TimerBase::startRepeating): Add a std::chrono startRepeating.
25619
25620        * platform/graphics/cg/IOSurfacePool.h: Added.
25621        (WebCore::IOSurfacePool::CachedSurfaceDetails::CachedSurfaceDetails):
25622        (WebCore::IOSurfacePool::CachedSurfaceDetails::resetLastUseTime):
25623        * platform/graphics/cg/ImageBufferBackingStoreCache.cpp: Removed.
25624        * platform/graphics/cg/ImageBufferBackingStoreCache.h: Removed.
25625        * platform/graphics/cg/IOSurfacePool.cpp: Added.
25626        (WebCore::IOSurfacePool::IOSurfacePool):
25627        (WebCore::IOSurfacePool::sharedPool):
25628        (WebCore::surfaceMatchesParameters):
25629        (WebCore::IOSurfacePool::willAddSurface):
25630        (WebCore::IOSurfacePool::didRemoveSurface):
25631        (WebCore::IOSurfacePool::didUseSurfaceOfSize):
25632        (WebCore::IOSurfacePool::takeSurface):
25633        (WebCore::IOSurfacePool::addSurface):
25634        (WebCore::IOSurfacePool::insertSurfaceIntoPool):
25635        (WebCore::IOSurfacePool::setPoolSize):
25636        (WebCore::IOSurfacePool::tryEvictInUseSurface):
25637        (WebCore::IOSurfacePool::tryEvictOldestCachedSurface):
25638        (WebCore::IOSurfacePool::evict):
25639        (WebCore::IOSurfacePool::collectInUseSurfaces):
25640        (WebCore::IOSurfacePool::markOlderSurfacesPurgeable):
25641        (WebCore::IOSurfacePool::collectionTimerFired):
25642        (WebCore::IOSurfacePool::scheduleCollectionTimer):
25643        (WebCore::IOSurfacePool::discardAllSurfaces):
25644        (WebCore::IOSurfacePool::showPoolStatistics):
25645        Add a pool of IOSurfaces. It behaves as such:
25646
25647            - Keeps up to 64MB of surfaces.
25648            - Keeps unused and in-use surfaces (but never gets more than 1/2 full with the latter)
25649            - Marks surfaces purgeable after they've been unused for 2 seconds.
25650            - Tries to move surfaces from the in-use pool to the unused pool every 500ms.
25651            - Evicts in an LRU-ish fashion, interleaving eviction of the oldest
25652              surfaces and the in-use surfaces (since in-use surfaces are not immediately
25653              useful for the pool, but they are desirous because they were recently used).
25654            - Throws everything away under memory pressure.
25655
25656        * platform/graphics/cocoa/IOSurface.mm:
25657        (IOSurface::create):
25658        Try to grab a surface from the IOSurfacePool.
25659
25660        * platform/ios/MemoryPressureHandlerIOS.mm:
25661        (WebCore::MemoryPressureHandler::platformReleaseMemory):
25662        * platform/mac/MemoryPressureHandlerMac.mm:
25663        (WebCore::MemoryPressureHandler::install):
25664        (WebCore::MemoryPressureHandler::platformReleaseMemory):
25665        * platform/MemoryPressureHandler.cpp:
25666        (WebCore::MemoryPressureHandler::platformReleaseMemory):
25667        Fix some includes, and throw away all surfaces when we're under memory pressure.
25668
256692014-04-02  Stephanie Lewis  <slewis@apple.com>
25670
25671        Roll out http://trac.webkit.org/changeset/166144
25672        <rdar://problem/16481284> PLT stops loading on news.google.com
25673
25674        Unreviewed rollout.
25675
25676        Rollout 166144 since it prevents the PLT from completing.
25677
25678        * dom/ContainerNode.cpp:
25679        (WebCore::ContainerNode::suspendPostAttachCallbacks):
25680        (WebCore::ContainerNode::resumePostAttachCallbacks):
25681        (WebCore::ContainerNode::queuePostAttachCallback):
25682        (WebCore::ContainerNode::postAttachCallbacksAreSuspended):
25683        (WebCore::ContainerNode::dispatchPostAttachCallbacks):
25684        * dom/ContainerNode.h:
25685        * dom/Document.cpp:
25686        (WebCore::Document::recalcStyle):
25687        * dom/Element.h:
25688        (WebCore::PostAttachCallbackDisabler::PostAttachCallbackDisabler):
25689        (WebCore::PostAttachCallbackDisabler::~PostAttachCallbackDisabler):
25690        * html/HTMLEmbedElement.cpp:
25691        (WebCore::HTMLEmbedElement::parseAttribute):
25692        * html/HTMLFormControlElement.cpp:
25693        (WebCore::focusPostAttach):
25694        (WebCore::HTMLFormControlElement::didAttachRenderers):
25695        (WebCore::updateFromElementCallback):
25696        (WebCore::HTMLFormControlElement::didRecalcStyle):
25697        * html/HTMLFrameOwnerElement.cpp:
25698        (WebCore::needsStyleRecalcCallback):
25699        (WebCore::HTMLFrameOwnerElement::scheduleSetNeedsStyleRecalc):
25700        * html/HTMLObjectElement.cpp:
25701        (WebCore::HTMLObjectElement::parseAttribute):
25702        (WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk):
25703        (WebCore::HTMLObjectElement::hasValidClassId):
25704        (WebCore::HTMLObjectElement::renderFallbackContent):
25705        * html/HTMLObjectElement.h:
25706        * html/HTMLPlugInImageElement.cpp:
25707        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
25708        (WebCore::HTMLPlugInImageElement::createElementRenderer):
25709        (WebCore::HTMLPlugInImageElement::didAttachRenderers):
25710        (WebCore::HTMLPlugInImageElement::willDetachRenderers):
25711        (WebCore::HTMLPlugInImageElement::updateWidgetIfNecessary):
25712        (WebCore::HTMLPlugInImageElement::didMoveToNewDocument):
25713        (WebCore::HTMLPlugInImageElement::updateWidgetCallback):
25714        (WebCore::HTMLPlugInImageElement::startLoadingImage):
25715        (WebCore::HTMLPlugInImageElement::startLoadingImageCallback):
25716        (WebCore::HTMLPlugInImageElement::createShadowIFrameSubtree):
25717        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn):
25718        (WebCore::HTMLPlugInImageElement::didRecalcStyle): Deleted.
25719        (WebCore::HTMLPlugInImageElement::scheduleUpdateForAfterStyleResolution): Deleted.
25720        (WebCore::HTMLPlugInImageElement::updateAfterStyleResolution): Deleted.
25721        (WebCore::HTMLPlugInImageElement::removedFrom): Deleted.
25722        (WebCore::is100Percent): Deleted.
25723        (WebCore::HTMLPlugInImageElement::setNeedsImageReload): Deleted.
25724        * html/HTMLPlugInImageElement.h:
25725        (WebCore::HTMLPlugInImageElement::imageLoader): Deleted.
25726        (WebCore::HTMLPlugInImageElement::updateImageLoaderWithNewURLSoon): Deleted.
25727        * style/StyleResolveTree.cpp:
25728        (WebCore::Style::needsPseudeElement):
25729        (WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded):
25730        (WebCore::Style::attachRenderTree):
25731        (WebCore::Style::updateBeforeOrAfterPseudoElement):
25732        (WebCore::Style::needsPseudoElement): Deleted.
25733        (WebCore::Style::postResolutionCallbackQueue): Deleted.
25734        (WebCore::Style::queuePostResolutionCallback): Deleted.
25735        (WebCore::Style::suspendMemoryCacheClientCalls): Deleted.
25736        (WebCore::Style::PostResolutionCallbackDisabler::PostResolutionCallbackDisabler): Deleted.
25737        (WebCore::Style::PostResolutionCallbackDisabler::~PostResolutionCallbackDisabler): Deleted.
25738        (WebCore::Style::postResolutionCallbacksAreSuspended): Deleted.
25739        * style/StyleResolveTree.h:
25740
257412014-04-02  Jinwoo Song  <jinwoo7.song@samsung.com>
25742
25743        Page should use std::unique_ptr for PointerLockController
25744        https://bugs.webkit.org/show_bug.cgi?id=131098
25745
25746        Reviewed by Anders Carlsson.
25747
25748        Make Page keep a std::unique_ptr to PointerLockController. Store page 
25749        references and return controller references where possible.
25750
25751        * dom/Document.cpp:
25752        (WebCore::Document::prepareForDestruction):
25753        (WebCore::Document::webkitExitPointerLock):
25754        (WebCore::Document::webkitPointerLockElement):
25755        * dom/Element.cpp:
25756        (WebCore::Element::removedFrom):
25757        (WebCore::Element::webkitRequestPointerLock):
25758        * page/Page.cpp:
25759        (WebCore::Page::Page):
25760        * page/Page.h:
25761        (WebCore::Page::pointerLockController):
25762        * page/PointerLockController.cpp:
25763        (WebCore::PointerLockController::PointerLockController):
25764        (WebCore::PointerLockController::requestPointerLock):
25765        (WebCore::PointerLockController::requestPointerUnlock):
25766        (WebCore::PointerLockController::create): Deleted.
25767        * page/PointerLockController.h:
25768
257692014-04-02  Dean Jackson  <dino@apple.com>
25770
25771        Load Media Controls js/css from bundle
25772        https://bugs.webkit.org/show_bug.cgi?id=131086
25773
25774        Followup comments from Eric Carlson.
25775
25776        Remove the booleans that were guarding loading the resources.
25777
25778        * rendering/RenderThemeIOS.h:
25779        * rendering/RenderThemeIOS.mm:
25780        (WebCore::RenderThemeIOS::mediaControlsStyleSheet):
25781        (WebCore::RenderThemeIOS::mediaControlsScript):
25782        (WebCore::RenderThemeIOS::RenderThemeIOS):
25783        * rendering/RenderThemeMac.h:
25784        * rendering/RenderThemeMac.mm:
25785        (WebCore::RenderThemeMac::RenderThemeMac):
25786        (WebCore::RenderThemeMac::mediaControlsStyleSheet):
25787        (WebCore::RenderThemeMac::mediaControlsScript):
25788
257892014-04-01  Dean Jackson  <dino@apple.com>
25790
25791        Load Media Controls js/css from bundle
25792        https://bugs.webkit.org/show_bug.cgi?id=131086
25793
25794        Reviewed by Eric Carlson.
25795
25796        Rather than embed encoded versions of the JS and CSS files
25797        into C++ source, just load the files directly from the bundle.
25798
25799        * DerivedSources.make: Removed now unnecessary rules.
25800        * WebCore.xcodeproj/project.pbxproj: Copy mediaControls files to the bundle.
25801        * rendering/RenderThemeIOS.h:
25802        * rendering/RenderThemeIOS.mm:
25803        (WebCore::RenderThemeIOS::RenderThemeIOS):
25804        (WebCore::RenderThemeIOS::mediaControlsStyleSheet): Load from the bundle.
25805        (WebCore::RenderThemeIOS::mediaControlsScript): Ditto.
25806        * rendering/RenderThemeMac.h:
25807        * rendering/RenderThemeMac.mm:
25808        (WebCore::RenderThemeMac::RenderThemeMac):
25809        (WebCore::RenderThemeMac::mediaControlsStyleSheet):
25810        (WebCore::RenderThemeMac::mediaControlsScript):
25811
258122014-04-02  Daniel Bates  <dabates@apple.com>
25813
25814        Move focus management API from HTMLDocument to Document
25815        https://bugs.webkit.org/show_bug.cgi?id=131079
25816        <rdar://problem/16220103>
25817
25818        Reviewed by Timothy Hatcher.
25819
25820        Merged from Blink (patch by Christophe Dumez):
25821        https://src.chromium.org/viewvc/blink?view=rev&revision=165515
25822
25823        Move hasFocus() and attribute activeElement from interface HTMLDocument
25824        to DOMDocument as per section Focus management APIs of the HTML5 standard:
25825        <http://www.whatwg.org/specs/web-apps/current-work/#focus-management-apis> (1 April 2014).
25826
25827        Test: fast/dom/Document/xml-document-focus.xml
25828
25829        * bindings/objc/PublicDOMInterfaces.h: Moved hasFocus() and property activeElement from
25830        interface DOMHTMLDocument to DOMDocument.
25831        * dom/Document.cpp:
25832        (WebCore::Document::activeElement): Added.
25833        (WebCore::Document::hasFocus): Added.
25834        * dom/Document.h:
25835        * dom/Document.idl:
25836        * html/HTMLDocument.cpp:
25837        (WebCore::HTMLDocument::activeElement): Deleted.
25838        (WebCore::HTMLDocument::hasFocus): Deleted.
25839        * html/HTMLDocument.h:
25840        * html/HTMLDocument.idl:
25841
258422014-04-02  Benjamin Poulain  <benjamin@webkit.org>
25843
25844        Refactor the function call generator to take the arguments by value
25845        https://bugs.webkit.org/show_bug.cgi?id=131129
25846
25847        Reviewed by Andreas Kling.
25848
25849        Nothing forces the pointed address to stay alive between setOneArgument/setTwoArguments
25850        and prepareAndCall.
25851
25852        This patch changes FunctionCall to:
25853        -Keep the register by value instead of using pointers.
25854        -Crash at compile time if a register is invalid.
25855
25856        * cssjit/FunctionCall.h:
25857        (WebCore::FunctionCall::FunctionCall):
25858        (WebCore::FunctionCall::setOneArgument):
25859        (WebCore::FunctionCall::setTwoArguments):
25860        (WebCore::FunctionCall::swapArguments):
25861        (WebCore::FunctionCall::prepareAndCall):
25862        * cssjit/RegisterAllocator.h:
25863        (WebCore::RegisterAllocator::isValidRegister):
25864
258652014-04-02  Daniel Bates  <dabates@apple.com>
25866
25867        Remove Settings::maximumDecodedImageSize()
25868        https://bugs.webkit.org/show_bug.cgi?id=131057
25869        <rdar://problem/15626368>
25870
25871        Reviewed by Darin Adler.
25872
25873        The setting Settings::maximumDecodedImageSize() and its related logic have various
25874        shortcomings, including the inability to cancel an image load when the estimated
25875        decoded image size exceeds the maximum decoded image size. In the iOS port, this
25876        setting is less useful given image subsampling support. For now, we remove this
25877        setting and its related logic. Should it turn out that such a setting is useful
25878        then we can implement it again taking care to address the shortcomings in the
25879        original design.
25880
25881        * html/HTMLCanvasElement.cpp: For the iOS port, define MaxCanvasArea to be 4580 * 1145
25882        pixels such that the maximum size of the image buffer is 20 MB (assumes 4 bytes per pixel).
25883        (WebCore::HTMLCanvasElement::HTMLCanvasElement):
25884        (WebCore::HTMLCanvasElement::createImageBuffer):
25885        * html/HTMLCanvasElement.h:
25886        * html/canvas/CanvasRenderingContext2D.cpp:
25887        (WebCore::CanvasRenderingContext2D::createImageData):
25888        (WebCore::CanvasRenderingContext2D::getImageData):
25889        * loader/cache/CachedImage.cpp:
25890        (WebCore::CachedImage::addIncrementalDataBuffer):
25891        (WebCore::CachedImage::finishLoading):
25892        * loader/cache/CachedImage.h:
25893        * page/Settings.in:
25894
258952014-04-02  Martin Hock  <mhock@apple.com>
25896
25897        Unify private browsing with sessions.
25898        https://bugs.webkit.org/show_bug.cgi?id=130099
25899
25900        Reviewed by Alexey Proskuryakov.
25901
25902        Unless otherwise noted, the following consists solely of mechanical changes to replace querying WebCore::Settings::privateBrowsingEnabled() with Page::usesEphemeralSession().
25903
25904        * Modules/webdatabase/DatabaseContext.cpp:
25905        (WebCore::DatabaseContext::allowDatabaseAccess):
25906        * WebCore.exp.in: Remove Settings::setPrivateBrowsingEnabled, add Page::legacyPrivateBrowsingEnabled.
25907        * html/HTMLMediaElement.cpp:
25908        (WebCore::HTMLMediaElement::parseAttribute):
25909        * loader/HistoryController.cpp:
25910        (WebCore::HistoryController::updateForStandardLoad):
25911        (WebCore::HistoryController::updateForRedirectWithLockedBackForwardList):
25912        (WebCore::HistoryController::updateForClientRedirect):
25913        (WebCore::HistoryController::updateForSameDocumentNavigation):
25914        (WebCore::HistoryController::pushState):
25915        (WebCore::HistoryController::replaceState):
25916        * loader/appcache/ApplicationCacheGroup.cpp:
25917        (WebCore::ApplicationCacheGroup::cacheForMainRequest):
25918        (WebCore::ApplicationCacheGroup::selectCache):
25919        (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
25920        (WebCore::ApplicationCacheGroup::update):
25921        * loader/appcache/ApplicationCacheHost.cpp:
25922        (WebCore::ApplicationCacheHost::isApplicationCacheEnabled):
25923        * loader/icon/IconController.cpp:
25924        (WebCore::IconController::continueLoadWithDecision):
25925        * page/Page.cpp:
25926        (WebCore::Page::Page): Initialize with defaultSessionID.
25927        (WebCore::Page::legacyPrivateBrowsingEnabled): Legacy setting for private browsing.
25928        (WebCore::Page::privateBrowsingStateChanged): Move implementation to setSessionID.
25929        (WebCore::Page::sessionID): Simplify to just return m_sessionID.
25930        (WebCore::Page::setSessionID): Also perform privateBrowsingStateChanged action.a
25931        (WebCore::Page::privateBrowsingStateChanged): Deleted.
25932        (WebCore::Page::checkSubframeCountConsistency): Deleted.
25933        * page/Page.h:
25934        * page/PageConsole.cpp:
25935        (WebCore::PageConsole::addMessage):
25936        (WebCore::PageConsole::messageWithTypeAndLevel):
25937        * page/Settings.cpp: Remove privateBrowsingEnabled setting.
25938        (WebCore::Settings::Settings):
25939        (WebCore::Settings::setPrivateBrowsingEnabled): Page reflects setting using session.
25940        * page/Settings.h:
25941        * plugins/PluginView.cpp:
25942        (WebCore::PluginView::getValue):
25943        * rendering/RenderSearchField.cpp:
25944        (WebCore::RenderSearchField::addSearchResult):
25945        * storage/Storage.cpp:
25946        (WebCore::Storage::isDisabledByPrivateBrowsing):
25947
259482014-04-02  Antti Koivisto  <antti@apple.com>
25949
25950        Try to fix test failures.
25951
25952        * platform/graphics/ca/mac/TileGrid.mm:
25953        (WebCore::TileGrid::TileGrid):  Initialize a field.
25954
259552014-04-02  Timothy Hatcher  <timothy@apple.com>
25956
25957        Remove Input domain from the Web Inspector protocol.
25958
25959        https://bugs.webkit.org/show_bug.cgi?id=131073
25960
25961        Reviewed by Joseph Pecoraro.
25962
25963        * CMakeLists.txt:
25964        * DerivedSources.make:
25965        * WebCore.vcxproj/WebCore.vcxproj:
25966        * WebCore.vcxproj/WebCore.vcxproj.filters:
25967        * WebCore.xcodeproj/project.pbxproj:
25968        * inspector/InspectorAllInOne.cpp:
25969        * inspector/InspectorController.cpp:
25970        (WebCore::InspectorController::InspectorController):
25971        * inspector/InspectorInputAgent.cpp: Removed.
25972        * inspector/InspectorInputAgent.h: Removed.
25973        * inspector/protocol/Input.json: Removed.
25974
259752014-04-02  Antti Koivisto  <antti@apple.com>
25976
25977        Split tile grid out from TileController
25978        https://bugs.webkit.org/show_bug.cgi?id=131102
25979
25980        Reviewed by Simon Fraser.
25981
25982        Add a TileGrid class that encapsulates tiles, zoom level and the related metadata.
25983        This will make it possible to have multiple grids per TileController later.
25984
259852014-03-31  Brent Fulgham  <bfulgham@apple.com>
25986
25987        [Win] Correct media controls for test harness
25988        https://bugs.webkit.org/show_bug.cgi?id=131008 
25989
25990        Reviewed by Eric Carlson.
25991
25992        * rendering/RenderThemeSafari.cpp: Revise to match RenderThemeWin logic.
25993        (WebCore::RenderThemeSafari::systemFont):
25994        (WebCore::RenderThemeSafari::paintMenuList):
25995        (WebCore::RenderThemeSafari::paintSearchFieldResultsButton):
25996        (WebCore::RenderThemeSafari::mediaControlsStyleSheet):
25997        (WebCore::RenderThemeSafari::mediaControlsScript):
25998        (WebCore::RenderThemeSafari::paintMediaFullscreenButton): Deleted.
25999        (WebCore::RenderThemeSafari::paintMediaMuteButton): Deleted.
26000        (WebCore::RenderThemeSafari::paintMediaPlayButton): Deleted.
26001        (WebCore::RenderThemeSafari::paintMediaSeekBackButton): Deleted.
26002        (WebCore::RenderThemeSafari::paintMediaSeekForwardButton): Deleted.
26003        (WebCore::RenderThemeSafari::paintMediaSliderTrack): Deleted.
26004        (WebCore::RenderThemeSafari::paintMediaSliderThumb): Deleted.
26005        * rendering/RenderThemeSafari.h:
26006
260072014-04-02  peavo@outlook.com  <peavo@outlook.com>
26008
26009        [WinCairo] Compile error.
26010        https://bugs.webkit.org/show_bug.cgi?id=131110
26011
26012        Reviewed by Simon Fraser.
26013
26014        Image::size() now returns a FloatSize instead of an IntSize.
26015
26016        * platform/win/DragImageCairoWin.cpp:
26017        (WebCore::createDragImageFromImage):
26018
260192014-04-02  David Kilzer  <ddkilzer@apple.com>
26020
26021        Use outermost containing isolate when constructing bidi runs
26022        <http://webkit.org/b/131107>
26023        <rdar://problem/15690021>
26024
26025        Reviewed by Darin Adler.
26026
26027        Merged from Blink (patch by jww@chromium.org):
26028        https://src.chromium.org/viewvc/blink?revision=157268&view=revision
26029        http://crbug.com/279277
26030
26031            Update containingIsolate to go back all the way to top
26032            isolate from current root, rather than stopping at the first
26033            isolate it finds. This works because the current root is
26034            always updated with each isolate run.
26035
26036        Tests: fast/text/international/unicode-bidi-isolate-nested-with-removes-not-adjacent.html
26037               fast/text/international/unicode-bidi-isolate-nested-with-removes.html
26038
26039        * rendering/InlineIterator.h:
26040        (WebCore::highestContainingIsolateWithinRoot):
26041        * rendering/RenderBlockLineLayout.cpp:
26042        (WebCore::constructBidiRunsForSegment):
26043
260442014-04-02  Chris Fleizach  <cfleizach@apple.com>
26045
26046        AX: Improve ARIA live region reliability by sending notifications when live regions are created/shown and hidden/destroyed
26047        https://bugs.webkit.org/show_bug.cgi?id=124381
26048
26049        Reviewed by Mario Sanchez Prada.
26050
26051        Re-organize some code so that when we detect a new node has been created, we can safely determine its live region status.
26052        If it is a live region, we fire off a live region created notification.
26053
26054        Test: platform/mac/accessibility/live-region-creation-notification.html
26055
26056        * accessibility/AXObjectCache.cpp:
26057        (WebCore::AXObjectCache::handleLiveRegionCreated):
26058        (WebCore::AXObjectCache::childrenChanged):
26059        (WebCore::AXObjectCache::handleAttributeChanged):
26060        * accessibility/AXObjectCache.h:
26061        (WebCore::AXObjectCache::childrenChanged):
26062        * accessibility/AccessibilityObject.cpp:
26063        (WebCore::AccessibilityObject::defaultLiveRegionStatusForRole):
26064        (WebCore::AccessibilityObject::liveRegionStatusIsEnabled):
26065        (WebCore::AccessibilityObject::supportsARIALiveRegion):
26066        * accessibility/AccessibilityObject.h:
26067        (WebCore::AccessibilityObject::ariaLiveRegionStatus):
26068        * accessibility/AccessibilityRenderObject.cpp:
26069        (WebCore::AccessibilityRenderObject::ariaLiveRegionStatus):
26070        * accessibility/AccessibilityRenderObject.h:
26071        * accessibility/ios/AXObjectCacheIOS.mm:
26072        (WebCore::AXObjectCache::postPlatformNotification):
26073        * accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
26074        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
26075        (-[WebAccessibilityObjectWrapper postLiveRegionCreatedNotification]):
26076        * accessibility/mac/AXObjectCacheMac.mm:
26077        (WebCore::AXObjectCache::postPlatformNotification):
26078
260792014-04-02  Martin Robinson  <mrobinson@igalia.com>
26080
26081        REGRESSION(r165704): [GTK] Inspector resources not correctly generated
26082        https://bugs.webkit.org/show_bug.cgi?id=130343
26083
26084        Reviewed by Gustavo Noronha Silva.
26085
26086        * CMakeLists.txt: Generate the web inspector JS file into the new WebInspectorUI derived sources
26087        directory.
26088
260892014-04-02  Zalan Bujtas  <zalan@apple.com>
26090
26091        Unreviewed build fix after r166642.
26092        (WinCairo should really turn subpixel layout on.)
26093
26094        * platform/graphics/LayoutSize.h:
26095        (WebCore::flooredForPainting):
26096
260972014-04-02  Zalan Bujtas  <zalan@apple.com>
26098
26099        Subpixel rendering: Make GraphicsContext::drawTiledImage* functions float based.
26100        https://bugs.webkit.org/show_bug.cgi?id=131062
26101
26102        Reviewed by Simon Fraser.
26103
26104        This is in preparation to support subpixel positioned/sized background images. Generated images
26105        need to be able to sized on device pixels.
26106
26107        No change in behavior.
26108
26109        * platform/graphics/GraphicsContext.cpp:
26110        (WebCore::GraphicsContext::drawImage):
26111        (WebCore::GraphicsContext::drawTiledImage):
26112        * platform/graphics/GraphicsContext.h:
26113
261142014-04-02  Alex Christensen  <achristensen@webkit.org>
26115
26116        [WinCairo] Build fix after r166496.
26117        https://bugs.webkit.org/show_bug.cgi?id=131006
26118
26119        Reviewed by Carlos Garcia Campos.
26120
26121        * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
26122        (WebCore::InbandTextTrackPrivateGStreamer::handleSample):
26123        (WebCore::InbandTextTrackPrivateGStreamer::streamChanged):
26124        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
26125        (WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
26126        (WebCore::MediaPlayerPrivateGStreamer::videoChanged):
26127        (WebCore::MediaPlayerPrivateGStreamer::videoCapsChanged):
26128        (WebCore::MediaPlayerPrivateGStreamer::audioChanged):
26129        (WebCore::MediaPlayerPrivateGStreamer::textChanged):
26130        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
26131        (WebCore::MediaPlayerPrivateGStreamerBase::volumeChanged):
26132        (WebCore::MediaPlayerPrivateGStreamerBase::muteChanged):
26133        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
26134        (WebCore::TrackPrivateBaseGStreamer::activeChanged):
26135        (WebCore::TrackPrivateBaseGStreamer::tagsChanged):
26136        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
26137        (webkitVideoSinkRender):
26138        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
26139        (webKitWebSrcChangeState):
26140        (webKitWebSrcNeedDataCb):
26141        (webKitWebSrcEnoughDataCb):
26142        (webKitWebSrcSeekDataCb):
26143        Added std::function<void()> constructors to help Visual Studio decide which version of 
26144        GMainLoopSource::schedule or GMainLoopSource::scheduleAfterDelay to use.
26145
261462014-04-02  Zalan Bujtas  <zalan@apple.com>
26147
26148        Subpixel rendering: Transition class CSSImageGeneratorValue/class StyleImage (and its dependencies) from 
26149        IntSize to FloatSize to enable subpixel sized (generated)images.
26150        https://bugs.webkit.org/show_bug.cgi?id=130659
26151
26152        Reviewed by Simon Fraser and Andreas Kling.
26153
26154        This is in preparation to support subpixel positioned/sized background images. Generated images
26155        needs to be able to sized on device pixels.
26156
26157        No change in behavior.
26158
26159        * WebCore.vcxproj/WebCore.vcxproj:
26160        * WebCore.vcxproj/WebCore.vcxproj.filters:
26161        * WebCore.xcodeproj/project.pbxproj:
26162        * css/CSSCanvasValue.cpp:
26163        (WebCore::CSSCanvasValue::fixedSize):
26164        (WebCore::CSSCanvasValue::image):
26165        * css/CSSCanvasValue.h:
26166        * css/CSSCrossfadeValue.cpp:
26167        (WebCore::CSSCrossfadeValue::fixedSize):
26168        (WebCore::CSSCrossfadeValue::image):
26169        * css/CSSCrossfadeValue.h:
26170        * css/CSSFilterImageValue.cpp:
26171        (WebCore::CSSFilterImageValue::fixedSize):
26172        (WebCore::CSSFilterImageValue::image):
26173        * css/CSSFilterImageValue.h:
26174        * css/CSSGradientValue.cpp:
26175        (WebCore::CSSGradientValue::image):
26176        (WebCore::positionFromValue):
26177        (WebCore::CSSGradientValue::computeEndPoint):
26178        (WebCore::endPointsFromAngle):
26179        (WebCore::CSSLinearGradientValue::createGradient):
26180        (WebCore::CSSRadialGradientValue::createGradient):
26181        * css/CSSGradientValue.h:
26182        (WebCore::CSSGradientValue::fixedSize):
26183        * css/CSSImageGeneratorValue.cpp:
26184        (WebCore::CSSImageGeneratorValue::cachedImageForSize):
26185        (WebCore::CSSImageGeneratorValue::saveCachedImageForSize):
26186        (WebCore::CSSImageGeneratorValue::evictCachedGeneratedImage):
26187        (WebCore::CSSImageGeneratorValue::CachedGeneratedImage::CachedGeneratedImage):
26188        (WebCore::CSSImageGeneratorValue::image):
26189        (WebCore::CSSImageGeneratorValue::fixedSize):
26190        * css/CSSImageGeneratorValue.h:
26191        * loader/cache/CachedImage.cpp:
26192        (WebCore::CachedImage::setContainerSizeForRenderer):
26193        * loader/cache/CachedImage.h:
26194        * platform/graphics/FloatSizeHash.h: Added.
26195        (WTF::FloatHash<WebCore::FloatSize>::hash):
26196        (WTF::FloatHash<WebCore::FloatSize>::equal):
26197        (WTF::HashTraits<WebCore::FloatSize>::constructDeletedValue):
26198        (WTF::HashTraits<WebCore::FloatSize>::isDeletedValue):
26199        * platform/graphics/LayoutSize.h:
26200        (WebCore::flooredForPainting):
26201        * rendering/RenderImageResourceStyleImage.h:
26202        * rendering/RenderListMarker.cpp:
26203        (WebCore::RenderListMarker::computePreferredLogicalWidths):
26204        * rendering/style/StyleCachedImage.cpp:
26205        (WebCore::StyleCachedImage::imageSize):
26206        (WebCore::StyleCachedImage::setContainerSizeForRenderer):
26207        (WebCore::StyleCachedImage::image):
26208        * rendering/style/StyleCachedImage.h:
26209        * rendering/style/StyleCachedImageSet.cpp:
26210        (WebCore::StyleCachedImageSet::imageSize):
26211        (WebCore::StyleCachedImageSet::setContainerSizeForRenderer):
26212        (WebCore::StyleCachedImageSet::image):
26213        * rendering/style/StyleCachedImageSet.h:
26214        * rendering/style/StyleGeneratedImage.cpp:
26215        (WebCore::StyleGeneratedImage::imageSize):
26216        (WebCore::StyleGeneratedImage::computeIntrinsicDimensions):
26217        (WebCore::StyleGeneratedImage::image):
26218        * rendering/style/StyleGeneratedImage.h:
26219        * rendering/style/StyleImage.h:
26220        * rendering/style/StylePendingImage.h:
26221        * svg/graphics/SVGImageCache.cpp:
26222        (WebCore::SVGImageCache::setContainerSizeForRenderer):
26223        * svg/graphics/SVGImageCache.h:
26224
262252014-04-02  Gergo Balogh  <gbalogh.u-szeged@partner.samsung.com>
26226
26227        Warning fix for RenderLayer.
26228        https://bugs.webkit.org/show_bug.cgi?id=131090
26229
26230        Reviewed by Csaba Osztrogonác.
26231
26232        * rendering/RenderLayer.cpp:
26233        (WebCore::RenderLayer::updateDescendantDependentFlags):
26234
262352014-04-02  Frédéric Wang  <fred.wang@free.fr>
26236
26237        Operator stretching: read the Open Type MATH table
26238        https://bugs.webkit.org/show_bug.cgi?id=130324
26239
26240        Reviewed by Chris Fleizach.
26241
26242        We parse and expose some data from the OpenType MATH table that will be
26243        be relevant for at least the MathML operator stretching (bug 130322):
26244        math constants, italic corrections and size variants / glyph assembly.
26245        This will be tested when the MathML code uses the data.
26246
26247        * WebCore.xcodeproj/project.pbxproj: Add OpenTypeTypes.h to the Mac build.
26248        * platform/graphics/opentype/OpenTypeMathData.cpp: We implement the low-level parsing of the MATH table.
26249        (WebCore::OpenType::MathItalicsCorrectionInfo::getItalicCorrection):
26250        (WebCore::OpenType::MathGlyphInfo::mathItalicsCorrectionInfo):
26251        (WebCore::OpenType::GlyphAssembly::getAssemblyParts):
26252        (WebCore::OpenType::MathGlyphConstruction::getSizeVariants):
26253        (WebCore::OpenType::MathGlyphConstruction::getAssemblyParts):
26254        (WebCore::OpenType::MathVariants::mathGlyphConstruction):
26255        (WebCore::OpenType::MATHTable::mathConstants):
26256        (WebCore::OpenType::MATHTable::mathGlyphInfo):
26257        (WebCore::OpenType::MATHTable::mathVariants):
26258        (WebCore::OpenTypeMathData::OpenTypeMathData): We load the MATH table.
26259        (WebCore::OpenTypeMathData::getMathConstant): We add a function to get values from the MathConstant subtable.
26260        (WebCore::OpenTypeMathData::getItalicCorrection): We add a function to get italic correction from the MathGlyphInfo subtable.
26261        (WebCore::OpenTypeMathData::getMathVariants): We add a function to get size variants / glyph assembly from the MathVariants subtable.
26262        * platform/graphics/opentype/OpenTypeMathData.h: We expose three new functions to get math data.
26263        * platform/graphics/opentype/OpenTypeTypes.h: We share the coverage tables that are common to vertical and math data.
26264        (WebCore::OpenType::TableWithCoverage::getCoverageIndex): We add a function to get the coverage index from a given glyph.
26265        * platform/graphics/opentype/OpenTypeVerticalData.cpp: We move the coverage tables to OpenTypeTypes.h.
26266
262672014-04-02  Ion Rosca  <rosca@adobe.com>
26268
26269        [CSS Blending] Compositing requirements for blending are not computed correctly
26270        https://bugs.webkit.org/show_bug.cgi?id=130664
26271
26272        Reviewed by Dean Jackson.
26273
26274        Tests: css3/compositing/blend-mode-accelerated-with-multiple-stacking-contexts.html
26275               css3/compositing/blend-mode-with-accelerated-sibling.html
26276
26277        Compositing requirements for blending: if a layer having blend mode
26278        other than normal is composited for any reason, its closest stacking
26279        context ancestor should be composited as well.
26280
26281        * rendering/RenderLayer.cpp:
26282        (WebCore::RenderLayer::RenderLayer):
26283        * rendering/RenderLayer.h: added a new field,
26284        m_hasUnisolatedCompositedBlendingDescendants, which is true if the layer
26285        has composited blending descendants not isolated by any stacking context child;
26286        added a new method: isolatesCompositedBlending(), which is true if we should
26287        accelerate that layer in order to perform isolation correctly.
26288
26289        * rendering/RenderLayerCompositor.cpp:
26290        (WebCore::CompositingState::CompositingState): m_subtreeHasBlending was renamed
26291        m_hasUnisolatedCompositedBlendingDescendants in order to be more self-explanatory.
26292        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
26293        computes the isolation requirements for composited blending by
26294        (re)setting RenderLayer::m_hasUnisolatedCompositedBlendingDescendants flag.
26295
26296        (WebCore::RenderLayerCompositor::reasonsForCompositing):
26297        fixed the reason of compositing: isolation instead of blending.
26298
26299        (WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason):
26300        * rendering/RenderLayerCompositor.h:
26301
263022014-04-02  Frédéric Wang  <fred.wang@free.fr>
26303
26304        Operator stretching: expose a math data API
26305        https://bugs.webkit.org/show_bug.cgi?id=130572
26306
26307        Reviewed by Chris Fleizach.
26308
26309        We expose a new SimpleFontData API to give access to the data from the
26310        OpenType MATH table. The class OpenTypeMathData will
26311        be implemented in bug 130324. On Darwin platform, we also implement the
26312        missing FontPlatformData::openTypeTable function which will be necessary
26313        to load the OpenType MATH table. The changes are intended to be used
26314        for MathML operator stretching (bug 130322) so tests are not added yet.
26315
26316        * CMakeLists.txt: add new OpenTypeMathData files.
26317        * WebCore.vcxproj/WebCore.vcxproj: ditto.
26318        * WebCore.vcxproj/WebCore.vcxproj.filters: ditto.
26319        * WebCore.xcodeproj/project.pbxproj: ditto.
26320        * platform/graphics/FontPlatformData.cpp:
26321        (WebCore::FontPlatformData::openTypeTable): We implement openTypeTable() on Darwin platform.
26322        * platform/graphics/FontPlatformData.h: We expose openTypeTable() on Darwin platform.
26323        * platform/graphics/SimpleFontData.cpp:
26324        (WebCore::SimpleFontData::SimpleFontData):
26325        (WebCore::SimpleFontData::mathData): Initialize and return the math data.
26326        * platform/graphics/SimpleFontData.h: We expose a mathData() function to access the MATH data.
26327        * platform/graphics/opentype/OpenTypeMathData.cpp: Added. This is a new class that will be used to parse the data from the OpenType MATH table.
26328        (WebCore::OpenTypeMathData::OpenTypeMathData):
26329        * platform/graphics/opentype/OpenTypeMathData.h: Added.
26330        (WebCore::OpenTypeMathData::create):
26331        (WebCore::OpenTypeMathData::hasMathData):
26332
263332014-04-01  Mihnea Ovidenie  <mihnea@adobe.com>
26334
26335        [CSSRegions] Displaying region's children in another region not supported
26336        https://bugs.webkit.org/show_bug.cgi?id=130735
26337
26338        Reviewed by David Hyatt.
26339
26340        With http://trac.webkit.org/changeset/166353, we disabled the possibility
26341        of collecting the region's children into another flow and displaying them
26342        in another region.
26343        I added a new test for this and also changed the plain ASSERT in Element dtor
26344        to ASSERT_WITH_SECURITY_IMPLICATION to better reflect the meaning of the assertion.
26345
26346        Test: fast/regions/region-child-not-flowed.html
26347
26348        * dom/Element.cpp:
26349        (WebCore::Element::~Element):
26350
263512014-04-01  Andrei Bucur  <abucur@adobe.com>
26352
26353        [CSS Regions] Simplify the RenderFlowThread state pusher
26354        https://bugs.webkit.org/show_bug.cgi?id=131035
26355
26356        Reviewed by David Hyatt.
26357
26358        The RenderFlowThread state pusher is desynchronized from the RenderView layout state pusher
26359        by one renderer. This patch fixes the anomaly by correctly ordering the push and pop operations
26360        between the two systems.
26361
26362        Tests: no functional change, no new tests.
26363
26364        * rendering/RenderFlowThread.cpp:
26365        (WebCore::RenderFlowThread::pushFlowThreadLayoutState):
26366        (WebCore::RenderFlowThread::popFlowThreadLayoutState):
26367        (WebCore::RenderFlowThread::offsetFromLogicalTopOfFirstRegion):
26368        * rendering/RenderView.cpp:
26369        (WebCore::RenderView::pushLayoutState):
26370        * rendering/RenderView.h:
26371
263722014-04-01  Beth Dakin  <bdakin@apple.com>
26373
26374        willReveal edge events should be hooked up for overflow:scroll
26375        https://bugs.webkit.org/show_bug.cgi?id=131071
26376        -and corresponding-
26377        <rdar://problem/16190392>
26378
26379        Reviewed by Sam Weinig.
26380
26381        This patch moves the will reveal logic from FrameView to Document so that it can 
26382        be shared for RenderLayers.
26383
26384        This is mostly just a moved function, but now the function takes an Element* that 
26385        represents the target of the event if the target is not the window.
26386        * dom/Document.cpp:
26387        (WebCore::Document::sendWillRevealEdgeEventsIfNeeded):
26388        * dom/Document.h:
26389
26390        No longer implement sendWillRevealEdgeEventsIfNeeded() on FrameView or 
26391        ScrollableArea at all. Call into Document instead.
26392        * page/FrameView.cpp:
26393        (WebCore::FrameView::scrollPositionChanged):
26394        (WebCore::FrameView::sendWillRevealEdgeEventsIfNeeded): Deleted.
26395        * page/FrameView.h:
26396        * platform/ScrollableArea.h:
26397        (WebCore::ScrollableArea::sendWillRevealEdgeEventsIfNeeded): Deleted.
26398
26399        Call sendWillRevealEdgeEventsIfNeeded() after sending scroll events. 
26400        * rendering/RenderLayer.cpp:
26401        (WebCore::RenderLayer::scrollTo):
26402
264032014-04-01  Jon Honeycutt  <jhoneycutt@apple.com>
26404
26405        Crash in WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients
26406
26407        <https://bugs.webkit.org/show_bug.cgi?id=121887>
26408        <rdar://problem/15073043>
26409
26410        Reviewed by Dean Jackson.
26411
26412        Test: svg/filters/first-letter-crash.html
26413
26414        * rendering/FilterEffectRenderer.cpp:
26415        (WebCore::FilterEffectRenderer::buildReferenceFilter):
26416        Added a null check to prevent crashes for anonymous RenderObjects.
26417
26418        * rendering/RenderLayer.cpp:
26419        (WebCore::RenderLayer::filterNeedsRepaint):
26420        Get the enclosing element, if there is one, and recalculate its style.
26421        We use the enclosing element so that we recalculate style for the
26422        ancestor of an anonymous RenderElement.
26423        (WebCore::RenderLayer::enclosingElement):
26424        Remove an assertion; we may now reach this condition if loading a
26425        cached SVG document results in RenderLayer::filterNeedsRepaint() being
26426        called before the object has been inserted into the render tree.
26427
26428        * rendering/RenderLayerFilterInfo.cpp:
26429        (WebCore::RenderLayer::FilterInfo::notifyFinished):
26430        Tell the RenderLayer that the filter needs repainting.
26431        (WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients):
26432        Get the Element from the renderer rather than asking the renderer's
26433        Element, which will be null for anonymous RenderObjects.
26434
26435        * rendering/RenderLayerFilterInfo.h:
26436        Removed declaration for the old workaround function, layerElement().
26437
264382014-04-01  Ryuan Choi  <ryuan.choi@samsung.com>
26439
26440        Build break when disabled VIDEO since r166261
26441        https://bugs.webkit.org/show_bug.cgi?id=131087
26442
26443        Reviewed by Gyuyoung Kim.
26444
26445        * testing/Internals.cpp: Added ENABLE(VIDEO) guards
26446        (WebCore::Internals::simulateSystemSleep):
26447        (WebCore::Internals::simulateSystemWake):
26448
264492014-04-01  Timothy Hatcher  <timothy@apple.com>
26450
26451        Remove HeapProfiler from the Web Inspector protocol.
26452
26453        https://bugs.webkit.org/show_bug.cgi?id=131070
26454
26455        Reviewed by Joseph Pecoraro.
26456
26457        * CMakeLists.txt:
26458        * DerivedSources.make:
26459        * WebCore.vcxproj/WebCore.vcxproj:
26460        * WebCore.vcxproj/WebCore.vcxproj.filters:
26461        * WebCore.xcodeproj/project.pbxproj:
26462        * bindings/js/ScriptHeapSnapshot.h: Removed.
26463        * bindings/js/ScriptProfiler.h:
26464        (WebCore::ScriptProfiler::takeHeapSnapshot): Deleted.
26465        (WebCore::ScriptProfiler::isSampling): Deleted.
26466        (WebCore::ScriptProfiler::hasHeapProfiler): Deleted.
26467        * inspector/InspectorAllInOne.cpp:
26468        * inspector/InspectorController.cpp:
26469        (WebCore::InspectorController::InspectorController):
26470        * inspector/InspectorHeapProfilerAgent.cpp: Removed.
26471        * inspector/InspectorHeapProfilerAgent.h: Removed.
26472        * inspector/InspectorInstrumentation.cpp:
26473        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
26474        * inspector/InspectorProfilerAgent.cpp:
26475        (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
26476        (WebCore::InspectorProfilerAgent::getProfileHeaders):
26477        (WebCore::InspectorProfilerAgent::removeProfile):
26478        (WebCore::InspectorProfilerAgent::resetState): The CommandLineAPIHost call to
26479        clear inspected objects should have not been here. It was only needed by the
26480        HeapProfilerAgent.
26481        (WebCore::InspectorProfilerAgent::resetFrontendProfiles):
26482        (WebCore::InspectorProfilerAgent::collectGarbage): Deleted.
26483        (WebCore::InspectorProfilerAgent::createSnapshotHeader): Deleted.
26484        (WebCore::InspectorProfilerAgent::isSampling): Deleted.
26485        (WebCore::InspectorProfilerAgent::hasHeapProfiler): Deleted.
26486        (WebCore::InspectorProfilerAgent::getHeapSnapshot): Deleted.
26487        (WebCore::InspectorProfilerAgent::takeHeapSnapshot): Deleted.
26488        (WebCore::InspectorProfilerAgent::getObjectByHeapObjectId): Deleted.
26489        (WebCore::InspectorProfilerAgent::getHeapObjectId): Deleted.
26490        * inspector/InspectorProfilerAgent.h:
26491        * inspector/InstrumentingAgents.h:
26492        (WebCore::InstrumentingAgents::inspectorHeapProfilerAgent): Deleted.
26493        (WebCore::InstrumentingAgents::setInspectorHeapProfilerAgent): Deleted.
26494        * inspector/WebConsoleAgent.cpp:
26495        (WebCore::WebConsoleAgent::addInspectedHeapObject): Deleted.
26496        * inspector/WebConsoleAgent.h:
26497        * inspector/WorkerInspectorController.cpp:
26498        (WebCore::WorkerInspectorController::WorkerInspectorController):
26499        * inspector/protocol/HeapProfiler.json: Removed.
26500        * inspector/protocol/Profiler.json:
26501
265022014-04-01  Zoltan Horvath  <zoltan@webkit.org>
26503
26504        [CSS Exclusions] Remove exclusions parsing support
26505        https://bugs.webkit.org/show_bug.cgi?id=131046
26506
26507        Reviewed by David Hyatt.
26508
26509        CSS Exclusions specification [1] needs some evolution before the actual implementation happens.
26510        We have only the parsing code in WebKit for -webkit-wrap-flow and -webkit-wrap-through.
26511        This patch removes the code from the trunk for now, it doesn't make sense to keep it around.
26512
26513        [1] http://www.w3.org/TR/css3-exclusions/
26514
26515        Removed existing parsing tests.
26516
26517        * css/CSSComputedStyleDeclaration.cpp:
26518        (WebCore::ComputedStyleExtractor::propertyValue):
26519        * css/CSSParser.cpp:
26520        (WebCore::isValidKeywordPropertyAndValue):
26521        (WebCore::isKeywordPropertyID):
26522        (WebCore::CSSParser::parseValue):
26523        * css/CSSPrimitiveValueMappings.h:
26524        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Deleted.
26525        (WebCore::CSSPrimitiveValue::operator WrapFlow): Deleted.
26526        (WebCore::CSSPrimitiveValue::operator WrapThrough): Deleted.
26527        * css/CSSPropertyNames.in:
26528        * css/CSSValueKeywords.in:
26529        * css/DeprecatedStyleBuilder.cpp:
26530        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
26531        * css/StyleResolver.cpp:
26532        (WebCore::StyleResolver::applyProperty):
26533        * rendering/style/RenderStyle.cpp:
26534        (WebCore::RenderStyle::changeRequiresLayout):
26535        * rendering/style/RenderStyle.h:
26536        * rendering/style/RenderStyleConstants.h:
26537        * rendering/style/StyleRareNonInheritedData.cpp:
26538        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
26539        (WebCore::StyleRareNonInheritedData::operator==):
26540        * rendering/style/StyleRareNonInheritedData.h:
26541
265422014-04-01  Timothy Hatcher  <timothy@apple.com>
26543
26544        Remove the rest of the old Canvas inspection support.
26545
26546        https://bugs.webkit.org/show_bug.cgi?id=131066
26547
26548        Reviewed by Joseph Pecoraro.
26549
26550        * CMakeLists.txt: Removed Canvas.json.
26551        * DerivedSources.make: Ditto.
26552        * inspector/InjectedScriptCanvasModuleSource.js: Removed.
26553        * inspector/protocol/Canvas.json: Removed.
26554
265552014-04-01  Alexey Proskuryakov  <ap@apple.com>
26556
26557        Eliminate HTMLFormElement::m_shouldSubmit
26558        https://bugs.webkit.org/show_bug.cgi?id=131055
26559
26560        Reviewed by Tim Horton.
26561
26562        m_shouldSubmit was used for two purposes:
26563        - as a return value in a function whose return value is ignored by all callers;
26564        - to make a decision that's local to a function.
26565
26566        There is no need for it to be an instance variable.
26567
26568        * html/HTMLFormElement.cpp:
26569        (WebCore::HTMLFormElement::HTMLFormElement):
26570        (WebCore::HTMLFormElement::prepareForSubmission):
26571        (WebCore::HTMLFormElement::submit):
26572        * html/HTMLFormElement.h:
26573
265742014-04-01  Benjamin Poulain  <bpoulain@apple.com>
26575
26576        Remove a couple of useless static strings
26577        https://bugs.webkit.org/show_bug.cgi?id=131003
26578
26579        Reviewed by David Kilzer.
26580
26581        There is zero value in keeping those strings alive.
26582
26583        * css/StyleProperties.cpp:
26584        (WebCore::isInitialOrInherit):
26585
265862014-04-01  Myles C. Maxfield  <mmaxfield@apple.com>
26587
26588        svg/text/text-overflow-ellipsis-svgfont-kerning-ligatures.html and svg/css/font-face-crash.html frequently assert in ComplexTextController::offsetForPosition
26589        https://bugs.webkit.org/show_bug.cgi?id=119747
26590
26591        Reviewed by Simon Fraser.
26592
26593        Even though kerning and ligatures currently don't work with the
26594        simple text path, messing those up is better than creating null
26595        CTRun and CTLine objects.
26596
26597        Rather than calling the badly-named renderingContext() function on TextRun objects
26598        to determine if they are drawn with an SVG font, this patch creates a wrapper function
26599        with a better name and uses that instead.
26600
26601        Test: svg/text/svg-font-hittest.html
26602
26603        * platform/graphics/Font.cpp:
26604        (WebCore::isDrawnWithSVGFont): Wrapper around renderingContext()
26605        (WebCore::Font::drawText): Use wrapper function
26606        (WebCore::Font::drawEmphasisMarks): Use wrapper function
26607        (WebCore::Font::width): Use wrapper function
26608        (WebCore::Font::selectionRectForText): Use wrapper function
26609        (WebCore::Font::offsetForPosition): If we are using an SVG font, use the simple path
26610        instead of the complex one
26611        (WebCore::Font::codePath): Use wrapper function
26612        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
26613        (WebCore::FontPlatformData::ctFont):
26614
266152014-04-01  Daniel Bates  <dabates@apple.com>
26616
26617        RenderQuote must destroy remaining text renderer before first letter renderer
26618        https://bugs.webkit.org/show_bug.cgi?id=78023
26619        <rdar://problem/10830009>
26620
26621        Reviewed by Brent Fulgham.
26622
26623        Merged from Blink (patch by Abhishek Arya):
26624        https://src.chromium.org/viewvc/blink?view=rev&revision=151270
26625
26626        Following the fix for <https://bugs.webkit.org/show_bug.cgi?id=114586>, a
26627        RenderQuote may have child render objects for the first letter of its text
26628        and everything following the first letter so as to support the CSS first-
26629        letter property. The latter renderer is responsible for destroying the former
26630        on destruction. It's sufficient to reverse the destruction of the children of
26631        RenderQuote to ensure that we destroy the remaining text renderer before we
26632        destroy the first letter renderer.
26633
26634        Test: fast/css-generated-content/quote-first-letter-crash.html
26635
26636        * rendering/RenderQuote.cpp:
26637        (WebCore::RenderQuote::updateText):
26638
266392014-04-01  David Kilzer  <ddkilzer@apple.com>
26640
26641        Do not allow HTTP refresh headers to refresh to javascript: URLs
26642        <http://webkit.org/b/119051>
26643        <rdar://problem/14536453>
26644
26645        Reviewed by Alexey Proskuryakov.
26646
26647        Merged from Blink (patch by tsepez@chromium.org):
26648        https://src.chromium.org/viewvc/blink?revision=153912&view=revision
26649        http://crbug.com/258151
26650
26651            This behaviour has been standard in IE since IE7.  This makes us both
26652            more compatible and less vulnerable to XSS.
26653
26654        Tests: http/tests/security/no-javascript-location-percent-escaped.html
26655               http/tests/security/no-javascript-location.html
26656               http/tests/security/no-javascript-refresh-percent-escaped.php
26657               http/tests/security/no-javascript-refresh-spaces.php
26658               http/tests/security/no-javascript-refresh-static-percent-escaped.html
26659               http/tests/security/no-javascript-refresh-static-spaces.html
26660               http/tests/security/no-javascript-refresh-static.html
26661               http/tests/security/no-javascript-refresh.php
26662
26663        * dom/Document.cpp:
26664        (WebCore::Document::processHttpEquiv):
26665        * loader/FrameLoader.cpp:
26666        (WebCore::FrameLoader::receivedFirstData):
26667        - Do not fire meta http refresh for a javascript: URL protocol.
26668
266692014-04-01  Pratik Solanki  <psolanki@apple.com>
26670
26671        Unreviewed build fix. Remove duplicate file entries.
26672
26673        * WebCore.xcodeproj/project.pbxproj:
26674
266752014-03-31  Simon Fraser  <simon.fraser@apple.com>
26676
26677        Enable WEB_TIMING on Mac and iOS
26678        https://bugs.webkit.org/show_bug.cgi?id=128064
26679
26680        Reviewed by Sam Weinig, Brent Fulgham.
26681
26682        Enable WEB_TIMING. Add PerformanceTiming.cpp and JSPerformanceTiming.cpp
26683        to the project.
26684        
26685        * Configurations/FeatureDefines.xcconfig:
26686        * WebCore.xcodeproj/project.pbxproj:
26687
266882014-04-01  James Craig  <jcraig@apple.com>
26689
26690        AX: AccessibilityRenderObject::ariaLiveRegionAtomic() should default to true if
26691        roleValue is ApplicationAlertRole || ApplicationStatusRole
26692        https://bugs.webkit.org/show_bug.cgi?id=130907
26693
26694        Reviewed by Chris Fleizach.
26695
26696        Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion.html:
26697               platform/mac/accessibility/aria-liveregions-attributes.html:
26698
26699        Updated AccessibilityRenderObject::ariaLiveRegionAtomic() to match ARIA spec.
26700
26701        * accessibility/AccessibilityRenderObject.cpp:
26702        (WebCore::AccessibilityRenderObject::ariaLiveRegionAtomic):
26703
267042014-04-01  Zan Dobersek  <zdobersek@igalia.com>
26705
26706        Unreviewed. Fixing debug builds after r166586.
26707
26708        * svg/SVGElement.cpp:
26709        (WebCore::SVGElement::addEventListener): Fix the ASSERT.
26710        (WebCore::SVGElement::removeEventListener): Ditto.
26711
267122014-04-01  Zan Dobersek  <zdobersek@igalia.com>
26713
26714        Prevent unnecessary copies in compareEqual template
26715        https://bugs.webkit.org/show_bug.cgi?id=131014
26716
26717        Reviewed by Antti Koivisto.
26718
26719        * rendering/style/RenderStyle.h:
26720        (compareEqual): Casting the second parameter to a non-const, non-reference type
26721        causes an extra copy of that object. Casting to the const reference type of the
26722        first parameter avoids that.
26723
267242014-04-01  Zan Dobersek  <zdobersek@igalia.com>
26725
26726        Avoid unnecessary HashSet copies when calling collectInstancesForSVGElement
26727        https://bugs.webkit.org/show_bug.cgi?id=131020
26728
26729        Reviewed by Andreas Kling.
26730
26731        Remove collectInstancesForSVGElement() to avoid HashSet copies when assigning a const
26732        HashSet reference to a non-const HashSet reference. Instead, range-based for-loops are
26733        deployed to iterate directly over the const reference to HashSet that's returned by
26734        SVGElement::instancesForElement(). SVGElement::containingShadowRoot() return value
26735        is checked to see if the iteration should be performed in the first place, preserving
26736        the behavior of collectInstancesForSVGElement().
26737
26738        * svg/SVGElement.cpp:
26739        (WebCore::SVGElement::addEventListener):
26740        (WebCore::SVGElement::removeEventListener):
26741        (WebCore::collectInstancesForSVGElement): Deleted.
26742
267432014-04-01  Zan Dobersek  <zdobersek@igalia.com>
26744
26745        Move the attributes HashMap out of the parseAttributes function
26746        https://bugs.webkit.org/show_bug.cgi?id=131019
26747
26748        Reviewed by Andreas Kling.
26749
26750        * xml/parser/XMLDocumentParserLibxml2.cpp:
26751        (WebCore::parseAttributes): Avoid copying the HashMap object that's being returned by
26752        converting it to an xvalue through using std::move() in the return statement.
26753
267542014-04-01  Zalan Bujtas  <zalan@apple.com>
26755
26756        Subpixel rendering: Transition class Image (and its dependencies) from int to float to enable subpixel positioned/sized images.
26757        https://bugs.webkit.org/show_bug.cgi?id=130643
26758
26759        Reviewed by Simon Fraser.
26760
26761        This is in preparation to support subpixel positioned/sized background images. While 1x bitmap images can't take
26762        subpixel sizing on hidpi resolutions, both generated and hidpi images can.
26763        This patch does not change Image behavior in general as both position and size are still snapped to integral values.  
26764
26765        No change in behavior.
26766
26767        * WebCore.exp.in:
26768        * css/CSSCrossfadeValue.cpp:
26769        (WebCore::CSSCrossfadeValue::fixedSize):
26770        * css/CSSFilterImageValue.cpp:
26771        (WebCore::CSSFilterImageValue::fixedSize):
26772        * html/canvas/WebGLRenderingContext.cpp:
26773        (WebCore::WebGLRenderingContext::drawImageIntoBuffer):
26774        * loader/cache/CachedImage.cpp:
26775        (WebCore::CachedImage::imageSizeForRenderer):
26776        * page/EventHandler.cpp:
26777        (WebCore::EventHandler::selectCursor):
26778        * platform/Cursor.cpp:
26779        (WebCore::determineHotSpot):
26780        * platform/graphics/BitmapImage.cpp:
26781        (WebCore::BitmapImage::size):
26782        (WebCore::BitmapImage::currentFrameSize):
26783        * platform/graphics/BitmapImage.h:
26784        * platform/graphics/CrossfadeGeneratedImage.cpp:
26785        (WebCore::CrossfadeGeneratedImage::CrossfadeGeneratedImage):
26786        (WebCore::drawCrossfadeSubimage):
26787        (WebCore::CrossfadeGeneratedImage::drawCrossfade):
26788        * platform/graphics/CrossfadeGeneratedImage.h:
26789        * platform/graphics/GeneratedImage.h:
26790        * platform/graphics/Gradient.cpp:
26791        (WebCore::Gradient::adjustParametersForTiledDrawing):
26792        * platform/graphics/Gradient.h:
26793        * platform/graphics/GradientImage.cpp:
26794        (WebCore::GradientImage::drawPattern):
26795        * platform/graphics/GradientImage.h:
26796        * platform/graphics/GraphicsContext.cpp:
26797        (WebCore::GraphicsContext::createCompatibleBuffer):
26798        * platform/graphics/GraphicsContext.h:
26799        * platform/graphics/Image.cpp:
26800        (WebCore::Image::adjustSourceRectForDownSampling):
26801        * platform/graphics/Image.h:
26802        (WebCore::Image::setContainerSize):
26803        (WebCore::Image::rect):
26804        (WebCore::Image::width):
26805        (WebCore::Image::height):
26806        * platform/graphics/ImageBuffer.cpp:
26807        (WebCore::ImageBuffer::createCompatibleBuffer):
26808        * platform/graphics/ImageBuffer.h:
26809        (WebCore::ImageBuffer::create):
26810        * platform/graphics/IntPoint.cpp:
26811        (WebCore::IntPoint::IntPoint):
26812        * platform/graphics/IntPoint.h:
26813        * platform/graphics/IntSize.cpp:
26814        (WebCore::IntSize::IntSize):
26815        * platform/graphics/IntSize.h:
26816        * platform/graphics/cairo/ImageBufferCairo.cpp:
26817        (WebCore::ImageBuffer::ImageBuffer):
26818        * platform/graphics/cairo/ImageCairo.cpp:
26819        (WebCore::Image::drawPattern):
26820        * platform/graphics/cg/ImageBufferCG.cpp:
26821        (WebCore::ImageBuffer::ImageBuffer):
26822        * platform/graphics/cg/ImageBufferDataCG.cpp:
26823        * platform/graphics/cg/PDFDocumentImage.cpp:
26824        (WebCore::PDFDocumentImage::size):
26825        (WebCore::PDFDocumentImage::updateCachedImageIfNeeded):
26826        (WebCore::applyRotationForPainting):
26827        * platform/graphics/cg/PDFDocumentImage.h:
26828        * platform/graphics/cg/PatternCG.cpp:
26829        (WebCore::Pattern::createPlatformPattern):
26830        * platform/graphics/mac/GraphicsContextMac.mm:
26831        * platform/graphics/mac/IconMac.mm:
26832        * platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
26833        (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
26834        * platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:
26835        (WebCore::CoordinatedImageBacking::update):
26836        * platform/graphics/win/ImageCGWin.cpp:
26837        (WebCore::BitmapImage::getHBITMAPOfSize):
26838        (WebCore::BitmapImage::drawFrameMatchingSourceSize):
26839        * platform/graphics/win/ImageCairoWin.cpp:
26840        (WebCore::BitmapImage::getHBITMAPOfSize):
26841        (WebCore::BitmapImage::drawFrameMatchingSourceSize):
26842        * platform/mac/DragImageMac.mm:
26843        (WebCore::createDragImageFromImage):
26844        * platform/win/DragImageCGWin.cpp:
26845        (WebCore::createDragImageFromImage):
26846        * platform/win/PasteboardWin.cpp:
26847        (WebCore::Pasteboard::writeImage):
26848        * rendering/RenderImage.cpp:
26849        (WebCore::RenderImage::imageSizeForError):
26850        (WebCore::RenderImage::paintReplaced):
26851        * rendering/RenderLayer.cpp:
26852        (WebCore::RenderLayer::drawPlatformResizerImage):
26853        * svg/graphics/SVGImage.cpp:
26854        (WebCore::SVGImage::setContainerSize):
26855        * svg/graphics/SVGImage.h:
26856        * svg/graphics/SVGImageCache.cpp:
26857        (WebCore::SVGImageCache::imageSizeForRenderer):
26858        * svg/graphics/SVGImageCache.h:
26859        * svg/graphics/SVGImageForContainer.cpp:
26860        (WebCore::SVGImageForContainer::size):
26861        * svg/graphics/SVGImageForContainer.h:
26862        * svg/graphics/filters/SVGFEImage.cpp:
26863        (WebCore::FEImage::externalRepresentation):
26864        * testing/Internals.cpp:
26865        (WebCore::Internals::getCurrentCursorInfo):
26866
268672014-04-01  Ryuan Choi  <ryuan.choi@samsung.com>
26868
26869        Unreviewed build fix when disabled ACCESSIBILITY
26870
26871        * accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:
26872        Separated macros not to check ATK version when disabled ACCESSIBILITY
26873
268742014-04-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
26875
26876        [CMake][EFL] Enable CSS JIT
26877        https://bugs.webkit.org/show_bug.cgi?id=131010
26878
26879        Reviewed by Benjamin Poulain.
26880
26881        Add an inclusion path for enabling CSS JIT on EFL and GTK ports.
26882        This patch only enables it for EFL port.
26883
26884        * CMakeLists.txt:
26885
268862014-04-01  Martin Robinson  <mrobinson@igalia.com>
26887
26888        [GTK] Readonly attributes installed as readwrite in GObject DOM bindings
26889        https://bugs.webkit.org/show_bug.cgi?id=130978
26890
26891        Reviewed by Carlos Garcia Campos.
26892
26893        Unify how we decide if an attribute is readable or writeable and improve the code.
26894        This results in some attributes now being marked as read-only which didn't have
26895        corresponding case statements in the set_property switch statements and also correctly
26896        installs set_property support for some more POD types.
26897
26898        * bindings/scripts/CodeGeneratorGObject.pm:
26899        (IsPropertyReadable): Added this helper to simplify deciding if an attribute is readable.
26900        (IsPropertyWriteable): Added this helper to simplify deciding if an attribute is writeable. Also
26901        update the list of types to reflect the full list of types we can generate setters for.
26902        (GenerateProperty): Use the IsPropertyWriteable helper instead of checking whether the attribute is read-only.
26903        Also fix generation of the blurb by using $mutableString instead of $mutableStringconst which isn't used.
26904        (GenerateProperties): Use grep and the new helpers to simplify the code.
26905        (GetReadableProperties): Deleted.
26906        (GetWriteableProperties): Deleted.
26907        * bindings/scripts/test/GObject: Update results
26908
269092014-03-31  Ryuan Choi  <ryuan.choi@samsung.com>
26910
26911        [EFL][WK2] Extract the control of page background out of color_set
26912        https://bugs.webkit.org/show_bug.cgi?id=127539
26913
26914        Reviewed by Gyuyoung Kim.
26915
26916        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
26917        Added m_viewBackgroundColor to clear when m_setDrawsBackground is false.
26918        (WebCore::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
26919        (WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
26920        (WebCore::CoordinatedGraphicsScene::paintToGraphicsContext):
26921        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
26922        (WebCore::CoordinatedGraphicsScene::setViewBackgroundColor):
26923        (WebCore::CoordinatedGraphicsScene::viewBackgroundColor):
26924        * rendering/RenderLayerBacking.cpp:
26925        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
26926        Added EFL guard not to set opaque as a default for MainFrameRenderViewLayer.
26927        * rendering/RenderLayerCompositor.cpp:
26928        (WebCore::RenderLayerCompositor::ensureRootLayer):
26929        Added EFL guard to apply page scale on RenderView like IOS.
26930
269312014-03-31  Byungseon Shin  <sun.shin@lge.com>
26932
26933        [WebGL][OpenGLES] Enable MSAA support for WebGL Canvas
26934        https://bugs.webkit.org/show_bug.cgi?id=130955
26935
26936        Reviewed by Dean Jackson.
26937
26938        To avoid aliasing issues when we render content to WebGL canvas,
26939         we need to implement MSAA support.
26940        - Imagination OpenGLES GPU Driver already support MSAA, so we
26941         need a separate code path to enable it.
26942
26943        * platform/graphics/Extensions3D.h:
26944        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
26945        (WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon):
26946        * platform/graphics/opengl/Extensions3DOpenGLCommon.h:
26947        (WebCore::Extensions3DOpenGLCommon::isImagination):
26948        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
26949        (WebCore::GraphicsContext3D::reshapeFBOs):
26950
269512014-03-31  Alexey Proskuryakov  <ap@apple.com>
26952
26953        Crashes in PageConsole::addMessage
26954        https://bugs.webkit.org/show_bug.cgi?id=130991
26955        <rdar://problem/14795232>
26956
26957        Reviewed by Geoffrey Garen.
26958
26959        Test: http/tests/misc/detached-frame-console.html
26960
26961        * page/DOMWindow.cpp: (WebCore::DOMWindow::printErrorMessage): Added a null check.
26962        It's legitimate for this to be called for a window that is not currently displayed
26963        in a frame.
26964
269652014-03-31  Simon Fraser  <simon.fraser@apple.com>
26966
26967        [UI-side compositing] Proxy animations to the UI process
26968        https://bugs.webkit.org/show_bug.cgi?id=130946
26969
26970        Reviewed by Tim Horton.
26971        
26972        To proxy CA animations, make PlatformCAAnimation a pure virtual base class
26973        and subclass for Mac, Windows, and Remote (just like PlatformCALayer).
26974        
26975        Add coding support for TimingFunctions.
26976        
26977        Do some minor #include tidyup.
26978        
26979        Minor refactor in GraphicsLayerCA to share some animations code.
26980
26981        * WebCore.exp.in:
26982        * WebCore.xcodeproj/project.pbxproj:
26983        * platform/animation/TimingFunction.h: Add setters need for encode/decode.
26984        (WebCore::CubicBezierTimingFunction::setValues):
26985        (WebCore::CubicBezierTimingFunction::setTimingFunctionPreset):
26986        (WebCore::StepsTimingFunction::create):
26987        (WebCore::StepsTimingFunction::setNumberOfSteps):
26988        (WebCore::StepsTimingFunction::setStepAtStart):
26989        * platform/graphics/ca/GraphicsLayerCA.cpp:
26990        (WebCore::GraphicsLayerCA::createPlatformCAAnimation):
26991        (WebCore::GraphicsLayerCA::animationCanBeAccelerated): Minor refactor so we can share
26992        code with GraphicsLayerCARemote.
26993        (WebCore::GraphicsLayerCA::addAnimation):
26994        (WebCore::GraphicsLayerCA::createBasicAnimation):
26995        (WebCore::PassRefPtr<PlatformCAAnimation>GraphicsLayerCA::createKeyframeAnimation):
26996        * platform/graphics/ca/GraphicsLayerCA.h:
26997        * platform/graphics/ca/PlatformCAAnimation.h:
26998        (WebCore::PlatformCAAnimation::~PlatformCAAnimation):
26999        (WebCore::PlatformCAAnimation::isPlatformCAAnimationMac):
27000        (WebCore::PlatformCAAnimation::isPlatformCAAnimationWin):
27001        (WebCore::PlatformCAAnimation::isPlatformCAAnimationRemote):
27002        (WebCore::PlatformCAAnimation::PlatformCAAnimation):
27003        (WebCore::PlatformCAAnimation::setType):
27004        * platform/graphics/ca/PlatformCALayer.h:
27005        * platform/graphics/ca/mac/PlatformCAAnimationMac.h: Added.
27006        * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
27007        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
27008        (PlatformCALayerMac::addAnimationForKey):
27009        (PlatformCALayerMac::animationForKey):
27010        * platform/graphics/ca/mac/TileController.mm:
27011        * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
27012        * platform/graphics/ca/win/PlatformCAAnimationWin.h: Added.
27013
270142014-03-31  Benjamin Poulain  <benjamin@webkit.org>
27015
27016        CSS JIT: compile the first-child pseudo class
27017        https://bugs.webkit.org/show_bug.cgi?id=130954
27018
27019        Reviewed by Andreas Kling.
27020
27021        * css/ElementRuleCollector.cpp:
27022        (WebCore::ElementRuleCollector::collectMatchingRules):
27023        The compiler use the context's style directly when resolving style. An error introduced
27024        in the rule collector would cause a crash in the compiled code which would be hard to debug.
27025        Add an assertion early in the stack to catch errors where it is easier to debug them.
27026
27027        * css/StyleResolver.cpp:
27028        (WebCore::StyleResolver::State::initForStyleResolve):
27029        * cssjit/SelectorCompiler.cpp:
27030        (WebCore::SelectorCompiler::addPseudoType):
27031        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
27032        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToPreviousAdjacentElement):
27033        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToPreviousAdjacent):
27034        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
27035        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
27036        Refactor those to be able to reuse the code getting a sibling element preceding the current element.
27037
27038        (WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNotResolvingStyle):
27039        Extract the code checking the current mode from SelectorCodeGenerator::markParentElementIfResolvingStyle()
27040        in a separate function. This will be useful for all the pseudo class with marking.
27041
27042        (WebCore::SelectorCompiler::SelectorCodeGenerator::markParentElementIfResolvingStyle):
27043        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
27044        (WebCore::SelectorCompiler::setFirstChildState):
27045        This is the slow path for when the first-child pseudo class is on a fragment that is not
27046        the rightmost.
27047        The reason to use a slow path is accessing renderStyle() is not trivial and this case isn't not
27048        as common. We should improve this later.
27049
27050        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFirstChild):
27051        This is just implementing the test for first-child plus the tree marking. Nothing fancy,
27052        this is basically the same thing as SelectorChecker.
27053
27054        * dom/Element.cpp:
27055        (WebCore::Element::setChildrenAffectedByFirstChildRules):
27056        * dom/Element.h:
27057        C++ fallback to set the flag, to be improved later with the other flags.
27058
27059        * rendering/style/RenderStyle.h:
27060        I accidentaly put noninheritedFlagsMemoryOffset() as private in the RenderStyle refactoring.
27061
27062        Also update the flags accessor to make them easier to work with from the compiler. In particular,
27063        setFirstChildStateFlags() sets both isUnique and firstChild. Currently the JIT does not need to access
27064        the value so individual flags are made private.
27065
270662014-03-31  Dean Jackson  <dino@apple.com>
27067
27068        Remove WEB_ANIMATIONS
27069        https://bugs.webkit.org/show_bug.cgi?id=130989
27070
27071        Reviewed by Simon Fraser.
27072
27073        Remove this feature flag until we plan to implement.
27074
27075        * Configurations/FeatureDefines.xcconfig:
27076
270772014-03-31  Simon Fraser  <simon.fraser@apple.com>
27078
27079        Fix iOS build.
27080
27081        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
27082        (WebCore::ScrollingTreeScrollingNodeIOS::updateLayersAfterDelegatedScroll):
27083
270842014-03-31  Pratik Solanki  <psolanki@apple.com>
27085
27086        Unreviewed. iOS build fix after r166532. Add missing comma.
27087
27088        * dom/DocumentMarker.h:
27089
270902014-03-31  Brady Eidson  <beidson@apple.com>
27091
27092        Add variant of phone number parsing that use DocumentMarker in the current selection
27093        <rdar://problem/16379566> and https://bugs.webkit.org/show_bug.cgi?id=130917
27094
27095        Reviewed by Darin Adler.
27096
27097        * dom/DocumentMarker.h:
27098        (WebCore::DocumentMarker::AllMarkers::AllMarkers): Add a new TelephoneNumber document marker type.
27099
27100        * editing/Editor.cpp:
27101        (WebCore::Editor::respondToChangedSelection):
27102        (WebCore::Editor::scanSelectionForTelephoneNumbers): TextIterate over the selected range looking for numbers.
27103        (WebCore::Editor::scanRangeForTelephoneNumbers): Scan the given range for a telephone number,
27104          adding the DocumentMarker to any that are found.
27105        (WebCore::Editor::clearDataDetectedTelephoneNumbers):
27106        * editing/Editor.h:
27107
27108        * html/parser/HTMLTreeBuilder.cpp:
27109        (WebCore::HTMLTreeBuilder::processCharacterBufferForInBody): Only linkify on iOS.
27110
27111        * rendering/InlineTextBox.cpp:
27112        (WebCore::InlineTextBox::paintTelephoneNumberMarker): Placeholder UI while the feature is developed.
27113        (WebCore::InlineTextBox::paintDocumentMarkers):
27114        * rendering/InlineTextBox.h:
27115
27116        * testing/Internals.cpp:
27117        (WebCore::markerTypesFrom):
27118
271192014-03-31  Simon Fraser  <simon.fraser@apple.com>
27120
27121        [iOS WK2] Hook up scroll events for accelerated overflow:scroll
27122        https://bugs.webkit.org/show_bug.cgi?id=130976
27123
27124        Reviewed by Tim Horton.
27125
27126        When an accelerated overflow:scroll is scrolled in the UI process,
27127        tell the WebProcess that the scroll happened to update RenderLayer
27128        state and fire events.
27129        
27130        In the WebProcess, RemoteScrollingCoordinator gets a message from the
27131        UI process and calls AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll().
27132        Fixed that function to handle scrolling nodes other than the root, which
27133        required storing a map of ScrollingNodeID->RenderLayer* on RenderLayerCompositor,
27134        accessible through FrameView::scrollableAreaForScrollLayerID().
27135
27136        * WebCore.exp.in:
27137        * page/FrameView.cpp:
27138        (WebCore::FrameView::scrollableAreaForScrollLayerID):
27139        * page/FrameView.h:
27140        * page/scrolling/AsyncScrollingCoordinator.cpp:
27141        (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll): Handle
27142        overflow as well as main frame scrolling nodes.
27143        * page/scrolling/ScrollingTree.cpp:
27144        (WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling): Use isScrollingNode().
27145        (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling): When an overflow
27146        scroll node was scrolled externally, we have to update layers in decendant nodes,
27147        and then call scrollingTreeNodeDidScroll() which tells the ScrollingCoordinator that
27148        we scrolled.
27149        * page/scrolling/ScrollingTree.h: Try to reduce confusion between the roles played
27150        by these various functions, some of which happen in the UI process with UI-side
27151        compositing.
27152        * page/scrolling/ScrollingTreeScrollingNode.h:
27153        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h: Need some functions to be
27154        callable by subclasses.
27155        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
27156        (WebCore::ScrollingTreeScrollingNodeIOS::updateLayersAfterDelegatedScroll):
27157        * rendering/RenderLayerCompositor.cpp:
27158        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer): Add
27159        scrolling layers to the m_scrollingNodeToLayerMap
27160        (WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer): Remove
27161        layer from the m_scrollingNodeToLayerMap.
27162        (WebCore::RenderLayerCompositor::scrollableAreaForScrollLayerID):
27163        * rendering/RenderLayerCompositor.h:
27164
271652014-03-31  Antti Koivisto  <antti@apple.com>
27166
27167        Rename TileCache to LegacyTileCache
27168        https://bugs.webkit.org/show_bug.cgi?id=130986
27169
27170        Reviewed by Simon Fraser.
27171
27172        Rename iOS WebKit1 tile cache classes to reflect its status.
27173        This also frees some good type names.
27174
27175        TileCache -> LegacyTileCache
27176        TileGrid -> LegacyTileGrid
27177        TileGridTile -> LegacyTileGridTile
27178        etc.
27179
271802014-03-31  Tim Horton  <timothy_horton@apple.com>
27181
27182        Small adjustments to WebCore::IOSurface
27183        https://bugs.webkit.org/show_bug.cgi?id=130981
27184
27185        Reviewed by Simon Fraser.
27186
27187        * WebCore.exp.in:
27188        Export some more things.
27189
27190        * platform/graphics/cocoa/IOSurface.h:
27191        createImage() can't be const because it calls ensurePlatformContext().
27192
27193        * platform/graphics/cocoa/IOSurface.mm:
27194        (IOSurface::createImage):
27195        We should be able to create an image even if the CGContext has been cleared (or never created).
27196
27197        (IOSurface::isInUse):
27198        Rename inUse() to isInUse().
27199
27200        (IOSurface::clearGraphicsContext):
27201        Add clearGraphicsContext().
27202
272032014-03-31  Tim Horton  <timothy_horton@apple.com>
27204
27205        Allocate IOSurfaces with the same cache mode that CoreAnimation uses
27206        https://bugs.webkit.org/show_bug.cgi?id=130982
27207
27208        Reviewed by Simon Fraser.
27209
27210        * platform/graphics/cocoa/IOSurface.mm:
27211        (IOSurface::IOSurface):
27212        CA uses kIOMapWriteCombineCache for IOSurfaces allocated on iOS.
27213
272142014-03-31  Ion Rosca  <rosca@adobe.com>
27215
27216        [CSS Blending] Blend mode property is propagated to multiple GraphicLayers
27217        https://bugs.webkit.org/show_bug.cgi?id=130337
27218
27219        Reviewed by Dean Jackson.
27220
27221        Resets the blend mode for graphicsLayer when it has an ancestorClippingLayer.
27222
27223        Test: css3/compositing/blend-mode-ancestor-clipping-layer.html
27224
27225        * rendering/RenderLayer.cpp:
27226        (WebCore::RenderLayer::updateBlendMode):
27227        (WebCore::RenderLayer::calculateClipRects):
27228        * rendering/RenderLayerBacking.cpp:
27229        (WebCore::RenderLayerBacking::updateBlendMode):
27230        * rendering/RenderLayerBacking.h:
27231
272322014-03-31  Ion Rosca  <rosca@adobe.com>
27233
27234        [CSS Blending] showLayerTree should dump layer's blend mode and isolation properties
27235        https://bugs.webkit.org/show_bug.cgi?id=130922
27236
27237        Reviewed by Simon Fraser.
27238
27239        This change only updates existing tests involving blending. No new test required,
27240        as there is no new or changed functionality.
27241
27242        * rendering/RenderLayer.h: adding blendMode() getter.
27243        * rendering/RenderTreeAsText.cpp:
27244        (WebCore::write):
27245        adding blendMode property and layer's isolation status (does layer isolate blending descendants or not?).
27246
272472014-03-31  Benjamin Poulain  <benjamin@webkit.org>
27248
27249        CSS JIT: clean up the functions ending when generating a checker with context
27250        https://bugs.webkit.org/show_bug.cgi?id=130959
27251
27252        Reviewed by Andreas Kling.
27253
27254        This code got refactored over time and now both branches do the exact same action
27255        on the stack.
27256        This patch removes the stack split and move the stack cleanup in the common ending
27257        just before restoring the callee saved registers.
27258
27259        * cssjit/SelectorCompiler.cpp:
27260        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
27261
272622014-03-31  Beth Dakin  <bdakin@apple.com>
27263
27264        ThemeMac should use std::array instead of IntSize* for control sizes
27265        https://bugs.webkit.org/show_bug.cgi?id=130985
27266
27267        Reviewed by Darin Adler.
27268
27269        Replace uses of const IntSize* with const std::array<IntSize, 3>
27270        * platform/mac/ThemeMac.mm:
27271        (WebCore::sizeFromNSControlSize):
27272        (WebCore::sizeFromFont):
27273        (WebCore::controlSizeFromPixelSize):
27274        (WebCore::setControlSize):
27275        (WebCore::checkboxSizes):
27276        (WebCore::radioSizes):
27277        (WebCore::buttonSizes):
27278        (WebCore::setUpButtonCell):
27279        (WebCore::stepperSizes):
27280
272812014-03-31  Hans Muller  <hmuller@adobe.com>
27282
27283        [CSS Shapes] Simplify RasterShape implementation
27284        https://bugs.webkit.org/show_bug.cgi?id=130916
27285
27286        Reviewed by Dean Jackson.
27287
27288        Since only floats can specify shape-outside, the RasterShapeIntervals
27289        class only needs to track the first and last above threshold pixel column
27290        (x1 and x2 in the implementation) for each row. Removed code for dealing with
27291        multiple "runs" per row as well as shape-inside internals.
27292
27293        No new tests, since functionality was only removed.
27294
27295        * rendering/shapes/RasterShape.cpp:
27296        (WebCore::RasterShapeIntervals::computeShapeMarginIntervals):
27297        (WebCore::RasterShapeIntervals::initializeBounds):
27298        (WebCore::RasterShapeIntervals::buildBoundsPath):
27299        (WebCore::RasterShape::getExcludedIntervals):
27300        * rendering/shapes/RasterShape.h:
27301        (WebCore::RasterShapeIntervals::RasterShapeIntervals):
27302        (WebCore::RasterShapeIntervals::intervalAt):
27303        (WebCore::RasterShape::RasterShape):
27304        * rendering/shapes/Shape.cpp:
27305        (WebCore::Shape::createRasterShape):
27306        * rendering/shapes/ShapeInterval.h:
27307        (WebCore::ShapeInterval::unite):
27308
273092014-03-31  Andreas Kling  <akling@apple.com>
27310
27311        Always inline toJS() for NodeList.
27312        <https://webkit.org/b/130974>
27313
27314        This is a pretty cheesy optimization, but it's a 3% progression on
27315        Dromaeo/dom-query.html on my MBP.
27316
27317        Reviewed by Benjamin Poulain.
27318
27319        * WebCore.exp.in:
27320        * WebCore.xcodeproj/project.pbxproj:
27321        * bindings/js/JSNodeListCustom.h: Added.
27322        (WebCore::toJS):
27323        * dom/NodeList.idl:
27324
273252014-03-31  Benjamin Poulain  <bpoulain@apple.com>
27326
27327        Attempt to fix the 32bits debug builds
27328
27329        The additional debug flags in RefCounted cause the structure to have different alignment
27330        with the 64bits flags.
27331
27332        * rendering/style/RenderStyle.cpp:
27333
273342014-03-29  Simon Fraser  <simon.fraser@apple.com>
27335
27336        Clarify some scrolling tree terminology
27337        https://bugs.webkit.org/show_bug.cgi?id=130929
27338
27339        Reviewed by Tim Horton.
27340
27341        Attempt to reduce some ambiguity in scrolling tree terminology.
27342        When async scrolling occurs, there are two tasks we have to perform:
27343        1. Layers need to be updated to reflect the scroll
27344        2. WebCore state has to be updated.
27345        The "updateForViewport" name didn't clearly reflect which of these
27346        tasks was being performed, so rename it to updateLayersAfterViewportChange()
27347        to reflect the fact that it only does the first.
27348        
27349        Remove the Mac implementation of updateLayersAfterViewportChange(), since
27350        it was confsued about this, and was never called anyway.
27351
27352        * WebCore.exp.in:
27353        * page/scrolling/ScrollingTree.cpp:
27354        (WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling):
27355        * page/scrolling/ScrollingTreeScrollingNode.h:
27356        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
27357        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
27358        (WebCore::ScrollingTreeScrollingNodeIOS::updateLayersAfterViewportChange):
27359        (WebCore::ScrollingTreeScrollingNodeIOS::updateForViewport): Deleted.
27360        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
27361        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
27362        (WebCore::ScrollingTreeScrollingNodeMac::updateLayersAfterViewportChange):
27363        (WebCore::ScrollingTreeScrollingNodeMac::updateForViewport): Deleted.
27364
273652014-03-31  Tim Horton  <timothy_horton@apple.com>
27366
27367        [iOS WebKit2] Disable tile cohort retention for now
27368        https://bugs.webkit.org/show_bug.cgi?id=130926
27369        <rdar://problem/16465413>
27370
27371        Reviewed by Simon Fraser.
27372
27373        * WebCore.exp.in:
27374        * page/Settings.cpp:
27375        (WebCore::Settings::Settings):
27376        (WebCore::Settings::setScrollingPerformanceLoggingEnabled):
27377        (WebCore::Settings::setAggressiveTileRetentionEnabled): Deleted.
27378        * page/Settings.h:
27379        (WebCore::Settings::aggressiveTileRetentionEnabled): Deleted.
27380        * page/Settings.in:
27381        Use Settings.in for these simple settings.
27382
27383        * platform/graphics/GraphicsLayerClient.h:
27384        (WebCore::GraphicsLayerClient::shouldAggressivelyRetainTiles):
27385        (WebCore::GraphicsLayerClient::shouldTemporarilyRetainTileCohorts):
27386        * platform/graphics/TiledBacking.h:
27387        * platform/graphics/ca/GraphicsLayerCA.cpp:
27388        (WebCore::GraphicsLayerCA::platformCALayerShouldAggressivelyRetainTiles):
27389        (WebCore::GraphicsLayerCA::platformCALayerShouldTemporarilyRetainTileCohorts):
27390        * platform/graphics/ca/GraphicsLayerCA.h:
27391        * platform/graphics/ca/PlatformCALayerClient.h:
27392        (WebCore::PlatformCALayerClient::platformCALayerShouldAggressivelyRetainTiles):
27393        (WebCore::PlatformCALayerClient::platformCALayerShouldTemporarilyRetainTileCohorts):
27394        * rendering/RenderLayerBacking.cpp:
27395        (WebCore::RenderLayerBacking::shouldAggressivelyRetainTiles):
27396        (WebCore::RenderLayerBacking::shouldTemporarilyRetainTileCohorts):
27397        * rendering/RenderLayerBacking.h:
27398        Plumb the two tile-retention settings through to TileController in a pull manner
27399        instead of a push manner, as there were some cases (especially on iOS) where
27400        the settings weren't always getting pushed down.
27401
27402        * platform/graphics/ca/mac/TileController.h:
27403        * platform/graphics/ca/mac/TileController.mm:
27404        (WebCore::TileController::TileController):
27405        (WebCore::TileController::tileRevalidationTimerFired):
27406        (WebCore::TileController::revalidateTiles):
27407        (WebCore::TileController::drawTileMapContents):
27408        Aggressive tile retention wins over temporary retention. If we aren't
27409        using temporary (cohort) retention, throw away the cohort as soon as it
27410        is created.
27411
274122014-03-31  Beth Dakin  <bdakin@apple.com>
27413
27414        Radio buttons and checkboxes should share code
27415        https://bugs.webkit.org/show_bug.cgi?id=130915
27416
27417        Reviewed by Sam Weinig.
27418
27419        Radio buttons and checkboxes now share a lot of code. The common term for both is 
27420        toggle buttons.
27421
27422        Move these radio-sizing functions up in the file to be next to the checkbox sizing 
27423        functions.
27424        * platform/mac/ThemeMac.mm:
27425        (WebCore::radioSizes):
27426        (WebCore::radioMargins):
27427        (WebCore::radioSize):
27428
27429        Configures a radio button or a checkbox.
27430        (WebCore::configureToggleButton):
27431
27432        Creates a radio button or a checkbox.
27433        (WebCore::createToggleButtonCell):
27434
27435        Still have a shared cell for each.
27436        (WebCore::sharedRadioCell):
27437        (WebCore::sharedCheckboxCell):
27438
27439        Does the work of the old paintRadio() and paintCheckbox().
27440        (WebCore::paintToggleButton):
27441
27442        Use sharedRadioCell() here.
27443        (WebCore::ThemeMac::inflateControlPaintRect):
27444
27445        Call paintToggleButton() for radio buttons and checkboxes.
27446        (WebCore::ThemeMac::paint):
27447
27448        All gone.
27449        (WebCore::configureCheckbox): Deleted.
27450        (WebCore::createCheckboxCell): Deleted.
27451        (WebCore::paintCheckbox): Deleted.
27452        (WebCore::radio): Deleted.
27453        (WebCore::paintRadio): Deleted.
27454
274552014-03-31  Samuel White  <samuel_white@apple.com>
27456
27457        AX: Need ability to get line range for text marker.
27458        https://bugs.webkit.org/show_bug.cgi?id=130906
27459
27460        Reviewed by Chris Fleizach.
27461
27462        Added ability to get line range from any marker on that line. This matches the functionality of existing
27463        attributes such as AXParagraphTextMarkerRangeForTextMarker and AXSentenceTextMarkerRangeForTextMarker.
27464
27465        Test: platform/mac/accessibility/line-range-for-text-marker.html
27466
27467        * accessibility/AccessibilityObject.cpp:
27468        (WebCore::AccessibilityObject::visiblePositionRangeForRange):
27469        (WebCore::AccessibilityObject::lineRangeForPosition):
27470        * accessibility/AccessibilityObject.h:
27471        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
27472        (-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
27473        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
27474
274752014-03-31  Anders Carlsson  <andersca@apple.com>
27476
27477        Fix iOS build.
27478
27479        * page/ChromeClient.h:
27480        (WebCore::ChromeClient::updateViewportConstrainedLayers):
27481
274822014-03-31  Jer Noble  <jer.noble@apple.com>
27483
27484        [MSE][Mac] Support lease-renewal.
27485        https://bugs.webkit.org/show_bug.cgi?id=130919
27486
27487        Reviewed by Eric Carlson.
27488
27489        Trigger a new key request when receiving an update message containting "renew".
27490
27491        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
27492        (WebCore::CDMSessionMediaSourceAVFObjC::generateKeyRequest): Drive-by fix; generate a UTF-8
27493            based array.
27494        (WebCore::CDMSessionMediaSourceAVFObjC::update):
27495
274962014-03-31  Alexey Proskuryakov  <ap@apple.com>
27497
27498        Remove special handling of soft hyphens in search code
27499        https://bugs.webkit.org/show_bug.cgi?id=130940
27500
27501        Reviewed by Anders Carlsson.
27502
27503        ICU knows to ignore soft hyphens, so we don't need to replace them before searching.
27504
27505        Covered by existing tests.
27506
27507        * editing/TextIterator.cpp:
27508        (WebCore::foldQuoteMark):
27509        (WebCore::foldQuoteMarks):
27510        (WebCore::SearchBuffer::SearchBuffer):
27511        (WebCore::SearchBuffer::append):
27512        (WebCore::foldQuoteMarkOrSoftHyphen): Deleted.
27513        (WebCore::foldQuoteMarksAndSoftHyphens): Deleted.
27514
275152014-03-31  Alex Christensen  <achristensen@webkit.org>
27516
27517        Preparation for using Soup on Windows.
27518        https://bugs.webkit.org/show_bug.cgi?id=130615
27519
27520        Reviewed by Carlos Garcia Campos.
27521
27522        * WebCore.vcxproj/WebCore.vcxproj:
27523        * WebCore.vcxproj/WebCore.vcxproj.filters:
27524        Added Soup source files in WinCairo build.
27525        * loader/soup/CachedRawResourceSoup.cpp:
27526        * loader/soup/SubresourceLoaderSoup.cpp:
27527        * platform/soup/SharedBufferSoup.cpp:
27528        * platform/soup/URLSoup.cpp:
27529        * platform/network/NetworkStorageSessionStub.cpp:
27530        Only build if USE(SOUP) to prevent building when USE(CURL) is true.
27531        * platform/network/soup/ResourceHandleSoup.cpp:
27532        Only include unistd.h in non-Visual Studio builds.
27533        This would normally be done with a HAVE_UNISTD_H macro when compiling glib and Soup,
27534        but that would need to be left undefined for Visual Studio.
27535
275362014-03-31  Zan Dobersek  <zdobersek@igalia.com>
27537
27538        Unreviewed. Addressing reviewing comments for r166491 that I forgot
27539        to address before landing.
27540
27541        * html/FormController.cpp:
27542        (WebCore::SavedFormState::deserialize): No need to move the std::unique_ptr
27543        object on the way out.
27544        (WebCore::FormController::createSavedFormStateMap): FormKeyGenerator can be
27545        allocated on the stack.
27546        (WebCore::FormController::formStatesFromStateVector): Use auto.
27547
275482014-03-20  Carlos Garcia Campos  <cgarcia@igalia.com>
27549
27550        [GTK] Use GMainLoopSource for idle and timeout sources in WebCore
27551        https://bugs.webkit.org/show_bug.cgi?id=130078
27552
27553        Reviewed by Philippe Normand.
27554
27555        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
27556        * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
27557        * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
27558        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
27559        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
27560        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
27561        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
27562        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
27563        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
27564        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
27565        * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
27566        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
27567        * platform/gtk/GtkDragAndDropHelper.cpp:
27568        * platform/gtk/SharedTimerGtk.cpp:
27569
275702014-03-31  Andrei Bucur  <abucur@adobe.com>
27571
27572        Wrong layout while animating content in regions
27573        https://bugs.webkit.org/show_bug.cgi?id=125086
27574
27575        Reviewed by David Hyatt.
27576
27577        The region to layer and regions to layer mappings should be cleared when the region chain changes.
27578
27579        Test: fast/regions/layers/region-removed-during-animation.html
27580
27581        * rendering/RenderFlowThread.cpp:
27582        (WebCore::RenderFlowThread::invalidateRegions): Clear the two maps and flag them for recomputation.
27583        (WebCore::RenderFlowThread::cachedRegionForCompositedLayer): Assert that the returned region exists.
27584
275852014-03-31  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
27586
27587        Remove hostThisRegister() and hostThisValue()
27588        https://bugs.webkit.org/show_bug.cgi?id=130895
27589
27590        Reviewed by Geoffrey Garen.
27591
27592        Removed hostThisRegister() and hostThisValue() and instead use thisArgumentOffset() and thisValue() respectively.
27593
27594        No new tests, no behavior changes.
27595
27596        * bindings/js/JSNavigatorCustom.cpp:
27597        (WebCore::JSNavigator::webkitGetUserMedia):
27598        * bindings/js/JSPluginElementFunctions.cpp:
27599        (WebCore::callPlugin):
27600        * bindings/scripts/CodeGeneratorJS.pm:
27601        (GenerateImplementation):
27602        * bindings/scripts/test/JS/JSFloat64Array.cpp:
27603        (WebCore::jsFloat64ArrayPrototypeFunctionFoo):
27604        (WebCore::jsFloat64ArrayPrototypeFunctionSet):
27605        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
27606        (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
27607        (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
27608        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
27609        (WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
27610        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
27611        (WebCore::jsTestEventTargetPrototypeFunctionItem):
27612        (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
27613        (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
27614        (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
27615        * bindings/scripts/test/JS/JSTestInterface.cpp:
27616        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod1):
27617        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
27618        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod3):
27619        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1):
27620        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
27621        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod3):
27622        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
27623        (WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
27624        * bindings/scripts/test/JS/JSTestObj.cpp:
27625        (WebCore::jsTestObjPrototypeFunctionVoidMethod):
27626        (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
27627        (WebCore::jsTestObjPrototypeFunctionByteMethod):
27628        (WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
27629        (WebCore::jsTestObjPrototypeFunctionOctetMethod):
27630        (WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
27631        (WebCore::jsTestObjPrototypeFunctionLongMethod):
27632        (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
27633        (WebCore::jsTestObjPrototypeFunctionObjMethod):
27634        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
27635        (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
27636        (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
27637        (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
27638        (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
27639        (WebCore::jsTestObjPrototypeFunctionSerializedValue):
27640        (WebCore::jsTestObjPrototypeFunctionOptionsObject):
27641        (WebCore::jsTestObjPrototypeFunctionMethodWithException):
27642        (WebCore::jsTestObjPrototypeFunctionCustomMethod):
27643        (WebCore::jsTestObjPrototypeFunctionCustomMethodWithArgs):
27644        (WebCore::jsTestObjPrototypeFunctionAddEventListener):
27645        (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
27646        (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoid):
27647        (WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
27648        (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidException):
27649        (WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
27650        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContext):
27651        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptState):
27652        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
27653        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
27654        (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
27655        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
27656        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
27657        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
27658        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
27659        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
27660        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
27661        (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
27662        (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
27663        (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
27664        (WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
27665        (WebCore::jsTestObjPrototypeFunctionConditionalMethod2):
27666        (WebCore::jsTestObjPrototypeFunctionConditionalMethod3):
27667        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
27668        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
27669        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
27670        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
27671        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
27672        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
27673        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
27674        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
27675        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
27676        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
27677        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
27678        (WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
27679        (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
27680        (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
27681        (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
27682        (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
27683        (WebCore::jsTestObjPrototypeFunctionConvert1):
27684        (WebCore::jsTestObjPrototypeFunctionConvert2):
27685        (WebCore::jsTestObjPrototypeFunctionConvert4):
27686        (WebCore::jsTestObjPrototypeFunctionConvert5):
27687        (WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
27688        (WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
27689        (WebCore::jsTestObjPrototypeFunctionOrange):
27690        (WebCore::jsTestObjPrototypeFunctionStrictFunction):
27691        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
27692        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
27693        (WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
27694        (WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
27695        (WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
27696        (WebCore::jsTestObjPrototypeFunctionAny):
27697        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
27698        (WebCore::jsTestTypedefsPrototypeFunctionFunc):
27699        (WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
27700        (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
27701        (WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
27702        (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
27703        (WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
27704        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
27705        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
27706        (WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
27707        (WebCore::jsTestTypedefsPrototypeFunctionMethodWithException):
27708        * bridge/objc/objc_runtime.mm:
27709        (JSC::Bindings::callObjCFallbackObject):
27710        * bridge/runtime_method.cpp:
27711        (JSC::callRuntimeMethod):
27712
277132014-03-31  Zan Dobersek  <zdobersek@igalia.com>
27714
27715        Move the rest of Source/WebCore/html/ code to std::unique_ptr
27716        https://bugs.webkit.org/show_bug.cgi?id=129669
27717
27718        Reviewed by Anders Carlsson.
27719
27720        Replace the remaining uses of OwnPtr, PassOwnPtr under Source/WebCore/html/ with std::unique_ptr.
27721
27722        * html/FormController.cpp:
27723        (WebCore::SavedFormState::SavedFormState):
27724        (WebCore::SavedFormState::deserialize):
27725        (WebCore::FormController::createSavedFormStateMap):
27726        (WebCore::FormController::formElementsState):
27727        (WebCore::FormController::takeStateForFormElement):
27728        (WebCore::FormController::formStatesFromStateVector):
27729        * html/FormController.h:
27730        * html/HTMLAreaElement.cpp:
27731        (WebCore::HTMLAreaElement::mapMouseEvent):
27732        * html/HTMLAreaElement.h:
27733        * html/HTMLCanvasElement.cpp:
27734        (WebCore::HTMLCanvasElement::setSurfaceSize):
27735        (WebCore::HTMLCanvasElement::createImageBuffer):
27736        * html/HTMLCanvasElement.h:
27737        * html/HTMLCollection.h:
27738        * html/HTMLEmbedElement.cpp:
27739        (WebCore::HTMLEmbedElement::parseAttribute):
27740        * html/HTMLFormControlElement.cpp:
27741        (WebCore::HTMLFormControlElement::updateVisibleValidationMessage):
27742        * html/HTMLFormControlElement.h:
27743        * html/HTMLFormElement.cpp:
27744        (WebCore::HTMLFormElement::addToPastNamesMap):
27745        * html/HTMLFormElement.h:
27746        * html/HTMLInputElement.cpp:
27747        (WebCore::HTMLInputElement::imageLoader):
27748        (WebCore::HTMLInputElement::resetListAttributeTargetObserver):
27749        * html/HTMLInputElement.h:
27750        (WebCore::HTMLInputElement::hasImageLoader):
27751        * html/HTMLObjectElement.cpp:
27752        (WebCore::HTMLObjectElement::parseAttribute):
27753        * html/HTMLPlugInImageElement.cpp:
27754        (WebCore::HTMLPlugInImageElement::startLoadingImage):
27755        * html/HTMLPlugInImageElement.h:
27756        * html/HTMLVideoElement.cpp:
27757        (WebCore::HTMLVideoElement::didAttachRenderers):
27758        (WebCore::HTMLVideoElement::parseAttribute):
27759        * html/HTMLVideoElement.h:
27760        * html/ValidationMessage.cpp:
27761        (WebCore::ValidationMessage::ValidationMessage):
27762        (WebCore::ValidationMessage::setMessage):
27763        (WebCore::ValidationMessage::setMessageDOMAndStartTimer):
27764        (WebCore::ValidationMessage::requestToHideMessage):
27765        * html/ValidationMessage.h:
27766
277672014-03-31  Maurice van der Pot  <griffon26@kfk4ever.com>
27768
27769        Fix mixed use of booleans in JPEGImageDecoder.cpp
27770        https://bugs.webkit.org/show_bug.cgi?id=122412
27771
27772        Reviewed by Darin Adler.
27773
27774        Trivial fix for compilation error; no new tests.
27775
27776        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
27777        (WebCore::JPEGImageReader::decode):
27778        (WebCore::fill_input_buffer):
27779        Use TRUE/FALSE defined by libjpeg for libjpeg booleans
27780
277812014-03-23  Zan Dobersek  <zdobersek@igalia.com>
27782
27783        Move Source/WebCore/rendering/ code to std::unique_ptr
27784        https://bugs.webkit.org/show_bug.cgi?id=129664
27785
27786        Reviewed by Anders Carlsson.
27787
27788        Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/rendering/ with std::unique_ptr.
27789
27790        * platform/graphics/FloatPolygon.cpp:
27791        (WebCore::FloatPolygon::FloatPolygon):
27792        * platform/graphics/FloatPolygon.h:
27793        * rendering/ClipPathOperation.h:
27794        * rendering/FlowThreadController.cpp:
27795        (WebCore::FlowThreadController::ensureRenderFlowThreadWithName):
27796        * rendering/FlowThreadController.h:
27797        * rendering/HitTestLocation.h:
27798        * rendering/HitTestResult.cpp:
27799        (WebCore::HitTestResult::HitTestResult):
27800        (WebCore::HitTestResult::operator=):
27801        (WebCore::HitTestResult::rectBasedTestResult):
27802        (WebCore::HitTestResult::mutableRectBasedTestResult):
27803        * rendering/HitTestResult.h:
27804        * rendering/HitTestingTransformState.cpp:
27805        * rendering/ImageQualityController.h:
27806        * rendering/RenderBlock.cpp:
27807        (WebCore::removeBlockFromDescendantAndContainerMaps):
27808        (WebCore::RenderBlock::finishDelayUpdateScrollInfo):
27809        (WebCore::RenderBlock::addContinuationWithOutline):
27810        (WebCore::RenderBlock::paintContinuationOutlines):
27811        (WebCore::RenderBlock::insertIntoTrackedRendererMaps):
27812        (WebCore::RenderBlock::removeFromTrackedRendererMaps):
27813        (WebCore::RenderBlock::setComputedColumnCountAndWidth):
27814        * rendering/RenderBlock.h:
27815        * rendering/RenderBlockFlow.cpp:
27816        (WebCore::RenderBlockFlow::createFloatingObjects):
27817        * rendering/RenderBlockFlow.h:
27818        * rendering/RenderBoxRegionInfo.h:
27819        * rendering/RenderButton.cpp:
27820        (WebCore::RenderButton::styleDidChange):
27821        * rendering/RenderButton.h:
27822        * rendering/RenderCounter.cpp:
27823        (WebCore::makeCounterNode):
27824        * rendering/RenderFlowThread.cpp:
27825        (WebCore::RenderFlowThread::updateAllLayerToRegionMappings):
27826        (WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock):
27827        * rendering/RenderFlowThread.h:
27828        * rendering/RenderGeometryMap.cpp:
27829        (WebCore::RenderGeometryMap::push):
27830        (WebCore::RenderGeometryMap::pushView):
27831        * rendering/RenderGeometryMap.h:
27832        * rendering/RenderGrid.cpp:
27833        (WebCore::RenderGrid::GridIterator::nextEmptyGridArea):
27834        (WebCore::RenderGrid::placeItemsOnGrid):
27835        (WebCore::RenderGrid::populateExplicitGridAndOrderIterator):
27836        (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
27837        (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
27838        (WebCore::RenderGrid::resolveGridPositionsFromStyle):
27839        (WebCore::RenderGrid::resolveGridPositionAgainstOppositePosition):
27840        (WebCore::RenderGrid::resolveNamedGridLinePositionAgainstOppositePosition):
27841        (WebCore::RenderGrid::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition):
27842        (WebCore::RenderGrid::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition):
27843        * rendering/RenderGrid.h:
27844        * rendering/RenderImageResource.h:
27845        * rendering/RenderLayer.cpp:
27846        (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
27847        (WebCore::RenderLayer::updateTransform):
27848        (WebCore::RenderLayer::setupFilters):
27849        (WebCore::RenderLayer::paintLayerContents):
27850        (WebCore::RenderLayer::paintChildLayerIntoColumns):
27851        (WebCore::RenderLayer::hitTestChildLayerColumns):
27852        (WebCore::RenderLayer::updateClipRects):
27853        (WebCore::RenderLayer::calculateClipRects):
27854        * rendering/RenderLayer.h:
27855        (WebCore::RenderLayer::clearZOrderLists):
27856        * rendering/RenderLayerCompositor.cpp:
27857        (WebCore::RenderLayerCompositor::notifyFlushBeforeDisplayRefresh):
27858        (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
27859        * rendering/RenderLayerCompositor.h:
27860        * rendering/RenderLayerFilterInfo.cpp:
27861        (WebCore::RenderLayer::FilterInfo::map):
27862        (WebCore::RenderLayer::FilterInfo::get):
27863        * rendering/RenderLayerFilterInfo.h:
27864        * rendering/RenderRegion.cpp:
27865        (WebCore::RenderRegion::setRenderBoxRegionInfo):
27866        (WebCore::RenderRegion::takeRenderBoxRegionInfo):
27867        * rendering/RenderRegion.h:
27868        * rendering/RenderTable.cpp:
27869        (WebCore::RenderTable::styleDidChange):
27870        * rendering/RenderTable.h:
27871        * rendering/RenderView.cpp:
27872        (WebCore::RenderView::selectionBounds):
27873        (WebCore::RenderView::setSelection):
27874        (WebCore::RenderView::compositor):
27875        (WebCore::RenderView::flowThreadController):
27876        (WebCore::RenderView::imageQualityController):
27877        * rendering/RenderView.h:
27878        * rendering/RootInlineBox.h:
27879        (WebCore::RootInlineBox::appendFloat):
27880        * rendering/TextAutosizer.h:
27881        * rendering/shapes/PolygonShape.cpp:
27882        (WebCore::computeShapePaddingBounds):
27883        (WebCore::computeShapeMarginBounds):
27884        * rendering/shapes/PolygonShape.h:
27885        (WebCore::PolygonShape::PolygonShape):
27886        * rendering/shapes/RasterShape.cpp:
27887        (WebCore::RasterShapeIntervals::computeShapeMarginIntervals):
27888        * rendering/shapes/RasterShape.h:
27889        (WebCore::RasterShape::RasterShape):
27890        * rendering/shapes/Shape.cpp:
27891        (WebCore::createInsetShape):
27892        (WebCore::createRectangleShape):
27893        (WebCore::createCircleShape):
27894        (WebCore::createEllipseShape):
27895        (WebCore::createPolygonShape):
27896        (WebCore::Shape::createShape):
27897        (WebCore::Shape::createRasterShape):
27898        (WebCore::Shape::createLayoutBoxShape):
27899        * rendering/shapes/Shape.h:
27900        * rendering/shapes/ShapeInfo.h:
27901        (WebCore::ShapeInfo::markShapeAsDirty):
27902        (WebCore::ShapeInfo::isShapeDirty):
27903        * rendering/shapes/ShapeInsideInfo.h:
27904        * rendering/style/ContentData.h:
27905        * rendering/style/CounterDirectives.cpp:
27906        (WebCore::clone):
27907        * rendering/style/CounterDirectives.h:
27908        * rendering/style/GridCoordinate.h:
27909        * rendering/style/RenderStyle.cpp:
27910        (WebCore::RenderStyle::addCachedPseudoStyle):
27911        (WebCore::RenderStyle::accessCounterDirectives):
27912        (WebCore::RenderStyle::accessAnimations):
27913        (WebCore::RenderStyle::accessTransitions):
27914        * rendering/style/RenderStyle.h:
27915        * rendering/style/StyleRareNonInheritedData.cpp:
27916        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
27917        * rendering/style/StyleRareNonInheritedData.h:
27918        * rendering/svg/RenderSVGResourceGradient.cpp:
27919        (WebCore::RenderSVGResourceGradient::applyResource):
27920        * rendering/svg/RenderSVGResourceGradient.h:
27921        * rendering/svg/RenderSVGResourcePattern.cpp:
27922        (WebCore::RenderSVGResourcePattern::buildPattern):
27923        * rendering/svg/RenderSVGResourcePattern.h:
27924        * rendering/svg/RenderSVGShape.cpp:
27925        (WebCore::RenderSVGShape::updateShapeFromElement):
27926        * rendering/svg/RenderSVGShape.h:
27927        * rendering/svg/SVGResources.cpp:
27928        (WebCore::SVGResources::setClipper):
27929        (WebCore::SVGResources::setFilter):
27930        (WebCore::SVGResources::setMarkerStart):
27931        (WebCore::SVGResources::setMarkerMid):
27932        (WebCore::SVGResources::setMarkerEnd):
27933        (WebCore::SVGResources::setMasker):
27934        (WebCore::SVGResources::setFill):
27935        (WebCore::SVGResources::setStroke):
27936        * rendering/svg/SVGResources.h:
27937        * rendering/svg/SVGResourcesCache.cpp:
27938        (WebCore::SVGResourcesCache::addResourcesFromRenderer):
27939        (WebCore::SVGResourcesCache::removeResourcesFromRenderer):
27940        * rendering/svg/SVGResourcesCache.h:
27941        * rendering/svg/SVGTextMetricsBuilder.cpp:
27942        (WebCore::SVGTextMetricsBuilder::initializeMeasurementWithTextRenderer):
27943        * rendering/svg/SVGTextMetricsBuilder.h:
27944
279452014-03-28  Sergio Villar Senin  <svillar@igalia.com>
27946
27947        Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T> in loader
27948        https://bugs.webkit.org/show_bug.cgi?id=130893
27949
27950        Reviewed by Darin Adler.
27951
27952        * loader/ImageLoader.cpp:
27953        (WebCore::beforeLoadEventSender):
27954        (WebCore::loadEventSender):
27955        (WebCore::errorEventSender):
27956        * loader/appcache/ApplicationCacheStorage.cpp:
27957        (WebCore::cacheStorage):
27958        * loader/appcache/ApplicationCacheStorage.h:
27959        * loader/archive/ArchiveFactory.cpp:
27960        (WebCore::archiveMIMETypes):
27961        * loader/cache/CachedImage.cpp:
27962        (WebCore::CachedImage::brokenImage):
27963        * loader/cache/CachedRawResource.cpp:
27964        (WebCore::shouldIgnoreHeaderForCacheReuse):
27965        * loader/cache/MemoryCache.cpp:
27966        (WebCore::dummyCachedImageClient):
27967
279682014-03-28  Sergio Villar Senin  <svillar@igalia.com>
27969
27970        Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T> in css
27971        https://bugs.webkit.org/show_bug.cgi?id=130409
27972
27973        Reviewed by Darin Adler.
27974
27975        * css/CSSComputedStyleDeclaration.cpp:
27976        (WebCore::logUnimplementedPropertyID):
27977        * css/CSSDefaultStyleSheets.cpp:
27978        (WebCore::screenEval):
27979        (WebCore::printEval):
27980        * css/CSSParser.cpp:
27981        (WebCore::strictCSSParserContext):
27982        * css/CSSPrimitiveValue.cpp:
27983        (WebCore::cssTextCache):
27984        * css/CSSProperty.cpp:
27985        (WebCore::borderDirections):
27986        * css/CSSStyleRule.cpp:
27987        (WebCore::selectorTextCache):
27988        * css/CSSValuePool.cpp:
27989        (WebCore::cssValuePool):
27990        * css/CSSValuePool.h:
27991        * css/DeprecatedStyleBuilder.cpp:
27992        (WebCore::ApplyPropertyPageSize::getPageSizeFromName):
27993        (WebCore::DeprecatedStyleBuilder::sharedStyleBuilder):
27994        * css/DeprecatedStyleBuilder.h:
27995
279962014-03-30  Xabier Rodriguez Calvar  <calvaris@igalia.com>
27997
27998        [GTK] [TextureMapper] Weird brightness with some videos with acceletared compositing
27999        https://bugs.webkit.org/show_bug.cgi?id=130665
28000
28001        Reviewed by Martin Robinson.
28002
28003        When we uploaded a video texture to the mapper we were not
28004        considering that some videos could be decoded into a format
28005        without alpha component. Now we check if the video has alpha and
28006        if it does not, we remove the alpha flag when retrieving the
28007        texture from the pool. For this, the method to get the texture
28008        from the pool was modified to receive the flags, that is mapped to
28009        have alpha by default in order not to break any other existing
28010        code.
28011
28012        Though we have a problem with AC in WTR and that makes it
28013        currently not testable, no new tests are needed because once this
28014        is fixed the current test set suffices to detect a possible
28015        regression in this.
28016
28017        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
28018        (WebCore::MediaPlayerPrivateGStreamerBase::updateTexture): Check
28019        the video format and decide if the texture shall be pulled with
28020        alpha support or not.
28021        * platform/graphics/texmap/TextureMapper.cpp:
28022        (WebCore::TextureMapper::acquireTextureFromPool): Use the flags
28023        when resetting the texture.
28024        * platform/graphics/texmap/TextureMapper.h:
28025        (WebCore::BitmapTexture::Flag::None): Added with 0x00.
28026        (WebCore::TextureMapper::acquireTextureFromPool): Added flag
28027        parameter to set up the texture with the default for including
28028        alpha channel.
28029
280302014-03-30  Jinwoo Song  <jinwoo7.song@samsung.com>
28031
28032        Adopt range-based for loops to TextCheckerEnchant
28033        https://bugs.webkit.org/show_bug.cgi?id=130714
28034
28035        Reviewed by Darin Adler.
28036
28037        * platform/text/enchant/TextCheckerEnchant.cpp:
28038        (WebCore::TextCheckerEnchant::ignoreWord):
28039        (WebCore::TextCheckerEnchant::learnWord):
28040        (WebCore::TextCheckerEnchant::checkSpellingOfWord):
28041        (WebCore::TextCheckerEnchant::getGuessesForWord):
28042        (WebCore::TextCheckerEnchant::updateSpellCheckingLanguages):
28043        (WebCore::TextCheckerEnchant::loadedSpellCheckingLanguages):
28044        (WebCore::TextCheckerEnchant::availableSpellCheckingLanguages):
28045        (WebCore::TextCheckerEnchant::freeEnchantBrokerDictionaries):
28046
280472014-03-30  Benjamin Poulain  <benjamin@webkit.org>
28048
28049        Second attempt to fix 32bits build after r166465
28050
28051        * rendering/style/RenderStyle.h:
28052        The compiler probably complain about the return value, that makes more sense.
28053
280542014-03-30  Benjamin Poulain  <benjamin@webkit.org>
28055
28056        Attempt to fix 32bits build after r166465
28057
28058        * rendering/style/RenderStyle.h:
28059
280602014-03-30  Benjamin Poulain  <benjamin@webkit.org>
28061
28062        Make RenderStyle's non inherited flags more JSC friendly
28063        https://bugs.webkit.org/show_bug.cgi?id=130939
28064
28065        Reviewed by Andreas Kling.
28066
28067        Make RenderStyle::NonInheritedFlags accessible to the JIT:
28068        -Make the struct public to give access to the offset.
28069        -Move away from a bit field to static offsets we can use
28070         with the MacroAssembler.
28071        -Reorder the field to simplify bit access of the flags we need.
28072
28073        * css/DeprecatedStyleBuilder.cpp:
28074        (WebCore::ApplyPropertyVerticalAlign::createHandler):
28075        (WebCore::ApplyPropertyDisplay::applyInitialValue):
28076        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
28077        * css/StyleResolver.cpp:
28078        (WebCore::StyleResolver::adjustRenderStyle):
28079        * rendering/style/RenderStyle.cpp:
28080        (WebCore::RenderStyle::RenderStyle):
28081        (WebCore::RenderStyle::copyNonInheritedFrom):
28082        (WebCore::RenderStyle::hashForTextAutosizing):
28083        (WebCore::RenderStyle::equalForTextAutosizing):
28084        (WebCore::RenderStyle::changeRequiresLayout):
28085        * rendering/style/RenderStyle.h:
28086        (WebCore::RenderStyle::hasAnyPublicPseudoStyles):
28087        (WebCore::RenderStyle::hasPseudoStyle):
28088        (WebCore::RenderStyle::setHasPseudoStyle):
28089        * rendering/style/StyleMultiColData.cpp:
28090        (WebCore::StyleMultiColData::StyleMultiColData):
28091        * rendering/style/StyleRareNonInheritedData.cpp:
28092        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
28093
280942014-03-30  David Kilzer  <ddkilzer@apple.com>
28095
28096        [iOS] Fix build of HTMLConverter.mm after r166454
28097
28098        Fixes the following build failures:
28099
28100            WebCore/editing/cocoa/HTMLConverter.mm:1507:13: error: value of type 'WebCore::Element' is not contextually convertible to 'bool'
28101                    if (element)
28102                        ^~~~~~~
28103            WebCore/editing/cocoa/HTMLConverter.mm:1508:49: error: no matching function for call to 'core'
28104                        _caches->floatPropertyValueForNode(*core(element), CSSPropertyVerticalAlign, verticalAlign);
28105                                                            ^~~~
28106            In file included from WebCore/editing/cocoa/HTMLConverter.mm:41:
28107            In file included from WebCore/page/Frame.h:42:
28108            In file included from WebCore/editing/VisibleSelection.h:30:
28109            In file included from WebCore/editing/VisiblePosition.h:30:
28110            In file included from WebCore/dom/Position.h:31:
28111            WebCore/editing/TextAffinity.h:54:27: note: candidate function not viable: no known conversion from 'WebCore::Element' to 'NSSelectionAffinity' (aka '_NSSelectionAffinity') for 1st argument
28112            inline WebCore::EAffinity core(NSSelectionAffinity affinity)
28113                                      ^
28114            WebCore/editing/cocoa/HTMLConverter.mm:1509:81: error: reference to non-static member function must be called; did you mean to call it with no arguments?
28115                    attachment.get().bounds = CGRectMake(0, (verticalAlign / 100) * element.clientHeight, element.clientWidth, element.clientHeight);
28116                                                                                    ~~~~~~~~^~~~~~~~~~~~
28117                                                                                                        ()
28118            WebCore/editing/cocoa/HTMLConverter.mm:1509:103: error: reference to non-static member function must be called; did you mean to call it with no arguments?
28119                    attachment.get().bounds = CGRectMake(0, (verticalAlign / 100) * element.clientHeight, element.clientWidth, element.clientHeight);
28120                                                                                                          ~~~~~~~~^~~~~~~~~~~
28121                                                                                                                             ()
28122            WebCore/editing/cocoa/HTMLConverter.mm:1509:124: error: reference to non-static member function must be called; did you mean to call it with no arguments?
28123                    attachment.get().bounds = CGRectMake(0, (verticalAlign / 100) * element.clientHeight, element.clientWidth, element.clientHeight);
28124                                                                                                                               ~~~~~~~~^~~~~~~~~~~~
28125                                                                                                                                                   ()
28126            5 errors generated.
28127
28128        * editing/cocoa/HTMLConverter.mm:
28129        (HTMLConverter::_addAttachmentForElement):
28130
281312014-03-30  Andreas Kling  <akling@apple.com>
28132
28133        Make NodeList and HTMLCollection caching helpers use PassRef.
28134        <https://webkit.org/b/130943>
28135
28136        Tweak the helpers in NodeListsNodeData to return PassRef instead of
28137        PassRefPtr. This knocks 2 branches off of some pretty hot code on
28138        Dromaeo/dom-query.
28139
28140        Reviewed by Antti Koivisto.
28141
28142        * dom/ChildNodeList.h:
28143        * dom/ClassNodeList.h:
28144        * dom/NameNodeList.h:
28145        * dom/NodeRareData.h:
28146        (WebCore::NodeListsNodeData::ensureChildNodeList):
28147        (WebCore::NodeListsNodeData::ensureEmptyChildNodeList):
28148        (WebCore::NodeListsNodeData::addCacheWithAtomicName):
28149        (WebCore::NodeListsNodeData::addCacheWithName):
28150        (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
28151        (WebCore::NodeListsNodeData::addCachedCollection):
28152        * dom/TagNodeList.h:
28153        * html/HTMLCollection.cpp:
28154        (WebCore::HTMLCollection::create):
28155        * html/HTMLCollection.h:
28156        * html/HTMLFormControlsCollection.cpp:
28157        (WebCore::HTMLFormControlsCollection::create):
28158        * html/HTMLFormControlsCollection.h:
28159        * html/RadioNodeList.h:
28160
281612014-03-29  Antti Koivisto  <antti@apple.com>
28162
28163        LiveNodeLists should use ElementDescendantIterator
28164        https://bugs.webkit.org/show_bug.cgi?id=130931
28165
28166        Reviewed by Andreas Kling.
28167        
28168        Make LiveNodeList traversal use the common DOM tree iterator.
28169
28170        * dom/ChildNodeList.cpp:
28171        (WebCore::ChildNodeList::ChildNodeList):
28172        (WebCore::ChildNodeList::collectionBegin):
28173        (WebCore::ChildNodeList::collectionTraverseForward):
28174        (WebCore::ChildNodeList::collectionTraverseBackward):
28175        (WebCore::ChildNodeList::invalidateCache):
28176        (WebCore::ChildNodeList::collectionFirst): Deleted.
28177        
28178            Iterator for ChildNodeList is still just Node*.
28179
28180        * dom/ChildNodeList.h:
28181        * dom/CollectionIndexCache.h:
28182        (WebCore::CollectionIndexCache::hasValidCache):
28183        (WebCore::Iterator>::CollectionIndexCache):
28184        (WebCore::Iterator>::nodeCount):
28185        (WebCore::Iterator>::computeNodeCountUpdatingListCache):
28186        (WebCore::Iterator>::traverseBackwardTo):
28187        (WebCore::Iterator>::traverseForwardTo):
28188        (WebCore::Iterator>::nodeAt):
28189        (WebCore::Iterator>::invalidate):
28190        
28191            Make CollectionIndexCache iterator based instead of using NodeType*. The iterator type may
28192            still be a Node* though.
28193
28194        (WebCore::NodeType>::CollectionIndexCache): Deleted.
28195        (WebCore::NodeType>::nodeCount): Deleted.
28196        (WebCore::NodeType>::computeNodeCountUpdatingListCache): Deleted.
28197        (WebCore::NodeType>::nodeBeforeCached): Deleted.
28198        (WebCore::NodeType>::nodeAfterCached): Deleted.
28199        (WebCore::NodeType>::nodeAt): Deleted.
28200        (WebCore::NodeType>::invalidate): Deleted.
28201        * dom/ElementDescendantIterator.h:
28202        (WebCore::ElementDescendantIterator::operator--):
28203        
28204            Add backward iteration support.
28205
28206        (WebCore::ElementDescendantIteratorAdapter::last):
28207        (WebCore::ElementDescendantConstIteratorAdapter::last):
28208        
28209            Add a way to get the last item.
28210            Provide std::iterator_traits so we can extract the type.
28211
28212        * dom/LiveNodeList.h:
28213        (WebCore::CachedLiveNodeList::collectionEnd):
28214        (WebCore::CachedLiveNodeList<NodeListType>::CachedLiveNodeList):
28215        (WebCore::CachedLiveNodeList<NodeListType>::~CachedLiveNodeList):
28216        (WebCore::CachedLiveNodeList<NodeListType>::collectionBegin):
28217        (WebCore::CachedLiveNodeList<NodeListType>::collectionLast):
28218        (WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseForward):
28219        (WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseBackward):
28220        (WebCore::CachedLiveNodeList<NodeListType>::invalidateCache):
28221        (WebCore::CachedLiveNodeList<NodeListType>::collectionFirst): Deleted.
28222        
28223            Make LiveNodeList traversal use ElementDescendantIterator.
28224
28225        (WebCore::nextMatchingElement): Deleted.
28226        (WebCore::previousMatchingElement): Deleted.
28227        * html/HTMLCollection.cpp:
28228        (WebCore::HTMLCollection::HTMLCollection):
28229        (WebCore::HTMLCollection::~HTMLCollection):
28230        (WebCore::HTMLCollection::collectionBegin):
28231        (WebCore::HTMLCollection::collectionTraverseForward):
28232        (WebCore::HTMLCollection::collectionTraverseBackward):
28233        (WebCore::HTMLCollection::invalidateCache):
28234        (WebCore::HTMLCollection::collectionFirst): Deleted.
28235        * html/HTMLCollection.h:
28236        (WebCore::HTMLCollection::collectionEnd):
28237        
28238            HTMLCollection still uses Element* as iterator for now.
28239
282402014-03-29  Commit Queue  <commit-queue@webkit.org>
28241
28242        Unreviewed, rolling out r166434.
28243        https://bugs.webkit.org/show_bug.cgi?id=130938
28244
28245        Caused crashes and other failures on cache tests (Requested by
28246        ap on #webkit).
28247
28248        Reverted changeset:
28249
28250        "Web Replay: add page-level setting to bypass the MemoryCache"
28251        https://bugs.webkit.org/show_bug.cgi?id=130728
28252        http://trac.webkit.org/changeset/166434
28253
282542014-03-29  David Kilzer  <ddkilzer@apple.com>
28255
28256        Preserve selection end positions in directionOfSelection
28257        <http://webkit.org/b/104813>
28258        <rdar://problem/13666417>
28259
28260        Reviewed by Brent Fulgham.
28261
28262        Merged from Blink (patch by kenrb@chromium.org):
28263        https://src.chromium.org/viewvc/blink?revision=150621&view=revision
28264        http://crbug.com/164263
28265
28266            VisibleSelection::visibleStart() and VisibleSelection::visibleEnd()
28267            can both cause layouts, which has the potential to invalidate any
28268            rendertree-based objects. This was causing a problem in
28269            FrameSelection::directionOfSelection(), where a reference to a
28270            lineBox was being held across a call to visibleEnd().
28271
28272            This patch ensures that the any layout is completed before linebox
28273            references are retrieved.
28274
28275        Test: editing/selection/layout-during-move-selection-crash.html
28276
28277        * editing/FrameSelection.cpp:
28278        (WebCore::FrameSelection::directionOfSelection):
28279
282802014-03-29  Zalan Bujtas  <zalan@apple.com>
28281
28282        Subpixel rendering: Simple line layout should not round to integral position while painting.
28283        https://bugs.webkit.org/show_bug.cgi?id=130934
28284
28285        Reviewed by Simon Fraser.
28286
28287        Remove rounding to integral position. When RenderLayer is injected and hides subpixel positions,
28288        integral rounding produces different paint position.
28289
28290        Test: fast/flexbox/hidpi-simple-line-layout-with-flexbox-and-transition.html
28291
28292        * rendering/SimpleLineLayoutFunctions.cpp:
28293        (WebCore::SimpleLineLayout::paintFlow):
28294
282952014-03-29  Zalan Bujtas  <zalan@apple.com>
28296
28297        Subpixel rendering: Make GraphicsContext::drawImageBuffer* functions float based.
28298        https://bugs.webkit.org/show_bug.cgi?id=130932
28299
28300        Reviewed by Simon Fraser.
28301        
28302        This is in preparation to support device pixel based filter painting.
28303        Filter calculation is still integral based.
28304
28305        No change in behavior.
28306
28307        * platform/graphics/GraphicsContext.cpp:
28308        (WebCore::GraphicsContext::drawImageBuffer):
28309        * platform/graphics/GraphicsContext.h:
28310        * platform/graphics/filters/FilterEffect.cpp: This will eventually be fully float based.
28311        Right now, this IntRect->FloatRect change is only to ensure that we can call 
28312        the float based drawImageBuffer(). 
28313        (WebCore::FilterEffect::drawingRegionOfInputImage):
28314        * platform/graphics/filters/FilterEffect.h:
28315
283162014-03-27  Sam Weinig  <sam@webkit.org>
28317
28318        Convert yet more of HTMLConverter to C++
28319        https://bugs.webkit.org/show_bug.cgi?id=130850
28320
28321        Reviewed by Anders Carlsson.
28322
28323        * editing/cocoa/HTMLConverter.mm:
28324        (HTMLConverterCaches::isAncestorsOfStartToBeConverted):
28325        (HTMLConverter::HTMLConverter):
28326        (HTMLConverter::~HTMLConverter):
28327        (HTMLConverter::convert):
28328        (HTMLConverter::computedAttributesForElement):
28329        (HTMLConverter::attributesForElement):
28330        (HTMLConverter::_newParagraphForElement):
28331        (HTMLConverter::_newLineForElement):
28332        (HTMLConverter::_newTabForElement):
28333        (HTMLConverter::_addAttachmentForElement):
28334        (HTMLConverter::_addQuoteForElement):
28335        (HTMLConverter::_addValue):
28336        (HTMLConverter::_processHeadElement):
28337        (HTMLConverter::_enterElement):
28338        (HTMLConverter::_addTableCellForElement):
28339        (HTMLConverter::_processElement):
28340        (HTMLConverter::_addMarkersToList):
28341        (HTMLConverter::_exitElement):
28342        (HTMLConverter::_processText):
28343        (HTMLConverter::_traverseNode):
28344        (HTMLConverter::_traverseFooterNode):
28345        (WebCore::attributedStringFromRange):
28346        (_childrenForNode): Deleted.
28347        (HTMLConverter::_computedAttributesForElement): Deleted.
28348        (HTMLConverter::_attributesForElement): Deleted.
28349        (HTMLConverter::_loadFromDOMRange): Deleted.
28350
283512014-03-28  Csaba Osztrogonác  <ossy@webkit.org>
28352
28353        Unreviewed buildfix after r166441 and r166443.
28354
28355        * CMakeLists.txt: Add platform/audio/AudioHardwareListener.cpp.
28356
283572014-03-28  Javier Fernandez  <jfernandez@igalia.com>
28358
28359        [CSS Grid Layout] The 'auto' height must be adapted to the item's margin.
28360        https://bugs.webkit.org/show_bug.cgi?id=130920
28361
28362        Reviewed by Darin Adler.
28363
28364        Adding the grid-item's marginLogicalHeight to the used breadth when computing
28365        content based grid-track sizes.
28366
28367        Test: fast/css-grid-layout/grid-item-margin-auto-columns-rows.html
28368
28369        * rendering/RenderGrid.cpp:
28370        (WebCore::RenderGrid::logicalContentHeightForChild):
28371
283722014-03-28  James Craig  <jcraig@apple.com>
28373
28374        Web Inspector: AXI: support for live regions
28375        https://bugs.webkit.org/show_bug.cgi?id=130725
28376
28377        Reviewed by Timothy Hatcher.
28378
28379        Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
28380               inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion.html
28381
28382        Initial support for @aria-live, @aria-atomic, and @aria-busy.
28383
28384        * inspector/InspectorDOMAgent.cpp:
28385        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
28386        * inspector/protocol/DOM.json:
28387
283882014-03-28  Darin Adler  <darin@apple.com>
28389
28390        Fix recently-introduced off-by-one error in centerTruncateToBuffer
28391        https://bugs.webkit.org/show_bug.cgi?id=130889
28392        <rdar://problem/16408694>
28393
28394        Reviewed by Alexey Proskuryakov.
28395
28396        * platform/graphics/StringTruncator.cpp:
28397        (WebCore::centerTruncateToBuffer): Simplified expression that computes truncatedLength.
28398        Removed incorrect "+ 1" from computation of where to write characters.
28399
284002014-03-28  Benjamin Poulain  <bpoulain@apple.com>
28401
28402        Update the code related to SelectorPseudoTypeMap to reflect its new purpose
28403        https://bugs.webkit.org/show_bug.cgi?id=130620
28404
28405        Reviewed by Andreas Kling.
28406
28407        Since r166094, SelectorPseudoTypeMap only contains PseudoClass instances and the 4 compatibility PseudoElement.
28408
28409        This patch rename SelectorPseudoTypeMap to SelectorPseudoClassAndCompatibilityElementMap and update the parsing
28410        to split PseudoClass and PseudoElement.
28411
28412        * CMakeLists.txt:
28413        * DerivedSources.make:
28414        * WebCore.xcodeproj/project.pbxproj:
28415        * css/CSSGrammar.y.in:
28416        * css/CSSParserValues.cpp:
28417        (WebCore::CSSParserSelector::parsePseudoClassAndCompatibilityElementSelector):
28418        (WebCore::CSSParserSelector::setPseudoClassValue):
28419        * css/CSSParserValues.h:
28420        * css/CSSSelector.cpp:
28421        (WebCore::appendPseudoClassFunctionTail):
28422        (WebCore::CSSSelector::selectorText):
28423        * css/SelectorPseudoClassAndCompatibilityElementMap.in: Renamed from Source/WebCore/css/SelectorPseudoTypeMap.in.
28424        * css/SelectorPseudoTypeMap.h:
28425        * css/makeSelectorPseudoClassAndCompatibilityElementMap.py: Renamed from Source/WebCore/css/makeSelectorPseudoTypeMap.py.
28426        (enumerablePseudoType):
28427        (expand_ifdef_condition):
28428
284292014-03-28  Stephanie Lewis  <slewis@apple.com>
28430
28431        Unreviewed build fix.
28432
28433        * platform/audio/AudioHardwareListener.cpp:
28434        (WebCore::AudioHardwareListener::create):
28435        (WebCore::AudioHardwareListener::audioHardwareListenerIsSupported): Deleted.
28436        * platform/audio/AudioHardwareListener.h:
28437
284382014-03-28  Lukasz Bialek  <l.bialek@samsung.com>
28439
28440        Refactor cut and copy functions as suggested in FIXME line
28441        https://bugs.webkit.org/show_bug.cgi?id=129867
28442
28443        Reviewed by Darin Adler.
28444
28445        Cut and Copy functions in Editor.cpp use lots of common code.
28446        Those functions are merged into one to share code, several
28447        additional conditions are added to preserve Cut and Copy
28448        functionality.
28449
28450        * editing/Editor.cpp:
28451        (WebCore::Editor::cut):
28452        (WebCore::Editor::copy):
28453        (WebCore::Editor::performCutOrCopy):
28454        * editing/Editor.h:
28455
284562014-03-28  Stephanie Lewis  <slewis@apple.com>
28457
28458        Rename pluginDidEvaluate to better represent when it’s called.
28459        Part of <rdar://problem/16061257> PluginProcess should AppNap when no plugins on active tab.
28460
28461        Reviewed by Anders Carlsson.
28462
28463        No new test because it’s just a name change.
28464
28465        * page/PageThrottler.h:
28466        (WebCore::PageThrottler::pluginDidEvaluateWhileAudioIsPlaying):
28467
284682014-03-28  Stephanie Lewis  <slewis@apple.com>
28469
28470        Notification handler for telling if audio hardware is active.
28471        https://bugs.webkit.org/show_bug.cgi?id=130743
28472
28473        Reviewed by Jer Noble.
28474
28475        Not web-exposed so no easy way to test.
28476
28477        Listen to CoreAudio to see if audio hardware is active in the current process.
28478
28479        * WebCore.exp.in:
28480        * WebCore.xcodeproj/project.pbxproj:
28481        * platform/audio/AudioHardwareListener.cpp: Added.
28482        (WebCore::AudioHardwareListener::create):
28483        (WebCore::AudioHardwareListener::AudioHardwareListener):
28484        * platform/audio/AudioHardwareListener.h: Added.
28485        (WebCore::AudioHardwareListener::Client::~Client):
28486        (WebCore::AudioHardwareListener::~AudioHardwareListener):
28487        (WebCore::AudioHardwareListener::isHardwareActive):
28488        * platform/audio/mac/AudioHardwareListenerMac.cpp: Added.
28489        (WebCore::isAudioHardwareProcessRunning):
28490        (WebCore::AudioHardwareListener::create):
28491        (WebCore::AudioHardwareListenerMac::create):
28492        (WebCore::AudioHardwareListenerMac::AudioHardwareListenerMac):
28493        (WebCore::AudioHardwareListenerMac::~AudioHardwareListenerMac):
28494        (WebCore::AudioHardwareListenerMac::setHardwareActive):
28495        * platform/audio/mac/AudioHardwareListenerMac.h: Added.
28496
284972014-03-28  James Craig  <jcraig@apple.com>
28498
28499        Web Inspector: AXI: expose what elements get generic "clickable" status
28500        https://bugs.webkit.org/show_bug.cgi?id=130721
28501
28502        Reviewed by Timothy Hatcher.
28503
28504        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html:
28505        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode_mouseEventNodeId.html
28506
28507        Expose ancestor element link to "Click Listener" or generic "Clickable: Yes" if current node has mouse handler.
28508
28509        Update AccessibilityNodeObject::mouseButtonListener() to optionally return body element if 
28510            requested so that Web Inspector can display body event delegate handlers.
28511
28512        * accessibility/AccessibilityNodeObject.cpp:
28513        (WebCore::AccessibilityNodeObject::mouseButtonListener):
28514        * accessibility/AccessibilityNodeObject.h:
28515        * inspector/InspectorDOMAgent.cpp:
28516        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
28517        * inspector/protocol/DOM.json:
28518
285192014-03-28  Joseph Pecoraro  <pecoraro@apple.com>
28520
28521        Web Inspector: Really drop all locks in nested run loop on iOS if WebThread is enabled
28522        https://bugs.webkit.org/show_bug.cgi?id=130912
28523
28524        Reviewed by Geoffrey Garen.
28525
28526        Previously we were calling DropAllLocks inside of a single line if statement,
28527        so the JSLock was getting reaquired very quickly. We really want to DropAllLocks
28528        for the duration of running the nested run loop on iOS if there is a WebThread.
28529
28530        * bindings/js/PageScriptDebugServer.h:
28531        * bindings/js/PageScriptDebugServer.cpp:
28532        (WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
28533        (WebCore::PageScriptDebugServer::runEventLoopWhilePausedInternal):
28534
285352014-03-28  Brent Fulgham  <bfulgham@apple.com>
28536
28537        [Win] Enable Media Track testing features on Windows
28538        https://bugs.webkit.org/show_bug.cgi?id=130851
28539
28540        Reviewed by Eric Carlson.
28541
28542        * testing/Internals.cpp:
28543        (WebCore::Internals::resetToConsistentState): Execute code on Windows as well.
28544        (WebCore::Internals::Internals): Ditto.
28545        (WebCore::Internals::captionsStyleSheetOverride): Ditto.
28546        (WebCore::Internals::setCaptionsStyleSheetOverride): Ditto.
28547        (WebCore::Internals::setPrimaryAudioTrackLanguageOverride): Ditto.
28548        (WebCore::Internals::setCaptionDisplayMode): Ditto.
28549
285502014-03-28  Brian Burg  <bburg@apple.com>
28551
28552        Web Replay: add page-level setting to bypass the MemoryCache
28553        https://bugs.webkit.org/show_bug.cgi?id=130728
28554
28555        Reviewed by Timothy Hatcher.
28556
28557        When replaying a specific Page we don't want to store its cached resources in the
28558        MemoryCache. This patch adds a page setting to prevent the page's resources from
28559        being saved in the MemoryCache.
28560
28561        If Settings::usesMemoryCache() is false, page resources are given the special
28562        SessionID bypassCacheSessionID(). The cached resource loader and memory cache
28563        act as if the memory cache is disabled if the resource has this special session id.
28564
28565        Hook up ReplayController to override the memory cache setting during capture/replay.
28566
28567        Test: http/tests/cache/bypass-memory-cache-after-reload.html
28568
28569        * loader/cache/CachedResourceLoader.cpp:
28570        (WebCore::CachedResourceLoader::requestResource):
28571        (WebCore::CachedResourceLoader::revalidateResource):
28572        * loader/cache/MemoryCache.cpp:
28573        (WebCore::MemoryCache::add):
28574        * page/Page.cpp:
28575        (WebCore::Page::sessionID):
28576        * page/SessionID.h:
28577        (WebCore::SessionID::bypassCacheSessionID):
28578        * page/Settings.cpp:
28579        (WebCore::Settings::Settings):
28580        * page/Settings.h:
28581        (WebCore::Settings::setUsesMemoryCache):
28582        (WebCore::Settings::usesMemoryCache):
28583        * replay/ReplayController.cpp:
28584        (WebCore::ReplayController::setForceDeterministicSettings):
28585        * replay/ReplayController.h:
28586        * testing/InternalSettings.cpp:
28587        (WebCore::InternalSettings::Backup::Backup):
28588        (WebCore::InternalSettings::Backup::restoreTo):
28589        (WebCore::InternalSettings::setUsesMemoryCache):
28590        * testing/InternalSettings.h:
28591        * testing/InternalSettings.idl:
28592
285932014-03-28  Radu Stavila  <stavila@adobe.com>
28594
28595        In some situations, partial layouts of floating elements produce incorrect results.
28596        https://bugs.webkit.org/show_bug.cgi?id=122668
28597
28598        Reviewed by David Hyatt.
28599
28600        When performing partial layout of float elements and checking if other float
28601        elements are encountered, incorrect results were obtained by not checking
28602        the size of the existing floats vector.
28603
28604        Test: fast/block/float/floats-in-clean-line-crash.html
28605
28606        * rendering/RenderBlockLineLayout.cpp:
28607        (WebCore::RenderBlockFlow::checkFloatsInCleanLine):
28608
286092014-03-28  Beth Dakin  <bdakin@apple.com>
28610
28611        Build fix.
28612
28613        * rendering/RenderTheme.cpp:
28614        (WebCore::RenderTheme::paint):
28615
286162014-03-28  Jer Noble  <jer.noble@apple.com>
28617
28618        [MSE] Implement support for SourceBuffer.remove()
28619        https://bugs.webkit.org/show_bug.cgi?id=121562
28620
28621        Reviewed by Eric Carlson.
28622
28623        Test: media/media-source/media-source-remove.html
28624
28625        Add support for SourceBuffer.remove().
28626
28627        * Modules/mediasource/SourceBuffer.cpp:
28628        (WebCore::SourceBuffer::SourceBuffer): Initialize new member variables.
28629        (WebCore::SourceBuffer::setTimestampOffset): Update comments to match spec.
28630        (WebCore::SourceBuffer::remove): Added; start removeTimer.
28631        (WebCore::SourceBuffer::abortIfUpdating): Cancel removeTimer.
28632        (WebCore::SourceBuffer::removedFromMediaSource): Call abortIfUpdating().
28633        (WebCore::SourceBuffer::stop): Cancel removeTimer.
28634        (WebCore::SourceBuffer::removeCodedFrames): Added.
28635        (WebCore::SourceBuffer::removeTimerFired): Added.
28636        * Modules/mediasource/SourceBuffer.h:
28637        * Modules/mediasource/SourceBuffer.idl:
28638
286392014-03-27  Dean Jackson  <dino@apple.com>
28640
28641        Support form controls that may need incremental redraw
28642        https://bugs.webkit.org/show_bug.cgi?id=130736
28643
28644        Reviewed by Beth Dakin.
28645
28646        There are some form controls that change appearance
28647        over time. Expand the ControlStates so that it can
28648        hold a little more information, including a reference
28649        to the native form control. This way the Theme implementation
28650        can repaint the existing native control if necessary. At
28651        least ThemeMac was reusing a single control for painting
28652        all instances before this change.
28653
28654        Since ControlStates is now a class, pass it around by
28655        reference.
28656
28657        The other major change is keeping a timer to trigger a
28658        repaint in RenderBox, which happens if Theme/RenderTheme
28659        update the ControlState to request one.
28660
28661        * WebCore.xcodeproj/project.pbxproj: Add ControlStates.h.
28662        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
28663        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
28664        * dom/Element.cpp:
28665        (WebCore::Element::setActive): States now within ControlStates.
28666        (WebCore::Element::setHovered): Ditto.
28667        * editing/FrameSelection.cpp:
28668        (WebCore::FrameSelection::focusedOrActiveStateChanged): Ditto.
28669        * html/HTMLFormControlElement.cpp:
28670        (WebCore::HTMLFormControlElement::disabledStateChanged): Ditto.
28671        (WebCore::HTMLFormControlElement::readOnlyAttributeChanged): Ditto.
28672        * html/HTMLInputElement.cpp:
28673        (WebCore::HTMLInputElement::setChecked): Ditto.
28674        (WebCore::HTMLInputElement::setIndeterminate): Ditto.
28675        * html/HTMLOptionElement.cpp:
28676        (WebCore::HTMLOptionElement::parseAttribute): Ditto.
28677        * platform/ControlStates.h: New file. Copied the old ControlStates enum,
28678        and added accessors to hold whether or not the state is dirty, and
28679        a reference to a platform control if necessary.
28680        * platform/Theme.h:
28681        (WebCore::Theme::selectionColor): Pass ControlStates pointer.
28682        (WebCore::Theme::paint): Ditto.
28683        (WebCore::Theme::inflateControlPaintRect): Ditto.
28684        * platform/ThemeTypes.h: Remove ControlStates enum.
28685        * platform/efl/RenderThemeEfl.cpp:
28686        (WebCore::RenderThemeEfl::applyEdjeStateFromForm): Pass ControlStates pointer.
28687        (WebCore::RenderThemeEfl::paintThemePart): Ditto.
28688        * platform/efl/RenderThemeEfl.h: Ditto.
28689        * platform/mac/ThemeMac.h: Ditto.
28690        * platform/mac/ThemeMac.mm:
28691        (-[WebCoreThemeView addSubview:]): New method to make sure we don't add CALayer backed
28692        views to the NSView we're using for rendering.
28693        (WebCore::updateStates): Use the private animated setters if necessary.
28694        (WebCore::convertControlStatesToThemeDrawState): Namespacing.
28695        (WebCore::configureCheckbox): Pass ControlStates pointer.
28696        (WebCore::createCheckboxCell): New helper since we're creating non-static cells.
28697        (WebCore::sharedCheckboxCell): The old static provider, renamed.
28698        (WebCore::paintCheckbox): Check if this paint was triggered by a state change
28699        or an animation. Update the ControlStates if we need to be repainted.
28700        (WebCore::radio): Parameter is now ControlStates*.
28701        (WebCore::paintRadio): Ditto.
28702        (WebCore::setUpButtonCell): Ditto.
28703        (WebCore::button): Ditto.
28704        (WebCore::paintButton): Ditto.
28705        (WebCore::paintStepper): Ditto.
28706        (WebCore::ThemeMac::ensuredView): Ditto.
28707        (WebCore::ThemeMac::inflateControlPaintRect): Ditto.
28708        (WebCore::ThemeMac::paint): Ditto.
28709        (WebCore::checkbox): Deleted.
28710        * rendering/RenderBox.cpp:
28711        (WebCore::RenderBox::RenderBox): Initialize timer.
28712        (WebCore::RenderBox::~RenderBox): Stop any pending timers and delete the ControlState if necessary.
28713        (WebCore::RenderBox::paintBoxDecorations): Create a ControlStates if needed. Paint, and start the repaint
28714        timer if the ControlStates say we should.
28715        (WebCore::RenderBox::repaintTimerFired): Call repaint when the timer fires.
28716        * rendering/RenderBox.h: Add a timer for repainting.
28717        * rendering/RenderElement.cpp:
28718        (WebCore::controlStatesRendererMap): A static HashMap that associates renderers with ControlStates.
28719        (WebCore::RenderElement::hasControlStatesForRenderer):
28720        (WebCore::RenderElement::controlStatesForRenderer):
28721        (WebCore::RenderElement::removeControlStatesForRenderer):
28722        (WebCore::RenderElement::addControlStatesForRenderer):
28723        * rendering/RenderElement.h:
28724        * rendering/RenderTheme.cpp:
28725        (WebCore::RenderTheme::paint): Use a pointer to ControlStates.
28726        (WebCore::RenderTheme::adjustRepaintRect): Ditto.
28727        (WebCore::RenderTheme::stateChanged): Ditto.
28728        (WebCore::RenderTheme::updateControlStatesForRenderer): New method that just updates the states part of ControlStates.
28729        (WebCore::RenderTheme::extractControlStatesForRenderer): New method that calculates the state.
28730        (WebCore::RenderTheme::controlStatesForRenderer): Deleted.
28731        * rendering/RenderTheme.h:
28732        * rendering/RenderThemeMac.mm:
28733        (WebCore::RenderThemeMac::documentViewFor): Use a ControlStates pointer.
28734
287352014-03-28  Myles C. Maxfield  <mmaxfield@apple.com>
28736
28737        Clear SVGInlineTextBox fragments when the text changes.
28738        https://bugs.webkit.org/show_bug.cgi?id=130879
28739
28740        Reviewed by Darin Adler.
28741
28742        Ported from Blink: https://src.chromium.org/viewvc/blink?revision=150456&view=revision
28743
28744        This patch modifies SVGInlineTextBox::dirtyLineBoxes to clear all
28745        following text boxes when invoked. Typically this method is called
28746        when the underlying text string changes, and that change needs to
28747        be propagated to all the boxes that use the text beyond the point
28748        where the text is first modified.
28749        
28750        Also cleans up final function keywords for SVGRootInlineBox.
28751
28752        Test: svg/custom/unicode-in-tspan-multi-svg-crash.html
28753
28754        * rendering/InlineTextBox.h: Added (non-recursive) dirtyOwnLineBoxes() function
28755        (WebCore::InlineTextBox::dirtyOwnLineBoxes): Calls dirtyLineBoxes()
28756        * rendering/svg/SVGInlineTextBox.h: Added (non-recursive) dirtyOwnLineBoxes() function
28757        (WebCore::SVGInlineTextBox::dirtyOwnLineBoxes):
28758        * rendering/svg/SVGInlineTextBox.cpp:
28759        (WebCore::SVGInlineTextBox::dirtyOwnLineBoxes): Non-recursive part of dirtyLineBoxes()
28760        (WebCore::SVGInlineTextBox::dirtyLineBoxes): Calls dirtyOwnLineBoxes() in a loop
28761        * rendering/svg/SVGRootInlineBox.h:
28762
287632014-03-28  Andreas Kling  <akling@apple.com>
28764
28765        Rebaseline bindings tests.
28766
287672014-03-28  Michael Saboff  <msaboff@apple.com>
28768
28769        Unreviewed, rolling r166248 back in.
28770
28771        Turns out r166070 didn't cause a 2% performance loss in page load times
28772
28773        Reverted changeset:
28774
28775        Unreviewed, rolling out r166126.
28776        Rollout r166126 in prepartion to roll out prerequisite r166070
28777
287782014-03-26  Antonio Gomes  <a1.gomes@sisa.samsung.com>
28779
28780        [Bindings] constants are always typed to 'int'
28781        https://bugs.webkit.org/show_bug.cgi?id=130775
28782
28783        Reviewed by Darin Adler.
28784
28785        Patch fixes a bug where all constant getter generated
28786        methods were returning 'integer' values due to static_cast.
28787
28788        Compilers should be smarth enough to properly infer which
28789        jsNumber class construtor to call given a literal value.
28790
28791        Patch also fixes a bug where values whose representation
28792        is bigger an integer maximum were overflowing. For instance,
28793        NodeFilter.SHOW_ALL (0xFFFFFFFF).
28794
28795        Tests:
28796        Binding tests updated.
28797        Rebaselined fast/dom/constants.html
28798
28799        * bindings/scripts/CodeGeneratorJS.pm:
28800        (GenerateImplementation):
28801        * bindings/scripts/test/JS/JSTestInterface.cpp:
28802        (WebCore::jsTestInterfaceIMPLEMENTSCONSTANT1):
28803        (WebCore::jsTestInterfaceIMPLEMENTSCONSTANT2):
28804        (WebCore::jsTestInterfaceSUPPLEMENTALCONSTANT1):
28805        (WebCore::jsTestInterfaceSUPPLEMENTALCONSTANT2):
28806        * bindings/scripts/test/JS/JSTestObj.cpp:
28807        (WebCore::jsTestObjCONDITIONAL_CONST):
28808        (WebCore::jsTestObjCONST_VALUE_0):
28809        (WebCore::jsTestObjCONST_VALUE_1):
28810        (WebCore::jsTestObjCONST_VALUE_2):
28811        (WebCore::jsTestObjCONST_VALUE_4):
28812        (WebCore::jsTestObjCONST_VALUE_8):
28813        (WebCore::jsTestObjCONST_VALUE_9):
28814        (WebCore::jsTestObjCONST_VALUE_11):
28815        (WebCore::jsTestObjCONST_VALUE_12):
28816        (WebCore::jsTestObjCONST_VALUE_13):
28817        (WebCore::jsTestObjCONST_VALUE_14):
28818        (WebCore::jsTestObjCONST_JAVASCRIPT):
28819        (WebCore::jsTestObjReadonly):
28820
288212014-03-28  Myles C. Maxfield  <mmaxfield@apple.com>
28822
28823        A TrailingObject's endpoint might get decremented twice
28824        https://bugs.webkit.org/show_bug.cgi?id=130874
28825
28826        Reviewed by Darin Adler.
28827
28828        There are two places where we might shave off a trailing space from the end
28829        of a line. We don't want to hit both codepaths for a single line.
28830
28831        Fixes fast/block/update-midpoints-for-trailing-boxes-crash.html after r166245.
28832
28833        * rendering/line/BreakingContextInlineHeaders.h:
28834        (WebCore::checkMidpoints):
28835        (WebCore::BreakingContext::handleEndOfLine):
28836
288372014-03-28  Andreas Kling  <akling@apple.com>
28838
28839        Inline JSDOMWrapper subclasses' finishCreation().
28840        <https://webkit.org/b/130890>
28841
28842        finishCreation() is really a no-op for JSDOMWrapper subclasses in
28843        release builds. None of the ancestor classes do anything but assert
28844        in their implementations.
28845
28846        Generate the function inline, reducing binary size, and removing
28847        an unnecessary call from the JSFoo::create() helpers.
28848
28849        Reviewed by Sam Weinig.
28850
28851        * bindings/scripts/CodeGeneratorJS.pm:
28852        (GenerateHeader):
28853        (GenerateImplementation):
28854
288552014-03-28  Jer Noble  <jer.noble@apple.com>
28856
28857        [Mac] HLS streams will report an incorrect natural size.
28858        https://bugs.webkit.org/show_bug.cgi?id=130859
28859
28860        Reviewed by Eric Carlson.
28861
28862        Some HLS streams will report incorrect naturalSizes due to the asset's preferredTransform
28863        property not being  available at the same time as the track's natural size. Given that
28864        AVFoundation only allows one video track to be selected at a time, simply use the asset's
28865        presentation size, cached in m_cachedPresentation size in all cases.
28866
28867        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
28868        (WebCore::MediaPlayerPrivateAVFoundationObjC::sizeChanged):
28869
288702014-03-28  Antti Koivisto  <antti@apple.com>
28871
28872        Remove NodeListRootType flag
28873        https://bugs.webkit.org/show_bug.cgi?id=130896
28874
28875        Reviewed by Anders Carlsson.
28876
28877        This can be handled statically (except for the RadioNodeList case) removing
28878        a branch from NodeList traversal.
28879
28880        * dom/ClassNodeList.h:
28881        * dom/Document.cpp:
28882        (WebCore::Document::registerNodeListForInvalidation):
28883        (WebCore::Document::unregisterNodeListForInvalidation):
28884        (WebCore::Document::registerNodeList): Deleted.
28885        (WebCore::Document::unregisterNodeList): Deleted.
28886        
28887            Mark document invalidation registered lists with a bit.
28888            Renamed for clarity.
28889
28890        * dom/Document.h:
28891        * dom/LiveNodeList.cpp:
28892        (WebCore::LiveNodeList::LiveNodeList):
28893        (WebCore::LiveNodeList::rootNode):
28894        
28895            Base class version that invokes virtual isRootedAtDocument. It is needed to support 
28896            LiveNodeList::namedItem.
28897
28898        * dom/LiveNodeList.h:
28899        (WebCore::LiveNodeList::isRegisteredForInvalidationAtDocument):
28900        (WebCore::LiveNodeList::setRegisteredForInvalidationAtDocument):
28901        (WebCore::LiveNodeList::document):
28902        (WebCore::CachedLiveNodeList<NodeListType>::CachedLiveNodeList):
28903        (WebCore::CachedLiveNodeList<NodeListType>::~CachedLiveNodeList):
28904        (WebCore::CachedLiveNodeList<NodeListType>::rootNode):
28905        
28906            Call isRootedAtDocument on the final leaf type. Except for RadioNodeList this
28907            resolves statically.
28908
28909        (WebCore::CachedLiveNodeList<NodeListType>::willValidateIndexCache):
28910        (WebCore::CachedLiveNodeList<NodeListType>::invalidateCache):
28911        (WebCore::LiveNodeList::isRootedAtDocument): Deleted.
28912        (WebCore::LiveNodeList::rootType): Deleted.
28913        (WebCore::LiveNodeList::rootNode): Deleted.
28914        * dom/NameNodeList.h:
28915        * dom/NodeRareData.h:
28916        (WebCore::NodeListsNodeData::adoptDocument):
28917        * dom/TagNodeList.h:
28918        * html/HTMLCollection.cpp:
28919        (WebCore::rootTypeFromCollectionType):
28920        * html/HTMLCollection.h:
28921        (WebCore::HTMLCollection::isRootedAtDocument):
28922        (WebCore::HTMLCollection::rootType):
28923        
28924            HTMLCollections still needs the flag.
28925
28926        * html/LabelsNodeList.cpp:
28927        (WebCore::LabelsNodeList::LabelsNodeList):
28928        * html/LabelsNodeList.h:
28929        * html/RadioNodeList.cpp:
28930        (WebCore::RadioNodeList::RadioNodeList):
28931        * html/RadioNodeList.h:
28932
289332014-03-28  Mario Sanchez Prada  <mario.prada@samsung.com>
28934
28935        [GTK] Geoclue2 providers won't work after reloading
28936        https://bugs.webkit.org/show_bug.cgi?id=130898
28937
28938        Reviewed by Martin Robinson.
28939
28940        Don't reuse the Geoclue2 client proxy between different calls to
28941        startPosition(), and create a new client proxy each time instead.
28942
28943        * platform/geoclue/GeolocationProviderGeoclue2.cpp:
28944        (GeolocationProviderGeoclue::startUpdating): Don't reuse the
28945        client proxy, by always calling geoclue_manager_call_get_client().
28946        (GeolocationProviderGeoclue::stopUpdating): Disconnect from the
28947        'location-updated' signal and dispose the client proxy.
28948
289492014-03-28  Diego Pino Garcia  <dpino@igalia.com>
28950
28951        [GTK] Too many redirects visiting www.globalforestwatch.org
28952        https://bugs.webkit.org/show_bug.cgi?id=129681
28953
28954        Reviewed by Martin Robinson.
28955
28956        * platform/gtk/UserAgentGtk.cpp:
28957        (WebCore::standardUserAgent): Append Safari version to UserAgent
28958        string.
28959
289602014-03-28  Michael Saboff  <msaboff@apple.com>
28961
28962        Unreviewed, rolling r166249 back in.
28963
28964        Turns out r166070 didn't cause a 2% performance loss in page load times
28965
28966        Reverted changeset:
28967
28968        Unreviewed, rolling out r166070.
28969        Rollout r166070 due to 2% performance loss in page load times
28970
289712014-03-28  James Craig  <jcraig@apple.com>
28972
28973        Web Inspector: Copy/paste error. EventListener block in DOM.json uses description from Node.
28974        https://bugs.webkit.org/show_bug.cgi?id=130158
28975
28976        Reviewed by Timothy Hatcher.
28977
28978        * inspector/protocol/DOM.json: Fixed a copy/paste annoyance.
28979
289802014-03-27  James Craig  <jcraig@apple.com>
28981
28982        Web Inspector: AXI: expose selectedChildNodeIds of list boxes, tree controls, etc., and reconcile UI with childNodeIds
28983        https://bugs.webkit.org/show_bug.cgi?id=130827
28984
28985        Reviewed by Timothy Hatcher.
28986
28987        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
28988
28989        Support for selectedChildNodeIds in inspector-protocol: DOM.getAccessibilityPropertiesForNode.
28990
28991        * inspector/InspectorDOMAgent.cpp:
28992        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
28993        * inspector/protocol/DOM.json:
28994
289952014-03-27  Brent Fulgham  <bfulgham@apple.com>
28996
28997        Specify Shadow DOM Pseudo IDs in Media Element Constructors
28998        https://bugs.webkit.org/show_bug.cgi?id=130882
28999
29000        Reviewed by Eric Carlson.
29001
29002        * html/shadow/MediaControlElements.cpp:
29003        (WebCore::MediaControlPanelElement::MediaControlPanelElement): Call setPseudoId in constructor.
29004        (WebCore::MediaControlPanelEnclosureElement::MediaControlPanelEnclosureElement): Ditto.
29005        (WebCore::MediaControlTimelineContainerElement::MediaControlTimelineContainerElement): Ditto.
29006        (WebCore::MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement): Ditto.
29007        (WebCore::MediaControlStatusDisplayElement::MediaControlStatusDisplayElement): Ditto.
29008        (WebCore::MediaControlPanelMuteButtonElement::MediaControlPanelMuteButtonElement): Ditto.
29009        (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement): Ditto.
29010        (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Ditto.
29011        (WebCore::MediaControlOverlayPlayButtonElement::MediaControlOverlayPlayButtonElement): Ditto.
29012        (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement): Ditto.
29013        (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement): Ditto.
29014        (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement): Ditto.
29015        (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement): Ditto.
29016        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement): Ditto.
29017        (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement): Ditto.
29018        (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): Ditto.
29019        (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Ditto.
29020        (WebCore::MediaControlPanelVolumeSliderElement::MediaControlPanelVolumeSliderElement): Ditto.
29021        (WebCore::MediaControlFullscreenVolumeSliderElement::MediaControlFullscreenVolumeSliderElement): Ditto.
29022        (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Ditto.
29023        (WebCore::MediaControlFullscreenVolumeMinButtonElement::MediaControlFullscreenVolumeMinButtonElement): Ditto.
29024        (WebCore::MediaControlFullscreenVolumeMaxButtonElement::MediaControlFullscreenVolumeMaxButtonElement): Ditto.
29025        (WebCore::MediaControlTimeRemainingDisplayElement::MediaControlTimeRemainingDisplayElement): Ditto.
29026        (WebCore::MediaControlCurrentTimeDisplayElement::MediaControlCurrentTimeDisplayElement): Ditto.
29027        (WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement): Ditto.
29028
290292014-03-27  Benjamin Poulain  <bpoulain@apple.com>
29030
29031        [iOS][WK2] Adjust the tile coverage on the scrollview's edges
29032        https://bugs.webkit.org/show_bug.cgi?id=130884
29033
29034        Reviewed by Dan Bernstein.
29035
29036        * platform/ios/ScrollViewIOS.mm:
29037        (WebCore::ScrollView::computeCoverageRect):
29038        Pull back the future rect inside the contentRect if it goes outside.
29039        There is no point in retiling for rubberbanding and the extra tiles should be always be
29040        on the opposite side to the edges.
29041
290422014-03-27  Joseph Pecoraro  <pecoraro@apple.com>
29043
29044        Remove unused LocaleMac::create method
29045        https://bugs.webkit.org/show_bug.cgi?id=130870
29046
29047        Reviewed by Andreas Kling.
29048
29049        * platform/text/mac/LocaleMac.h:
29050        * platform/text/mac/LocaleMac.mm:
29051        (WebCore::LocaleMac::create): Deleted.
29052        (WebCore::LocaleMac::shortDateFormatter): Deleted.
29053
290542014-03-27  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
29055
29056        Clean up unneeded "mutable" keyword
29057        https://bugs.webkit.org/show_bug.cgi?id=130832
29058
29059        Reviewed by Andreas Kling.
29060
29061        As r166350, this patch cleans up unneeded "mutable" keywords.
29062        Additionally, m_validatedSelectionCache is removed because it is not used anywhere else.
29063
29064        * css/CSSFontFaceRule.h:
29065        * css/CSSStyleRule.h:
29066        * editing/FrameSelection.h:
29067
290682014-03-27  Enrica Casucci  <enrica@apple.com>
29069
29070        Add support for AirPlay picker in WK2 for iOS.
29071        https://bugs.webkit.org/show_bug.cgi?id=130855
29072        <rdar://problem/15349859>
29073
29074        Reviewed by Eric Carlson, Joseph Pecoraro and Benjamin Poulain.
29075
29076        Adds support in HTMLMediaSession to display the airplay picker
29077        and to monitor presence of available wireless targets.
29078
29079        * html/HTMLMediaSession.cpp:
29080        (WebCore::HTMLMediaSession::showPlaybackTargetPicker):
29081        (WebCore::HTMLMediaSession::hasWirelessPlaybackTargets):
29082        (WebCore::HTMLMediaSession::setHasPlaybackTargetAvailabilityListeners):
29083        * loader/EmptyClients.h:
29084        * page/ChromeClient.h:
29085        * platform/audio/MediaSessionManager.cpp:
29086        (WebCore::MediaSessionManager::wirelessRoutesAvailableChanged):
29087        * platform/audio/MediaSessionManager.h:
29088        (WebCore::MediaSessionManager::hasWirelessTargetsAvailable):
29089        (WebCore::MediaSessionManager::startMonitoringAirPlayRoutes):
29090        (WebCore::MediaSessionManager::stopMonitoringAirPlayRoutes):
29091        * platform/audio/ios/MediaSessionManagerIOS.h:
29092        * platform/audio/ios/MediaSessionManagerIOS.mm:
29093        (WebCore::MediaSessionManageriOS::hasWirelessTargetsAvailable):
29094        (WebCore::MediaSessionManageriOS::startMonitoringAirPlayRoutes):
29095        (WebCore::MediaSessionManageriOS::stopMonitoringAirPlayRoutes):
29096        (-[WebMediaSessionHelper initWithCallback:]):
29097        (-[WebMediaSessionHelper hasWirelessTargetsAvailable]):
29098        (-[WebMediaSessionHelper startMonitoringAirPlayRoutes]):
29099        (-[WebMediaSessionHelper stopMonitoringAirPlayRoutes]):
29100        (-[WebMediaSessionHelper wirelessRoutesAvailableDidChange:]):
29101        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
29102        (WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessVideoPlaybackDisabled):
29103        (WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessVideoPlaybackDisabled):
29104
291052014-03-27  Bem Jones-Bey  <bjonesbe@adobe.com>
29106
29107        [CSS Shapes][css clip-path] rounded corner calculation for box shapes is wrong
29108        https://bugs.webkit.org/show_bug.cgi?id=127982
29109
29110        Reviewed by Simon Fraser.
29111
29112        Calculate rounded corners for box shapes as defined in the CSS Shapes
29113        spec.
29114
29115        Tests: css3/masking/clip-path-border-radius-border-box-000.html
29116               css3/masking/clip-path-border-radius-content-box-000.html
29117               css3/masking/clip-path-border-radius-content-box-001.html
29118               css3/masking/clip-path-border-radius-padding-box-000.html
29119               css3/masking/clip-path-border-radius-padding-box-001.html
29120               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-border-box-000.html
29121               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-border-box-001.html
29122               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-border-box-002.html
29123               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-content-box-000.html
29124               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-content-box-001.html
29125               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-content-box-002.html
29126               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-content-box-003.html
29127               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-margin-box-000.html
29128               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-margin-box-001.html
29129               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-margin-box-002.html
29130               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-margin-box-003.html
29131               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-margin-box-004.html
29132               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-padding-box-000.html
29133               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-padding-box-001.html
29134               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-padding-box-002.html
29135               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-padding-box-003.html
29136
29137        * platform/graphics/RoundedRect.h:
29138        (WebCore::RoundedRect::Radii::transposedRadii): Transpose radii for
29139            vertical writing modes.
29140        (WebCore::RoundedRect::moveBy): Add method for use with clip path.
29141        (WebCore::RoundedRect::transposedRect): Transpose rect for vertical
29142            writing modes.
29143        * rendering/RenderBox.h:
29144        (WebCore::RenderBox::marginBoxRect): Return the margin box rect for
29145            the RenderBox.
29146        * rendering/RenderLayer.cpp:
29147        (WebCore::RenderLayer::setupClipPath): Call the new function for the
29148            rounded corner calculation.
29149        * rendering/shapes/ShapeInfo.cpp:
29150        (WebCore::ShapeInfo<RenderType>::computedShape): Call the new function
29151            for the rounded corner calculation.
29152        * rendering/shapes/BoxShape.cpp:
29153        (WebCore::adjustRadiusForMarginBoxShape): Helper function for
29154            computeRoundedRectForLayoutBoxShape.
29155        (WebCore::computeMarginBoxShapeRadius): Ditto.
29156        (WebCore::computeMarginBoxShapeRadii): Ditto.
29157        (WebCore::computeRoundedRectForBoxShape): Utility function to do the
29158            rounded corner calculation.
29159        * rendering/shapes/BoxShape.h: Add new function.
29160        * rendering/style/RenderStyle.h:
29161        (WebCore::RenderStyle::getRoundedInnerBorderFor): Add default argument
29162            values.
29163
291642014-03-27  Commit Queue  <commit-queue@webkit.org>
29165
29166        Unreviewed, rolling out r166364.
29167        https://bugs.webkit.org/show_bug.cgi?id=130872
29168
29169        Caused a test assertion (Requested by smfr on #webkit).
29170
29171        Reverted changeset:
29172
29173        "Operator stretching: expose a math data API"
29174        https://bugs.webkit.org/show_bug.cgi?id=130572
29175        http://trac.webkit.org/changeset/166364
29176
291772014-03-27  Benjamin Poulain  <bpoulain@apple.com>
29178
29179        [iOS][WK2] Compute a good exposed rect when scaling WKContentView
29180        https://bugs.webkit.org/show_bug.cgi?id=130761
29181
29182        Reviewed by Simon Fraser.
29183
29184        * WebCore.exp.in:
29185        * platform/ScrollView.h:
29186        * platform/ios/ScrollViewIOS.mm:
29187        (WebCore::ScrollView::setScrollVelocity):
29188        (WebCore::ScrollView::computeCoverageRect):
29189        While scaling in, do not add margins tiles. When scaling out, add 1 margin tile size
29190        all around.
29191
291922014-03-27  Commit Queue  <commit-queue@webkit.org>
29193
29194        Unreviewed, rolling out r166360.
29195        https://bugs.webkit.org/show_bug.cgi?id=130869
29196
29197        Seems to have broken PLT (Requested by ap on #webkit).
29198
29199        Reverted changeset:
29200
29201        "Connection::dispatchOneMessage() can be re-entered while
29202        handling Cmd-key menu"
29203        https://bugs.webkit.org/show_bug.cgi?id=130767
29204        http://trac.webkit.org/changeset/166360
29205
292062014-03-27  Antti Koivisto  <antti@apple.com>
29207
29208        Remove LiveNodeList::Type
29209        https://bugs.webkit.org/show_bug.cgi?id=130866
29210
29211        Reviewed by Andreas Kling.
29212
29213        We don't need dynamic type information anymore.
29214
29215        * dom/ClassNodeList.cpp:
29216        (WebCore::ClassNodeList::ClassNodeList):
29217        * dom/ContainerNode.cpp:
29218        (WebCore::ContainerNode::getElementsByTagName):
29219        (WebCore::ContainerNode::getElementsByName):
29220        (WebCore::ContainerNode::getElementsByClassName):
29221        (WebCore::ContainerNode::radioNodeList):
29222        * dom/LiveNodeList.cpp:
29223        (WebCore::LiveNodeList::LiveNodeList):
29224        * dom/LiveNodeList.h:
29225        (WebCore::LiveNodeList::invalidationType):
29226        (WebCore::CachedLiveNodeList<NodeListType>::CachedLiveNodeList):
29227        (WebCore::LiveNodeList::type): Deleted.
29228        * dom/NameNodeList.cpp:
29229        (WebCore::NameNodeList::NameNodeList):
29230        (WebCore::NameNodeList::nodeMatches): Deleted.
29231        * dom/NameNodeList.h:
29232        (WebCore::NameNodeList::nodeMatches):
29233        * dom/NodeRareData.h:
29234        (WebCore::NodeListTypeIdentifier<ClassNodeList>::value):
29235        (WebCore::NodeListTypeIdentifier<NameNodeList>::value):
29236        (WebCore::NodeListTypeIdentifier<TagNodeList>::value):
29237        (WebCore::NodeListTypeIdentifier<HTMLTagNodeList>::value):
29238        (WebCore::NodeListTypeIdentifier<RadioNodeList>::value):
29239        (WebCore::NodeListTypeIdentifier<LabelsNodeList>::value):
29240        
29241            Get unique id from type for key generation purposes only.
29242
29243        (WebCore::NodeListsNodeData::addCacheWithAtomicName):
29244        (WebCore::NodeListsNodeData::addCacheWithName):
29245        (WebCore::NodeListsNodeData::removeCacheWithAtomicName):
29246        (WebCore::NodeListsNodeData::removeCacheWithName):
29247        (WebCore::NodeListsNodeData::namedNodeListKey):
29248        * dom/TagNodeList.cpp:
29249        (WebCore::TagNodeList::TagNodeList):
29250        (WebCore::HTMLTagNodeList::HTMLTagNodeList):
29251        * dom/TagNodeList.h:
29252        * html/LabelableElement.cpp:
29253        (WebCore::LabelableElement::labels):
29254        * html/LabelsNodeList.cpp:
29255        (WebCore::LabelsNodeList::LabelsNodeList):
29256        * html/LabelsNodeList.h:
29257        * html/RadioNodeList.cpp:
29258        (WebCore::RadioNodeList::RadioNodeList):
29259        * html/RadioNodeList.h:
29260
292612014-03-27  Simon Fraser  <simon.fraser@apple.com>
29262
29263        Fix crash when RenderView is cleared inside of frame flattening layout
29264        https://bugs.webkit.org/show_bug.cgi?id=130864
29265
29266        Reviewed by Dan Bernstein.
29267        
29268        Navigating on http://wallstcheatsheet.com pages on iOS in WebKit1 would
29269        sometimes crash when, inside the inChildFrameLayoutWithFrameFlattening clause,
29270        our frame's RenderView would be null after doing a layout from the root frame,
29271        possibly also when WebCore was being re-entered from another thread.
29272        
29273        Add a null check to fix this.
29274        
29275        Crash was timing-dependent and hard to test.
29276
29277        * page/FrameView.cpp:
29278        (WebCore::FrameView::layout):
29279
292802014-03-27  Antti Koivisto  <antti@apple.com>
29281
29282        Remove some unnecessary branches from LiveNodeList traversal
29283        https://bugs.webkit.org/show_bug.cgi?id=130854
29284
29285        Reviewed by Andreas Kling.
29286
29287        Compile different traversal code paths for all NodeList subclasses.
29288
29289        * dom/ClassNodeList.cpp:
29290        (WebCore::ClassNodeList::ClassNodeList):
29291        (WebCore::ClassNodeList::~ClassNodeList):
29292        (WebCore::ClassNodeList::nodeMatches): Deleted.
29293        * dom/ClassNodeList.h:
29294        (WebCore::ClassNodeList::nodeMatches):
29295        (WebCore::ClassNodeList::nodeMatchesInlined): Deleted.
29296        
29297            Remove separate nodeMatchesInlined functions. 
29298            We now rely on exact types and marking classes final.
29299
29300        * dom/LiveNodeList.cpp:
29301        (WebCore::LiveNodeList::LiveNodeList):
29302        (WebCore::LiveNodeList::~LiveNodeList):
29303        (WebCore::LiveNodeList::namedItem):
29304        (WebCore::LiveNodeList::rootNode): Deleted.
29305        (WebCore::isMatchingElement): Deleted.
29306        (WebCore::firstMatchingElement): Deleted.
29307        (WebCore::lastMatchingElement): Deleted.
29308        (WebCore::nextMatchingElement): Deleted.
29309        (WebCore::previousMatchingElement): Deleted.
29310        (WebCore::traverseMatchingElementsForward): Deleted.
29311        (WebCore::traverseMatchingElementsBackward): Deleted.
29312        (WebCore::LiveNodeList::collectionFirst): Deleted.
29313        (WebCore::LiveNodeList::collectionLast): Deleted.
29314        (WebCore::LiveNodeList::collectionTraverseForward): Deleted.
29315        (WebCore::LiveNodeList::collectionTraverseBackward): Deleted.
29316        (WebCore::LiveNodeList::length): Deleted.
29317        (WebCore::LiveNodeList::item): Deleted.
29318        (WebCore::LiveNodeList::memoryCost): Deleted.
29319        (WebCore::LiveNodeList::invalidateCache): Deleted.
29320        * dom/LiveNodeList.h:
29321        (WebCore::LiveNodeList::invalidateCacheForAttribute):
29322        (WebCore::CachedLiveNodeList::collectionCanTraverseBackward):
29323        (WebCore::LiveNodeList::rootNode):
29324        (WebCore::CachedLiveNodeList<NodeListType>::CachedLiveNodeList):
29325        
29326            Add CachedLiveNodeList<NodeListType> utility type that interfaces with CollectionIndexCache.
29327            It is the base class for all concrete LiveNodeLists.
29328
29329        (WebCore::CachedLiveNodeList<NodeListType>::~CachedLiveNodeList):
29330        (WebCore::CachedLiveNodeList<NodeListType>::collectionFirst):
29331        (WebCore::CachedLiveNodeList<NodeListType>::collectionLast):
29332        (WebCore::nextMatchingElement):
29333        (WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseForward):
29334        (WebCore::previousMatchingElement):
29335        (WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseBackward):
29336        (WebCore::CachedLiveNodeList<NodeListType>::willValidateIndexCache):
29337        (WebCore::CachedLiveNodeList<NodeListType>::invalidateCache):
29338        (WebCore::CachedLiveNodeList<NodeListType>::length):
29339        (WebCore::CachedLiveNodeList<NodeListType>::item):
29340        (WebCore::CachedLiveNodeList<NodeListType>::memoryCost):
29341        
29342            Templated code moves to header.
29343
29344        (WebCore::LiveNodeList::LiveNodeList): Deleted.
29345        (WebCore::LiveNodeList::~LiveNodeList): Deleted.
29346        (WebCore::LiveNodeList::invalidateCache): Deleted.
29347        (WebCore::LiveNodeList::collectionCanTraverseBackward): Deleted.
29348        (WebCore::LiveNodeList::willValidateIndexCache): Deleted.
29349        * dom/NameNodeList.cpp:
29350        (WebCore::NameNodeList::NameNodeList):
29351        * dom/NameNodeList.h:
29352        * dom/Node.cpp:
29353        (WebCore::Document::invalidateNodeListAndCollectionCaches):
29354        (WebCore::NodeListsNodeData::invalidateCaches):
29355        * dom/TagNodeList.cpp:
29356        (WebCore::TagNodeList::TagNodeList):
29357        (WebCore::HTMLTagNodeList::HTMLTagNodeList):
29358        (WebCore::HTMLTagNodeList::~HTMLTagNodeList):
29359        (WebCore::TagNodeList::nodeMatches): Deleted.
29360        (WebCore::HTMLTagNodeList::nodeMatches): Deleted.
29361        * dom/TagNodeList.h:
29362        (WebCore::TagNodeList::nodeMatches):
29363        (WebCore::HTMLTagNodeList::nodeMatches):
29364        (WebCore::TagNodeList::create): Deleted.
29365        (WebCore::HTMLTagNodeList::nodeMatchesInlined): Deleted.
29366        * html/LabelsNodeList.cpp:
29367        (WebCore::LabelsNodeList::LabelsNodeList):
29368        * html/LabelsNodeList.h:
29369        * html/RadioNodeList.cpp:
29370        (WebCore::RadioNodeList::RadioNodeList):
29371        * html/RadioNodeList.h:
29372
293732014-03-27  Adenilson Cavalcanti  <cavalcantii@gmail.com>
29374
29375        Remove comment from Filter.h
29376        https://bugs.webkit.org/show_bug.cgi?id=130848
29377
29378        Reviewed by Simon Fraser.
29379
29380        Exploring the use of consts on applyScale() methods didn't yield
29381        good results.
29382
29383        No new tests, no change on behavior.
29384
29385        * platform/graphics/filters/Filter.h:
29386
293872014-03-27  Frédéric Wang  <fred.wang@free.fr>
29388
29389        Operator stretching: expose a math data API
29390        https://bugs.webkit.org/show_bug.cgi?id=130572
29391
29392        Reviewed by Chris Fleizach.
29393
29394        We expose a new SimpleFontData API to give access to the data from the
29395        OpenType MATH table using a font cache. The class OpenTypeMathData will
29396        be implemented in bug 130324. On Darwin platform, we also implement the
29397        missing FontPlatformData::openTypeTable function which will be necessary
29398        to load the OpenType MATH table. The changes are intended to be used
29399        for MathML operator stretching (bug 130322) so tests are not added yet.
29400
29401        * CMakeLists.txt: add new OpenTypeMathData files.
29402        * WebCore.vcxproj/WebCore.vcxproj: ditto.
29403        * WebCore.vcxproj/WebCore.vcxproj.filters: ditto.
29404        * WebCore.xcodeproj/project.pbxproj: ditto.
29405        * platform/graphics/FontCache.cpp: We add a FontCache::getMathData function to implement a cache for the math data.
29406        We make the math and vertical data share the same key for the cache.
29407        (WebCore::fontMathDataCacheInstance):
29408        (WebCore::FontCache::getMathData):
29409        (WebCore::fontVerticalDataCacheInstance):
29410        * platform/graphics/FontCache.h: We declare FontCache::getMathData and FontFileKey on all platforms.
29411        * platform/graphics/FontPlatformData.cpp:
29412        (WebCore::FontPlatformData::openTypeTable): We implement openTypeTable() on Darwin platform.
29413        * platform/graphics/FontPlatformData.h: We expose openTypeTable() on Darwin platform.
29414        * platform/graphics/SimpleFontData.cpp: We initialize m_mathData from the font cache.
29415        (WebCore::SimpleFontData::SimpleFontData):
29416        * platform/graphics/SimpleFontData.h: We expose a mathData() function to access the MATH data.
29417        * platform/graphics/opentype/OpenTypeMathData.cpp: Added. This is a new class that will be used to parse the data from the OpenType MATH table.
29418        (WebCore::OpenTypeMathData::OpenTypeMathData):
29419        * platform/graphics/opentype/OpenTypeMathData.h: Added.
29420        (WebCore::OpenTypeMathData::create):
29421        (WebCore::OpenTypeMathData::hasMathData):
29422
294232014-03-27  Brent Fulgham  <bfulgham@apple.com>
29424
29425        Fix a crash caused by track insertion after load()
29426        https://bugs.webkit.org/show_bug.cgi?id=130777
29427
29428        Reviewed by Eric Carlson.
29429
29430        Test: media/track/track-insert-after-load-crash.html
29431
29432        Based on the Blink change (patch by acolwell@chromium.org):
29433        https://codereview.chromium.org/211373009/
29434
29435        * html/HTMLMediaElement.cpp:
29436        (WebCore::HTMLMediaElement::parseAttribute): Remove stale LoadMediaResource flag after explicit load.
29437
294382014-03-27  Alexey Proskuryakov  <ap@apple.com>
29439
29440        Connection::dispatchOneMessage() can be re-entered while handling Cmd-key menu
29441        equivalents, ASSERT(!_data->_keyDownEventBeingResent)
29442        https://bugs.webkit.org/show_bug.cgi?id=130767
29443        <rdar://problem/16307487>
29444
29445        Added a wrapper for RunLoop::initializeMainThread that also adds modal run loop
29446        mode to it on Mac.
29447
29448        * CMakeLists.txt:
29449        * WebCore.exp.in:
29450        * WebCore.vcxproj/WebCore.vcxproj:
29451        * WebCore.vcxproj/WebCore.vcxproj.filters:
29452        * WebCore.xcodeproj/project.pbxproj:
29453        * platform/MainRunLoop.cpp: Added.
29454        (WebCore::initializeMainRunLoop):
29455        * platform/MainRunLoop.h: Added.
29456        * platform/mac/MainRunLoop.mm: Added.
29457        (WebCore::initializeMainRunLoop):
29458
294592014-03-27  Krzysztof Czech  <k.czech@samsung.com>
29460
29461        AX: Returns const reference to static string.
29462        https://bugs.webkit.org/show_bug.cgi?id=130835
29463
29464        Reviewed by Mario Sanchez Prada.
29465
29466        Avoiding some unnecessary copies by returning const reference to static string.
29467
29468        No new tests. No behaviour change.
29469
29470        * accessibility/AccessibilityMediaControls.cpp:
29471        (WebCore::AccessibilityMediaControl::controlTypeName):
29472        (WebCore::AccessibilityMediaControlsContainer::elementTypeName):
29473        * accessibility/AccessibilityMediaControls.h:
29474
294752014-03-27  Mihnea Ovidenie  <mihnea@adobe.com>
29476
29477        [CSSRegions] Rename inNamedFlow flag to isNamedFlowContentNode flag
29478        https://bugs.webkit.org/show_bug.cgi?id=130731
29479
29480        Reviewed by Andrei Bucur.
29481
29482        Currently, the inNamedFlow flag in Node class tells if a node is a content node, one that has a style with flow-into.
29483        Since it is used only for those nodes and not propagated through hierarchy, i want to renamed it to a more meaningful name.
29484        No new functionality, no new tests.
29485
29486        * dom/ContainerNode.cpp:
29487        (WebCore::destroyRenderTreeIfNeeded):
29488        * dom/Element.cpp:
29489        (WebCore::Element::~Element):
29490        (WebCore::Element::unregisterNamedFlowContentElement):
29491        * dom/Node.h:
29492        (WebCore::Node::isNamedFlowContentNode):
29493        (WebCore::Node::setIsNamedFlowContentNode):
29494        (WebCore::Node::clearIsNamedFlowContentNode):
29495        * rendering/RenderNamedFlowThread.cpp:
29496        (WebCore::RenderNamedFlowThread::clearContentElements):
29497        (WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):
29498        (WebCore::RenderNamedFlowThread::unregisterNamedFlowContentElement):
29499        (WebCore::nextNodeInsideContentElement):
29500        * style/StyleResolveTree.cpp:
29501        (WebCore::Style::attachChildren):
29502        (WebCore::Style::resolveLocal):
29503
295042014-03-27  Mihnea Ovidenie  <mihnea@adobe.com>
29505
29506        [CSSRegions] Crash when cloning a region child with a content node child
29507        https://bugs.webkit.org/show_bug.cgi?id=129811
29508
29509        Reviewed by David Hyatt.
29510
29511        Collecting the children of a region in another named flow will be supported
29512        again in the future and it will be revisited when we will implement the content
29513        keyword: http://dev.w3.org/csswg/css-regions-1/#the-flow-into-property.
29514        Remove the support for now as it introduces unnecessary complexity in the code
29515        and potential wrong behavior.
29516
29517        Test: fast/regions/region-content-node-child-clone-crash.html
29518
29519        * dom/Element.cpp:
29520        (WebCore::Element::shouldMoveToFlowThread):
29521        (WebCore::Element::clearStyleDerivedDataBeforeDetachingRenderer):
29522        * dom/Element.h:
29523        * dom/ElementRareData.h:
29524        (WebCore::ElementRareData::ElementRareData):
29525        * rendering/FlowThreadController.cpp:
29526        * rendering/FlowThreadController.h:
29527        * style/StyleResolveTree.cpp:
29528        (WebCore::Style::moveToFlowThreadIfNeeded):
29529        (WebCore::Style::createRendererIfNeeded):
29530
295312014-03-27  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
29532
29533        Remove unneeded mutable keyword in some member variables 
29534        https://bugs.webkit.org/show_bug.cgi?id=130813
29535
29536        Reviewed by Andreas Kling.
29537
29538        Some member variables have mutable keyword though they don't used by const function.
29539        This patch removes them. 
29540
29541        No new tests, no behavior changes. Just clean up.
29542
29543        * storage/StorageAreaSync.h:
29544        * svg/animation/SVGSMILElement.h:
29545
295462014-03-27  Commit Queue  <commit-queue@webkit.org>
29547
29548        Unreviewed, rolling out r166296 and r166331.
29549        https://bugs.webkit.org/show_bug.cgi?id=130822
29550
29551        caused some crashes and frequent assertion failures, and the
29552        fix is going to take a little while (Requested by thorton on
29553        #webkit).
29554
29555        Reverted changesets:
29556
29557        "[iOS WebKit2] Flush all surfaces after painting into all of
29558        them, instead of after painting into each one"
29559        https://bugs.webkit.org/show_bug.cgi?id=130768
29560        http://trac.webkit.org/changeset/166296
29561
29562        "Assertion failure in RemoteLayerBackingStore::flush"
29563        https://bugs.webkit.org/show_bug.cgi?id=130810
29564        http://trac.webkit.org/changeset/166331
29565
295662014-03-26  Simon Fraser  <simon.fraser@apple.com>
29567
29568        Fix failing scrolling tests by reverting to previous behavior where
29569        the scrolling geometry for the main frame scrolling node was only
29570        updated from frameViewLayoutUpdated() and no-where else.
29571
29572        * WebCore.exp.in:
29573        * page/scrolling/AsyncScrollingCoordinator.cpp:
29574        (WebCore::AsyncScrollingCoordinator::updateScrollingNode):
29575        * page/scrolling/AsyncScrollingCoordinator.h:
29576        * page/scrolling/ScrollingCoordinator.h:
29577        (WebCore::ScrollingCoordinator::updateScrollingNode):
29578        * rendering/RenderLayerCompositor.cpp:
29579        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
29580        (WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer): Deleted.
29581
295822014-03-26  Ryosuke Niwa  <rniwa@webkit.org>
29583
29584        HTMLConverter::_processText is slow because it walks up ancestor elements
29585        https://bugs.webkit.org/show_bug.cgi?id=130820
29586
29587        Reviewed by Sam Weinig.
29588
29589        Avoid walking up the tree from each text node by caching the aggregated attributed strings for each element.
29590        Also compute the attributed strings top-down to avoid calling mutableCopy in every iteration. 
29591
29592        This reduces the runtime of Interactive/CopyAll.html from 15s to 13s (15%).
29593
29594        * editing/cocoa/HTMLConverter.mm:
29595        (HTMLConverter::_attributesForElement):
29596        (HTMLConverter::attributesForElement):
29597        (HTMLConverter::aggregatedAttributesForAncestors):
29598        (HTMLConverter::_processText):
29599
296002014-03-26  Sam Weinig  <sam@webkit.org>
29601
29602        Fix iOS build.
29603
29604        * editing/cocoa/HTMLConverter.mm:
29605        (_font):
29606
296072014-03-26  Ryosuke Niwa  <rniwa@webkit.org>
29608
29609        Make _processText and _traverseNode in HTMLConverter more efficient
29610        https://bugs.webkit.org/show_bug.cgi?id=130769
29611
29612        Reviewed by Sam Weinig.
29613
29614        Rewrote a bunch of code in C++ and avoided creating wrappers.
29615        This reduces the runtime of Interactive/CopyAll.html from ~16.5s to 15s.
29616
29617        * editing/cocoa/HTMLConverter.mm:
29618        (HTMLConverterCaches::isAncestorsOfStartToBeConverted):
29619        (HTMLConverter::HTMLConverter):
29620        (HTMLConverter::~HTMLConverter):
29621        (HTMLConverter::_processElement):
29622        (HTMLConverter::_processText):
29623        (HTMLConverter::_traverseNode):
29624        (HTMLConverter::_traverseFooterNode):
29625        (HTMLConverterCaches::cacheAncestorsOfStartToBeConverted):
29626        (HTMLConverter::_loadFromDOMRange):
29627
296282014-03-26  Adenilson Cavalcanti  <cavalcantii@gmail.com>
29629
29630        FEGaussianBlur: unify and const-ify calculateKernelSize
29631        https://bugs.webkit.org/show_bug.cgi?id=130779
29632
29633        Some methods can benefit of using const refs as also make sense to
29634        unify the interface (i.e. parameters) in calculateKernelSize/Unscaled.
29635
29636        FilterEffect::filter() will now return a reference, which helps since
29637        its descendants were accessing methods into the pointer without testing
29638        for it.
29639
29640        Reviewed by Simon Fraser.
29641
29642        No new tests, no changes on behavior.
29643
29644        * platform/graphics/filters/FEDisplacementMap.cpp:
29645        (WebCore::FEDisplacementMap::platformApplySoftware):
29646        * platform/graphics/filters/FEDropShadow.cpp:
29647        (WebCore::FEDropShadow::determineAbsolutePaintRect):
29648        (WebCore::FEDropShadow::platformApplySoftware):
29649        * platform/graphics/filters/FEGaussianBlur.cpp:
29650        (WebCore::FEGaussianBlur::calculateUnscaledKernelSize):
29651        (WebCore::FEGaussianBlur::calculateKernelSize):
29652        (WebCore::FEGaussianBlur::determineAbsolutePaintRect):
29653        (WebCore::FEGaussianBlur::platformApplySoftware):
29654        * platform/graphics/filters/FEGaussianBlur.h:
29655        * platform/graphics/filters/FEMorphology.cpp:
29656        (WebCore::FEMorphology::determineAbsolutePaintRect):
29657        (WebCore::FEMorphology::platformApplySoftware):
29658        * platform/graphics/filters/FEOffset.cpp:
29659        (WebCore::FEOffset::determineAbsolutePaintRect):
29660        (WebCore::FEOffset::platformApplySoftware):
29661        * platform/graphics/filters/FETile.cpp:
29662        (WebCore::FETile::platformApplySoftware):
29663        * platform/graphics/filters/FETurbulence.cpp:
29664        (WebCore::FETurbulence::fillRegion):
29665        * platform/graphics/filters/Filter.h:
29666        (WebCore::Filter::applyHorizontalScale):
29667        (WebCore::Filter::applyVerticalScale):
29668        * platform/graphics/filters/FilterEffect.h:
29669        (WebCore::FilterEffect::filter):
29670        * platform/graphics/filters/SourceAlpha.cpp:
29671        (WebCore::SourceAlpha::determineAbsolutePaintRect):
29672        (WebCore::SourceAlpha::platformApplySoftware):
29673        * platform/graphics/filters/SourceGraphic.cpp:
29674        (WebCore::SourceGraphic::determineAbsolutePaintRect):
29675        (WebCore::SourceGraphic::platformApplySoftware):
29676        * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
29677        (WebCore::RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion):
29678        * svg/graphics/filters/SVGFEImage.cpp:
29679        (WebCore::FEImage::determineAbsolutePaintRect):
29680        (WebCore::FEImage::platformApplySoftware):
29681
296822014-03-26  Simon Fraser  <simon.fraser@apple.com>
29683
29684        Make sure childContainmentLayer is parented
29685        https://bugs.webkit.org/show_bug.cgi?id=130808
29686
29687        Reviewed by Tim Horton.
29688
29689        m_childContainmentLayer was never parented if the page
29690        created no other compositing layers, which left a dangling
29691        GraphicsLayer which in turn confused UI-side compositing a little.
29692        Fix by always parenting this layer.
29693
29694        * rendering/RenderLayerBacking.cpp:
29695        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
29696
296972014-03-26  Brian Burg  <bburg@apple.com>
29698
29699        Web Replay: disable page cache during capture/replay
29700        https://bugs.webkit.org/show_bug.cgi?id=130672
29701
29702        Reviewed by Timothy Hatcher.
29703
29704        Save, set, and restore page cache settings at the correct times.
29705
29706        No new tests. If this code fails, then the tests for network replay will fail.
29707
29708        * replay/ReplayController.cpp:
29709        (WebCore::ReplayController::setForceDeterministicSettings): Added.
29710        (WebCore::ReplayController::startCapturing):
29711        (WebCore::ReplayController::stopCapturing):
29712        (WebCore::ReplayController::cancelPlayback):
29713        (WebCore::ReplayController::replayToPosition):
29714        * replay/ReplayController.h:
29715
297162014-03-26  Sam Weinig  <sam@webkit.org>
29717
29718        Convert more of HTMLConverter to C++
29719        https://bugs.webkit.org/show_bug.cgi?id=130811
29720
29721        Reviewed by Anders Carlsson.
29722
29723        * editing/cocoa/HTMLConverter.mm:
29724        (HTMLConverter::HTMLConverter):
29725        (HTMLConverter::~HTMLConverter):
29726        (HTMLConverter::_blockLevelElementForNode):
29727        (HTMLConverter::_colorForElement):
29728        (HTMLConverter::_computedAttributesForElement):
29729        (HTMLConverter::_attributesForElement):
29730        (HTMLConverter::_fillInBlock):
29731        (HTMLConverter::_enterElement):
29732        (HTMLConverter::_addTableForElement):
29733        (HTMLConverter::_addTableCellForElement):
29734        (HTMLConverter::_processElement):
29735        (HTMLConverter::_exitElement):
29736        (HTMLConverter::_getFloat): Deleted.
29737        (HTMLConverter::_elementIsBlockLevel): Deleted.
29738        (HTMLConverter::_elementHasOwnBackgroundColor): Deleted.
29739        (HTMLConverter::_colorForNode): Deleted.
29740
297412014-03-26  Simon Fraser  <simon.fraser@apple.com>
29742
29743        Hook up -webkit-overflow-scrolling:touch for iOS WK2
29744        https://bugs.webkit.org/show_bug.cgi?id=130809
29745
29746        Reviewed by Tim Horton.
29747
29748        Get -webkit-overflow-scrolling: touch working for iOS WK2.
29749        
29750        * WebCore.exp.in:
29751        * page/scrolling/AsyncScrollingCoordinator.cpp:
29752        (WebCore::AsyncScrollingCoordinator::updateScrollingNode):
29753        Send in ScrollingGeometry when we update scrolling nodes.
29754        * page/scrolling/AsyncScrollingCoordinator.h:
29755        * page/scrolling/ScrollingCoordinator.h:
29756        (WebCore::ScrollingCoordinator::updateScrollingNode):
29757        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
29758        Need to get to the scrolling layer in a subclass.
29759        (WebCore::ScrollingTreeScrollingNodeIOS::scrollLayer):
29760        * rendering/RenderLayer.cpp:
29761        (WebCore::RenderLayer::hasAcceleratedTouchScrolling): Remove code
29762        that temporarily disabled touch-scrolling.
29763        * rendering/RenderLayerCompositor.cpp:
29764        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer): When we
29765        update scrolling nodes, send in the right scrolling geometry.
29766
297672014-03-26  Timothy Hatcher  <timothy@apple.com>
29768
29769        Modernize the loops in InspectorPageAgent.cpp.
29770
29771        Also moves the check for hiddenFromInspector to a lower level.
29772        This hides hidden resources from more places.
29773
29774        https://bugs.webkit.org/show_bug.cgi?id=130803
29775
29776        Reviewed by Joseph Pecoraro.
29777
29778        * inspector/InspectorPageAgent.cpp:
29779        (WebCore::buildArrayForCookies):
29780        (WebCore::cachedResourcesForFrame):
29781        (WebCore::allResourcesURLsForFrame):
29782        (WebCore::InspectorPageAgent::getCookies):
29783        (WebCore::InspectorPageAgent::searchInResources):
29784        (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
29785        (WebCore::InspectorPageAgent::loaderDetachedFromFrame):
29786        (WebCore::InspectorPageAgent::buildObjectForFrameTree):
29787
297882014-03-26  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
29789
29790        Add platform implementation for RTCOfferAnswerOptions and RTCOfferOptions
29791        https://bugs.webkit.org/show_bug.cgi?id=130689
29792
29793        Reviewed by Eric Carlson.
29794
29795        RTCOfferAnswerOptions and RTCOfferOptions objects were being passed to platform class, causing a layer
29796        violation.
29797
29798        * Modules/mediastream/RTCOfferAnswerOptions.cpp:
29799        (WebCore::RTCOfferAnswerOptions::initialize):
29800        (WebCore::RTCOfferOptions::initialize):
29801        * Modules/mediastream/RTCOfferAnswerOptions.h:
29802        (WebCore::RTCOfferAnswerOptions::requestIdentity):
29803        (WebCore::RTCOfferAnswerOptions::privateOfferAnswerOptions):
29804        (WebCore::RTCOfferAnswerOptions::RTCOfferAnswerOptions):
29805        (WebCore::RTCOfferOptions::offerToReceiveVideo):
29806        (WebCore::RTCOfferOptions::offerToReceiveAudio):
29807        (WebCore::RTCOfferOptions::voiceActivityDetection):
29808        (WebCore::RTCOfferOptions::iceRestart):
29809        (WebCore::RTCOfferOptions::privateOfferOptions):
29810        (WebCore::RTCOfferOptions::RTCOfferOptions):
29811        * Modules/mediastream/RTCPeerConnection.cpp:
29812        (WebCore::RTCPeerConnection::createOffer):
29813        (WebCore::RTCPeerConnection::createAnswer):
29814        * platform/mediastream/RTCOfferAnswerOptionsPrivate.h: Added.
29815        * platform/mediastream/RTCPeerConnectionHandler.h:
29816        * platform/mock/RTCPeerConnectionHandlerMock.cpp:
29817        (WebCore::RTCPeerConnectionHandlerMock::createOffer):
29818        (WebCore::RTCPeerConnectionHandlerMock::createAnswer):
29819        * platform/mock/RTCPeerConnectionHandlerMock.h:
29820
298212014-03-26  Zalan Bujtas  <zalan@apple.com>
29822
29823        Device scale factor should always be greater than 0.
29824        https://bugs.webkit.org/show_bug.cgi?id=130798
29825
29826        Reviewed by David Kilzer.
29827
29828        Rendering context requires a device scale factor > 0 so that we can map CSS pixels
29829        to device pixels properly. Neither 0 nor a negative device pixel ratio are considered to be valid.
29830
29831        * page/Page.cpp:
29832        (WebCore::Page::setDeviceScaleFactor):
29833
298342014-03-26  Myles C. Maxfield  <mmaxfield@apple.com>
29835
29836        Skipping underlines disregard points completely inside the underline rect
29837        https://bugs.webkit.org/show_bug.cgi?id=130800
29838
29839        Reviewed by Dean Jackson.
29840
29841        When determining bounds for underline skipping, endpoints of glyph contours
29842        that lie entirely within the rect of the underline are ignored. This patch
29843        makes these points affect the skipping regions the same way that intersections
29844        do.
29845
29846        Test: fast/css3-text/css3-text-decoration/text-decoration-skip/glyph-inside-underline.html
29847
29848        * platform/graphics/mac/FontMac.mm:
29849        (WebCore::updateX): Refactored common code into a function
29850        (WebCore::findPathIntersections): Test for endpoints which lie entirely within
29851        the underline bounds
29852
298532014-03-26  Pratik Solanki  <psolanki@apple.com>
29854
29855        Unreviewed. iOS build fix after r166312. Soft link CMTimeRangeGetEnd.
29856
29857        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
29858
298592014-03-26  Timothy Hatcher  <timothy@apple.com>
29860
29861        Propagate the hiddenFromInspector flag on ResourceRequest in
29862        places when a new request a made or passed between processes.
29863
29864        https://bugs.webkit.org/show_bug.cgi?id=130741
29865
29866        Reviewed by Joseph Pecoraro.
29867
29868        * WebCore.exp.in: Updated symbols for updateFromDelegatePreservingOldProperties.
29869        * platform/network/cf/ResourceRequest.h:
29870        * platform/network/cf/ResourceRequestCFNet.cpp:
29871        (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Added.
29872        (WebCore::ResourceRequest::updateFromDelegatePreservingOldHTTPBody): Deleted.
29873        * platform/network/curl/ResourceRequest.h:
29874        (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Added.
29875        (WebCore::ResourceRequest::updateFromDelegatePreservingOldHTTPBody): Deleted.
29876        * platform/network/mac/ResourceRequestMac.mm:
29877        (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Added.
29878        (WebCore::ResourceRequest::updateFromDelegatePreservingOldHTTPBody): Deleted.
29879        * platform/network/soup/ResourceRequest.h:
29880        (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Added.
29881        (WebCore::ResourceRequest::updateFromDelegatePreservingOldHTTPBody): Deleted.
29882
298832014-03-26  Zoltan Horvath  <zoltan@webkit.org>
29884
29885        [CSS Shapes] Remove no-longer-used shape-inside geometry code
29886        https://bugs.webkit.org/show_bug.cgi?id=130740
29887
29888        Reviewed by David Hyatt.
29889
29890        This patch removes shape-padding support, since it can be used only with shape-inside.
29891        Shape-inside support has been removed in r166301.
29892
29893        No new tests needed, existing tests have been removed by r166301.
29894
29895        * rendering/shapes/BoxShape.cpp:
29896        (WebCore::BoxShape::shapePaddingLogicalBoundingBox): Deleted.
29897        (WebCore::BoxShape::shapePaddingBounds): Deleted.
29898        (WebCore::BoxShape::getIncludedIntervals): Deleted.
29899        (WebCore::BoxShape::firstIncludedIntervalLogicalTop): Deleted.
29900        * rendering/shapes/BoxShape.h:
29901        * rendering/shapes/PolygonShape.cpp:
29902        (WebCore::leftSide): Deleted.
29903        (WebCore::isReflexVertex): Deleted.
29904        (WebCore::computeShapePaddingBounds): Deleted.
29905        (WebCore::PolygonShape::shapePaddingBounds): Deleted.
29906        (WebCore::PolygonShape::getIncludedIntervals): Deleted.
29907        (WebCore::firstFitRectInPolygon): Deleted.
29908        (WebCore::aboveOrToTheLeft): Deleted.
29909        (WebCore::PolygonShape::firstIncludedIntervalLogicalTop): Deleted.
29910        * rendering/shapes/PolygonShape.h:
29911        (WebCore::PolygonShape::PolygonShape):
29912        * rendering/shapes/RasterShape.cpp:
29913        (WebCore::RasterShapeIntervals::firstIncludedIntervalY): Deleted.
29914        (WebCore::RasterShapeIntervals::getIncludedIntervals): Deleted.
29915        (WebCore::RasterShape::paddingIntervals): Deleted.
29916        (WebCore::RasterShape::getIncludedIntervals): Deleted.
29917        (WebCore::RasterShape::firstIncludedIntervalLogicalTop): Deleted.
29918        * rendering/shapes/RasterShape.h:
29919        * rendering/shapes/RectangleShape.cpp:
29920        (WebCore::ellipseYIntercept): Deleted.
29921        (WebCore::RectangleShape::shapePaddingBounds): Deleted.
29922        (WebCore::RectangleShape::getIncludedIntervals): Deleted.
29923        (WebCore::cornerInterceptForWidth): Deleted.
29924        (WebCore::RectangleShape::firstIncludedIntervalLogicalTop): Deleted.
29925        * rendering/shapes/RectangleShape.h:
29926        * rendering/shapes/Shape.cpp:
29927        (WebCore::Shape::createShape):
29928        (WebCore::Shape::createRasterShape):
29929        (WebCore::Shape::createBoxShape):
29930        * rendering/shapes/Shape.h:
29931        (WebCore::Shape::lineOverlapsShapePaddingBounds): Deleted.
29932        (WebCore::Shape::shapePadding): Deleted.
29933        * rendering/shapes/ShapeInfo.cpp:
29934        (WebCore::ShapeInfo<RenderType>::computedShape):
29935        * rendering/style/RenderStyle.cpp:
29936        (WebCore::RenderStyle::changeRequiresLayout):
29937        * rendering/style/RenderStyle.h:
29938        * rendering/style/StyleRareNonInheritedData.cpp:
29939        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
29940        (WebCore::StyleRareNonInheritedData::operator==):
29941        * rendering/style/StyleRareNonInheritedData.h:
29942
299432014-03-26  Jeremy Jones  <jeremyj@apple.com>
29944
29945        Implement hasLiveStreamingContent property in WebAVPlayerController
29946        https://bugs.webkit.org/show_bug.cgi?id=128684
29947
29948        Reviewed by Simon Fraser.
29949
29950        * WebCore.exp.in:
29951        Add export for WebVideoFullscreenInterfaceAVKit::setSeekableRanges().
29952
29953        * platform/ios/WebVideoFullscreenInterface.h:
29954        Add setSeekableRanges()
29955
29956        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
29957        Add setSeekableRanges()
29958
29959        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
29960        Remove vestigial playerLayer property. Add seekableTimeRanges property.
29961
29962        (-[WebAVPlayerController dealloc]):
29963        Release _seekableTimeRanges.
29964        Remove references to _playerLayer.
29965
29966        (-[WebAVPlayerController hasLiveStreamingContent]):
29967        Implement based on duration. Live stream has an infinite duration.
29968
29969        (+[WebAVPlayerController keyPathsForValuesAffectingHasLiveStreamingContent]):
29970        Describe dependent keys for computed property hasLiveStreamingContent.
29971
29972        (-[WebAVPlayerController skipBackwardThirtySeconds:]):
29973        Seek back 30 seconds if that time is in the seekable ranges.
29974
29975        (-[WebAVPlayerController gotoEndOfSeekableRanges:]):
29976        Jump to live by going to the of the seekable ranges.
29977
29978        (WebVideoFullscreenInterfaceAVKit::setSeekableRanges):
29979        Convert TimeRange to CMTimeRange.
29980
29981        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
29982        (WebVideoFullscreenModelMediaElement::setMediaElement):
29983        Set initial seekable ranges.
29984
29985        (WebVideoFullscreenModelMediaElement::handleEvent):
29986        Update seekable ranges when time changes.
29987
299882014-03-26  Brent Fulgham  <bfulgham@apple.com>
29989
29990        Fix OS X build.
29991
29992        * WebCore.exp.in: Add missing export symbol.
29993
299942014-03-26  Simon Fraser  <simon.fraser@apple.com>
29995
29996        Fix the Windows build. Add a no-op impl for Mac non-UI-side.
29997
29998        * platform/graphics/ca/mac/PlatformCALayerMac.h:
29999        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
30000        (PlatformCALayerWin::PlatformCALayerWin):
30001        * platform/graphics/ca/win/PlatformCALayerWin.h:
30002
300032014-03-26  Simon Fraser  <simon.fraser@apple.com>
30004
30005        REGRESSION (r155977): matrix animations no longer animate
30006        https://bugs.webkit.org/show_bug.cgi?id=130789
30007        <rdar://problem/15650946>
30008
30009        Reviewed by Dean Jackson.
30010        
30011        r155977 erroneously removed two lines that set the end points for
30012        matrix animations (used when transform lists don't match), so
30013        put them back.
30014        
30015        Also don't repaint when updateContentsScale()
30016        is called and doesn't change the contents scale.
30017
30018        Test: compositing/animation/matrix-animation.html
30019
30020        * platform/graphics/ca/GraphicsLayerCA.cpp:
30021        (WebCore::GraphicsLayerCA::updateRootRelativeScale):
30022        (WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
30023        (WebCore::GraphicsLayerCA::updateContentsScale):
30024
300252014-03-26  Simon Fraser  <simon.fraser@apple.com>
30026
30027        Add a custom behavior flag to GraphicsLayer, piped down to PlatformCALayer, for scrolling layers
30028        https://bugs.webkit.org/show_bug.cgi?id=130778
30029
30030        Reviewed by Tim Horton.
30031
30032        Make it possible to put a "custom behavior" flag on a layer so that,
30033        with UI-side compositing, we know to create a specific type of
30034        layer or view for that GraphicsLayer.
30035
30036        * WebCore.exp.in:
30037        * platform/graphics/GraphicsLayer.cpp:
30038        (WebCore::GraphicsLayer::GraphicsLayer):
30039        * platform/graphics/GraphicsLayer.h:
30040        (WebCore::GraphicsLayer::setCustomBehavior):
30041        (WebCore::GraphicsLayer::customBehavior):
30042        * platform/graphics/ca/GraphicsLayerCA.cpp:
30043        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
30044        (WebCore::GraphicsLayerCA::updateCustomBehavior):
30045        (WebCore::GraphicsLayerCA::setCustomBehavior):
30046        * platform/graphics/ca/GraphicsLayerCA.h:
30047        * platform/graphics/ca/PlatformCALayer.h:
30048        * platform/graphics/ca/mac/PlatformCALayerMac.h:
30049        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
30050        (PlatformCALayerMac::PlatformCALayerMac):
30051        * rendering/RenderLayerBacking.cpp:
30052        (WebCore::RenderLayerBacking::updateScrollingLayers):
30053
300542014-03-26  Brent Fulgham  <bfulgham@apple.com>
30055
30056        Unreviewed test correction.
30057
30058        Because of the way DRT on Windows links to WebCore, having the implementaion of the update
30059        method in the header caused a runtime failure due to duplicate symbols being bound to the
30060        compilation unit.
30061
30062        * accessibility/AXObjectCache.cpp:
30063        (WebCore::AXObjectCache::setEnhancedUserInterfaceAccessibility): Moved from header.
30064        * accessibility/AXObjectCache.h:
30065        (WebCore::AXObjectCache::setEnhancedUserInterfaceAccessibility): Deleted.
30066
300672014-03-26  Jer Noble  <jer.noble@apple.com>
30068
30069        REGRESSION(r162679): Poster image visible under the video
30070        https://bugs.webkit.org/show_bug.cgi?id=130783
30071
30072        Reviewed by Simon Fraser.
30073
30074        In the listed revision, we started checking for isRenderImage()
30075        instead of isImage(). RenderMedias return 'true' for the first
30076        but 'false' for the second. Change the if() statement to check
30077        for isRenderMedia() in addition to !isRenderImage().
30078
30079        * rendering/RenderLayerBacking.cpp:
30080        (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
30081
300822014-03-26  Antti Koivisto  <antti@apple.com>
30083
30084        Render tree construction is O(N^2) in number of siblings
30085        https://bugs.webkit.org/show_bug.cgi?id=129065
30086
30087        Reviewed by Darin Adler.
30088        
30089        When adding a new renderer to the tree we would search for the correct render tree
30090        position by traversing DOM children forward to find something that already has a renderer.
30091        In common case there is no such renderer. This would be repeated for each inserted renderer
30092        leading to O(n^2) in respect to child node count.
30093        
30094        This patch caches the computed render tree insertion position and passes it to siblings.
30095        Until the cached position is reached it can be used for all new renderers.
30096
30097        Test: perf/sibling-renderer-On2.html
30098
30099        * style/StyleResolveTree.cpp:
30100        (WebCore::Style::RenderTreePosition::parent):
30101        (WebCore::Style::RenderTreePosition::RenderTreePosition):
30102        (WebCore::Style::RenderTreePosition::canInsert):
30103        (WebCore::Style::RenderTreePosition::insert):
30104        (WebCore::Style::RenderTreePosition::computeNextSibling):
30105        (WebCore::Style::RenderTreePosition::invalidateNextSibling):
30106        (WebCore::Style::styleForElement):
30107        (WebCore::Style::elementInsideRegionNeedsRenderer):
30108        (WebCore::Style::createRendererIfNeeded):
30109        (WebCore::Style::createTextRendererIfNeeded):
30110        (WebCore::Style::attachTextRenderer):
30111        (WebCore::Style::updateTextRendererAfterContentChange):
30112        (WebCore::Style::attachChildren):
30113        (WebCore::Style::attachDistributedChildren):
30114        (WebCore::Style::attachShadowRoot):
30115        (WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded):
30116        (WebCore::Style::attachRenderTree):
30117        (WebCore::Style::resolveLocal):
30118        (WebCore::Style::resolveTextNode):
30119        (WebCore::Style::resolveShadowTree):
30120        (WebCore::Style::updateBeforeOrAfterPseudoElement):
30121        (WebCore::Style::resolveTree):
30122
301232014-03-26  Commit Queue  <commit-queue@webkit.org>
30124
30125        Unreviewed, rolling out r166264.
30126        https://bugs.webkit.org/show_bug.cgi?id=130785
30127
30128        Broke some window.opener tests for WK2 Mavericks (Requested by
30129        brrian__ on #webkit).
30130
30131        Reverted changeset:
30132
30133        "Web Replay: resource unique identifiers should be unique-per-
30134        frame, not globally"
30135        https://bugs.webkit.org/show_bug.cgi?id=130632
30136        http://trac.webkit.org/changeset/166264
30137
301382014-03-26  Zoltan Horvath  <zoltan@webkit.org>
30139
30140        [CSS Shapes] Remove shape-inside support
30141        https://bugs.webkit.org/show_bug.cgi?id=130698
30142
30143        Reviewed by David Hyatt.
30144
30145        CSS Shapes Level 1 (CR) only contains shape-outside. We are focusing our efforts on finalizing
30146        the implementation of shape-outside, it's worth to remove shape-inside code at this point for now.
30147
30148        A list of reasons for the removal:
30149          - Shape-inside is only part of Shapes Level 2, which needs to be improved on some topics.
30150          - Shape-inside is lack of new shapes support (e.g. inset).
30151          - Deprecated shapes (r165472) are removed from the code (e.g. rectangle), which affects shape-inside. 
30152          - The current shape-inside code spreads across the layout code.
30153          - The current shape-inside implementation is experimental in some areas,
30154            and the partially implemented code can have security implications.
30155          - Removal of shape-inside opens possibilities for code complexity and performance
30156            optimizations for shape-outside. (e.g. simpler geometry code)
30157
30158        No new tests are needed.
30159
30160        * CMakeLists.txt:
30161        * Configurations/FeatureDefines.xcconfig:
30162        * GNUmakefile.list.am:
30163        * WebCore.xcodeproj/project.pbxproj:
30164        * css/CSSComputedStyleDeclaration.cpp:
30165        (WebCore::ComputedStyleExtractor::propertyValue):
30166        * css/CSSParser.cpp:
30167        (WebCore::isSimpleLengthPropertyID):
30168        (WebCore::CSSParser::parseValue):
30169        (WebCore::CSSParser::parseShapeProperty):
30170        * css/CSSPropertyNames.in:
30171        * css/DeprecatedStyleBuilder.cpp:
30172        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
30173        * css/StyleResolver.cpp:
30174        (WebCore::StyleResolver::applyProperty):
30175        (WebCore::StyleResolver::loadPendingImages):
30176        * page/animation/CSSPropertyAnimation.cpp:
30177        (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
30178        * rendering/LayoutState.cpp:
30179        (WebCore::LayoutState::LayoutState):
30180        * rendering/LayoutState.h:
30181        (WebCore::LayoutState::LayoutState):
30182        (WebCore::LayoutState::shapeInsideInfo): Deleted.
30183        * rendering/RenderBlock.cpp:
30184        (WebCore::RenderBlock::styleDidChange):
30185        (WebCore::RenderBlock::imageChanged):
30186        (WebCore::RenderBlock::preparePaginationBeforeBlockLayout):
30187        (WebCore::RenderBlock::relayoutShapeDescendantIfMoved): Deleted.
30188        (WebCore::RenderBlock::logicalOffsetFromShapeAncestorContainer): Deleted.
30189        (WebCore::RenderBlock::updateShapeInsideInfoAfterStyleChange): Deleted.
30190        (WebCore::RenderBlock::ensureShapeInsideInfo): Deleted.
30191        (WebCore::RenderBlock::shapeInsideInfo): Deleted.
30192        (WebCore::RenderBlock::setShapeInsideInfo): Deleted.
30193        (WebCore::RenderBlock::markShapeInsideDescendantsForLayout): Deleted.
30194        (WebCore::RenderBlock::layoutShapeInsideInfo): Deleted.
30195        (WebCore::shapeInfoRequiresRelayout): Deleted.
30196        (WebCore::RenderBlock::computeShapeSize): Deleted.
30197        (WebCore::RenderBlock::updateShapesBeforeBlockLayout): Deleted.
30198        (WebCore::RenderBlock::updateShapesAfterBlockLayout): Deleted.
30199        (WebCore::RenderBlock::prepareShapesAndPaginationBeforeBlockLayout): Deleted.
30200        * rendering/RenderBlock.h:
30201        (WebCore::RenderBlock::allowsShapeInsideInfoSharing): Deleted.
30202        * rendering/RenderBlockFlow.cpp:
30203        (WebCore::RenderBlockFlow::layoutBlock):
30204        (WebCore::RenderBlockFlow::layoutBlockChild):
30205        (WebCore::RenderBlockFlow::computeLogicalLocationForFloat):
30206        * rendering/RenderBlockFlow.h:
30207        * rendering/RenderBlockLineLayout.cpp:
30208        (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine):
30209        (WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
30210        (WebCore::constructBidiRunsForLine): Deleted.
30211        (WebCore::pushShapeContentOverflowBelowTheContentBox): Deleted.
30212        (WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLine): Deleted.
30213        (WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread): Deleted.
30214        (WebCore::adjustLogicalLineTop): Deleted.
30215        (WebCore::RenderBlockFlow::adjustLogicalLineTopAndLogicalHeightIfNeeded): Deleted.
30216        * rendering/RenderDeprecatedFlexibleBox.cpp:
30217        (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
30218        * rendering/RenderElement.cpp:
30219        (WebCore::RenderElement::~RenderElement):
30220        (WebCore::RenderElement::initializeStyle):
30221        (WebCore::RenderElement::setStyle):
30222        * rendering/RenderFlexibleBox.cpp:
30223        (WebCore::RenderFlexibleBox::layoutBlock):
30224        * rendering/RenderGrid.cpp:
30225        (WebCore::RenderGrid::layoutBlock):
30226        * rendering/RenderNamedFlowFragment.cpp:
30227        (WebCore::RenderNamedFlowFragment::createStyle):
30228        * rendering/RenderView.h:
30229        * rendering/SimpleLineLayout.cpp:
30230        (WebCore::SimpleLineLayout::canUseFor):
30231        * rendering/line/BreakingContextInlineHeaders.h:
30232        (WebCore::BreakingContext::handleText):
30233        (WebCore::BreakingContext::handleEndOfLine):
30234        (WebCore::updateSegmentsForShapes): Deleted.
30235        * rendering/line/LineBreaker.cpp:
30236        (WebCore::LineBreaker::nextLineBreak):
30237        * rendering/line/LineWidth.cpp:
30238        (WebCore::LineWidth::LineWidth):
30239        (WebCore::LineWidth::updateAvailableWidth):
30240        (WebCore::LineWidth::wrapNextToShapeOutside):
30241        (WebCore::LineWidth::fitBelowFloats):
30242        (WebCore::LineWidth::updateLineSegment): Deleted.
30243        (WebCore::LineWidth::updateCurrentShapeSegment): Deleted.
30244        * rendering/line/LineWidth.h:
30245        * rendering/shapes/ShapeInsideInfo.cpp: Removed.
30246        * rendering/shapes/ShapeInsideInfo.h: Removed.
30247        * rendering/style/RenderStyle.cpp:
30248        (WebCore::RenderStyle::changeRequiresLayout):
30249        * rendering/style/RenderStyle.h:
30250        * rendering/style/StyleRareNonInheritedData.cpp:
30251        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
30252        (WebCore::StyleRareNonInheritedData::operator==):
30253        * rendering/style/StyleRareNonInheritedData.h:
30254
302552014-03-25  Brent Fulgham  <bfulgham@apple.com>
30256
30257        Avoid duplicate size checks when creating empty image
30258        https://bugs.webkit.org/show_bug.cgi?id=130730
30259
30260        Reviewed by Dean Jackson.
30261
30262        Merged from Blink (patch by ch.dumez@samsung.com):
30263        https://chromium.googlesource.com/chromium/blink/+/4861a71bc1f284fc97417f405ab7d08dc6947b88
30264        http://crbug.com/190633011
30265
30266        * html/canvas/CanvasRenderingContext2D.cpp:
30267        (WebCore::createEmptyImageData): Don't perform overflow calculation twice.
30268
302692014-03-26  Sergio Villar Senin  <svillar@igalia.com>
30270
30271        [CSS Grid Layout] getComputedStyle() must return the specified value for positioning properties
30272        https://bugs.webkit.org/show_bug.cgi?id=130010
30273
30274        Reviewed by Darin Adler.
30275
30276        According to the specs
30277        http://dev.w3.org/csswg/css-grid/#property-index and also to
30278        http://lists.w3.org/Archives/Public/www-style/2014Mar/0162.html
30279        the function getComputedStyle() must return the specified values
30280        for positioning properties, i.e, grid-{columns|rows}-{start|end}.
30281
30282        We were in some cases, adjusting the style in the StyleResolver
30283        (for example with two opposing spans) something that is now done
30284        in the RenderGrid because we cannot alter the original style.
30285
30286        The code moved to the renderer became more self explanatory and it
30287        now supports named grid areas with names ending in "-start" and
30288        "-end".
30289
30290        Test: fast/css-grid-layout/named-grid-lines-with-named-grid-areas-get-set.html
30291
30292        * css/StyleResolver.cpp:
30293        (WebCore::StyleResolver::adjustRenderStyle):
30294        (WebCore::gridLineDefinedBeforeGridArea): Deleted.
30295        (WebCore::StyleResolver::adjustNamedGridItemPosition): Deleted.
30296        (WebCore::StyleResolver::adjustGridItemPosition): Deleted.
30297        * css/StyleResolver.h:
30298        * rendering/RenderGrid.cpp:
30299        (WebCore::isColumnSide):
30300        (WebCore::RenderGrid::explicitGridSizeForSide):
30301        (WebCore::gridLineDefinedBeforeGridArea):
30302        (WebCore::setNamedLinePositionIfDefinedBeforeArea):
30303        (WebCore::RenderGrid::adjustNamedGridItemPosition):
30304        (WebCore::RenderGrid::adjustGridPositionsFromStyle):
30305        (WebCore::RenderGrid::resolveGridPositionsFromStyle):
30306        (WebCore::RenderGrid::resolveNamedGridLinePositionFromStyle):
30307        (WebCore::RenderGrid::resolveNamedGridLinePositionAgainstOppositePosition):
30308        * rendering/RenderGrid.h:
30309        * rendering/style/GridPosition.h:
30310        (WebCore::GridPosition::setAutoPosition): New helper function.
30311
303122014-03-26  Simon Fraser  <simon.fraser@apple.com>
30313
30314        Fix the iOS build.
30315
30316        * WebCore.exp.in:
30317
303182014-03-26  Tim Horton  <timothy_horton@apple.com>
30319
30320        [iOS WebKit2] Flush all surfaces after painting into all of them, instead of after painting into each one
30321        https://bugs.webkit.org/show_bug.cgi?id=130768
30322        <rdar://problem/16421471>
30323
30324        Reviewed by Simon Fraser.
30325
30326        * platform/graphics/cocoa/IOSurface.h:
30327        Add a non-ensuring platformContext() getter.
30328
303292014-03-26  James Craig  <jcraig@apple.com>
30330
30331        Web Inspector: AXI: crash when inspecting "bar" text node in getAccessibilityPropertiesForNode layout test
30332        https://bugs.webkit.org/show_bug.cgi?id=130290
30333
30334        Reviewed by Timothy Hatcher.
30335
30336        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
30337
30338        Fixing regression from r165590. http://webkit.org/b/129779
30339        Verify isElementNode to avoid calling toElement on document or text nodes.
30340
30341        * inspector/InspectorDOMAgent.cpp:
30342        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
30343
303442014-03-25  Sergio Villar Senin  <svillar@igalia.com>
30345
30346        Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T> in editing/
30347        https://bugs.webkit.org/show_bug.cgi?id=130722
30348
30349        Reviewed by Antti Koivisto.
30350
30351        * editing/AlternativeTextController.cpp:
30352        (WebCore::markerTypesForAutocorrection):
30353        (WebCore::markerTypesForReplacement):
30354        (WebCore::markerTypesForAppliedDictationAlternative):
30355        * editing/EditingStyle.cpp:
30356        (WebCore::htmlElementEquivalents):
30357        (WebCore::htmlAttributeEquivalents):
30358        * editing/FormatBlockCommand.cpp:
30359        (WebCore::isElementForFormatBlock):
30360        * editing/RemoveFormatCommand.cpp:
30361        (WebCore::isElementForRemoveFormatCommand):
30362        * editing/ReplaceSelectionCommand.cpp:
30363        (WebCore::isProhibitedParagraphChild):
30364        * editing/atk/FrameSelectionAtk.cpp:
30365        (WebCore::maybeEmitTextFocusChange):
30366
303672014-03-25  Simon Fraser  <simon.fraser@apple.com>
30368
30369        Add a new type of scrolling tree node for overflow scrolling
30370        https://bugs.webkit.org/show_bug.cgi?id=130763
30371
30372        Reviewed by Tim Horton.
30373
30374        Prepare for overflow scrolling via the scrolling tree by adding
30375        a new scrolling node type for overflow:scroll nodes. Mostly
30376        this is a new ScrollingNodeType that gets mapped to the same
30377        scrolling state nodes and scrolling nodes, but iOS creates
30378        state and scrolling nodes specific to overflow:scroll.
30379        
30380        Change the type checking on nodes to use virtual functions instead
30381        of just checking the node type, to allow the macros to work with
30382        the new scrolling node type.
30383
30384        * WebCore.exp.in:
30385        * page/scrolling/AsyncScrollingCoordinator.cpp:
30386        (WebCore::AsyncScrollingCoordinator::ensureRootStateNodeForFrameView):
30387        * page/scrolling/ScrollingCoordinator.h:
30388        * page/scrolling/ScrollingStateFixedNode.h:
30389        * page/scrolling/ScrollingStateNode.h:
30390        (WebCore::ScrollingStateNode::isFixedNode):
30391        (WebCore::ScrollingStateNode::isStickyNode):
30392        (WebCore::ScrollingStateNode::isScrollingNode):
30393        * page/scrolling/ScrollingStateScrollingNode.cpp:
30394        (WebCore::ScrollingStateScrollingNode::create):
30395        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
30396        * page/scrolling/ScrollingStateScrollingNode.h:
30397        * page/scrolling/ScrollingStateStickyNode.h:
30398        * page/scrolling/ScrollingStateTree.cpp:
30399        (WebCore::ScrollingStateTree::attachNode):
30400        * page/scrolling/ScrollingTree.cpp:
30401        (WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling):
30402        (WebCore::ScrollingTree::updateTreeFromStateNode):
30403        * page/scrolling/ScrollingTreeNode.h:
30404        (WebCore::ScrollingTreeNode::isFixedNode):
30405        (WebCore::ScrollingTreeNode::isStickyNode):
30406        (WebCore::ScrollingTreeNode::isScrollingNode):
30407        * page/scrolling/ScrollingTreeScrollingNode.cpp:
30408        (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
30409        * page/scrolling/ScrollingTreeScrollingNode.h:
30410        * page/scrolling/ios/ScrollingCoordinatorIOS.mm:
30411        (WebCore::ScrollingCoordinatorIOS::createScrollingTreeNode):
30412        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
30413        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
30414        (WebCore::ScrollingTreeScrollingNodeIOS::create):
30415        (WebCore::ScrollingTreeScrollingNodeIOS::ScrollingTreeScrollingNodeIOS):
30416        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
30417        (WebCore::ScrollingCoordinatorMac::createScrollingTreeNode):
30418        * page/scrolling/mac/ScrollingTreeFixedNode.h:
30419        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
30420        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
30421        (WebCore::ScrollingTreeScrollingNodeMac::create):
30422        (WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
30423        * page/scrolling/mac/ScrollingTreeStickyNode.h:
30424        * rendering/RenderLayerCompositor.cpp:
30425        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
30426
304272014-03-26  Krzysztof Czech  <k.czech@samsung.com>
30428
30429        [ATK] Utilize new AtkValue interface coming in ATK 2.11.92
30430        https://bugs.webkit.org/show_bug.cgi?id=130575
30431
30432        Reviewed by Mario Sanchez Prada.
30433
30434        ATK 2.11.92 introduces some new API and deprecates an old one.
30435        Adjust current implementation to meet requirements of the new API.
30436
30437        No new tests. Covered by existing ones.
30438
30439        * accessibility/atk/AXObjectCacheAtk.cpp:
30440        (WebCore::AXObjectCache::postPlatformNotification):
30441        * accessibility/atk/WebKitAccessibleInterfaceValue.cpp:
30442        (webkitAccessibleSetNewValue):
30443        (webkitAccessibleGetIncrementValue):
30444        (webkitAccessibleGetValueAndText):
30445        (webkitAccessibleGetIncrement):
30446        (webkitAccessibleSetValue):
30447        (webkitAccessibleGetRange):
30448        (webkitAccessibleValueSetCurrentValue):
30449        (webkitAccessibleValueGetMinimumIncrement):
30450        (webkitAccessibleValueInterfaceInit):
30451
304522014-03-26  Zan Dobersek  <zdobersek@igalia.com>
30453
30454        Unreviewed. Removing the remaining Automake cruft.
30455
30456        * GNUmakefile.list.am: Removed.
30457
304582014-03-25  Pratik Solanki  <psolanki@apple.com>
30459
30460        iOS build fix. Add missing semicolon.
30461
30462        * editing/cocoa/HTMLConverter.mm:
30463        (HTMLConverter::_addAttachmentForElement):
30464
304652014-03-25  Sam Weinig  <sam@webkit.org>
30466
30467        Speculative iOS build fix.
30468
30469        * editing/cocoa/HTMLConverter.mm:
30470        (HTMLConverter::_addAttachmentForElement):
30471
304722014-03-25  Jer Noble  <jer.noble@apple.com>
30473
30474        [MSE] Duplicate 'seeked' events.
30475        https://bugs.webkit.org/show_bug.cgi?id=130754
30476
30477        Reviewed by Eric Carlson.
30478
30479        Test: media/media-source/media-source-duplicate-seeked.html
30480
30481        During certain seek operations, HTMLMediaElement::finishSeek() can be called re-entrantly due to
30482        the ready state changing as a result of MediaSource::monitorSourceBuffers(). Move this call to the
30483        end of finishSeek() after m_seeking has been cleared.
30484
30485        * html/HTMLMediaElement.cpp:
30486        (WebCore::HTMLMediaElement::parseAttribute):
30487
304882014-03-25  James Craig  <jcraig@apple.com>
30489
30490        Web Inspector: AXI: add support for aria-activedescendant and reconcile UI/testing with parentNode
30491        https://bugs.webkit.org/show_bug.cgi?id=130712
30492
30493        Reviewed by Timothy Hatcher.
30494
30495        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
30496
30497        Support for @aria-activedescendant; code reuse changes w/ parentNode and activeDescendantNode.
30498
30499        * inspector/InspectorDOMAgent.cpp:
30500        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
30501        * inspector/protocol/DOM.json:
30502
305032014-03-25  Sanghyup Lee  <sh53.lee@samsung.com>
30504
30505        When the mouse is upped after dragged out of shadowDOM, it should lose :active.
30506        https://bugs.webkit.org/show_bug.cgi?id=130660
30507
30508        Reviewed by Darin Adler.
30509
30510        This caused a regression after r165037.
30511        When we have to clear :active style of shadow DOM, we should clear host's style.
30512        This patch replaces parentElement() by parentOrShadowHostElement().
30513
30514        * dom/Document.cpp:
30515        (WebCore::Document::updateHoverActiveState):
30516
305172014-03-25  Eric Carlson  <eric.carlson@apple.com>
30518
30519        [Mac] Always retry a failed MediaDocument as a PluginDocument
30520        https://bugs.webkit.org/show_bug.cgi?id=130742
30521
30522        Reviewed by Jer Noble.
30523
30524        * html/HTMLMediaElement.cpp:
30525        (WebCore::HTMLMediaElement::mediaLoadingFailedFatally): If the element is in a media document,
30526            tell it that loading failed so it can retry as a plug-in.
30527
305282014-03-25  Ryosuke Niwa  <rniwa@webkit.org>
30529
30530        Replace HTMLConverter::_stringForNode by propertyValueForNode
30531        https://bugs.webkit.org/show_bug.cgi?id=130711
30532
30533        Reviewed by Sam Weinig.
30534
30535        Replaced all calls to HTMLConverter::_stringForNode by that to propertyValueForNode.
30536
30537        * editing/cocoa/HTMLConverter.mm:
30538        (HTMLConverter::_computedAttributesForElement):
30539        (HTMLConverter::_addAttachmentForElement):
30540        (HTMLConverter::_enterElement):
30541        (HTMLConverter::_addTableForElement):
30542        (HTMLConverter::_addTableCellForElement):
30543        (HTMLConverter::_processElement):
30544        (HTMLConverter::_exitElement):
30545        (HTMLConverter::_processText):
30546        (HTMLConverter::_traverseNode):
30547        (HTMLConverter::_traverseFooterNode):
30548        (HTMLConverter::_stringForNode): Deleted.
30549
305502014-03-25  Pratik Solanki  <psolanki@apple.com>
30551
30552        Attempt to fix iOS build after r166261.
30553
30554        * WebCore.xcodeproj/project.pbxproj: Make SystemSleepListener.h a private header.
30555
305562014-03-21  Jer Noble  <jer.noble@apple.com>
30557
30558        [iOS] Enable caption support in full screen.
30559        https://bugs.webkit.org/show_bug.cgi?id=130603
30560
30561        Reviewed by Eric Carlson.
30562
30563        Add TextTrackRepresentation support to MediaPlayerPrivateAVFoundationObjC.
30564
30565        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
30566        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
30567        (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Add the m_textTrackRepresenationLayer if present.
30568        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer): Ditto.
30569        (WebCore::MediaPlayerPrivateAVFoundationObjC::requiresTextTrackRepresentation): True, if a m_videoFullscreenLayer is present.
30570        (WebCore::MediaPlayerPrivateAVFoundationObjC::setTextTrackRepresentation): Remove the old, and add the new m_textTrackRepresenationLayer.
30571
30572        Make the text track container a stacking context for painting purposes.
30573        * Modules/mediacontrols/mediaControlsiOS.css:
30574        (video::-webkit-media-text-track-container):
30575
305762014-03-25  Brian Burg  <bburg@apple.com>
30577
30578        Web Replay: resource unique identifiers should be unique-per-frame, not globally
30579        https://bugs.webkit.org/show_bug.cgi?id=130632
30580
30581        Reviewed by Timothy Hatcher.
30582
30583        For replay purposes, we want to deterministically assign resource load identifiers
30584        to resource loaders, provided that the resource loaders are created in the same
30585        order.
30586
30587        To do this, we convert unique identifiers from being globally-unique to being
30588        frame-unique. When a new frame is being loaded, unique identifiers for
30589        subresources of that frame begin counting from 1.
30590
30591        No new tests. Identifier invariants are exercised by existing assertions and tests.
30592
30593        * loader/ProgressTracker.cpp:
30594        (WebCore::ProgressTracker::ProgressTracker):
30595        (WebCore::ProgressTracker::reset):
30596        (WebCore::ProgressTracker::createUniqueIdentifier):
30597        * loader/ProgressTracker.h:
30598
305992014-03-25  Jer Noble  <jer.noble@apple.com>
30600
30601        [Mac] Pause the media element during system sleep.
30602        https://bugs.webkit.org/show_bug.cgi?id=130718
30603
30604        Reviewed by Eric Carlson.
30605
30606        Test: media/video-system-sleep.html
30607
30608        Relying on the platform media system to pause and restart playback during
30609        system sleep can cause problems on some platforms, especially where hardware
30610        decoders are concerned. Rather than implicitly pausing the media during
30611        system sleep, explicitly pause the media before sleeping and resume (if
30612        appropriate) upon waking.
30613
30614        Add a new class to be used for system sleep notifications:
30615        * platform/SystemSleepListener.cpp: Added.
30616        (WebCore::SystemSleepListener::create):
30617        (WebCore::SystemSleepListener::SystemSleepListener):
30618        * platform/SystemSleepListener.h: Added.
30619        (WebCore::SystemSleepListener::Client::~Client):
30620        (WebCore::SystemSleepListener::~SystemSleepListener):
30621        (WebCore::SystemSleepListener::client):
30622
30623        Add a Mac-specific implementation:
30624        * platform/mac/SystemSleepListenerMac.h: Added.
30625        * platform/mac/SystemSleepListenerMac.mm: Added.
30626        (WebCore::SystemSleepListener::create):
30627        (WebCore::SystemSleepListenerMac::SystemSleepListenerMac):
30628        (WebCore::SystemSleepListenerMac::~SystemSleepListenerMac):
30629
30630        Listen for system sleep notifications in MediaSessionManager:
30631        * platform/audio/MediaSessionManager.cpp:
30632        (WebCore::MediaSessionManager::MediaSessionManager):
30633        (WebCore::MediaSessionManager::systemWillSleep):
30634        (WebCore::MediaSessionManager::systemDidWake):
30635        * platform/audio/MediaSessionManager.h:
30636
30637        Drive-by fix; notify the MediaSession that playback will begin
30638        due to autoplay, but do not begin autoplaying if the session
30639        is already interrupted:
30640        * html/HTMLMediaElement.cpp:
30641        (WebCore::HTMLMediaElement::parseAttribute):
30642
30643        Add new files to project:
30644        * WebCore.vcxproj/WebCore.vcxproj:
30645        * WebCore.xcodeproj/project.pbxproj:
30646        * CMakeLists.txt:
30647        * GNUmakefile.list.am:
30648
306492014-03-25  Radu Stavila  <stavila@adobe.com>
30650
30651        [CSS Regions] The background of children of scrollable elements flowed into regions is not properly scrolled
30652        https://bugs.webkit.org/show_bug.cgi?id=130574
30653
30654        Reviewed by David Hyatt.
30655
30656        When computing the clip rect for painting the box decorations, the scrolled content offset
30657        must be computed by going up the containing block tree, up to the region.
30658
30659        Tests: fast/regions/scrollable-region-scrollable-absolute-content-background.html
30660               fast/regions/scrollable-region-scrollable-content-background.html
30661
30662        * rendering/RenderNamedFlowThread.cpp:
30663        (WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
30664
306652014-03-25  Joseph Pecoraro  <pecoraro@apple.com>
30666
30667        [iOS] Inspector View Indication Support
30668        https://bugs.webkit.org/show_bug.cgi?id=130709
30669
30670        Reviewed by Simon Fraser.
30671
30672        * inspector/InspectorClient.h:
30673        (WebCore::InspectorClient::showInspectorIndication):
30674        (WebCore::InspectorClient::hideInspectorIndication):
30675        * inspector/InspectorController.cpp:
30676        (WebCore::InspectorController::setIndicating):
30677        Rename indicate/hideIndication to show/hide names.
30678
306792014-03-25  Brent Fulgham  <bfulgham@apple.com>
30680
30681        Unreviewed build fix. Typo on checkin.
30682
30683        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
30684        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Left an unmatched open bracket.
30685
306862014-03-25  Jer Noble  <jer.noble@apple.com>
30687
30688        Even further unreviewed build fix after r166247. Unprotect the implementation of HTMLMediaElement::shouldDisableSleep().
30689
30690        * html/HTMLMediaElement.cpp:
30691        (WebCore::HTMLMediaElement::parseAttribute):
30692
306932014-03-25  Jer Noble  <jer.noble@apple.com>
30694
30695        Further unreviewed build fix after r166247. Add DisplaySleepDisabler to the windows project file and
30696        move the definition of DisplaySleepDisabler's constructor and destructor into the cpp file.
30697
30698        * WebCore.vcxproj/WebCore.vcxproj:
30699        * platform/DisplaySleepDisabler.cpp:
30700        (WebCore::DisplaySleepDisabler::DisplaySleepDisabler):
30701        (WebCore::DisplaySleepDisabler::~DisplaySleepDisabler):
30702        * platform/DisplaySleepDisabler.h:
30703
307042014-03-25  Jer Noble  <jer.noble@apple.com>
30705
30706        Unreviewed build fix after r166247. Un-platform-protect the declaration of HTMLMediaElement::shouldDisableSleep()
30707        and make WebVideoFullscreenController's _displaySleepDisabler a std::unique_ptr.
30708
30709        * html/HTMLMediaElement.h:
30710        * platform/mac/WebVideoFullscreenController.h:
30711
307122014-03-25  Brent Fulgham  <bfulgham@apple.com>
30713
30714        [iOS] Pass additional options to AVFoundation during playback.
30715        https://bugs.webkit.org/show_bug.cgi?id=130624
30716
30717        Reviewed by Eric Carlson.
30718
30719        * html/HTMLMediaElement.cpp:
30720        (WebCore::HTMLMediaElement::doesHaveAttribute): Return attribute value if the user
30721        passes a pointer to fill in.
30722        * html/HTMLMediaElement.h:
30723        * platform/graphics/MediaPlayer.cpp:
30724        (WebCore::MediaPlayer::doesHaveAttribute):
30725        * platform/graphics/MediaPlayer.h:
30726        (WebCore::MediaPlayerClient::doesHaveAttribute):
30727        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
30728        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Pass additional
30729        option if supplied by user.
30730
307312014-03-25  Michael Saboff  <msaboff@apple.com>
30732
30733        Unreviewed, rolling out r166070.
30734
30735        Rollout r166070 due to 2% performance loss in page load times
30736
30737        Reverted changeset:
30738
30739        "Change CodeGeneratorJS.pm special cases for "DOMWindow" to be
30740        general purpose"
30741        https://bugs.webkit.org/show_bug.cgi?id=130553
30742        http://trac.webkit.org/changeset/166070
30743
307442014-03-25  Michael Saboff  <msaboff@apple.com>
30745
30746        Unreviewed, rolling out r166126.
30747
30748        Rollout r166126 in prepartion to roll out prerequisite r166070
30749
30750        Reverted changeset:
30751
30752        "toThis() on a JSWorkerGlobalScope should return a JSProxy and
30753        not undefined"
30754        https://bugs.webkit.org/show_bug.cgi?id=130554
30755        http://trac.webkit.org/changeset/166126
30756
307572014-03-25  Jer Noble  <jer.noble@apple.com>
30758
30759        [iOS] Playing video does not disable display sleep.
30760        https://bugs.webkit.org/show_bug.cgi?id=130729
30761
30762        Reviewed by Eric Carlson.
30763
30764        DisplaySleepDisabler was broken by r161589, which replaced the iOS implementation with
30765        an empty one. Make a platform independent version with a Cocoa-platform subclass. Update
30766        the APIs to non-deprecated ones.
30767
30768        * platform/DisplaySleepDisabler.cpp: Added.
30769        (WebCore::DisplaySleepDisabler::create):
30770        * platform/DisplaySleepDisabler.h: Added.
30771        (WebCore::DisplaySleepDisabler::~DisplaySleepDisabler):
30772        (WebCore::DisplaySleepDisabler::DisplaySleepDisabler):
30773        * platform/cocoa/DisplaySleepDisablerCocoa.cpp: Renamed from Source/WebCore/platform/mac/DisplaySleepDisabler.cpp.
30774        (WebCore::DisplaySleepDisabler::create):
30775        (WebCore::DisplaySleepDisablerCocoa::DisplaySleepDisablerCocoa):
30776        (WebCore::DisplaySleepDisablerCocoa::~DisplaySleepDisablerCocoa):
30777        * platform/cocoa/DisplaySleepDisablerCocoa.h: Renamed from Source/WebCore/platform/mac/DisplaySleepDisabler.h.
30778
30779        Update m_sleepDisabler to be a std::unique_ptr, and unprotect the definition of methods which use it.
30780        * html/HTMLMediaElement.cpp:
30781        (WebCore::HTMLMediaElement::updateSleepDisabling):
30782        (WebCore::HTMLMediaElement::shouldDisableSleep):
30783        * html/HTMLMediaElement.h:
30784
30785        Add the new and renamed files to the project:
30786        * CMakeLists.txt:
30787        * GNUmakefile.list.am:
30788        * WebCore.xcodeproj/project.pbxproj:
30789
307902014-03-25  Dirk Schulze  <krit@webkit.org>
30791
30792        Implement ImageData constructors and WebWorkers exposure
30793        https://bugs.webkit.org/show_bug.cgi?id=130668
30794
30795        Reviewed by Dean Jackson.
30796
30797        Add new constructors for ImageData.
30798
30799        http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#pixel-manipulation
30800
30801        Test: fast/canvas/canvas-imageData.html
30802
30803        * html/ImageData.cpp: 
30804        (WebCore::ImageData::create):
30805        * html/ImageData.h:
30806        * html/ImageData.idl:
30807
308082014-03-25  Myles C. Maxfield  <mmaxfield@apple.com>
30809
30810        InlineIterator position (unsigned int) variable can wrap around
30811        https://bugs.webkit.org/show_bug.cgi?id=130540
30812
30813        Reviewed by Simon Fraser.
30814
30815        We trigger an ASSERT that occurs when we are ignoring spaces (to collapse them
30816        into a single whitespace mark) but then encounter a line break. Because we don't ignore
30817        the first space (but do ignore subsequent spaces), when we hit a newline in an RTL context
30818        we want to ignore that first space as well (so as not to push the text away from the right
30819        edge). We do this by decrementing the InlineIterator pointing to this first space, so all
30820        the spaces get ignored. However, if that space is the first character in a Text node, the
30821        decrement will try to go past the beginning of the node, and trigger an ASSERT.
30822
30823        This design is not great. At some point we should rework it to more elegantly handle
30824        collapsing whitespace in both RTL and LTR writing modes.
30825
30826        This patch adds an ASSERT earlier in this codepath to catch potential problems earlier.
30827        It also pulls our sentinel value out into a separate boolean to make it more clear what is
30828        going on.
30829
30830        Test: fast/text/whitespace-only-text-in-rtl.html
30831
30832        * rendering/InlineIterator.h:
30833        (WebCore::InlineIterator::moveTo): Use the set***() calls
30834        (WebCore::InlineIterator::setOffset): ASSERT early that our math hasn't wrapped
30835        * rendering/RenderBlockLineLayout.cpp:
30836        (WebCore::RenderBlockFlow::appendRunsForObject): Use new boolean value
30837        * rendering/line/BreakingContextInlineHeaders.h:
30838        (WebCore::BreakingContext::handleText): Guard against wraps
30839        (WebCore::checkMidpoints): Use new boolean value
30840        * rendering/line/TrailingObjects.cpp:
30841        (WebCore::TrailingObjects::updateMidpointsForTrailingBoxes): Use new boolean value
30842
308432014-03-25  Martin Robinson  <mrobinson@igalia.com>
30844
30845        [GTK] Remove the autotools build
30846        https://bugs.webkit.org/show_bug.cgi?id=130717
30847
30848        Reviewed by Anders Carlsson.
30849
30850        * GNUmakefile.am: Removed.
30851        * bindings/gobject/GNUmakefile.am: Removed.
30852        * config.h: Removed references to autotools configure file.
30853
308542014-03-24  Brent Fulgham  <bfulgham@apple.com>
30855
30856        Prevent 'removetrack' events from firing when all inband text tracks are removed.
30857        https://bugs.webkit.org/show_bug.cgi?id=130704
30858
30859        Reviewed by Eric Carlson.
30860
30861        Test: media/track/track-remove-track.html
30862
30863        Based on the Blink change (patch by acolwell@chromium.org):
30864        https://codereview.chromium.org/177243018/
30865
30866        * html/HTMLMediaElement.cpp:
30867        (WebCore::HTMLMediaElement::prepareForLoad): Reorder steps to match W3C specification.
30868        (WebCore::HTMLMediaElement::noneSupported): Forget tracks as required by specification.
30869        (WebCore::HTMLMediaElement::mediaLoadingFailed): Forget tracks as required by specification.
30870        (WebCore::HTMLMediaElement::removeTextTrack): Only request the 'removetracks' event if
30871        requested by caller.
30872        (WebCore::HTMLMediaElement::removeAllInbandTracks): Renamed to 'forgetResourceSpecificTracks'
30873        (WebCore::HTMLMediaElement::noneSupported): Specify that we want the 'removetracks' event
30874        fired for this use case.
30875        (WebCore::HTMLMediaElement::prepareForLoad): Switch to new 'forgetResourceSpecificTracks' name.
30876        * html/HTMLMediaElement.h:
30877        * html/track/TextTrackList.cpp:
30878        (TextTrackList::remove): Only fire the 'removetrack' event if the caller requests it.
30879        * html/track/TextTrackList.h: Add default argument to fire the 'removetrack' event
30880        when removing a track.
30881        * html/track/TrackListBase.cpp:
30882        (TrackListBase::remove): Only fire the 'removetrack' event if the caller requests it.
30883        * html/track/TrackListBase.h: Add default argument to fire the 'removetrack' event.
30884
308852014-03-25  David Kilzer  <ddkilzer@apple.com>
30886
30887        Hold a reference to firstSuccessfulSubmitButton in HTMLFormElement::submit
30888        <http://webkit.org/b/130713>
30889        <rdar://problem/15661876>
30890
30891        Reviewed by Darin Adler.
30892
30893        Merged from Blink (patch by Ian Beer):
30894        http://crbug.com/303657
30895        https://src.chromium.org/viewvc/blink?view=rev&revision=158938
30896
30897        Test: fast/forms/form-submission-crash-successful-submit-button.html
30898
30899        * html/HTMLFormElement.cpp:
30900        (WebCore::HTMLFormElement::submit):
30901
309022014-03-25  Gabor Rapcsanyi  <rgabor@webkit.org>
30903
30904        [ARM64] GNU assembler fails in TransformationMatrix::multiply
30905        https://bugs.webkit.org/show_bug.cgi?id=130454
30906
30907        Reviewed by Zoltan Herczeg.
30908
30909        Change the NEON intstructions to the proper style.
30910
30911        * platform/graphics/transforms/TransformationMatrix.cpp:
30912        (WebCore::TransformationMatrix::multiply):
30913
309142014-03-20  Sergio Villar Senin  <svillar@igalia.com>
30915
30916        [CSS Grid Layout] Vertical rectangles not considered as valid grid areas
30917        https://bugs.webkit.org/show_bug.cgi?id=130513
30918
30919        Reviewed by Andreas Kling.
30920
30921        Grid areas sized as vertical rectangles were incorrectly
30922        considered as invalid by the parser. That's because the condition
30923        checking that each new row was adjacent to the previous one was
30924        using the first row of the currently parsed grid area instead of
30925        the last one.
30926
30927        Test: fast/css-grid-layout/grid-template-areas-get-set.html
30928
30929        * css/CSSParser.cpp:
30930        (WebCore::CSSParser::parseGridTemplateAreas):
30931
309322014-03-25  Xabier Rodriguez Calvar  <calvaris@igalia.com>
30933
30934        [GTK] Volume slider shows below the panel with videos in certain cases
30935        https://bugs.webkit.org/show_bug.cgi?id=130608
30936
30937        Reviewed by Jer Noble.
30938
30939        We need to delay the moment we check if the volume slider shows up
30940        or down. If the video was not visible, the offsets were 0 and it
30941        was forced to be shown below the panel.
30942
30943        Test: media/video-initially-hidden-volume-slider-up.html
30944
30945        * Modules/mediacontrols/mediaControlsApple.js:
30946        (Controller.prototype.createControls): Moved volumebox pseudo from
30947        the subclass. The test checks for it and it would fail in Mac.
30948        * Modules/mediacontrols/mediaControlsGtk.js:
30949        (ControllerGtk.prototype.createControls): Moved volumebox pseudo
30950        to the superclass.
30951        (ControllerGtk.prototype.handleMuteButtonMouseOver): Check if
30952        volume slider should show up or down.
30953        (ControllerGtk.prototype.updateReadyState): Removed check for
30954        volume slider direction.
30955
309562014-03-24  Brent Fulgham  <bfulgham@apple.com>
30957
30958        [Win] Enable WebVTT Regions on Windows.
30959        https://bugs.webkit.org/show_bug.cgi?id=130680
30960
30961        Reviewed by Eric Carlson.
30962
30963        * DerivedSources.cpp: Add new build components.
30964        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
30965        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
30966
309672014-03-24  Simon Fraser  <simon.fraser@apple.com>
30968
30969        Remove some unnecessary includes from PlatformCALayerClient.h
30970        https://bugs.webkit.org/show_bug.cgi?id=130703
30971
30972        Reviewed by Andreas Kling.
30973        
30974        No need for all these #includes.
30975
30976        * platform/graphics/ca/PlatformCALayerClient.h:
30977
309782014-03-24  Adenilson Cavalcanti  <cavalcantii@gmail.com>
30979
30980        [core] FEGaussianBlur: use IntSize to simplify member function interface
30981        https://bugs.webkit.org/show_bug.cgi?id=130695
30982
30983        Reviewed by Dean Jackson.
30984
30985        By returning an IntSize to store the calculated kernel size values
30986        it is possible to have less function parameters. This patch also
30987        streamlines a bit the code in calculateUnscaledKernelSize.
30988
30989        No new tests, no change in behavior.
30990
30991        * platform/graphics/filters/FEDropShadow.cpp:
30992        (WebCore::FEDropShadow::determineAbsolutePaintRect):
30993        * platform/graphics/filters/FEGaussianBlur.cpp:
30994        (WebCore::FEGaussianBlur::calculateUnscaledKernelSize):
30995        (WebCore::FEGaussianBlur::calculateKernelSize):
30996        (WebCore::FEGaussianBlur::determineAbsolutePaintRect):
30997        (WebCore::FEGaussianBlur::platformApplySoftware):
30998        * platform/graphics/filters/FEGaussianBlur.h:
30999        (if): Deleted.
31000        * platform/graphics/filters/FilterOperations.cpp:
31001        (WebCore::outsetSizeForBlur):
31002
310032014-03-24  Brian Burg  <bburg@apple.com>
31004
31005        Web Replay: capture and replay keyboard events
31006        https://bugs.webkit.org/show_bug.cgi?id=130314
31007
31008        Reviewed by Joseph Pecoraro.
31009
31010        Upstream support for capturing and replaying non-IME keyboard input.
31011        This works similarly to mouse events. It introduces optional fields and
31012        macros to encode/decode them.
31013
31014        Test: ManualTests/inspector/replay-keyboard-events.html
31015
31016        * replay/ReplayInputDispatchMethods.cpp:
31017        (WebCore::HandleKeyPress::dispatch):
31018        * replay/SerializationMethods.cpp:
31019        (JSC::EncodingTraits<NondeterministicInputBase>::encodeValue):
31020        (JSC::EncodingTraits<NondeterministicInputBase>::decodeValue): Switch existing
31021        encode/decode calls to use the shortening macros.
31022        (JSC::EncodingTraits<KeypressCommand>::encodeValue): Added.
31023        (JSC::EncodingTraits<KeypressCommand>::decodeValue): Added.
31024        (JSC::PlatformKeyboardEventAppKit::PlatformKeyboardEventAppKit): Subclass
31025        PlatformKeyboardEvent so that we can set AppKit-specific members not
31026        initialized through the main constructors.
31027        (JSC::EncodingTraits<PlatformKeyboardEvent>::encodeValue): Added.
31028        (JSC::EncodingTraits<PlatformKeyboardEvent>::decodeValue): Added.
31029        * replay/SerializationMethods.h:
31030        * replay/UserInputBridge.cpp:
31031        (WebCore::UserInputBridge::UserInputBridge): initialize m_state inside a guard.
31032        (WebCore::UserInputBridge::handleKeyEvent): fill in the implementation.
31033        * replay/WebInputs.json:
31034
310352014-03-24  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
31036
31037        Optimizing string construction for type error in JSNavigatorCustom.cpp
31038        https://bugs.webkit.org/show_bug.cgi?id=130683
31039
31040        Reviewed by Eric Carlson.
31041
31042        * bindings/js/JSNavigatorCustom.cpp:
31043        (WebCore::JSNavigator::webkitGetUserMedia):
31044
310452014-03-24  Beth Dakin  <bdakin@apple.com>
31046
31047        Legacy-style scrollbars constantly redraw after scrolling
31048        https://bugs.webkit.org/show_bug.cgi?id=130699
31049
31050        Reviewed by Simon Fraser.
31051
31052        The constant re-draw was happening because we were never calling [ScrollbarPainter 
31053        setUsePresentationValue:NO]. This is a silly bug where were should have been 
31054        looking at PlatformWheelEvent::momentumPhase() instead of 
31055        PlatformWheelEvent::phase()
31056
31057        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
31058        (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
31059
310602014-03-24  Daniel Bates  <dabates@apple.com>
31061
31062        XSS Auditor doesn't block <script> injected before an existing <script>
31063        https://bugs.webkit.org/show_bug.cgi?id=130475
31064
31065        Merged from Blink (patch by Tom Sepez):
31066        https://src.chromium.org/viewvc/blink?view=rev&revision=169697
31067
31068        Tests: http/tests/security/xssAuditor/script-tag-expression-follows.html
31069               http/tests/security/xssAuditor/script-tag-near-start.html
31070
31071        * html/parser/XSSAuditor.cpp:
31072        (WebCore::startsHTMLCommentAt):
31073        (WebCore::startsSingleLineCommentAt):
31074        (WebCore::startsMultiLineCommentAt):
31075        (WebCore::startsOpeningScriptTagAt):
31076        (WebCore::XSSAuditor::decodedSnippetForJavaScript):
31077
310782014-03-24  Brent Fulgham  <bfulgham@apple.com>
31079
31080        Activate WebVTT Tests Once Merging is Complete
31081        https://bugs.webkit.org/show_bug.cgi?id=130420
31082
31083        Reviewed by Eric Carlson.
31084
31085        * Configurations/FeatureDefines.xcconfig: Turn on ENABLE(WEBVTT_REGIONS)
31086
310872014-03-24  Anders Carlsson  <andersca@apple.com>
31088
31089        Re-fix the build.
31090
31091        * WebCore.exp.in:
31092
310932014-03-24  Anders Carlsson  <andersca@apple.com>
31094
31095        Fix build.
31096
31097        * WebCore.exp.in:
31098        Move a CFNetwork only symbol inside the USE(CFNETWORK) section.
31099
311002014-03-24  Chris Fleizach  <cfleizach@apple.com>
31101
31102        Regression: AX: Don't expose role or notifications for invalid menus
31103        https://bugs.webkit.org/show_bug.cgi?id=129814
31104
31105        Reviewed by Mario Sanchez Prada.
31106
31107        If a role=menu has no menuitem children, it should not be a menu.
31108        This was a bit tricky to implement since we need to update the role after the children are created,
31109        but it means we have to be a bit more aggressive about when to updateChildren, so that the role
31110        is known to be valid.
31111
31112        Test: platform/mac/accessibility/invalid-menu-role-does-not-send-notification.html
31113
31114        * accessibility/AXObjectCache.cpp:
31115        (WebCore::AXObjectCache::notificationPostTimerFired):
31116        * accessibility/AccessibilityRenderObject.cpp:
31117        (WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation):
31118        (WebCore::AccessibilityRenderObject::addChildren):
31119        * accessibility/AccessibilityRenderObject.h:
31120        * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
31121        (-[WebAccessibilityObjectWrapperBase updateObjectBackingStore]):
31122
311232014-03-24  Andy Estes  <aestes@apple.com>
31124
31125        [iOS] Download support by CFURLDownloadRef under USE(CFNETWORK).
31126        https://bugs.webkit.org/show_bug.cgi?id=129322
31127
31128        Reviewed by Anders Carlsson.
31129
31130        * platform/network/ResourceHandle.h:
31131        * platform/network/cf/ResourceHandleCFNet.cpp:
31132        (WebCore::ResourceHandle::releaseConnectionForDownload): Changed to
31133        return a RetainPtr that adopts the connection's retain count.
31134
311352014-03-24  Enrica Casucci  <enrica@apple.com>
31136
31137        Update Hindi fallback font.
31138        https://bugs.webkit.org/show_bug.cgi?id=130690
31139        <rdar://problem/16391601>
31140
31141        Reviewed by Sam Weinig.
31142
31143        Using the new available font for Hindi in the fallback list.
31144
31145        * platform/graphics/ios/FontCacheIOS.mm:
31146        (WebCore::FontCache::systemFallbackForCharacters):
31147
311482014-03-24  Brent Fulgham  <bfulgham@apple.com>
31149
31150        Merge Minor WebVTT Cleanups from Blink
31151        https://bugs.webkit.org/show_bug.cgi?id=130681
31152
31153        Reviewed by Eric Carlson.
31154
31155        Merged from Blink (patch by philipj@opera.com):
31156        https://chromium.googlesource.com/chromium/blink/+/693eb5e2933dca0eab5bbd604e9f3406fe9fd1ab
31157        http://crbug.com/52593009
31158        https://chromium.googlesource.com/chromium/blink/+/40b3602feab34e9be829fd742b6ad6ded322a09f
31159        http://crbug.com/104243003
31160
31161        * html/track/TextTrack.cpp:
31162        (WebCore::TextTrack::setMode):
31163        * html/track/TextTrack.idl:
31164        * html/track/TextTrackCue.h:
31165        * html/track/VTTCue.cpp:
31166        (WebCore::VTTCue::VTTCue):
31167        * html/track/VTTCue.h:
31168
311692014-03-24  Commit Queue  <commit-queue@webkit.org>
31170
31171        Unreviewed, rolling out r166169.
31172        https://bugs.webkit.org/show_bug.cgi?id=130682
31173
31174        This patch broke tests on Apple Mavericks (Requested by fredw
31175        on #webkit).
31176
31177        Reverted changeset:
31178
31179        "Operator stretching: expose a math data API"
31180        https://bugs.webkit.org/show_bug.cgi?id=130572
31181        http://trac.webkit.org/changeset/166169
31182
311832014-03-24  Martin Hodovan  <mhodovan@inf.u-szeged.hu>
31184
31185        ENABLE(CSS_GRID_LAYOUT) guard for CSSGridLineNamesValue
31186        https://bugs.webkit.org/show_bug.cgi?id=130669
31187
31188        Reviewed by Sergio Villar Senin.
31189
31190        No new tests. No new functionality.
31191
31192        * css/CSSGridLineNamesValue.cpp:
31193        * css/CSSGridLineNamesValue.h:
31194
311952014-03-24  Chris Fleizach  <cfleizach@apple.com>
31196
31197        <hr> should expose AXRole/AXSubrole, etc
31198        https://bugs.webkit.org/show_bug.cgi?id=109015
31199
31200        Reviewed by Mario Sanchez Prada.
31201
31202        Expose the <hr> element to Mac and iOS through the accessibility interface.
31203
31204        Test: platform/mac/accessibility/hr-element.html
31205
31206        * English.lproj/Localizable.strings:
31207        * accessibility/AccessibilityNodeObject.cpp:
31208        (WebCore::AccessibilityNodeObject::isEnabled):
31209        * accessibility/AccessibilityObject.cpp:
31210        (WebCore::AccessibilityObject::computedRoleString):
31211        * accessibility/AccessibilityRenderObject.cpp:
31212        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
31213        * accessibility/atk/AccessibilityObjectAtk.cpp:
31214        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
31215        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
31216        (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
31217        (-[WebAccessibilityObjectWrapper accessibilityLabel]):
31218        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
31219        (createAccessibilityRoleMap):
31220        (-[WebAccessibilityObjectWrapper subrole]):
31221        (-[WebAccessibilityObjectWrapper roleDescription]):
31222        * platform/LocalizedStrings.cpp:
31223        (WebCore::AXHorizontalRuleDescriptionText):
31224        * platform/LocalizedStrings.h:
31225
312262014-03-24  Antti Koivisto  <antti@apple.com>
31227
31228        Invalidate sibling text node style when needed instead of attaching synchronously
31229        https://bugs.webkit.org/show_bug.cgi?id=130590
31230
31231        Reviewed by Andreas Kling.
31232        
31233        Make things simpler.
31234
31235        * style/StyleResolveTree.cpp:
31236        (WebCore::Style::invalidateWhitespaceOnlyTextSiblingsAfterAttachIfNeeded):
31237        
31238            Just invalidate instead of calling attach directly.
31239            Rename to match.
31240
31241        (WebCore::Style::textRendererIsNeeded):
31242        (WebCore::Style::createTextRendererIfNeeded):
31243        
31244            Move all testing to textRendererIsNeeded.
31245
31246        (WebCore::Style::updateTextRendererAfterContentChange):
31247        
31248            Call resolveTextNode instead of re-implementing the same thing.
31249
31250        (WebCore::Style::resolveLocal):
31251        (WebCore::Style::resolveTextNode):
31252        
31253            Avoid unnecessary reattaching.
31254            Rename for consistency.
31255
31256        (WebCore::Style::resolveShadowTree):
31257        (WebCore::Style::resolveTree):
31258        
312592014-03-24  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
31260
31261        Fix !ENABLE(VIDEO) build
31262        https://bugs.webkit.org/show_bug.cgi?id=130671
31263
31264        Reviewed by Eric Carlson.
31265
31266        Add missing ENABLE(VIDEO) guards because many functions use
31267        the newly guarded functions.
31268
31269        * testing/Internals.cpp:
31270        * testing/Internals.h:
31271        * testing/Internals.idl:
31272
312732014-03-24  Antti Koivisto  <antti@apple.com>
31274
31275        Text autosizing does not determine line count correctly for simple line layout
31276        https://bugs.webkit.org/show_bug.cgi?id=130673
31277
31278        Reviewed by Daniel Bates.
31279        
31280        We don't count lines correctly in simple line layout case.
31281
31282        * page/Frame.cpp:
31283        (WebCore::Frame::textAutosizingWidth):
31284        (WebCore::Frame::setTextAutosizingWidth):
31285        * page/ios/FrameIOS.mm:
31286        (WebCore::Frame::textAutosizingWidth): Deleted.
31287        (WebCore::Frame::setTextAutosizingWidth): Deleted.
31288        
31289            Move to Frame.cpp to make enabling on non-iOS build easier.
31290
31291        * rendering/RenderBlockFlow.cpp:
31292        (WebCore::RenderBlockFlow::lineCount):
31293        
31294            Handle simple line layout case.
31295
31296        (WebCore::RenderBlockFlow::lineCountForTextAutosizing):
31297            
31298            Call lineCount() if children are inline.
31299            Rename for clarity.
31300
31301        (WebCore::RenderBlockFlow::adjustComputedFontSizes):
31302        (WebCore::RenderBlockFlow::immediateLineCount): Deleted.
31303        * rendering/RenderBlockFlow.h:
31304
313052014-03-24  Frédéric Wang  <fred.wang@free.fr>
31306
31307        [regression] background colors do not apply to <mo> elements.
31308        https://bugs.webkit.org/show_bug.cgi?id=130470.
31309
31310        Test: mathml/presentation/tokenElements-background-color.html
31311
31312        * rendering/mathml/RenderMathMLOperator.cpp:
31313        (WebCore::RenderMathMLOperator::paint): always call the parent painting to draw the background.
31314        (WebCore::RenderMathMLOperator::paintChildren): move the special case for invisible operator here.
31315
313162014-03-24  Frédéric Wang  <fred.wang@free.fr>
31317
31318        Operator stretching: expose a math data API
31319        https://bugs.webkit.org/show_bug.cgi?id=130572
31320
31321        Reviewed by Chris Fleizach.
31322
31323        We expose a new SimpleFontData API to give access to the data from the
31324        OpenType MATH table using a font cache. The class OpenTypeMathData will
31325        be implemented in bug 130324. On Darwin platform, we also implement the
31326        missing FontPlatformData::openTypeTable function which will be necessary
31327        to load the OpenType MATH table. The changes are intended to be used
31328        for MathML operator stretching (bug 130322) so tests are not added yet.
31329
31330        * CMakeLists.txt: add new OpenTypeMathData files.
31331        * GNUmakefile.list.am: ditto.
31332        * WebCore.vcxproj/WebCore.vcxproj: ditto.
31333        * WebCore.vcxproj/WebCore.vcxproj.filters: ditto.
31334        * WebCore.xcodeproj/project.pbxproj: ditto.
31335        * platform/graphics/FontCache.cpp: We add a FontCache::getMathData function to implement a cache for the math data.
31336        We make the math and vertical data share the same key for the cache.
31337        (WebCore::fontMathDataCacheInstance):
31338        (WebCore::FontCache::getMathData):
31339        (WebCore::fontVerticalDataCacheInstance):
31340        * platform/graphics/FontCache.h: We declare FontCache::getMathData and FontFileKey on all platforms.
31341        * platform/graphics/FontPlatformData.cpp:
31342        (WebCore::FontPlatformData::openTypeTable): We implement openTypeTable() on Darwin platform.
31343        * platform/graphics/FontPlatformData.h: We expose openTypeTable() on Darwin platform.
31344        * platform/graphics/SimpleFontData.cpp: We initialize m_mathData from the font cache.
31345        (WebCore::SimpleFontData::SimpleFontData):
31346        * platform/graphics/SimpleFontData.h: We expose a mathData() function to access the MATH data.
31347        * platform/graphics/opentype/OpenTypeMathData.cpp: Added. This is a new class that will be used to parse the data from the OpenType MATH table.
31348        (WebCore::OpenTypeMathData::OpenTypeMathData):
31349        * platform/graphics/opentype/OpenTypeMathData.h: Added.
31350        (WebCore::OpenTypeMathData::create):
31351        (WebCore::OpenTypeMathData::hasMathData):
31352
313532014-03-24  Jon Lee  <jonlee@apple.com>
31354
31355        Build fixes.
31356
31357        Unreviewed.
31358
31359        * editing/ios/EditorIOS.mm:
31360        (WebCore::Editor::writeSelectionToPasteboard): Convert to reference.
31361
313622014-03-24  Martin Hodovan  <mhodovan@inf.u-szeged.hu>
31363
31364        ENABLE(VIDEO_TRACK) guard for CSSParserSelector::parsePseudoCueFunctionSelector
31365        https://bugs.webkit.org/show_bug.cgi?id=130666
31366
31367        Reviewed by Andreas Kling.
31368
31369        No new tests. No new functionality.
31370
31371        * css/CSSParserValues.cpp:
31372        (WebCore::CSSParserSelector::parsePseudoCueFunctionSelector): Deleted.
31373
313742014-03-24  Javier Fernandez  <jfernandez@igalia.com>
31375
31376        [CSS Grid Layout] Update named <grid-line> syntax to the last version of the specs
31377        https://bugs.webkit.org/show_bug.cgi?id=129041
31378
31379        Reviewed by Sergio Villar Senin.
31380
31381        From Blink r162555 by <svillar@igalia.com>
31382
31383        Names for grid lines are now specified as a list of whitespace separated
31384        idents enclosed in parentheses instead of as a list of strings.
31385
31386        Updated tests to match the new <grid-line> syntax.
31387
31388        * CMakeLists.txt:
31389        * GNUmakefile.list.am:
31390        * WebCore.xcodeproj/project.pbxproj: Added info of the new file for the CSSGridLineNamesValue class.
31391        * css/CSSComputedStyleDeclaration.cpp:
31392        (WebCore::addValuesForNamedGridLinesAtIndex): The named <grid-line> value is now a list.
31393        * css/CSSGrammar.y.in: New syntax for named <grid-line>.
31394        * css/CSSGridLineNamesValue.cpp: Added.
31395        (WebCore::CSSGridLineNamesValue::customCSSText): String representation of the named <grid-line> as a list of Strings.
31396        (WebCore::CSSGridLineNamesValue::CSSGridLineNamesValue): Constructor.
31397        (WebCore::CSSGridLineNamesValue::cloneForCSSOM): Ref counted cloning function.
31398        * css/CSSGridLineNamesValue.h: Added.
31399        (WebCore::CSSGridLineNamesValue::create): Ref counted constructor.
31400        * css/CSSParser.cpp:
31401        (WebCore::CSSParser::parseGridLineNames): It replaces the old parseGrdTrackNames.
31402        (WebCore::CSSParser::parseGridTrackList): Using the new named <grid-line> syntax.
31403        (WebCore::CSSParser::parseGridTrackRepeatFunction): Using the new named <grid-line> syntax.
31404        * css/CSSParser.h:
31405        * css/CSSParserValues.cpp:
31406        (WebCore::destroy): Handling the case of CSSValue being CSSValueList intances.
31407        (WebCore::CSSParserValue::createCSSValue): Handling the case of CSSValue being CSSValueList intances.
31408        * css/CSSParserValues.h:
31409        (WebCore::CSSParserValue::setFromValueList): Adds the named <grid-line> list to the CSSParserValueList instance.
31410        * css/CSSValue.cpp:
31411        (WebCore::CSSValue::equals): Handling the case of the new CSSGridLineNamesValue class.
31412        (WebCore::CSSValue::cssText): Handling the case of the new CSSGridLineNamesValue class.
31413        (WebCore::CSSValue::destroy): Handling the case of the new CSSGridLineNamesValue class.
31414        * css/CSSValue.h:
31415        (WebCore::CSSValue::isGridLineNamesValue): Type cast check for the new CSSGridLineNamesValue class.
31416        * css/StyleResolver.cpp:
31417        (WebCore::createGridTrackList): Using the new named <grid-line> syntax.
31418
314192014-03-23  Sam Weinig  <sam@webkit.org>
31420
31421        Convert WebHTMLConverter to C++
31422        https://bugs.webkit.org/show_bug.cgi?id=130655
31423
31424        Reviewed by Andreas Kling.
31425
31426        - Mechanically converts the Objective-C class WebHTMLConverter, to the C++ HTMLConverter (lots of cleanup to follow).
31427        - Removes unused members
31428            - _standardFontFamily (never assigned to)
31429            - _textSizeMultiplier (always exactly 1)
31430            - _webViewTextSizeMultiplier (always exactly 0)
31431            - _defaultFontSize (always exactly 12, changed to be constant)
31432            - _minimumFontSize (always exactly 1, changed to be constant)
31433            - _colorsForNodes (never assigned to)
31434            - _indexingLimit (always exactly 0)
31435            - _thumbnailLimit (always exactly 0)
31436            - _flags.isIndexing (always false)
31437            - _flags.isTesting (always false)
31438
31439        * editing/cocoa/HTMLConverter.mm:
31440        (HTMLConverter::convert):
31441        (HTMLConverter::HTMLConverter):
31442        (HTMLConverter::~HTMLConverter):
31443        (defaultParagraphStyle):
31444        (_childrenForNode):
31445        (HTMLConverter::_stringForNode):
31446        (HTMLConverter::_getFloat):
31447        (_webKitBundle):
31448        (HTMLConverter::_elementIsBlockLevel):
31449        (HTMLConverter::_elementHasOwnBackgroundColor):
31450        (HTMLConverter::_blockLevelElementForNode):
31451        (HTMLConverter::_colorForNode):
31452        (HTMLConverter::_computedAttributesForElement):
31453        (HTMLConverter::_attributesForElement):
31454        (HTMLConverter::_newParagraphForElement):
31455        (HTMLConverter::_newLineForElement):
31456        (HTMLConverter::_newTabForElement):
31457        (_WebMessageDocumentClass):
31458        (HTMLConverter::_addAttachmentForElement):
31459        (HTMLConverter::_addQuoteForElement):
31460        (HTMLConverter::_addValue):
31461        (HTMLConverter::_fillInBlock):
31462        (HTMLConverter::_processMetaElementWithName):
31463        (HTMLConverter::_processHeadElement):
31464        (HTMLConverter::_enterElement):
31465        (HTMLConverter::_addTableForElement):
31466        (HTMLConverter::_addTableCellForElement):
31467        (HTMLConverter::_processElement):
31468        (HTMLConverter::_addMarkersToList):
31469        (HTMLConverter::_exitElement):
31470        (HTMLConverter::_processText):
31471        (HTMLConverter::_traverseNode):
31472        (HTMLConverter::_traverseFooterNode):
31473        (HTMLConverter::_adjustTrailingNewline):
31474        (HTMLConverter::_loadFromDOMRange):
31475        (fileWrapperForURL):
31476        (fileWrapperForElement):
31477        (WebCore::attributedStringFromRange):
31478        (WebCore::editingAttributedStringFromRange):
31479
314802014-03-23  Jinwoo Song  <jinwoo7.song@samsung.com>
31481
31482        Remove Dead Stores from editing directory
31483        https://bugs.webkit.org/show_bug.cgi?id=130634
31484
31485        Reviewed by Darin Adler.
31486
31487        Remove Dead Stores from editing directory which assigning a value to a variable
31488        and never reading that value.
31489
31490        * editing/ApplyStyleCommand.cpp:
31491        (WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
31492        * editing/markup.cpp:
31493        (WebCore::createMarkupInternal):
31494
314952014-03-23  Hyowon Kim  <hw1008.kim@samsung.com>
31496
31497        Move all EFL typedefs into EflTypedefs.h.
31498        https://bugs.webkit.org/show_bug.cgi?id=130511
31499
31500        Reviewed by Gyuyoung Kim.
31501
31502        * platform/FileSystem.h: Remove EFL typedefs.
31503        * platform/Widget.h: Ditto.
31504        * platform/efl/EflScreenUtilities.h: Ditto.
31505        * platform/graphics/Icon.h: Ditto.
31506        * platform/graphics/Image.h: Ditto.
31507        * platform/graphics/IntPoint.h: Ditto.
31508        * platform/graphics/IntRect.h: Ditto.
31509        * platform/network/NetworkStateNotifier.h: Ditto.
31510
315112014-03-23  Sam Weinig  <sam@webkit.org>
31512
31513        Move HTMLConverter from platform/mac to editing/cocoa.
31514
31515        Rubber-stamped by Darin Adler.
31516
31517        * WebCore.xcodeproj/project.pbxproj:
31518        * editing/cocoa: Added.
31519        * editing/cocoa/HTMLConverter.h: Copied from platform/mac/HTMLConverter.h.
31520        * editing/cocoa/HTMLConverter.mm: Copied from platform/mac/HTMLConverter.mm.
31521        * platform/mac/HTMLConverter.h: Removed.
31522        * platform/mac/HTMLConverter.mm: Removed.
31523
315242014-03-23  Sam Weinig  <sam@webkit.org>
31525
31526        Simplify the HTMLConverter interface (Part 2)
31527        https://bugs.webkit.org/show_bug.cgi?id=130654
31528
31529        Reviewed by Darin Adler.
31530
31531        Switch HTMLConverter from using an Objective-C interface to C functions.
31532
31533        * WebCore.exp.in:
31534        * editing/ios/EditorIOS.mm:
31535        (WebCore::Editor::writeSelectionToPasteboard):
31536        * editing/mac/EditorMac.mm:
31537        (WebCore::Editor::dataSelectionForPasteboard):
31538        (WebCore::Editor::writeSelectionToPasteboard):
31539        * platform/ios/PasteboardIOS.mm:
31540        * platform/mac/HTMLConverter.h:
31541        * platform/mac/HTMLConverter.mm:
31542        (WebCore::attributedStringFromRange):
31543        (WebCore::editingAttributedStringFromRange):
31544        * platform/mac/PasteboardMac.mm:
31545
315462014-03-23  Darin Adler  <darin@apple.com>
31547
31548        Remove code in HTMLObjectElement attribute parsing that forces style resolution and layout
31549        https://bugs.webkit.org/show_bug.cgi?id=130653
31550
31551        Reviewed by Antti Koivisto.
31552
31553        * dom/ContainerNode.cpp: Moved the post-attach callback code from here to
31554        StyleResolveTree.h/cpp.
31555        * dom/ContainerNode.h: Ditto.
31556
31557        * dom/Document.cpp:
31558        (WebCore::Document::recalcStyle): Use Style::PostResolutionCallbackDisabler instead of
31559        PostAttachCallbackDisabler.
31560
31561        * dom/Element.h: Moved the post-attach callback code from here to StyleResolveTree.h/cpp.
31562
31563        * html/HTMLEmbedElement.cpp:
31564        (WebCore::HTMLEmbedElement::parseAttribute): Simplified the code for typeAttr, turning
31565        it into a 1-liner. Added a FIXME in codeAttr about the fact that it does not have the
31566        code to trigger image loads. Changed srcAttr to call updateImageLoaderWithNewURLSoon to
31567        do the image loading logic.
31568
31569        * html/HTMLFormControlElement.cpp:
31570        (WebCore::HTMLFormControlElement::didAttachRenderers): Updated to use
31571        Style::queuePostResolutionCallback and use a lambda instead of a function.
31572        (WebCore::HTMLFormControlElement::didRecalcStyle): Ditto. Also added RefPtr instead
31573        of just using wishful thinking to keep the object alive.
31574        * html/HTMLFrameOwnerElement.cpp:
31575        (WebCore::HTMLFrameOwnerElement::scheduleSetNeedsStyleRecalc): Ditto.
31576
31577        * html/HTMLObjectElement.cpp:
31578        (WebCore::HTMLObjectElement::parseAttribute):: Simplified the code for typeAttr, turning
31579        it into a 1-liner. Changed dataAttr to use updateImageLoaderWithNewURLSoon(). Also made
31580        it call setNeedsWidgetUpdate(true) unconditionally after checking carefully to see that's
31581        harmless if there is no renderer. Changed classidAttr to call setNeedsWidgetUpdate(true)
31582        unconditionally and not set m_classId.
31583        (WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk): Use fastGetAttribute
31584        instead of classId and descendantsOfType instead of getElementsByTagName.
31585        (WebCore::HTMLObjectElement::hasValidClassId): Use fastGetAttribute instead of classId.
31586        (WebCore::HTMLObjectElement::renderFallbackContent): Use imageLoader instead of m_imageLoader.
31587
31588        * html/HTMLObjectElement.h: Removed classId, since there is no reason to cache that
31589        attribute in a data member. Rearranged header, making more private, and fixing some typos,
31590        and doing a "using" instead of a function to disambiguate the inherited form functions.
31591
31592        * html/HTMLPlugInImageElement.cpp:
31593        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Initialize m_needsImageReload.
31594        (WebCore::HTMLPlugInImageElement::createElementRenderer): Fixed some code that assumed the
31595        first child of the shadow root is guaranteed to be an element.
31596        (WebCore::HTMLPlugInImageElement::didRecalcStyle): Added. Calls the new
31597        scheduleUpdateForAfterStyleResolution function.
31598        (WebCore::HTMLPlugInImageElement::didAttachRenderers): Moved all the logic from this
31599        function into scheduleUpdateForAfterStyleResolution. Also added a call through to the base
31600        class; cleaner even though it's just an assertion.
31601        (WebCore::HTMLPlugInImageElement::scheduleUpdateForAfterStyleResolution): Added.
31602        Schedules a call to updateAfterStyleResolution when needed.
31603        (WebCore::HTMLPlugInImageElement::updateAfterStyleResolution): Added.
31604        Combines updateWidgetIfNecessary and startLoadingImage, and also deals with the new
31605        m_needsImageReload boolean in cases where no actual loading is done.
31606        (WebCore::HTMLPlugInImageElement::removedFrom): Added. Do not delay the load event of
31607        document once this element is removed, clears m_needsImageReload.
31608        (WebCore::HTMLPlugInImageElement::didMoveToNewDocument): Removed null check on oldDocument,
31609        since m_needsDocumentActivationCallbacks can't be true if the old document was null.
31610        (WebCore::is100Percent): Added helper to make function below more readable.
31611        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Restructured the code a
31612        bit. The part that attracted my attention was the local variable of type RenderBox, which
31613        was named renderEmbeddedObject. Turns out the caller guarantees to only call this if there
31614        is a renderer of type RenderEmbeddedObject, so depend on that.
31615        (WebCore::HTMLPlugInImageElement::setNeedsImageReload): Added. When called with true, sets
31616        the flag and triggers a style recalculation, and lets updateAfterStyleResolution do the rest.
31617        When called with false, reverses the effects and stops delaying the load event.
31618
31619        * html/HTMLPlugInImageElement.h: Trimmed includes a bit. Made more members private.
31620        Marked more function members final. Made a protected imageLoader function so that
31621        m_imageLoader can be private. Added new protected function updateImageLoaderWithNewURLSoon,
31622        as well as other new private functions. Made m_imageLoader be std::unique_ptr instead of
31623        OwnPtr, and added m_needsImageReload.
31624
31625        * style/StyleResolveTree.cpp:
31626        (WebCore::Style::needsPseudoElement): Fixed spelling error in the name of this function.
31627        (WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded): Updated for name change.
31628        (WebCore::Style::attachRenderTree): Update for new name of PostResolutionCallbackDisabler.
31629        (WebCore::Style::updateBeforeOrAfterPseudoElement): Updated for name change.
31630        (WebCore::Style::postResolutionCallbackQueue): Added.
31631        (WebCore::Style::queuePostResolutionCallback): Added.
31632        (WebCore::Style::suspendMemoryCacheClientCalls): Added. This is a side effect of the original
31633        PostAttachCallbackDisabler that is now done in a cleaner way, using the callback queue, instead
31634        of as a special case. It should not work for multiple documents across multiple pages instead of
31635        only the outermost one.
31636        (WebCore::Style::PostResolutionCallbackDisabler::PostResolutionCallbackDisabler): Added.
31637        Calls suspendMemoryCacheClientCalls, but a FIXME tries to point out why that isn't so great.
31638        (WebCore::Style::PostResolutionCallbackDisabler::~PostResolutionCallbackDisabler): Added.
31639        (WebCore::Style::postResolutionCallbacksAreSuspended): Added.
31640
31641        * style/StyleResolveTree.h: Added queuePostResolutionCallback and
31642        postResolutionCallbacksAreSuspended. Also added PostResolutionCallbackDisabler, which should
31643        eventually become a private implementation detail.
31644
316452014-03-23  Sam Weinig  <sam@webkit.org>
31646
31647        Simplify the HTMLConverter interface (Part 1)
31648        https://bugs.webkit.org/show_bug.cgi?id=130654
31649
31650        Reviewed by Dan Bernstein.
31651
31652        Convert WebHTMLConverter's interface to only use class methods as the first
31653        step of simplifying the interface. 
31654
31655        * editing/ios/EditorIOS.mm:
31656        (WebCore::attributedStringForRange):
31657        * editing/mac/EditorMac.mm:
31658        (WebCore::attributedStringForRange):
31659        * platform/mac/HTMLConverter.h:
31660        * platform/mac/HTMLConverter.mm:
31661        (+[WebHTMLConverter attributedStringFromRange:]):
31662
316632014-03-23  James Craig  <jcraig@apple.com>
31664
31665        Web Inspector: AXI: add other ARIA one-to-many relationships: owns, flowto, controls.
31666        https://bugs.webkit.org/show_bug.cgi?id=130635
31667
31668        Reviewed by Timothy Hatcher.
31669
31670        Support for @aria-owns, @aria-controls, and @aria-flowto.
31671
31672        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
31673
31674        * inspector/InspectorDOMAgent.cpp:
31675        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
31676        * inspector/protocol/DOM.json:
31677
316782014-03-23  Simon Fraser  <simon.fraser@apple.com>
31679
31680        Clean up #includes by geometry classes
31681        https://bugs.webkit.org/show_bug.cgi?id=130645
31682
31683        Reviewed by Andreas Kling.
31684
31685        Pulling in <wtf/Vector.h> and <wtf/PrintStream.h> in the simple geometry
31686        classes brings in a lot of additional headers. Fix by adding a new
31687        GeometryUtilities file so that the basic files don't need Vector,
31688        and including GeometryUtilities.h where necessary.
31689        
31690        Also forward declare PrintStream.h and only bring in the header
31691        in implementation files.
31692
31693        * CMakeLists.txt:
31694        * GNUmakefile.list.am:
31695        * WebCore.vcxproj/WebCore.vcxproj:
31696        * WebCore.vcxproj/WebCore.vcxproj.filters:
31697        * WebCore.xcodeproj/project.pbxproj:
31698        * css/CSSToStyleMap.h:
31699        * html/HTMLCanvasElement.cpp:
31700        * platform/cairo/WidgetBackingStoreCairo.h:
31701        * platform/graphics/FloatPoint.cpp:
31702        * platform/graphics/FloatPoint.h:
31703        * platform/graphics/FloatRect.cpp:
31704        * platform/graphics/FloatRect.h:
31705        * platform/graphics/FloatSize.cpp:
31706        * platform/graphics/FloatSize.h:
31707        * platform/graphics/GeometryUtilities.cpp: Added.
31708        (WebCore::findSlope):
31709        (WebCore::findIntersection):
31710        (WebCore::unionRect):
31711        (WebCore::mapRect):
31712        * platform/graphics/GeometryUtilities.h: Copied from Source/WebCore/platform/graphics/TextTrackRepresentation.h.
31713        * platform/graphics/IntPoint.h:
31714        * platform/graphics/IntRect.cpp:
31715        * platform/graphics/IntRect.h:
31716        * platform/graphics/IntSize.h:
31717        * platform/graphics/TextTrackRepresentation.h:
31718        * platform/graphics/Tile.h:
31719        * platform/graphics/texmap/coordinated/UpdateAtlas.h:
31720        * platform/gtk/WidgetBackingStoreGtkX11.h:
31721        * rendering/RenderBoxModelObject.cpp:
31722        * rendering/RenderImage.cpp:
31723        * rendering/RenderObject.cpp:
31724
317252014-03-23  Simon Fraser  <simon.fraser@apple.com>
31726
31727        Clean up #includes by geometry classes
31728        https://bugs.webkit.org/show_bug.cgi?id=130645
31729
31730        Reviewed by Andreas Kling.
31731
31732        Pulling in <wtf/Vector.h> and <wtf/PrintStream.h> in the simple geometry
31733        classes brings in a lot of additional headers. Fix by adding a new
31734        GeometryUtilities file so that the basic files don't need Vector,
31735        and including GeometryUtilities.h where necessary.
31736        
31737        Also forward declare PrintStream.h and only bring in the header
31738        in implementation files.
31739
31740        * CMakeLists.txt:
31741        * GNUmakefile.list.am:
31742        * WebCore.vcxproj/WebCore.vcxproj:
31743        * WebCore.vcxproj/WebCore.vcxproj.filters:
31744        * WebCore.xcodeproj/project.pbxproj:
31745        * css/CSSToStyleMap.h:
31746        * html/HTMLCanvasElement.cpp:
31747        * platform/cairo/WidgetBackingStoreCairo.h:
31748        * platform/graphics/FloatPoint.cpp:
31749        * platform/graphics/FloatPoint.h:
31750        * platform/graphics/FloatRect.cpp:
31751        * platform/graphics/FloatRect.h:
31752        * platform/graphics/FloatSize.cpp:
31753        * platform/graphics/FloatSize.h:
31754        * platform/graphics/GeometryUtilities.cpp: Added.
31755        (WebCore::findSlope):
31756        (WebCore::findIntersection):
31757        (WebCore::unionRect):
31758        (WebCore::mapRect):
31759        * platform/graphics/GeometryUtilities.h: Copied from Source/WebCore/platform/graphics/TextTrackRepresentation.h.
31760        * platform/graphics/IntPoint.h:
31761        * platform/graphics/IntRect.cpp:
31762        * platform/graphics/IntRect.h:
31763        * platform/graphics/IntSize.h:
31764        * platform/graphics/TextTrackRepresentation.h:
31765        * platform/graphics/Tile.h:
31766        * platform/gtk/WidgetBackingStoreGtkX11.h:
31767        * rendering/RenderBoxModelObject.cpp:
31768        * rendering/RenderImage.cpp:
31769        * rendering/RenderObject.cpp:
31770
317712014-03-22  Chang Shu  <cshu@webkit.org>
31772
31773        Replace deprecatedIsCollapsibleWhitespace with RenderStyle::isCollapsibleWhiteSpace in TextIterator.
31774        https://bugs.webkit.org/show_bug.cgi?id=130612.
31775
31776        Reviewed by Darin Adler.
31777
31778        Some layout tests are affected by this change but the new behavior should be correct.
31779
31780        * editing/TextIterator.cpp:
31781        (WebCore::TextIterator::handleTextNode):
31782        (WebCore::TextIterator::handleTextBox):
31783
317842014-03-22  Sam Weinig  <sam@webkit.org>
31785
31786        Switch HTMLConverter to use CSSPropertyIDs to refer to CSS properties
31787        https://bugs.webkit.org/show_bug.cgi?id=130639
31788
31789        Reviewed by Darin Adler.
31790
31791        This is a ~15% speedup on PerformanceTests/Interactive/CopyAll.html.
31792
31793        - Removes gratuitous lookup of CSS properties that are known at compile time.
31794        - Removes attempted use of non-supported CSS properties (font-effect and horizontal-align) 
31795          that will alway yield the same results.
31796        - Fix some obvious typos where the author thought they were testing for fontKerning or fontLigatures
31797          but instead used the non-existent font-effect.
31798
31799        * platform/mac/HTMLConverter.mm:
31800        (HTMLConverterCaches::computedStylePropertyForElement):
31801        (HTMLConverterCaches::inlineStylePropertyForElement):
31802        (HTMLConverterCaches::propertyValueForNode):
31803        (-[WebHTMLConverter _stringForNode:property:]):
31804        (HTMLConverterCaches::floatPropertyValueForNode):
31805        (-[WebHTMLConverter _getFloat:forNode:property:]):
31806        (HTMLConverterCaches::isBlockElement):
31807        (HTMLConverterCaches::elementHasOwnBackgroundColor):
31808        (HTMLConverterCaches::colorPropertyValueForNode):
31809        (-[WebHTMLConverter _colorForNode:property:]):
31810        (-[WebHTMLConverter _computedAttributesForElement:]):
31811        (-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
31812        (-[WebHTMLConverter _fillInBlock:forElement:backgroundColor:extraMargin:extraPadding:isTable:]):
31813        (-[WebHTMLConverter _addTableForElement:]):
31814        (-[WebHTMLConverter _addTableCellForElement:]):
31815        (-[WebHTMLConverter _processElement:tag:display:depth:]):
31816        (-[WebHTMLConverter _exitElement:tag:display:depth:startIndex:]):
31817        (-[WebHTMLConverter _processText:]):
31818        (-[WebHTMLConverter _traverseNode:depth:embedded:]):
31819
318202014-03-22  Andreas Kling  <akling@apple.com>
31821
31822        Fix debug build.
31823
31824        * bindings/js/JSDOMBinding.h:
31825        (WebCore::createWrapper):
31826
318272014-03-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
31828
31829        Add *final* keyword to NavigatorContentUtils class
31830        https://bugs.webkit.org/show_bug.cgi?id=130636
31831
31832        Reviewed by Darin Adler.
31833
31834        NavigatorContentUtils won't be used as a base class. So, added final keyword.
31835
31836        No new tests, no behavior changes.
31837
31838        * Modules/navigatorcontentutils/NavigatorContentUtils.h:
31839
318402014-03-22  Andreas Kling  <akling@apple.com>
31841
31842        CREATE_DOM_WRAPPER doesn't need the ExecState.
31843        <https://webkit.org/b/130648>
31844
31845        Remove the ExecState parameter from CREATE_DOM_WRAPPER and get all
31846        that we need from the global object instead.
31847
31848        toJS() and toJSNewlyCreated() still take an ExecState, that needs
31849        to be dealt with separately since some of them have scary looking
31850        currentWorld() checks.
31851
31852        Reviewed by Darin Adler.
31853
31854        * bindings/js/JSAudioContextCustom.cpp:
31855        (WebCore::JSAudioContextConstructor::constructJSAudioContext):
31856        * bindings/js/JSBlobCustom.cpp:
31857        (WebCore::toJS):
31858        (WebCore::JSBlobConstructor::constructJSBlob):
31859        * bindings/js/JSCDATASectionCustom.cpp:
31860        (WebCore::toJSNewlyCreated):
31861        * bindings/js/JSCSSRuleCustom.cpp:
31862        (WebCore::toJS):
31863        * bindings/js/JSCSSValueCustom.cpp:
31864        (WebCore::toJS):
31865        * bindings/js/JSCanvasRenderingContextCustom.cpp:
31866        (WebCore::toJS):
31867        * bindings/js/JSDOMBinding.h:
31868        (WebCore::createWrapper):
31869        (WebCore::wrap):
31870        (WebCore::createNewWrapper):
31871        * bindings/js/JSDocumentCustom.cpp:
31872        (WebCore::toJS):
31873        * bindings/js/JSElementCustom.cpp:
31874        (WebCore::toJSNewlyCreated):
31875        * bindings/js/JSEventCustom.cpp:
31876        (WebCore::toJS):
31877        * bindings/js/JSHTMLCollectionCustom.cpp:
31878        (WebCore::toJS):
31879        * bindings/js/JSHTMLTemplateElementCustom.cpp:
31880        (WebCore::JSHTMLTemplateElement::content):
31881        * bindings/js/JSIDBAnyCustom.cpp:
31882        (WebCore::toJS):
31883        * bindings/js/JSImageDataCustom.cpp:
31884        (WebCore::toJS):
31885        * bindings/js/JSMediaStreamCapabilitiesCustom.cpp:
31886        (WebCore::toJS):
31887        * bindings/js/JSNodeCustom.cpp:
31888        (WebCore::createWrapperInline):
31889        * bindings/js/JSPerformanceEntryCustom.cpp:
31890        (WebCore::toJS):
31891        * bindings/js/JSRTCIceCandidateCustom.cpp:
31892        (WebCore::JSRTCIceCandidateConstructor::constructJSRTCIceCandidate):
31893        * bindings/js/JSRTCPeerConnectionCustom.cpp:
31894        (WebCore::JSRTCPeerConnectionConstructor::constructJSRTCPeerConnection):
31895        * bindings/js/JSRTCSessionDescriptionCustom.cpp:
31896        (WebCore::JSRTCSessionDescriptionConstructor::constructJSRTCSessionDescription):
31897        * bindings/js/JSSVGPathSegCustom.cpp:
31898        (WebCore::toJS):
31899        * bindings/js/JSStyleSheetCustom.cpp:
31900        (WebCore::toJS):
31901        * bindings/js/JSTextCustom.cpp:
31902        (WebCore::toJSNewlyCreated):
31903        * bindings/js/JSTextTrackCueCustom.cpp:
31904        (WebCore::toJS):
31905        * bindings/js/JSTouchCustom.cpp:
31906        (WebCore::toJSNewlyCreated):
31907        * bindings/js/JSTouchListCustom.cpp:
31908        (WebCore::toJSNewlyCreated):
31909        * bindings/js/JSTrackCustom.cpp:
31910        (WebCore::toJS):
31911        * bindings/scripts/CodeGeneratorJS.pm:
31912        (GenerateImplementation):
31913        * dom/make_names.pl:
31914        (printWrapperFunctions):
31915        (printWrapperFactoryCppFile):
31916        (printWrapperFactoryHeaderFile):
31917
319182014-03-22  Michael Saboff  <msaboff@apple.com>
31919
31920        toThis() on a JSWorkerGlobalScope should return a JSProxy and not undefined
31921        https://bugs.webkit.org/show_bug.cgi?id=130554
31922
31923        Reviewed by Geoffrey Garen.
31924
31925        Fixed toThis() on WorkerGlobalScope to return a JSProxy instead of the JSGlobalObject.
31926        Added cast from JSProxy->target() if the jsCast<>() to the native object fails
31927        in toJSDedicatedWorkerGlobalScope() and toJSSharedWorkerGlobalScope().
31928        The original cast is needed for access to the local side of the worker, while the JSProxy
31929        cast is used on the remote side of a worker.
31930
31931        Test: fast/workers/worker-strict.html
31932
31933        * bindings/js/JSWorkerGlobalScopeBase.cpp:
31934        (WebCore::toJSDedicatedWorkerGlobalScope):
31935        (WebCore::toJSSharedWorkerGlobalScope):
31936
31937        * bindings/js/WorkerScriptController.cpp:
31938        (WebCore::WorkerScriptController::evaluate): Changed to pass in the JSProxy and not
31939        the WorkerGlobalScope object as the this object to script evaluation.
31940
31941        * workers/DedicatedWorkerGlobalScope.idl:
31942        * workers/SharedWorkerGlobalScope.idl:
31943        * workers/WorkerGlobalScope.idl:
31944        Added the new CustomProxyToJSObject attribute so we'll call to<{nativeClass}>() for
31945        getting the object to use for global evaluation.
31946
319472014-03-22  Simon Fraser  <simon.fraser@apple.com>
31948
31949        Some #include hygiene in Node/Element etc
31950        https://bugs.webkit.org/show_bug.cgi?id=130642
31951
31952        Reviewed by Geoffrey Garen.
31953
31954        Clean up various #includes.
31955
31956        * accessibility/AccessibilityObject.h:
31957        * bindings/js/WebCoreTypedArrayController.h:
31958        * dom/Element.h:
31959        * dom/EventListenerMap.h:
31960        * dom/EventTarget.h:
31961        * dom/Node.h:
31962        * rendering/RenderObject.h:
31963        * rendering/svg/RenderSVGRoot.h:
31964
319652014-03-22  Simon Fraser  <simon.fraser@apple.com>
31966
31967        FloatRect.h on iOS should not suck in a system header
31968        https://bugs.webkit.org/show_bug.cgi?id=130641
31969
31970        Reviewed by Geoff Garen.
31971
31972        Don't pull in <CoreGraphics/CGGeometry.h> from FloatRect.h.
31973
31974        * platform/graphics/FloatRect.h:
31975
319762014-03-22  Dan Bernstein  <mitz@apple.com>
31977
31978        Fixed the iOS build.
31979
31980        Reviewed by Darin Adler.
31981
31982        * page/ios/FrameIOS.mm:
31983        (WebCore::Frame::interpretationsForCurrentRoot):
31984
319852014-03-22  Darin Adler  <darin@apple.com>
31986
31987        Remove String::deprecatedCharacters
31988        https://bugs.webkit.org/show_bug.cgi?id=126854
31989
31990        Reviewed by Sam Weinig.
31991
31992        * bindings/scripts/StaticString.pm:
31993        (GenerateStrings): Remove the code to generate the null m_copyData16 pointer.
31994
31995        * editing/TextIterator.cpp:
31996        (WebCore::SearchBuffer::prependContext): Changed to use the new append function in
31997        StringView.h and removed the one defined locally here.
31998
31999        * editing/VisibleUnits.cpp:
32000        (WebCore::wordBreakIteratorForMinOffsetBoundary): Use the new append function
32001        in StringView.h instead of using deprecatedCharacters.
32002        (WebCore::wordBreakIteratorForMaxOffsetBoundary): Ditto.
32003        Removed an append function defined locally here and use the one in StringView.h.
32004
32005        * editing/htmlediting.cpp:
32006        (WebCore::stringWithRebalancedWhitespace): Use StringView::getCharactersWithUpconvert.
32007
32008        * html/parser/HTMLToken.h:
32009        (WebCore::HTMLToken::appendToAttributeValue): Changed to take a StringView instead
32010        of a const String&.
32011
32012        * loader/appcache/ManifestParser.cpp:
32013        (WebCore::parseManifest): Use StringView and StringView::upconvertedCharacters.
32014
32015        * page/EventSource.cpp:
32016        (WebCore::EventSource::didReceiveData): Use the new append overload from StringView.h.
32017        Also added a comment about incorrect use of the decode function.
32018
32019        * page/ios/FrameIOS.mm:
32020        (WebCore::Frame::interpretationsForCurrentRoot): Use the new StringView append function.
32021        Also use simpler new-style for loops.
32022
32023        * platform/LinkHash.cpp:
32024        (WebCore::visitedURLInline): Use the new append function and StringView::substring.
32025        (WebCore::visitedLinkHash): Use upconvertedCharacters for the non-8-bit case.
32026
32027        * platform/URL.cpp:
32028        (WebCore::findFirstOf): Chagned to take a StringView.
32029        (WebCore::containsOnlyASCII): Added. Works on StringView. Could move to a WTF header in
32030        the future if it's needed elsewhere.
32031        (WebCore::protocolIs): Added. Works on StringView. Could put in URL.h if needed elsewhere,
32032        or consider replacing the one that takes const String& with just this one.
32033        (WebCore::appendEncodedHostname): Changed to take a StringView and use
32034        StringView::upconvertedCharacters.
32035        (WebCore::findHostnamesInMailToURL): Changed to take a StringView.
32036        (WebCore::findHostnameInHierarchicalURL): Ditto.
32037        (WebCore::encodeHostnames): Ditto.
32038        (WebCore::encodeRelativeString): Ditto.
32039
32040        * platform/graphics/StringTruncator.cpp:
32041        (WebCore::StringTruncator::width): Use StringView::upconvertedCharacters.
32042
32043        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
32044        (WebCore::HarfBuzzShaper::setFontFeatures): Use indexing directly on the string instead
32045        of on a UChar*.
32046        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Use StringView::upconvertedCharacters.
32047
32048        * platform/text/TextCodecICU.cpp:
32049        (WebCore::TextCodecICU::encode): Use a Vector<UChar> rather than a String to copy and
32050        replace the backslashes with yen signs. Also optimize case where there are no backslashes.
32051
32052        * rendering/RenderListMarker.cpp:
32053        (WebCore::RenderListMarker::paint): Use TextRun::setText(StringView).
32054
32055        * rendering/RenderText.cpp:
32056        (WebCore::maxWordFragmentWidth): Pass a String to RenderBlock::constructTextRun instead of
32057        calling StringBuilder::deprecatedCharacters.
32058
32059        * rendering/RenderText.h: Removed deprecatedCharacters function.
32060
32061        * rendering/line/BreakingContextInlineHeaders.h: Added now-needed header include.
32062
32063        * rendering/svg/SVGInlineTextBox.cpp:
32064        (WebCore::SVGInlineTextBox::constructTextRun): Use StringView version of TextRun constructor.
32065
32066        * rendering/svg/SVGTextMetrics.cpp:
32067        (WebCore::SVGTextMetrics::SVGTextMetrics): Take references instead of pointers.
32068        (WebCore::SVGTextMetrics::constructTextRun): Take references instead of pointers, and don't
32069        take a character pointer any more. Instead, extract the text and use the StringView version of
32070        the TextRun constructor.
32071        (WebCore::SVGTextMetrics::measureCharacterRange): Take references instead of pointers and
32072        update for above changes.
32073        * rendering/svg/SVGTextMetrics.h: Updated for changes above. Also tweaked style a bit.
32074
32075        * rendering/svg/SVGTextMetricsBuilder.cpp:
32076        (WebCore::SVGTextMetricsBuilder::advanceSimpleText): Updated for SVGTextMetrics changes.
32077        (WebCore::SVGTextMetricsBuilder::advanceComplexText): Ditto.
32078        (WebCore::SVGTextMetricsBuilder::initializeMeasurementWithTextRenderer): Ditto.
32079        (WebCore::SVGTextMetricsBuilder::measureTextRenderer): Change code to store a character
32080        for lastCharacter rather than storing a pointer to a character. Stop using TextRun::data16.
32081
32082        * rendering/svg/SVGTextQuery.cpp:
32083        (WebCore::SVGTextQuery::subStringLengthCallback): Updated for SVGTextMetrics changes.
32084        (WebCore::SVGTextQuery::startPositionOfCharacterCallback): Ditto.
32085        (WebCore::SVGTextQuery::endPositionOfCharacterCallback): Ditto.
32086        (WebCore::calculateGlyphBoundaries): Ditto.
32087
32088        * xml/XPathFunctions.cpp:
32089        (WebCore::XPath::atomicSubstring): Added.
32090        (WebCore::XPath::FunId::evaluate): Tweaked a bit to use a new style for loop.
32091        Use the atomicSubstring function to avoid making a temporary String just to make an AtomicString.
32092        That function also uses characters8/16 rather than depreccatedCharacters.
32093
32094        * xml/XPathNodeSet.h: Added begin and end so this collection can be iterated with new style for loop.
32095
32096        * xml/parser/XMLDocumentParserLibxml2.cpp:
32097        (WebCore::XMLDocumentParser::doWrite): Use StringView::upconvertedCharacters.
32098        (WebCore::parseAttributes): Ditto.
32099
321002014-03-22  Commit Queue  <commit-queue@webkit.org>
32101
32102        Unreviewed, rolling out r166118.
32103        https://bugs.webkit.org/show_bug.cgi?id=130640
32104
32105        Crashing things (Requested by weinig on #webkit).
32106
32107        Reverted changeset:
32108
32109        "Switch HTMLConverter to use CSSPropertyIDs to refer to CSS
32110        properties"
32111        https://bugs.webkit.org/show_bug.cgi?id=130639
32112        http://trac.webkit.org/changeset/166118
32113
321142014-03-22  Sam Weinig  <sam@webkit.org>
32115
32116        Switch HTMLConverter to use CSSPropertyIDs to refer to CSS properties
32117        https://bugs.webkit.org/show_bug.cgi?id=130639
32118
32119        Reviewed by Simon Fraser.
32120
32121        This is a ~15% speedup on PerformanceTests/Interactive/CopyAll.html.
32122
32123        - Removes gratuitous lookup of CSS properties that are known at compile time.
32124        - Removes attempted use of non-supported CSS properties (font-effect and horizontal-align) 
32125          that will alway yield the same results.
32126        - Fix some obvious typos where the author thought they were testing for fontKerning or fontLigatures
32127          but instead used the non-existent font-effect.
32128
32129        * platform/mac/HTMLConverter.mm:
32130        (HTMLConverterCaches::computedStylePropertyForElement):
32131        (HTMLConverterCaches::inlineStylePropertyForElement):
32132        (HTMLConverterCaches::propertyValueForNode):
32133        (-[WebHTMLConverter _stringForNode:property:]):
32134        (HTMLConverterCaches::floatPropertyValueForNode):
32135        (-[WebHTMLConverter _getFloat:forNode:property:]):
32136        (HTMLConverterCaches::isBlockElement):
32137        (HTMLConverterCaches::elementHasOwnBackgroundColor):
32138        (HTMLConverterCaches::colorPropertyValueForNode):
32139        (-[WebHTMLConverter _colorForNode:property:]):
32140        (-[WebHTMLConverter _computedAttributesForElement:]):
32141        (-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
32142        (-[WebHTMLConverter _fillInBlock:forElement:backgroundColor:extraMargin:extraPadding:isTable:]):
32143        (-[WebHTMLConverter _addTableForElement:]):
32144        (-[WebHTMLConverter _addTableCellForElement:]):
32145        (-[WebHTMLConverter _processElement:tag:display:depth:]):
32146        (-[WebHTMLConverter _exitElement:tag:display:depth:startIndex:]):
32147        (-[WebHTMLConverter _processText:]):
32148        (-[WebHTMLConverter _traverseNode:depth:embedded:]):
32149
321502014-03-21  Simon Fraser  <simon.fraser@apple.com>
32151
32152        Don't flush compositing layers within FrameView::willPaintContents()
32153        https://bugs.webkit.org/show_bug.cgi?id=130627
32154        <rdar://problem/16368869>
32155
32156        Reviewed by Sam Weinig.
32157
32158        Remove the call to flushCompositingStateForThisFrame() here. We should
32159        have always flushed before painting via other mechanisms in WebKit2 and WebKit2.
32160        Flushing during painting is actually harmful, since we could be inside
32161        a CA commit already, and creating or destroying layers via flushing is bad.
32162
32163        * page/FrameView.cpp:
32164        (WebCore::FrameView::willPaintContents):
32165
321662014-03-22  Martin Hodovan  <mhodovan@inf.u-szeged.hu>
32167
32168        ASSERTION FAILED: std::isfinite(num) in WebCore::CSSPrimitiveValue::CSSPrimitiveValue
32169        https://bugs.webkit.org/show_bug.cgi?id=127361
32170
32171        Huge numbers represented by the 'INF' value can not be used
32172        in CSS rules, so they make the assert fail. We have to make
32173        sure that the parsed property value is finite, otherwise
32174        the property will be dropped.
32175
32176        Test: fast/css/infinite-floating-value.html
32177
32178        * css/CSSValuePool.cpp:
32179        (WebCore::CSSValuePool::createValue):
32180
321812014-03-21  Zalan Bujtas  <zalan@apple.com>
32182
32183        Remove redundant friending from class Image.
32184        https://bugs.webkit.org/show_bug.cgi?id=130628
32185
32186        Reviewed by Simon Fraser.
32187
32188        Those friend classes are subclasses. No need to make them friend of their parent class.
32189
32190        No change in functionality.
32191
32192        * platform/graphics/Image.h:
32193
321942014-03-21  Benjamin Poulain  <bpoulain@apple.com>
32195
32196        [iOS][WK2] Reduce the tiling coverage to the current rect and 1 tile size ahead
32197        https://bugs.webkit.org/show_bug.cgi?id=130555
32198
32199        Reviewed by Simon Fraser.
32200
32201        * WebCore.exp.in:
32202        * platform/ScrollView.h:
32203        * platform/graphics/ca/mac/TileController.mm:
32204        (WebCore::TileController::computeTileCoverageRect):
32205        * platform/ios/ScrollViewIOS.mm:
32206        (WebCore::ScrollView::setScrollVelocityInformation):
32207        (WebCore::ScrollView::computeCoverageRect):
32208        * rendering/RenderLayerCompositor.cpp:
32209        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
32210
322112014-03-21  Eric Carlson  <eric.carlson@apple.com>
32212
32213        [iOS] clean up fullscreen player controller when exiting fullscreen
32214        https://bugs.webkit.org/show_bug.cgi?id=130621
32215
32216        Reviewed by Jer Noble.
32217
32218        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
32219        (-[WebAVVideoLayer setBounds:]): Do nothing if _avPlayerController is nil.
32220        (-[WebAVVideoLayer setVideoLayerGravity:]): Ditto.
32221        (WebVideoFullscreenInterfaceAVKit::exitFullscreen): Set m_playerViewController delegate
32222            and player controller to nil.
32223
322242014-03-21  Eric Carlson  <eric.carlson@apple.com>
32225
32226        [iOS] remote command callbacks must happen on the WebThread
32227        https://bugs.webkit.org/show_bug.cgi?id=130618
32228
32229        Reviewed by Jer Noble.
32230
32231        * platform/ios/RemoteCommandListenerIOS.h:
32232        (WebCore::RemoteCommandListenerIOS::createWeakPtr):
32233        * platform/ios/RemoteCommandListenerIOS.mm:
32234        (WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS): Dispatch commands to the
32235            main thread before making listener callbacks.
32236
322372014-03-21  Zalan Bujtas  <zalan@apple.com>
32238
32239        Subpixel rendering: Make <img> positioning subpixel aware.
32240        https://bugs.webkit.org/show_bug.cgi?id=130596
32241
32242        Reviewed by Simon Fraser.
32243
32244        Change <img> positioning from integral to device pixel. It enables us
32245        to paint hairline borders around <img> properly.
32246        This patch changes the behavior of broken image representation from constant 1 CSS px border
32247        to a dynamic 1 device px.
32248
32249        Test: fast/images/hidpi-image-position-on-device-pixels.html
32250
32251        * WebCore.exp.in:
32252        * platform/graphics/GraphicsContext.cpp:
32253        (WebCore::GraphicsContext::drawImage):
32254        * platform/graphics/GraphicsContext.h:
32255        * platform/graphics/cairo/GraphicsContextCairo.cpp:
32256        (WebCore::GraphicsContext::drawRect):
32257        * platform/graphics/cg/GraphicsContextCG.cpp:
32258        (WebCore::GraphicsContext::drawRect):
32259        * platform/graphics/wince/GraphicsContextWinCE.cpp:
32260        (WebCore::GraphicsContext::drawRect):
32261        * rendering/RenderImage.cpp:
32262        (WebCore::RenderImage::paintReplaced):
32263        (WebCore::RenderImage::paintIntoRect):
32264        * rendering/RenderImage.h:
32265        * rendering/RenderLayer.cpp:
32266        (WebCore::RenderLayer::drawPlatformResizerImage):
32267
322682014-03-21  Brent Fulgham  <bfulgham@apple.com>
32269
32270        Merge VTTScanner Code from Blink
32271        https://bugs.webkit.org/show_bug.cgi?id=130616
32272
32273        Reviewed by Eric Carlson.
32274
32275        Merged from Blink (patch by fs@opera.com):
32276        https://chromium.googlesource.com/chromium/blink/+/f1ceb058d574a1174b524c57f67350510a942071
32277        http://crbug.com/75273002
32278        https://chromium.googlesource.com/chromium/blink/+/3e2c67969486e86347b328c72c67cacabfe6f4a1
32279        http://crbug.com/134173002
32280        https://chromium.googlesource.com/chromium/blink/+/5962b7bbb001838f3fc7f24817637528b86bfd9b
32281        http://crbug.com/134153002
32282        https://chromium.googlesource.com/chromium/blink/+/6c81f51438013edca920a19fc6a31026fc562af2
32283        http://crbug.com/137033002
32284        https://chromium.googlesource.com/chromium/blink/+/fa286dca17a291da3ae8be80111e2264de6d5cfd
32285        http://crbug.com/140503004
32286        https://chromium.googlesource.com/chromium/blink/+/8f33b63aabcce7dd21dd15288d45c4eb37c02001
32287        http://crbug.com/139343006
32288        https://chromium.googlesource.com/chromium/blink/+/1872b54b908fac525f1ad9d6f15174b11e27c8af
32289        http://crbug.com/143983002
32290        https://chromium.googlesource.com/chromium/blink/+/e6494b3359e2077bd8772d86ab1fb709acf4c398
32291        http://crbug.com/144893002
32292 
32293        * CMakeLists.txt:
32294        * GNUmakefile.list.am:
32295        * WebCore.vcxproj/WebCore.vcxproj:
32296        * WebCore.vcxproj/WebCore.vcxproj.filters:
32297        * WebCore.xcodeproj/project.pbxproj:
32298        * html/track/ParsingUtilities.h: Added.
32299        (skipExactly):
32300        (skipUntil):
32301        (skipWhile):
32302        * html/track/VTTCue.cpp:
32303        (WebCore::VTTCue::markFutureAndPastNodes):
32304        (WebCore::VTTCue::settingName):
32305        (WebCore::scanPercentage):
32306        (WebCore::VTTCue::setCueSettings):
32307        * html/track/VTTCue.h:
32308        * html/track/VTTRegion.cpp:
32309        (WebCore::VTTRegion::setRegionSettings):
32310        (WebCore::VTTRegion::scanSettingName):
32311        (WebCore::parsedEntireRun):
32312        (WebCore::VTTRegion::parseSettingValue):
32313        * html/track/VTTRegion.h:
32314        * html/track/VTTScanner.cpp: Added.
32315        (WebCore::VTTScanner::VTTScanner):
32316        (WebCore::VTTScanner::scan):
32317        (WebCore::VTTScanner::scanRun):
32318        (WebCore::VTTScanner::skipRun):
32319        (WebCore::VTTScanner::extractString):
32320        (WebCore::VTTScanner::restOfInputAsString):
32321        (WebCore::VTTScanner::scanDigits):
32322        (WebCore::VTTScanner::scanFloat):
32323        * html/track/VTTScanner.h: Added.
32324        (WebCore::VTTScanner::Run::Run):
32325        (WebCore::VTTScanner::Run::start):
32326        (WebCore::VTTScanner::Run::end):
32327        (WebCore::VTTScanner::Run::isEmpty):
32328        (WebCore::VTTScanner::isAt):
32329        (WebCore::VTTScanner::isAtEnd):
32330        (WebCore::VTTScanner::match):
32331        (WebCore::VTTScanner::position):
32332        (WebCore::VTTScanner::end):
32333        (WebCore::VTTScanner::LCharPredicateAdapter):
32334        (WebCore::VTTScanner::Run::length):
32335        (WebCore::VTTScanner::scan):
32336        (WebCore::VTTScanner::skipWhile):
32337        (WebCore::VTTScanner::skipUntil):
32338        (WebCore::VTTScanner::collectWhile):
32339        (WebCore::VTTScanner::collectUntil):
32340        (WebCore::VTTScanner::seekTo):
32341        (WebCore::VTTScanner::currentChar):
32342        (WebCore::VTTScanner::advance):
32343        * html/track/WebVTTParser.cpp:
32344        (WebCore::WebVTTParser::parseFloatPercentageValue):
32345        (WebCore::WebVTTParser::parseFloatPercentageValuePair):
32346        (WebCore::WebVTTParser::collectTimingsAndSettings):
32347        (WebCore::WebVTTParser::collectTimeStamp):
32348        (WebCore::WebVTTTreeBuilder::constructTreeFromToken):
32349        * html/track/WebVTTParser.h:
32350
323512014-03-21  Benjamin Poulain  <bpoulain@apple.com>
32352
32353        Pseudo type cleanup part 2: split pseudo elements parsing
32354        https://bugs.webkit.org/show_bug.cgi?id=130370
32355
32356        Reviewed by Andreas Kling.
32357
32358        With this patch, pseudo elements are handled separately. The only thing left in
32359        the old path is compatibility pseudo elements and pseudo classes.
32360
32361        The list of special pseudo elements is now separated and is stored in SelectorPseudoElementTypeMap.in.
32362        The script makeSelectorPseudoElementsMap.py takes that list to make the pseudo elements hash table.
32363
32364        The other pseudo elements are the prefixed ones, they are filtered in CSSSelector::parsePseudoElementType().
32365
32366        All the non-compatibility selectors are removed from SelectorPseudoTypeMap.in. CSSParserSelector::setPseudoTypeValue()
32367        is updated accordingly. The next step will be to clean that part.
32368
32369        * CMakeLists.txt:
32370        * DerivedSources.make:
32371        * GNUmakefile.list.am:
32372        * WebCore.vcxproj/WebCore.vcxproj:
32373        * WebCore.vcxproj/WebCore.vcxproj.filters:
32374        * WebCore.xcodeproj/project.pbxproj:
32375        * css/CSSComputedStyleDeclaration.cpp:
32376        (WebCore::CSSComputedStyleDeclaration::CSSComputedStyleDeclaration):
32377        * css/CSSGrammar.y.in:
32378        * css/CSSParserValues.cpp:
32379        (WebCore::CSSParserSelector::parsePseudoElementSelector):
32380        (WebCore::CSSParserSelector::parsePseudoCueFunctionSelector):
32381        (WebCore::CSSParserSelector::setPseudoTypeValue):
32382        * css/CSSParserValues.h:
32383        * css/CSSSelector.cpp:
32384        (WebCore::CSSSelector::parsePseudoElementType):
32385        * css/CSSSelector.h:
32386        * css/SelectorPseudoElementTypeMap.in: Added.
32387        * css/SelectorPseudoTypeMap.h:
32388        * css/SelectorPseudoTypeMap.in:
32389        * css/html.css:
32390        (q::before):
32391        (q::after):
32392        * css/makeSelectorPseudoElementsMap.py: Added.
32393        (enumerablePseudoType):
32394        (expand_ifdef_condition):
32395        * page/DOMWindow.cpp:
32396        (WebCore::DOMWindow::getMatchedCSSRules):
32397
323982014-03-20  Andreas Kling  <akling@apple.com>
32399
32400        Less inclusion of JSCInlines.h.
32401        <https://webkit.org/b/130545>
32402
32403        Stop including JSCInlines.h from JSDOMGlobalObject.h!
32404
32405        Reviewed by Simon Fraser.
32406
32407        * ForwardingHeaders/runtime/IdentifierInlines.h: Added.
32408        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
32409        * bindings/js/JSCommandLineAPIHostCustom.cpp:
32410        * bindings/js/JSDOMGlobalObject.h:
32411        * bindings/js/JSDOMStringMapCustom.cpp:
32412        * bindings/js/JSHTMLAllCollectionCustom.cpp:
32413        * bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
32414        * bindings/js/JSLazyEventListener.cpp:
32415        * bindings/js/JSSQLResultSetRowListCustom.cpp:
32416        * bindings/js/JSStorageCustom.cpp:
32417        * bindings/js/ScriptGlobalObject.cpp:
32418        * dom/NodeIterator.cpp:
32419        * dom/TreeWalker.cpp:
32420        * testing/Internals.cpp:
32421        * testing/js/WebCoreTestSupport.cpp:
32422
324232014-03-21  Oliver Hunt  <oliver@apple.com>
32424
32425        Fix a crash when assigning an object to document.location
32426        https://bugs.webkit.org/show_bug.cgi?id=130213
32427
32428        Reviewed by Geoffrey Garen.
32429
32430        Convert location to string before we make use the document.
32431        This prevents us from attempting to navigate a frame that
32432        has already been removed.
32433
32434        Test: fast/dom/navigation-with-sideeffects-crash.html
32435
32436        * bindings/js/JSDocumentCustom.cpp:
32437        (WebCore::JSDocument::location):
32438        (WebCore::JSDocument::setLocation):
32439
324402014-03-21  Brian Burg  <bburg@apple.com>
32441
32442        Web Replay: replay controller is improperly setting user input bridge state
32443        https://bugs.webkit.org/show_bug.cgi?id=130606
32444
32445        Reviewed by Timothy Hatcher.
32446
32447        The user input bridge was being set based on the old session state,
32448        rather than the new session state.
32449
32450        * replay/ReplayController.cpp:
32451        (WebCore::ReplayController::setSessionState):
32452
324532014-03-21  James Craig  <jcraig@apple.com>
32454
32455        Web Inspector: AXI: Expose Accessibility Tree children of the selected node
32456        https://bugs.webkit.org/show_bug.cgi?id=130264
32457
32458        Reviewed by Timothy Hatcher.
32459
32460        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
32461
32462        Expose the accessibility tree children (different from DOM children) of the
32463        current node in the accessibility node inspector.
32464
32465        * inspector/InspectorDOMAgent.cpp: 
32466        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
32467        * inspector/InspectorDOMAgent.h:
32468        * inspector/protocol/DOM.json:
32469
324702014-03-21  Alex Christensen  <achristensen@webkit.org>
32471
32472        [Win] Compile fixes with video not enabled.
32473        https://bugs.webkit.org/show_bug.cgi?id=130597
32474
32475        Reviewed by Darin Adler.
32476
32477        * DerivedSources.make:
32478        Only generate UserAgentScripts.h if needed.
32479        * platform/audio/MediaSession.cpp:
32480        * platform/audio/MediaSessionManager.cpp:
32481        Only compile if video is enabled.
32482
324832014-03-21  Adenilson Cavalcanti  <cavalcantii@gmail.com>
32484
32485        Optimize FEGaussian blur
32486        https://bugs.webkit.org/show_bug.cgi?id=50881
32487
32488        Reviewed by Dirk Schulze.
32489
32490        Currently boxBlur() will calculate the filter for each channel in
32491        a loop and also uses Uint8ClampedArray::set() to write the
32492        resulting pixels into destination array.
32493
32494        Using Uint8ClampedArray::set() requires lots of unnecessary type
32495        conversions, not to mention other function calls. This patch
32496        updates the original written by Simon Fraser to apply cleanly to current
32497        trunk.
32498
32499        It also implements code to handle EdgeModes and finally avoids use
32500        of ::set() in the newly added boxBlurAlphaOnly()
32501        function. Assignment of calculated pixel values rely on pointers.
32502
32503        No new tests, no change on behavior.
32504
32505        * platform/graphics/filters/FEGaussianBlur.cpp:
32506        (WebCore::boxBlurAlphaOnly): Specialized version for alpha only cases.
32507        (WebCore::boxBlur):
32508
325092014-03-21  Simon Fraser  <simon.fraser@apple.com>
32510
32511        unobscuredContentRect() should have the same signature on iOS and other platforms,
32512        and should not recurse on iOS.
32513        https://bugs.webkit.org/show_bug.cgi?id=130604
32514        <rdar://problem/16392587>
32515
32516        Reviewed by Tim Horton and Beth Dakin.
32517
32518        Having different signatures on different platforms is a recipe for
32519        build breakage. Give the iOS unobscuredContentRect() an unused 
32520        VisibleContentRectIncludesScrollbars parameter.
32521        
32522        Also avoid recursion via unobscuredContentRect() calling visibleContentRectInternal().
32523
32524        * WebCore.exp.in:
32525        * platform/ScrollView.cpp:
32526        (WebCore::ScrollView::unobscuredContentRect):
32527        (WebCore::ScrollView::unobscuredContentRectInternal):
32528        (WebCore::ScrollView::visibleContentRectInternal):
32529        * platform/ScrollView.h:
32530        (WebCore::ScrollView::unobscuredContentRectIncludingScrollbars):
32531        * platform/ios/ScrollViewIOS.mm:
32532        (WebCore::ScrollView::unobscuredContentRect):
32533
325342014-03-21  Brent Fulgham  <bfulgham@apple.com>
32535
32536        Handle recovery on "timestamp-looking" lines in the WebVTT parser
32537        https://bugs.webkit.org/show_bug.cgi?id=130610
32538
32539        Reviewed by Eric Carlson.
32540
32541        Merged from Blink (patch by fs@opera.com):
32542        https://chromium.googlesource.com/chromium/blink/+/b669a380efbffe25f3b154b026b57b9822ce08e2
32543        http://crbug.com/75273002
32544
32545        Tests: media/track/track-webvtt-tc031-cue-recovery.html
32546               media/track/track-webvtt-tc032-degenerate-cues.html
32547
32548        * html/track/WebVTTParser.cpp:
32549        (WebCore::WebVTTParser::parse):
32550        (WebCore::WebVTTParser::collectCueText):
32551        (WebCore::WebVTTParser::recoverCue):
32552        (WebCore::WebVTTParser::ignoreBadCue):
32553        * html/track/WebVTTParser.h:
32554
325552014-03-21  Andreas Kling  <akling@apple.com>
32556
32557        Remove unused RenderView::repaintRectangleInViewAndCompositedLayers().
32558        <https://webkit.org/b/130605>
32559
32560        Reviewed by Antti Koivisto.
32561
32562        * rendering/RenderView.cpp:
32563        * rendering/RenderView.h:
32564
325652014-03-21  David Hyatt  <hyatt@apple.com>
32566
32567        Crash in RenderBlock::addChildIgnoringAnonymousColumnBlocks.
32568        https://bugs.webkit.org/show_bug.cgi?id=129948
32569        <rdar://problem/16074072>
32570        
32571        Reviewed by Simon Fraser.
32572
32573        When the marker was placed for multi-column list items, it was being inserted
32574        into the list item itself. Even though the add code in RenderBlock did the right
32575        thing and put the marker inside the multi-column flow thread, the list item code
32576        passed in a beforeChild that was computed using the incorrect parent. This resulted
32577        in the flow thread being used both as the parent of the marker and the sibling of
32578        the marker.
32579        
32580        The fix is to add some code to RenderListItem to make sure it uses the multi-column
32581        flow thread if it exists both as the parent of the marker and as the basis for the
32582        computation of the sibling that the marker should be placed in front of.
32583
32584        Added fast/multicol/multicol-li-crash.html
32585
32586        * rendering/RenderListItem.cpp:
32587        (WebCore::RenderListItem::insertOrMoveMarkerRendererIfNeeded):
32588
325892014-03-20  Andreas Kling  <akling@apple.com>
32590
32591        Stop pulling in JSCInlines.h all over the place.
32592        <https://webkit.org/b/130105>
32593
32594        JSDOMBinding.h is included by everyone and their uncle, so try to
32595        cut down on the amount of JSC *Inlines.h it includes.
32596
32597        Reviewed by Geoff Garen.
32598
32599        * ForwardingHeaders/heap/SlotVisitorInlines.h: Added.
32600        * ForwardingHeaders/runtime/JSCJSValueInlines.h: Added.
32601        * ForwardingHeaders/runtime/JSCellInlines.h: Added.
32602        * ForwardingHeaders/runtime/StructureInlines.h: Added.
32603        * bindings/js/JSDOMBinding.h:
32604
326052014-03-21  David Kilzer  <ddkilzer@apple.com>
32606
32607        WindowFeatures.{x|y|width|height} are not initialized
32608        <http://webkit.org/b/130547>
32609        <rdar://problem/16383151>
32610
32611        Reviewed by Darin Adler.
32612
32613        Based on a Blink patch in CRBug 342591 by zhaoqin.
32614
32615        * page/WindowFeatures.cpp:
32616        (WebCore::WindowFeatures::WindowFeatures):
32617        - Initialize x, y, width, height in String constructor.
32618        - Move 'resizeable' variable to short-hand initialization since
32619          it is true in both cases.
32620        - Use String::isEmpty() instead of checking its length.
32621        * page/WindowFeatures.h:
32622        (WebCore::WindowFeatures::WindowFeatures): Initialize x, y,
32623        width, height in no-argument constructor.
32624
326252014-03-21  Sergio Villar Senin  <svillar@igalia.com>
32626
32627        Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T> in bridge/
32628        https://bugs.webkit.org/show_bug.cgi?id=130601
32629
32630        Reviewed by Darin Adler.
32631
32632        * bridge/IdentifierRep.cpp:
32633        (WebCore::identifierSet):
32634        (WebCore::intIdentifierMap):
32635        (WebCore::stringIdentifierMap):
32636        * bridge/NP_jsobject.cpp:
32637        (objectMap):
32638        * bridge/runtime_root.cpp:
32639        (JSC::Bindings::rootObjectSet): Return a reference instead of
32640        a pointer.
32641        (JSC::Bindings::findProtectingRootObject):
32642        (JSC::Bindings::findRootObject):
32643        (JSC::Bindings::RootObject::RootObject):
32644        (JSC::Bindings::RootObject::invalidate):
32645
326462014-03-21  Michael Saboff  <msaboff@apple.com>
32647
32648        Change CodeGeneratorJS.pm special cases for "DOMWindow" to be general purpose
32649        https://bugs.webkit.org/show_bug.cgi?id=130553
32650
32651        Reviewed by Geoffrey Garen.
32652
32653        Eliminated 'if ($interfaceName eq "DOMWindow") {' sections in CodeGeneratorJS where
32654        it was used to do DOMWindow specific casting to a JSObject, either a JSDOMWindow* or
32655        a JSDOMWindowShell*.  Instead the code generator will use the existing 
32656        JSDOMWindow* toJSDOMWindow(JSValue value) function based on a newly added attribute
32657        "CustomProxyToJSObject".  That attribute will emit a call to the function
32658        ${className}* to${className}(JSValue).
32659
32660        This is being done to clean up the code generator and for a subsequent patch that
32661        will use a similar custom to{className} function for workers,
32662        JSDedicatedWorkerGlobalScope* toJSDedicatedWorkerGlobalScope(JSValue).
32663
32664        Changes covered by existing tests.
32665
32666        * bindings/scripts/CodeGeneratorJS.pm:
32667        (GenerateImplementation):
32668        * bindings/scripts/IDLAttributes.txt:
32669        * page/DOMWindow.idl:
32670
326712014-03-21  Krzysztof Czech  <k.czech@samsung.com>
32672
32673        AX: Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed
32674        https://bugs.webkit.org/show_bug.cgi?id=130594
32675
32676        Reviewed by Chris Fleizach.
32677
32678        Use static NeverDestroyed<T> in new code.
32679
32680        * accessibility/AccessibilityMediaControls.cpp:
32681        (WebCore::AccessibilityMediaControl::controlTypeName):
32682        (WebCore::AccessibilityMediaControl::title):
32683        (WebCore::AccessibilityMediaControlsContainer::elementTypeName):
32684        (WebCore::AccessibilityMediaTimeline::helpText):
32685        (WebCore::AccessibilityMediaTimeDisplay::accessibilityDescription):
32686        * accessibility/AccessibilityObject.cpp:
32687        (WebCore::AccessibilityObject::actionVerb):
32688        * accessibility/AccessibilityRenderObject.cpp:
32689        (WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
32690        (WebCore::AccessibilityRenderObject::ariaLiveRegionStatus):
32691        (WebCore::AccessibilityRenderObject::ariaLiveRegionRelevant):
32692        (WebCore::AccessibilityRenderObject::actionVerb):
32693        * accessibility/atk/AXObjectCacheAtk.cpp:
32694        (WebCore::notifyChildrenSelectionChange):
32695
326962014-03-20  Brent Fulgham  <bfulgham@apple.com>
32697
32698        Merge WebVTT Tokenizer Updates
32699        https://bugs.webkit.org/show_bug.cgi?id=130565
32700
32701        Reviewed by Eric Carlson.
32702
32703        Merged from Blink (patch by fs@opera.com):
32704        https://chromium.googlesource.com/chromium/blink/+/923db263aa65d6efd71c5b55708ad7eea6b23f53
32705        http://crbug.com/73813002
32706        https://chromium.googlesource.com/chromium/blink/+/48375b1d56b2d8850ae93a6c6fb01c69fae82c75
32707        http://crbug.com/77553004
32708        https://chromium.googlesource.com/chromium/blink/+/98d4fc4f5cb716a31d11907120b10538d4ba0f09
32709        http://crbug.com/78833002
32710        https://chromium.googlesource.com/chromium/blink/+/0e53d4f9f140e979b7f32de495551684bc7f4cd2
32711        http://crbug.com/81113003
32712        https://chromium.googlesource.com/chromium/blink/+/730ef1e7f9a1919964f7e74e7ccb2f343e10a148
32713        http://crbug.com/97103002
32714        https://chromium.googlesource.com/chromium/blink/+/c373ee914ffabeaf833939129538251d8f2f4eca
32715        http://crbug.com/98763004
32716        https://chromium.googlesource.com/chromium/blink/+/4ddb4d57948228fa05e49e06bd58a1179c09f212
32717        http://crbug.com/118263002
32718 
32719        * html/track/VTTCue.cpp:
32720        (WebCore::scanPercentage):
32721        (WebCore::VTTCue::setCueSettings):
32722        * html/track/WebVTTParser.cpp:
32723        (WebCore::WebVTTTreeBuilder::buildFromString):
32724        (WebCore::WebVTTTreeBuilder::constructTreeFromToken):
32725        * html/track/WebVTTToken.h:
32726        (WebCore::WebVTTToken::WebVTTToken):
32727        (WebCore::WebVTTToken::StringToken):
32728        (WebCore::WebVTTToken::StartTag):
32729        (WebCore::WebVTTToken::EndTag):
32730        (WebCore::WebVTTToken::TimestampTag):
32731        (WebCore::WebVTTToken::type):
32732        (WebCore::WebVTTToken::name):
32733        (WebCore::WebVTTToken::characters):
32734        (WebCore::WebVTTToken::classes):
32735        (WebCore::WebVTTToken::annotation):
32736        * html/track/WebVTTTokenizer.cpp:
32737        (WebCore::addNewClass):
32738        (WebCore::emitToken):
32739        (WebCore::advanceAndEmitToken):
32740        (WebCore::WebVTTTokenizer::WebVTTTokenizer):
32741        (WebCore::WebVTTTokenizer::nextToken):
32742        * html/track/WebVTTTokenizer.h:
32743        (WebCore::WebVTTTokenizer::shouldSkipNullCharacters):
32744
327452014-03-21  Frédéric Wang  <fred.wang@free.fr>
32746
32747        Bug 130345 - Refine childShouldCreateRenderer for MathML elements
32748        https://bugs.webkit.org/show_bug.cgi?id=130345
32749
32750        Reviewed by Chris Fleizach.
32751
32752        This is a follow-up of bug 124128. We add more restrictions on foreign
32753        content of MathML elements.
32754
32755        Tests: mathml/presentation/annotation-children.html
32756               mathml/presentation/foreign-element-in-token.html
32757
32758        * mathml/MathMLElement.cpp:
32759        (WebCore::MathMLElement::isPresentationMathML): fix line wrapping
32760        (WebCore::MathMLElement::isPhrasingContent):
32761        - move the function from MathMLSelectElement.cpp
32762        - add the constraint "is descendant of a map element" for area.
32763        (WebCore::MathMLElement::isFlowContent): new function to test flow content.
32764        (WebCore::MathMLElement::childShouldCreateRenderer):
32765        - remove annotation since it is now tested in MathMLTextElement
32766        - refine testing of annotation-xml
32767        - do not create renderer for text content in MathML. Such content is only allowed inside token elements.
32768        * mathml/MathMLElement.h: Declare isPhrasingContent and isFlowContent.
32769        * mathml/MathMLSelectElement.cpp: Add new function to test MathML/SVG/HTML encodings.
32770        (WebCore::MathMLSelectElement::isMathMLEncoding):
32771        (WebCore::MathMLSelectElement::isSVGEncoding):
32772        (WebCore::MathMLSelectElement::isHTMLEncoding):
32773        (WebCore::MathMLSelectElement::getSelectedSemanticsChild): use the new functions.
32774        * mathml/MathMLSelectElement.h: Declare the new public functions.
32775        * mathml/MathMLTextElement.cpp: remove the isPhrasingContent function.
32776        (WebCore::MathMLTextElement::childShouldCreateRenderer): Just in case, use the generic StyledElement::childShouldCreateRenderer.
32777
327782014-03-21  Darin Adler  <darin@apple.com>
32779
32780        Stop using deprecatedCharacters in WebCore/platform/win
32781        https://bugs.webkit.org/show_bug.cgi?id=130515
32782
32783        Reviewed by Brent Fulgham.
32784
32785        * platform/graphics/TextRun.h:
32786        (WebCore::TextRun::TextRun): Add a constructor that takes a StringView.
32787        Later, we might want to exclusively use the StringView version and remove
32788        some of the others.
32789        (WebCore::TextRun::setText): Add a version of this function that takes a StringView.
32790
32791        * platform/graphics/win/FontCacheWin.cpp:
32792        (WebCore::FontCache::systemFallbackForCharacters): Use StringView::getCharactersWithUpconvert.
32793        (WebCore::createGDIFont): Ditto.
32794        (WebCore::FontCache::getTraitsInFamily): Ditto.
32795        * platform/win/BString.cpp:
32796        (WebCore::BString::BString): Use StringView::upconvertedCharacters.
32797        * platform/win/ClipboardUtilitiesWin.cpp:
32798        (WebCore::createGlobalData): Use StringView::getCharactersWithUpconvert.
32799        * platform/win/FileSystemWin.cpp:
32800        (WebCore::pathByAppendingComponent): Use StringBuilder and StringView::getCharactersWithUpconvert.
32801        (WebCore::fileSystemRepresentation): Use StringView::upconvertedCharacters.
32802        * platform/win/PasteboardWin.cpp:
32803        (WebCore::filesystemPathFromUrlOrTitle): Use StringView::getCharactersWithUpconvert.
32804        (WebCore::Pasteboard::writeURLToDataObject): Ditto.
32805        (WebCore::createGlobalImageFileDescriptor): Ditto.
32806
32807        * platform/win/PopupMenuWin.cpp:
32808        (WebCore::PopupMenuWin::calculatePositionAndSize): Use the new TextRun constructor.
32809        * platform/win/WebCoreTextRenderer.cpp:
32810        (WebCore::doDrawTextAtPoint): Ditto.
32811
328122014-03-21  Zalan Bujtas  <zalan@apple.com>
32813
32814        Subpixel rendering: RenderBox is positioned off by one when non-compositing transform is present.
32815        https://bugs.webkit.org/show_bug.cgi?id=130430
32816
32817        Reviewed by Simon Fraser.
32818
32819        div {
32820            position: absolute;
32821             top: 10.25px;
32822             left: 10.25px;
32823         }
32824
32825         The <div> with (10.25px, 10.25px) is painted to (10.5px, 10.5px) after device pixel snapping on 2x display.
32826         Moving <div> to its own RenderLayer should not change the painting position.
32827
32828         div {
32829             position: absolute;
32830             top: 10.25px;
32831             left: 10.25px;
32832             -webkit-transform: rotate(0deg);
32833         }
32834
32835        When we paint the RenderLayer's content, the graphics context is translated by the rounded value of
32836        renderer's offset from parent.
32837
32838            (10.25px,10.25px) -> rounded to (10.5px,10.5px).
32839
32840        When the translate moves the graphics context's origin over the renderer's top-left position,
32841        the renderer's relative top-left coordinates end up being negative.
32842
32843            Graphics context translated by (10.5px,10.5px) -> pushes renderer's relative top-left coords to (-0.25px,-0.25px)
32844
32845        When we round (pixel snap) these negative coordinates, half-way values get translated to the wrong direction.
32846
32847        (relative coords (-0.25px,-0.25px) -> pixel snapped to (-0.5px,-0.5px) -> final absolute(painting) coords (10px,10px))
32848
32849        This patch changes the rounding to flooring to ensure that the relative top-left position never gets negative as the result
32850        of subpixel shifting.
32851
32852        Tests: compositing/hidpi-box-positioned-off-by-one-when-non-compositing-transform-is-present.html
32853               fast/layers/hidpi-box-positioned-off-by-one-when-transform-is-present.html
32854
32855        * css/CSSComputedStyleDeclaration.cpp:
32856        (WebCore::computedTransform):
32857        * rendering/RenderLayer.cpp:
32858        (WebCore::RenderLayer::updateTransform):
32859        (WebCore::RenderLayer::currentTransform):
32860        (WebCore::RenderLayer::paintLayerByApplyingTransform):
32861        * rendering/RenderLayerBacking.cpp:
32862        (WebCore::RenderLayerBacking::updateTransform):
32863        * rendering/style/RenderStyle.cpp:
32864        * rendering/style/RenderStyle.h:
32865        * svg/SVGTextElement.cpp:
32866        (WebCore::SVGTextElement::animatedLocalTransform):
32867
328682014-03-21  Pratik Solanki  <psolanki@apple.com>
32869
32870        Unreviewed. iOS build fix after r166046.
32871
32872        * WebCore.exp.in:
32873
328742014-03-21  Laszlo Vidacs  <lvidacs.u-szeged@partner.samsung.com>
32875
32876        Fix the !ENABLE(FILTERS) build
32877        https://bugs.webkit.org/show_bug.cgi?id=130394
32878
32879        Reviewed by Gyuyoung Kim.
32880
32881        Add missing includes in rendering to fix compile errors, and include JSC headers to ImageBuffer.h to fix linker errors.
32882
32883        * platform/graphics/ImageBuffer.h:
32884        * rendering/svg/RenderSVGImage.cpp:
32885        * rendering/svg/RenderSVGRoot.cpp:
32886
328872014-03-21  Commit Queue  <commit-queue@webkit.org>
32888
32889        Unreviewed, rolling out r166052.
32890        https://bugs.webkit.org/show_bug.cgi?id=130571
32891
32892        It broke EFL build (Requested by KaL on #webkit).
32893
32894        Reverted changeset:
32895
32896        "[GTK] Use GMainLoopSource for idle and timeout sources in
32897        WebCore"
32898        https://bugs.webkit.org/show_bug.cgi?id=130078
32899        http://trac.webkit.org/changeset/166052
32900
329012014-03-21  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
32902
32903        Add *explicit* keyword to avoid implicit type conversion
32904        https://bugs.webkit.org/show_bug.cgi?id=130568
32905
32906        Reviewed by Antti Koivisto.
32907
32908        Constructors of RemoteFontFaceSource, SVGDocumentExtensions, XMLDocumentParserScope,
32909        and WorkerScriptDebugServer need to use *explicit* keyword because they have an argument.
32910        Besides removed a meaningless argument name.
32911
32912        * svg/SVGDocumentExtensions.h:
32913        * xml/parser/XMLDocumentParserScope.h:
32914
329152014-03-20  Sergio Villar Senin  <svillar@igalia.com>
32916
32917        Modules: replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T>
32918        https://bugs.webkit.org/show_bug.cgi?id=130407
32919
32920        Reviewed by Darin Adler.
32921
32922        * Modules/encryptedmedia/CDM.cpp:
32923        (WebCore::installedCDMFactories):
32924        * Modules/mediasource/MediaSourceRegistry.cpp:
32925        (WebCore::MediaSourceRegistry::registry):
32926        * Modules/mediasource/MediaSourceRegistry.h:
32927        * Modules/mediastream/MediaStreamRegistry.cpp:
32928        (WebCore::MediaStreamRegistry::registry):
32929
329302014-03-20  Carlos Garcia Campos  <cgarcia@igalia.com>
32931
32932        [GTK] Use GMainLoopSource for idle and timeout sources in WebCore
32933        https://bugs.webkit.org/show_bug.cgi?id=130078
32934
32935        Reviewed by Philippe Normand.
32936
32937        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
32938        * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
32939        * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
32940        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
32941        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
32942        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
32943        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
32944        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
32945        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
32946        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
32947        * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
32948        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
32949        * platform/gtk/GtkDragAndDropHelper.cpp:
32950        * platform/gtk/SharedTimerGtk.cpp:
32951
329522014-03-21  Andreas Kling  <akling@apple.com>
32953
32954        HTMLFrameOwnerElement should obey the SubframeLoadingDisabler when creating subframes
32955        <rdar://problem/15675780>
32956
32957        Merge Blink r156744 by Adam Klein.
32958
32959        Test: fast/frames/set-iframe-src-in-pagehide-crash.html
32960
32961        * loader/SubframeLoader.cpp:
32962        (WebCore::SubframeLoader::loadSubframe):
32963
329642014-03-21  Darin Adler  <darin@apple.com>
32965
32966        Improve idiom used for string building in a few places
32967        https://bugs.webkit.org/show_bug.cgi?id=130561
32968
32969        Reviewed by Andreas Kling.
32970
32971        * Modules/indexeddb/IDBKeyData.cpp:
32972        (WebCore::IDBKeyData::loggingString): Use a StringBuilder, and get rid of
32973        an an unnecessary additional string allocation.
32974
32975        * Modules/websockets/ThreadableWebSocketChannel.cpp:
32976        (WebCore::ThreadableWebSocketChannel::create): Use StringBuilder.
32977
32978        * html/FTPDirectoryDocument.cpp:
32979        (WebCore::FTPDirectoryDocumentParser::createTDForFilename): Do a more efficient
32980        string concatenation.
32981        * html/ValidationMessage.cpp:
32982        (WebCore::ValidationMessage::updateValidationMessage): Ditto.
32983
32984        * inspector/InspectorApplicationCacheAgent.cpp:
32985        (WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCacheResource):
32986        Use a StringBuilder.
32987
32988        * inspector/InspectorStyleSheet.cpp: 
32989        (WebCore::InspectorStyle::shorthandValue): Use a StringBuilder.
32990
32991        * inspector/InspectorStyleTextEditor.cpp:
32992        (WebCore::InspectorStyleTextEditor::insertProperty): Use a more efficient idiom
32993        for string concatenation.
32994        (WebCore::InspectorStyleTextEditor::internalReplaceProperty): Ditto.
32995        * loader/FormSubmission.cpp:
32996        (WebCore::appendMailtoPostFormDataToURL): Ditto.
32997
32998        * page/Frame.cpp:
32999        (WebCore::createRegExpForLabels): Use a StringBuilder.
33000
33001        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
33002        (WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Use a more efficient
33003        idiom for string concatenation.
33004
33005        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
33006        (WebCore::GraphicsContext3D::getUnmangledInfoLog): Use a StringBuilder.
33007
33008        * platform/network/MIMEHeader.cpp:
33009        (WebCore::MIMEHeader::parseHeader): Use a more efficient idiom for string
33010        concatenation.
33011        * platform/network/ResourceResponseBase.cpp:
33012        (WebCore::ResourceResponseBase::addHTTPHeaderField): Ditto.
33013        * rendering/RenderLayerCompositor.cpp:
33014        (WebCore::RenderLayerCompositor::layerTreeAsText): Ditto.
33015
33016        * rendering/RenderText.cpp:
33017        (WebCore::RenderText::secureText): Create a new string with the substring
33018        function rather than with the append function.
33019
33020        * xml/XMLHttpRequest.cpp:
33021        (WebCore::XMLHttpRequest::setRequestHeaderInternal): Use a more efficient idiom
33022        for string concatenation.
33023
330242014-03-21  Darin Adler  <darin@apple.com>
33025
33026        Add a combined decodeAndFlush to TextResourceDecoder
33027        https://bugs.webkit.org/show_bug.cgi?id=130560
33028
33029        Reviewed by Andreas Kling.
33030
33031        * WebCore.exp.in: Added new symbol for decodeAndFlush. Also re-did
33032        the geometry types #if so it would sort more logically.
33033
33034        * fileapi/FileReaderLoader.cpp:
33035        (WebCore::FileReaderLoader::convertToText): Use decodeAndFlush.
33036        * inspector/InspectorPageAgent.cpp:
33037        (WebCore::InspectorPageAgent::cachedResourceContent): Ditto.
33038        * inspector/NetworkResourcesData.cpp:
33039        (WebCore::NetworkResourcesData::ResourceData::decodeDataToContent): Ditto.
33040
33041        * loader/TextResourceDecoder.cpp:
33042        (WebCore::TextResourceDecoder::decodeAndFlush): Added.
33043        * loader/TextResourceDecoder.h: Ditto.
33044
33045        * loader/appcache/ManifestParser.cpp:
33046        (WebCore::parseManifest): Use decodeAndFlush.
33047        * loader/cache/CachedCSSStyleSheet.cpp:
33048        (WebCore::CachedCSSStyleSheet::sheetText): Ditto.
33049        (WebCore::CachedCSSStyleSheet::finishLoading): Ditto.
33050
33051        * loader/cache/CachedFont.cpp:
33052        (WebCore::CachedFont::ensureSVGFontData): Use decodeAndFlush. Also use nullptr.
33053        (WebCore::CachedFont::getSVGFontById): Use descendantsOfType<SVGFontElement>
33054        instead of using a NodeList. Much more efficient!
33055
33056        * loader/cache/CachedSVGDocument.cpp:
33057        (WebCore::CachedSVGDocument::finishLoading): Use decodeAndFlush.
33058        * loader/cache/CachedScript.cpp:
33059        (WebCore::CachedScript::script): Ditto.
33060        * loader/cache/CachedXSLStyleSheet.cpp:
33061        (WebCore::CachedXSLStyleSheet::finishLoading): Ditto.
33062        * page/Page.cpp:
33063        (WebCore::Page::userStyleSheet): Ditto.
33064
330652014-03-20  Darin Adler  <darin@apple.com>
33066
33067        Remove a couple of unused functions from CSSOMUtils
33068        https://bugs.webkit.org/show_bug.cgi?id=130558
33069
33070        Reviewed by Andreas Kling.
33071
33072        * css/CSSOMUtils.cpp: Remove String overloads. Callers all use the StringBuilder
33073        ones, which is good since that is a more efficient idiom.
33074        * css/CSSOMUtils.h: Ditto.
33075
330762014-03-20  Pratik Solanki  <psolanki@apple.com>
33077
33078        Unreviewed. iOS build fix after r166017, r166032.
33079
33080        * platform/ScrollView.cpp:
33081        (WebCore::ScrollView::visibleContentRectInternal):
33082
330832014-03-20  Hyowon Kim  <hw1008.kim@samsung.com>
33084
33085        Move to using std::unique_ptr for EFL objects.
33086        https://bugs.webkit.org/show_bug.cgi?id=129853
33087
33088        Reviewed by Gyuyoung Kim.
33089
33090        EflUniquePtr is a template alias of std::unique_ptr
33091        with a custom deleter for each Efl Objects, which is motivated by GUniquePtr.
33092        This patch replaces uses of OwnPtr and PassOwnPtr for Efl objects with EflUniquePtr.
33093
33094        No new tests. No new functionality.
33095
33096        * platform/efl/EflScreenUtilities.h:
33097        * platform/efl/RenderThemeEfl.cpp:
33098        (WebCore::RenderThemeEfl::ThemePartCacheEntry::create):
33099        (WebCore::RenderThemeEfl::loadTheme):
33100        * platform/efl/RenderThemeEfl.h:
33101        * platform/graphics/Icon.h:
33102        * platform/graphics/efl/EvasGLContext.h:
33103        (WebCore::EvasGLContext::create):
33104        * platform/graphics/efl/EvasGLSurface.h:
33105        (WebCore::EvasGLSurface::create):
33106
331072014-03-20  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
33108
33109        [EFL][GTK] Get CMake to find Freetype2 properly
33110        https://bugs.webkit.org/show_bug.cgi?id=130150
33111
33112        Reviewed by Martin Robinson.
33113
33114        Newer versions of CMake are not able to find Freetype2 correctly.
33115        FindFreetype2.cmake checks for the version number in freetype.h header, since it seems that bug exists in
33116        freetype2 repo, because a completely different version number is found in freetype2.pc.
33117
33118        * PlatformEfl.cmake:
33119        * PlatformGTK.cmake:
33120
331212014-03-20  Martin Robinson  <mrobinson@igalia.com>
33122
33123        [GTK] Suppress errors about using gdk_threads_enter gdk_threads_leave
33124        https://bugs.webkit.org/show_bug.cgi?id=130517
33125
33126        Reviewed by Sergio Villar Senin.
33127
33128        * plugins/gtk/gtk2xtbin.c: Use GCC suppression to suppress errors about deprecations.
33129
331302014-03-20  Simon Fraser  <simon.fraser@apple.com>
33131
33132        Cleanup in aisle r166017.
33133        
33134        visibleContentRectInternal() was dropping the scrollbar
33135        inclusiveness on the floor, and we need to reset the top inset
33136        between tests.
33137
33138        * platform/ScrollView.cpp:
33139        (WebCore::ScrollView::visibleContentRectInternal):
33140        * testing/Internals.cpp:
33141        (WebCore::Internals::resetToConsistentState):
33142
331432014-03-20  Enrica Casucci  <enrica@apple.com>
33144
33145        Build fix.
33146
33147        Removing unused variable.
33148        
33149        * page/FrameView.cpp:
33150        (WebCore::FrameView::didPaintContents):
33151
331522014-03-20  Brent Fulgham  <bfulgham@apple.com>
33153
33154        Rename TextTrackRegion/TextTrackRegionList to VTTRegion/VTTRegionList
33155        https://bugs.webkit.org/show_bug.cgi?id=130543
33156
33157        Reviewed by Dean Jackson.
33158
33159        Merged from Blink (patch by philipj@opera.com):
33160        https://chromium.googlesource.com/chromium/blink/+/69ee6d3399d64163e4936ac1bde222036c54c4b8
33161        http://crbug.com/55653003
33162
33163        Tests: media/track/regions-webvtt/vtt-region-constructor.html
33164               media/track/regions-webvtt/vtt-region-display.html
33165               media/track/regions-webvtt/vtt-region-dom-layout.html
33166               media/track/regions-webvtt/vtt-region-list.html
33167               media/track/regions-webvtt/vtt-region-parser.html
33168
33169        * Configurations/FeatureDefines.xcconfig:
33170        * DerivedSources.make:
33171        * WebCore.xcodeproj/project.pbxproj:
33172        * html/shadow/MediaControlElements.cpp:
33173        (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
33174        * html/track/LoadableTextTrack.cpp:
33175        (WebCore::LoadableTextTrack::newRegionsAvailable):
33176        * html/track/TextTrack.cpp:
33177        (WebCore::TextTrack::ensureVTTRegionList):
33178        (WebCore::TextTrack::regions):
33179        (WebCore::TextTrack::addRegion):
33180        (WebCore::TextTrack::removeRegion):
33181        * html/track/TextTrack.h:
33182        * html/track/TextTrack.idl:
33183        * html/track/TextTrackCue.cpp:
33184        * html/track/TextTrackRegion.cpp: Removed.
33185        * html/track/TextTrackRegion.h: Removed.
33186        * html/track/TextTrackRegion.idl: Removed.
33187        * html/track/TextTrackRegionList.cpp: Removed.
33188        * html/track/TextTrackRegionList.h: Removed.
33189        * html/track/TextTrackRegionList.idl: Removed.
33190        * html/track/VTTCue.cpp:
33191        (WebCore::VTTCue::removeDisplayTree):
33192        * html/track/VTTRegion.cpp: Copied from Source/WebCore/html/track/TextTrackRegion.cpp.
33193        (WebCore::VTTRegion::VTTRegion):
33194        (WebCore::VTTRegion::~VTTRegion):
33195        (WebCore::VTTRegion::setTrack):
33196        (WebCore::VTTRegion::setId):
33197        (WebCore::VTTRegion::setWidth):
33198        (WebCore::VTTRegion::setHeight):
33199        (WebCore::VTTRegion::setRegionAnchorX):
33200        (WebCore::VTTRegion::setRegionAnchorY):
33201        (WebCore::VTTRegion::setViewportAnchorX):
33202        (WebCore::VTTRegion::setViewportAnchorY):
33203        (WebCore::VTTRegion::scroll):
33204        (WebCore::VTTRegion::setScroll):
33205        (WebCore::VTTRegion::updateParametersFromRegion):
33206        (WebCore::VTTRegion::setRegionSettings):
33207        (WebCore::VTTRegion::getSettingFromString):
33208        (WebCore::VTTRegion::parseSettingValue):
33209        (WebCore::VTTRegion::parseSetting):
33210        (WebCore::VTTRegion::textTrackCueContainerScrollingClass):
33211        (WebCore::VTTRegion::textTrackCueContainerShadowPseudoId):
33212        (WebCore::VTTRegion::textTrackRegionShadowPseudoId):
33213        (WebCore::VTTRegion::appendTextTrackCueBox):
33214        (WebCore::VTTRegion::displayLastTextTrackCueBox):
33215        (WebCore::VTTRegion::willRemoveTextTrackCueBox):
33216        (WebCore::VTTRegion::getDisplayTree):
33217        (WebCore::VTTRegion::prepareRegionDisplayTree):
33218        (WebCore::VTTRegion::startTimer):
33219        (WebCore::VTTRegion::stopTimer):
33220        (WebCore::VTTRegion::scrollTimerFired):
33221        * html/track/VTTRegion.h: Copied from Source/WebCore/html/track/TextTrackRegion.h.
33222        (WebCore::VTTRegion::create):
33223        * html/track/VTTRegion.idl: Copied from Source/WebCore/html/track/TextTrackRegion.idl.
33224        * html/track/VTTRegionList.cpp: Copied from Source/WebCore/html/track/TextTrackRegionList.cpp.
33225        (WebCore::VTTRegionList::VTTRegionList):
33226        (WebCore::VTTRegionList::length):
33227        (WebCore::VTTRegionList::item):
33228        (WebCore::VTTRegionList::getRegionById):
33229        (WebCore::VTTRegionList::add):
33230        (WebCore::VTTRegionList::remove):
33231        (WebCore::VTTRegionList::clear):
33232        * html/track/VTTRegionList.h: Copied from Source/WebCore/html/track/TextTrackRegionList.h.
33233        (WebCore::VTTRegionList::create):
33234        (WebCore::VTTRegionList::~VTTRegionList):
33235        * html/track/VTTRegionList.idl: Copied from Source/WebCore/html/track/TextTrackRegionList.idl.
33236        * html/track/WebVTTParser.cpp:
33237        (WebCore::WebVTTParser::parseFloatPercentageValue):
33238        (WebCore::WebVTTParser::getNewRegions):
33239        (WebCore::WebVTTParser::createNewRegion):
33240        * html/track/WebVTTParser.h:
33241        * loader/TextTrackLoader.cpp:
33242        (WebCore::TextTrackLoader::getNewRegions):
33243        * loader/TextTrackLoader.h:
33244
332452014-03-20  Simon Fraser  <simon.fraser@apple.com>
33246
33247        Fix the iOS build.
33248
33249        * page/FrameView.cpp:
33250        (WebCore::FrameView::willPaintContents):
33251        (WebCore::FrameView::didPaintContents):
33252
332532014-03-20  Hans Muller  <hmuller@adobe.com>
33254
33255        [CSS Shapes] clamp RasterShape shapeMargin to reference box size
33256        https://bugs.webkit.org/show_bug.cgi?id=130350
33257
33258        Reviewed by Dean Jackson.
33259
33260        Corrected the way the maximum shape-margin value was computed for image valued
33261        shapes. The limiting case is an image with just one above threshold pixel. The
33262        largest possible value for shapeMargin is the radius of a circle that encloses
33263        the size of the shape-outside element's margin-box, since the shape-outside's
33264        boundary is clipped to the margin-box. The radius is just sqrt(2) * the margin-box's
33265        largest dimension.
33266
33267        Also cleaned up up a few poorly named parameters.
33268
33269        Test: fast/shapes/shape-outside-floats/shape-outside-one-pixel.html
33270
33271        * rendering/shapes/RasterShape.cpp:
33272        (WebCore::RasterShape::marginIntervals):
33273        * rendering/shapes/RasterShape.h:
33274        (WebCore::RasterShape::RasterShape):
33275        * rendering/shapes/Shape.h:
33276
332772014-03-20  Beth Dakin  <bdakin@apple.com>
33278
33279        Build fix.
33280
33281        * page/FrameView.cpp:
33282        (WebCore::FrameView::paintContents):
33283
332842014-03-20  Beth Dakin  <bdakin@apple.com>
33285
33286        Implement contentInset for Mac WebKit2
33287        https://bugs.webkit.org/show_bug.cgi?id=130273
33288
33289        Reviewed by Simon Fraser.
33290
33291        This patch adds support for topContentInset(). If a page has a topContentInset(), 
33292        the root layer’s position is adjusted to account for the inset. It is assumed that 
33293        the area accounted for by the inset is visible but obscured, so scrollbars need to 
33294        be moved so that they only cover the non-obscured area, and most parts of WebCore 
33295        that wonder about visibleContentSize only care about the unobscured area, so this 
33296        patch makes that visibleContentRect return the unobscuredRect. Finally since this 
33297        is achieved by moving a layer’s position, the topContentInset() also needs to be 
33298        factored into various functions that are used to convert between coordinate 
33299        spaces. 
33300
33301        Return Page::topContentInset() if this is the main frame.
33302        * page/FrameView.cpp:
33303        (WebCore::FrameView::topContentInset):
33304        * page/FrameView.h:
33305
33306        Cache the inset on Page.
33307        * page/Page.cpp:
33308        (WebCore::Page::Page):
33309        * page/Page.h:
33310        (WebCore::Page::topContentInset):
33311        (WebCore::Page::setTopContentInset):
33312
33313        unobscuredContentRect() used to unconditionally return visibleContentRect() on 
33314        non-iOS platforms. Now that it is possible for some technically visible content to 
33315        be obscured, this code needed to be re-worked a bit to make some more sense. 
33316        visibleContentRect() now represents that visible content that is completely 
33317        unobscured, so it should call into unobscuredContentRect() rather than the other 
33318        way around.
33319        * platform/ScrollView.cpp:
33320        (WebCore::ScrollView::unobscuredContentRect):
33321
33322        unscaledTotalVisibleContentSize() includes the size of all content that might be 
33323        visible. Some of this content might be obscured.
33324        (WebCore::ScrollView::unscaledTotalVisibleContentSize):
33325
33326        Most of the time, we only care about the content that is FULLY visible. That is 
33327        what you get from unscaledUnobscuredVisibleContentSize().
33328        (WebCore::ScrollView::unscaledUnobscuredVisibleContentSize):
33329
33330        Use the unobscured size for these computations.
33331        (WebCore::ScrollView::visibleContentRectInternal):
33332        (WebCore::ScrollView::layoutSize):
33333
33334        Factor in the topContentInset().
33335        (WebCore::ScrollView::scrollOffsetRelativeToDocument):
33336        (WebCore::ScrollView::scrollPositionRelativeToDocument):
33337
33338        The scrollbars should be positioned to cover the non-obscured content only. 
33339        (WebCore::ScrollView::updateScrollbars):
33340
33341        Again, factor the topContentInset() into these conversions since the root layer’s 
33342        position has been adjusted to account for it.
33343        (WebCore::ScrollView::contentsToRootView):
33344        (WebCore::ScrollView::contentsToWindow):
33345
33346         Just like the scrollbars, the scroll corner must be moved the account for the 
33347        inset.
33348        (WebCore::ScrollView::scrollCornerRect):
33349        * platform/ScrollView.h:
33350        (WebCore::ScrollView::topContentInset):
33351
33352        RenderLayerCompositor cares about unscaledTotalVisibleContentSize(). It does not 
33353        care if some of that content is obscured.
33354        * rendering/RenderLayerCompositor.cpp:
33355        (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
33356
33357        Move the root layer’s position based on the contentInset.
33358        (WebCore::RenderLayerCompositor::updateRootLayerPosition):
33359        (WebCore::RenderLayerCompositor::ensureRootLayer):
33360
33361        Allow setting contentInset via Internals for testing purposes.
33362        * testing/Internals.cpp:
33363        (WebCore::Internals::setTopContentInset):
33364        * testing/Internals.h:
33365        * testing/Internals.idl:
33366
333672014-03-20  Laszlo Vidacs  <lvidacs.u-szeged@partner.samsung.com>
33368
33369        Optimize RenderTable::colToEffCol() for tables without colspans
33370        https://bugs.webkit.org/show_bug.cgi?id=129298
33371
33372        Reviewed by Simon Fraser.
33373
33374        Create an alternative fast path to RenderTable colToEffCol() and effColToCol()
33375        when there is no colspan or colspan does not exceed the width of table.
33376        Blink merge https://codereview.chromium.org/154243002 by rhogan
33377
33378        * rendering/RenderTable.cpp:
33379        (WebCore::RenderTable::RenderTable):
33380        (WebCore::RenderTable::appendColumn):
33381        (WebCore::RenderTable::recalcSections):
33382        * rendering/RenderTable.h:
33383        (WebCore::RenderTable::colToEffCol):
33384        (WebCore::RenderTable::effColToCol):
33385        (WebCore::RenderTable::hasCellColspanThatDeterminesTableWidth):
33386
333872014-03-20  Simon Fraser  <simon.fraser@apple.com>
33388
33389        FrameView::paintContents() is not called for composited content
33390        https://bugs.webkit.org/show_bug.cgi?id=130541
33391
33392        Reviewed by Beth Dakin.
33393
33394        FrameView::paintContents() is not called for frames that have
33395        composited contents, yet it contains code that is expected
33396        to run for all Frames.
33397        
33398        Fix by factoring into will/didPaintContents(), and calling
33399        the will/did functions from RenderLayerBacking::paintIntoLayer().
33400        
33401        Also add a SetLayoutNeededForbiddenScope check for composited-layer
33402        painting.
33403
33404        * page/FrameView.cpp:
33405        (WebCore::FrameView::updateControlTints):
33406        (WebCore::FrameView::willPaintContents):
33407        (WebCore::FrameView::didPaintContents):
33408        (WebCore::FrameView::paintContents):
33409        * page/FrameView.h:
33410        * rendering/RenderLayerBacking.cpp:
33411        (WebCore::RenderLayerBacking::paintIntoLayer):
33412
334132014-03-20  Tim Horton  <timothy_horton@apple.com>
33414
33415        Fix the Mountain Lion build.
33416
33417        * platform/graphics/cocoa/IOSurface.mm:
33418        (IOSurface::setIsPurgeable):
33419
334202014-03-20  Brian Burg  <bburg@apple.com>
33421
33422        Web Replay: capture and replay mouse events
33423        https://bugs.webkit.org/show_bug.cgi?id=129395
33424
33425        Reviewed by Joseph Pecoraro.
33426
33427        Add support for capturing and replaying mouse inputs that come from WebKit2.
33428        Hook up the UserInputBridge to session state changes in the ReplayController so
33429        that the bridge knows when to capture or deny mouse inputs.
33430
33431        Test: ManualTests/inspector/replay-mouse-events.html
33432
33433        * platform/PlatformEvent.h: Give explicit storage types to Modifiers and Type enums
33434        so they can be forward-declared.
33435        * platform/PlatformMouseEvent.h: Give an explicit storage type to enum MouseButton.
33436        Add operator== and operator!= for MouseButton to work around an MSVC bug.
33437
33438        * replay/ReplayController.cpp: Perform session state changes in a helper function, and
33439        at the same time change the state of the page's user input bridge.
33440        (WebCore::ReplayController::setSessionState):
33441        (WebCore::ReplayController::startCapturing):
33442        (WebCore::ReplayController::stopCapturing):
33443        (WebCore::ReplayController::startPlayback):
33444        (WebCore::ReplayController::cancelPlayback):
33445
33446        * replay/ReplayInputDispatchMethods.cpp: Add dispatch methods for new inputs.
33447        (WebCore::HandleMouseMove::dispatch):
33448        (WebCore::HandleMousePress::dispatch):
33449        (WebCore::HandleMouseRelease::dispatch):
33450
33451        * replay/SerializationMethods.cpp: Add helper macros so that encode/decode methods look
33452        symmetric with one data member per line. This helps reduce unintentional inconsistencies.
33453        (JSC::EncodingTraits<PlatformMouseEvent>::encodeValue): Added.
33454        (JSC::EncodingTraits<PlatformMouseEvent>::decodeValue): Added.
33455        * replay/SerializationMethods.h:
33456
33457        * replay/UserInputBridge.cpp: Fill in the bridge method implementations for mouse
33458        events, adding helpers and macros as necessary to reduce boilerplate.
33459        (WebCore::UserInputBridge::activeCursor): Added.
33460        (WebCore::UserInputBridge::handleMousePressEvent):
33461        (WebCore::UserInputBridge::handleMouseReleaseEvent):
33462        (WebCore::UserInputBridge::handleMouseMoveEvent):
33463        (WebCore::UserInputBridge::handleMouseMoveOnScrollbarEvent):
33464
33465        * replay/UserInputBridge.h: Add a bridge state enum along with getters and setters.
33466        The enum value controls whether the bridge should capture commands, deny non-synthetic
33467        commands (from the user), or allow anything to pass (the default).
33468        (WebCore::UserInputBridge::setState): Added.
33469        (WebCore::UserInputBridge::state): Added.
33470
33471        * replay/WebInputs.json: Add inputs HandleMouseMove, HandleMousePress, HandleMouseRelease.
33472        Add enum definitions for PlatformEvent::Type, PlatformEvent::Modifiers, and PlatformMouseEvent::MouseButton.
33473        Alphabetize the existing data type definitions.
33474
334752014-03-20  Tim Horton  <timothy_horton@apple.com>
33476
33477        Add WebCore::IOSurface wrapper
33478        https://bugs.webkit.org/show_bug.cgi?id=130529
33479
33480        Reviewed by Simon Fraser.
33481
33482        * WebCore.exp.in:
33483        * WebCore.xcodeproj/project.pbxproj:
33484        * platform/graphics/cg/ColorCG.cpp:
33485        * platform/graphics/cg/GraphicsContextCG.h:
33486        (WebCore::cachedCGColorSpace):
33487        Move cachedCGColorSpace out so that other clients of GraphicsContextCG
33488        can use its mapping from WebCore::ColorSpace -> CGColorSpaceRef.
33489
33490        * platform/graphics/cg/ImageBufferBackingStoreCache.cpp:
33491        * platform/graphics/cg/ImageBufferCG.cpp:
33492        Add FIXMEs for ImageBuffer to adopt WebCore::IOSurface.
33493
33494        * platform/graphics/cocoa/IOSurface.h: Added.
33495        * platform/graphics/cocoa/IOSurface.mm: Added.
33496        (IOSurface::create):
33497        (IOSurface::createFromMachPort):
33498        (IOSurface::createFromSurface):
33499        (IOSurface::IOSurface):
33500        (IOSurface::maximumSize):
33501        (IOSurface::createMachPort):
33502        (IOSurface::createImage):
33503        (IOSurface::ensurePlatformContext):
33504        (IOSurface::ensureGraphicsContext):
33505        (IOSurface::state):
33506        (IOSurface::isPurgeable):
33507        (IOSurface::setIsPurgeable):
33508        (IOSurface::inUse):
33509        Add WebCore::IOSurface.
33510
335112014-03-20  Pratik Solanki  <psolanki@apple.com>
33512
33513        iOS build fix after r165992.
33514
33515        * generate-export-file:
33516        (preprocessorMacros):
33517
335182014-03-20  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
33519
33520        [WebRTC] Moving RTCConfiguration and RTCIceServer to Modules/mediastream
33521        https://bugs.webkit.org/show_bug.cgi?id=130434
33522
33523        Reviewed by Eric Carlson.
33524
33525        Those classes are defined in WebRTC spec, so they should not be in platform layer.
33526        Adding a platform implementation to be passed to handler classes.
33527
33528        * Modules/mediastream/RTCConfiguration.h: Copied from Source/WebCore/platform/mediastream/RTCConfiguration.h.
33529        * Modules/mediastream/RTCIceServer.h: Copied from Source/WebCore/platform/mediastream/RTCIceServer.h.
33530        * Modules/mediastream/RTCPeerConnection.cpp:
33531        (WebCore::RTCPeerConnection::RTCPeerConnection):
33532        (WebCore::RTCPeerConnection::updateIce):
33533        * WebCore.xcodeproj/project.pbxproj:
33534        * platform/mediastream/RTCConfigurationPrivate.h: Added.
33535        * platform/mediastream/RTCIceServerPrivate.h: Added.
33536        * platform/mediastream/RTCPeerConnectionHandler.h:
33537        * platform/mock/RTCPeerConnectionHandlerMock.cpp:
33538        (WebCore::RTCPeerConnectionHandlerMock::initialize):
33539        (WebCore::RTCPeerConnectionHandlerMock::updateIce):
33540        * platform/mock/RTCPeerConnectionHandlerMock.h:
33541
335422014-03-20  Alex Christensen  <achristensen@webkit.org>
33543
33544        [WinCairo] Unreviewed speculative build after my r165996.
33545
33546        * platform/network/soup/AuthenticationChallengeSoup.cpp:
33547        * platform/network/soup/CertificateInfo.cpp:
33548        * platform/network/soup/CookieJarSoup.cpp:
33549        * platform/network/soup/ResourceRequestSoup.cpp:
33550        * platform/network/soup/ResourceResponseSoup.cpp:
33551        * platform/network/soup/SynchronousLoaderClientSoup.cpp:
33552
335532014-03-20  Brent Fulgham  <bfulgham@apple.com>
33554
33555        Add a flushing mechanism for the WebVTTParser
33556        https://bugs.webkit.org/show_bug.cgi?id=130532
33557
33558        Reviewed by Eric Carlson.
33559
33560        Merged from Blink (patch by vcarbune@chromium.org):
33561        https://chromium.googlesource.com/chromium/blink/+/1ac2b3081492ab8661429230004013a9a3623f0f
33562        http://crbug.com/54203003
33563        https://chromium.googlesource.com/chromium/blink/+/24343d32bc36d20d59ef3e10040faddde65929e6
33564        http://crbug.com/59453002
33565        https://chromium.googlesource.com/chromium/blink/+/ef2793f1d9d207389589ecf9a136ea5c7170b4af
33566        http://crbug.com/75233002
33567        https://chromium.googlesource.com/chromium/blink/+/a29f2f8324abcd4826b41e7dc34373dee2ec57a9
33568        http://crbug.com/52713005
33569        https://chromium.googlesource.com/chromium/blink/+/7ce003c8d47b39f116f1f2a592a5dfb4a9e77228
33570        http://crbug.com/64303004
33571        https://chromium.googlesource.com/chromium/blink/+/18f896b3498478311e880f782813d5dfc8c0c7d1
33572        http://crbug.com/96933004
33573        https://chromium.googlesource.com/chromium/blink/+/8670e8ecb13254a651f5493ec83f4484d18c154e
33574        http://crbug.com/98783005
33575        https://chromium.googlesource.com/chromium/blink/+/4ac55780a6af3d76e0159c1d145330964ad56647
33576        http://crbug.com/104713002
33577
33578        Tests: http/tests/media/track/track-webvtt-slow-loading-2.html
33579               http/tests/media/track/track-webvtt-slow-loading.html
33580
33581        * CMakeLists.txt:
33582        * GNUmakefile.list.am:
33583        * WebCore.vcxproj/WebCore.vcxproj:
33584        * WebCore.vcxproj/WebCore.vcxproj.filters:
33585        * WebCore.xcodeproj/project.pbxproj:
33586        * html/track/BufferedLineReader.cpp: Added.
33587        * html/track/BufferedLineReader.h: Added.
33588        * html/track/TextTrackRegion.cpp:
33589        * html/track/VTTCue.cpp:
33590        * html/track/WebVTTParser.cpp:
33591        * html/track/WebVTTParser.h:
33592        * loader/TextTrackLoader.cpp:
33593
335942014-03-20  Alex Christensen  <achristensen@webkit.org>
33595
33596        Preparation for using Soup on Windows.
33597        https://bugs.webkit.org/show_bug.cgi?id=130472
33598
33599        Reviewed by Brent Fulgham.
33600
33601        * WebCore.vcxproj/WebCore.vcxproj:
33602        * WebCore.vcxproj/WebCore.vcxproj.filters:
33603        Added Soup source to build on WinCairo.
33604        * platform/network/curl/CookieJarCurl.cpp:
33605        * platform/network/curl/CredentialStorageCurl.cpp:
33606        * platform/network/curl/CurlCacheEntry.cpp:
33607        * platform/network/curl/CurlCacheManager.cpp:
33608        * platform/network/curl/CurlDownload.cpp:
33609        * platform/network/curl/DNSCurl.cpp:
33610        * platform/network/curl/FormDataStreamCurl.cpp:
33611        * platform/network/curl/MultipartHandle.cpp:
33612        * platform/network/curl/ProxyServerCurl.cpp:
33613        * platform/network/curl/ResourceHandleCurl.cpp:
33614        * platform/network/curl/ResourceHandleManager.cpp:
33615        * platform/network/curl/SSLHandle.cpp:
33616        * platform/network/curl/SocketStreamHandleCurl.cpp:
33617        Protected with USE(CURL) to avoid duplicate symbols when linking.
33618        * platform/network/soup/AuthenticationChallengeSoup.cpp:
33619        * platform/network/soup/CertificateInfo.cpp:
33620        * platform/network/soup/CookieJarSoup.cpp:
33621        * platform/network/soup/CookieStorageSoup.cpp:
33622        * platform/network/soup/CredentialStorageSoup.cpp:
33623        * platform/network/soup/DNSSoup.cpp:
33624        * platform/network/soup/NetworkStorageSessionSoup.cpp:
33625        * platform/network/soup/ProxyResolverSoup.cpp:
33626        * platform/network/soup/ProxyServerSoup.cpp:
33627        * platform/network/soup/ResourceErrorSoup.cpp:
33628        * platform/network/soup/ResourceHandleSoup.cpp:
33629        * platform/network/soup/ResourceRequestSoup.cpp:
33630        * platform/network/soup/ResourceResponseSoup.cpp:
33631        * platform/network/soup/SocketStreamHandleSoup.cpp:
33632        * platform/network/soup/SoupNetworkSession.cpp:
33633        * platform/network/soup/SynchronousLoaderClientSoup.cpp:
33634        Protected with USE(CURL) to avoid duplicate symbols when linking.
33635
336362014-03-20  Pratik Solanki  <psolanki@apple.com>
33637
33638        iOS build fix after r165979.
33639
33640        * generate-export-file:
33641        (preprocessorMacros):
33642
336432014-03-20  David Hyatt  <hyatt@apple.com>
33644
33645        [New Multicolumn] getClientRects returns wrong rectangle
33646        https://bugs.webkit.org/show_bug.cgi?id=128614
33647
33648        Reviewed by Sam Weinig.
33649
33650        Added fast/multicol/newmulticol/client-rects.html and beefed up existing
33651        fast/multicol/client-rects.html to use more writing modes.
33652
33653        * rendering/LayoutState.h:
33654        Removed unused function.
33655
33656        * rendering/RenderFlowThread.h:
33657        Make mapFlowToRegion virtual so that RenderMultiColumnFlowThread can
33658        override it.
33659
33660        * rendering/RenderMultiColumnFlowThread.cpp:
33661        (WebCore::RenderMultiColumnFlowThread::mapFromFlowToRegion):
33662        * rendering/RenderMultiColumnFlowThread.h:
33663        Implement mapFlowToRegion to correctly translate a flow thread position
33664        into a column offset within a region.
33665
33666        * rendering/RenderMultiColumnSet.cpp:
33667        (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
33668        (WebCore::RenderMultiColumnSet::adjustRegionBoundsFromFlowThreadPortionRect):
33669        * rendering/RenderMultiColumnSet.h:
33670        Refactored some code to make a columnTranslationForOffset helper that
33671        can be used by RenderMultiColumnFlowThread.
33672
336732014-03-20  Daniel Bates  <dabates@apple.com>
33674
33675        Preserve original document URL for XSSAuditor reports
33676
33677        Merged from Blink (patch by Tom Sepez):
33678        https://src.chromium.org/viewvc/blink?view=rev&revision=158406
33679
33680        Test: http/tests/security/xssAuditor/report-script-tag-replace-state.html
33681
33682        * html/parser/XSSAuditor.cpp:
33683        (WebCore::XSSAuditor::filterToken):
33684        * html/parser/XSSAuditorDelegate.cpp:
33685        (WebCore::buildConsoleError):
33686        (WebCore::XSSAuditorDelegate::generateViolationReport):
33687        (WebCore::XSSAuditorDelegate::didBlockScript):
33688        * html/parser/XSSAuditorDelegate.h:
33689        (WebCore::XSSInfo::XSSInfo):
33690
336912014-03-20  Daniel Bates  <dabates@apple.com>
33692
33693        XSSAuditor bypass with frameset tags
33694
33695        Merged from Blink (patch by Tom Sepez):
33696        https://src.chromium.org/viewvc/blink?view=rev&revision=157794
33697
33698        Test: http/tests/security/xssAuditor/frameset-injection.html
33699
33700        * html/parser/XSSAuditor.cpp:
33701        (WebCore::XSSAuditor::filterStartToken):
33702        (WebCore::XSSAuditor::filterFrameToken):
33703        * html/parser/XSSAuditor.h:
33704
337052014-03-20  Brian Burg  <bburg@apple.com>
33706
33707        Web Replay: fix some oversights in the replay backend
33708        https://bugs.webkit.org/show_bug.cgi?id=130435
33709
33710        Reviewed by Andreas Kling.
33711
33712        This functionality will be covered by tests in https://webkit.org/b/130145.
33713
33714        * inspector/InspectorInstrumentation.cpp:
33715        (WebCore::InspectorInstrumentation::playbackFinishedImpl):
33716        * inspector/InspectorInstrumentation.h:
33717        (WebCore::InspectorInstrumentation::playbackFinished):
33718        * inspector/InspectorReplayAgent.cpp:
33719        (WebCore::buildInspectorObjectForSegment):
33720        (WebCore::InspectorReplayAgent::playbackFinished):
33721        * inspector/InspectorReplayAgent.h: Add a playbackFinished event to Inspector
33722        instrumentation. This is fired by ReplayController when playback is cancelled or 
33723        playback of the final segment has completed.
33724
33725        * replay/EventLoopInputDispatcher.cpp:
33726        (WebCore::EventLoopInputDispatcher::dispatchInputSoon): Fix wrong cast.
33727        (WebCore::EventLoopInputDispatcher::dispatchInput): Ensure that m_dispatching is
33728        false when m_running is false.
33729        * replay/EventLoopInputDispatcher.h: Distinguish 'dispaching' and 'running' in comments.
33730        (WebCore::EventLoopInputDispatcher::isRunning): Added.
33731
33732        * replay/FunctorInputCursor.h: Since the base class InputCursor is RefCounted, the
33733        Functor subclass cannot be put into a unique_ptr. Add create() method instead.
33734
33735        * replay/ReplayController.cpp:
33736        (WebCore::ReplayController::loadSegmentAtIndex): Renamed from loadSegment(). Callers
33737        now pass in the desired segment index rather than the segment itself. The index is
33738        necessary to properly reset m_position after the segment is loaded.
33739
33740        (WebCore::ReplayController::startPlayback): Set the dispatcher's speed before run().
33741        (WebCore::ReplayController::pausePlayback): Only pause the dispatcher if it's running.
33742        (WebCore::ReplayController::cancelPlayback): Add playbackFinished instrumentation.
33743        (WebCore::ReplayController::replayToPosition):
33744        (WebCore::ReplayController::didDispatchFinalInput): If there are no more segments to load,
33745        manually adjust the final m_position and defer to cancelPlayback to unload the segment.
33746        * replay/ReplayController.h:
33747        * replay/ReplaySessionSegment.cpp:
33748        (WebCore::ReplaySessionSegment::createFunctorCursor):
33749        * replay/ReplaySessionSegment.h:
33750
337512014-03-20  Pratik Solanki  <psolanki@apple.com>
33752
33753        [iOS] Get code to compile on older iOS versions
33754        https://bugs.webkit.org/show_bug.cgi?id=130142
33755        <rdar://problem/16302908>
33756
33757        Reviewed by Darin Adler.
33758
33759        * WebCore.exp.in:
33760        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
33761        (-[WebVideoFullscreenController WebCore::]):
33762        (-[WebVideoFullscreenController enterFullscreen:]):
33763        (-[WebVideoFullscreenController exitFullscreen]):
33764        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
33765        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
33766        * platform/mac/HTMLConverter.mm:
33767        (_dateForString):
33768        * platform/network/cf/CookieJarCFNet.cpp:
33769        (WebCore::copyCookiesForURLWithFirstPartyURL):
33770        * platform/text/ios/LocalizedDateCache.mm:
33771        (WebCore::LocalizedDateCache::calculateMaximumWidth):
33772        * platform/text/mac/LocaleMac.mm:
33773        (WebCore::LocaleMac::LocaleMac):
33774
337752014-03-20  Simon Fraser  <simon.fraser@apple.com>
33776
33777        Followup build fix: AnimationBase.h needs to be private because
33778        it's included by AnimationController.h.
33779
33780        * WebCore.xcodeproj/project.pbxproj:
33781
337822014-03-20  Simon Fraser  <simon.fraser@apple.com>
33783
33784        A completed fill-forwards animation should not disable overlap testing
33785        https://bugs.webkit.org/show_bug.cgi?id=130522
33786        <rdar://problem/15862395>
33787
33788        Reviewed by Dean Jackson.
33789        
33790        Previously, if -webkit-transform was being keyframe-animated, and the
33791        animation had fill-forwards, then we would continue to think that the
33792        animation is running and turn off compositing overlap testing. This
33793        caused some sites to keep too much backing store around.
33794        
33795        Fix by having isRunning{Accelerated}AnimationOnRenderer take some flags
33796        so that more specific questions about the running state can be asked.
33797        For layer creation, keep using the same criteria as before (for now)
33798        which includes paused and fill-forwards animations. For overlap testing,
33799        don't include the fill-forwards test.
33800
33801        Tests: compositing/animation/filling-animation-overlap-at-end.html
33802               compositing/animation/filling-animation-overlap.html
33803               compositing/animation/layer-for-filling-animation.html
33804
33805        * page/animation/AnimationBase.h:
33806        (WebCore::AnimationBase::fillingForwards):
33807        (WebCore::AnimationBase::inPausedState):
33808        (WebCore::AnimationBase::isAnimatingProperty):
33809        * page/animation/AnimationController.cpp:
33810        (WebCore::AnimationControllerPrivate::isRunningAnimationOnRenderer):
33811        (WebCore::AnimationControllerPrivate::isRunningAcceleratedAnimationOnRenderer):
33812        (WebCore::AnimationController::isRunningAnimationOnRenderer):
33813        (WebCore::AnimationController::isRunningAcceleratedAnimationOnRenderer):
33814        * page/animation/AnimationController.h:
33815        * page/animation/AnimationControllerPrivate.h:
33816        * page/animation/CompositeAnimation.cpp:
33817        (WebCore::CompositeAnimation::isAnimatingProperty):
33818        * page/animation/CompositeAnimation.h:
33819        * rendering/RenderLayerBacking.cpp:
33820        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
33821        * rendering/RenderLayerCompositor.cpp:
33822        (WebCore::RenderLayerCompositor::requiresCompositingForAnimation):
33823        (WebCore::RenderLayerCompositor::isRunningAcceleratedTransformAnimation):
33824
338252014-03-20  Dirk Schulze  <krit@webkit.org>
33826
33827        Canvas methods clip/fill/stroke should not except 0 argument
33828        https://bugs.webkit.org/show_bug.cgi?id=130497
33829
33830        Reviewed by Dean Jackson.
33831
33832        Do not allow nullable argument for fill/stroke/clip.
33833
33834        No new tests. Updated existing tests.
33835
33836        * html/canvas/CanvasRenderingContext2D.idl:
33837
338382014-03-20  Eric Carlson  <eric.carlson@apple.com>
33839
33840        [iOS] Support MediaDocument when building with PLUGIN_PROXY_FOR_VIDEO
33841        https://bugs.webkit.org/show_bug.cgi?id=130520
33842
33843        Reviewed by Jer Noble.
33844
33845        * dom/DOMImplementation.cpp:
33846        (WebCore::DOMImplementation::createDocument): Check the isVideoPluginProxyEnabled setting 
33847            when building with ENABLE_PLUGIN_PROXY_FOR_VIDEO.
33848
338492014-03-20  Mihai Tica  <mitica@adobe.com>
33850
33851        [CSS Blending] Blending operation is not isolated when setting z-index on parent from javascript
33852        https://bugs.webkit.org/show_bug.cgi?id=129307
33853
33854        Reviewed by Dean Jackson.
33855
33856        Reimplement the logic behind isolating blend modes. The blending operation should be limited to the
33857        contents of the parent stacking context. The proposed solution implies adding logic in updateDescendantDependentFlags,
33858        to track child elements that have blending and create a transparency layer that triggers isolation.
33859
33860        Tests: css3/compositing/blend-mode-background.html
33861               fast/repaint/blend-mode-isolate-stacking-context.html
33862
33863        * rendering/RenderLayer.cpp:
33864        (WebCore::RenderLayer::RenderLayer): Remove old members, add new members to constructor.
33865        (WebCore::RenderLayer::updateBlendMode): Update parent stacking context isolation on blend mode change.
33866        (WebCore::RenderLayer::updateNonCompositedParentStackingContextHasBlendedChild):
33867        - Set m_hasBlendedElementInChildStackingContext for the non composited parent stacking context.
33868        (WebCore::RenderLayer::dirtyAncestorParentStackingContextHasBlendedElement):
33869        - Set flag so isolation should be considered in updateDescendantDependentFlags.
33870        (WebCore::RenderLayer::nonCompositedParentStackingContextHasBlendedChild):
33871        - Return whether the non composited parent stacking context isolates blending.
33872        (WebCore::RenderLayer::updateDescendantDependentFlags): Add logic for isolating blending.
33873        (WebCore::RenderLayer::addChild): Call to updateNonCompositedParentStackingContextHasBlendedChild if needed.
33874        (WebCore::RenderLayer::removeChild): Call to dirtyAncestorParentStackingContextHasBlendedElement if needed.
33875        (WebCore::RenderLayer::updateStackingContextsAfterStyleChange): Update isolation when a stacking context was set or unset.
33876        (WebCore::RenderLayer::styleChanged): Removed oldStyle parameter from updateBlendMode call.
33877         Update parent stacking context isolation on blend mode change.
33878        * rendering/RenderLayer.h:
33879        - Add members, getters and setters for tracking whether the element has a blended child:
33880            - m_hasBlendedElementInChildStackingContext
33881            - m_hasBlendedElementInChildStackingContextStatusDirty
33882        - Removed m_updateParentStackingContextShouldIsolateBlendingDirty (replaced with m_hasBlendedElementInChildStackingContextStatusDirty)
33883        - Removed m_isolatesBlending (replaced with m_hasBlendedElementInChildStackingContext)
33884        - Updated the isolatesBlending method to return true only when the element is a stacking context and has a blended child.
33885        * rendering/RenderLayerCompositor.cpp:
33886        (WebCore::RenderLayerCompositor::computeCompositingRequirements): Removed layer.updateParentStackingContextShouldIsolateBlending call.
33887
338882014-03-20  Martin Robinson  <mrobinson@igalia.com>
33889
33890        [GTK] [CMake] Do not compile ProxyResolverSoup.cpp
33891        https://bugs.webkit.org/show_bug.cgi?id=130516
33892
33893        Reviewed by Sergio Villar Senin.
33894
33895        * PlatformGTK.cmake: Remove the file from the source list.
33896
338972014-03-20  Commit Queue  <commit-queue@webkit.org>
33898
33899        Unreviewed, rolling out r165962.
33900        https://bugs.webkit.org/show_bug.cgi?id=130512
33901
33902        It broke the build (Requested by Ossy on #webkit).
33903
33904        Reverted changeset:
33905
33906        "[EFL][GTK] Get CMake to find Freetype2 properly"
33907        https://bugs.webkit.org/show_bug.cgi?id=130150
33908        http://trac.webkit.org/changeset/165962
33909
339102014-03-20  Lorenzo Tilve  <ltilve@igalia.com>
33911
33912        "input" event is not fired when changing a select element's value
33913        https://bugs.webkit.org/show_bug.cgi?id=117526
33914
33915        Reviewed by Antti Koivisto.
33916
33917        Add a call to dispatch input event when listbox or menulist
33918        values are modified.
33919
33920        According to the spec: "When the user agent is to send select update
33921        notifications, queue a task to first fire a simple even that bubbles
33922        named input at the select element, and then fire a simple event that
33923        bubbles named change at the select element, using the user interaction
33924        task source as the task source."
33925
33926        Tests: fast/forms/select/listbox-oninput-fired.html
33927               fast/forms/select/menulist-oninput-fired.html
33928
33929        * html/HTMLSelectElement.cpp:
33930        (WebCore::HTMLSelectElement::listBoxOnChange):
33931        (WebCore::HTMLSelectElement::dispatchChangeEventForMenuList):
33932
339332014-03-20  Radu Stavila  <stavila@adobe.com>
33934
33935        [CSS Regions] The height of a scrollable element flowed inside a scrollable region is not computed correctly
33936        https://bugs.webkit.org/show_bug.cgi?id=129487
33937
33938        Reviewed by Andrei Bucur.
33939
33940        When propagating the layout overflow from the flowed element up to the flow thread itself,
33941        the region's logical bottom padding and the element's logical bottom margin must be taken into consideration.
33942        However, if the flowed element has overflow, the overflow will be painted over the region's padding
33943        and the element's margin, in order to be compatible with the non-regions case.
33944        More info can be found here: http://lists.w3.org/Archives/Public/www-style/2014Jan/0089.html
33945
33946        Tests: fast/regions/scrollable-region-content-size-horiz-bt.html
33947               fast/regions/scrollable-region-content-size-no-overflow-horiz-bt.html
33948               fast/regions/scrollable-region-content-size-no-overflow-vert-rl.html
33949               fast/regions/scrollable-region-content-size-no-overflow.html
33950               fast/regions/scrollable-region-content-size-relative.html
33951               fast/regions/scrollable-region-content-size-vert-rl.html
33952               fast/regions/scrollable-region-content-size-vertical-lr.html
33953               fast/regions/scrollable-region-content-size.html
33954               fast/regions/scrollable-region-scrollable-content.html
33955
33956        * rendering/RenderFlowThread.cpp:
33957        (WebCore::RenderFlowThread::addRegionsOverflowFromChild):
33958        * rendering/RenderRegion.cpp:
33959        (WebCore::RenderRegion::rectFlowPortionForBox):
33960
339612014-03-20  Zalan Bujtas  <zalan@apple.com>
33962
33963        Subpixel rendering: Nested layers with subpixel accumulation paint to wrong position.
33964        https://bugs.webkit.org/show_bug.cgi?id=130153
33965
33966        Reviewed by Simon Fraser.
33967
33968        Subpixels (fractional device pixels here) can accumulate through nested layers. Subpixels
33969        need to be propagated through the layer tree so that painting coordinates match layout coordinates.
33970
33971        Subpixel accumulation through nesting (absolute positioning, 2x display):
33972        non-compositing case:
33973        (nested boxes)  (layout pos) (norm.paint pos) (translate accumulation, subpixel accumulation, final paint pos)
33974        div -> top: 1.3px   1.3px     1.5px      1.5px 0.2px -> snapped 0.0px -> 1.5px
33975         div -> top: 1.3px   2.6px     2.5px      3.0px 0.4px -> snapped 0.5px -> 2.5px
33976          div -> top: 1.3px   3.9px     4.0px      4.5px 0.6px -> snapped 0.5px -> 4.0px
33977           div -> top: 1.3px   5.2px     5.0px      6.0px 0.8px -> snapped 1.0px -> 5.0px
33978
33979        compositing case:
33980        (nested boxes)  (layout pos) (norm.paint pos) (device pixel offset + fractional offset, final pos)
33981        div -> top: 1.3px   1.3px      1.5px      1.0px + 0.3px -> snapped -> 1.5px
33982         div -> top: 1.3px   2.6px      2.5px      2.5px + 0.1px -> snapped -> 2.5px
33983          div -> top: 1.3px   3.9px      4.0px      3.5px + 0.4px -> snapped -> 4.0px
33984           div -> top: 1.3px   5.2px      5.0px      5.0px + 0.2px -> snapped -> 5.0px
33985
33986        Tests: compositing/hidpi-nested-compositing-layers-with-subpixel-accumulation.html
33987               fast/layers/hidpi-nested-layers-with-subpixel-accumulation.html
33988
33989        * rendering/RenderLayer.cpp:
33990        (WebCore::RenderLayer::paintLayerByApplyingTransform):
33991        * rendering/RenderLayerBacking.cpp:
33992        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
33993        * rendering/RenderLayerBacking.h:
33994        (WebCore::RenderLayerBacking::devicePixelFractionFromRenderer):
33995
339962014-03-20  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
33997
33998        [EFL][GTK] Get CMake to find Freetype2 properly
33999        https://bugs.webkit.org/show_bug.cgi?id=130150
34000
34001        Reviewed by Csaba Osztrogonác.
34002
34003        Newer versions of CMake are not able to find Freetype2 correctly.
34004        FindFreetype2.cmake checks for the version number in freetype.h header, since it seems that bug exists in
34005        freetype2 repo, because a completely different version number is found in freetype2.pc.
34006
34007        * PlatformEfl.cmake:
34008        * PlatformGTK.cmake:
34009
340102014-03-20  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
34011
34012        Refactor checking log channel state in MediaPlayerPrivateGStreamerBase.
34013        https://bugs.webkit.org/show_bug.cgi?id=130241
34014
34015        Reviewed by Philippe Normand.
34016
34017        The channel was passed around only to check its state. Cleaned this up
34018        by adding a method to check whether a log channel is enabled.
34019
34020        * platform/Logging.cpp:
34021        (WebCore::isLogChannelEnabled):
34022        * platform/Logging.h:
34023        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
34024        (WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):
34025
340262014-03-20  Lorenzo Tilve  <ltilve@igalia.com>
34027
34028        Dispatch input event for Range element keyboard event
34029        https://bugs.webkit.org/show_bug.cgi?id=129929
34030
34031        Reviewed by Kent Tamura.
34032
34033        For any value update, dispatch both input and change event.
34034        Also removes extra dispatch change event, as event is dispatched
34035        from TextFieldInputType:setValue.
34036
34037        Merged from Blink (patch by Habib Virji):
34038        https://src.chromium.org/viewvc/blink?revision=168558&view=revision
34039
34040        Test: fast/forms/range/range-keyboard-oninput-event.html
34041
34042        * html/RangeInputType.cpp:
34043        (WebCore::RangeInputType::handleKeydownEvent):
34044
340452014-03-20  Jinwoo Song  <jinwoo7.song@samsung.com>
34046
34047        Refine BatteryStatus module
34048        https://bugs.webkit.org/show_bug.cgi?id=130495
34049
34050        Reviewed by Andreas Kling.
34051
34052        Small refinements:
34053         - Return PassRef instead of PassRefPtr in create method
34054         - Switched to nullptr instead of 0 where appropriate.
34055         - Removed unused function and header file.
34056         - Removed unnecessary empty lines.
34057
34058        * Modules/battery/BatteryController.h:
34059        * Modules/battery/BatteryManager.cpp:
34060        (WebCore::BatteryManager::create): Make return passRef.
34061        * Modules/battery/BatteryManager.h:
34062        (WebCore::BatteryManager::batteryControllerDestroyed): Use nullptr.
34063        * Modules/battery/BatteryStatus.cpp:
34064        (WebCore::BatteryStatus::create): Make return passRef.
34065        * Modules/battery/BatteryStatus.h:
34066        * Modules/battery/NavigatorBattery.cpp:
34067        (WebCore::NavigatorBattery::webkitBattery): Remove batteryManager().
34068        * Modules/battery/NavigatorBattery.h:
34069
340702014-03-19  Pratik Solanki  <psolanki@apple.com>
34071
34072        [iOS] Get code to compile on older iOS versions
34073        https://bugs.webkit.org/show_bug.cgi?id=130142
34074        <rdar://problem/16302908>
34075
34076        Reviewed by Darin Adler.
34077
34078        * WebCore.exp.in:
34079        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
34080        (-[WebVideoFullscreenController WebCore::]):
34081        (-[WebVideoFullscreenController enterFullscreen:]):
34082        (-[WebVideoFullscreenController exitFullscreen]):
34083        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
34084        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
34085        * platform/mac/HTMLConverter.mm:
34086        (_dateForString):
34087        * platform/network/cf/CookieJarCFNet.cpp:
34088        (WebCore::copyCookiesForURLWithFirstPartyURL):
34089        * platform/text/ios/LocalizedDateCache.mm:
34090        (WebCore::LocalizedDateCache::calculateMaximumWidth):
34091        * platform/text/mac/LocaleMac.mm:
34092        (WebCore::LocaleMac::LocaleMac):
34093
340942014-03-19  Byungseon Shin  <sun.shin@lge.com>
34095
34096        Fix "WEBKIT_WEBGL_compressed_texture_pvrtc" extension support
34097        https://bugs.webkit.org/show_bug.cgi?id=130292
34098
34099        Reviewed by Dean Jackson.
34100
34101        WebGLRenderingContext::getExtension was not returning WEBGL_compressed_texture_pvrtc extension.
34102
34103        * html/canvas/WebGLRenderingContext.cpp:
34104        (WebCore::WebGLRenderingContext::getExtension):
34105
341062014-03-19  Brent Fulgham  <bfulgham@apple.com>
34107
34108        Merge Misc. WebVTT Updates from Blink.
34109        https://bugs.webkit.org/show_bug.cgi?id=130491
34110
34111        Reviewed by Eric Carlson.
34112
34113        Test: media/track/track-webvtt-tc030-interspersed-non-cue.html
34114
34115        Merged from Blink (patch by vcarbune@chromium.org):
34116        https://chromium.googlesource.com/chromium/blink/+/fb62b2b54944bd19026192c049a1db250756fc12
34117        http://crbug.com/40323003
34118        https://chromium.googlesource.com/chromium/blink/+/29176fb0b394a97e85f4dabc07e18329f3ceae41
34119        http://crbug.com/54463002
34120        https://chromium.googlesource.com/chromium/blink/+/29476f839a08cb17c5a3fc713f7e454e7cea9c60
34121        http://crbug.com/55853002
34122        https://chromium.googlesource.com/chromium/blink/+/ba2378ef873e786cf2937034e012669cdd37dfe8
34123        http://crbug.com/65343003
34124        https://chromium.googlesource.com/chromium/blink/+/1915b9aa1bba45aebf28531b40ae627ecf9a3d59
34125        http://crbug.com/62833005
34126        https://chromium.googlesource.com/chromium/blink/+/ea46dbd0f1f29779a1cd4f59b19361b803f09a9b
34127        http://crbug.com/64273013
34128        https://chromium.googlesource.com/chromium/blink/+/9eb4bb6b627357bb94d66386a4123ec004cccfc4
34129        http://crbug.com/101513002
34130        https://chromium.googlesource.com/chromium/blink/+/192a843b32eafb77bf92c50ec50d334ba935028a
34131        http://crbug.com/102403002
34132        https://chromium.googlesource.com/chromium/blink/+/15f9efcc952fcf73184e28fb9db79633c1fa6653
34133        http://crbug.com/104443002
34134        https://chromium.googlesource.com/chromium/blink/+/74fd66b451a464683f7cb748855b1740a54b2c16
34135        http://crbug.com/75243004
34136
34137        * html/track/TextTrackRegion.cpp:
34138        (WebCore::TextTrackRegion::parseSettingValue):
34139        * html/track/VTTCue.cpp:
34140        (WebCore::VTTCue::markFutureAndPastNodes):
34141        (WebCore::VTTCue::setCueSettings):
34142        * html/track/WebVTTParser.cpp:
34143        (WebCore::scanDigits):
34144        (WebCore::WebVTTParser::collectDigitsToInt):
34145        (WebCore::WebVTTParser::parseFloatPercentageValue):
34146        (WebCore::WebVTTParser::parseBytes):
34147        (WebCore::WebVTTParser::collectMetadataHeader):
34148        (WebCore::WebVTTParser::collectTimingsAndSettings):
34149        (WebCore::WebVTTParser::createDocumentFragmentFromCueText):
34150        (WebCore::WebVTTParser::createNewCue):
34151        (WebCore::WebVTTParser::createNewRegion):
34152        (WebCore::WebVTTParser::collectTimeStamp):
34153        (WebCore::tokenToNodeType):
34154        (WebCore::WebVTTParser::constructTreeFromToken):
34155        * html/track/WebVTTParser.h:
34156        * html/track/WebVTTToken.h:
34157        (WebCore::WebVTTToken::name):
34158        (WebCore::WebVTTToken::characters):
34159        (WebCore::WebVTTToken::appendToCharacter):
34160        (WebCore::WebVTTToken::addNewClass):
34161        (WebCore::WebVTTToken::classes):
34162        (WebCore::WebVTTToken::addNewAnnotation):
34163        (WebCore::WebVTTToken::annotation):
34164        * html/track/WebVTTTokenizer.cpp:
34165        (WebCore::equalLiteral):
34166        (WebCore::WebVTTTokenizer::WebVTTTokenizer):
34167        (WebCore::WebVTTTokenizer::nextToken):
34168        * html/track/WebVTTTokenizer.h:
34169
341702014-03-19  Mark Hahnenberg  <mhahnenberg@apple.com>
34171
34172        GC timer should intelligently choose between EdenCollections and FullCollections
34173        https://bugs.webkit.org/show_bug.cgi?id=128261
34174
34175        Reviewed by Geoffrey Garen.
34176
34177        No new tests.
34178
34179        Updated WebSafeGCActivityCallbacks for both Eden and Full timers.
34180
34181        * bindings/js/JSDOMWindowBase.cpp:
34182        (WebCore::JSDOMWindowBase::commonVM):
34183        * platform/ios/WebSafeGCActivityCallbackIOS.h:
34184
341852014-03-19  Andy Estes  <aestes@apple.com>
34186
34187        Fix the iOS build after r165917.
34188
34189        * platform/ios/WebCoreSystemInterfaceIOS.mm:
34190
341912014-03-19  Commit Queue  <commit-queue@webkit.org>
34192
34193        Unreviewed, rolling out r165926.
34194        https://bugs.webkit.org/show_bug.cgi?id=130488
34195
34196        broke the iOS build (Requested by estes on #webkit).
34197
34198        Reverted changeset:
34199
34200        "GC timer should intelligently choose between EdenCollections
34201        and FullCollections"
34202        https://bugs.webkit.org/show_bug.cgi?id=128261
34203        http://trac.webkit.org/changeset/165926
34204
342052014-03-19  Commit Queue  <commit-queue@webkit.org>
34206
34207        Unreviewed, rolling out r165929.
34208        https://bugs.webkit.org/show_bug.cgi?id=130487
34209
34210        in order to roll out r165926 (Requested by estes on #webkit).
34211
34212        Reverted changeset:
34213
34214        http://trac.webkit.org/changeset/165929
34215
342162014-03-19  Mark Hahnenberg  <mhahnenberg@apple.com>
34217
34218        Build fix for iOS after r165926
34219
34220        * bindings/js/JSDOMWindowBase.cpp:
34221        (WebCore::JSDOMWindowBase::commonVM):
34222        * platform/ios/WebSafeGCActivityCallbackIOS.h:
34223
342242014-03-19  Eric Carlson  <eric.carlson@apple.com>
34225
34226        Allow media engine to update HTMLMediaElement state when playing to external device
34227        https://bugs.webkit.org/show_bug.cgi?id=130480
34228
34229        Reviewed by Jer Noble.
34230
34231        * html/HTMLMediaElement.h: Add mediaPlayerHandlePlaybackCommand.
34232
34233        * platform/graphics/MediaPlayer.cpp:
34234        (WebCore::MediaPlayer::handlePlaybackCommand): New.
34235        * platform/graphics/MediaPlayer.h:
34236        (WebCore::MediaPlayerClient::mediaPlayerHandlePlaybackCommand):
34237
34238        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
34239        (WebCore::MediaPlayerPrivateAVFoundation::rateChanged): Send Play and Pause commands when
34240            playing to an external device.
34241
342422014-03-19  Dirk Schulze  <krit@webkit.org>
34243
34244        Implement isPointInPath and isPointInStroke with Path2D argument
34245        https://bugs.webkit.org/show_bug.cgi?id=130473
34246
34247        Reviewed by Dean Jackson.
34248
34249        Implement isPointInPath and isPointInStroke for 2D Canvas contxts
34250        with Path2D argument.
34251
34252
34253        Tests: fast/canvas/canvas-path-isPointInPath.html
34254               fast/canvas/canvas-path-isPointInStroke.html
34255
34256        * html/canvas/CanvasRenderingContext2D.cpp:
34257        (WebCore::CanvasRenderingContext2D::isPointInPath):
34258        (WebCore::CanvasRenderingContext2D::isPointInStroke):
34259        (WebCore::CanvasRenderingContext2D::isPointInPathInternal):
34260        (WebCore::CanvasRenderingContext2D::isPointInStrokeInternal):
34261        * html/canvas/CanvasRenderingContext2D.h:
34262        * html/canvas/CanvasRenderingContext2D.idl:
34263
342642014-03-13  Mark Hahnenberg  <mhahnenberg@apple.com>
34265
34266        GC timer should intelligently choose between EdenCollections and FullCollections
34267        https://bugs.webkit.org/show_bug.cgi?id=128261
34268
34269        Reviewed by Geoffrey Garen.
34270
34271        No new tests.
34272
34273        * platform/ios/WebSafeGCActivityCallbackIOS.h: Update WebSafeGCActivityCallback
34274        appropriately for the introduction of another type of GCActivityCallback.
34275
342762014-03-18  Mark Hahnenberg  <mhahnenberg@apple.com>
34277
34278        GC timer should intelligently choose between EdenCollections and FullCollections
34279        https://bugs.webkit.org/show_bug.cgi?id=128261
34280
34281        Reviewed by Geoffrey Garen.
34282
34283        No new tests.
34284
34285        Updated WebSafeGCActivityCallbacks for both Eden and Full timers.
34286
34287        * platform/ios/WebSafeGCActivityCallbackIOS.h:
34288
342892014-03-19  Antti Koivisto  <antti@apple.com>
34290
34291        Crash with long selector list
34292        https://bugs.webkit.org/show_bug.cgi?id=123006
34293
34294        Reviewed by Andreas Kling.
34295
34296        Test: fast/css/long-selector-list-crash.html
34297
34298        * css/CSSSelectorList.cpp:
34299        (WebCore::CSSSelectorList::CSSSelectorList):
34300        (WebCore::CSSSelectorList::adoptSelectorVector):
34301        (WebCore::CSSSelectorList::operator=):
34302        * css/StyleRule.cpp:
34303        (WebCore::StyleRule::create):
34304
34305            Add a bunch of asserts.
34306
34307        (WebCore::StyleRule::splitIntoMultipleRulesWithMaximumSelectorComponentCount):
34308        
34309            This could produce a zero-length selector list.
34310
343112014-03-19  Andreas Kling  <akling@apple.com>
34312
34313        Rebaseline bindings tests.
34314
34315        * bindings/scripts/test/JS/*:
34316
343172014-03-04  Jer Noble  <jer.noble@apple.com>
34318
34319        [iOS][MediaControls] Reverse-pinching using the built-in controls should enter full screen
34320        https://bugs.webkit.org/show_bug.cgi?id=129707
34321
34322        Reviewed by Eric Carlson.
34323
34324        The default controls on iOS should respond to a pinch gesture by entering fullscreen. Add a gesture
34325        event listener, and enter full screen if the user does a quick (>2 velocity) reverse (>1.25 scale) pinch.
34326
34327        * Modules/mediacontrols/mediaControlsiOS.js:
34328        (ControllerIOS.prototype.createBase):
34329        (ControllerIOS.prototype.handlePlayButtonTouchEnd):
34330        (ControllerIOS.prototype.handleBaseGestureStart):
34331        (ControllerIOS.prototype.handleBaseGestureChange):
34332        (ControllerIOS.prototype.handleBaseGestureEnd):
34333
343342014-03-19  Ryosuke Niwa  <rniwa@webkit.org>
34335
34336        REGRESSION(r156316): Scrollbar on a large document is broken
34337        https://bugs.webkit.org/show_bug.cgi?id=130474
34338        <rdar://problem/16371523>
34339
34340        Reviewed by Anders Carlsson.
34341
34342        The bug was caused by updateArrowPlacement() doing the work even though Scrollbar Overlay API is available.
34343        Prior to r156316, this function exited early:
34344        http://trac.webkit.org/browser/trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.mm?rev=156315#L147
34345
34346        Fixed the bug by deleting updateArrowPlacement() entirely.
34347
34348        * platform/mac/ScrollbarThemeMac.mm:
34349        (WebCore::ScrollbarThemeMac::preferencesChanged):
34350
343512014-03-19  Jer Noble  <jer.noble@apple.com>
34352
34353        [Mac][EME] Query whether decoder support exists before creating a new MediaKeys object.
34354        https://bugs.webkit.org/show_bug.cgi?id=130459
34355
34356        Reviewed by Eric Carlson.
34357
34358        * WebCore.exp.in: Export the new WCSI method.
34359        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
34360        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsKeySystem): Bail early if we have no decoder support.
34361        * platform/mac/WebCoreSystemInterface.h: Provide a WCSI wrapper for WKSI.
34362        * platform/mac/WebCoreSystemInterface.mm: Ditto.
34363
343642014-03-19  Eric Carlson  <eric.carlson@apple.com>
34365
34366        Make Remote Control commands testable
34367        https://bugs.webkit.org/show_bug.cgi?id=130358
34368
34369        Reviewed by Jer Noble.
34370
34371        Test: media/video-remote-control-playpause.html
34372
34373        * html/HTMLMediaElement.cpp:
34374        (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Call session->clientWillPausePlayback.
34375        (WebCore::HTMLMediaElement::didReceiveRemoteControlCommand): Log the command.
34376
34377        * platform/audio/MediaSession.cpp:
34378        (WebCore::MediaSessionClient::mediaSessionTitle): Move from header file.
34379        (WebCore::MediaSessionClient::mediaSessionDuration): Ditto.
34380        (WebCore::MediaSessionClient::mediaSessionCurrentTime): Ditto.
34381        * platform/audio/MediaSession.h:
34382
34383        * platform/audio/MediaSessionManager.cpp:
34384        (WebCore::MediaSessionManager::MediaSessionManager): Get rid of m_activeSession.
34385        (WebCore::MediaSessionManager::removeSession): No need to clear m_activeSession because 
34386            we use the m_sessions vector.
34387        (WebCore::MediaSessionManager::sessionWillBeginPlayback): setCurrentSession takes a 
34388            MediaSession&.
34389        (WebCore::MediaSessionManager::sessionWillEndPlayback): Keep m_sessions sorted so playing
34390            sessions are before paused sessions.
34391        (WebCore::MediaSessionManager::setCurrentSession): Move the session that is beginning to
34392            play to the head of m_sessions.
34393        (WebCore::MediaSessionManager::currentSession): Return m_sessions[0] or nullptr.
34394        (WebCore::MediaSessionManager::didReceiveRemoteControlCommand):
34395        * platform/audio/MediaSessionManager.h:
34396
34397        * platform/audio/ios/MediaSessionManagerIOS.mm: Include MediaPlayer.h.
34398
34399        * testing/Internals.cpp:
34400        (WebCore::Internals::postRemoteControlCommand): New.
34401        * testing/Internals.h:
34402        * testing/Internals.idl:
34403
344042014-03-19  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
34405
34406        Improving webkitGetUserMedia error handling and error messages
34407        https://bugs.webkit.org/show_bug.cgi?id=130452
34408
34409        Reviewed by Eric Carlson.
34410
34411        Checking if first argument of webkitGetUserMedia is a valid Dictionary. If not, throw an exception with a
34412        clearer message of the error.
34413
34414        Test updated.
34415
34416        * Modules/mediastream/NavigatorMediaStream.idl:
34417        * UseJSC.cmake:
34418        * bindings/js/JSNavigatorCustom.cpp: Added.
34419
344202014-03-19  Andreas Kling  <akling@apple.com>
34421
34422        JSC bindings should use the passed-in global object for wrapper caching.
34423        <https://webkit.org/b/130458>
34424
34425        Take a shorter path to the DOMWrapperWorld by using the passed-in
34426        global object instead of getting the lexical global from ExecState.
34427        Removed an old FIXME that no longer applies since JSObjects can
34428        always find the right global object these days.
34429
34430        Reviewed by Geoff Garen.
34431
34432        * bindings/js/JSCSSRuleCustom.cpp:
34433        (WebCore::toJS):
34434        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
34435        (WebCore::JSCSSStyleDeclaration::getPropertyCSSValue):
34436        * bindings/js/JSCSSValueCustom.cpp:
34437        (WebCore::toJS):
34438        * bindings/js/JSDOMBinding.h:
34439        (WebCore::createWrapper):
34440        (WebCore::wrap):
34441        (WebCore::getExistingWrapper):
34442        (WebCore::createNewWrapper):
34443        (WebCore::toJS):
34444        * bindings/js/JSDOMWindowCustom.cpp:
34445        (WebCore::JSDOMWindow::setTimeout):
34446        (WebCore::JSDOMWindow::setInterval):
34447        (WebCore::JSDOMWindow::addEventListener):
34448        (WebCore::JSDOMWindow::removeEventListener):
34449        * bindings/js/JSDocumentCustom.cpp:
34450        (WebCore::JSDocument::location):
34451        (WebCore::toJS):
34452        * bindings/js/JSElementCustom.cpp:
34453        (WebCore::toJSNewlyCreated):
34454        * bindings/js/JSEventCustom.cpp:
34455        (WebCore::toJS):
34456        * bindings/js/JSHTMLCollectionCustom.cpp:
34457        (WebCore::toJS):
34458        * bindings/js/JSHTMLTemplateElementCustom.cpp:
34459        (WebCore::JSHTMLTemplateElement::content):
34460        * bindings/js/JSImageDataCustom.cpp:
34461        (WebCore::toJS):
34462        * bindings/js/JSNodeCustom.cpp:
34463        (WebCore::createWrapperInline):
34464        * bindings/js/JSNodeCustom.h:
34465        (WebCore::toJS):
34466        * bindings/js/JSSVGPathSegCustom.cpp:
34467        (WebCore::toJS):
34468        * bindings/js/JSStyleSheetCustom.cpp:
34469        (WebCore::toJS):
34470        * bindings/js/JSTextTrackCueCustom.cpp:
34471        (WebCore::toJS):
34472        * bindings/js/JSTrackCustom.cpp:
34473        (WebCore::toJS):
34474        * bindings/js/JSWorkerGlobalScopeCustom.cpp:
34475        (WebCore::JSWorkerGlobalScope::setTimeout):
34476        (WebCore::JSWorkerGlobalScope::setInterval):
34477        * bindings/scripts/CodeGeneratorJS.pm:
34478        (GenerateImplementation):
34479
344802014-03-19  Benjamin Poulain  <bpoulain@apple.com>
34481
34482        Page::setPageScaleFactor should not force the scroll view position when using delegatesScrolling()
34483        https://bugs.webkit.org/show_bug.cgi?id=130429
34484
34485        Reviewed by Simon Fraser.
34486
34487        When setting the same scale mutliple time (for example on load), Page was asking the top scrollview
34488        to scroll to the origin. This is bogus since the scroll view is driving Page::setDeviceScaleFactor,
34489        not the other way around.
34490
34491        Simon fixed the general case in http://trac.webkit.org/changeset/165652/trunk/Source/WebCore/page/Page.cpp
34492        but this branch was still scrolling content.
34493
34494        * page/Page.cpp:
34495        (WebCore::Page::setPageScaleFactor):
34496
344972014-03-19  Brady Eidson  <beidson@apple.com>
34498
34499        Filter out editable services from image menu for non-contenteditable images
34500        <rdar://problem/16319645> and https://bugs.webkit.org/show_bug.cgi?id=130437
34501
34502        Reviewed by Tim Horton.
34503
34504        * WebCore.exp.in:
34505
345062014-03-19  Dirk Schulze  <krit@webkit.org>
34507
34508        Implement method addPath for Path2D
34509        https://bugs.webkit.org/show_bug.cgi?id=130461
34510
34511        Reviewed by Dean Jackson.
34512
34513        Add support for the Path2D method addPath. The method allows
34514        to append and existing Path2D object to another one. It can be
34515        combined with a transformation matrix SVGMatrix.
34516
34517        Test: fast/canvas/canvas-path-addPath.html
34518
34519        * html/canvas/DOMPath.h: Add new method addPath().
34520        (WebCore::DOMPath::addPath):
34521        * html/canvas/DOMPath.idl:
34522        * platform/graphics/Path.h: Add support for appending paths.
34523        * platform/graphics/cairo/PathCairo.cpp:
34524        (WebCore::Path::addPath):
34525        * platform/graphics/cg/PathCG.cpp:
34526        (WebCore::Path::addPath):
34527        * platform/graphics/wince/PathWinCE.cpp:
34528        (WebCore::Path::addPath):
34529
345302014-03-19  Yongjun Zhang  <yongjun_zhang@apple.com>
34531
34532        [iOS] WebKit2 Quicklook.
34533        https://bugs.webkit.org/show_bug.cgi?id=130360
34534
34535        Reviewed by Tim Horton.
34536
34537        Since ResourceLoaders using WebKit2 network process don't have ResourceHandle any more, we
34538        need to make it possible to create QuickLookHandle from ResourceLoader.
34539
34540        * WebCore.exp.in: Make some QuickLookHandle methods visible from WebKit2.
34541        * loader/ResourceLoader.h: Add m_quickLookHandle data member to ResourceLoader.
34542        (WebCore::ResourceLoader::quickLookHandle):
34543        (WebCore::ResourceLoader::setQuickLookHandle):
34544        * platform/network/ios/QuickLook.h: Add a new method to create QuickLookHandle from ResourceLoader.
34545        * platform/network/ios/QuickLook.mm:
34546        (WebCore::QuickLookHandle::create):
34547
345482014-03-19  Brent Fulgham  <bfulgham@apple.com>
34549
34550        Fix cue rendering test and include support for left/right alignment
34551        https://bugs.webkit.org/show_bug.cgi?id=130406
34552
34553        Reviewed by Eric Carlson.
34554
34555        Merged from Blink (patch by vcarbune@chromium.org):
34556        https://chromium.googlesource.com/chromium/blink/+/e695703cb603421c741e59a557a7989113c13b94
34557        http://crbug.com/25155003
34558
34559        No new tests. Covered by media/track/track-cue-rendering-snap-to-lines-not-set.html.
34560
34561        * html/track/VTTCue.cpp:
34562        (WebCore::leftKeyword): Added.
34563        (WebCore::rightKeyword): Added.
34564        (WebCore::VTTCueBox::applyCSSProperties): Added.
34565        (WebCore::VTTCue::VTTCue):
34566        (WebCore::VTTCue::align): Handle left/right alignment.
34567        (WebCore::VTTCue::setAlign): Ditto.
34568        (WebCore::VTTCue::calculateDisplayParameters): Refactored and revised for left/right tokens.
34569        (WebCore::VTTCue::setCueSettings): Ditto.
34570        (WebCore::VTTCue::getCSSAlignment): Added.
34571        (WebCore::VTTCue::getCSSWritingMode): Added.
34572        * html/track/VTTCue.h:
34573
345742014-03-18  Anders Carlsson  <andersca@apple.com>
34575
34576        Add new functionality that will be required by the history item decoding
34577        https://bugs.webkit.org/show_bug.cgi?id=130433
34578
34579        Reviewed by Sam Weinig.
34580
34581        * platform/KeyedCoding.h:
34582        (WebCore::KeyedDecoder::decodeConditionalObject):
34583
345842014-03-19  Tim Horton  <timothy_horton@apple.com>
34585
34586        Fix the iOS build.
34587
34588        * html/BaseDateAndTimeInputType.cpp:
34589        (WebCore::BaseDateAndTimeInputType::parseToDateComponents):
34590        Missing a StringView().
34591
345922014-03-19  Antti Koivisto  <antti@apple.com>
34593
34594        Tighten ElementRuleCollector::m_matchedRuleList typing
34595        https://bugs.webkit.org/show_bug.cgi?id=130446
34596
34597        Reviewed by Anders Carlsson.
34598
34599        StyleRuleBase -> StyleRule.
34600
34601        * css/ElementRuleCollector.cpp:
34602        (WebCore::ElementRuleCollector::matchedRuleList):
34603        * css/ElementRuleCollector.h:
34604        * css/StyleResolver.cpp:
34605        (WebCore::StyleResolver::styleRulesForElement):
34606        (WebCore::StyleResolver::pseudoStyleRulesForElement):
34607        * css/StyleResolver.h:
34608        * editing/EditingStyle.cpp:
34609        (WebCore::styleFromMatchedRulesForElement):
34610        * inspector/InspectorCSSAgent.cpp:
34611        (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
34612        (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
34613        * inspector/InspectorCSSAgent.h:
34614        * page/DOMWindow.cpp:
34615        (WebCore::DOMWindow::getMatchedCSSRules):
34616
346172014-03-19  Mihnea Ovidenie  <mihnea@adobe.com>
34618
34619        [CSSRegions] An unsplittable box is always displayed in a single region
34620        https://bugs.webkit.org/show_bug.cgi?id=130451
34621
34622        Reviewed by Andrei Bucur.
34623
34624        Add an ASSERT stating that an unsplittable box region range always contains 1 region.
34625        No new functionality, no new tests.
34626
34627        * rendering/RenderFlowThread.cpp:
34628        (WebCore::RenderFlowThread::getRegionRangeForBox):
34629
346302014-03-19  Zalan Bujtas  <zalan@apple.com>
34631
34632        Subpixel rendering: Transform origin is miscalculated when RenderLayer's
34633        offsetfromRenderer has device pixel fraction value.
34634        https://bugs.webkit.org/show_bug.cgi?id=129859
34635
34636        Reviewed by Simon Fraser.
34637
34638        We need to calculate the transformed origin using the painting coordinates to produce
34639        pixel precise result.
34640
34641        * rendering/RenderLayerBacking.cpp:
34642        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
34643        (WebCore::RenderLayerBacking::computeTransformOriginForPainting):
34644        * rendering/RenderLayerBacking.h:
34645
346462014-03-19  Claudio Saavedra  <csaavedra@igalia.com>
34647
34648        [GStreamer] Clean timeout source ids
34649        https://bugs.webkit.org/show_bug.cgi?id=130450
34650
34651        Reviewed by Philippe Normand.
34652
34653        Sources IDs need to be cleaned up if the callback removes the
34654        source, otherwise we'll be attempting to remove an empty source at
34655        some point.
34656
34657        * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
34658        (webKitMediaVideoSrcStart): Clean the source id.
34659        (webKitMediaAudioSrcStart): Ditto.
34660        (webKitMediaVideoSrcSeekMainCb): Ditto.
34661        (webKitMediaAudioSrcSeekMainCb): Ditto.
34662
346632014-03-19  Mihnea Ovidenie  <mihnea@adobe.com>
34664
34665        [CSSRegions] Compute region ranges for children of inline blocks
34666        https://bugs.webkit.org/show_bug.cgi?id=130392
34667
34668        Reviewed by Andrei Bucur.
34669
34670        Extend the region ranges computation for children of inline blocks.
34671        When we cannot retrieve the region range for a box using cached information,
34672        either from region range map or from the region cached on the RootInlineBox,
34673        try to find the top most unsplittable box up to the flow thread boundary.
34674        If we find such unsplittable box and the box has a region range, then return
34675        this range.
34676
34677        Before this patch, method getRegionRangeForBox did not return true/false
34678        if it was able to retrieve the range and the caller checked the returned
34679        region values. I modified the method to return true if we were able to compute
34680        the range.
34681
34682        Tests: fast/regions/inline-block-inline-children-flowed-in-regions.html
34683               fast/regions/inline-blocks-dyn-enlarged-regions.html
34684               fast/regions/inline-blocks-dyn-shrunk-regions.html
34685               fast/regions/inline-blocks-in-two-regions.html
34686
34687        * inspector/InspectorOverlay.cpp:
34688        (WebCore::buildObjectForRendererFragments):
34689        * rendering/RenderBlock.cpp:
34690        (WebCore::RenderBlock::updateRegionRangeForBoxChild):
34691        * rendering/RenderBlockFlow.cpp:
34692        (WebCore::RenderBlockFlow::hasNextPage):
34693        * rendering/RenderBox.cpp:
34694        (WebCore::RenderBox::clampToStartAndEndRegions):
34695        (WebCore::RenderBox::borderBoxRectInRegion):
34696        (WebCore::RenderBox::computeRectForRepaint):
34697        (WebCore::RenderBox::layoutOverflowRectForPropagation):
34698        * rendering/RenderBoxModelObject.cpp:
34699        (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
34700        * rendering/RenderFlowThread.cpp:
34701        (WebCore::RenderFlowThread::regionForCompositedLayer):
34702        (WebCore::RenderFlowThread::adjustedPositionRelativeToOffsetParent):
34703        (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
34704        (WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock):
34705        (WebCore::RenderFlowThread::getRegionRangeForBoxFromCachedInfo):
34706        (WebCore::RenderFlowThread::getRegionRangeForBox):
34707        (WebCore::RenderFlowThread::objectShouldPaintInFlowRegion):
34708        (WebCore::RenderFlowThread::objectInFlowRegion):
34709        (WebCore::RenderFlowThread::addRegionsVisualEffectOverflow):
34710        (WebCore::RenderFlowThread::addRegionsVisualOverflowFromTheme):
34711        (WebCore::RenderFlowThread::addRegionsOverflowFromChild):
34712        (WebCore::RenderFlowThread::addRegionsLayoutOverflow):
34713        (WebCore::RenderFlowThread::addRegionsVisualOverflow):
34714        (WebCore::RenderFlowThread::clearRegionsOverflow):
34715        * rendering/RenderFlowThread.h:
34716        * rendering/RenderNamedFlowThread.cpp:
34717        (WebCore::RenderNamedFlowThread::fragmentFromAbsolutePointAndBox):
34718        * rendering/RenderObject.cpp:
34719        (WebCore::RenderObject::locateFlowThreadContainingBlock):
34720        Make sure we return the right render flow thread in the case of
34721        region-based multicolumn inside named flows.
34722        * rendering/RenderRegion.cpp:
34723        (WebCore::RenderRegion::rectFlowPortionForBox):
34724
347252014-03-19  Krzysztof Wolanski  <k.wolanski@samsung.com>
34726
34727        [EFL] vibration/cancelVibration-during-pattern-vibrating.html is failing after r165598
34728        https://bugs.webkit.org/show_bug.cgi?id=130333
34729
34730        Reviewed by Gyuyoung Kim.
34731
34732        Added setting m_state when calling Vibration::vibrate. It was missing after
34733        refactoring Vibration (r165598).
34734
34735        * Modules/vibration/Vibration.cpp:
34736        (WebCore::Vibration::vibrate):
34737
347382014-03-19  Sam Weinig  <sam@webkit.org>
34739
34740        Rewrite WebHTMLConverter::_colorForNode in C++
34741        https://bugs.webkit.org/show_bug.cgi?id=130443
34742
34743        Reviewed by Andreas Kling.
34744
34745        * platform/mac/HTMLConverter.mm:
34746        (_platformColor):
34747        Rename from _colorForRGBColor and simplify to just do the platform conversion.
34748
34749        (normalizedColor):
34750        Extract normalization out of _colorForRGBColor and remove cases that are impossible to hit
34751        due to us only ever using the device color space.
34752
34753        (HTMLConverterCaches::colorPropertyValueForNode):
34754        (-[WebHTMLConverter _colorForNode:property:]):
34755        Convert to C++.
34756
34757        (-[WebHTMLConverter dealloc]):
34758        (-[WebHTMLConverter init]):
34759        Remove caches, we already cache in ColorMac.
34760
347612014-03-18  Andrei Bucur  <abucur@adobe.com>
34762
34763        [CSS Regions] Strange layout for content with region breaks
34764        https://bugs.webkit.org/show_bug.cgi?id=121318
34765
34766        Reviewed by Mihnea Ovidenie.
34767
34768        When break-inside: avoid is used on an element, the implementation tries to
34769        force it inside a single fragmentation container even though the descendants
34770        of the element specify forced breaks. This leads to unexpected results and
34771        unstable layout.
34772
34773        The change extends the definition of unsplittable elements for flow threads
34774        using the same conditions found inside RenderBlockFlow::adjustForUnsplittableChild.
34775        This change forces elements that require break avoidance to have a single region
34776        in the region range. As a result, forced breaks have no effect inside them.
34777
34778        It should be noted this may not the behavior defined by the CSS3 Fragmentation spec.
34779        From my understanding of the text, forced breaks override any avoidance specified
34780        by ancestor elements. However, implementing this is a larger change that will require
34781        a fundamental new approach in handling break avoidance. This patch just brings
34782        consistency to the API.
34783
34784        Test: fast/regions/forced-break-inside-avoid-break.html
34785
34786        * rendering/RenderBlock.cpp:
34787        (WebCore::RenderBlock::childBoxIsUnsplittableForFragmentation):
34788        (WebCore::RenderBlock::computeRegionRangeForBoxChild):
34789        (WebCore::RenderBlock::estimateRegionRangeForBoxChild):
34790        * rendering/RenderBlock.h:
34791        * rendering/RenderBlockFlow.cpp:
34792        (WebCore::RenderBlockFlow::adjustForUnsplittableChild): Move the avoidance conditions inside
34793        a helper method RenderBlock::childBoxIsUnsplittableForFragmentation.
34794
347952014-03-18  Samuel White  <samuel_white@apple.com>
34796
34797        AX: Not able to use arrow keys to read text with VoiceOver before selection is set someplace (anyplace).
34798        https://bugs.webkit.org/show_bug.cgi?id=130250
34799
34800        Reviewed by Chris Fleizach.
34801
34802        If initial selection isn't set when we handle selection movement for accessibility, we need to set it. If we don't, using arrow
34803        keys to read text with VoiceOver doesn't work as expected. Things will only start working after the user holds shift and arrows
34804        around to select any arbitrary thing to force selection to get set. This logic handles that special case more gracefully.
34805
34806        Test: platform/mac/accessibility/selection-initial.html
34807
34808        * page/EventHandler.cpp:
34809        (WebCore::handleKeyboardSelectionMovement):
34810        (WebCore::EventHandler::handleKeyboardSelectionMovementForAccessibility):
34811        * testing/Internals.cpp:
34812        (WebCore::Internals::resetToConsistentState):
34813
348142014-03-18  Brent Fulgham  <bfulgham@apple.com>
34815
34816        TextTrackRegion Not Implemented
34817        https://bugs.webkit.org/show_bug.cgi?id=116546
34818
34819        Reviewed by Eric Carlson.
34820
34821        Merged from Blink (patch by vcarbune@chromium.org):
34822        https://chromium.googlesource.com/chromium/blink/+/4940f89a087fea5b5ea628e98d0b355d398a9eea
34823        http://crbug.com/25798003
34824
34825        Tests: media/track/regions-webvtt/text-track-region-display.html
34826               media/track/regions-webvtt/text-track-region-dom-layout.html
34827
34828        * html/HTMLMediaElement.cpp:
34829        (WebCore::HTMLMediaElement::parseAttribute):
34830        * html/track/LoadableTextTrack.cpp:
34831        (WebCore::LoadableTextTrack::newRegionsAvailable):
34832        * html/track/TextTrack.cpp:
34833        * html/track/TextTrack.h:
34834        * html/track/TextTrackRegion.cpp:
34835        (WebCore::TextTrackRegion::TextTrackRegion):
34836        (WebCore::TextTrackRegion::appendTextTrackCueBox):
34837        * html/track/TextTrackRegion.h:
34838        * html/track/VTTCue.cpp:
34839        (WebCore::VTTCue::VTTCue):
34840        (WebCore::VTTCue::notifyRegionWhenRemovingDisplayTree):
34841        (WebCore::VTTCue::removeDisplayTree):
34842        * html/track/VTTCue.h:
34843        * html/track/WebVTTParser.cpp:
34844        (WebCore::WebVTTParser::parseBytes):
34845        (WebCore::WebVTTParser::collectMetadataHeader):
34846        * html/track/WebVTTParser.h:
34847
348482014-03-18  Andreas Kling  <akling@apple.com>
34849
34850        Share MemoryPressureHandler::releaseMemory() between platforms.
34851        <https://webkit.org/b/130416>
34852
34853        Move the code that scours WebKit for things we can free up right now
34854        to the common part of MemoryPressureHandler. This will enable other
34855        platforms to do the same thing under pressure.
34856
34857        There's now also a platformReleaseMemory() where platform-specific
34858        pressure relief stuff can go.
34859
34860        Reviewed by Antti Koivisto.
34861
34862        * platform/MemoryPressureHandler.cpp:
34863        (WebCore::MemoryPressureHandler::releaseMemory):
34864        (WebCore::MemoryPressureHandler::platformReleaseMemory):
34865        * platform/MemoryPressureHandler.h:
34866        * platform/mac/MemoryPressureHandlerMac.mm:
34867        (WebCore::MemoryPressureHandler::respondToMemoryPressure):
34868        (WebCore::MemoryPressureHandler::platformReleaseMemory):
34869
348702014-03-18  Dean Jackson  <dino@apple.com>
34871
34872        [WebGL] Destroy EAGLContext's backing store
34873        https://bugs.webkit.org/show_bug.cgi?id=130439
34874        <rdar://problem/16295217>
34875
34876        Reviewed by Tim Horton.
34877
34878        When a GraphicsContext3D is being destroyed, we should
34879        also remove any EAGLContext backing store.
34880
34881        * platform/graphics/mac/GraphicsContext3DMac.mm:
34882        (WebCore::GraphicsContext3D::~GraphicsContext3D):
34883
348842014-03-18  Tim Horton  <timothy_horton@apple.com>
34885
34886        [iOS][WebKit2] Mark layer contents as being opaque if they are
34887        https://bugs.webkit.org/show_bug.cgi?id=130427
34888        <rdar://problem/15540434>
34889
34890        Reviewed by Simon Fraser.
34891
34892        * platform/graphics/GraphicsLayerClient.h:
34893        (WebCore::GraphicsLayerClient::paintsOpaquelyAtNonIntegralScales):
34894        * platform/graphics/ca/GraphicsLayerCA.cpp:
34895        (WebCore::GraphicsLayerCA::updateContentsOpaque):
34896        * rendering/RenderLayerBacking.cpp:
34897        (WebCore::RenderLayerBacking::paintsOpaquelyAtNonIntegralScales):
34898        * rendering/RenderLayerBacking.h:
34899        r159463 stopped us from setting layers opaque if they were being painted
34900        at non-integral scale. This makes sense for compositing layers, which
34901        are painted by arbitrary elements, but the main frame's RenderView
34902        will always paint its entire contents. To restore the opaque contents
34903        optimization to the main frame's tiles, don't de-opaquify layers
34904        belonging to the main frame's RenderView.
34905
349062014-03-18  Jeffrey Pfau  <jpfau@apple.com>
34907
34908        Unify <media> element callback registration and unregistration
34909        https://bugs.webkit.org/show_bug.cgi?id=130417
34910
34911        Reviewed by Eric Carlson.
34912
34913        * html/HTMLMediaElement.cpp:
34914        (WebCore::HTMLMediaElement::HTMLMediaElement):
34915        (WebCore::HTMLMediaElement::~HTMLMediaElement):
34916        (WebCore::HTMLMediaElement::registerWithDocument):
34917        (WebCore::HTMLMediaElement::unregisterWithDocument):
34918        (WebCore::HTMLMediaElement::didMoveToNewDocument):
34919        * html/HTMLMediaElement.h:
34920
349212014-03-18  Jer Noble  <jer.noble@apple.com>
34922
34923        MediaDocument should set a max-width on its <video> element.
34924        https://bugs.webkit.org/show_bug.cgi?id=114691
34925
34926        Reviewed by Eric Carlson.
34927
34928        Set a style attribute containing max-width:100% and max-height:100% so that large videos
34929        are entirely visible within the browser window bounds.
34930
34931        * html/MediaDocument.cpp:
34932        (WebCore::MediaDocumentParser::createDocumentStructure):
34933
349342014-03-18  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
34935
34936        [WebRTC] Fix layering violation in RTCStatsRequest
34937        https://bugs.webkit.org/show_bug.cgi?id=130426
34938
34939        Reviewed by Eric Carlson.
34940
34941        RTCStatsRequest::track() should return a MediaStreamTrackPrivate*.
34942
34943        No new tests needed.
34944
34945        * Modules/mediastream/RTCPeerConnection.cpp:
34946        (WebCore::RTCPeerConnection::getStats):
34947        * Modules/mediastream/RTCStatsRequestImpl.cpp:
34948        (WebCore::RTCStatsRequestImpl::create):
34949        (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
34950        (WebCore::RTCStatsRequestImpl::track):
34951        * Modules/mediastream/RTCStatsRequestImpl.h:
34952        * platform/mediastream/RTCStatsRequest.h:
34953
349542014-03-18  Anders Carlsson  <andersca@apple.com>
34955
34956        Fix a trivial FIXME
34957        https://bugs.webkit.org/show_bug.cgi?id=130432
34958
34959        Reviewed by Tim Horton.
34960
34961        * history/HistoryItem.cpp:
34962        (WebCore::HistoryItem::encodeBackForwardTreeNode):
34963
349642014-03-18  Anders Carlsson  <andersca@apple.com>
34965
34966        Begin cleaning up KeyedDecoder and KeyedEncoder
34967        https://bugs.webkit.org/show_bug.cgi?id=130431
34968
34969        Reviewed by Tim Horton.
34970
34971        Rename KeyedDecoder::decodeVerifiedEnum to decodeEnum to match the encode function,
34972        and sort the decode functions to be in the same logical order as the encode functions.
34973
34974        * Modules/indexeddb/IDBKeyData.cpp:
34975        (WebCore::IDBKeyData::decode):
34976        * Modules/indexeddb/IDBKeyPath.cpp:
34977        (WebCore::IDBKeyPath::decode):
34978        * platform/KeyedCoding.h:
34979        (WebCore::KeyedDecoder::decodeEnum):
34980
349812014-03-18  Darin Adler  <darin@apple.com>
34982
34983        Reduce use of deprecatedCharacters in WebCore
34984        https://bugs.webkit.org/show_bug.cgi?id=130318
34985
34986        Reviewed by Andreas Kling.
34987
34988        * Modules/indexeddb/IDBKeyPath.cpp:
34989        (WebCore::IDBKeyPathLexer::IDBKeyPathLexer): Use StringView for parsing.
34990        (WebCore::IDBKeyPathLexer::lex): Ditto.
34991        (WebCore::IDBKeyPathLexer::lexIdentifier): Ditto.
34992
34993        * Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp:
34994        (WebCore::IDBLevelDBCoding::encodeString): Index directly into string instead of
34995        using deprecatedCharacters.
34996
34997        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
34998        (WebCore::ThreadableWebSocketChannelClientWrapper::setSubprotocol): Use
34999        StringView::getCharactersWithUpconvert.
35000        (WebCore::ThreadableWebSocketChannelClientWrapper::setExtensions): Ditto.
35001
35002        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
35003        (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
35004        Use operator NSString * instead of explicitly creating an NSString.
35005
35006        * bindings/js/SerializedScriptValue.cpp:
35007        (WebCore::writeLittleEndianUInt16): Added.
35008        (WebCore::CloneSerializer::serialize): Added a separate code path for 8-bit strings.
35009        (WebCore::CloneSerializer::write): Ditto.
35010
35011        * bindings/objc/WebScriptObject.mm:
35012        (+[WebScriptObject _convertValueToObjcValue:JSC::originRootObject:rootObject:]):
35013        Use operator NSString * instead of explicitly creating an NSString.
35014
35015        * dom/Document.cpp:
35016        (WebCore::Document::parseQualifiedName): Index directly into string instead of
35017        using deprecatedCharacters.
35018        * editing/CompositeEditCommand.cpp:
35019        (WebCore::containsOnlyWhitespace): Ditto.
35020        * editing/SmartReplace.cpp:
35021        (WebCore::addAllCodePoints): Ditto.
35022        (WebCore::getSmartSet): Use StringView::upconvertedCharacters.
35023
35024        * editing/TextIterator.cpp:
35025        (WebCore::foldQuoteMarksAndSoftHyphens): Changed to return a value so it can be
35026        used in initialization rather than assignment.
35027        (WebCore::SearchBuffer::SearchBuffer): Use StringView::upconvertedCharacters.
35028
35029        * editing/TypingCommand.cpp:
35030        (WebCore::TypingCommand::insertText): Index directly into string instead of using
35031        deprecatedCharacters.
35032        * editing/VisiblePosition.cpp:
35033        (WebCore::VisiblePosition::characterAfter): Ditto.
35034        * editing/VisibleUnits.cpp:
35035        (WebCore::startOfParagraph): Ditto.
35036        (WebCore::endOfParagraph): Ditto.
35037
35038        * fileapi/WebKitBlobBuilder.cpp:
35039        (WebCore::BlobBuilder::append): Pass a StringView to TextEncoding::encode.
35040
35041        * html/BaseDateAndTimeInputType.cpp:
35042        (WebCore::BaseDateAndTimeInputType::parseToDateComponents): Use
35043        StringView::upconvertedCharacters.
35044
35045        * html/FormDataList.cpp:
35046        (WebCore::FormDataList::appendString): Pass a StringView to TextEncoding::encode.
35047
35048        * html/canvas/CanvasRenderingContext2D.cpp:
35049        (WebCore::normalizeSpaces): Use StringView::getCharactersWithUpconvert.
35050
35051        * html/parser/HTMLParserIdioms.cpp:
35052        (WebCore::stripLeadingAndTrailingHTMLSpaces): Use characters16 for a code path
35053        that already handled 8-bit characters separately.
35054        (WebCore::parseHTMLNonNegativeInteger): Ditto.
35055        (WebCore::parseDescriptors): Added an 8-bit code path.
35056
35057        * inspector/InspectorStyleSheet.cpp:
35058        (WebCore::InspectorStyle::newLineAndWhitespaceDelimiters): Index directly into
35059        string instead of using deprecatedCharacters.
35060        * inspector/InspectorStyleTextEditor.cpp:
35061        (WebCore::InspectorStyleTextEditor::insertProperty): Ditto.
35062        (WebCore::InspectorStyleTextEditor::internalReplaceProperty): Ditto.
35063
35064        * page/ContentSecurityPolicy.cpp:
35065        (WebCore::isSourceListNone): Use StringView::upconvertedCharacters.
35066        (WebCore::CSPSourceList::parse): Ditto.
35067        (WebCore::NonceDirective::parse): Ditto.
35068        (WebCore::MediaListDirective::parse): Ditto.
35069        (WebCore::CSPDirectiveList::parse): Ditto.
35070        (WebCore::CSPDirectiveList::parseReportURI): Ditto.
35071        (WebCore::CSPDirectiveList::parseReflectedXSS): Ditto.
35072        (WebCore::ContentSecurityPolicy::didReceiveHeader): Ditto.
35073
35074        * page/PageSerializer.cpp:
35075        (WebCore::PageSerializer::serializeFrame): Pass a StringView into
35076        TextEncoding::encode.
35077        (WebCore::PageSerializer::serializeCSSStyleSheet): Ditto.
35078
35079        * platform/Length.cpp:
35080        (WebCore::countCharacter): Index directly into string instead of using
35081        deprecatedCharacters. Also changed to take a StringImpl&.
35082        (WebCore::newCoordsArray): Ditto. Call countCharacter the new way, and
35083        use StringView::upconvertedCharacters.
35084        (WebCore::newLengthArray): Ditto.
35085
35086        * platform/LinkHash.cpp:
35087        (WebCore::visitedLinkHash): Use characters16 for the 16-bit path.
35088        Also removed unused visitedURL function.
35089        * platform/LinkHash.h: Removed unused visitedURL function.
35090
35091        * platform/SharedBuffer.cpp:
35092        (WebCore::utf8Buffer): Added an 8-bit code path.
35093        * platform/URL.cpp:
35094        (WebCore::URL::port): Ditto.
35095        (WebCore::encodeRelativeString): Use StringView to call TextEncoding::encode.
35096
35097        * platform/graphics/Color.cpp:
35098        (WebCore::Color::parseHexColor): Use characters16 in the 16-bit path.
35099        (WebCore::Color::Color): Ditto.
35100
35101        * platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:
35102        (WebCore::harfBuzzGetGlyph): Use StringView to call TextEncoding::encode.
35103
35104        * platform/graphics/StringTruncator.cpp:
35105        (WebCore::centerTruncateToBuffer): Use StringView::getCharactersWithUpconvert.
35106        (WebCore::rightTruncateToBuffer): Ditto.
35107        (WebCore::rightClipToCharacterBuffer): Ditto.
35108        (WebCore::rightClipToWordBuffer): Ditto.
35109        (WebCore::leftTruncateToBuffer): Ditto.
35110        (WebCore::truncateString): Ditto.
35111
35112        * platform/graphics/TextRun.h:
35113        (WebCore::TextRun::TextRun): Use characters16 in the 16-bit code path.
35114
35115        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
35116        (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
35117        Use StringView::upconvertedCharacters.
35118
35119        * platform/network/DataURL.cpp:
35120        (WebCore::handleDataURL): Use StringView to call TextEncoding::encode.
35121        * platform/network/FormDataBuilder.cpp:
35122        (WebCore::FormDataBuilder::addFilenameToMultiPartHeader): Ditto.
35123
35124        * platform/sql/SQLiteStatement.cpp:
35125        (WebCore::SQLiteStatement::bindBlob): Use StringView::upconvertedCharacters.
35126        (WebCore::SQLiteStatement::bindText): Ditto.
35127
35128        * platform/text/DecodeEscapeSequences.h:
35129        (WebCore::Unicode16BitEscapeSequence::decodeRun): Changed to take a StringView.
35130        (WebCore::URLEscapeSequence::decodeRun): Ditto.
35131        (WebCore::decodeEscapeSequences): Pass StringView to decodeRun.
35132
35133        * platform/text/Hyphenation.cpp:
35134        (WebCore::lastHyphenLocation): Take a StringView.
35135        * platform/text/Hyphenation.h: Make lastHyphenLocation take a StringView.
35136
35137        * platform/text/TextBreakIterator.cpp:
35138        (WebCore::initializeIteratorWithRules): Use StringView::upconvertedCharacters.
35139
35140        * platform/text/TextEncoding.cpp:
35141        (WebCore::TextEncoding::encode): Use StringView::upconvertedCharacters.
35142        Change argument type to StringView.
35143        * platform/text/TextEncoding.h: Ditto.
35144
35145        * platform/text/TextEncodingRegistry.cpp:
35146        (WebCore::atomicCanonicalTextEncodingName): Use characters16 for the 16-bit path.
35147
35148        * platform/text/cf/HyphenationCF.cpp:
35149        (WebCore::lastHyphenLocation): Use StringView::text.createCFStringWithoutCopying.
35150        Change argument type to StringView.
35151
35152        * rendering/RenderBlock.cpp:
35153        (WebCore::RenderBlock::constructTextRun): Use characters16 for the 16-bit path.
35154
35155        * rendering/RenderCombineText.cpp:
35156        (WebCore::RenderCombineText::width): Removed check for null characters pointer,
35157        since the pointer will never be null, and even if it was there would be no need
35158        for an early exit.
35159
35160        * rendering/RenderText.cpp:
35161        (WebCore::maxWordFragmentWidth): Take a StringView.
35162        (WebCore::RenderText::computePreferredLogicalWidths): Pass in a StringView.
35163        * rendering/line/BreakingContextInlineHeaders.h:
35164        (WebCore::tryHyphenating): Ditto.
35165
35166        * rendering/svg/SVGTextLayoutEngine.cpp:
35167        (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath): Use
35168        StringView::upconvertedCharacters.
35169
35170        * rendering/svg/SVGTextMetrics.cpp:
35171        (WebCore::SVGTextMetrics::SVGTextMetrics): Use String::substring.
35172
35173        * svg/SVGAngle.cpp:
35174        (WebCore::SVGAngle::setValueAsString): Use StringView::upconvertedCharacters.
35175        * svg/SVGAnimateMotionElement.cpp:
35176        (WebCore::parsePoint): Ditto.
35177        * svg/SVGAnimationElement.cpp:
35178        (WebCore::parseKeySplines): Ditto.
35179        * svg/SVGFitToViewBox.cpp:
35180        (WebCore::SVGFitToViewBox::parseViewBox): Ditto.
35181
35182        * svg/SVGFontData.cpp:
35183        (WebCore::SVGFontData::applySVGGlyphSelection): Pass StringView to
35184        createStringWIthMirroredCharacters.
35185        (WebCore::createStringWithMirroredCharacters): Changed to use StringView and
35186        use indexing into that instead of a characters pointer.
35187
35188        * svg/SVGFontData.h: Removed createStringWithMirroredCharacters member function,
35189        since it has nothing to do with the SVGFontData object. Now it's just a private
35190        helper function in the SVGFontData.cpp source file.
35191
35192        * svg/SVGFontElement.cpp:
35193        (WebCore::SVGFontElement::registerLigaturesInGlyphCache): Index into the string
35194        instead of using deprecatedCharacters.
35195
35196        * svg/SVGGlyphMap.h:
35197        (WebCore::SVGGlyphMap::addGlyph): Use StringView::upconvertedCharacters.
35198        (WebCore::SVGGlyphMap::collectGlyphsForString): Ditto.
35199        * svg/SVGGlyphRefElement.cpp:
35200        (WebCore::SVGGlyphRefElement::parseAttribute): Ditto.
35201        * svg/SVGLength.cpp:
35202        (WebCore::SVGLength::setValueAsString): Ditto.
35203        * svg/SVGLengthList.cpp:
35204        (WebCore::SVGLengthList::parse): Ditto.
35205        * svg/SVGNumberList.cpp:
35206        (WebCore::SVGNumberList::parse): Ditto.
35207        * svg/SVGParserUtilities.cpp:
35208        (WebCore::parseNumberFromString): Ditto.
35209        (WebCore::parseNumberOptionalNumber): Ditto.
35210        (WebCore::parseRect): Ditto.
35211        (WebCore::pointsListFromSVGData): Ditto.
35212        (WebCore::parseGlyphName): Ditto.
35213        (WebCore::parseKerningUnicodeString): Ditto.
35214        (WebCore::parseDelimitedString): Ditto.
35215        * svg/SVGPreserveAspectRatio.cpp:
35216        (WebCore::SVGPreserveAspectRatio::parse): Ditto.
35217        * svg/SVGStringList.cpp:
35218        (WebCore::SVGStringList::parse): Ditto.
35219        * svg/SVGTransformList.cpp:
35220        (WebCore::SVGTransformList::parse): Ditto.
35221        * svg/SVGTransformable.cpp:
35222        (WebCore::SVGTransformable::parseTransformType): Ditto.
35223        * svg/SVGViewSpec.cpp:
35224        (WebCore::SVGViewSpec::parseViewSpec): Ditto.
35225        * svg/SVGZoomAndPan.h:
35226        (WebCore::SVGZoomAndPan::parseAttribute): Ditto.
35227
35228        * xml/XMLHttpRequest.cpp:
35229        (WebCore::XMLHttpRequest::send): Pass a StringView to TextEncoding::encode.
35230
35231        * xml/XSLStyleSheetLibxslt.cpp:
35232        (WebCore::XSLStyleSheet::parseString): Use StringView::upconvertedCharacters.
35233
352342014-03-18  Bem Jones-Bey  <bjonesbe@adobe.com>
35235
35236        LayoutBox is a terrible name
35237        https://bugs.webkit.org/show_bug.cgi?id=130351
35238
35239        Reviewed by Simon Fraser.
35240
35241        Rename LayoutBox to CSSBoxType. Also rename the functions and methods
35242        that mention "LayoutBox" to something that makes sense for each
35243        specific situation.
35244
35245        No new tests, no behavior change.
35246
35247        * css/BasicShapeFunctions.cpp:
35248        (WebCore::valueForBasicShape):
35249        (WebCore::basicShapeForValue):
35250        * css/CSSBasicShapes.cpp:
35251        (WebCore::CSSBasicShapeCircle::cssText):
35252        (WebCore::CSSBasicShapeCircle::equals):
35253        (WebCore::CSSBasicShapeEllipse::cssText):
35254        (WebCore::CSSBasicShapeEllipse::equals):
35255        (WebCore::CSSBasicShapePolygon::cssText):
35256        (WebCore::CSSBasicShapePolygon::equals):
35257        (WebCore::CSSBasicShapeInset::cssText):
35258        * css/CSSBasicShapes.h:
35259        (WebCore::CSSBasicShape::referenceBox):
35260        (WebCore::CSSBasicShape::setReferenceBox):
35261        * css/CSSComputedStyleDeclaration.cpp:
35262        (WebCore::shapePropertyValue):
35263        * css/CSSPrimitiveValueMappings.h:
35264        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
35265        (WebCore::CSSPrimitiveValue::operator CSSBoxType):
35266        * css/DeprecatedStyleBuilder.cpp:
35267        (WebCore::ApplyPropertyClipPath::applyValue):
35268        (WebCore::ApplyPropertyShape::applyValue):
35269        * page/animation/CSSPropertyAnimation.cpp:
35270        (WebCore::blendFunc):
35271        * rendering/ClipPathOperation.h:
35272        (WebCore::ShapeClipPathOperation::setReferenceBox):
35273        (WebCore::ShapeClipPathOperation::referenceBox):
35274        (WebCore::BoxClipPathOperation::create):
35275        (WebCore::BoxClipPathOperation::referenceBox):
35276        (WebCore::BoxClipPathOperation::BoxClipPathOperation):
35277        * rendering/shapes/Shape.cpp:
35278        (WebCore::Shape::createBoxShape):
35279        * rendering/shapes/Shape.h:
35280        * rendering/shapes/ShapeInfo.cpp:
35281        (WebCore::ShapeInfo<RenderType>::computedShape):
35282        * rendering/shapes/ShapeInfo.h:
35283        * rendering/shapes/ShapeInsideInfo.h:
35284        * rendering/shapes/ShapeOutsideInfo.h:
35285        * rendering/style/BasicShapes.cpp:
35286        (WebCore::BasicShape::canBlend):
35287        * rendering/style/BasicShapes.h:
35288        (WebCore::BasicShape::referenceBox):
35289        (WebCore::BasicShape::setReferenceBox):
35290        (WebCore::BasicShape::BasicShape):
35291        * rendering/style/RenderStyleConstants.h:
35292        * rendering/style/ShapeValue.h:
35293        (WebCore::ShapeValue::createShapeValue):
35294        (WebCore::ShapeValue::createBoxShapeValue):
35295        (WebCore::ShapeValue::cssBox):
35296        (WebCore::ShapeValue::ShapeValue):
35297
352982014-03-18  Daniel Bates  <dabates@apple.com>
35299
35300        REGRESSION (r162334): RenderTableCol::styleDidChange uses out-of-date table information
35301        https://bugs.webkit.org/show_bug.cgi?id=129561
35302
35303        Reviewed by Antti Koivisto.
35304
35305        Test: fast/table/update-col-width-and-remove-table-cell-crash.html
35306
35307        Fixes an issue where a table column or table column group may query an out-
35308        of-date model of its associated table as part of its process to propagate
35309        style changes to affected table cells.
35310
35311        * rendering/RenderTableCol.cpp:
35312        (WebCore::RenderTableCol::styleDidChange): Ensure that all sections in the table
35313        are up-to-date before querying for a table cell.
35314        * rendering/RenderTableSection.cpp:
35315        (WebCore::RenderTableSection::recalcCells): Update comment to read well. In
35316        particular, remove the reference to RenderTableSection::fillRowsWithDefaultStartingAtPosition()
35317        as this function was removed in <http://trac.webkit.org/changeset/99919>.
35318        (WebCore::RenderTableSection::setNeedsCellRecalc): Clear the grid preemptively to
35319        to ensure that accessors cannot access stale data. We'll build the grid again
35320        in RenderTableSection::recalcCells().
35321        (WebCore::RenderTableSection::numColumns): Add ASSERT(!m_needsCellRecalc) to assert
35322        that the grid cells are up-to-date. That is, we don't need to calculate them again.
35323        * rendering/RenderTableSection.h: Add ASSERT(!m_needsCellRecalc) or call recalcCellsIfNeeded()
35324        before accessing the grid to ensure that it's up-to-date.
35325
353262014-03-18  Daniel Bates  <dabates@apple.com>
35327
35328        REGRESSION (r163560): ASSERTION FAILED: childrenInline() in WebCore::RenderSVGText::layout
35329        https://bugs.webkit.org/show_bug.cgi?id=130346
35330
35331        Reviewed by Andreas Kling.
35332
35333        Following <http://trac.webkit.org/changeset/163560>, SVG inline elements may be treated as block-
35334        level elements depending on their CSS styles (e.g. display: block). But such elements should always
35335        be treated as inline-level elements.
35336
35337        Partially revert <http://trac.webkit.org/changeset/164368> as it addressed a similar issue for
35338        <tspan> and <tref>. Instead we should implement RenderSVGInline::updateFromStyle() to ensure that
35339        RenderSVGInline and any derived classes (e.g. RenderSVGTSpan) are always treated as inline elements
35340        regardless of their CSS style because the SVG text layout code depends on this assumption as part
35341        of a performance optimization. We may want to revaluate the benefits of this optimization with respect
35342        to code clarity and ensuring the code is less error prone.
35343
35344        Test: svg/text/a-display-block.html
35345              svg/text/tref-display-inherit.html
35346
35347        * css/StyleResolver.cpp:
35348        (WebCore::StyleResolver::adjustRenderStyle): Revert changes from <http://trac.webkit.org/changeset/164368>.
35349        * rendering/RenderInline.h:
35350        * rendering/svg/RenderSVGInline.cpp:
35351        (WebCore::RenderSVGInline::updateFromStyle): Added; ensure that RenderSVGInline and any derived
35352        classes are treated as inline elements because the SVG text layout code depends on this assumption.
35353        * rendering/svg/RenderSVGInline.h:
35354
353552014-03-18  Hans Muller  <hmuller@adobe.com>
35356
35357        [CSS Shapes] shape-outside: ellipse(50% 50% at) causes crash
35358        https://bugs.webkit.org/show_bug.cgi?id=130366
35359
35360        Reviewed by Andreas Kling.
35361
35362        The BasicShape ellipse and circle functions now report a syntax error
35363        if the "at" keyword is not followed by a position.
35364
35365        The existing parsing tests have been updated to include this case.
35366
35367        * css/CSSParser.cpp:
35368        (WebCore::CSSParser::parseBasicShapeCircle):
35369        (WebCore::CSSParser::parseBasicShapeEllipse):
35370
353712014-03-18  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
35372
35373        Removing MediaStreamVector typedef
35374        https://bugs.webkit.org/show_bug.cgi?id=130402
35375
35376        Reviewed by Eric Carlson.
35377
35378        * Modules/mediastream/MediaStream.h:
35379        * Modules/mediastream/RTCPeerConnection.cpp:
35380        (WebCore::RTCPeerConnection::getLocalStreams):
35381        (WebCore::RTCPeerConnection::getRemoteStreams):
35382        (WebCore::RTCPeerConnection::getStreamById):
35383        (WebCore::RTCPeerConnection::hasLocalStreamWithTrackId):
35384        * Modules/mediastream/RTCPeerConnection.h:
35385
353862014-03-18  Commit Queue  <commit-queue@webkit.org>
35387
35388        Unreviewed, rolling out r165815.
35389        https://bugs.webkit.org/show_bug.cgi?id=130410
35390
35391        Broke many VTT tests (Requested by bfulgham on #webkit).
35392
35393        Reverted changeset:
35394
35395        "TextTrackRegion Not Implemented"
35396        https://bugs.webkit.org/show_bug.cgi?id=116546
35397        http://trac.webkit.org/changeset/165815
35398
353992014-03-18  Renata Hodovan  <rhodovan.u-szeged@partner.samsung.com>
35400
35401        Bad cast with toRenderBox in WebCore::RenderView::repaintViewRectangle
35402        https://bugs.webkit.org/show_bug.cgi?id=129104
35403
35404        Reviewed by Simon Fraser.
35405
35406        We should not cast the renderer of a RenderView's owner to RenderBox
35407        unless we are sure it is one.
35408
35409        Test: plugins/crash-invalid-data-reference.html
35410
35411        * rendering/RenderView.cpp:
35412        (WebCore::RenderView::repaintViewRectangle):
35413
354142014-03-18  Andreas Kling  <akling@apple.com>
35415
35416        Micro-optimize element descendant iterator.
35417        <https://webkit.org/b/130384>
35418
35419        Add a slightly more efficient ElementDescendantIterator that keeps a stack
35420        of relevant ancestor siblings instead of walking up the parent chain every
35421        time we run out of children.
35422
35423        Reviewed by Antti Koivisto.
35424
35425        * WebCore.xcodeproj/project.pbxproj:
35426        * dom/ElementDescendantIterator.h: Added.
35427        (WebCore::ElementDescendantIterator::ElementDescendantIterator):
35428        (WebCore::ElementDescendantIterator::operator++):
35429        (WebCore::ElementDescendantConstIterator::ElementDescendantConstIterator):
35430        (WebCore::ElementDescendantConstIterator::operator++):
35431        (WebCore::ElementDescendantIteratorAdapter::ElementDescendantIteratorAdapter):
35432        (WebCore::ElementDescendantIteratorAdapter::begin):
35433        (WebCore::ElementDescendantIteratorAdapter::end):
35434        (WebCore::ElementDescendantConstIteratorAdapter::ElementDescendantConstIteratorAdapter):
35435        (WebCore::ElementDescendantConstIteratorAdapter::begin):
35436        (WebCore::ElementDescendantConstIteratorAdapter::end):
35437        (WebCore::elementDescendants):
35438        * dom/ElementIterator.h:
35439        * dom/SelectorQuery.cpp:
35440        (WebCore::elementsForLocalName):
35441        (WebCore::anyElement):
35442        (WebCore::SelectorDataList::executeSingleTagNameSelectorData):
35443        (WebCore::SelectorDataList::executeSingleClassNameSelectorData):
35444        (WebCore::SelectorDataList::executeSingleSelectorData):
35445        (WebCore::SelectorDataList::executeSingleMultiSelectorData):
35446        (WebCore::SelectorDataList::executeCompiledSimpleSelectorChecker):
35447
354482014-03-18  Antti Koivisto  <antti@apple.com>
35449
35450        Mutating rules returned by getMatchedCSSRules can result in crash
35451        https://bugs.webkit.org/show_bug.cgi?id=130209
35452
35453        Reviewed by Andreas Kling.
35454        
35455        The non-standard getMatchedCSSRules API returns CSSStyleRule objects that don't
35456        have parent stylesheet pointer (as we don't know which sheet the rule originated from).
35457        Mutating the rule via such wrapper can lead to crashes later as we fail to invalidate
35458        the underlying stylesheet.
35459        
35460        Fix by disallowing mutation of style rules that don't have parent sheet pointer. CSSStyleRule
35461        has two mutable properties selectorText and style. The latter gives back CSSStyleDeclaration.
35462        This patch disallows mutations in both cases for CSSStyleRules that don't have parent stylesheet
35463        pointer.
35464        
35465        While it is technically possible to have CSSRules that are legitimately disconnected
35466        from stylesheet (by removing rule from sheet while holding a reference to it) it never
35467        makes sense to mutate such rule as there is no way to do anything with it afterwards.
35468
35469        Tests: fast/css/getMatchedCSSProperties-rule-mutation.html
35470               fast/css/getMatchedCSSRules-crash.html
35471
35472        * css/CSSStyleRule.cpp:
35473        (WebCore::CSSStyleRule::setSelectorText):
35474
35475            Bail out if parent stylesheet is null.
35476
35477        * css/PropertySetCSSStyleDeclaration.cpp:
35478        (WebCore::PropertySetCSSStyleDeclaration::setCssText):
35479        (WebCore::PropertySetCSSStyleDeclaration::setProperty):
35480        (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
35481        (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
35482        
35483            Allow StyleRuleCSSStyleDeclaration subclass cancel the mutation via
35484            boolean return value from willMutate.
35485
35486        (WebCore::StyleRuleCSSStyleDeclaration::willMutate):
35487        
35488            Disallow mutation if the owning CSSStyleRule is null or has null stylesheet.
35489
35490        (WebCore::StyleRuleCSSStyleDeclaration::didMutate):
35491        
35492            We never get here with null rule or stylesheet anymore.
35493
35494        * css/PropertySetCSSStyleDeclaration.h:
35495        (WebCore::PropertySetCSSStyleDeclaration::willMutate):
35496
354972014-03-17  Jeffrey Pfau  <jpfau@apple.com>
35498
35499        <media> elements are not properly moved to new documents' visibility callback lists
35500        https://bugs.webkit.org/show_bug.cgi?id=127711
35501
35502        Reviewed by David Kilzer.
35503
35504        * html/HTMLMediaElement.cpp:
35505        (WebCore::HTMLMediaElement::didMoveToNewDocument):
35506
355072014-03-18  Filip Pizlo  <fpizlo@apple.com>
35508
35509        More FTL enabling.
35510
35511        Rubber stamped by Dan Bernstein and Mark Hahnenberg.
35512
35513        No new tests.
35514
35515        * Configurations/FeatureDefines.xcconfig:
35516
355172014-03-18  Brent Fulgham  <bfulgham@apple.com>
35518
35519        TextTrackRegion Not Implemented
35520        https://bugs.webkit.org/show_bug.cgi?id=116546
35521
35522        Reviewed by Eric Carlson.
35523
35524        Merged from Blink (patch by vcarbune@chromium.org):
35525        https://chromium.googlesource.com/chromium/blink/+/4940f89a087fea5b5ea628e98d0b355d398a9eea
35526        http://crbug.com/25798003
35527
35528        Tests: media/track/regions-webvtt/text-track-region-display.html
35529               media/track/regions-webvtt/text-track-region-dom-layout.html
35530
35531        * html/HTMLMediaElement.cpp:
35532        (WebCore::HTMLMediaElement::parseAttribute):
35533        * html/track/LoadableTextTrack.cpp:
35534        (WebCore::LoadableTextTrack::newRegionsAvailable):
35535        * html/track/TextTrack.cpp:
35536        * html/track/TextTrack.h:
35537        * html/track/TextTrackRegion.cpp:
35538        (WebCore::TextTrackRegion::TextTrackRegion):
35539        (WebCore::TextTrackRegion::appendTextTrackCueBox):
35540        * html/track/TextTrackRegion.h:
35541        * html/track/VTTCue.cpp:
35542        (WebCore::VTTCue::VTTCue):
35543        (WebCore::VTTCue::notifyRegionWhenRemovingDisplayTree):
35544        (WebCore::VTTCue::removeDisplayTree):
35545        * html/track/VTTCue.h:
35546        * html/track/WebVTTParser.cpp:
35547        (WebCore::WebVTTParser::parseBytes):
35548        (WebCore::WebVTTParser::collectMetadataHeader):
35549        * html/track/WebVTTParser.h:
35550
355512014-03-18  Philippe Normand  <pnormand@igalia.com>
35552
35553        [GTK] ResourceLoaderSoup.cpp was added by mistake
35554        https://bugs.webkit.org/show_bug.cgi?id=130396
35555
35556        Reviewed by Carlos Garcia Campos.
35557
35558        This file was committed by mistake in r152778 and is not built by
35559        any port.
35560
35561        * loader/soup/ResourceLoaderSoup.cpp: Removed.
35562
355632014-03-18  Andreas Kling  <akling@apple.com>
35564
35565        Rename ElementDescendantIterator to TypedElementDescendantIterator.
35566        Romper-stubbed by Antti "Latte Lung" Koivisto.
35567
35568        * GNUmakefile.list.am:
35569        * WebCore.vcxproj/WebCore.vcxproj:
35570        * WebCore.vcxproj/WebCore.vcxproj.filters:
35571        * WebCore.xcodeproj/project.pbxproj:
35572        * dom/ElementDescendantIterator.h: Removed.
35573        * dom/ElementIterator.h:
35574        * dom/TypedElementDescendantIterator.h: Added.
35575        (WebCore::TypedElementDescendantIterator<ElementType>::TypedElementDescendantIterator):
35576        (WebCore::TypedElementDescendantIterator<ElementType>::operator):
35577        (WebCore::TypedElementDescendantConstIterator<ElementType>::TypedElementDescendantConstIterator):
35578        (WebCore::TypedElementDescendantConstIterator<ElementType>::operator):
35579        (WebCore::TypedElementDescendantIteratorAdapter<ElementType>::TypedElementDescendantIteratorAdapter):
35580        (WebCore::TypedElementDescendantIteratorAdapter<ElementType>::begin):
35581        (WebCore::TypedElementDescendantIteratorAdapter<ElementType>::end):
35582        (WebCore::TypedElementDescendantIteratorAdapter<ElementType>::beginAt):
35583        (WebCore::TypedElementDescendantIteratorAdapter<ElementType>::from):
35584        (WebCore::TypedElementDescendantIteratorAdapter<ElementType>::first):
35585        (WebCore::TypedElementDescendantIteratorAdapter<ElementType>::last):
35586        (WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::TypedElementDescendantConstIteratorAdapter):
35587        (WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::begin):
35588        (WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::end):
35589        (WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::beginAt):
35590        (WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::from):
35591        (WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::first):
35592        (WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::last):
35593        (WebCore::descendantsOfType):
35594
355952014-03-18  Ion Rosca  <rosca@adobe.com>
35596
35597        Add blend mode property to dumped information in GraphicsLayer.
35598        https://bugs.webkit.org/show_bug.cgi?id=130331
35599
35600        Reviewed by Simon Fraser.
35601
35602        Functionality is not changed, therefore no new tests added.
35603        I adjusted the affected test results generated with layerTreeAsText.
35604
35605        * platform/graphics/GraphicsLayer.cpp:
35606        (WebCore::GraphicsLayer::dumpProperties):
35607
356082014-03-17  Sergio Villar Senin  <svillar@igalia.com>
35609
35610        webdatabase: Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T>
35611        https://bugs.webkit.org/show_bug.cgi?id=130347
35612
35613        Reviewed by Darin Adler.
35614
35615        * Modules/webdatabase/DatabaseTracker.cpp:
35616        (WebCore::DatabaseTracker::openDatabaseMutex):
35617        (WebCore::notificationMutex):
35618        (WebCore::notificationQueue):
35619
356202014-03-17  Jer Noble  <jer.noble@apple.com>
35621
35622        Add RemoteCommandListener support to MediaSessionManager.
35623        https://bugs.webkit.org/show_bug.cgi?id=130354
35624
35625        Reviewed by Eric Carlson.
35626
35627        Listen for remote commands in MediaSessionManager.
35628
35629        * platform/audio/MediaSessionManager.cpp:
35630        (WebCore::MediaSessionManager::addSession):
35631        (WebCore::MediaSessionManager::removeSession):
35632        * platform/audio/MediaSessionManager.h:
35633
35634        Add RemoteCommandListener to the project files:
35635        * CMakeLists.txt:
35636        * GNUmakefile.list.am:
35637        * WebCore.vcxproj/WebCore.vcxproj:
35638        * WebCore.vcxproj/WebCore.vcxproj.filters:
35639
356402014-03-17  Ryosuke Niwa  <rniwa@webkit.org>
35641
35642        Rewrite WebHTMLConverter::_elementHasOwnBackgroundColor in C++
35643        https://bugs.webkit.org/show_bug.cgi?id=130291
35644
35645        Reviewed by Andreas Kling.
35646
35647        Extracted HTMLConverterCaches::elementHasOwnBackgroundColor.
35648
35649        * platform/mac/HTMLConverter.mm:
35650        (HTMLConverterCaches::elementHasOwnBackgroundColor):
35651        (-[WebHTMLConverter _elementHasOwnBackgroundColor:]):
35652
356532014-03-17  Ryosuke Niwa  <rniwa@webkit.org>
35654
35655        Rewrite WebHTMLConverter::_elementIsBlockLevel in C++
35656        https://bugs.webkit.org/show_bug.cgi?id=130287
35657
35658        Reviewed by Andreas Kling.
35659
35660        Rewrote _elementIsBlockLevel as HTMLConverterCaches::isBlockElement. Also removed the code to update
35661        _elementIsBlockLevel in _traverseNode as computing the value of _elementIsBlockLevel is now fast.
35662
35663        * platform/mac/HTMLConverter.h:
35664        * platform/mac/HTMLConverter.mm:
35665        (HTMLConverterCaches::isBlockElement):
35666        (-[WebHTMLConverter _elementIsBlockLevel:]):
35667        (-[WebHTMLConverter _traverseNode:depth:embedded:]):
35668        (-[WebHTMLConverter dealloc]):
35669        (-[WebHTMLConverter init]):
35670
356712014-03-17  Ryosuke Niwa  <rniwa@webkit.org>
35672
35673        Rewrite WebHTMLConverter::_getComputedFloat in C++
35674        https://bugs.webkit.org/show_bug.cgi?id=130284
35675
35676        Reviewed by Andreas Kling.
35677
35678        Rewrote _getComputedFloat as HTMLConverterCaches::floatPropertyValueForNode.
35679
35680        * platform/mac/HTMLConverter.h:
35681        * platform/mac/HTMLConverter.mm:
35682        (HTMLConverterCaches::floatPropertyValueForNode):
35683        (-[WebHTMLConverter _getFloat:forNode:property:]): Now that computing the float value is fast, we don't need to
35684        store it in the cache.
35685        (-[WebHTMLConverter dealloc]):
35686        (-[WebHTMLConverter init]):
35687
356882014-03-16  Andreas Kling  <akling@apple.com>
35689
35690        HTMLInputElement::defaultEventHandler() shouldn't force style updates.
35691        <https://webkit.org/b/130303>
35692
35693        Move the updateStyleIfNeeded() call down to TextFieldInputType instead
35694        of doing it for every HTMLInputEvent.
35695
35696        There might be a better way to do this; we only want to know about this
35697        specific element's renderer, and don't need the rest of the tree.
35698        This is still an easy hack to avoid a lot of unnecessary work.
35699
35700        Reviewed by Anders Carlsson.
35701
35702        * html/HTMLInputElement.cpp:
35703        (WebCore::HTMLInputElement::defaultEventHandler):
35704        * html/TextFieldInputType.cpp:
35705        (WebCore::TextFieldInputType::forwardEvent):
35706
357072014-03-17  Brent Fulgham  <bfulgham@apple.com>
35708
35709        [WebVTT] Extending WebVTT Rendering with Regions
35710        https://bugs.webkit.org/show_bug.cgi?id=109822
35711
35712        Reviewed by Eric Carlson.
35713
35714        Merged from Blink (patch by Victor Carbune vcarbune@chromium.org):
35715        https://chromium.googlesource.com/chromium/blink/+/0cdebc1d76d41bfcb9c4b022e54a4fbff132225d
35716
35717        No new tests, as this feature is not active in default builds. New tests will be added
35718        in an upcoming bug.
35719
35720        * css/mediaControls.css:
35721        (video::-webkit-media-text-track-region):
35722        (video::-webkit-media-text-track-region-container):
35723        (video::-webkit-media-text-track-region-container.scrolling):
35724        (video::-webkit-media-text-track-display):
35725        * html/shadow/MediaControlElements.cpp:
35726        (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
35727        * html/track/TextTrack.cpp:
35728        (WebCore::TextTrack::~TextTrack):
35729        * html/track/TextTrackCue.cpp:
35730        * html/track/TextTrackRegion.cpp:
35731        (WebCore::TextTrackRegion::TextTrackRegion):
35732        (WebCore::TextTrackRegion::textTrackCueContainerScrollingClass):
35733        (WebCore::TextTrackRegion::textTrackCueContainerShadowPseudoId):
35734        (WebCore::TextTrackRegion::textTrackRegionShadowPseudoId):
35735        (WebCore::TextTrackRegion::appendTextTrackCueBox):
35736        (WebCore::TextTrackRegion::displayLastTextTrackCueBox):
35737        (WebCore::TextTrackRegion::willRemoveTextTrackCueBox):
35738        (WebCore::TextTrackRegion::getDisplayTree):
35739        (WebCore::TextTrackRegion::prepareRegionDisplayTree):
35740        (WebCore::TextTrackRegion::startTimer):
35741        (WebCore::TextTrackRegion::stopTimer):
35742        (WebCore::TextTrackRegion::scrollTimerFired):
35743        * html/track/TextTrackRegion.h:
35744        (WebCore::TextTrackRegion::create):
35745        (WebCore::TextTrackRegion::isScrollingRegion):
35746        (WebCore::TextTrackRegion::ownerDocument):
35747        * html/track/TextTrackRegion.idl:
35748        * html/track/TextTrackRegionList.cpp:
35749        (WebCore::TextTrackRegionList::getRegionById):
35750        * html/track/VTTCue.cpp:
35751        (WebCore::VTTCueBox::applyCSSProperties):
35752        (WebCore::VTTCue::~VTTCue):
35753        (WebCore::VTTCue::setIsActive):
35754        (WebCore::VTTCue::removeDisplayTree):
35755        * html/track/WebVTTParser.cpp:
35756        (WebCore::WebVTTParser::createNewRegion):
35757        * rendering/RenderVTTCue.cpp:
35758        (WebCore::RenderVTTCue::layout):
35759
357602014-03-17  Brendan Long  <b.long@cablelabs.com>
35761
35762        [GStreamer] human readable language code for tracks
35763        https://bugs.webkit.org/show_bug.cgi?id=124514
35764
35765        Reviewed by Martin Robinson.
35766
35767        * PlatformEfl.cmake: Add GSTREAMER_TAG_INCLUDE_DIRS and GSTREAMER_TAG_LIBRARIES.
35768        * PlatformGTK.cmake: Same.
35769        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
35770        (WebCore::TrackPrivateBaseGStreamer::getLanguageCode): Run language codes though gst_tag_get_language_code_iso_639_1() to make sure they're valid.
35771        (WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged): Use getLanguageCode() for languages instead of just getTag().
35772
357732014-03-17  Ryosuke Niwa  <rniwa@webkit.org>
35774
35775        [Mac] Rewrite WebHTMLConverter::_computedStringForNode in C++
35776        https://bugs.webkit.org/show_bug.cgi?id=130274
35777
35778        Reviewed by Andreas Kling.
35779
35780        Rewrote WebHTMLConverter::_computedStringForNode as HTMLConverterCaches::propertyValueForNode.
35781
35782        * platform/mac/HTMLConverter.h: Removed unused caches.
35783        * platform/mac/HTMLConverter.mm:
35784        (HTMLConverterCaches::computedStylePropertyForElement): Added use const String& instead of String& on property name.
35785        (HTMLConverterCaches::inlineStylePropertyForElement): Ditto.
35786        (HTMLConverterCaches::propertyValueForNode): Renamed and rewritten from _computedStringForNode.
35787        (-[WebHTMLConverter _stringForNode:property:]): Simply return the computed value instead of storing it in the cache
35788        now that the computing the value is fast.
35789        (-[WebHTMLConverter dealloc]):
35790        (-[WebHTMLConverter init]):
35791
357922014-03-17  Andreas Kling  <akling@apple.com>
35793
35794        Remove unnecessary JSC::Handle null checks in bindings code.
35795        <https://webkit.org/b/130356>
35796
35797        Use Handle::slot() directly instead of going through Handle::get().
35798        This avoids null checking the HandleSlot, which isn't necessary here
35799        anyway, and the code already assumes it'll never be null.
35800
35801        Reviewed by Gavin Barraclough.
35802
35803        * bindings/js/JSCSSRuleListCustom.cpp:
35804        (WebCore::JSCSSRuleListOwner::isReachableFromOpaqueRoots):
35805        * bindings/js/JSCSSValueCustom.cpp:
35806        (WebCore::JSCSSValueOwner::isReachableFromOpaqueRoots):
35807        (WebCore::JSCSSValueOwner::finalize):
35808        * bindings/js/JSMutationObserverCustom.cpp:
35809        (WebCore::JSMutationObserverOwner::isReachableFromOpaqueRoots):
35810        * bindings/js/JSNodeCustom.cpp:
35811        (WebCore::JSNodeOwner::isReachableFromOpaqueRoots):
35812        * bindings/js/JSNodeListCustom.cpp:
35813        (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
35814        * bindings/js/JSTextTrackCueCustom.cpp:
35815        (WebCore::JSTextTrackCueOwner::isReachableFromOpaqueRoots):
35816        * bindings/js/WebCoreTypedArrayController.cpp:
35817        (WebCore::WebCoreTypedArrayController::JSArrayBufferOwner::isReachableFromOpaqueRoots):
35818        (WebCore::WebCoreTypedArrayController::JSArrayBufferOwner::finalize):
35819        * bindings/scripts/CodeGeneratorJS.pm:
35820        (GenerateImplementation):
35821        * bridge/runtime_root.cpp:
35822        (JSC::Bindings::RootObject::finalize):
35823
358242014-03-17  Krzysztof Czech  <k.czech@samsung.com>
35825
35826        AX: Reducing some code by using helper function ariaElementsFromAttribute
35827        https://bugs.webkit.org/show_bug.cgi?id=130344
35828
35829        Reviewed by Chris Fleizach.
35830
35831        Change visibility of ariaElementsFromAttribute function from private to protected
35832        so that other classes that derives from AccessibilityRenderObject can use it.
35833
35834        No new tests. No behaviour change.
35835
35836        * accessibility/AccessibilityRenderObject.h:
35837        * accessibility/AccessibilityTableCell.cpp:
35838        (WebCore::AccessibilityTableCell::columnHeaders):
35839
358402014-03-16  Brent Fulgham  <bfulgham@apple.com>
35841
35842        Provide preference to enable additional AVFoundation options
35843        https://bugs.webkit.org/show_bug.cgi?id=130275
35844
35845        Reviewed by Eric Carlson.
35846
35847        * html/HTMLMediaElement.cpp:
35848        (WebCore::HTMLMediaElement::doesHaveAttribute): Added.
35849        * html/HTMLMediaElement.h:
35850        * page/Settings.in: Add new attribute.
35851        * platform/graphics/MediaPlayer.cpp:
35852        (WebCore::MediaPlayer::doesHaveAttribute): Added stub to call private player object's
35853        implementation of doesHaveAttribute.
35854        * platform/graphics/MediaPlayer.h:
35855        (WebCore::MediaPlayerClient::doesHaveAttribute):
35856        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
35857        (WebCore::MediaPlayerPrivateAVFoundationCF::AVFWrapper::createAssetForURL): Check the <media> object,
35858        and notify AVFoundationCF to use URI option if relevant.
35859        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
35860        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Check the <media> object,
35861        and notify AVFoundation to use URI option if relevant.
35862
358632014-03-17  Jer Noble  <jer.noble@apple.com>
35864
35865        [EME] Add NULL protections in SourceBuffer and MediaSource.
35866        https://bugs.webkit.org/show_bug.cgi?id=130266
35867
35868        Reviewed by Eric Carlson.
35869
35870        Add NULL checks in places which may be called after a SourceBuffer has been removed:
35871
35872        * Modules/mediasource/MediaSource.cpp:
35873        (WebCore::MediaSource::monitorSourceBuffers): Protect against a SourceBuffer being removed
35874            (and thus activeSourceBuffers being empty) when monitoring source buffer state.
35875        * Modules/mediasource/SourceBuffer.cpp:
35876        (WebCore::SourceBuffer::appendBufferTimerFired): Protect against SourceBuffer being removed.
35877        (WebCore::SourceBuffer::videoTracks): Ditto.
35878        (WebCore::SourceBuffer::audioTracks): Ditto.
35879        (WebCore::SourceBuffer::textTracks): Ditto.
35880        (WebCore::SourceBuffer::setActive): Ditto.
35881        (WebCore::SourceBuffer::sourceBufferPrivateDidEndStream): Ditto.
35882        (WebCore::SourceBuffer::hasCurrentTime): Ditto.
35883        (WebCore::SourceBuffer::canPlayThrough): Ditto.
35884        (WebCore::SourceBuffer::hasFutureTime): Ditto, and check for an empty buffered ranges.
35885
358862014-03-17  Tim Horton  <timothy_horton@apple.com>
35887
35888        WKThumbnailView should support snapshots
35889        https://bugs.webkit.org/show_bug.cgi?id=130335
35890        <rdar://problem/16255139>
35891
35892        Reviewed by Simon Fraser.
35893
35894        * WebCore.exp.in:
35895
358962014-01-29  Sergio Villar Senin  <svillar@igalia.com>
35897
35898        [CSS Grid Layout] getComputedStyle() not using author's order when showing named grid lines
35899        https://bugs.webkit.org/show_bug.cgi?id=127837
35900
35901        Reviewed by David Hyatt.
35902
35903        Added a couple of new Vectors to store the names of the grid lines
35904        respecting their order. They will be used to get the right outcome
35905        for getComputedStyle().
35906
35907        * css/CSSComputedStyleDeclaration.cpp:
35908        (WebCore::addValuesForNamedGridLinesAtIndex):
35909        (WebCore::valueForGridTrackList):
35910        * css/StyleResolver.cpp:
35911        (WebCore::createGridTrackList):
35912        (WebCore::StyleResolver::applyProperty):
35913        * rendering/style/RenderStyle.h:
35914        * rendering/style/StyleGridData.cpp:
35915        (WebCore::StyleGridData::StyleGridData):
35916        * rendering/style/StyleGridData.h:
35917        (WebCore::StyleGridData::operator==):
35918
359192014-03-17  Zsolt Borbely  <borbezs@inf.u-szeged.hu>
35920
35921        Fix the !ENABLE(PROMISES) build
35922        https://bugs.webkit.org/show_bug.cgi?id=130328
35923
35924        Reviewed by Darin Adler.
35925
35926        Add missing ENABLE(PROMISES) guards.
35927
35928        * bindings/js/JSDOMPromise.cpp:
35929        * bindings/js/JSDOMPromise.h:
35930
359312014-03-17  Gurpreet Kaur  <k.gurpreet@samsung.com>
35932
35933        Safari should not render a cell if the <td> is empty
35934        https://bugs.webkit.org/show_bug.cgi?id=15273
35935
35936        Reviewed by Darin Adler.
35937
35938        When table cell has no children and the doctype is not present or not
35939        correct the border for that cell should not be drawn. Firefox also
35940        follows the same behaviour hence making the changes to make it similiar
35941        to Firefox behaviour.
35942
35943        Tests: fast/table/table-cell-border-doctype.html
35944               fast/table/table-cell-border-no-doctype.html
35945
35946        * rendering/RenderTableCell.cpp:
35947        (WebCore::RenderTableCell::paintBoxDecorations):
35948        Added condition for not drawing the border when table cell has no child
35949        and doctype.
35950
35951
359522014-03-17  Frédéric Wang  <fred.wang@free.fr>
35953
35954        Fix handling of <annotation> in MathMLTextElement.
35955        https://bugs.webkit.org/show_bug.cgi?id=124128.
35956
35957        Reviewed by Darin Adler.
35958
35959        No new tests.
35960
35961        * mathml/MathMLTextElement.cpp:
35962        (WebCore::MathMLTextElement::createElementRenderer): do not create the special RenderMathMLToken for the <annotation> tag.
35963        (WebCore::MathMLTextElement::childShouldCreateRenderer): only allow text inside <annotation>.
35964
359652014-03-17  Martin Robinson  <mrobinson@igalia.com>
35966
35967        [GTK][CMake] Credential storage is not enabled
35968        https://bugs.webkit.org/show_bug.cgi?id=130149
35969
35970        Reviewed by Philippe Normand.
35971
35972        * PlatformGTK.cmake: Add the libsecret include directories and link line to the build.
35973
359742014-03-17  Zan Dobersek  <zdobersek@igalia.com>
35975
35976        Unreviewed.
35977
35978        Addressing reviewing comments by Darin in bug #130310 that I forgot
35979        to address before landing the changes in r165732.
35980        https://bugs.webkit.org/show_bug.cgi?id=130310
35981
35982        * rendering/InlineTextBox.cpp:
35983        * rendering/RenderLayer.cpp:
35984        * rendering/RenderObject.cpp:
35985
359862014-03-17  Jessie Berlin  <jberlin@apple.com>
35987
35988        Speculative build fix for ENABLE(TELEPHONE_NUMBER_DETECTION) after r165724.
35989
35990        * html/parser/HTMLTreeBuilder.cpp:
35991        (WebCore::HTMLTreeBuilder::linkifyPhoneNumbers):
35992
359932014-03-17  Zan Dobersek  <zdobersek@igalia.com>
35994
35995        Only supplement Page with UserMediaController once
35996        https://bugs.webkit.org/show_bug.cgi?id=130311
35997
35998        Reviewed by Darin Adler.
35999
36000        Don't supplement the Page with an UserMediaController object if that Page was
36001        already supplemented with one. This avoids triggering an assertion in
36002        Supplementable::provideSupplement() that ensures no supplement with the same key
36003        exists yet. The cause of this is calling provideUserMediaTo() in the Internals
36004        constructor that's using the same Page for two subsequent tests.
36005
36006        * Modules/mediastream/UserMediaController.cpp:
36007        (WebCore::provideUserMediaTo):
36008
360092014-03-17  Zan Dobersek  <zdobersek@igalia.com>
36010
36011        Explicitly include cstdio header for debug builds in InlineTextBox, RenderLayer, RenderObject
36012        https://bugs.webkit.org/show_bug.cgi?id=130310
36013
36014        Reviewed by Darin Adler.
36015
36016        Building the GTK port with Clang through CMake falls into a configuration where
36017        the cstdio header is not indirectly included in InlineTextBox, RenderLayer and
36018        RenderObject source files. fprintf() is required for helper functions that print
36019        out helpful debugging information in debug builds, so the cstdio header should
36020        be included explicitly in that case.
36021
36022        * rendering/InlineTextBox.cpp:
36023        * rendering/RenderLayer.cpp:
36024        * rendering/RenderObject.cpp:
36025
360262014-03-17  Carlos Garcia Campos  <cgarcia@igalia.com>
36027
36028        [GTK] Cleanup WebKitDOMObject
36029        https://bugs.webkit.org/show_bug.cgi?id=130246
36030
36031        Reviewed by Martin Robinson.
36032
36033        Remove unneeded getter and fix coding style.
36034
36035        * bindings/gobject/WebKitDOMObject.cpp:
36036        (webkitDOMObjectSetProperty):
36037        (webkit_dom_object_class_init):
36038
360392014-03-17  Darin Adler  <darin@apple.com>
36040
36041        Stop using deprecatedCharacters in HTMLTreeBuilder
36042        https://bugs.webkit.org/show_bug.cgi?id=130323
36043
36044        Reviewed by Andreas Kling.
36045
36046        Keeping this separate from other patches because of concern that this could affect
36047        page load performance.
36048
36049        * html/parser/HTMLTreeBuilder.cpp:
36050        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
36051        Use a StringView instead of a character pointer.
36052        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::isEmpty): Ditto.
36053        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::skipAtMostOneLeadingNewline):
36054        Ditto.
36055        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeRemaining): Ditto.
36056        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::giveRemainingTo): Ditto.
36057        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeRemainingWhitespace): Ditto.
36058        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::skipLeading): Ditto.
36059        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeLeading): Ditto.
36060        (WebCore::HTMLTreeBuilder::linkifyPhoneNumbers): Use StringView::upconvertedCharacters.
36061
360622014-03-17  Jinwoo Song  <jinwoo7.song@samsung.com>
36063
36064        Make some Module class constructors return PassRef.
36065        https://bugs.webkit.org/show_bug.cgi?id=130282
36066
36067        Reviewed by Andreas Kling.
36068
36069        Make the constructor helpers for the following classes return PassRef
36070        instead of PassRefPtr since they will never return null.
36071         - GamepadList
36072         - Geolocation
36073         - NavigatorContentUtils
36074         - NetworkInfoConnection
36075         - Notification
36076         - NotificationCenter
36077         - DeviceProximityEvent
36078
36079        * Modules/gamepad/GamepadList.h:
36080        (WebCore::GamepadList::create):
36081        * Modules/geolocation/Geolocation.cpp:
36082        (WebCore::Geolocation::create):
36083        * Modules/geolocation/Geolocation.h:
36084        (WebCore::Geolocation::GeoNotifier::create):
36085        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
36086        (WebCore::NavigatorContentUtils::create):
36087        * Modules/navigatorcontentutils/NavigatorContentUtils.h:
36088        * Modules/networkinfo/NetworkInfoConnection.cpp:
36089        (WebCore::NetworkInfoConnection::create):
36090        * Modules/networkinfo/NetworkInfoConnection.h:
36091        * Modules/notifications/Notification.cpp:
36092        (WebCore::Notification::create):
36093        * Modules/notifications/Notification.h:
36094        * Modules/notifications/NotificationCenter.cpp:
36095        (WebCore::NotificationCenter::create):
36096        * Modules/notifications/NotificationCenter.h:
36097        * Modules/proximity/DeviceProximityEvent.h:
36098        (WebCore::DeviceProximityEvent::create):
36099
361002014-03-16  Mihnea Ovidenie  <mihnea@adobe.com>
36101
36102        [CSSRegions]Do not compute region range for a box unless the parent has one
36103        https://bugs.webkit.org/show_bug.cgi?id=130249
36104
36105        Reviewed by Andrei Bucur.
36106
36107        If the containing block does not have a region range computed, do not attempt to compute
36108        a region range for a child. In such cases, the range computation for a child can lead to
36109        a result that is wrong, possibly leading to an incorrect clipping.
36110
36111        Test: fast/regions/inline-block-flowed-in-regions.html
36112
36113        * rendering/RenderBlock.cpp:
36114        (WebCore::canComputeRegionRangeForBox):
36115        (WebCore::RenderBlock::computeRegionRangeForBoxChild):
36116        (WebCore::RenderBlock::estimateRegionRangeForBoxChild):
36117        (WebCore::RenderBlock::updateRegionRangeForBoxChild):
36118        * rendering/RenderFlowThread.h:
36119
361202014-03-16  Andreas Kling  <akling@apple.com>
36121
36122        CSSValueList should assert that no null values are added to it.
36123        <https://webkit.org/b/130315>
36124
36125        Add assertions in CSSValueList's append() and prepend() that we are
36126        not adding a null value. This caught a single place in CSSParser
36127        that was appending an alread-released RefPtr to a CSSValueList.
36128        That list was eventually discarded anyway (due to "foundClip" now
36129        being true), so the fix is simply to remove the adding.
36130
36131        Eventually we should use Ref and PassRef all over for CSSValueList,
36132        this is just a first step on the way.
36133
36134        Reviewed by Darin Adler.
36135
36136        * css/CSSParser.cpp:
36137        (WebCore::CSSParser::parseFillShorthand):
36138        * css/CSSValueList.h:
36139        (WebCore::CSSValueList::append):
36140        (WebCore::CSSValueList::prepend):
36141
361422014-03-16  Praveen R Jadhav  <praveen.j@samsung.com>
36143
36144        AudioBufferSourceNode stop attribute shouldn't throw exception in finished state.
36145        https://bugs.webkit.org/show_bug.cgi?id=130000.
36146
36147        Reviewed by Jer Noble.
36148
36149        AudioBufferSourceNode may go to FINISHED_STATE even before "stop" method is called 
36150        as silence rendered after audio data is played out when its not looping.
36151        A call to "stop" method after this shouldn't throw exception.
36152
36153        * Modules/webaudio/AudioScheduledSourceNode.cpp:
36154        (WebCore::AudioScheduledSourceNode::stop):
36155
361562014-03-16  Brian Burg  <bburg@apple.com>
36157
36158        Web Inspector: generated backend commands should reflect build system ENABLE settings
36159        https://bugs.webkit.org/show_bug.cgi?id=130111
36160
36161        Reviewed by Timothy Hatcher.
36162
36163        Add guards for conditional inspector domains.
36164
36165        For Makefile-based build systems, force regeneration of the
36166        combined file if the list of domains has changed.
36167
36168        Combine only the Inspector domains listed in INSPECTOR_DOMAINS,
36169        instead of globbing any .json file.
36170
36171        * CMakeLists.txt:
36172        * DerivedSources.make:
36173        * GNUmakefile.am:
36174
361752014-03-16  David Kilzer  <ddkilzer@apple.com>
36176
36177        Follow-up: Double values passed to fabsf() in maxScaleFromTransform()
36178        <http://webkit.org/b/130297>
36179
36180        Reviewed by Darin Adler.
36181
36182        * platform/graphics/ca/GraphicsLayerCA.cpp:
36183        (WebCore::maxScaleFromTransform): Use narrowPrecisionToFloat()
36184        instead of static_cast<float>().
36185
361862014-03-16  Andreas Kling  <akling@apple.com>
36187
36188        ScriptExecutionContext::vm() should return a reference.
36189        <https://webkit.org/b/129611>
36190
36191        Every ScriptExecutionContext has a VM, so this can never return null.
36192        Made WorkerScriptController::vm() return a reference as well, since
36193        that was needed for this change.
36194
36195        Reviewed by Geoffrey Garen.
36196
36197        * bindings/js/WorkerScriptController.h:
36198        (WebCore::WorkerScriptController::vm):
36199        * bindings/js/WorkerScriptDebugServer.cpp:
36200        (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
36201        * css/ElementRuleCollector.cpp:
36202        (WebCore::ElementRuleCollector::ruleMatches):
36203        * dom/ScriptExecutionContext.cpp:
36204        (WebCore::ScriptExecutionContext::vm):
36205        * dom/ScriptExecutionContext.h:
36206        * dom/SelectorQuery.cpp:
36207        (WebCore::SelectorDataList::execute):
36208        * html/HTMLCanvasElement.cpp:
36209        (WebCore::HTMLCanvasElement::createImageBuffer):
36210        * xml/XMLHttpRequest.cpp:
36211        (WebCore::XMLHttpRequest::dropProtection):
36212        * testing/Internals.cpp:
36213        (WebCore::Internals::parserMetaData):
36214
362152014-03-16  Zan Dobersek  <zdobersek@igalia.com>
36216
36217        Remove OwnPtr.h, PassOwnPtr.h header inclusions in Source/WebCore/html/parser/ code
36218        https://bugs.webkit.org/show_bug.cgi?id=129667
36219
36220        Reviewed by Anders Carlsson.
36221
36222        Remove unnecessary inclusions of the OwnPtr.h and PassOwnPtr.h headers
36223        in the code under Source/WebCore/html/parser/.
36224
36225        * html/parser/HTMLParserScheduler.h:
36226        * html/parser/HTMLToken.h:
36227        * html/parser/HTMLTreeBuilder.h:
36228        * html/parser/XSSAuditor.h:
36229        * html/parser/XSSAuditorDelegate.h:
36230
362312014-03-16  Darin Adler  <darin@apple.com>
36232
36233        Remove uses of "cat" in DerivedSources.make outside platform-specific rules
36234        https://bugs.webkit.org/show_bug.cgi?id=130307
36235
36236        Reviewed by Anders Carlsson.
36237
36238        * DerivedSources.make: Use "perl -pe ''" instead of "cat".
36239
362402014-03-16  Brian Burg  <bburg@apple.com>
36241
36242        Web Inspector: vended backend commands file should be generated as part of the build
36243        https://bugs.webkit.org/show_bug.cgi?id=130110
36244
36245        Reviewed by Timothy Hatcher.
36246
36247        * WebCore.xcodeproj/project.pbxproj: Copy InspectorWebBackendCommands.js to the
36248        private headers directory.
36249
362502014-03-16  Frédéric Wang  <fred.wang@free.fr>
36251
36252        [regression] foreign content not displayed in MathML
36253        <https://webkit.org/b/124128>
36254
36255        Reviewed by Chris Fleizach.
36256
36257        This restores foreign content in <mtext>, <mn> and <mi> elements, but only when it is "phrasing content" as defined per the HTML5 specification. Other token elements are not handled here. This change makes mspace-units.html work again on Linux.
36258
36259        Tests: mathml/presentation/foreign-mi-dynamic.html
36260               mathml/presentation/foreign-mi.html
36261               mathml/presentation/foreign-mn.html
36262               mathml/presentation/foreign-mtext-rejected.html
36263               mathml/presentation/foreign-mtext.html
36264
36265        * mathml/MathMLTextElement.cpp:
36266        (WebCore::MathMLTextElement::createElementRenderer): create a RenderMathMLToken for mn, ms and mtext.
36267        (WebCore::isPhrasingContent): helper function to check phrasing content, as defined by the HTML spec.
36268        (WebCore::MathMLTextElement::childShouldCreateRenderer): <mi>, <mn>, <mtext> and, <ms> now accepts phrasing content.
36269        * rendering/mathml/RenderMathMLToken.cpp:
36270        (WebCore::RenderMathMLToken::RenderMathMLToken):
36271        (WebCore::RenderMathMLToken::updateTokenContent): initialize the m_containsElement boolean when updating the token content.
36272        (WebCore::RenderMathMLToken::updateStyle): move <mi> specific handling in its own section and only apply the single-char rule when it does not contain elements.
36273        * rendering/mathml/RenderMathMLToken.h: add an m_containsElement boolean to handle token element specifically.
36274
362752014-03-16  David Kilzer  <ddkilzer@apple.com>
36276
36277        PlatformTimeRanges::nearest() truncates closestDelta values from double to float
36278        <http://webkit.org/b/130298>
36279
36280        Reviewed by Darin Adler.
36281
36282        Fixes the following build failures using trunk clang:
36283
36284            WebCore/platform/graphics/PlatformTimeRanges.cpp:210:28: error: absolute value function 'fabsf' given an argument of type 'double' but has parameter of type 'float' which may cause truncation of value [-Werror,-Wabsolute-value]
36285                        closestDelta = fabsf(startTime - time);
36286                                       ^
36287            WebCore/platform/graphics/PlatformTimeRanges.cpp:210:28: note: use function 'fabs' instead
36288                        closestDelta = fabsf(startTime - time);
36289                                       ^~~~~
36290                                       fabs
36291            WebCore/platform/graphics/PlatformTimeRanges.cpp:214:28: error: absolute value function 'fabsf' given an argument of type 'double' but has parameter of type 'float' which may cause truncation of value [-Werror,-Wabsolute-value]
36292                        closestDelta = fabsf(endTime - time);
36293                                       ^
36294            WebCore/platform/graphics/PlatformTimeRanges.cpp:214:28: note: use function 'fabs' instead
36295                        closestDelta = fabsf(endTime - time);
36296                                       ^~~~~
36297                                       fabs
36298
36299        * platform/graphics/PlatformTimeRanges.cpp:
36300        (WebCore::PlatformTimeRanges::nearest): Extract start and end
36301        time deltas into local variables so they don't have to be
36302        computed twice, using fabs() instead of fabsf().
36303
363042014-03-16  Darin Adler  <darin@apple.com>
36305
36306        Optimize hasTagName when called on an HTMLElement
36307        https://bugs.webkit.org/show_bug.cgi?id=130090
36308
36309        Reviewed by Antti Koivisto.
36310
36311        Added new hasTagName functions that have the efficiency of hasLocalName.
36312        but are safe.
36313
36314        Now we can always use hasTagName, and we'll get a compile time error if
36315        we try to use an SVG tag name with an HTML element. All call sites that
36316        use the more specific tag name types are more efficient, and call sites
36317        that have a specific pointer type will get even more efficient checking
36318        that is exactly what we used to get by calling hasLocalName.
36319
36320        * accessibility/AccessibilityObject.cpp:
36321        (WebCore::AccessibilityObject::hasTagName): Cast explicitly to Element
36322        since Node::hasTagName no longer works on a general QualifiedName.
36323        * accessibility/AccessibilityRenderObject.cpp:
36324        (WebCore::AccessibilityRenderObject::isDescendantOfElementType): Use
36325        more specific type, RenderElement, so we can call hasTagName on Element
36326        instead of Node; eliminates an unnecessary branch.
36327
36328        * accessibility/AccessibilityTableColumn.cpp: Added now-needed include.
36329        * accessibility/atk/AccessibilityObjectAtk.cpp: Ditto.
36330
36331        * dom/DocumentStyleSheetCollection.cpp:
36332        (WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets): Use
36333        new for loop and full words for variable names. Also use nullptr instead
36334        of 0. Call toHTMLElement and toSVGElement in code that checks hasTagName
36335        since it's already checking isHTMLElement and isSVGElement.
36336
36337        * dom/Element.cpp:
36338        (WebCore::attrNodeListMap): Use NeverDestroyed and put the vectors into
36339        the map rather than putting pointers to a vector into the map.
36340        (WebCore::attrNodeListForElement): Take a reference rather than a pointer,
36341        and update for the change above.
36342        (WebCore::ensureAttrNodeListForElement): Ditto.
36343        (WebCore::removeAttrNodeListForElement): Ditto.
36344        (WebCore::findAttrNodeInList): Ditto.
36345        (WebCore::Element::isFocusable): Use lineageOfType<HTMLCanvasElement>
36346        to fine the canvas rather than a hand-written loop.
36347        (WebCore::Element::attrNodeList): Update for above changes.
36348        (WebCore::Element::setAttributeNode): Ditto.
36349        (WebCore::Element::attrIfExists): Ditto.
36350        (WebCore::Element::ensureAttr): Ditto.
36351        (WebCore::Element::detachAttrNodeFromElementWithValue): Ditto.
36352        (WebCore::Element::detachAllAttrNodesFromElement): Ditto.
36353
36354        * dom/Element.h: Removed the overload of hasLocalName that takes a
36355        QualifiedName and ignores the non-local-name parts of it. Callers should
36356        use hasTagName instead, now that it's optimized appropriately. Added
36357        overloads of hasTagName for all the specific qualified name types. It's
36358        more efficient to use the Node versions of these functions rather than
36359        using QualifiedName::matches to do the check. Removed the hasTagName and
36360        hasLocalName functions from the Node class; the only convenience functions
36361        needed in Node are the specific checks for tags from HTML, MathML, and SVG,
36362        not the general purpose ones.
36363
36364        * dom/Node.h: Removed hasLocalName and replaced the single hasTagName
36365        that takes a QualifiedName with three faster ones that take HTML, MathML,
36366        and SVG qualified names instead. Also updated to use nullptr instead of 0.
36367
36368        * dom/PositionIterator.cpp: Added now-needed include.
36369        * dom/Text.cpp: Ditto.
36370
36371        * dom/make_names.pl:
36372        (printHeaderHead): Renamed an argument for clarity and added a definitions
36373        argument, which is where we insert the classes derived from QualifiedName.
36374        (printCppHead): Renamed an argument for clarity.
36375        (printTypeHelpers): Use hasTagName rather than hasLocalName, since the
36376        former is now optimized to be the same as what the latter was.
36377        (printNamesHeaderFile): Define a class derived from QualifiedName that can
36378        be used at compile time to avoid having to check the namespace.
36379        (printNamesCppFile): Use the new more-specific type as needed.
36380
36381        * editing/ApplyStyleCommand.cpp:
36382        (WebCore::isLegacyAppleStyleSpan): Use hasTagName instead of hasLocalName,
36383        and references instead of pointers.
36384        (WebCore::ApplyStyleCommand::ApplyStyleCommand): Removed uneeded explicit
36385        construction of a smart pointer.
36386        (WebCore::ApplyStyleCommand::shouldApplyInlineStyleToRun): Updated to use
36387        the enclosingElementWithTag function by its new name.
36388
36389        * editing/Editor.cpp:
36390        (WebCore::Editor::selectionUnorderedListState): Updated to use the
36391        enclosingElementWithTag function by its new name.
36392        (WebCore::Editor::selectionOrderedListState): Ditto.
36393
36394        * editing/InsertListCommand.cpp:
36395        (WebCore::InsertListCommand::doApply): Use a more-specific type for the list tag.
36396        (WebCore::InsertListCommand::doApplyForSingleParagraph): Ditto.
36397        * editing/InsertListCommand.h: Ditto.
36398
36399        * editing/MarkupAccumulator.cpp:
36400        (WebCore::MarkupAccumulator::serializeNodesWithNamespaces): Added an explicit
36401        cast to Element in the loop that is already guarded by an isElementNode check.
36402        Also use a modern C++ for loop.
36403
36404        * editing/ReplaceSelectionCommand.cpp:
36405        (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
36406        Updated to use the enclosingElementWithTag function by its new name.
36407        (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Ditto.
36408        (WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent): Ditto.
36409
36410        * editing/TypingCommand.cpp: Added now-needed includes.
36411        * editing/VisibleUnits.cpp: Ditto.
36412
36413        * editing/htmlediting.cpp:
36414        (WebCore::enclosingElementWithTag): Changed to return an Element instead of a Node,
36415        since nodes other than elements do not have tags.
36416        * editing/htmlediting.h: Ditto.
36417
36418        * editing/mac/EditorMac.mm:
36419        (WebCore::Editor::adjustedSelectionRange): Updated to use the enclosingElementWithTag
36420        function by its new name.
36421        * editing/markup.cpp:
36422        (WebCore::StyledMarkupAccumulator::appendText): Ditto.
36423        (WebCore::StyledMarkupAccumulator::traverseNodesForSerialization): Ditto.
36424        (WebCore::highestAncestorToWrapMarkup): Ditto.
36425        (WebCore::createMarkupInternal): Ditto.
36426        (WebCore::createContextualFragment): Ditto. Use hasTagName instead of hasLocalName,
36427        since the former is now optimized to be the same as the latter was before.
36428
36429        * html/HTMLCollection.cpp:
36430        (WebCore::isMatchingElement): Use hasTagName instead of hasLocalName,
36431        since the former is now optimized to be the same as the latter was before.
36432        (WebCore::nameShouldBeVisibleInDocumentAll): Ditto.
36433        * html/HTMLElement.cpp:
36434        (WebCore::HTMLElement::ieForbidsInsertHTML): Ditto.
36435        (WebCore::unicodeBidiAttributeForDirAuto): Ditto.
36436        (WebCore::HTMLElement::parseBorderWidthAttribute): Ditto.
36437        (WebCore::HTMLElement::setInnerHTML): Ditto.
36438        (WebCore::shouldProhibitSetInnerOuterText): Ditto. Added this to share code between
36439        setInnerText and setOuterText.
36440        (WebCore::HTMLElement::setInnerText): Ditto.
36441        (WebCore::HTMLElement::setOuterText): Ditto.
36442        (WebCore::HTMLElement::rendererIsNeeded): Ditto.
36443        (WebCore::HTMLElement::createElementRenderer): Ditto.
36444
36445        * html/HTMLElement.h: Added hasTagName, which hides the one inherited from Element
36446        and takes the more-specific HTMLQualifiedName type. This means we don't need to check
36447        the namespace at runtime because it's known at compile time. Also put the
36448        implementation of Node::hasTagName for HTMLQualifiedName into this header.
36449
36450        * html/HTMLObjectElement.cpp:
36451        (WebCore::isRecognizedTagName): Updated for change in return type of
36452        HTMLNames::getHTMLTags.
36453
36454        * html/HTMLSelectElement.cpp:
36455        (WebCore::HTMLSelectElement::add): Use hasTagName inastead of hasLocalName.
36456        (WebCore::HTMLSelectElement::value): Use isHTMLOptionElement instead of hasTagName.
36457        Also use a new style for loop and emptyString() instead of "".
36458        (WebCore::HTMLSelectElement::setValue): Ditto.
36459        (WebCore::HTMLSelectElement::setLength): Ditto.
36460        (WebCore::HTMLSelectElement::searchOptionsForValue): Ditto.
36461        (WebCore::HTMLSelectElement::restoreFormControlState): Ditto.
36462
36463        * html/HTMLTableColElement.cpp:
36464        (WebCore::HTMLTableColElement::additionalPresentationAttributeStyle): Use hasTagName
36465        instead of hasLocalName.
36466
36467        * html/HTMLTableRowsCollection.cpp:
36468        (WebCore::isInSection): Updated to use hasTagName and take a reference.
36469        (WebCore::HTMLTableRowsCollection::rowAfter): Pass a reference.
36470
36471        * html/parser/HTMLConstructionSite.cpp: Added now-needed include.
36472
36473        * html/parser/HTMLTreeBuilder.cpp:
36474        (WebCore::createCaseMap): Updated to return a map rather than filling one in, and to
36475        be flxible about the type of the table being used.
36476        (WebCore::adjustSVGTagNameCase): Updated to use NeverDestroyed.
36477        (WebCore::adjustAttributes): Added new helper so we can share more code. Updated
36478        template argument names for clarity.
36479        (WebCore::adjustSVGAttributes): Marked this inline, since it just turns around and
36480        calls a single non-inline function.
36481        (WebCore::adjustMathMLAttributes): Ditto.
36482        (WebCore::addNamesWithPrefix): Changed to take argument by reference instead of pointer.
36483        (WebCore::createForeignAttributesMap): Added. Factors out the map creation from the
36484        function below.
36485        (WebCore::adjustForeignAttributes): Updated for above changes.
36486        (WebCore::HTMLTreeBuilder::processStartTagForInBody): Updated to pass reference.
36487        (WebCore::HTMLTreeBuilder::processTokenInForeignContent): Ditto.
36488
36489        * inspector/InspectorStyleSheet.cpp: Added now-needed include.
36490
36491        * mathml/MathMLElement.h: Added hasTagName, which hides the one inherited from Element
36492        and takes the more-specific MathMLQualifiedName type. This means we don't need to check
36493        the namespace at runtime because it's known at compile time. Also put the
36494        implementation of Node::hasTagName for MathMLQualifiedName into this header.
36495
36496        * mathml/MathMLInlineContainerElement.cpp:
36497        (WebCore::MathMLInlineContainerElement::createElementRenderer): Use hasTagName.
36498
36499        * mathml/MathMLSelectElement.cpp:
36500        (WebCore::MathMLSelectElement::attributeChanged): Use hasTagName.
36501        (WebCore::MathMLSelectElement::getSelectedActionChildAndIndex): Ditto.
36502        (WebCore::MathMLSelectElement::getSelectedActionChild): Ditto.
36503        (WebCore::MathMLSelectElement::getSelectedSemanticsChild): Ditto.
36504        (WebCore::MathMLSelectElement::updateSelectedChild): Ditto.
36505        * mathml/MathMLTextElement.cpp:
36506        (WebCore::MathMLTextElement::createElementRenderer): Ditto.
36507        (WebCore::MathMLTextElement::childShouldCreateRenderer): Ditto.
36508
36509        * platform/gtk/PasteboardGtk.cpp: Added now-needed include.
36510        * platform/mac/HTMLConverter.mm: Ditto.
36511        * rendering/RenderBlockFlow.cpp: Ditto.
36512
36513        * rendering/RenderBoxModelObject.cpp:
36514        (WebCore::RenderBoxModelObject::paintFillLayerExtended): Use hasTagName.
36515        * rendering/RenderElement.cpp:
36516        (WebCore::RenderElement::rendererForRootBackground): Ditto.
36517        * rendering/RenderLayerBacking.cpp:
36518        (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): Ditto.
36519
36520        * rendering/RenderReplaced.cpp: Added now-needed include.
36521
36522        * rendering/mathml/RenderMathMLScripts.cpp:
36523        (WebCore::RenderMathMLScripts::RenderMathMLScripts): Use hasTagName.
36524        * rendering/mathml/RenderMathMLUnderOver.cpp:
36525        (WebCore::RenderMathMLUnderOver::RenderMathMLUnderOver): Ditto.
36526
36527        * svg/SVGElement.h: Added hasTagName, which hides the one inherited from Element
36528        and takes the more-specific SVGQualifiedName type. This means we don't need to check
36529        the namespace at runtime because it's known at compile time. Also put the
36530        implementation of Node::hasTagName for SVGQualifiedName into this header.
36531
36532        * svg/SVGFontFaceSrcElement.cpp:
36533        (WebCore::SVGFontFaceSrcElement::childrenChanged): Use isSVGFontFaceElement instead
36534        of calling hasTagName.
36535
36536        * svg/SVGUseElement.cpp:
36537        (WebCore::isDirectReference): Changed to take a reference and a more specific type.
36538        (WebCore::SVGUseElement::toClipPath): Added a type cast.
36539        (WebCore::SVGUseElement::rendererClipChild): Use more specific types so we don't
36540        need a type cast.
36541
36542        * xml/parser/XMLDocumentParser.cpp:
36543        (WebCore::XMLDocumentParser::parseDocumentFragment): Added explicit calls to this
36544        unusual call site that has a good reason to use hasLocalName instead of hasTagName.
36545
365462014-03-16  Andreas Kling  <akling@apple.com>
36547
36548        Stop pulling in JSDOMBinding.h via JSEventListener.h
36549        <https://webkit.org/b/130299>
36550
36551        Just chippin' away at the compile time monster.
36552
36553        Reviewed by Darin Adler.
36554
36555        * bindings/js/IDBBindingUtilities.cpp:
36556        * bindings/js/JSEventListener.h:
36557
365582014-03-16  David Kilzer  <ddkilzer@apple.com>
36559
36560        Double values passed to fabsf() in maxScaleFromTransform()
36561        <http://webkit.org/b/130297>
36562
36563        Reviewed by Darin Adler.
36564
36565        Fixes the following build failures using trunk clang:
36566
36567            WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:287:21: error: absolute value function 'fabsf' given an argument of type 'double' but has parameter of type 'float' which may cause truncation of value [-Werror,-Wabsolute-value]
36568                return std::max(fabsf(decomposeData.scaleX), fabsf(decomposeData.scaleY));
36569                                ^
36570            WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:287:21: note: use function 'fabs' instead
36571                return std::max(fabsf(decomposeData.scaleX), fabsf(decomposeData.scaleY));
36572                                ^~~~~
36573                                fabs
36574            WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:287:50: error: absolute value function 'fabsf' given an argument of type 'double' but has parameter of type 'float' which may cause truncation of value [-Werror,-Wabsolute-value]
36575                return std::max(fabsf(decomposeData.scaleX), fabsf(decomposeData.scaleY));
36576                                                             ^
36577            WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:287:50: note: use function 'fabs' instead
36578                return std::max(fabsf(decomposeData.scaleX), fabsf(decomposeData.scaleY));
36579                                                             ^~~~~
36580                                                             fabs
36581
36582        * platform/graphics/ca/GraphicsLayerCA.cpp:
36583        (WebCore::maxScaleFromTransform): Use static_cast<float>() to
36584        convert float values to double values.
36585
365862014-03-15  Zalan Bujtas  <zalan@apple.com>
36587
36588        Move BorderEdge class to its own file.
36589        https://bugs.webkit.org/show_bug.cgi?id=130294
36590
36591        Reviewed by Sam Weinig.
36592
36593        This is in preparation to have better encapsulation for border box decoration painting.
36594
36595        No change in functionality.
36596
36597        * CMakeLists.txt:
36598        * GNUmakefile.list.am:
36599        * WebCore.vcxproj/WebCore.vcxproj:
36600        * WebCore.vcxproj/WebCore.vcxproj.filters:
36601        * WebCore.xcodeproj/project.pbxproj:
36602        * rendering/BorderEdge.cpp: Added.
36603        (WebCore::BorderEdge::BorderEdge):
36604        (WebCore::BorderEdge::getBorderEdgeInfo):
36605        (WebCore::BorderEdge::includesAdjacentEdges):
36606        (WebCore::BorderEdge::obscuresBackgroundEdge):
36607        (WebCore::BorderEdge::obscuresBackground):
36608        (WebCore::BorderEdge::getDoubleBorderStripeWidths):
36609        * rendering/BorderEdge.h: Added.
36610        (WebCore::BorderEdge::edgeFlagForSide):
36611        (WebCore::BorderEdge::includesEdge):
36612        (WebCore::BorderEdge::edgesShareColor):
36613        (WebCore::BorderEdge::hasVisibleColorAndStyle):
36614        (WebCore::BorderEdge::shouldRender):
36615        (WebCore::BorderEdge::presentButInvisible):
36616        (WebCore::BorderEdge::widthForPainting):
36617        (WebCore::BorderEdge::borderWidthInDevicePixel):
36618        * rendering/RenderBoxModelObject.cpp:
36619        (WebCore::borderStyleHasUnmatchedColorsAtCorner):
36620        (WebCore::colorsMatchAtCorner):
36621        (WebCore::colorNeedsAntiAliasAtCorner):
36622        (WebCore::willBeOverdrawn):
36623        (WebCore::joinRequiresMitre):
36624        (WebCore::RenderBoxModelObject::paintBorderSides):
36625        (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
36626        (WebCore::RenderBoxModelObject::paintBorder):
36627        (WebCore::RenderBoxModelObject::borderObscuresBackgroundEdge):
36628        (WebCore::RenderBoxModelObject::borderObscuresBackground):
36629        * rendering/RenderBoxModelObject.h:
36630
366312014-03-15  Martin Robinson  <mrobinson@igalia.com>
36632
36633        Fix WebCore unused parameter warnings for WebKitGTK+ CMake build
36634        https://bugs.webkit.org/show_bug.cgi?id=130252
36635
36636        Reviewed by Carlos Garcia Campos.
36637
36638        * Modules/mediastream/HTMLMediaElementMediaStream.cpp: Fix unused parameters.
36639        * html/RangeInputType.cpp: Ditto.
36640        * page/gtk/EventHandlerGtk.cpp: Ditto.
36641        * platform/graphics/cairo/GraphicsContextCairo.cpp: Ditto.
36642        * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp: Ditto.
36643        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: Ditto.
36644        * platform/graphics/opengl/Extensions3DOpenGLES.cpp: Ditto.
36645        * platform/gtk/GamepadsGtk.cpp: Ditto.
36646        * platform/gtk/GtkClickCounter.cpp: Ditto.
36647        * platform/gtk/GtkPopupMenu.cpp: Ditto.
36648        * platform/gtk/GtkTouchContextHelper.cpp: Ditto.
36649        * platform/gtk/GtkVersioning.c: Ditto.
36650        * platform/gtk/MainFrameScrollbarGtk.cpp: Ditto.
36651        * platform/gtk/PasteboardGtk.cpp: Ditto.
36652        * platform/gtk/PasteboardHelper.cpp: Ditto.
36653        * platform/gtk/RedirectedXCompositeWindow.cpp: Ditto.
36654        * platform/gtk/RenderThemeGtk.cpp: Ditto.
36655        * platform/gtk/RenderThemeGtk.h: Ditto.
36656        * platform/gtk/RenderThemeGtk2.cpp: Ditto.
36657        * platform/gtk/ScrollbarThemeGtk.cpp: Ditto.
36658        * platform/gtk/ScrollbarThemeGtk2.cpp: Ditto.
36659        * platform/gtk/WidgetGtk.cpp: Ditto.
36660        * platform/network/gtk/CredentialBackingStore.cpp: Ditto.
36661        * platform/soup/SharedBufferSoup.cpp: Ditto.
36662        * plugins/gtk/PluginViewGtk.cpp: Ditto.
36663        * plugins/gtk/gtk2xtbin.c: Ditto.
36664        * rendering/InlineTextBox.cpp: Ditto.
36665
366662014-03-14  Myles C. Maxfield  <mmaxfield@apple.com>
36667
36668        RenderTextControl::hasValidAvgCharWidth doesn't detect System Font
36669        https://bugs.webkit.org/show_bug.cgi?id=130168
36670
36671        Reviewed by Dean Jackson.
36672
36673        No new tests.
36674
36675        * platform/graphics/Font.cpp: Moved functions from RenderTextControl
36676        (WebCore::Font::hasValidAverageCharWidth):
36677        (WebCore::Font::fastAverageCharWidthIfAvailable):
36678        * platform/graphics/Font.h:
36679        * rendering/RenderTextControl.cpp: Moved functions to Font.cpp
36680        (WebCore::RenderTextControl::getAverageCharWidth): Removed redundant function argument
36681        (WebCore::RenderTextControl::computeIntrinsicLogicalWidths):
36682        * rendering/RenderTextControl.h:
36683        * rendering/RenderTextControlMultiLine.cpp:
36684        (WebCore::RenderTextControlMultiLine::getAverageCharWidth): Removed redundant function argument
36685        * rendering/RenderTextControlMultiLine.h:
36686        * rendering/RenderTextControlSingleLine.cpp:
36687        (WebCore::RenderTextControlSingleLine::getAverageCharWidth): Removed redundant function argument
36688        (WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth):
36689        * rendering/RenderTextControlSingleLine.h:
36690
366912014-03-15  David Kilzer  <ddkilzer@apple.com>
36692
36693        [iOS] Define SYSTEM_VERSION_PREFIX consistently
36694        <http://webkit.org/b/130293>
36695        <rdar://problem/15926359>
36696
36697        Reviewed by Dan Bernstein.
36698
36699        * Configurations/Version.xcconfig:
36700        (SYSTEM_VERSION_PREFIX_iphoneos): Sync with
36701        Source/WebKit/mac/Version.xcconfig.
36702
367032014-03-14  Mark Rowe  <mrowe@apple.com>
36704
36705        Fix the production build.
36706
36707        Don't rely on USE_INTERNAL_SDK being set for the Production configuration since UseInternalSDK.xcconfig won't
36708        be at the expected relative path when working from installed source.
36709
36710        * Configurations/Base.xcconfig:
36711
367122014-03-14  Maciej Stachowiak  <mjs@apple.com>
36713
36714        Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
36715        https://bugs.webkit.org/show_bug.cgi?id=130276
36716        <rdar://problem/16266927>
36717
36718        Reviewed by Simon Fraser.
36719
36720        No new tests because no behavior changes.
36721
36722        * DerivedSources.make:
36723        * Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.cpp:
36724        * Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.h:
36725        * Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.idl:
36726        * Modules/encryptedmedia/MediaKeyMessageEvent.cpp:
36727        * Modules/encryptedmedia/MediaKeyMessageEvent.h:
36728        * Modules/encryptedmedia/MediaKeyMessageEvent.idl:
36729        * Modules/encryptedmedia/MediaKeyNeededEvent.cpp:
36730        * Modules/encryptedmedia/MediaKeyNeededEvent.h:
36731        * Modules/encryptedmedia/MediaKeyNeededEvent.idl:
36732        * Modules/encryptedmedia/MediaKeySession.idl:
36733        * Modules/encryptedmedia/MediaKeys.idl:
36734        * Modules/geolocation/NavigatorGeolocation.cpp:
36735        * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
36736        * Modules/indexeddb/IDBCallbacks.h:
36737        * Modules/indexeddb/IDBDatabaseException.cpp:
36738        * Modules/indexeddb/IDBDatabaseMetadata.h:
36739        * Modules/indexeddb/IDBEventDispatcher.cpp:
36740        * Modules/indexeddb/IDBEventDispatcher.h:
36741        * Modules/indexeddb/IDBFactory.cpp:
36742        * Modules/indexeddb/IDBFactory.h:
36743        * Modules/indexeddb/IDBFactoryBackendInterface.cpp:
36744        * Modules/indexeddb/IDBFactoryBackendInterface.h:
36745        * Modules/indexeddb/IDBHistograms.h:
36746        * Modules/indexeddb/IDBIndexMetadata.h:
36747        * Modules/indexeddb/IDBObjectStoreMetadata.h:
36748        * Modules/indexeddb/IDBRecordIdentifier.h:
36749        * Modules/indexeddb/IDBRequest.cpp:
36750        * Modules/indexeddb/IDBRequest.h:
36751        * Modules/indexeddb/IDBRequest.idl:
36752        * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:
36753        * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h:
36754        * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl:
36755        * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
36756        * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
36757        * Modules/mediacontrols/MediaControlsHost.cpp:
36758        * Modules/mediacontrols/MediaControlsHost.h:
36759        * Modules/mediacontrols/MediaControlsHost.idl:
36760        * Modules/mediacontrols/mediaControlsApple.css:
36761        * Modules/mediacontrols/mediaControlsiOS.css:
36762        * Modules/mediasource/AudioTrackMediaSource.h:
36763        * Modules/mediasource/AudioTrackMediaSource.idl:
36764        * Modules/mediasource/TextTrackMediaSource.h:
36765        * Modules/mediasource/TextTrackMediaSource.idl:
36766        * Modules/mediasource/VideoTrackMediaSource.h:
36767        * Modules/mediasource/VideoTrackMediaSource.idl:
36768        * Modules/mediastream/AllAudioCapabilities.h:
36769        * Modules/mediastream/AllAudioCapabilities.idl:
36770        * Modules/mediastream/AllVideoCapabilities.h:
36771        * Modules/mediastream/AllVideoCapabilities.idl:
36772        * Modules/mediastream/AudioStreamTrack.cpp:
36773        * Modules/mediastream/AudioStreamTrack.h:
36774        * Modules/mediastream/AudioStreamTrack.idl:
36775        * Modules/mediastream/CapabilityRange.cpp:
36776        * Modules/mediastream/CapabilityRange.h:
36777        * Modules/mediastream/CapabilityRange.idl:
36778        * Modules/mediastream/MediaSourceStates.cpp:
36779        * Modules/mediastream/MediaSourceStates.h:
36780        * Modules/mediastream/MediaSourceStates.idl:
36781        * Modules/mediastream/MediaStreamCapabilities.cpp:
36782        * Modules/mediastream/MediaStreamCapabilities.h:
36783        * Modules/mediastream/MediaStreamCapabilities.idl:
36784        * Modules/mediastream/MediaTrackConstraint.cpp:
36785        * Modules/mediastream/MediaTrackConstraint.h:
36786        * Modules/mediastream/MediaTrackConstraint.idl:
36787        * Modules/mediastream/MediaTrackConstraintSet.cpp:
36788        * Modules/mediastream/MediaTrackConstraintSet.h:
36789        * Modules/mediastream/MediaTrackConstraints.cpp:
36790        * Modules/mediastream/MediaTrackConstraints.h:
36791        * Modules/mediastream/MediaTrackConstraints.idl:
36792        * Modules/mediastream/NavigatorMediaStream.cpp:
36793        * Modules/mediastream/NavigatorUserMediaError.cpp:
36794        * Modules/mediastream/RTCConfiguration.idl:
36795        * Modules/mediastream/RTCIceServer.idl:
36796        * Modules/mediastream/RTCOfferAnswerOptions.cpp:
36797        * Modules/mediastream/RTCOfferAnswerOptions.h:
36798        * Modules/mediastream/VideoStreamTrack.cpp:
36799        * Modules/mediastream/VideoStreamTrack.h:
36800        * Modules/mediastream/VideoStreamTrack.idl:
36801        * Modules/networkinfo/NetworkInfo.cpp:
36802        * Modules/networkinfo/NetworkInfo.h:
36803        * Modules/networkinfo/NetworkInfoConnection.cpp:
36804        * Modules/networkinfo/NetworkInfoConnection.h:
36805        * Modules/networkinfo/NetworkInfoController.cpp:
36806        * Modules/notifications/DOMWindowNotifications.cpp:
36807        * Modules/notifications/DOMWindowNotifications.h:
36808        * Modules/notifications/DOMWindowNotifications.idl:
36809        * Modules/notifications/NotificationController.cpp:
36810        * Modules/notifications/NotificationController.h:
36811        * Modules/notifications/NotificationPermissionCallback.h:
36812        * Modules/notifications/NotificationPermissionCallback.idl:
36813        * Modules/notifications/WorkerGlobalScopeNotifications.cpp:
36814        * Modules/notifications/WorkerGlobalScopeNotifications.h:
36815        * Modules/notifications/WorkerGlobalScopeNotifications.idl:
36816        * Modules/plugins/PluginReplacement.h:
36817        * Modules/plugins/QuickTimePluginReplacement.cpp:
36818        * Modules/plugins/QuickTimePluginReplacement.css:
36819        * Modules/plugins/QuickTimePluginReplacement.h:
36820        * Modules/plugins/QuickTimePluginReplacement.idl:
36821        * Modules/quota/DOMWindowQuota.idl:
36822        * Modules/speech/DOMWindowSpeechSynthesis.h:
36823        * Modules/speech/DOMWindowSpeechSynthesis.idl:
36824        * Modules/speech/SpeechSynthesis.cpp:
36825        * Modules/speech/SpeechSynthesis.h:
36826        * Modules/speech/SpeechSynthesis.idl:
36827        * Modules/speech/SpeechSynthesisEvent.cpp:
36828        * Modules/speech/SpeechSynthesisEvent.h:
36829        * Modules/speech/SpeechSynthesisEvent.idl:
36830        * Modules/speech/SpeechSynthesisUtterance.cpp:
36831        * Modules/speech/SpeechSynthesisUtterance.h:
36832        * Modules/speech/SpeechSynthesisUtterance.idl:
36833        * Modules/speech/SpeechSynthesisVoice.cpp:
36834        * Modules/speech/SpeechSynthesisVoice.h:
36835        * Modules/speech/SpeechSynthesisVoice.idl:
36836        * Modules/webaudio/AudioBuffer.cpp:
36837        * Modules/webaudio/AudioBuffer.h:
36838        * Modules/webaudio/AudioBuffer.idl:
36839        * Modules/webaudio/AudioListener.cpp:
36840        * Modules/webaudio/AudioListener.h:
36841        * Modules/webaudio/AudioListener.idl:
36842        * Modules/webaudio/AudioParam.h:
36843        * Modules/webaudio/AudioParam.idl:
36844        * Modules/webaudio/AudioParamTimeline.h:
36845        * Modules/webaudio/AudioScheduledSourceNode.h:
36846        * Modules/webaudio/ChannelMergerNode.cpp:
36847        * Modules/webaudio/ChannelMergerNode.h:
36848        * Modules/webaudio/ChannelMergerNode.idl:
36849        * Modules/webaudio/MediaStreamAudioSource.cpp:
36850        * Modules/webaudio/MediaStreamAudioSource.h:
36851        * Modules/webaudio/PeriodicWave.cpp:
36852        * Modules/webaudio/PeriodicWave.h:
36853        * Modules/webdatabase/ChangeVersionWrapper.cpp:
36854        * Modules/webdatabase/ChangeVersionWrapper.h:
36855        * Modules/webdatabase/DOMWindowWebDatabase.cpp:
36856        * Modules/webdatabase/DOMWindowWebDatabase.h:
36857        * Modules/webdatabase/DOMWindowWebDatabase.idl:
36858        * Modules/webdatabase/Database.cpp:
36859        * Modules/webdatabase/Database.h:
36860        * Modules/webdatabase/Database.idl:
36861        * Modules/webdatabase/DatabaseAuthorizer.cpp:
36862        * Modules/webdatabase/DatabaseAuthorizer.h:
36863        * Modules/webdatabase/DatabaseBackendBase.cpp:
36864        * Modules/webdatabase/DatabaseBackendBase.h:
36865        * Modules/webdatabase/DatabaseCallback.idl:
36866        * Modules/webdatabase/DatabaseContext.cpp:
36867        * Modules/webdatabase/DatabaseContext.h:
36868        * Modules/webdatabase/DatabaseDetails.h:
36869        * Modules/webdatabase/DatabaseTask.cpp:
36870        * Modules/webdatabase/DatabaseTask.h:
36871        * Modules/webdatabase/DatabaseThread.cpp:
36872        * Modules/webdatabase/DatabaseThread.h:
36873        * Modules/webdatabase/DatabaseTracker.cpp:
36874        * Modules/webdatabase/DatabaseTracker.h:
36875        * Modules/webdatabase/SQLCallbackWrapper.h:
36876        * Modules/webdatabase/SQLError.h:
36877        * Modules/webdatabase/SQLError.idl:
36878        * Modules/webdatabase/SQLException.cpp:
36879        * Modules/webdatabase/SQLResultSet.cpp:
36880        * Modules/webdatabase/SQLResultSet.h:
36881        * Modules/webdatabase/SQLResultSet.idl:
36882        * Modules/webdatabase/SQLResultSetRowList.cpp:
36883        * Modules/webdatabase/SQLResultSetRowList.h:
36884        * Modules/webdatabase/SQLResultSetRowList.idl:
36885        * Modules/webdatabase/SQLStatement.cpp:
36886        * Modules/webdatabase/SQLStatement.h:
36887        * Modules/webdatabase/SQLStatementBackend.cpp:
36888        * Modules/webdatabase/SQLStatementBackend.h:
36889        * Modules/webdatabase/SQLStatementCallback.h:
36890        * Modules/webdatabase/SQLStatementCallback.idl:
36891        * Modules/webdatabase/SQLStatementErrorCallback.h:
36892        * Modules/webdatabase/SQLStatementErrorCallback.idl:
36893        * Modules/webdatabase/SQLStatementSync.cpp:
36894        * Modules/webdatabase/SQLTransaction.cpp:
36895        * Modules/webdatabase/SQLTransaction.h:
36896        * Modules/webdatabase/SQLTransaction.idl:
36897        * Modules/webdatabase/SQLTransactionBackend.cpp:
36898        * Modules/webdatabase/SQLTransactionBackend.h:
36899        * Modules/webdatabase/SQLTransactionCallback.h:
36900        * Modules/webdatabase/SQLTransactionCallback.idl:
36901        * Modules/webdatabase/SQLTransactionErrorCallback.h:
36902        * Modules/webdatabase/SQLTransactionErrorCallback.idl:
36903        * Modules/webdatabase/WorkerGlobalScopeWebDatabase.cpp:
36904        * Modules/webdatabase/WorkerGlobalScopeWebDatabase.h:
36905        * Modules/webdatabase/WorkerGlobalScopeWebDatabase.idl:
36906        * Resources/deleteButton.tiff:
36907        * Resources/deleteButtonPressed.tiff:
36908        * WebCore.vcxproj/MigrateScripts:
36909        * WebCorePrefix.cpp:
36910        * accessibility/AXObjectCache.cpp:
36911        * accessibility/AXObjectCache.h:
36912        * accessibility/AccessibilityARIAGrid.cpp:
36913        * accessibility/AccessibilityARIAGrid.h:
36914        * accessibility/AccessibilityARIAGridCell.cpp:
36915        * accessibility/AccessibilityARIAGridCell.h:
36916        * accessibility/AccessibilityARIAGridRow.cpp:
36917        * accessibility/AccessibilityARIAGridRow.h:
36918        * accessibility/AccessibilityImageMapLink.cpp:
36919        * accessibility/AccessibilityImageMapLink.h:
36920        * accessibility/AccessibilityList.cpp:
36921        * accessibility/AccessibilityList.h:
36922        * accessibility/AccessibilityListBox.cpp:
36923        * accessibility/AccessibilityListBox.h:
36924        * accessibility/AccessibilityListBoxOption.cpp:
36925        * accessibility/AccessibilityListBoxOption.h:
36926        * accessibility/AccessibilityMediaControls.cpp:
36927        * accessibility/AccessibilityMediaControls.h:
36928        * accessibility/AccessibilityNodeObject.cpp:
36929        * accessibility/AccessibilityNodeObject.h:
36930        * accessibility/AccessibilityObject.cpp:
36931        * accessibility/AccessibilityObject.h:
36932        * accessibility/AccessibilityRenderObject.cpp:
36933        * accessibility/AccessibilityRenderObject.h:
36934        * accessibility/AccessibilitySVGRoot.cpp:
36935        * accessibility/AccessibilitySVGRoot.h:
36936        * accessibility/AccessibilityScrollbar.cpp:
36937        * accessibility/AccessibilityScrollbar.h:
36938        * accessibility/AccessibilitySlider.cpp:
36939        * accessibility/AccessibilitySlider.h:
36940        * accessibility/AccessibilityTable.cpp:
36941        * accessibility/AccessibilityTable.h:
36942        * accessibility/AccessibilityTableCell.cpp:
36943        * accessibility/AccessibilityTableCell.h:
36944        * accessibility/AccessibilityTableColumn.cpp:
36945        * accessibility/AccessibilityTableColumn.h:
36946        * accessibility/AccessibilityTableHeaderContainer.cpp:
36947        * accessibility/AccessibilityTableHeaderContainer.h:
36948        * accessibility/AccessibilityTableRow.cpp:
36949        * accessibility/AccessibilityTableRow.h:
36950        * accessibility/ios/AXObjectCacheIOS.mm:
36951        * accessibility/ios/AccessibilityObjectIOS.mm:
36952        * accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
36953        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
36954        * accessibility/mac/AXObjectCacheMac.mm:
36955        * accessibility/mac/AccessibilityObjectMac.mm:
36956        * accessibility/mac/WebAccessibilityObjectWrapperBase.h:
36957        * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
36958        * accessibility/mac/WebAccessibilityObjectWrapperMac.h:
36959        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
36960        * bindings/gobject/WebKitDOMEventTarget.cpp:
36961        * bindings/gobject/WebKitDOMHTMLPrivate.cpp:
36962        * bindings/gobject/WebKitDOMHTMLPrivate.h:
36963        * bindings/js/Dictionary.cpp:
36964        * bindings/js/GCController.cpp:
36965        * bindings/js/GCController.h:
36966        * bindings/js/JSAttrCustom.cpp:
36967        * bindings/js/JSAudioTrackCustom.cpp:
36968        * bindings/js/JSAudioTrackListCustom.cpp:
36969        * bindings/js/JSCSSRuleCustom.cpp:
36970        * bindings/js/JSCSSRuleCustom.h:
36971        * bindings/js/JSCSSRuleListCustom.cpp:
36972        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
36973        * bindings/js/JSCSSValueCustom.cpp:
36974        * bindings/js/JSCallbackData.cpp:
36975        * bindings/js/JSCallbackData.h:
36976        * bindings/js/JSCanvasRenderingContextCustom.cpp:
36977        * bindings/js/JSClipboardCustom.cpp:
36978        * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
36979        * bindings/js/JSCustomXPathNSResolver.cpp:
36980        * bindings/js/JSCustomXPathNSResolver.h:
36981        * bindings/js/JSDOMGlobalObject.cpp:
36982        * bindings/js/JSDOMGlobalObject.h:
36983        * bindings/js/JSDOMWindowShell.cpp:
36984        * bindings/js/JSDOMWindowShell.h:
36985        * bindings/js/JSElementCustom.cpp:
36986        * bindings/js/JSEventCustom.cpp:
36987        * bindings/js/JSHTMLAppletElementCustom.cpp:
36988        * bindings/js/JSHTMLCanvasElementCustom.cpp:
36989        * bindings/js/JSHTMLDocumentCustom.cpp:
36990        * bindings/js/JSHTMLElementCustom.cpp:
36991        * bindings/js/JSHTMLEmbedElementCustom.cpp:
36992        * bindings/js/JSHTMLFormElementCustom.cpp:
36993        * bindings/js/JSHTMLFrameElementCustom.cpp:
36994        * bindings/js/JSHTMLFrameSetElementCustom.cpp:
36995        * bindings/js/JSHTMLObjectElementCustom.cpp:
36996        * bindings/js/JSHTMLSelectElementCustom.h:
36997        * bindings/js/JSHistoryCustom.cpp:
36998        * bindings/js/JSMediaListCustom.h:
36999        * bindings/js/JSMediaSourceStatesCustom.cpp:
37000        * bindings/js/JSMediaStreamCapabilitiesCustom.cpp:
37001        * bindings/js/JSNamedNodeMapCustom.cpp:
37002        * bindings/js/JSNodeCustom.cpp:
37003        * bindings/js/JSNodeCustom.h:
37004        * bindings/js/JSNodeFilterCustom.cpp:
37005        * bindings/js/JSNodeListCustom.cpp:
37006        * bindings/js/JSSQLResultSetRowListCustom.cpp:
37007        * bindings/js/JSSQLTransactionCustom.cpp:
37008        * bindings/js/JSSQLTransactionSyncCustom.cpp:
37009        * bindings/js/JSSVGElementInstanceCustom.cpp:
37010        * bindings/js/JSStyleSheetCustom.cpp:
37011        * bindings/js/JSStyleSheetCustom.h:
37012        * bindings/js/JSStyleSheetListCustom.cpp:
37013        * bindings/js/JSTextTrackCueCustom.cpp:
37014        * bindings/js/JSTextTrackCustom.cpp:
37015        * bindings/js/JSTextTrackListCustom.cpp:
37016        * bindings/js/JSTouchCustom.cpp:
37017        * bindings/js/JSTouchListCustom.cpp:
37018        * bindings/js/JSTrackCustom.cpp:
37019        * bindings/js/JSTrackCustom.h:
37020        * bindings/js/JSTrackEventCustom.cpp:
37021        * bindings/js/JSVideoTrackCustom.cpp:
37022        * bindings/js/JSVideoTrackListCustom.cpp:
37023        * bindings/js/JSWebGLRenderingContextCustom.cpp:
37024        * bindings/js/JSWebKitPointCustom.cpp:
37025        * bindings/js/JSWorkerGlobalScopeBase.cpp:
37026        * bindings/js/JSWorkerGlobalScopeBase.h:
37027        * bindings/js/JSXMLHttpRequestCustom.cpp:
37028        * bindings/js/JSXSLTProcessorCustom.cpp:
37029        * bindings/js/ScriptControllerMac.mm:
37030        * bindings/js/ScriptProfile.cpp:
37031        * bindings/js/ScriptProfile.h:
37032        * bindings/js/ScriptProfileNode.h:
37033        * bindings/js/ScriptProfiler.cpp:
37034        * bindings/js/ScriptProfiler.h:
37035        * bindings/js/SerializedScriptValue.cpp:
37036        * bindings/js/SerializedScriptValue.h:
37037        * bindings/js/WorkerScriptController.cpp:
37038        * bindings/js/WorkerScriptController.h:
37039        * bindings/objc/DOM.h:
37040        * bindings/objc/DOM.mm:
37041        * bindings/objc/DOMAbstractView.mm:
37042        * bindings/objc/DOMAbstractViewFrame.h:
37043        * bindings/objc/DOMCSS.h:
37044        * bindings/objc/DOMCSS.mm:
37045        * bindings/objc/DOMCore.h:
37046        * bindings/objc/DOMCustomXPathNSResolver.h:
37047        * bindings/objc/DOMCustomXPathNSResolver.mm:
37048        * bindings/objc/DOMEventException.h:
37049        * bindings/objc/DOMEvents.h:
37050        * bindings/objc/DOMEvents.mm:
37051        * bindings/objc/DOMException.h:
37052        * bindings/objc/DOMExtensions.h:
37053        * bindings/objc/DOMHTML.h:
37054        * bindings/objc/DOMHTML.mm:
37055        * bindings/objc/DOMInternal.h:
37056        * bindings/objc/DOMInternal.mm:
37057        * bindings/objc/DOMObject.h:
37058        * bindings/objc/DOMObject.mm:
37059        * bindings/objc/DOMPrivate.h:
37060        * bindings/objc/DOMRangeException.h:
37061        * bindings/objc/DOMRanges.h:
37062        * bindings/objc/DOMStylesheets.h:
37063        * bindings/objc/DOMTraversal.h:
37064        * bindings/objc/DOMUIKitExtensions.h:
37065        * bindings/objc/DOMUIKitExtensions.mm:
37066        * bindings/objc/DOMUtility.mm:
37067        * bindings/objc/DOMViews.h:
37068        * bindings/objc/DOMXPath.h:
37069        * bindings/objc/DOMXPath.mm:
37070        * bindings/objc/DOMXPathException.h:
37071        * bindings/objc/ExceptionHandlers.h:
37072        * bindings/objc/ExceptionHandlers.mm:
37073        * bindings/objc/ObjCEventListener.h:
37074        * bindings/objc/ObjCEventListener.mm:
37075        * bindings/objc/ObjCNodeFilterCondition.h:
37076        * bindings/objc/ObjCNodeFilterCondition.mm:
37077        * bindings/objc/PublicDOMInterfaces.h:
37078        * bindings/objc/WebScriptObject.mm:
37079        * bindings/scripts/CodeGeneratorObjC.pm:
37080        * bindings/scripts/InFilesCompiler.pm:
37081        (license):
37082        * bindings/scripts/InFilesParser.pm:
37083        * bindings/scripts/generate-bindings.pl:
37084        * bindings/scripts/test/ObjC/DOMFloat64Array.h:
37085        * bindings/scripts/test/ObjC/DOMFloat64Array.mm:
37086        * bindings/scripts/test/ObjC/DOMFloat64ArrayInternal.h:
37087        * bindings/scripts/test/ObjC/DOMTestActiveDOMObject.h:
37088        * bindings/scripts/test/ObjC/DOMTestActiveDOMObject.mm:
37089        * bindings/scripts/test/ObjC/DOMTestActiveDOMObjectInternal.h:
37090        * bindings/scripts/test/ObjC/DOMTestCallback.h:
37091        * bindings/scripts/test/ObjC/DOMTestCallback.mm:
37092        * bindings/scripts/test/ObjC/DOMTestCallbackInternal.h:
37093        * bindings/scripts/test/ObjC/DOMTestCustomNamedGetter.h:
37094        * bindings/scripts/test/ObjC/DOMTestCustomNamedGetter.mm:
37095        * bindings/scripts/test/ObjC/DOMTestCustomNamedGetterInternal.h:
37096        * bindings/scripts/test/ObjC/DOMTestEventConstructor.h:
37097        * bindings/scripts/test/ObjC/DOMTestEventConstructor.mm:
37098        * bindings/scripts/test/ObjC/DOMTestEventConstructorInternal.h:
37099        * bindings/scripts/test/ObjC/DOMTestEventTarget.h:
37100        * bindings/scripts/test/ObjC/DOMTestEventTarget.mm:
37101        * bindings/scripts/test/ObjC/DOMTestEventTargetInternal.h:
37102        * bindings/scripts/test/ObjC/DOMTestException.h:
37103        * bindings/scripts/test/ObjC/DOMTestException.mm:
37104        * bindings/scripts/test/ObjC/DOMTestExceptionInternal.h:
37105        * bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.h:
37106        * bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.mm:
37107        * bindings/scripts/test/ObjC/DOMTestGenerateIsReachableInternal.h:
37108        * bindings/scripts/test/ObjC/DOMTestInterface.h:
37109        * bindings/scripts/test/ObjC/DOMTestInterface.mm:
37110        * bindings/scripts/test/ObjC/DOMTestInterfaceInternal.h:
37111        * bindings/scripts/test/ObjC/DOMTestMediaQueryListListener.h:
37112        * bindings/scripts/test/ObjC/DOMTestMediaQueryListListener.mm:
37113        * bindings/scripts/test/ObjC/DOMTestMediaQueryListListenerInternal.h:
37114        * bindings/scripts/test/ObjC/DOMTestNamedConstructor.h:
37115        * bindings/scripts/test/ObjC/DOMTestNamedConstructor.mm:
37116        * bindings/scripts/test/ObjC/DOMTestNamedConstructorInternal.h:
37117        * bindings/scripts/test/ObjC/DOMTestNode.h:
37118        * bindings/scripts/test/ObjC/DOMTestNode.mm:
37119        * bindings/scripts/test/ObjC/DOMTestNodeInternal.h:
37120        * bindings/scripts/test/ObjC/DOMTestObj.h:
37121        * bindings/scripts/test/ObjC/DOMTestObj.mm:
37122        * bindings/scripts/test/ObjC/DOMTestObjInternal.h:
37123        * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.h:
37124        * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.mm:
37125        * bindings/scripts/test/ObjC/DOMTestOverloadedConstructorsInternal.h:
37126        * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.h:
37127        * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.mm:
37128        * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterfaceInternal.h:
37129        * bindings/scripts/test/ObjC/DOMTestTypedefs.h:
37130        * bindings/scripts/test/ObjC/DOMTestTypedefs.mm:
37131        * bindings/scripts/test/ObjC/DOMTestTypedefsInternal.h:
37132        * bindings/scripts/test/ObjC/DOMattribute.h:
37133        * bindings/scripts/test/ObjC/DOMattribute.mm:
37134        * bindings/scripts/test/ObjC/DOMattributeInternal.h:
37135        * bindings/scripts/test/ObjC/DOMreadonly.h:
37136        * bindings/scripts/test/ObjC/DOMreadonly.mm:
37137        * bindings/scripts/test/ObjC/DOMreadonlyInternal.h:
37138        * bindings/scripts/test/TestCallback.idl:
37139        * bindings/scripts/test/TestCustomNamedGetter.idl:
37140        * bindings/scripts/test/TestDomainSecurity.idl:
37141        * bindings/scripts/test/TestEventConstructor.idl:
37142        * bindings/scripts/test/TestEventTarget.idl:
37143        * bindings/scripts/test/TestException.idl:
37144        * bindings/scripts/test/TestImplements.idl:
37145        * bindings/scripts/test/TestInterface.idl:
37146        * bindings/scripts/test/TestMediaQueryListListener.idl:
37147        * bindings/scripts/test/TestNamedConstructor.idl:
37148        * bindings/scripts/test/TestObj.idl:
37149        * bindings/scripts/test/TestOverloadedConstructors.idl:
37150        * bindings/scripts/test/TestSupplemental.idl:
37151        * bridge/Bridge.h:
37152        * bridge/IdentifierRep.cpp:
37153        * bridge/IdentifierRep.h:
37154        * bridge/NP_jsobject.cpp:
37155        * bridge/NP_jsobject.h:
37156        * bridge/c/CRuntimeObject.cpp:
37157        * bridge/c/CRuntimeObject.h:
37158        * bridge/c/c_class.cpp:
37159        * bridge/c/c_class.h:
37160        * bridge/c/c_instance.cpp:
37161        * bridge/c/c_instance.h:
37162        * bridge/c/c_runtime.cpp:
37163        * bridge/c/c_runtime.h:
37164        * bridge/c/c_utility.cpp:
37165        * bridge/c/c_utility.h:
37166        * bridge/jsc/BridgeJSC.cpp:
37167        * bridge/jsc/BridgeJSC.h:
37168        * bridge/npruntime.cpp:
37169        * bridge/npruntime_impl.h:
37170        * bridge/npruntime_priv.h:
37171        * bridge/objc/ObjCRuntimeObject.h:
37172        * bridge/objc/ObjCRuntimeObject.mm:
37173        * bridge/objc/WebScriptObject.h:
37174        * bridge/objc/objc_class.h:
37175        * bridge/objc/objc_class.mm:
37176        * bridge/objc/objc_header.h:
37177        * bridge/objc/objc_instance.h:
37178        * bridge/objc/objc_instance.mm:
37179        * bridge/objc/objc_runtime.h:
37180        * bridge/objc/objc_runtime.mm:
37181        * bridge/objc/objc_utility.h:
37182        * bridge/objc/objc_utility.mm:
37183        * bridge/runtime_array.cpp:
37184        * bridge/runtime_array.h:
37185        * bridge/runtime_method.cpp:
37186        * bridge/runtime_method.h:
37187        * bridge/runtime_object.cpp:
37188        * bridge/runtime_object.h:
37189        * bridge/runtime_root.cpp:
37190        * bridge/runtime_root.h:
37191        * bridge/testbindings.mm:
37192        * css/CSSAllInOne.cpp:
37193        * css/CSSAspectRatioValue.cpp:
37194        * css/CSSAspectRatioValue.h:
37195        * css/CSSBorderImageSliceValue.cpp:
37196        * css/CSSBorderImageSliceValue.h:
37197        * css/CSSCanvasValue.cpp:
37198        * css/CSSCanvasValue.h:
37199        * css/CSSCrossfadeValue.cpp:
37200        * css/CSSCrossfadeValue.h:
37201        * css/CSSFontFace.cpp:
37202        * css/CSSFontFace.h:
37203        * css/CSSFontFaceSource.cpp:
37204        * css/CSSFontFaceSource.h:
37205        * css/CSSFontFaceSrcValue.cpp:
37206        * css/CSSFontFaceSrcValue.h:
37207        * css/CSSFontFeatureValue.cpp:
37208        * css/CSSFontFeatureValue.h:
37209        * css/CSSFontSelector.cpp:
37210        * css/CSSFontSelector.h:
37211        * css/CSSFontValue.cpp:
37212        * css/CSSGradientValue.cpp:
37213        * css/CSSGradientValue.h:
37214        * css/CSSImageGeneratorValue.cpp:
37215        * css/CSSImageGeneratorValue.h:
37216        * css/CSSMediaRule.cpp:
37217        * css/CSSProperty.cpp:
37218        * css/CSSProperty.h:
37219        * css/CSSReflectValue.cpp:
37220        * css/CSSReflectValue.h:
37221        * css/CSSReflectionDirection.h:
37222        * css/CSSRuleList.cpp:
37223        * css/CSSRuleList.h:
37224        * css/CSSRuleList.idl:
37225        * css/CSSSegmentedFontFace.cpp:
37226        * css/CSSSegmentedFontFace.h:
37227        * css/CSSShadowValue.cpp:
37228        * css/CSSTimingFunctionValue.cpp:
37229        * css/CSSTimingFunctionValue.h:
37230        * css/CSSUnicodeRangeValue.cpp:
37231        * css/CSSUnicodeRangeValue.h:
37232        * css/CSSUnknownRule.idl:
37233        * css/CSSValue.cpp:
37234        * css/CSSValueList.idl:
37235        * css/MediaAllInOne.cpp:
37236        * css/MediaFeatureNames.cpp:
37237        * css/MediaList.idl:
37238        * css/MediaQuery.cpp:
37239        * css/MediaQuery.h:
37240        * css/MediaQueryEvaluator.cpp:
37241        * css/MediaQueryEvaluator.h:
37242        * css/MediaQueryExp.cpp:
37243        * css/MediaQueryExp.h:
37244        * css/Pair.h:
37245        * css/PropertySetCSSStyleDeclaration.h:
37246        * css/RGBColor.cpp:
37247        * css/RGBColor.h:
37248        * css/SVGCSSParser.cpp:
37249        * css/SVGCSSStyleSelector.cpp:
37250        * css/StyleInvalidationAnalysis.cpp:
37251        * css/StyleInvalidationAnalysis.h:
37252        * css/StyleMedia.cpp:
37253        * css/StyleMedia.h:
37254        * css/StyleMedia.idl:
37255        * css/StyleSheet.cpp:
37256        * css/WebKitCSSFilterValue.cpp:
37257        * css/WebKitCSSFilterValue.h:
37258        * css/WebKitCSSFilterValue.idl:
37259        * css/WebKitCSSKeyframeRule.cpp:
37260        * css/WebKitCSSKeyframeRule.h:
37261        * css/WebKitCSSKeyframeRule.idl:
37262        * css/WebKitCSSKeyframesRule.cpp:
37263        * css/WebKitCSSKeyframesRule.h:
37264        * css/WebKitCSSKeyframesRule.idl:
37265        * css/WebKitCSSTransformValue.cpp:
37266        * css/WebKitCSSTransformValue.h:
37267        * css/WebKitCSSTransformValue.idl:
37268        * css/make-css-file-arrays.pl:
37269        * css/mediaControls.css:
37270        * css/mediaControlsEfl.css:
37271        * css/mediaControlsEflFullscreen.css:
37272        * css/mediaControlsGtk.css:
37273        * css/mediaControlsiOS.css:
37274        * css/svg.css:
37275        * dom/ActiveDOMObject.cpp:
37276        * dom/ActiveDOMObject.h:
37277        * dom/BeforeLoadEvent.h:
37278        * dom/BeforeLoadEvent.idl:
37279        * dom/BeforeTextInsertedEvent.cpp:
37280        * dom/BeforeTextInsertedEvent.h:
37281        * dom/BeforeUnloadEvent.cpp:
37282        * dom/BeforeUnloadEvent.h:
37283        * dom/BeforeUnloadEvent.idl:
37284        * dom/ClassNodeList.cpp:
37285        * dom/ClassNodeList.h:
37286        * dom/ClientRect.cpp:
37287        * dom/ClientRect.h:
37288        * dom/ClientRect.idl:
37289        * dom/ClientRectList.cpp:
37290        * dom/ClientRectList.h:
37291        * dom/ClientRectList.idl:
37292        * dom/Clipboard.cpp:
37293        * dom/Clipboard.idl:
37294        * dom/ClipboardAccessPolicy.h:
37295        * dom/ClipboardMac.mm:
37296        * dom/CompositionEvent.cpp:
37297        * dom/CompositionEvent.h:
37298        * dom/CompositionEvent.idl:
37299        * dom/ContextDestructionObserver.cpp:
37300        * dom/ContextDestructionObserver.h:
37301        * dom/CurrentScriptIncrementer.h:
37302        * dom/CustomEvent.cpp:
37303        * dom/CustomEvent.h:
37304        * dom/CustomEvent.idl:
37305        * dom/DOMCoreException.cpp:
37306        * dom/DOMCoreException.h:
37307        * dom/DOMCoreException.idl:
37308        * dom/DOMError.idl:
37309        * dom/DeviceMotionEvent.cpp:
37310        * dom/DeviceMotionEvent.h:
37311        * dom/DeviceMotionEvent.idl:
37312        * dom/DocumentEventQueue.cpp:
37313        * dom/DocumentEventQueue.h:
37314        * dom/DocumentMarker.h:
37315        * dom/DocumentParser.h:
37316        * dom/DocumentSharedObjectPool.cpp:
37317        * dom/DocumentSharedObjectPool.h:
37318        * dom/Entity.idl:
37319        * dom/EventContext.cpp:
37320        * dom/EventContext.h:
37321        * dom/EventException.cpp:
37322        * dom/EventException.h:
37323        * dom/EventException.idl:
37324        * dom/EventListener.idl:
37325        * dom/EventListenerMap.cpp:
37326        * dom/EventListenerMap.h:
37327        * dom/EventNames.cpp:
37328        * dom/EventQueue.h:
37329        * dom/EventTarget.cpp:
37330        * dom/EventTarget.h:
37331        * dom/ExceptionBase.cpp:
37332        * dom/ExceptionBase.h:
37333        * dom/GenericEventQueue.cpp:
37334        * dom/GenericEventQueue.h:
37335        * dom/KeyboardEvent.idl:
37336        * dom/MessageChannel.cpp:
37337        * dom/MessageChannel.h:
37338        * dom/MessageChannel.idl:
37339        * dom/MessageEvent.cpp:
37340        * dom/MessageEvent.h:
37341        * dom/MessageEvent.idl:
37342        * dom/MessagePort.cpp:
37343        * dom/MessagePort.h:
37344        * dom/MessagePort.idl:
37345        * dom/MouseRelatedEvent.h:
37346        * dom/MutationEvent.idl:
37347        * dom/Notation.idl:
37348        * dom/OverflowEvent.cpp:
37349        * dom/OverflowEvent.h:
37350        * dom/OverflowEvent.idl:
37351        * dom/PopStateEvent.cpp:
37352        * dom/PopStateEvent.h:
37353        * dom/PopStateEvent.idl:
37354        * dom/Position.cpp:
37355        * dom/Position.h:
37356        * dom/ProcessingInstruction.idl:
37357        * dom/ProgressEvent.cpp:
37358        * dom/ProgressEvent.h:
37359        * dom/ProgressEvent.idl:
37360        * dom/Range.idl:
37361        * dom/RangeException.cpp:
37362        * dom/RangeException.h:
37363        * dom/ScriptExecutionContext.cpp:
37364        * dom/ScriptExecutionContext.h:
37365        * dom/SecurityContext.cpp:
37366        * dom/SecurityContext.h:
37367        * dom/StaticNodeList.cpp:
37368        * dom/StaticNodeList.h:
37369        * dom/Text.idl:
37370        * dom/TextEvent.cpp:
37371        * dom/TextEvent.h:
37372        * dom/TextEvent.idl:
37373        * dom/Touch.cpp:
37374        * dom/Touch.h:
37375        * dom/Touch.idl:
37376        * dom/TouchEvent.cpp:
37377        * dom/TouchEvent.h:
37378        * dom/TouchEvent.idl:
37379        * dom/TouchList.cpp:
37380        * dom/TouchList.h:
37381        * dom/TouchList.idl:
37382        * dom/TransitionEvent.cpp:
37383        * dom/TransitionEvent.h:
37384        * dom/TransitionEvent.idl:
37385        * dom/TreeWalker.idl:
37386        * dom/UIEvent.idl:
37387        * dom/UIEventWithKeyState.cpp:
37388        * dom/WebKitAnimationEvent.cpp:
37389        * dom/WebKitAnimationEvent.h:
37390        * dom/WebKitAnimationEvent.idl:
37391        * dom/WebKitTransitionEvent.cpp:
37392        * dom/WebKitTransitionEvent.h:
37393        * dom/WebKitTransitionEvent.idl:
37394        * dom/make_dom_exceptions.pl:
37395        * dom/make_event_factory.pl:
37396        * dom/make_names.pl:
37397        (printLicenseHeader):
37398        * editing/AlternativeTextController.cpp:
37399        * editing/AlternativeTextController.h:
37400        * editing/AppendNodeCommand.cpp:
37401        * editing/AppendNodeCommand.h:
37402        * editing/ApplyStyleCommand.cpp:
37403        * editing/ApplyStyleCommand.h:
37404        * editing/BreakBlockquoteCommand.cpp:
37405        * editing/BreakBlockquoteCommand.h:
37406        * editing/CompositeEditCommand.cpp:
37407        * editing/CompositeEditCommand.h:
37408        * editing/CreateLinkCommand.cpp:
37409        * editing/CreateLinkCommand.h:
37410        * editing/DeleteButton.cpp:
37411        * editing/DeleteButton.h:
37412        * editing/DeleteButtonController.cpp:
37413        * editing/DeleteButtonController.h:
37414        * editing/DeleteFromTextNodeCommand.cpp:
37415        * editing/DeleteFromTextNodeCommand.h:
37416        * editing/DeleteSelectionCommand.cpp:
37417        * editing/DeleteSelectionCommand.h:
37418        * editing/EditAction.h:
37419        * editing/EditCommand.cpp:
37420        * editing/EditCommand.h:
37421        * editing/EditingBoundary.h:
37422        * editing/EditingStyle.cpp:
37423        * editing/Editor.cpp:
37424        * editing/Editor.h:
37425        * editing/EditorCommand.cpp:
37426        * editing/EditorDeleteAction.h:
37427        * editing/EditorInsertAction.h:
37428        * editing/FormatBlockCommand.cpp:
37429        * editing/FormatBlockCommand.h:
37430        * editing/FrameSelection.cpp:
37431        * editing/FrameSelection.h:
37432        * editing/HTMLInterchange.cpp:
37433        * editing/HTMLInterchange.h:
37434        * editing/IndentOutdentCommand.cpp:
37435        * editing/IndentOutdentCommand.h:
37436        * editing/InsertIntoTextNodeCommand.cpp:
37437        * editing/InsertIntoTextNodeCommand.h:
37438        * editing/InsertLineBreakCommand.cpp:
37439        * editing/InsertLineBreakCommand.h:
37440        * editing/InsertListCommand.cpp:
37441        * editing/InsertListCommand.h:
37442        * editing/InsertNodeBeforeCommand.cpp:
37443        * editing/InsertNodeBeforeCommand.h:
37444        * editing/InsertParagraphSeparatorCommand.cpp:
37445        * editing/InsertParagraphSeparatorCommand.h:
37446        * editing/InsertTextCommand.cpp:
37447        * editing/InsertTextCommand.h:
37448        * editing/MarkupAccumulator.h:
37449        * editing/MergeIdenticalElementsCommand.cpp:
37450        * editing/MergeIdenticalElementsCommand.h:
37451        * editing/ModifySelectionListLevel.cpp:
37452        * editing/ModifySelectionListLevel.h:
37453        * editing/MoveSelectionCommand.cpp:
37454        * editing/MoveSelectionCommand.h:
37455        * editing/RemoveCSSPropertyCommand.cpp:
37456        * editing/RemoveCSSPropertyCommand.h:
37457        * editing/RemoveFormatCommand.cpp:
37458        * editing/RemoveFormatCommand.h:
37459        * editing/RemoveNodeCommand.cpp:
37460        * editing/RemoveNodeCommand.h:
37461        * editing/RemoveNodePreservingChildrenCommand.cpp:
37462        * editing/RemoveNodePreservingChildrenCommand.h:
37463        * editing/ReplaceSelectionCommand.cpp:
37464        * editing/ReplaceSelectionCommand.h:
37465        * editing/SetNodeAttributeCommand.cpp:
37466        * editing/SetNodeAttributeCommand.h:
37467        * editing/SetSelectionCommand.cpp:
37468        * editing/SetSelectionCommand.h:
37469        * editing/SimplifyMarkupCommand.cpp:
37470        * editing/SimplifyMarkupCommand.h:
37471        * editing/SmartReplace.cpp:
37472        * editing/SmartReplace.h:
37473        * editing/SmartReplaceCF.cpp:
37474        * editing/SpellChecker.cpp:
37475        * editing/SpellChecker.h:
37476        * editing/SpellingCorrectionCommand.cpp:
37477        * editing/SpellingCorrectionCommand.h:
37478        * editing/SplitElementCommand.cpp:
37479        * editing/SplitElementCommand.h:
37480        * editing/SplitTextNodeCommand.cpp:
37481        * editing/SplitTextNodeCommand.h:
37482        * editing/SplitTextNodeContainingElementCommand.cpp:
37483        * editing/SplitTextNodeContainingElementCommand.h:
37484        * editing/TextAffinity.h:
37485        * editing/TextCheckingHelper.cpp:
37486        * editing/TextGranularity.h:
37487        * editing/TextIterator.cpp:
37488        * editing/TextIterator.h:
37489        * editing/TextIteratorBehavior.h:
37490        * editing/TypingCommand.cpp:
37491        * editing/TypingCommand.h:
37492        * editing/UnlinkCommand.cpp:
37493        * editing/UnlinkCommand.h:
37494        * editing/VisiblePosition.cpp:
37495        * editing/VisiblePosition.h:
37496        * editing/VisibleSelection.cpp:
37497        * editing/VisibleSelection.h:
37498        * editing/VisibleUnits.cpp:
37499        * editing/VisibleUnits.h:
37500        * editing/WrapContentsInDummySpanCommand.cpp:
37501        * editing/WrapContentsInDummySpanCommand.h:
37502        * editing/WritingDirection.h:
37503        * editing/efl/EditorEfl.cpp:
37504        * editing/htmlediting.cpp:
37505        * editing/htmlediting.h:
37506        * editing/mac/EditorMac.mm:
37507        * editing/mac/FrameSelectionMac.mm:
37508        * editing/markup.cpp:
37509        * editing/markup.h:
37510        * extract-localizable-strings.pl:
37511        * fileapi/FileException.cpp:
37512        * history/BackForwardClient.h:
37513        * history/BackForwardList.cpp:
37514        * history/BackForwardList.h:
37515        * history/CachedFrame.cpp:
37516        * history/CachedFrame.h:
37517        * history/CachedFramePlatformData.h:
37518        * history/CachedPage.cpp:
37519        * history/CachedPage.h:
37520        * history/HistoryItem.cpp:
37521        * history/HistoryItem.h:
37522        * history/PageCache.cpp:
37523        * history/PageCache.h:
37524        * history/mac/HistoryItemMac.mm:
37525        * html/FTPDirectoryDocument.cpp:
37526        * html/FTPDirectoryDocument.h:
37527        * html/HTMLAudioElement.cpp:
37528        * html/HTMLAudioElement.h:
37529        * html/HTMLAudioElement.idl:
37530        * html/HTMLCanvasElement.cpp:
37531        * html/HTMLCanvasElement.h:
37532        * html/HTMLCanvasElement.idl:
37533        * html/HTMLFieldSetElement.idl:
37534        * html/HTMLImageLoader.h:
37535        * html/HTMLMediaElement.cpp:
37536        * html/HTMLMediaElement.h:
37537        * html/HTMLMediaElement.idl:
37538        * html/HTMLOptionsCollection.cpp:
37539        * html/HTMLPlugInElement.cpp:
37540        * html/HTMLSourceElement.cpp:
37541        * html/HTMLSourceElement.h:
37542        * html/HTMLSourceElement.idl:
37543        * html/HTMLTablePartElement.cpp:
37544        * html/HTMLTableRowsCollection.cpp:
37545        * html/HTMLTableRowsCollection.h:
37546        * html/HTMLTitleElement.idl:
37547        * html/HTMLTrackElement.cpp:
37548        * html/HTMLTrackElement.h:
37549        * html/HTMLTrackElement.idl:
37550        * html/HTMLVideoElement.cpp:
37551        * html/HTMLVideoElement.h:
37552        * html/HTMLVideoElement.idl:
37553        * html/ImageData.cpp:
37554        * html/ImageData.h:
37555        * html/ImageData.idl:
37556        * html/ImageDocument.cpp:
37557        * html/ImageDocument.h:
37558        * html/MediaController.cpp:
37559        * html/MediaController.h:
37560        * html/MediaController.idl:
37561        * html/MediaControllerInterface.h:
37562        * html/MediaError.h:
37563        * html/MediaError.idl:
37564        * html/MediaFragmentURIParser.cpp:
37565        * html/MediaFragmentURIParser.h:
37566        * html/MediaKeyError.h:
37567        * html/MediaKeyError.idl:
37568        * html/MediaKeyEvent.cpp:
37569        * html/MediaKeyEvent.h:
37570        * html/MediaKeyEvent.idl:
37571        * html/PluginDocument.cpp:
37572        * html/PluginDocument.h:
37573        * html/TextDocument.cpp:
37574        * html/TextDocument.h:
37575        * html/TimeRanges.cpp:
37576        * html/TimeRanges.h:
37577        * html/TimeRanges.idl:
37578        * html/VoidCallback.h:
37579        * html/VoidCallback.idl:
37580        * html/canvas/CanvasGradient.cpp:
37581        * html/canvas/CanvasGradient.h:
37582        * html/canvas/CanvasGradient.idl:
37583        * html/canvas/CanvasPattern.cpp:
37584        * html/canvas/CanvasPattern.h:
37585        * html/canvas/CanvasPattern.idl:
37586        * html/canvas/CanvasRenderingContext.cpp:
37587        * html/canvas/CanvasRenderingContext.h:
37588        * html/canvas/CanvasRenderingContext.idl:
37589        * html/canvas/CanvasRenderingContext2D.cpp:
37590        * html/canvas/CanvasRenderingContext2D.h:
37591        * html/canvas/CanvasRenderingContext2D.idl:
37592        * html/canvas/CanvasStyle.cpp:
37593        * html/canvas/CanvasStyle.h:
37594        * html/canvas/DOMPath.idl:
37595        * html/canvas/OESVertexArrayObject.cpp:
37596        * html/canvas/OESVertexArrayObject.h:
37597        * html/canvas/OESVertexArrayObject.idl:
37598        * html/canvas/WebGLBuffer.cpp:
37599        * html/canvas/WebGLBuffer.h:
37600        * html/canvas/WebGLBuffer.idl:
37601        * html/canvas/WebGLContextGroup.cpp:
37602        * html/canvas/WebGLContextGroup.h:
37603        * html/canvas/WebGLContextObject.cpp:
37604        * html/canvas/WebGLContextObject.h:
37605        * html/canvas/WebGLFramebuffer.cpp:
37606        * html/canvas/WebGLFramebuffer.h:
37607        * html/canvas/WebGLFramebuffer.idl:
37608        * html/canvas/WebGLObject.cpp:
37609        * html/canvas/WebGLObject.h:
37610        * html/canvas/WebGLProgram.cpp:
37611        * html/canvas/WebGLProgram.h:
37612        * html/canvas/WebGLProgram.idl:
37613        * html/canvas/WebGLRenderbuffer.cpp:
37614        * html/canvas/WebGLRenderbuffer.h:
37615        * html/canvas/WebGLRenderbuffer.idl:
37616        * html/canvas/WebGLRenderingContext.cpp:
37617        * html/canvas/WebGLRenderingContext.h:
37618        * html/canvas/WebGLRenderingContext.idl:
37619        * html/canvas/WebGLShader.cpp:
37620        * html/canvas/WebGLShader.h:
37621        * html/canvas/WebGLShader.idl:
37622        * html/canvas/WebGLSharedObject.cpp:
37623        * html/canvas/WebGLSharedObject.h:
37624        * html/canvas/WebGLTexture.cpp:
37625        * html/canvas/WebGLTexture.h:
37626        * html/canvas/WebGLTexture.idl:
37627        * html/canvas/WebGLUniformLocation.cpp:
37628        * html/canvas/WebGLUniformLocation.h:
37629        * html/canvas/WebGLUniformLocation.idl:
37630        * html/canvas/WebGLVertexArrayObjectOES.cpp:
37631        * html/canvas/WebGLVertexArrayObjectOES.h:
37632        * html/canvas/WebGLVertexArrayObjectOES.idl:
37633        * html/forms/FileIconLoader.cpp:
37634        * html/forms/FileIconLoader.h:
37635        * html/parser/TextDocumentParser.cpp:
37636        * html/parser/TextDocumentParser.h:
37637        * html/shadow/MediaControlElementTypes.cpp:
37638        * html/shadow/MediaControlElementTypes.h:
37639        * html/shadow/MediaControlElements.cpp:
37640        * html/shadow/MediaControlElements.h:
37641        * html/shadow/MediaControls.cpp:
37642        * html/shadow/MediaControls.h:
37643        * html/shadow/MediaControlsApple.cpp:
37644        * html/shadow/MediaControlsApple.h:
37645        * html/shadow/MediaControlsGtk.cpp:
37646        * html/shadow/MediaControlsGtk.h:
37647        * html/shadow/SpinButtonElement.cpp:
37648        * html/shadow/SpinButtonElement.h:
37649        * html/shadow/TextControlInnerElements.cpp:
37650        * html/shadow/TextControlInnerElements.h:
37651        * html/track/AudioTrack.h:
37652        * html/track/AudioTrack.idl:
37653        * html/track/AudioTrackList.cpp:
37654        * html/track/AudioTrackList.h:
37655        * html/track/AudioTrackList.idl:
37656        * html/track/DataCue.cpp:
37657        * html/track/DataCue.h:
37658        * html/track/DataCue.idl:
37659        * html/track/InbandGenericTextTrack.cpp:
37660        * html/track/InbandGenericTextTrack.h:
37661        * html/track/InbandTextTrack.cpp:
37662        * html/track/InbandTextTrack.h:
37663        * html/track/InbandWebVTTTextTrack.cpp:
37664        * html/track/InbandWebVTTTextTrack.h:
37665        * html/track/LoadableTextTrack.cpp:
37666        * html/track/LoadableTextTrack.h:
37667        * html/track/TextTrack.h:
37668        * html/track/TextTrack.idl:
37669        * html/track/TextTrackCue.idl:
37670        * html/track/TextTrackCueGeneric.cpp:
37671        * html/track/TextTrackCueGeneric.h:
37672        * html/track/TextTrackCueList.cpp:
37673        * html/track/TextTrackCueList.h:
37674        * html/track/TextTrackCueList.idl:
37675        * html/track/TextTrackList.cpp:
37676        * html/track/TextTrackList.h:
37677        * html/track/TextTrackList.idl:
37678        * html/track/TextTrackRegion.idl:
37679        * html/track/TextTrackRegionList.cpp:
37680        * html/track/TextTrackRegionList.h:
37681        * html/track/TextTrackRegionList.idl:
37682        * html/track/TrackBase.cpp:
37683        * html/track/TrackBase.h:
37684        * html/track/TrackEvent.cpp:
37685        * html/track/TrackEvent.h:
37686        * html/track/TrackEvent.idl:
37687        * html/track/TrackListBase.cpp:
37688        * html/track/TrackListBase.h:
37689        * html/track/VTTCue.idl:
37690        * html/track/VideoTrack.h:
37691        * html/track/VideoTrack.idl:
37692        * html/track/VideoTrackList.cpp:
37693        * html/track/VideoTrackList.h:
37694        * html/track/VideoTrackList.idl:
37695        * html/track/WebVTTElement.cpp:
37696        * html/track/WebVTTElement.h:
37697        * inspector/CommandLineAPIHost.cpp:
37698        * inspector/CommandLineAPIHost.h:
37699        * inspector/CommandLineAPIModuleSource.js:
37700        * inspector/InspectorAllInOne.cpp:
37701        * inspector/InspectorClient.h:
37702        * inspector/InspectorDOMAgent.cpp:
37703        * inspector/InspectorDOMAgent.h:
37704        * inspector/InspectorDOMStorageAgent.cpp:
37705        * inspector/InspectorDOMStorageAgent.h:
37706        * inspector/InspectorDatabaseAgent.cpp:
37707        * inspector/InspectorDatabaseAgent.h:
37708        * inspector/InspectorDatabaseResource.cpp:
37709        * inspector/InspectorDatabaseResource.h:
37710        * inspector/InspectorForwarding.h:
37711        * inspector/InspectorFrontendHost.cpp:
37712        * inspector/InspectorFrontendHost.h:
37713        * inspector/InspectorLayerTreeAgent.h:
37714        * inspector/InspectorNodeFinder.cpp:
37715        * inspector/InspectorNodeFinder.h:
37716        * inspector/InspectorOverlay.cpp:
37717        * inspector/InspectorOverlay.h:
37718        * inspector/InspectorOverlayPage.html:
37719        * inspector/InspectorProfilerAgent.cpp:
37720        * inspector/InspectorProfilerAgent.h:
37721        * inspector/ScriptProfile.idl:
37722        * inspector/ScriptProfileNode.idl:
37723        * loader/CookieJar.h:
37724        * loader/CrossOriginAccessControl.cpp:
37725        * loader/CrossOriginAccessControl.h:
37726        * loader/CrossOriginPreflightResultCache.cpp:
37727        * loader/CrossOriginPreflightResultCache.h:
37728        * loader/DocumentLoader.cpp:
37729        * loader/DocumentLoader.h:
37730        * loader/DocumentWriter.cpp:
37731        * loader/EmptyClients.h:
37732        * loader/FormState.cpp:
37733        * loader/FormState.h:
37734        * loader/FrameLoadRequest.h:
37735        * loader/FrameLoader.cpp:
37736        * loader/FrameLoader.h:
37737        * loader/FrameLoaderClient.h:
37738        * loader/FrameLoaderTypes.h:
37739        * loader/HistoryController.cpp:
37740        * loader/HistoryController.h:
37741        * loader/MixedContentChecker.cpp:
37742        * loader/NavigationAction.cpp:
37743        * loader/NavigationAction.h:
37744        * loader/NavigationScheduler.cpp:
37745        * loader/NavigationScheduler.h:
37746        * loader/NetscapePlugInStreamLoader.cpp:
37747        * loader/NetscapePlugInStreamLoader.h:
37748        * loader/PolicyCallback.cpp:
37749        * loader/PolicyCallback.h:
37750        * loader/PolicyChecker.cpp:
37751        * loader/PolicyChecker.h:
37752        * loader/ProgressTracker.cpp:
37753        * loader/ProgressTracker.h:
37754        * loader/ResourceBuffer.cpp:
37755        * loader/ResourceBuffer.h:
37756        * loader/ResourceLoadNotifier.cpp:
37757        * loader/ResourceLoadNotifier.h:
37758        * loader/ResourceLoader.cpp:
37759        * loader/ResourceLoader.h:
37760        * loader/SinkDocument.cpp:
37761        * loader/SinkDocument.h:
37762        * loader/SubframeLoader.cpp:
37763        * loader/SubframeLoader.h:
37764        * loader/SubresourceLoader.cpp:
37765        * loader/SubresourceLoader.h:
37766        * loader/SubstituteData.h:
37767        * loader/TextTrackLoader.cpp:
37768        * loader/appcache/ApplicationCacheAllInOne.cpp:
37769        * loader/archive/Archive.cpp:
37770        * loader/archive/Archive.h:
37771        * loader/archive/ArchiveFactory.cpp:
37772        * loader/archive/ArchiveFactory.h:
37773        * loader/archive/ArchiveResource.cpp:
37774        * loader/archive/ArchiveResource.h:
37775        * loader/archive/ArchiveResourceCollection.cpp:
37776        * loader/archive/ArchiveResourceCollection.h:
37777        * loader/archive/cf/LegacyWebArchive.cpp:
37778        * loader/archive/cf/LegacyWebArchive.h:
37779        * loader/archive/cf/LegacyWebArchiveMac.mm:
37780        * loader/cache/CachePolicy.h:
37781        * loader/cache/CachedCSSStyleSheet.cpp:
37782        * loader/cache/CachedFont.cpp:
37783        * loader/cache/CachedFont.h:
37784        * loader/cache/CachedResourceRequest.cpp:
37785        * loader/cache/CachedResourceRequest.h:
37786        * loader/cache/CachedResourceRequestInitiators.cpp:
37787        * loader/cache/CachedResourceRequestInitiators.h:
37788        * loader/cf/ResourceLoaderCFNet.cpp:
37789        * loader/icon/IconController.cpp:
37790        * loader/icon/IconController.h:
37791        * loader/icon/IconDatabase.cpp:
37792        * loader/icon/IconDatabase.h:
37793        * loader/icon/IconDatabaseBase.cpp:
37794        * loader/icon/IconDatabaseBase.h:
37795        * loader/icon/IconDatabaseClient.h:
37796        * loader/icon/IconLoader.cpp:
37797        * loader/icon/IconLoader.h:
37798        * loader/icon/IconRecord.cpp:
37799        * loader/icon/IconRecord.h:
37800        * loader/icon/PageURLRecord.cpp:
37801        * loader/icon/PageURLRecord.h:
37802        * loader/mac/DocumentLoaderMac.cpp:
37803        * loader/mac/LoaderNSURLExtras.h:
37804        * loader/mac/LoaderNSURLExtras.mm:
37805        * loader/mac/ResourceBuffer.mm:
37806        * loader/mac/ResourceLoaderMac.mm:
37807        * loader/win/DocumentLoaderWin.cpp:
37808        * loader/win/FrameLoaderWin.cpp:
37809        * mathml/MathMLAllInOne.cpp:
37810        * page/AbstractView.idl:
37811        * page/AlternativeTextClient.h:
37812        * page/AutoscrollController.cpp:
37813        * page/AutoscrollController.h:
37814        * page/BarProp.cpp:
37815        * page/BarProp.h:
37816        * page/BarProp.idl:
37817        * page/ContentSecurityPolicy.cpp:
37818        * page/ContentSecurityPolicy.h:
37819        * page/ContextMenuClient.h:
37820        * page/ContextMenuContext.cpp:
37821        * page/ContextMenuContext.h:
37822        * page/ContextMenuController.cpp:
37823        * page/ContextMenuController.h:
37824        * page/DOMSecurityPolicy.cpp:
37825        * page/DOMSecurityPolicy.h:
37826        * page/DOMSelection.cpp:
37827        * page/DOMSelection.h:
37828        * page/DOMSelection.idl:
37829        * page/DOMTimer.cpp:
37830        * page/DOMTimer.h:
37831        * page/DOMWindow.cpp:
37832        * page/DOMWindow.h:
37833        * page/DOMWindow.idl:
37834        * page/DragActions.h:
37835        * page/DragClient.h:
37836        * page/DragController.cpp:
37837        * page/DragController.h:
37838        * page/DragSession.h:
37839        * page/DragState.h:
37840        * page/EditorClient.h:
37841        * page/EventHandler.cpp:
37842        * page/EventHandler.h:
37843        * page/FocusController.cpp:
37844        * page/FocusController.h:
37845        * page/FocusDirection.h:
37846        * page/FrameTree.h:
37847        * page/GestureTapHighlighter.cpp:
37848        * page/GestureTapHighlighter.h:
37849        * page/History.cpp:
37850        * page/History.h:
37851        * page/History.idl:
37852        * page/Location.cpp:
37853        * page/Location.h:
37854        * page/Location.idl:
37855        * page/MouseEventWithHitTestResults.cpp:
37856        * page/MouseEventWithHitTestResults.h:
37857        * page/Navigator.cpp:
37858        * page/NavigatorBase.cpp:
37859        * page/NavigatorBase.h:
37860        * page/PageConsole.cpp:
37861        * page/PageConsole.h:
37862        * page/Screen.cpp:
37863        * page/Screen.h:
37864        * page/Screen.idl:
37865        * page/SecurityOrigin.cpp:
37866        * page/SecurityOrigin.h:
37867        * page/SecurityOriginHash.h:
37868        * page/Settings.cpp:
37869        * page/Settings.h:
37870        * page/SpatialNavigation.cpp:
37871        * page/SuspendableTimer.cpp:
37872        * page/SuspendableTimer.h:
37873        * page/UserContentTypes.h:
37874        * page/UserContentURLPattern.cpp:
37875        * page/UserContentURLPattern.h:
37876        * page/UserScript.h:
37877        * page/UserScriptTypes.h:
37878        * page/UserStyleSheet.h:
37879        * page/UserStyleSheetTypes.h:
37880        * page/WebCoreKeyboardUIMode.h:
37881        * page/WebKitPoint.h:
37882        * page/WebKitPoint.idl:
37883        * page/WindowBase64.idl:
37884        * page/WindowFeatures.h:
37885        * page/WindowFocusAllowedIndicator.cpp:
37886        * page/WindowFocusAllowedIndicator.h:
37887        * page/WindowTimers.idl:
37888        * page/WorkerNavigator.cpp:
37889        * page/WorkerNavigator.h:
37890        * page/WorkerNavigator.idl:
37891        * page/animation/AnimationBase.cpp:
37892        * page/animation/AnimationBase.h:
37893        * page/animation/AnimationController.cpp:
37894        * page/animation/AnimationController.h:
37895        * page/animation/AnimationControllerPrivate.h:
37896        * page/animation/CSSPropertyAnimation.cpp:
37897        * page/animation/CSSPropertyAnimation.h:
37898        * page/animation/CompositeAnimation.cpp:
37899        * page/animation/CompositeAnimation.h:
37900        * page/animation/ImplicitAnimation.cpp:
37901        * page/animation/ImplicitAnimation.h:
37902        * page/animation/KeyframeAnimation.cpp:
37903        * page/animation/KeyframeAnimation.h:
37904        * page/efl/DragControllerEfl.cpp:
37905        * page/efl/EventHandlerEfl.cpp:
37906        * page/gtk/DragControllerGtk.cpp:
37907        * page/gtk/EventHandlerGtk.cpp:
37908        * page/ios/EventHandlerIOS.mm:
37909        * page/mac/DragControllerMac.mm:
37910        * page/mac/EventHandlerMac.mm:
37911        * page/mac/PageMac.cpp:
37912        * page/mac/WebCoreFrameView.h:
37913        * page/make_settings.pl:
37914        * page/win/DragControllerWin.cpp:
37915        * page/win/EventHandlerWin.cpp:
37916        * page/win/FrameCGWin.cpp:
37917        * page/win/FrameCairoWin.cpp:
37918        * page/win/FrameGdiWin.cpp:
37919        * page/win/FrameWin.cpp:
37920        * page/win/FrameWin.h:
37921        * pdf/ios/PDFDocument.h:
37922        * platform/Clock.cpp:
37923        * platform/Clock.h:
37924        * platform/ClockGeneric.cpp:
37925        * platform/ClockGeneric.h:
37926        * platform/ColorChooser.h:
37927        * platform/ColorChooserClient.h:
37928        * platform/ContentType.cpp:
37929        * platform/ContentType.h:
37930        * platform/ContextMenu.h:
37931        * platform/ContextMenuItem.h:
37932        * platform/Cookie.h:
37933        * platform/Cursor.h:
37934        * platform/DragData.cpp:
37935        * platform/DragData.h:
37936        * platform/DragImage.cpp:
37937        * platform/DragImage.h:
37938        * platform/FileChooser.cpp:
37939        * platform/FileChooser.h:
37940        * platform/FileSystem.h:
37941        * platform/FloatConversion.h:
37942        * platform/KillRing.h:
37943        * platform/LinkHash.h:
37944        * platform/LocalizedStrings.cpp:
37945        * platform/LocalizedStrings.h:
37946        * platform/Logging.cpp:
37947        * platform/Logging.h:
37948        * platform/MIMETypeRegistry.cpp:
37949        * platform/MIMETypeRegistry.h:
37950        * platform/MediaDescription.h:
37951        * platform/MediaSample.h:
37952        * platform/NotImplemented.h:
37953        * platform/PODFreeListArena.h:
37954        * platform/Pasteboard.h:
37955        * platform/PasteboardStrategy.h:
37956        * platform/PlatformExportMacros.h:
37957        * platform/PlatformKeyboardEvent.h:
37958        * platform/PlatformMenuDescription.h:
37959        * platform/PlatformMouseEvent.h:
37960        * platform/PlatformPasteboard.h:
37961        * platform/PlatformScreen.h:
37962        * platform/PlatformSpeechSynthesis.h:
37963        * platform/PlatformSpeechSynthesisUtterance.cpp:
37964        * platform/PlatformSpeechSynthesisUtterance.h:
37965        * platform/PlatformSpeechSynthesisVoice.cpp:
37966        * platform/PlatformSpeechSynthesisVoice.h:
37967        * platform/PlatformSpeechSynthesizer.cpp:
37968        * platform/PlatformSpeechSynthesizer.h:
37969        * platform/PlatformWheelEvent.h:
37970        * platform/PopupMenuClient.h:
37971        * platform/RemoteCommandListener.cpp:
37972        * platform/RemoteCommandListener.h:
37973        * platform/SSLKeyGenerator.h:
37974        * platform/SchemeRegistry.cpp:
37975        * platform/SchemeRegistry.h:
37976        * platform/ScrollTypes.h:
37977        * platform/ScrollView.cpp:
37978        * platform/ScrollView.h:
37979        * platform/Scrollbar.cpp:
37980        * platform/Scrollbar.h:
37981        * platform/SharedBuffer.cpp:
37982        * platform/SharedBuffer.h:
37983        * platform/SharedTimer.h:
37984        * platform/Sound.h:
37985        * platform/ThreadCheck.h:
37986        * platform/ThreadGlobalData.cpp:
37987        * platform/ThreadGlobalData.h:
37988        * platform/ThreadTimers.cpp:
37989        * platform/ThreadTimers.h:
37990        * platform/Timer.cpp:
37991        * platform/Timer.h:
37992        * platform/URL.cpp:
37993        * platform/URL.h:
37994        * platform/Widget.cpp:
37995        * platform/Widget.h:
37996        * platform/animation/AnimationUtilities.h:
37997        * platform/audio/AudioArray.h:
37998        * platform/audio/AudioBus.cpp:
37999        * platform/audio/AudioBus.h:
38000        * platform/audio/AudioChannel.cpp:
38001        * platform/audio/AudioChannel.h:
38002        * platform/audio/AudioDestination.h:
38003        * platform/audio/AudioFIFO.cpp:
38004        * platform/audio/AudioFIFO.h:
38005        * platform/audio/AudioFileReader.h:
38006        * platform/audio/AudioIOCallback.h:
38007        * platform/audio/AudioPullFIFO.cpp:
38008        * platform/audio/AudioPullFIFO.h:
38009        * platform/audio/AudioSourceProvider.h:
38010        * platform/audio/Biquad.cpp:
38011        * platform/audio/Biquad.h:
38012        * platform/audio/Cone.cpp:
38013        * platform/audio/Cone.h:
38014        * platform/audio/DirectConvolver.cpp:
38015        * platform/audio/DirectConvolver.h:
38016        * platform/audio/Distance.cpp:
38017        * platform/audio/Distance.h:
38018        * platform/audio/DownSampler.cpp:
38019        * platform/audio/DownSampler.h:
38020        * platform/audio/DynamicsCompressor.cpp:
38021        * platform/audio/DynamicsCompressor.h:
38022        * platform/audio/DynamicsCompressorKernel.cpp:
38023        * platform/audio/DynamicsCompressorKernel.h:
38024        * platform/audio/FFTConvolver.cpp:
38025        * platform/audio/FFTConvolver.h:
38026        * platform/audio/FFTFrame.cpp:
38027        * platform/audio/FFTFrame.h:
38028        * platform/audio/HRTFDatabase.cpp:
38029        * platform/audio/HRTFDatabase.h:
38030        * platform/audio/HRTFDatabaseLoader.cpp:
38031        * platform/audio/HRTFDatabaseLoader.h:
38032        * platform/audio/HRTFElevation.cpp:
38033        * platform/audio/HRTFElevation.h:
38034        * platform/audio/HRTFKernel.cpp:
38035        * platform/audio/HRTFKernel.h:
38036        * platform/audio/MultiChannelResampler.cpp:
38037        * platform/audio/MultiChannelResampler.h:
38038        * platform/audio/Panner.cpp:
38039        * platform/audio/Panner.h:
38040        * platform/audio/Reverb.cpp:
38041        * platform/audio/Reverb.h:
38042        * platform/audio/ReverbAccumulationBuffer.cpp:
38043        * platform/audio/ReverbAccumulationBuffer.h:
38044        * platform/audio/ReverbConvolver.cpp:
38045        * platform/audio/ReverbConvolver.h:
38046        * platform/audio/ReverbConvolverStage.cpp:
38047        * platform/audio/ReverbConvolverStage.h:
38048        * platform/audio/ReverbInputBuffer.cpp:
38049        * platform/audio/ReverbInputBuffer.h:
38050        * platform/audio/SincResampler.cpp:
38051        * platform/audio/SincResampler.h:
38052        * platform/audio/UpSampler.cpp:
38053        * platform/audio/UpSampler.h:
38054        * platform/audio/ZeroPole.cpp:
38055        * platform/audio/ZeroPole.h:
38056        * platform/audio/ios/AudioDestinationIOS.cpp:
38057        * platform/audio/ios/AudioDestinationIOS.h:
38058        * platform/audio/ios/AudioFileReaderIOS.cpp:
38059        * platform/audio/ios/AudioFileReaderIOS.h:
38060        * platform/audio/mac/AudioDestinationMac.cpp:
38061        * platform/audio/mac/AudioDestinationMac.h:
38062        * platform/audio/mac/AudioFileReaderMac.cpp:
38063        * platform/audio/mac/AudioFileReaderMac.h:
38064        * platform/audio/mac/FFTFrameMac.cpp:
38065        * platform/cf/FileSystemCF.cpp:
38066        * platform/cf/SharedBufferCF.cpp:
38067        * platform/cf/URLCF.cpp:
38068        * platform/cocoa/KeyEventCocoa.h:
38069        * platform/cocoa/KeyEventCocoa.mm:
38070        * platform/efl/CursorEfl.cpp:
38071        * platform/efl/EflKeyboardUtilities.cpp:
38072        * platform/efl/EflKeyboardUtilities.h:
38073        * platform/efl/FileSystemEfl.cpp:
38074        * platform/efl/LanguageEfl.cpp:
38075        * platform/efl/LocalizedStringsEfl.cpp:
38076        * platform/efl/MIMETypeRegistryEfl.cpp:
38077        * platform/efl/PlatformKeyboardEventEfl.cpp:
38078        * platform/efl/PlatformMouseEventEfl.cpp:
38079        * platform/efl/PlatformScreenEfl.cpp:
38080        * platform/efl/PlatformWheelEventEfl.cpp:
38081        * platform/efl/RenderThemeEfl.h:
38082        * platform/efl/ScrollbarEfl.h:
38083        * platform/efl/SharedTimerEfl.cpp:
38084        * platform/efl/SoundEfl.cpp:
38085        * platform/efl/TemporaryLinkStubs.cpp:
38086        * platform/efl/WidgetEfl.cpp:
38087        * platform/graphics/ANGLEWebKitBridge.cpp:
38088        * platform/graphics/ANGLEWebKitBridge.h:
38089        * platform/graphics/AudioTrackPrivate.h:
38090        * platform/graphics/BitmapImage.cpp:
38091        * platform/graphics/BitmapImage.h:
38092        * platform/graphics/Color.cpp:
38093        * platform/graphics/Color.h:
38094        * platform/graphics/CrossfadeGeneratedImage.cpp:
38095        * platform/graphics/CrossfadeGeneratedImage.h:
38096        * platform/graphics/DashArray.h:
38097        * platform/graphics/DisplayRefreshMonitor.cpp:
38098        * platform/graphics/DisplayRefreshMonitor.h:
38099        * platform/graphics/FloatPoint.cpp:
38100        * platform/graphics/FloatPoint.h:
38101        * platform/graphics/FloatQuad.cpp:
38102        * platform/graphics/FloatQuad.h:
38103        * platform/graphics/FloatRect.cpp:
38104        * platform/graphics/FloatRect.h:
38105        * platform/graphics/FloatSize.cpp:
38106        * platform/graphics/FloatSize.h:
38107        * platform/graphics/FontBaseline.h:
38108        * platform/graphics/FontCache.cpp:
38109        * platform/graphics/FontCache.h:
38110        * platform/graphics/FontData.cpp:
38111        * platform/graphics/FontData.h:
38112        * platform/graphics/FontDescription.cpp:
38113        * platform/graphics/FontFeatureSettings.cpp:
38114        * platform/graphics/FontFeatureSettings.h:
38115        * platform/graphics/FontGlyphs.cpp:
38116        * platform/graphics/FontOrientation.h:
38117        * platform/graphics/FontRenderingMode.h:
38118        * platform/graphics/FontSelector.h:
38119        * platform/graphics/FontWidthVariant.h:
38120        * platform/graphics/FormatConverter.cpp:
38121        * platform/graphics/FormatConverter.h:
38122        * platform/graphics/GeneratedImage.h:
38123        * platform/graphics/Glyph.h:
38124        * platform/graphics/GlyphBuffer.h:
38125        * platform/graphics/GlyphMetricsMap.h:
38126        * platform/graphics/GlyphPage.h:
38127        * platform/graphics/GlyphPageTreeNode.cpp:
38128        * platform/graphics/GlyphPageTreeNode.h:
38129        * platform/graphics/Gradient.cpp:
38130        * platform/graphics/Gradient.h:
38131        * platform/graphics/GradientImage.h:
38132        * platform/graphics/GraphicsContext.h:
38133        * platform/graphics/GraphicsContext3D.cpp:
38134        * platform/graphics/GraphicsContext3D.h:
38135        * platform/graphics/GraphicsLayer.cpp:
38136        * platform/graphics/GraphicsLayer.h:
38137        * platform/graphics/GraphicsLayerClient.h:
38138        * platform/graphics/GraphicsTypes.cpp:
38139        * platform/graphics/GraphicsTypes.h:
38140        * platform/graphics/GraphicsTypes3D.h:
38141        * platform/graphics/Image.cpp:
38142        * platform/graphics/Image.h:
38143        * platform/graphics/ImageBuffer.cpp:
38144        * platform/graphics/ImageBuffer.h:
38145        * platform/graphics/ImageBufferData.h:
38146        * platform/graphics/ImageObserver.h:
38147        * platform/graphics/ImageSource.cpp:
38148        * platform/graphics/ImageSource.h:
38149        * platform/graphics/InbandTextTrackPrivate.h:
38150        * platform/graphics/InbandTextTrackPrivateClient.h:
38151        * platform/graphics/IntPoint.cpp:
38152        * platform/graphics/IntPoint.h:
38153        * platform/graphics/IntSize.cpp:
38154        * platform/graphics/IntSize.h:
38155        * platform/graphics/MediaPlayer.cpp:
38156        * platform/graphics/MediaPlayer.h:
38157        * platform/graphics/MediaPlayerPrivate.h:
38158        * platform/graphics/MediaSourcePrivateClient.h:
38159        * platform/graphics/NativeImagePtr.h:
38160        * platform/graphics/OpenGLESShims.h:
38161        * platform/graphics/Path.cpp:
38162        * platform/graphics/Path.h:
38163        * platform/graphics/PathTraversalState.h:
38164        * platform/graphics/Pattern.cpp:
38165        * platform/graphics/Pattern.h:
38166        * platform/graphics/PlatformLayer.h:
38167        * platform/graphics/PlatformTimeRanges.cpp:
38168        * platform/graphics/PlatformTimeRanges.h:
38169        * platform/graphics/SegmentedFontData.cpp:
38170        * platform/graphics/SegmentedFontData.h:
38171        * platform/graphics/ShadowBlur.cpp:
38172        * platform/graphics/ShadowBlur.h:
38173        * platform/graphics/SimpleFontData.cpp:
38174        * platform/graphics/SourceBufferPrivateClient.h:
38175        * platform/graphics/StringTruncator.cpp:
38176        * platform/graphics/StringTruncator.h:
38177        * platform/graphics/TrackPrivateBase.h:
38178        * platform/graphics/VideoTrackPrivate.h:
38179        * platform/graphics/WindRule.h:
38180        * platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h:
38181        * platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:
38182        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
38183        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
38184        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
38185        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
38186        * platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h:
38187        * platform/graphics/avfoundation/cf/CoreMediaSoftLinking.h:
38188        * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:
38189        * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.h:
38190        * platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.cpp:
38191        * platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.h:
38192        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
38193        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
38194        * platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.cpp:
38195        * platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.h:
38196        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h:
38197        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
38198        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h:
38199        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm:
38200        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
38201        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
38202        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
38203        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
38204        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
38205        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
38206        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
38207        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
38208        * platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h:
38209        * platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm:
38210        * platform/graphics/ca/GraphicsLayerCA.cpp:
38211        * platform/graphics/ca/GraphicsLayerCA.h:
38212        * platform/graphics/ca/LayerFlushScheduler.cpp:
38213        * platform/graphics/ca/LayerFlushScheduler.h:
38214        * platform/graphics/ca/LayerFlushSchedulerClient.h:
38215        * platform/graphics/ca/PlatformCAAnimation.h:
38216        * platform/graphics/ca/PlatformCAFilters.h:
38217        * platform/graphics/ca/PlatformCALayer.cpp:
38218        * platform/graphics/ca/PlatformCALayer.h:
38219        * platform/graphics/ca/PlatformCALayerClient.h:
38220        * platform/graphics/ca/TransformationMatrixCA.cpp:
38221        * platform/graphics/ca/mac/LayerFlushSchedulerMac.cpp:
38222        * platform/graphics/ca/mac/LayerPool.mm:
38223        * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
38224        * platform/graphics/ca/mac/PlatformCAFiltersMac.h:
38225        * platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
38226        * platform/graphics/ca/mac/PlatformCALayerMac.h:
38227        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
38228        * platform/graphics/ca/mac/WebTiledBackingLayer.h:
38229        * platform/graphics/ca/mac/WebTiledBackingLayer.mm:
38230        * platform/graphics/ca/win/AbstractCACFLayerTreeHost.h:
38231        * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
38232        * platform/graphics/ca/win/CACFLayerTreeHost.h:
38233        * platform/graphics/ca/win/CACFLayerTreeHostClient.h:
38234        * platform/graphics/ca/win/LayerChangesFlusher.cpp:
38235        * platform/graphics/ca/win/LayerChangesFlusher.h:
38236        * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp:
38237        * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h:
38238        * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
38239        * platform/graphics/ca/win/PlatformCAFiltersWin.cpp:
38240        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
38241        * platform/graphics/ca/win/PlatformCALayerWin.h:
38242        * platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
38243        * platform/graphics/ca/win/PlatformCALayerWinInternal.h:
38244        * platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp:
38245        * platform/graphics/ca/win/WKCACFViewLayerTreeHost.h:
38246        * platform/graphics/cairo/BitmapImageCairo.cpp:
38247        * platform/graphics/cairo/CairoUtilities.cpp:
38248        * platform/graphics/cairo/CairoUtilities.h:
38249        * platform/graphics/cairo/DrawingBufferCairo.cpp:
38250        * platform/graphics/cairo/FloatRectCairo.cpp:
38251        * platform/graphics/cairo/FontCairo.cpp:
38252        * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
38253        * platform/graphics/cairo/GradientCairo.cpp:
38254        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
38255        * platform/graphics/cairo/GraphicsContextCairo.cpp:
38256        * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
38257        * platform/graphics/cairo/ImageBufferCairo.cpp:
38258        * platform/graphics/cairo/ImageBufferDataCairo.h:
38259        * platform/graphics/cairo/ImageCairo.cpp:
38260        * platform/graphics/cairo/PatternCairo.cpp:
38261        * platform/graphics/cairo/PlatformContextCairo.cpp:
38262        * platform/graphics/cairo/PlatformContextCairo.h:
38263        * platform/graphics/cairo/TransformationMatrixCairo.cpp:
38264        * platform/graphics/cg/BitmapImageCG.cpp:
38265        * platform/graphics/cg/ColorCG.cpp:
38266        * platform/graphics/cg/FloatPointCG.cpp:
38267        * platform/graphics/cg/FloatRectCG.cpp:
38268        * platform/graphics/cg/FloatSizeCG.cpp:
38269        * platform/graphics/cg/GradientCG.cpp:
38270        * platform/graphics/cg/GraphicsContext3DCG.cpp:
38271        * platform/graphics/cg/GraphicsContextCG.cpp:
38272        * platform/graphics/cg/GraphicsContextCG.h:
38273        * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
38274        * platform/graphics/cg/ImageBufferCG.cpp:
38275        * platform/graphics/cg/ImageBufferDataCG.cpp:
38276        * platform/graphics/cg/ImageBufferDataCG.h:
38277        * platform/graphics/cg/ImageCG.cpp:
38278        * platform/graphics/cg/ImageSourceCG.cpp:
38279        * platform/graphics/cg/IntPointCG.cpp:
38280        * platform/graphics/cg/IntRectCG.cpp:
38281        * platform/graphics/cg/IntSizeCG.cpp:
38282        * platform/graphics/cg/PDFDocumentImage.cpp:
38283        * platform/graphics/cg/PDFDocumentImage.h:
38284        * platform/graphics/cg/PathCG.cpp:
38285        * platform/graphics/cg/PatternCG.cpp:
38286        * platform/graphics/cg/TransformationMatrixCG.cpp:
38287        * platform/graphics/efl/IconEfl.cpp:
38288        * platform/graphics/efl/ImageEfl.cpp:
38289        * platform/graphics/filters/FilterOperation.cpp:
38290        * platform/graphics/filters/FilterOperation.h:
38291        * platform/graphics/filters/FilterOperations.cpp:
38292        * platform/graphics/filters/FilterOperations.h:
38293        * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
38294        * platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:
38295        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
38296        * platform/graphics/gpu/mac/DrawingBufferMac.mm:
38297        * platform/graphics/gtk/GdkCairoUtilities.cpp:
38298        * platform/graphics/gtk/GdkCairoUtilities.h:
38299        * platform/graphics/gtk/IconGtk.cpp:
38300        * platform/graphics/gtk/ImageGtk.cpp:
38301        * platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
38302        * platform/graphics/ios/FontCacheIOS.mm:
38303        * platform/graphics/ios/GraphicsContext3DIOS.h:
38304        * platform/graphics/ios/InbandTextTrackPrivateAVFIOS.h:
38305        * platform/graphics/ios/InbandTextTrackPrivateAVFIOS.mm:
38306        * platform/graphics/ios/MediaPlayerPrivateIOS.h:
38307        * platform/graphics/ios/MediaPlayerPrivateIOS.mm:
38308        * platform/graphics/mac/ColorMac.h:
38309        * platform/graphics/mac/ColorMac.mm:
38310        * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
38311        * platform/graphics/mac/FloatPointMac.mm:
38312        * platform/graphics/mac/FloatRectMac.mm:
38313        * platform/graphics/mac/FloatSizeMac.mm:
38314        * platform/graphics/mac/FontCacheMac.mm:
38315        * platform/graphics/mac/FontCustomPlatformData.h:
38316        * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
38317        * platform/graphics/mac/GraphicsContext3DMac.mm:
38318        * platform/graphics/mac/GraphicsContextMac.mm:
38319        * platform/graphics/mac/ImageMac.mm:
38320        * platform/graphics/mac/IntPointMac.mm:
38321        * platform/graphics/mac/IntRectMac.mm:
38322        * platform/graphics/mac/IntSizeMac.mm:
38323        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
38324        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
38325        * platform/graphics/mac/MediaPlayerProxy.h:
38326        * platform/graphics/mac/WebCoreCALayerExtras.h:
38327        * platform/graphics/mac/WebCoreCALayerExtras.mm:
38328        * platform/graphics/mac/WebGLLayer.h:
38329        * platform/graphics/mac/WebGLLayer.mm:
38330        * platform/graphics/mac/WebLayer.h:
38331        * platform/graphics/mac/WebLayer.mm:
38332        * platform/graphics/mac/WebTiledLayer.h:
38333        * platform/graphics/mac/WebTiledLayer.mm:
38334        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
38335        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
38336        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
38337        * platform/graphics/opentype/OpenTypeUtilities.cpp:
38338        * platform/graphics/opentype/OpenTypeUtilities.h:
38339        * platform/graphics/transforms/AffineTransform.cpp:
38340        * platform/graphics/transforms/AffineTransform.h:
38341        * platform/graphics/transforms/Matrix3DTransformOperation.cpp:
38342        * platform/graphics/transforms/Matrix3DTransformOperation.h:
38343        * platform/graphics/transforms/PerspectiveTransformOperation.cpp:
38344        * platform/graphics/transforms/PerspectiveTransformOperation.h:
38345        * platform/graphics/transforms/TransformState.cpp:
38346        * platform/graphics/transforms/TransformState.h:
38347        * platform/graphics/transforms/TransformationMatrix.cpp:
38348        * platform/graphics/transforms/TransformationMatrix.h:
38349        * platform/graphics/win/FontCGWin.cpp:
38350        * platform/graphics/win/FontCacheWin.cpp:
38351        * platform/graphics/win/FontCustomPlatformDataCairo.cpp:
38352        * platform/graphics/win/FontWin.cpp:
38353        * platform/graphics/win/FullScreenController.cpp:
38354        * platform/graphics/win/FullScreenController.h:
38355        * platform/graphics/win/FullScreenControllerClient.h:
38356        * platform/graphics/win/GlyphPageTreeNodeCGWin.cpp:
38357        * platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp:
38358        * platform/graphics/win/GraphicsContextCGWin.cpp:
38359        * platform/graphics/win/GraphicsContextCairoWin.cpp:
38360        * platform/graphics/win/GraphicsContextWin.cpp:
38361        * platform/graphics/win/ImageCGWin.cpp:
38362        * platform/graphics/win/ImageCairoWin.cpp:
38363        * platform/graphics/win/ImageWin.cpp:
38364        * platform/graphics/win/IntPointWin.cpp:
38365        * platform/graphics/win/IntRectWin.cpp:
38366        * platform/graphics/win/IntSizeWin.cpp:
38367        * platform/graphics/win/LocalWindowsContext.h:
38368        * platform/graphics/win/MediaPlayerPrivateTaskTimer.cpp:
38369        * platform/graphics/win/MediaPlayerPrivateTaskTimer.h:
38370        * platform/graphics/win/SimpleFontDataCGWin.cpp:
38371        * platform/graphics/win/SimpleFontDataCairoWin.cpp:
38372        * platform/graphics/win/SimpleFontDataWin.cpp:
38373        * platform/graphics/win/TransformationMatrixWin.cpp:
38374        * platform/graphics/wince/FontCacheWinCE.cpp:
38375        * platform/graphics/wince/FontWinCE.cpp:
38376        * platform/graphics/wince/MediaPlayerPrivateWinCE.h:
38377        * platform/graphics/wince/SimpleFontDataWinCE.cpp:
38378        * platform/gtk/CompositionResults.h:
38379        * platform/gtk/CursorGtk.cpp:
38380        * platform/gtk/GtkPluginWidget.cpp:
38381        * platform/gtk/GtkPluginWidget.h:
38382        * platform/gtk/LocalizedStringsGtk.cpp:
38383        * platform/gtk/MIMETypeRegistryGtk.cpp:
38384        * platform/gtk/PlatformKeyboardEventGtk.cpp:
38385        * platform/gtk/PlatformMouseEventGtk.cpp:
38386        * platform/gtk/PlatformScreenGtk.cpp:
38387        * platform/gtk/PlatformWheelEventGtk.cpp:
38388        * platform/gtk/RedirectedXCompositeWindow.cpp:
38389        * platform/gtk/RedirectedXCompositeWindow.h:
38390        * platform/gtk/RenderThemeGtk.h:
38391        * platform/gtk/ScrollViewGtk.cpp:
38392        * platform/gtk/SharedTimerGtk.cpp:
38393        * platform/gtk/TemporaryLinkStubs.cpp:
38394        * platform/gtk/UserAgentGtk.cpp:
38395        * platform/gtk/UserAgentGtk.h:
38396        * platform/gtk/WidgetGtk.cpp:
38397        * platform/gtk/WidgetRenderingContext.cpp:
38398        * platform/image-decoders/ImageDecoder.h:
38399        * platform/image-decoders/cairo/ImageDecoderCairo.cpp:
38400        * platform/image-decoders/gif/GIFImageDecoder.cpp:
38401        * platform/image-decoders/gif/GIFImageDecoder.h:
38402        * platform/image-decoders/gif/GIFImageReader.cpp:
38403        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
38404        * platform/image-decoders/jpeg/JPEGImageDecoder.h:
38405        * platform/image-decoders/png/PNGImageDecoder.cpp:
38406        * platform/image-decoders/png/PNGImageDecoder.h:
38407        * platform/image-decoders/webp/WEBPImageDecoder.cpp:
38408        * platform/image-decoders/webp/WEBPImageDecoder.h:
38409        * platform/ios/CursorIOS.cpp:
38410        * platform/ios/DragImageIOS.mm:
38411        * platform/ios/KeyEventCodesIOS.h:
38412        * platform/ios/KeyEventIOS.mm:
38413        * platform/ios/PlatformPasteboardIOS.mm:
38414        * platform/ios/PlatformScreenIOS.mm:
38415        * platform/ios/PlatformSpeechSynthesizerIOS.mm:
38416        * platform/ios/RemoteCommandListenerIOS.h:
38417        * platform/ios/RemoteCommandListenerIOS.mm:
38418        * platform/ios/ScrollViewIOS.mm:
38419        * platform/ios/SoundIOS.mm:
38420        * platform/ios/SystemMemory.h:
38421        * platform/ios/SystemMemoryIOS.cpp:
38422        * platform/ios/WebCoreSystemInterfaceIOS.h:
38423        * platform/ios/WebCoreSystemInterfaceIOS.mm:
38424        * platform/ios/WidgetIOS.mm:
38425        * platform/mac/BlockExceptions.h:
38426        * platform/mac/BlockExceptions.mm:
38427        * platform/mac/ContextMenuItemMac.mm:
38428        * platform/mac/ContextMenuMac.mm:
38429        * platform/mac/CursorMac.mm:
38430        * platform/mac/DragDataMac.mm:
38431        * platform/mac/DragImageMac.mm:
38432        * platform/mac/FileSystemMac.mm:
38433        * platform/mac/KeyEventMac.mm:
38434        * platform/mac/LocalCurrentGraphicsContext.h:
38435        * platform/mac/LocalCurrentGraphicsContext.mm:
38436        * platform/mac/LoggingMac.mm:
38437        * platform/mac/MIMETypeRegistryMac.mm:
38438        * platform/mac/MediaTimeMac.cpp:
38439        * platform/mac/MediaTimeMac.h:
38440        * platform/mac/PasteboardMac.mm:
38441        * platform/mac/PlatformClockCA.cpp:
38442        * platform/mac/PlatformClockCA.h:
38443        * platform/mac/PlatformClockCM.h:
38444        * platform/mac/PlatformClockCM.mm:
38445        * platform/mac/PlatformPasteboardMac.mm:
38446        * platform/mac/PlatformScreenMac.mm:
38447        * platform/mac/PlatformSpeechSynthesisMac.mm:
38448        * platform/mac/PlatformSpeechSynthesizerMac.mm:
38449        * platform/mac/ScrollViewMac.mm:
38450        * platform/mac/SharedBufferMac.mm:
38451        * platform/mac/SharedTimerMac.mm:
38452        * platform/mac/SoftLinking.h:
38453        * platform/mac/SoundMac.mm:
38454        * platform/mac/ThreadCheck.mm:
38455        * platform/mac/URLMac.mm:
38456        * platform/mac/WebCoreNSStringExtras.h:
38457        * platform/mac/WebCoreNSStringExtras.mm:
38458        * platform/mac/WebCoreNSURLExtras.h:
38459        * platform/mac/WebCoreNSURLExtras.mm:
38460        * platform/mac/WebCoreObjCExtras.h:
38461        * platform/mac/WebCoreObjCExtras.mm:
38462        * platform/mac/WebCoreSystemInterface.h:
38463        * platform/mac/WebCoreSystemInterface.mm:
38464        * platform/mac/WebCoreView.h:
38465        * platform/mac/WebCoreView.m:
38466        * platform/mac/WebFontCache.h:
38467        * platform/mac/WebFontCache.mm:
38468        * platform/mac/WebWindowAnimation.h:
38469        * platform/mac/WebWindowAnimation.mm:
38470        * platform/mac/WidgetMac.mm:
38471        * platform/mediastream/MediaStreamConstraintsValidationClient.h:
38472        * platform/mediastream/MediaStreamCreationClient.h:
38473        * platform/mediastream/MediaStreamSourceCapabilities.h:
38474        * platform/mediastream/MediaStreamSourceStates.h:
38475        * platform/mediastream/MediaStreamTrackSourcesRequestClient.h:
38476        * platform/mediastream/RTCIceServer.h:
38477        * platform/mediastream/mac/AVAudioCaptureSource.h:
38478        * platform/mediastream/mac/AVAudioCaptureSource.mm:
38479        * platform/mediastream/mac/AVCaptureDeviceManager.h:
38480        * platform/mediastream/mac/AVCaptureDeviceManager.mm:
38481        * platform/mediastream/mac/AVMediaCaptureSource.h:
38482        * platform/mediastream/mac/AVMediaCaptureSource.mm:
38483        * platform/mediastream/mac/AVVideoCaptureSource.h:
38484        * platform/mediastream/mac/AVVideoCaptureSource.mm:
38485        * platform/mock/MockMediaStreamCenter.cpp:
38486        * platform/mock/MockMediaStreamCenter.h:
38487        * platform/mock/PlatformSpeechSynthesizerMock.cpp:
38488        * platform/mock/PlatformSpeechSynthesizerMock.h:
38489        * platform/mock/mediasource/MockBox.cpp:
38490        * platform/mock/mediasource/MockBox.h:
38491        * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
38492        * platform/mock/mediasource/MockMediaPlayerMediaSource.h:
38493        * platform/mock/mediasource/MockMediaSourcePrivate.cpp:
38494        * platform/mock/mediasource/MockMediaSourcePrivate.h:
38495        * platform/mock/mediasource/MockSourceBufferPrivate.cpp:
38496        * platform/mock/mediasource/MockSourceBufferPrivate.h:
38497        * platform/mock/mediasource/MockTracks.cpp:
38498        * platform/mock/mediasource/MockTracks.h:
38499        * platform/network/AuthenticationChallengeBase.cpp:
38500        * platform/network/AuthenticationChallengeBase.h:
38501        * platform/network/Credential.cpp:
38502        * platform/network/Credential.h:
38503        * platform/network/DNS.h:
38504        * platform/network/DNSResolveQueue.cpp:
38505        * platform/network/DNSResolveQueue.h:
38506        * platform/network/DataURL.cpp:
38507        * platform/network/DataURL.h:
38508        * platform/network/HTTPHeaderMap.h:
38509        * platform/network/HTTPParsers.cpp:
38510        * platform/network/HTTPParsers.h:
38511        * platform/network/PlatformCookieJar.h:
38512        * platform/network/ProtectionSpace.cpp:
38513        * platform/network/ProtectionSpace.h:
38514        * platform/network/ResourceErrorBase.cpp:
38515        * platform/network/ResourceErrorBase.h:
38516        * platform/network/ResourceHandle.cpp:
38517        * platform/network/ResourceHandle.h:
38518        * platform/network/ResourceHandleClient.h:
38519        * platform/network/ResourceHandleInternal.h:
38520        * platform/network/ResourceRequestBase.cpp:
38521        * platform/network/ResourceRequestBase.h:
38522        * platform/network/ResourceResponseBase.cpp:
38523        * platform/network/ResourceResponseBase.h:
38524        * platform/network/cf/AuthenticationCF.cpp:
38525        * platform/network/cf/AuthenticationCF.h:
38526        * platform/network/cf/AuthenticationChallenge.h:
38527        * platform/network/cf/CookieJarCFNet.cpp:
38528        * platform/network/cf/CookieStorageCFNet.cpp:
38529        * platform/network/cf/DNSCFNet.cpp:
38530        * platform/network/cf/DownloadBundle.h:
38531        * platform/network/cf/FormDataStreamCFNet.cpp:
38532        * platform/network/cf/FormDataStreamCFNet.h:
38533        * platform/network/cf/ResourceError.h:
38534        * platform/network/cf/ResourceErrorCF.cpp:
38535        * platform/network/cf/ResourceHandleCFNet.cpp:
38536        * platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
38537        * platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
38538        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
38539        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
38540        * platform/network/cf/ResourceRequest.h:
38541        * platform/network/cf/ResourceRequestCFNet.cpp:
38542        * platform/network/cf/ResourceRequestCFNet.h:
38543        * platform/network/cf/ResourceResponse.h:
38544        * platform/network/cf/ResourceResponseCFNet.cpp:
38545        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
38546        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
38547        * platform/network/curl/AuthenticationChallenge.h:
38548        * platform/network/curl/CurlDownload.cpp:
38549        * platform/network/curl/CurlDownload.h:
38550        * platform/network/curl/DNSCurl.cpp:
38551        * platform/network/curl/DownloadBundle.h:
38552        * platform/network/curl/FormDataStreamCurl.cpp:
38553        * platform/network/curl/FormDataStreamCurl.h:
38554        * platform/network/curl/ResourceError.h:
38555        * platform/network/curl/ResourceHandleCurl.cpp:
38556        * platform/network/curl/ResourceHandleManager.cpp:
38557        * platform/network/curl/ResourceHandleManager.h:
38558        * platform/network/curl/ResourceRequest.h:
38559        * platform/network/curl/ResourceResponse.h:
38560        * platform/network/curl/SSLHandle.cpp:
38561        * platform/network/curl/SSLHandle.h:
38562        * platform/network/gtk/CredentialBackingStore.cpp:
38563        * platform/network/gtk/CredentialBackingStore.h:
38564        * platform/network/ios/WebCoreURLResponseIOS.h:
38565        * platform/network/ios/WebCoreURLResponseIOS.mm:
38566        * platform/network/mac/AuthenticationMac.h:
38567        * platform/network/mac/AuthenticationMac.mm:
38568        * platform/network/mac/CookieJarMac.mm:
38569        * platform/network/mac/CookieStorageMac.mm:
38570        * platform/network/mac/FormDataStreamMac.h:
38571        * platform/network/mac/FormDataStreamMac.mm:
38572        * platform/network/mac/ResourceErrorMac.mm:
38573        * platform/network/mac/ResourceHandleMac.mm:
38574        * platform/network/mac/ResourceRequestMac.mm:
38575        * platform/network/mac/ResourceResponseMac.mm:
38576        * platform/network/mac/WebCoreURLResponse.h:
38577        * platform/network/mac/WebCoreURLResponse.mm:
38578        * platform/network/soup/AuthenticationChallenge.h:
38579        * platform/network/soup/AuthenticationChallengeSoup.cpp:
38580        * platform/network/soup/CookieJarSoup.h:
38581        * platform/network/soup/DNSSoup.cpp:
38582        * platform/network/soup/ResourceError.h:
38583        * platform/network/soup/ResourceErrorSoup.cpp:
38584        * platform/network/soup/ResourceRequest.h:
38585        * platform/network/soup/ResourceResponse.h:
38586        * platform/network/soup/SoupNetworkSession.cpp:
38587        * platform/network/soup/SoupNetworkSession.h:
38588        * platform/network/win/CookieJarWin.cpp:
38589        * platform/network/win/DownloadBundleWin.cpp:
38590        * platform/network/win/ResourceError.h:
38591        * platform/network/win/ResourceHandleWin.cpp:
38592        * platform/network/win/ResourceRequest.h:
38593        * platform/network/win/ResourceResponse.h:
38594        * platform/posix/FileSystemPOSIX.cpp:
38595        * platform/posix/SharedBufferPOSIX.cpp:
38596        * platform/soup/URLSoup.cpp:
38597        * platform/sql/SQLValue.cpp:
38598        * platform/sql/SQLValue.h:
38599        * platform/sql/SQLiteAuthorizer.cpp:
38600        * platform/sql/SQLiteDatabase.cpp:
38601        * platform/sql/SQLiteDatabase.h:
38602        * platform/sql/SQLiteStatement.cpp:
38603        * platform/sql/SQLiteStatement.h:
38604        * platform/sql/SQLiteTransaction.cpp:
38605        * platform/sql/SQLiteTransaction.h:
38606        * platform/text/SuffixTree.h:
38607        * platform/text/TextAllInOne.cpp:
38608        * platform/text/TextBoundaries.cpp:
38609        * platform/text/TextBoundaries.h:
38610        * platform/text/TextCodec.cpp:
38611        * platform/text/TextCodec.h:
38612        * platform/text/TextCodecASCIIFastPath.h:
38613        * platform/text/TextCodecICU.cpp:
38614        * platform/text/TextCodecICU.h:
38615        * platform/text/TextCodecLatin1.cpp:
38616        * platform/text/TextCodecLatin1.h:
38617        * platform/text/TextCodecUTF16.cpp:
38618        * platform/text/TextCodecUTF16.h:
38619        * platform/text/TextCodecUTF8.cpp:
38620        * platform/text/TextCodecUTF8.h:
38621        * platform/text/TextCodecUserDefined.cpp:
38622        * platform/text/TextCodecUserDefined.h:
38623        * platform/text/TextDirection.h:
38624        * platform/text/TextEncoding.cpp:
38625        * platform/text/TextEncoding.h:
38626        * platform/text/TextEncodingRegistry.cpp:
38627        * platform/text/TextEncodingRegistry.h:
38628        * platform/text/TextStream.cpp:
38629        * platform/text/TextStream.h:
38630        * platform/text/UnicodeBidi.h:
38631        * platform/text/mac/CharsetData.h:
38632        * platform/text/mac/TextBoundaries.mm:
38633        * platform/text/mac/TextCodecMac.cpp:
38634        * platform/text/mac/TextCodecMac.h:
38635        * platform/text/mac/character-sets.txt:
38636        * platform/text/mac/make-charset-table.pl:
38637        * platform/text/win/TextCodecWin.h:
38638        * platform/win/BString.cpp:
38639        * platform/win/BString.h:
38640        * platform/win/COMPtr.h:
38641        * platform/win/ClipboardUtilitiesWin.cpp:
38642        * platform/win/ClipboardUtilitiesWin.h:
38643        * platform/win/ContextMenuItemWin.cpp:
38644        * platform/win/ContextMenuWin.cpp:
38645        * platform/win/CursorWin.cpp:
38646        * platform/win/DragDataWin.cpp:
38647        * platform/win/DragImageCGWin.cpp:
38648        * platform/win/DragImageCairoWin.cpp:
38649        * platform/win/DragImageWin.cpp:
38650        * platform/win/FileSystemWin.cpp:
38651        * platform/win/GDIObjectCounter.cpp:
38652        * platform/win/GDIObjectCounter.h:
38653        * platform/win/HWndDC.h:
38654        * platform/win/KeyEventWin.cpp:
38655        * platform/win/LanguageWin.cpp:
38656        * platform/win/MIMETypeRegistryWin.cpp:
38657        * platform/win/PasteboardWin.cpp:
38658        * platform/win/PlatformMouseEventWin.cpp:
38659        * platform/win/PlatformScreenWin.cpp:
38660        * platform/win/SharedBufferWin.cpp:
38661        * platform/win/SharedTimerWin.cpp:
38662        * platform/win/SoftLinking.h:
38663        * platform/win/SoundWin.cpp:
38664        * platform/win/StructuredExceptionHandlerSuppressor.cpp:
38665        * platform/win/TemporaryLinkStubs.cpp:
38666        * platform/win/WCDataObject.cpp:
38667        * platform/win/WCDataObject.h:
38668        * platform/win/WebCoreTextRenderer.cpp:
38669        * platform/win/WebCoreTextRenderer.h:
38670        * platform/win/WheelEventWin.cpp:
38671        * platform/win/WidgetWin.cpp:
38672        * platform/win/WindowMessageBroadcaster.cpp:
38673        * platform/win/WindowMessageBroadcaster.h:
38674        * platform/win/WindowMessageListener.h:
38675        * platform/win/WindowsTouch.h:
38676        * platform/win/makesafeseh.asm:
38677        * plugins/PluginDatabase.cpp:
38678        * plugins/PluginDatabase.h:
38679        * plugins/PluginDebug.cpp:
38680        * plugins/PluginDebug.h:
38681        * plugins/PluginPackage.cpp:
38682        * plugins/PluginPackage.h:
38683        * plugins/PluginQuirkSet.h:
38684        * plugins/PluginStream.cpp:
38685        * plugins/PluginStream.h:
38686        * plugins/PluginView.cpp:
38687        * plugins/PluginView.h:
38688        * plugins/efl/PluginPackageEfl.cpp:
38689        * plugins/efl/PluginViewEfl.cpp:
38690        * plugins/gtk/PluginPackageGtk.cpp:
38691        * plugins/gtk/PluginViewGtk.cpp:
38692        * plugins/mac/PluginPackageMac.cpp:
38693        * plugins/mac/PluginViewMac.mm:
38694        * plugins/npapi.cpp:
38695        * plugins/npfunctions.h:
38696        * plugins/npruntime.h:
38697        * plugins/win/PluginDatabaseWin.cpp:
38698        * plugins/win/PluginPackageWin.cpp:
38699        * plugins/win/PluginViewWin.cpp:
38700        * plugins/x11/PluginViewX11.cpp:
38701        * rendering/EllipsisBox.cpp:
38702        * rendering/EllipsisBox.h:
38703        * rendering/FilterEffectRenderer.cpp:
38704        * rendering/FilterEffectRenderer.h:
38705        * rendering/HitTestLocation.h:
38706        * rendering/HitTestRequest.h:
38707        * rendering/HitTestResult.h:
38708        * rendering/HitTestingTransformState.cpp:
38709        * rendering/HitTestingTransformState.h:
38710        * rendering/RenderBoxRegionInfo.h:
38711        * rendering/RenderButton.cpp:
38712        * rendering/RenderButton.h:
38713        * rendering/RenderDeprecatedFlexibleBox.cpp:
38714        * rendering/RenderDeprecatedFlexibleBox.h:
38715        * rendering/RenderFieldset.cpp:
38716        * rendering/RenderFrameBase.cpp:
38717        * rendering/RenderFrameBase.h:
38718        * rendering/RenderFrameSet.cpp:
38719        * rendering/RenderGeometryMap.cpp:
38720        * rendering/RenderGeometryMap.h:
38721        * rendering/RenderGrid.cpp:
38722        * rendering/RenderGrid.h:
38723        * rendering/RenderHTMLCanvas.cpp:
38724        * rendering/RenderHTMLCanvas.h:
38725        * rendering/RenderIFrame.cpp:
38726        * rendering/RenderIFrame.h:
38727        * rendering/RenderLayerBacking.cpp:
38728        * rendering/RenderLayerBacking.h:
38729        * rendering/RenderLayerCompositor.cpp:
38730        * rendering/RenderLayerCompositor.h:
38731        * rendering/RenderLineBoxList.cpp:
38732        * rendering/RenderLineBoxList.h:
38733        * rendering/RenderListBox.cpp:
38734        * rendering/RenderListBox.h:
38735        * rendering/RenderMarquee.h:
38736        * rendering/RenderMedia.cpp:
38737        * rendering/RenderMedia.h:
38738        * rendering/RenderMultiColumnFlowThread.cpp:
38739        * rendering/RenderMultiColumnFlowThread.h:
38740        * rendering/RenderMultiColumnSet.cpp:
38741        * rendering/RenderMultiColumnSet.h:
38742        * rendering/RenderNamedFlowThread.cpp:
38743        * rendering/RenderNamedFlowThread.h:
38744        * rendering/RenderRegionSet.cpp:
38745        * rendering/RenderRegionSet.h:
38746        * rendering/RenderReplica.cpp:
38747        * rendering/RenderReplica.h:
38748        * rendering/RenderTheme.cpp:
38749        * rendering/RenderTheme.h:
38750        * rendering/RenderThemeMac.h:
38751        * rendering/RenderThemeWin.h:
38752        * rendering/RenderThemeWinCE.cpp:
38753        * rendering/RenderThemeWinCE.h:
38754        * rendering/RenderTreeAsText.cpp:
38755        * rendering/RenderTreeAsText.h:
38756        * rendering/RenderVTTCue.cpp:
38757        * rendering/RenderVTTCue.h:
38758        * rendering/RenderVideo.cpp:
38759        * rendering/RenderVideo.h:
38760        * rendering/RenderView.h:
38761        * rendering/style/SVGRenderStyle.cpp:
38762        * rendering/style/SVGRenderStyle.h:
38763        * rendering/style/SVGRenderStyleDefs.cpp:
38764        * rendering/style/SVGRenderStyleDefs.h:
38765        * rendering/style/StyleFilterData.cpp:
38766        * rendering/style/StyleFilterData.h:
38767        * rendering/style/StylePendingImage.h:
38768        * rendering/svg/RenderSVGBlock.cpp:
38769        * rendering/svg/RenderSVGBlock.h:
38770        * rendering/svg/RenderSVGForeignObject.cpp:
38771        * rendering/svg/RenderSVGForeignObject.h:
38772        * rendering/svg/RenderSVGImage.cpp:
38773        * rendering/svg/RenderSVGInline.h:
38774        * rendering/svg/RenderSVGInlineText.cpp:
38775        * rendering/svg/RenderSVGPath.h:
38776        * rendering/svg/RenderSVGShape.h:
38777        * rendering/svg/RenderSVGTSpan.h:
38778        * rendering/svg/RenderSVGText.cpp:
38779        * rendering/svg/RenderSVGText.h:
38780        * rendering/svg/SVGInlineFlowBox.cpp:
38781        * rendering/svg/SVGInlineFlowBox.h:
38782        * rendering/svg/SVGRenderTreeAsText.cpp:
38783        * rendering/svg/SVGRenderTreeAsText.h:
38784        * rendering/svg/SVGRootInlineBox.cpp:
38785        * rendering/svg/SVGRootInlineBox.h:
38786        * storage/StorageEventDispatcher.h:
38787        * svg/SVGException.cpp:
38788        * svg/graphics/SVGImageChromeClient.h:
38789        * workers/Worker.cpp:
38790        * workers/Worker.h:
38791        * workers/Worker.idl:
38792        * workers/WorkerEventQueue.cpp:
38793        * workers/WorkerEventQueue.h:
38794        * workers/WorkerGlobalScope.cpp:
38795        * workers/WorkerGlobalScope.h:
38796        * workers/WorkerGlobalScope.idl:
38797        * workers/WorkerLocation.cpp:
38798        * workers/WorkerLocation.h:
38799        * workers/WorkerLocation.idl:
38800        * workers/WorkerMessagingProxy.cpp:
38801        * workers/WorkerMessagingProxy.h:
38802        * workers/WorkerScriptLoader.cpp:
38803        * workers/WorkerScriptLoader.h:
38804        * workers/WorkerScriptLoaderClient.h:
38805        * workers/WorkerThread.cpp:
38806        * workers/WorkerThread.h:
38807        * xml/DOMParser.h:
38808        * xml/DOMParser.idl:
38809        * xml/NativeXPathNSResolver.cpp:
38810        * xml/NativeXPathNSResolver.h:
38811        * xml/XMLHttpRequest.idl:
38812        * xml/XMLHttpRequestException.cpp:
38813        * xml/XMLHttpRequestException.h:
38814        * xml/XMLHttpRequestException.idl:
38815        * xml/XMLHttpRequestProgressEvent.h:
38816        * xml/XMLHttpRequestProgressEvent.idl:
38817        * xml/XMLHttpRequestUpload.idl:
38818        * xml/XMLSerializer.h:
38819        * xml/XMLSerializer.idl:
38820        * xml/XPathEvaluator.cpp:
38821        * xml/XPathEvaluator.h:
38822        * xml/XPathEvaluator.idl:
38823        * xml/XPathException.cpp:
38824        * xml/XPathException.h:
38825        * xml/XPathException.idl:
38826        * xml/XPathExpression.idl:
38827        * xml/XPathExpressionNode.cpp:
38828        * xml/XPathNSResolver.cpp:
38829        * xml/XPathNSResolver.h:
38830        * xml/XPathNSResolver.idl:
38831        * xml/XPathNodeSet.h:
38832        * xml/XPathResult.idl:
38833        * xml/XPathUtil.h:
38834        * xml/XPathVariableReference.cpp:
38835        * xml/XSLTProcessor.idl:
38836        * xml/XSLTUnicodeSort.cpp:
38837        * xml/XSLTUnicodeSort.h:
38838
388392014-03-14  Simon Fraser  <simon.fraser@apple.com>
38840
38841        Fix scrollperf logging
38842        https://bugs.webkit.org/show_bug.cgi?id=130278
38843        <rdar://problem/16320003>
38844
38845        Reviewed by Anders Carlsson.
38846        
38847        r165493 broke scrollperf logging by adding in the scroll position
38848        to the viewport rect, which used to be 0,0 based. Restore
38849        the previous behavior.
38850
38851        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
38852        (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
38853
388542014-03-14  Zalan Bujtas  <zalan@apple.com>
38855
38856        Subpixel rendering: border-radius painting falls back to rectangle at subpixel positions.
38857        https://bugs.webkit.org/show_bug.cgi?id=130272
38858
38859        Unreviewed. Missing piece from http://trac.webkit.org/changeset/165670
38860
38861        * platform/graphics/RoundedRect.cpp:
38862        (WebCore::RoundedRect::pixelSnappedRoundedRectForPainting):
38863
388642014-03-14  Zalan Bujtas  <zalan@apple.com>
38865
38866        Subpixel rendering: border-radius painting falls back to rectangle at subpixel positions.
38867        https://bugs.webkit.org/show_bug.cgi?id=130272
38868
38869        Reviewed by Simon Fraser.
38870
38871        Rounded rectangle's radius needs adjustment after its containing rect gets pixel snapped.
38872        Keeping the old radius value could make rounded rectangle non-renderable, because the
38873        originally calculated radius length does not fit the snapped rectangle anymore.
38874
38875        Test: fast/borders/hidpi-border-radius-outer-border-goes-rectangle.html
38876
38877        * platform/graphics/RoundedRect.cpp:
38878        (WebCore::RoundedRect::pixelSnappedRoundedRectForPainting):
38879        * rendering/RenderBoxModelObject.cpp:
38880        (WebCore::RenderBoxModelObject::paintBorder):
38881
388822014-03-14  Simon Fraser  <simon.fraser@apple.com>
38883
38884        [iOS WK2] background-attachment: fixed renders oddly, moves around
38885        https://bugs.webkit.org/show_bug.cgi?id=130277
38886        <rdar://problem/16332883>
38887
38888        Reviewed by Tim Horton.
38889
38890        If we have a counter-scrolling layer (for a fixed background), move
38891        it around when changing the viewport.
38892
38893        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
38894        (WebCore::ScrollingTreeScrollingNodeIOS::updateForViewport):
38895
388962014-03-14  Jae Hyun Park  <jaepark@webkit.org>
38897
38898        [Texmap] Remove duplicated code in TextureMapperLayer
38899        https://bugs.webkit.org/show_bug.cgi?id=130173
38900
38901        Reviewed by Martin Robinson.
38902
38903        This patch is a simple refactoring to remove duplicated code in
38904        TextureMapperLayer.
38905
38906        * platform/graphics/texmap/TextureMapperLayer.cpp:
38907        (WebCore::TextureMapperLayer::~TextureMapperLayer):
38908        (WebCore::TextureMapperLayer::removeFromParent):
38909
389102014-03-14  Simon Fraser  <simon.fraser@apple.com>
38911
38912        Release-assert if someone starts the WebThread in the WebProcess
38913        https://bugs.webkit.org/show_bug.cgi?id=130270
38914        <rdar://problem/16332380>
38915
38916        Reviewed by Sam Weinig.
38917
38918        If someone tries to start the WebThread in the WebProcess, assert,
38919        even in release builds, because this should never happen.
38920
38921        * platform/ios/wak/WebCoreThread.mm:
38922        (WebThreadEnable):
38923
389242014-03-14  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
38925
38926        Clean up unused externs from WebCore logging.
38927        https://bugs.webkit.org/show_bug.cgi?id=130240
38928
38929        Reviewed by Andreas Kling.
38930
38931        * platform/Logging.h:
38932
389332014-03-14  James Craig  <jcraig@apple.com>
38934
38935        AX: AccessibilityObject::invalidStatus() is incorrect when aria-invalid="undefined" or whitespace
38936        https://bugs.webkit.org/show_bug.cgi?id=130071
38937
38938        Reviewed by Chris Fleizach.
38939
38940        Accounted for whitespace values and the explicit string, "undefined".
38941
38942        Test: accessibility/aria-invalid.html
38943
38944        * accessibility/AccessibilityObject.cpp:
38945        (WebCore::AccessibilityObject::invalidStatus):
38946        * accessibility/AccessibilityObject.h:
38947        * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
38948        (getAttributeSetForAccessibilityObject):
38949
389502014-03-14  Bear Travis  <betravis@adobe.com>
38951
38952        [CSS Shapes] CSS parser accepts trailing position arguments
38953        https://bugs.webkit.org/show_bug.cgi?id=129514
38954
38955        Reviewed by Andreas Kling.
38956
38957        Add a check to make sure there are no remaining function args
38958        following a position in the circle() and ellipse() css shape
38959        functions.
38960
38961        Updated existing parsing tests.
38962
38963        * css/CSSParser.cpp:
38964        (WebCore::CSSParser::parseBasicShapeCircle):
38965        (WebCore::CSSParser::parseBasicShapeEllipse):
38966
389672014-03-14  Simon Fraser  <simon.fraser@apple.com>
38968
38969        Fix the iOS build and sort the exports file.
38970
38971        * WebCore.exp.in:
38972
389732014-03-14  Simon Fraser  <simon.fraser@apple.com>
38974
38975        [iOS WK2] Improve behavior of fixed elments on zooming
38976        https://bugs.webkit.org/show_bug.cgi?id=130253
38977
38978        Reviewed by Beth Dakin.
38979
38980        Correctly reposition right- and bottom-relative position:fixed
38981        elements on zooming in WK2 iOS by telling the scrolling tree
38982        about zoom-related viewport changes.
38983
38984        * WebCore.exp.in:
38985        * page/FrameView.cpp:
38986        (WebCore::FrameView::rectForViewportConstrainedObjects):
38987        (WebCore::FrameView::viewportConstrainedObjectsRect): We need to be able to
38988        recompute the fixed position rect from the scrolling tree on iOS, so we need
38989        a static function, similar to scrollOffsetForFixedPosition(), that computes
38990        the constrained viewport.
38991        * page/FrameView.h:
38992        * page/Page.cpp:
38993        (WebCore::Page::setPageScaleFactor): When scrolling (and, by implication, zooming)
38994        is delegated, then setPageScaleFactor() should not affect the scroll position.
38995        * page/scrolling/AsyncScrollingCoordinator.cpp:
38996        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated): Go back to just
38997        passing the visibleContentRect() for iOS.
38998        * page/scrolling/ScrollingTree.cpp:
38999        (WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling): Entrypoint to
39000        the scrolling tree, called when the viewport is changed by zooming.
39001        * page/scrolling/ScrollingTree.h:
39002        * page/scrolling/ScrollingTreeScrollingNode.h:
39003        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
39004        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
39005        (WebCore::ScrollingTreeScrollingNodeIOS::setScrollLayerPosition): Use the
39006        new FrameView::rectForViewportConstrainedObjects() to compute the correct viewport
39007        for fixed/sticky child nodes.
39008        (WebCore::ScrollingTreeScrollingNodeIOS::updateForViewport):
39009        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
39010        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
39011        (WebCore::ScrollingTreeScrollingNodeMac::updateForViewport):
39012
390132014-03-14  Dirk Schulze  <krit@webkit.org>
39014
39015        Refactor Path to Path2D and remove currentPath
39016        https://bugs.webkit.org/show_bug.cgi?id=130236
39017
39018        Reviewed by Dean Jackson.
39019
39020        Other implementations prefer Path2D over Path. Furthermore, currentPath is not the right
39021        way to apply a Path2D object to a context. Main argument is that currentPath creates a copy
39022        of the Path2D object. Instead we pass Path2D as argument to fill, stroke and clip now.
39023
39024        Tests: fast/canvas/canvas-clip-path.html
39025               fast/canvas/canvas-fill-path.html
39026               fast/canvas/canvas-stroke-path.html
39027
39028        * bindings/scripts/CodeGeneratorJS.pm: WebIDL parser didn't handle enumerations
39029            for overloaded methods at all.
39030        (GenerateParametersCheckExpression):
39031        * html/canvas/CanvasRenderingContext2D.cpp: New functions with DOMPath argument.
39032        (WebCore::CanvasRenderingContext2D::fill):
39033        (WebCore::CanvasRenderingContext2D::stroke):
39034        (WebCore::CanvasRenderingContext2D::clip):
39035        (WebCore::CanvasRenderingContext2D::fillInternal): Internal method to avoid code duplication
39036            and copy operation.
39037        (WebCore::CanvasRenderingContext2D::strokeInternal): Ditto.
39038        (WebCore::CanvasRenderingContext2D::clipInternal): Ditto.
39039        * html/canvas/CanvasRenderingContext2D.h:
39040        * html/canvas/CanvasRenderingContext2D.idl:
39041        * html/canvas/DOMPath.idl: Rename Path to Path2D.
39042
390432014-03-14  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
39044
39045        ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder should take a const reference to InsertedNodes
39046        https://bugs.webkit.org/show_bug.cgi?id=130232
39047
39048        Reviewed by Andreas Kling.
39049
39050        This method doesn't modify InsertedNodes object.
39051
39052        No new tests, no behavior change.
39053
39054        * editing/ReplaceSelectionCommand.cpp:
39055        (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
39056        * editing/ReplaceSelectionCommand.h:
39057
390582014-03-14  Jer Noble  <jer.noble@apple.com>
39059
39060        [EME] Extend the lifetime of MediaKeySession.
39061        https://bugs.webkit.org/show_bug.cgi?id=129841
39062
39063        Reviewed by Eric Carlson.
39064
39065        Test: media/encrypted-media/encrypted-media-session-lifetime.html
39066
39067        In anticipation of guidance to be added to the EME Spec <https://www.w3.org/Bugs/Public/show_bug.cgi?id=24771>,
39068        extend the lifetime of MediaKeySession by making the session an ActiveDOMObject, and returning true to
39069        hasPendingActivity when the session is both not closed and is associated with a live MediaKeys object.
39070
39071        Additionally, keep the object from being destroyed while events are pending.
39072
39073        * Modules/encryptedmedia/MediaKeySession.cpp:
39074        (WebCore::MediaKeySession::MediaKeySession):
39075        * Modules/encryptedmedia/MediaKeySession.h:
39076        * Modules/encryptedmedia/MediaKeySession.idl:
39077
390782014-03-14  Ryosuke Niwa  <rniwa@webkit.org>
39079
39080        Remove an unused function fix builds.
39081
39082        * platform/mac/HTMLConverter.mm:
39083
390842014-03-14  Frédéric Wang  <fred.wang@free.fr>
39085
39086        FontCache: Replace DEPRECATED_DEFINE_STATIC_LOCAL with static NeverDestroyed<T>.
39087        https://bugs.webkit.org/show_bug.cgi?id=130233
39088
39089        Reviewed by Andreas Kling.
39090
39091        No new tests.
39092
39093        * platform/graphics/FontCache.cpp:
39094        (WebCore::fontCache):
39095        (WebCore::FontVerticalDataCacheKeyTraits::emptyValue):
39096        (WebCore::fontVerticalDataCacheInstance):
39097        (WebCore::FontDataCacheKeyTraits::emptyValue):
39098        * platform/graphics/FontCache.h:
39099
391002014-03-11  Oliver Hunt  <oliver@apple.com>
39101
39102        Improve dom error messages
39103        https://bugs.webkit.org/show_bug.cgi?id=130103
39104
39105        Reviewed by Andreas Kling.
39106
39107        Make the DOM error messages more descriptive, and update bindings tests.
39108
39109        * bindings/scripts/CodeGeneratorJS.pm:
39110        (GenerateImplementation):
39111        (GenerateParametersCheck):
39112        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
39113        (WebCore::jsTestActiveDOMObjectExcitingAttr):
39114        (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
39115        (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
39116        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
39117        (WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
39118        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
39119        (WebCore::jsTestEventConstructorAttr1):
39120        (WebCore::jsTestEventConstructorAttr2):
39121        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
39122        (WebCore::jsTestEventTargetPrototypeFunctionItem):
39123        (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
39124        (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
39125        (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
39126        * bindings/scripts/test/JS/JSTestException.cpp:
39127        (WebCore::jsTestExceptionName):
39128        * bindings/scripts/test/JS/JSTestInterface.cpp:
39129        (WebCore::jsTestInterfaceImplementsStr1):
39130        (WebCore::jsTestInterfaceImplementsStr2):
39131        (WebCore::jsTestInterfaceImplementsStr3):
39132        (WebCore::jsTestInterfaceImplementsNode):
39133        (WebCore::jsTestInterfaceSupplementalStr1):
39134        (WebCore::jsTestInterfaceSupplementalStr2):
39135        (WebCore::jsTestInterfaceSupplementalStr3):
39136        (WebCore::jsTestInterfaceSupplementalNode):
39137        (WebCore::setJSTestInterfaceImplementsStr2):
39138        (WebCore::setJSTestInterfaceImplementsStr3):
39139        (WebCore::setJSTestInterfaceImplementsNode):
39140        (WebCore::setJSTestInterfaceSupplementalStr2):
39141        (WebCore::setJSTestInterfaceSupplementalStr3):
39142        (WebCore::setJSTestInterfaceSupplementalNode):
39143        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod1):
39144        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
39145        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod3):
39146        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1):
39147        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
39148        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod3):
39149        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
39150        (WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
39151        * bindings/scripts/test/JS/JSTestObj.cpp:
39152        (WebCore::JSTestObjConstructor::constructJSTestObj):
39153        (WebCore::jsTestObjReadOnlyLongAttr):
39154        (WebCore::jsTestObjReadOnlyStringAttr):
39155        (WebCore::jsTestObjReadOnlyTestObjAttr):
39156        (WebCore::jsTestObjConstructorTestSubObj):
39157        (WebCore::jsTestObjTestSubObjEnabledBySettingConstructor):
39158        (WebCore::jsTestObjEnumAttr):
39159        (WebCore::jsTestObjByteAttr):
39160        (WebCore::jsTestObjOctetAttr):
39161        (WebCore::jsTestObjShortAttr):
39162        (WebCore::jsTestObjUnsignedShortAttr):
39163        (WebCore::jsTestObjLongAttr):
39164        (WebCore::jsTestObjLongLongAttr):
39165        (WebCore::jsTestObjUnsignedLongLongAttr):
39166        (WebCore::jsTestObjStringAttr):
39167        (WebCore::jsTestObjTestObjAttr):
39168        (WebCore::jsTestObjXMLObjAttr):
39169        (WebCore::jsTestObjCreate):
39170        (WebCore::jsTestObjReflectedStringAttr):
39171        (WebCore::jsTestObjReflectedIntegralAttr):
39172        (WebCore::jsTestObjReflectedUnsignedIntegralAttr):
39173        (WebCore::jsTestObjReflectedBooleanAttr):
39174        (WebCore::jsTestObjReflectedURLAttr):
39175        (WebCore::jsTestObjReflectedCustomIntegralAttr):
39176        (WebCore::jsTestObjReflectedCustomBooleanAttr):
39177        (WebCore::jsTestObjReflectedCustomURLAttr):
39178        (WebCore::jsTestObjTypedArrayAttr):
39179        (WebCore::jsTestObjAttrWithGetterException):
39180        (WebCore::jsTestObjAttrWithSetterException):
39181        (WebCore::jsTestObjStringAttrWithGetterException):
39182        (WebCore::jsTestObjStringAttrWithSetterException):
39183        (WebCore::jsTestObjCustomAttr):
39184        (WebCore::jsTestObjWithScriptStateAttribute):
39185        (WebCore::jsTestObjWithScriptExecutionContextAttribute):
39186        (WebCore::jsTestObjWithScriptStateAttributeRaises):
39187        (WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
39188        (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
39189        (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
39190        (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
39191        (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
39192        (WebCore::jsTestObjConditionalAttr1):
39193        (WebCore::jsTestObjConditionalAttr2):
39194        (WebCore::jsTestObjConditionalAttr3):
39195        (WebCore::jsTestObjConditionalAttr4Constructor):
39196        (WebCore::jsTestObjConditionalAttr5Constructor):
39197        (WebCore::jsTestObjConditionalAttr6Constructor):
39198        (WebCore::jsTestObjCachedAttribute1):
39199        (WebCore::jsTestObjCachedAttribute2):
39200        (WebCore::jsTestObjAnyAttribute):
39201        (WebCore::jsTestObjContentDocument):
39202        (WebCore::jsTestObjMutablePoint):
39203        (WebCore::jsTestObjImmutablePoint):
39204        (WebCore::jsTestObjStrawberry):
39205        (WebCore::jsTestObjStrictFloat):
39206        (WebCore::jsTestObjDescription):
39207        (WebCore::jsTestObjId):
39208        (WebCore::jsTestObjHash):
39209        (WebCore::jsTestObjReplaceableAttribute):
39210        (WebCore::jsTestObjNullableDoubleAttribute):
39211        (WebCore::jsTestObjNullableLongAttribute):
39212        (WebCore::jsTestObjNullableBooleanAttribute):
39213        (WebCore::jsTestObjNullableStringAttribute):
39214        (WebCore::jsTestObjNullableLongSettableAttribute):
39215        (WebCore::jsTestObjNullableStringValue):
39216        (WebCore::jsTestObjAttribute):
39217        (WebCore::jsTestObjAttributeWithReservedEnumType):
39218        (WebCore::setJSTestObjTestSubObjEnabledBySettingConstructor):
39219        (WebCore::setJSTestObjEnumAttr):
39220        (WebCore::setJSTestObjByteAttr):
39221        (WebCore::setJSTestObjOctetAttr):
39222        (WebCore::setJSTestObjShortAttr):
39223        (WebCore::setJSTestObjUnsignedShortAttr):
39224        (WebCore::setJSTestObjLongAttr):
39225        (WebCore::setJSTestObjLongLongAttr):
39226        (WebCore::setJSTestObjUnsignedLongLongAttr):
39227        (WebCore::setJSTestObjStringAttr):
39228        (WebCore::setJSTestObjTestObjAttr):
39229        (WebCore::setJSTestObjXMLObjAttr):
39230        (WebCore::setJSTestObjCreate):
39231        (WebCore::setJSTestObjReflectedStringAttr):
39232        (WebCore::setJSTestObjReflectedIntegralAttr):
39233        (WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
39234        (WebCore::setJSTestObjReflectedBooleanAttr):
39235        (WebCore::setJSTestObjReflectedURLAttr):
39236        (WebCore::setJSTestObjReflectedCustomIntegralAttr):
39237        (WebCore::setJSTestObjReflectedCustomBooleanAttr):
39238        (WebCore::setJSTestObjReflectedCustomURLAttr):
39239        (WebCore::setJSTestObjTypedArrayAttr):
39240        (WebCore::setJSTestObjAttrWithGetterException):
39241        (WebCore::setJSTestObjAttrWithSetterException):
39242        (WebCore::setJSTestObjStringAttrWithGetterException):
39243        (WebCore::setJSTestObjStringAttrWithSetterException):
39244        (WebCore::setJSTestObjCustomAttr):
39245        (WebCore::setJSTestObjWithScriptStateAttribute):
39246        (WebCore::setJSTestObjWithScriptExecutionContextAttribute):
39247        (WebCore::setJSTestObjWithScriptStateAttributeRaises):
39248        (WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
39249        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
39250        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
39251        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
39252        (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
39253        (WebCore::setJSTestObjConditionalAttr1):
39254        (WebCore::setJSTestObjConditionalAttr2):
39255        (WebCore::setJSTestObjConditionalAttr3):
39256        (WebCore::setJSTestObjConditionalAttr4Constructor):
39257        (WebCore::setJSTestObjConditionalAttr5Constructor):
39258        (WebCore::setJSTestObjConditionalAttr6Constructor):
39259        (WebCore::setJSTestObjAnyAttribute):
39260        (WebCore::setJSTestObjMutablePoint):
39261        (WebCore::setJSTestObjImmutablePoint):
39262        (WebCore::setJSTestObjStrawberry):
39263        (WebCore::setJSTestObjStrictFloat):
39264        (WebCore::setJSTestObjId):
39265        (WebCore::setJSTestObjReplaceableAttribute):
39266        (WebCore::setJSTestObjNullableLongSettableAttribute):
39267        (WebCore::setJSTestObjNullableStringValue):
39268        (WebCore::setJSTestObjAttributeWithReservedEnumType):
39269        (WebCore::jsTestObjPrototypeFunctionVoidMethod):
39270        (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
39271        (WebCore::jsTestObjPrototypeFunctionByteMethod):
39272        (WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
39273        (WebCore::jsTestObjPrototypeFunctionOctetMethod):
39274        (WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
39275        (WebCore::jsTestObjPrototypeFunctionLongMethod):
39276        (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
39277        (WebCore::jsTestObjPrototypeFunctionObjMethod):
39278        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
39279        (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
39280        (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
39281        (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
39282        (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
39283        (WebCore::jsTestObjPrototypeFunctionSerializedValue):
39284        (WebCore::jsTestObjPrototypeFunctionOptionsObject):
39285        (WebCore::jsTestObjPrototypeFunctionMethodWithException):
39286        (WebCore::jsTestObjPrototypeFunctionCustomMethod):
39287        (WebCore::jsTestObjPrototypeFunctionCustomMethodWithArgs):
39288        (WebCore::jsTestObjPrototypeFunctionAddEventListener):
39289        (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
39290        (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoid):
39291        (WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
39292        (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidException):
39293        (WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
39294        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContext):
39295        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptState):
39296        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
39297        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
39298        (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
39299        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
39300        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
39301        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
39302        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
39303        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
39304        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
39305        (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
39306        (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
39307        (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
39308        (WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArg):
39309        (WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArg):
39310        (WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
39311        (WebCore::jsTestObjPrototypeFunctionConditionalMethod2):
39312        (WebCore::jsTestObjPrototypeFunctionConditionalMethod3):
39313        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
39314        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
39315        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
39316        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
39317        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
39318        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
39319        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
39320        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
39321        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
39322        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
39323        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
39324        (WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
39325        (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
39326        (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
39327        (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
39328        (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
39329        (WebCore::jsTestObjPrototypeFunctionConvert1):
39330        (WebCore::jsTestObjPrototypeFunctionConvert2):
39331        (WebCore::jsTestObjPrototypeFunctionConvert4):
39332        (WebCore::jsTestObjPrototypeFunctionConvert5):
39333        (WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
39334        (WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
39335        (WebCore::jsTestObjPrototypeFunctionOrange):
39336        (WebCore::jsTestObjPrototypeFunctionStrictFunction):
39337        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
39338        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
39339        (WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
39340        (WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
39341        (WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
39342        (WebCore::jsTestObjPrototypeFunctionAny):
39343        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
39344        (WebCore::jsTestSerializedScriptValueInterfaceValue):
39345        (WebCore::jsTestSerializedScriptValueInterfaceReadonlyValue):
39346        (WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
39347        (WebCore::jsTestSerializedScriptValueInterfacePorts):
39348        (WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
39349        (WebCore::setJSTestSerializedScriptValueInterfaceValue):
39350        (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
39351        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
39352        (WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
39353        (WebCore::jsTestTypedefsUnsignedLongLongAttr):
39354        (WebCore::jsTestTypedefsImmutableSerializedScriptValue):
39355        (WebCore::jsTestTypedefsConstructorTestSubObj):
39356        (WebCore::jsTestTypedefsAttrWithGetterException):
39357        (WebCore::jsTestTypedefsAttrWithSetterException):
39358        (WebCore::jsTestTypedefsStringAttrWithGetterException):
39359        (WebCore::jsTestTypedefsStringAttrWithSetterException):
39360        (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
39361        (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
39362        (WebCore::setJSTestTypedefsAttrWithGetterException):
39363        (WebCore::setJSTestTypedefsAttrWithSetterException):
39364        (WebCore::setJSTestTypedefsStringAttrWithGetterException):
39365        (WebCore::setJSTestTypedefsStringAttrWithSetterException):
39366        (WebCore::jsTestTypedefsPrototypeFunctionFunc):
39367        (WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
39368        (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
39369        (WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
39370        (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
39371        (WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
39372        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
39373        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
39374        (WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
39375        (WebCore::jsTestTypedefsPrototypeFunctionMethodWithException):
39376        * bindings/scripts/test/JS/JSattribute.cpp:
39377        (WebCore::jsattributeReadonly):
39378
393792014-03-14  Bear Travis  <betravis@adobe.com>
39380
39381        [CSS Shapes] polygon default fill-rule should be omitted from the serialization
39382        https://bugs.webkit.org/show_bug.cgi?id=129840
39383
39384        Reviewed by Dirk Schulze.
39385
39386        Modifying the default polygon string opening to be "polygon(" rather than
39387        "polygon(nonzero".
39388
39389        Updated existing parsing tests.
39390
39391        * css/CSSBasicShapes.cpp:
39392        (WebCore::buildPolygonString):
39393
393942014-03-14  Brent Fulgham  <bfulgham@apple.com>
39395
39396        Crash when using a mixture of In-Band and Out-of-Band Tracks
39397        https://bugs.webkit.org/show_bug.cgi?id=130247
39398
39399        Reviewed by Eric Carlson.
39400
39401        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
39402        (WebCore::MediaPlayerPrivateAVFoundation::processNewAndRemovedTextTracks): Do not include
39403        the new Out-of-Band placeholder tracks in our counts of in-band tracks.
39404
394052014-03-13  Ryosuke Niwa  <rniwa@webkit.org>
39406
39407        [Mac] Avoid creating DOMCSSStyleDeclaration in WebHTMLConverter
39408        https://bugs.webkit.org/show_bug.cgi?id=130226
39409
39410        Reviewed by Andreas Kling.
39411
39412        Extracted HTMLConverterCaches in C++ that directly calls getPropertyCSSValue on computed style
39413        and inline style to avoid creating Objective-C wrappers for CSSComputedStyleDeclaration.
39414
39415        This improves the runtime of PerformanceTests/Interactive/CopyAll.html from 31-32s to 25-26s (20%).
39416
39417        * platform/mac/HTMLConverter.h:
39418        * platform/mac/HTMLConverter.mm:
39419        (HTMLConverterCaches::computedStylePropertyForElement):
39420        (HTMLConverterCaches::inlineStylePropertyForElement):
39421        (stringFromCSSValue):
39422        (-[WebHTMLConverter _computedStringForNode:property:]):
39423        (floatValueFromPrimitiveValue):
39424        (_getFloat):
39425        (-[WebHTMLConverter _getComputedFloat:forNode:property:]):
39426        (-[WebHTMLConverter _computedColorForNode:property:]):
39427        (-[WebHTMLConverter dealloc]):
39428        (-[WebHTMLConverter init]):
39429
394302014-03-14  James Craig  <jcraig@apple.com>
39431
39432        Web Inspector: AXI: Include Role as an extra attribute in the page overlay.
39433        https://bugs.webkit.org/show_bug.cgi?id=130214
39434
39435        Reviewed by Timothy Hatcher.
39436
39437        Adding Role to the Web Inspector element overlay.
39438
39439        * inspector/InspectorOverlay.cpp:
39440        (WebCore::buildObjectForElementInfo):
39441        * inspector/InspectorOverlayPage.js:
39442        (_createElementTitle):
39443
394442014-03-14  James Craig  <jcraig@apple.com>
39445
39446        Web Inspector: AXI: Expose Accessibility Tree parent of the selected node
39447        https://bugs.webkit.org/show_bug.cgi?id=129943
39448
39449        Reviewed by Timothy Hatcher.
39450
39451        Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
39452
39453        Web Accessibility Node Inspector now displays a link to the AX parent node,
39454        because it's not a 1:1 match with the DOMNode parent.
39455
39456        * inspector/InspectorDOMAgent.cpp: Support for DOMNode.role and AccessibilityProperties.axParentNodeId.
39457        (WebCore::InspectorDOMAgent::buildObjectForNode): Support for role.
39458        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties): Support for axParentNodeId.
39459        * inspector/protocol/DOM.json: Added axParentNodeId on AccessibilityProperties, and role on DOMNode.
39460
394612014-03-14  Andreas Kling  <akling@apple.com>
39462
39463        [Mac] Remove NSURLCache logic from WebCore pressure relief code.
39464        <https://webkit.org/b/130248>
39465
39466        The NSURLCache lives in the networking process and should be cleared
39467        on that end. Furthermore, this code doesn't really do what we thought
39468        it was doing; it merely sets and and resets the limits. No truncation
39469        ever occurred. The intended functionality was implemented in r165342.
39470
39471        Reviewed by Anders Carlsson.
39472
39473        * platform/mac/MemoryPressureHandlerMac.mm:
39474        (WebCore::MemoryPressureHandler::releaseMemory):
39475
394762014-03-14  Andreas Kling  <akling@apple.com>
39477
39478        Simplify jettisoning of style resolvers on memory pressure.
39479        <https://webkit.org/b/129644>
39480
39481        Now that we have Document::allDocuments(), we can jettison all the
39482        style resolvers by walking the set of live documents and calling
39483        clearStyleResolver() on each one, instead of having a function on
39484        Page that walks the frame tree of every living page, etc.
39485
39486        Reviewed by Antti Koivisto.
39487
39488        * page/Page.cpp:
39489        * page/Page.h:
39490        * platform/mac/MemoryPressureHandlerMac.mm:
39491        (WebCore::MemoryPressureHandler::releaseMemory):
39492
394932014-03-07  Jer Noble  <jer.noble@apple.com>
39494
39495        Add Remote Control command support to HTLMediaElement
39496        https://bugs.webkit.org/show_bug.cgi?id=129926
39497
39498        Reviewed by Eric Carlson.
39499
39500        Support the new MediaSession remote control commands by pulling in code from
39501        MediaControlElementTypes to control scanning.
39502
39503        * html/HTMLMediaElement.cpp:
39504        (WebCore::HTMLMediaElement::HTMLMediaElement):
39505        * html/HTMLMediaElement.h:
39506        * html/MediaController.cpp:
39507        (MediaController::beginScanning): Moved from MediaControlElementTypes.
39508        (MediaController::endScanning): Ditto.
39509        * html/MediaController.h:
39510        * html/MediaControllerInterface.h:
39511
39512        Remove all the scanning code from MediaControlSeekButtonElement.
39513        * html/shadow/MediaControlElementTypes.cpp:
39514        (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement):
39515        (WebCore::MediaControlSeekButtonElement::setActive):
39516        * html/shadow/MediaControlElementTypes.h:
39517
395182014-03-14  Krzysztof Czech  <k.czech@samsung.com>
39519
39520        Move WebSpeech code to use std::unique_ptr
39521        https://bugs.webkit.org/show_bug.cgi?id=130231
39522
39523        Reviewed by Anders Carlsson.
39524
39525        Replace uses of OwnPtr and PassOwnPtr in WebSpeech code with std::unique_ptr.
39526
39527        No new tests. Covered by existing ones.
39528
39529        * Modules/speech/SpeechRecognitionController.cpp:
39530        * Modules/speech/SpeechRecognitionController.h:
39531        * Modules/speech/SpeechSynthesis.cpp:
39532        (WebCore::SpeechSynthesis::setPlatformSynthesizer):
39533        (WebCore::SpeechSynthesis::getVoices):
39534        (WebCore::SpeechSynthesis::startSpeakingImmediately):
39535        * Modules/speech/SpeechSynthesis.h:
39536        * WebCore.exp.in:
39537        * platform/PlatformSpeechSynthesizer.cpp:
39538        * platform/PlatformSpeechSynthesizer.h:
39539        * platform/mock/PlatformSpeechSynthesizerMock.cpp:
39540        * platform/mock/PlatformSpeechSynthesizerMock.h:
39541        * testing/Internals.cpp:
39542        (WebCore::Internals::enableMockSpeechSynthesizer):
39543
395442014-03-13  Anders Carlsson  <andersca@apple.com>
39545
39546        Move visited link handling to VisitedLinkTableController and VisitedLinkProvider
39547        https://bugs.webkit.org/show_bug.cgi?id=130223
39548        <rdar://problem/16315792>
39549
39550        Reviewed by Dan Bernstein.
39551
39552        Export symbols needed by WebKit2.
39553
39554        * WebCore.exp.in:
39555
395562014-03-12  Martin Robinson  <mrobinson@igalia.com>
39557
39558        [GTK] Fix unused parameter warnings in the GObject WebKitDOM bindings
39559        https://bugs.webkit.org/show_bug.cgi?id=130174
39560
39561        Reviewed by Daniel Bates.
39562
39563        * bindings/gobject/DOMObjectCache.cpp:
39564        (WebKit::weakRefNotify): Fix unused parameters.
39565        * bindings/gobject/WebKitDOMDeprecated.cpp: Ditto.
39566        * bindings/gobject/WebKitDOMObject.cpp: Ditto.
39567        * bindings/scripts/CodeGeneratorGObject.pm: Generate UNUSED_PARAM when appropriate and clean
39568        up the getter and setter code generation a little to make it easier to read.
39569
395702014-03-14  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
39571
39572        Build fix with SUBPIXEL_LAYOUT disabled
39573        https://bugs.webkit.org/show_bug.cgi?id=130210
39574
39575        Reviewed by Daniel Bates.
39576
39577        Use pre-incremeent operator for LayoutUnit instead of post-increment operator as LayoutUnit doesn't support the
39578        latter and we don't make use of the return value.
39579
39580        * dom/Element.cpp:
39581        (WebCore::adjustForLocalZoom):
39582
395832014-03-14  Mihnea Ovidenie  <mihnea@adobe.com>
39584
39585        [CSSRegions] Inline-block child of content node incorrectly clipped
39586        https://bugs.webkit.org/show_bug.cgi?id=130229
39587
39588        Reviewed by Andrei Bucur.
39589
39590        Constrain the target box rect to the region box rect only if we are able
39591        to determine the region range for box. If we cannot do that, getRegionRangeForBox
39592        returns null values for start and end region and we should not perform the clamping.
39593
39594        Test: fast/regions/inlineblock-child-inlineblock-contentnode-in-region.html
39595
39596        * rendering/RenderRegion.cpp:
39597        (WebCore::RenderRegion::rectFlowPortionForBox):
39598
395992014-03-14  Zan Dobersek  <zdobersek@igalia.com>
39600
39601        Unnecessary ImplementationLacksVTable IDL attribute used for RTCConfiguration, RTCIceServer
39602        https://bugs.webkit.org/show_bug.cgi?id=130230
39603
39604        Reviewed by Philippe Normand.
39605
39606        The RTCConfiguration and RTCIceServer classes do not own virtual tables, so using the
39607        ImplementationLacksVTable attribute in the IDL interface leads to a compile-time assertion
39608        failure in the generates JSC wrappers because none of the classes is polymorphic.
39609
39610        * Modules/mediastream/RTCConfiguration.idl:
39611        * Modules/mediastream/RTCIceServer.idl:
39612
396132014-03-14  Javier Fernandez  <jfernandez@igalia.com>
39614
39615        [CSS Grid Layout] the "grid-template-areas" is not identified as computable property.
39616        https://bugs.webkit.org/show_bug.cgi?id=130073
39617
39618        Reviewed by Sergio Villar Senin.
39619
39620        The "grid-template-areas" property is a computable CSS property, so it should be
39621        handled accordingly by the Web Inspector.
39622
39623        No new tests.
39624
39625        * css/CSSComputedStyleDeclaration.cpp:
39626        CSSPropertyWebkitGridTemplateAreas added to the computedProperties array.
39627
396282014-03-14  Sergio Villar Senin  <svillar@igalia.com>
39629
39630        [CSS Grid layout] Initial position in span not correctly computed sometimes
39631        https://bugs.webkit.org/show_bug.cgi?id=130124
39632
39633        Reviewed by Darin Adler.
39634
39635        The code uses std::lower_bound() to get the first grid line
39636        position before a given resolved position in a Vector. That
39637        function returns an iterator pointing to the first value not
39638        "strictly less" than the given one. Consequently, the returned
39639        position might be actually located after the resolved final
39640        position. In those cases we need to select the previous position
39641        in the Vector (which is guaranted to be "< resolved position" due
39642        to how std::lower_bound() works).
39643
39644        For example, if we have vector=[2,5,8] as grid positions, and we
39645        need the first position before 7, std::lower_bound(vector, 7) will
39646        point to 8 (first value not < 7). It's obvious that we should
39647        select 5 instead. Should the pointed value be equal, then we
39648        should do nothing, because the indexes mean tracks, so the item
39649        will be placed in just one cell of the grid.
39650
39651        * rendering/RenderGrid.cpp:
39652        (WebCore::firstNamedGridLineBeforePosition):
39653        (WebCore::RenderGrid::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition):
39654
396552014-03-14  Zsolt Borbely  <borbezs@inf.u-szeged.hu>
39656
39657        Fix the !ENABLE(SVG_FONTS) build
39658        https://bugs.webkit.org/show_bug.cgi?id=130193
39659
39660        Reviewed by Dirk Schulze.
39661
39662        Add missing ENABLE(SVG_FONTS) guards for createGlyphToPathTranslator() function
39663        in SVGTextRunRenderingContext.h and TextRun.h, because when the SVG_FONTS are
39664        disabled the function is not implemented.
39665
39666        * platform/graphics/TextRun.h:
39667        * rendering/svg/SVGTextRunRenderingContext.h:
39668
396692014-03-14  Sergio Villar Senin  <svillar@igalia.com>
39670
39671        Unreviewed build fix after r165607. There were two missing replaces.
39672
39673        * bindings/scripts/CodeGeneratorJS.pm:
39674        (GenerateImplementation):
39675        * dom/Element.cpp:
39676        (WebCore::attrNodeListMap):
39677
396782014-03-14  Frédéric Wang  <fred.wang@free.fr>
39679
39680        Migrate the MathML stretchy code from UChar to Glyph.
39681        https://bugs.webkit.org/show_bug.cgi?id=128907
39682
39683        Reviewed by Chris Fleizach.
39684
39685        This prepares the MathML stretchy code for future support for the MATH
39686        table. In particular, this uses the glyph index for measuring and
39687        drawing instead of Unicode code point since the MATH table uses glyph
39688        indices. Also, this merges the preferred width and stretchy character
39689        selection into one common path since they will also have to share the
39690        size variants measuring/selection. Finally, we expose a drawGlyphs()
39691        method so that we can draw a glyph by index.
39692
39693        No new tests. This should not change the behavior of the stretchy code.
39694
39695        * platform/graphics/Font.h:
39696        * platform/graphics/GraphicsContext.cpp:
39697        (WebCore::GraphicsContext::drawGlyphs):
39698        * platform/graphics/GraphicsContext.h:
39699        * rendering/mathml/RenderMathMLOperator.cpp:
39700        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
39701        (WebCore::RenderMathMLOperator::boundsForGlyph):
39702        (WebCore::RenderMathMLOperator::heightForGlyph):
39703        (WebCore::RenderMathMLOperator::advanceForGlyph):
39704        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
39705        (WebCore::RenderMathMLOperator::findStretchyData):
39706        (WebCore::RenderMathMLOperator::updateStyle):
39707        (WebCore::RenderMathMLOperator::firstLineBaseline):
39708        (WebCore::RenderMathMLOperator::computeLogicalHeight):
39709        (WebCore::RenderMathMLOperator::paintGlyph):
39710        (WebCore::RenderMathMLOperator::fillWithExtensionGlyph):
39711        (WebCore::RenderMathMLOperator::paint):
39712        (WebCore::RenderMathMLOperator::paintChildren):
39713        * rendering/mathml/RenderMathMLOperator.h:
39714
397152014-03-12  Sergio Villar Senin  <svillar@igalia.com>
39716
39717        Rename DEFINE_STATIC_LOCAL to DEPRECATED_DEFINE_STATIC_LOCAL
39718        https://bugs.webkit.org/show_bug.cgi?id=129612
39719
39720        Reviewed by Darin Adler.
39721
39722        For new code use static NeverDestroyed<T> instead.
39723
39724        Removed the list of changed files as it was huge.
39725
397262014-03-14  Gavin Barraclough  <barraclough@apple.com>
39727
39728        Reduce memory use for static property maps
39729        https://bugs.webkit.org/show_bug.cgi?id=129986
39730
39731        Unreviewed Windows build fix / update bindings test results following r165603.
39732
39733        * bindings/scripts/CodeGeneratorJS.pm:
39734        (GenerateHashTable):
39735        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
39736        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
39737        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
39738        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
39739        (WebCore::jsTestEventTargetPrototypeFunctionItem):
39740        (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
39741        * bindings/scripts/test/JS/JSTestException.cpp:
39742        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
39743        * bindings/scripts/test/JS/JSTestInterface.cpp:
39744        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
39745        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
39746        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
39747        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
39748        * bindings/scripts/test/JS/JSTestNode.cpp:
39749        * bindings/scripts/test/JS/JSTestObj.cpp:
39750        (WebCore::jsTestObjAttrWithGetterException):
39751        (WebCore::jsTestObjStringAttrWithGetterException):
39752        (WebCore::jsTestObjWithScriptStateAttributeRaises):
39753        (WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
39754        (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
39755        (WebCore::jsTestObjNullableStringValue):
39756        (WebCore::jsTestObjPrototypeFunctionByteMethod):
39757        (WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
39758        (WebCore::jsTestObjPrototypeFunctionOctetMethod):
39759        (WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
39760        (WebCore::jsTestObjPrototypeFunctionLongMethod):
39761        (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
39762        (WebCore::jsTestObjPrototypeFunctionObjMethod):
39763        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
39764        (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
39765        (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
39766        (WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
39767        (WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
39768        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
39769        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
39770        (WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
39771        (WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
39772        (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
39773        (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
39774        (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
39775        (WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
39776        (WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
39777        (WebCore::jsTestObjPrototypeFunctionStrictFunction):
39778        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
39779        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
39780        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
39781        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
39782        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
39783        (WebCore::jsTestTypedefsAttrWithGetterException):
39784        (WebCore::jsTestTypedefsStringAttrWithGetterException):
39785        (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
39786        (WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
39787        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
39788        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
39789        (WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
39790        * bindings/scripts/test/JS/JSattribute.cpp:
39791        * bindings/scripts/test/JS/JSreadonly.cpp:
39792
397932014-03-14  Jinwoo Song  <jinwoo7.song@samsung.com>
39794
39795        Use override keyword in BatteryManager
39796        https://bugs.webkit.org/show_bug.cgi?id=130225
39797
39798        Reviewed by Daniel Bates.
39799
39800        * Modules/battery/BatteryManager.h:
39801
398022014-03-12  Gavin Barraclough  <barraclough@apple.com>
39803
39804        Reduce memory use for static property maps
39805        https://bugs.webkit.org/show_bug.cgi?id=129986
39806
39807        Reviewed by Andreas Kling.
39808
39809        Static property tables are currently duplicated on first use from read-only memory into dirty memory
39810        in every process, and since the entries are large (48 bytes) and the tables can be unusually sparse
39811        (we use a custom hash table without a rehash) a lot of memory may be wasted.
39812
39813        * bindings/js/JSDOMBinding.h:
39814        (WebCore::getStaticValueSlotEntryWithoutCaching):
39815        (WebCore::getStaticValueSlotEntryWithoutCaching<JSDOMWrapper>):
39816            - HashEntry -> HashTableValue.
39817        * bindings/js/JSDOMWindowCustom.cpp:
39818        (WebCore::JSDOMWindow::getOwnPropertySlot):
39819            - HashEntry -> HashTableValue.
39820        * bindings/js/JSHistoryCustom.cpp:
39821        (WebCore::JSHistory::getOwnPropertySlotDelegate):
39822            - HashEntry -> HashTableValue.
39823        * bindings/js/JSLocationCustom.cpp:
39824        (WebCore::JSLocation::getOwnPropertySlotDelegate):
39825        (WebCore::JSLocation::putDelegate):
39826            - HashEntry -> HashTableValue.
39827        * bindings/scripts/CodeGeneratorJS.pm:
39828        (GenerateGetOwnPropertySlotBody):
39829            - HashEntry -> HashTableValue.
39830        (GenerateHashTable):
39831            - emit the hash table index into the derived source (we were calculating this already to ensure chaining does not get too deep).
39832
398332014-03-13  Manish R Gurnaney  <m.gurnaney@samsung.com>
39834
39835        Scroll size is not recalculated when absolute left of child is updated
39836        https://bugs.webkit.org/show_bug.cgi?id=123958
39837
39838        Reviewed by Simon Fraser.
39839
39840        Test: fast/css/display-inline-block-scrollbar.html
39841        Actual issue was that whenever there is the content change in the
39842        RenderBlock having inline-block children, The InlineFlowBox while
39843        computing overflow never resets previous value.
39844        
39845        * rendering/InlineFlowBox.cpp:
39846        (WebCore::InlineFlowBox::computeOverflow):
39847        Added code to clear overflow when we start computing overflow for
39848        InlineFlowBox. So as to ScrollSize can be recalculated properly.
39849
398502014-03-13  Zalan Bujtas  <zalan@apple.com>
39851
39852        Pass const RenderStyle& to box decoration functions.
39853        https://bugs.webkit.org/show_bug.cgi?id=130201
39854
39855        Reviewed by Andreas Goran Kling.
39856
39857        No change in functionality.
39858
39859        * rendering/InlineFlowBox.cpp:
39860        (WebCore::InlineFlowBox::paintBoxShadow):
39861        (WebCore::InlineFlowBox::paintBoxDecorations):
39862        (WebCore::InlineFlowBox::paintMask):
39863        * rendering/RenderBox.cpp:
39864        (WebCore::RenderBox::paintBoxDecorations):
39865        (WebCore::RenderBox::paintMaskImages):
39866        * rendering/RenderBoxModelObject.cpp:
39867        (WebCore::RenderBoxModelObject::paintNinePieceImage):
39868        (WebCore::RenderBoxModelObject::paintOneBorderSide):
39869        (WebCore::RenderBoxModelObject::paintBorderSides):
39870        (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
39871        (WebCore::RenderBoxModelObject::paintBorder):
39872        (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
39873        (WebCore::RenderBoxModelObject::getBorderEdgeInfo):
39874        (WebCore::RenderBoxModelObject::borderObscuresBackgroundEdge):
39875        (WebCore::RenderBoxModelObject::borderObscuresBackground):
39876        (WebCore::RenderBoxModelObject::paintBoxShadow):
39877        * rendering/RenderBoxModelObject.h:
39878        * rendering/RenderFieldset.cpp:
39879        (WebCore::RenderFieldset::paintBoxDecorations):
39880        * rendering/RenderTable.cpp:
39881        (WebCore::RenderTable::paintBoxDecorations):
39882        * rendering/RenderTableCell.cpp:
39883        (WebCore::RenderTableCell::paintBoxDecorations):
39884
398852014-03-13  Jinwoo Jeong  <jw00.jeong@samsung.com>
39886
39887        Refactor Vibration algorithm to use only one timer.
39888        https://bugs.webkit.org/show_bug.cgi?id=130059
39889
39890        Reviewed by Darin Adler.
39891
39892        Currently Vibration is using two timers,
39893        one is to start a vibration and another is to check termination of a vibration.
39894        But they do not work in same time, if one of them is fired, then anothor will start.
39895        Thus this patch removes one of them, and manages vibration states by enumeration.
39896
39897        Also, this patch implement the missing part of the algorithm,
39898        which check the maximum length of the vibration pattern and the maximum duration of the vibration.
39899
39900        Lastly, this patch removes unused methods from Vibration.
39901
39902        * Modules/vibration/Vibration.cpp:
39903        (WebCore::Vibration::Vibration):
39904        (WebCore::Vibration::vibrate):
39905        (WebCore::Vibration::cancelVibration):
39906        Removed stopVibration() and its contents moved to cancelVibration().
39907        (WebCore::Vibration::timerFired): Combined timerStartFired() and timerStopFired().
39908        Removed suspendVibration() and resumeVibration(), which is never called since r.
39909        * Modules/vibration/Vibration.h: Added new enumertaion to specify states of Vibration.
39910        (WebCore::Vibration::isVibrating):
39911
399122014-03-13  James Craig  <jcraig@apple.com>
39913
39914        Web Inspector: AXI: Use loc strings for known aria-invalid types
39915        https://bugs.webkit.org/show_bug.cgi?id=129952
39916
39917        Reviewed by Joseph Pecoraro.
39918
39919        Updating inspector-protocol enum and UI display values for @aria-invalid.
39920
39921        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
39922
39923        * inspector/InspectorDOMAgent.cpp: Enum for DOM.AccessibilityPropertiesInvalid
39924        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
39925        * inspector/protocol/DOM.json: Enum for DOM.AccessibilityPropertiesInvalid
39926
399272014-03-13  Dirk Schulze  <krit@webkit.org>
39928
39929        [SVG2] support paint-order presentation attribute
39930        https://bugs.webkit.org/show_bug.cgi?id=129373
39931
39932        Reviewed by Dean Jackson.
39933
39934        Add support for the paint-order property from SVG2. The presentation
39935        attribute/CSS property allows to paint fill, stroke and markers in any order
39936        the author desires.
39937
39938        Firefox supports this but behind a runtime flag. It is just activated in
39939        nightly builds by default.
39940
39941        Chromium supports it behind a runtime flag as well but is going to ship it
39942        pretty soon.
39943
39944        Tests: svg/paint-order/paint-order-fill-expected.svg
39945               svg/paint-order/paint-order-fill-markers-expected.svg
39946               svg/paint-order/paint-order-fill-markers.svg
39947               svg/paint-order/paint-order-fill.svg
39948               svg/paint-order/paint-order-markers-expected.svg
39949               svg/paint-order/paint-order-markers-stroke-expected.svg
39950               svg/paint-order/paint-order-markers-stroke.svg
39951               svg/paint-order/paint-order-markers.svg
39952               svg/paint-order/paint-order-normal-expected.svg
39953               svg/paint-order/paint-order-normal.svg
39954               svg/paint-order/paint-order-stroke-expected.svg
39955               svg/paint-order/paint-order-stroke-marker-expected.svg
39956               svg/paint-order/paint-order-stroke-marker.svg
39957               svg/paint-order/paint-order-stroke.svg
39958               svg/paint-order/paint-order-text-markers-expected.svg
39959               svg/paint-order/paint-order-text-markers.svg
39960               svg/paint-order/paint-order-text-normal-expected.svg
39961               svg/paint-order/paint-order-text-normal.svg
39962               svg/paint-order/paint-order-text-stroke-expected.svg
39963               svg/paint-order/paint-order-text-stroke.svg
39964               svg/paint-order/paint-order-text-tspan-001-expected.svg
39965               svg/paint-order/paint-order-text-tspan-001.svg
39966               svg/paint-order/paint-order-text-tspan-002-expected.svg
39967               svg/paint-order/paint-order-text-tspan-002.svg
39968               svg/paint-order/parsing-paint-order.html
39969
39970        * css/CSSComputedStyleDeclaration.cpp: Computed style for paint-order.
39971        (WebCore::ComputedStyleExtractor::propertyValue):
39972        * css/CSSParser.h:
39973        * css/CSSPropertyNames.in:
39974        * css/CSSValueKeywords.in:
39975        * css/SVGCSSComputedStyleDeclaration.cpp:
39976        (WebCore::paintOrder):
39977        (WebCore::ComputedStyleExtractor::svgPropertyValue):
39978        * css/SVGCSSParser.cpp: Parse paint-order. Take care of serialization
39979            at this point already to get element style correct.
39980        (WebCore::CSSParser::parseSVGValue):
39981        (WebCore::CSSParser::parsePaintOrder):
39982        * css/SVGCSSStyleSelector.cpp:
39983        (WebCore::StyleResolver::applySVGProperty):
39984        * rendering/style/SVGRenderStyle.cpp:
39985        (WebCore::SVGRenderStyle::paintTypesForPaintOrder):
39986        (WebCore::SVGRenderStyle::diff): Repaint on change.
39987        * rendering/style/SVGRenderStyle.h:
39988        (WebCore::SVGRenderStyle::initialPaintOrder):
39989        (WebCore::SVGRenderStyle::setPaintOrder):
39990        (WebCore::SVGRenderStyle::paintOrder):
39991        (WebCore::SVGRenderStyle::InheritedFlags::operator==):
39992        (WebCore::SVGRenderStyle::setBitDefaults):
39993        * rendering/style/SVGRenderStyleDefs.h:
39994        * rendering/svg/RenderSVGShape.cpp: Change order of painting based on paint-order.
39995        (WebCore::RenderSVGShape::strokeShape):
39996        (WebCore::RenderSVGShape::fillStrokeMarkers):
39997        (WebCore::RenderSVGShape::paint):
39998        (WebCore::RenderSVGShape::addFocusRingRects):
39999        * rendering/svg/RenderSVGShape.h:
40000        * rendering/svg/SVGInlineTextBox.cpp:
40001        (WebCore::SVGInlineTextBox::paint): Ditto.
40002        * svg/SVGElement.cpp: Make property a presentation attribute.
40003        (WebCore::populateAttributeNameToCSSPropertyIDMap):
40004        (WebCore::populateAttributeNameToAnimatedPropertyTypeMap):
40005        * svg/svgattrs.in: Add paint-order attribute.
40006
400072014-03-13  Andreas Kling  <akling@apple.com>
40008
40009        Network process instantiates JSC::VM under fake memory pressure.
40010        <https://webkit.org/b/130143>
40011
40012        Stop calling GCController::garbageCollectSoon() in the fake memory
40013        pressure callback. The pressure relief code already schedules GC
40014        by way of discardAllCode() which does reportAbandonedObjectGraph().
40015        This way we don't accidentally instantiate a VM in the networking
40016        process for no reason.
40017
40018        Reviewed by Geoffrey Garen.
40019
40020        * platform/mac/MemoryPressureHandlerMac.mm:
40021        (WebCore::MemoryPressureHandler::install):
40022
400232014-03-13  Diego Pino Garcia  <dpino@igalia.com>
40024
40025        Web Inspector: AXI: Expose focused/focusable state in the Accessibility Node Inspector
40026        https://bugs.webkit.org/show_bug.cgi?id=129779
40027
40028        Reviewed by Timothy Hatcher.
40029
40030        * inspector/InspectorDOMAgent.cpp: Set property "focused".
40031        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
40032        * inspector/protocol/DOM.json: Add property "focused" to
40033        AccessibilityProperties.
40034
400352014-03-12  Jae Hyun Park  <jaepark@webkit.org>
40036
40037        Remove remaining Nix port related files
40038        https://bugs.webkit.org/show_bug.cgi?id=130179
40039
40040        Reviewed by Csaba Osztrogonác.
40041
40042        GLContextFromCurrentEGL was added in r155360 as a part of nix
40043        upstreaming. As Nix port is removed from the source tree, these files
40044        are in no use.
40045
40046        * platform/graphics/egl/GLContextFromCurrentEGL.cpp: Removed.
40047        * platform/graphics/egl/GLContextFromCurrentEGL.h: Removed.
40048
400492014-03-13  Daniel Bates  <dabates@apple.com>
40050
40051        REGRESSION (r160806): Incorrect cascade order of prefixed and non-prefixed variants of
40052        CSS properties box-shadow and background-{clip, origin, size}
40053        https://bugs.webkit.org/show_bug.cgi?id=130102
40054        <rdar://problem/16187037>
40055
40056        Reviewed by Andreas Kling.
40057
40058        Fixes an issues in the computation of the final value for the CSS properties
40059        box-shadow and background-{clip, origin, size} when the definition of a selector
40060        uses both the prefixed and non-prefixed variants (in order) of these properties.
40061
40062        Tests: fast/css/cascade/background-clip-and-webkit-background-clip-cascade-order.html
40063               fast/css/cascade/background-origin-and-webkit-background-origin-cascade-order.html
40064               fast/css/cascade/background-size-and-webkit-background-size-cascade-order.html
40065               fast/css/cascade/box-shadow-and-webkit-box-shadow-cascade-order.html
40066
40067        * css/CSSPropertyNames.in: Add a comment to explain the difference between property
40068        -webkit-box-shadow and property box-shadow.
40069        * css/StyleResolver.cpp:
40070        (WebCore::shouldApplyPropertyInParseOrder): Add prefixed and non-prefixed variants
40071        of box-shadow and background-{clip, origin, size} to the list of properties that need
40072        to be applied in the same order as they were parsed from the stylesheet.
40073
400742014-03-13  Joseph Pecoraro  <pecoraro@apple.com>
40075
40076        Web Inspector: Remove InspectorFrontendHost.loadResourceSynchronously
40077        https://bugs.webkit.org/show_bug.cgi?id=130217
40078
40079        Reviewed by Timothy Hatcher.
40080
40081        This has been replaced by NetworkAgent.loadResource,
40082        which loads asynchronously through the backend.
40083
40084        * inspector/InspectorFrontendHost.cpp:
40085        * inspector/InspectorFrontendHost.h:
40086        * inspector/InspectorFrontendHost.idl:
40087
400882014-03-13  Joseph Pecoraro  <pecoraro@apple.com>
40089
40090        Web Inspector: Network.loadResource should include the response status code
40091        https://bugs.webkit.org/show_bug.cgi?id=130216
40092
40093        Reviewed by Timothy Hatcher.
40094
40095        * inspector/InspectorResourceAgent.cpp:
40096        Record and send the http status code.
40097
40098        * inspector/protocol/Network.json:
40099        Include status code property in the success callback.
40100
401012014-03-13  Joseph Pecoraro  <pecoraro@apple.com>
40102
40103        Web Inspector: Network.loadResource XHR crash if page reloaded while request is ongoing
40104        https://bugs.webkit.org/show_bug.cgi?id=130211
40105
40106        Reviewed by Timothy Hatcher.
40107
40108        Merged from Blink with changes, (patch by vsevik@chromium.org):
40109        http://src.chromium.org/viewvc/blink?view=revision&revision=152712
40110
40111        Using an XMLHttpRequest to download resources had a few issues. Being an
40112        Active DOM Object the load could be paused. Without an extra retain,
40113        when the load was cancelled (e.g. a page reload) the XHR would get
40114        destructed and could cause a crash if the list of active DOM objects
40115        was actively being iterated.
40116
40117        Switch to a DocumentThreadableLoader to manage the load ourselves.
40118        This still uses the Memory cache, but we have a little more control.
40119
40120        * inspector/InspectorResourceAgent.h:
40121        * inspector/InspectorResourceAgent.cpp:
40122        (WebCore::InspectorResourceAgent::InspectorResourceAgent):
40123        (WebCore::InspectorResourceAgent::loadResource):
40124        Switch from XHR to DocumentThreadableLoader.
40125
40126        * xml/XMLHttpRequest.h:
40127        * xml/XMLHttpRequest.cpp:
40128        (WebCore::XMLHttpRequest::XMLHttpRequest):
40129        (WebCore::XMLHttpRequest::createRequest):
40130        (WebCore::XMLHttpRequest::sendForInspector):
40131        Remove the now unnecessary XHR sendForInspector path.
40132
401332014-03-13  Commit Queue  <commit-queue@webkit.org>
40134
40135        Unreviewed, rolling out r165540.
40136        https://bugs.webkit.org/show_bug.cgi?id=130199
40137
40138        caused 1 hidpi test fail (Requested by zalan on #webkit).
40139
40140        Reverted changeset:
40141
40142        "Subpixel rendering: Nested layers with subpixel accumulation
40143        paint to wrong position."
40144        https://bugs.webkit.org/show_bug.cgi?id=130153
40145        http://trac.webkit.org/changeset/165540
40146
401472014-03-13  Benjamin Poulain  <bpoulain@apple.com>
40148
40149        Fix a bunch of mistakes in the parsing of ::cue( and ::cue
40150        https://bugs.webkit.org/show_bug.cgi?id=130113
40151
40152        Reviewed by Andreas Kling.
40153
40154        * css/CSSGrammar.y.in:
40155        * css/CSSParserValues.cpp:
40156        (WebCore::CSSParserSelector::setPseudoTypeValue):
40157        The ::cue() pseudo element "function" was passed as a PseudoClass.
40158        The type was then parsed and considered as a compatibility type to flip
40159        the match type back to PseudoElement.
40160
40161        Instead of all that jazz, just pass the right type from the grammar.
40162
40163        * css/CSSSelector.cpp:
40164        (WebCore::CSSSelector::parsePseudoType):
40165        The non-function ::cue pseudo element use shadow pseudo ID for matching the element.
40166        Since it is unprefixed, it needs to map to one of the Custom types. The previous code
40167        was using String::startsWith() for some reason, change that to a simple equality.
40168
401692014-03-13  Benjamin Poulain  <benjamin@webkit.org>
40170
40171        Clean up RenderStyle creation
40172        https://bugs.webkit.org/show_bug.cgi?id=130180
40173
40174        Reviewed by Andreas Kling.
40175
40176        Use the copy constructor with the default style instead of having a special
40177        constructor for that.
40178
40179        * rendering/style/RenderStyle.cpp:
40180        (WebCore::RenderStyle::create):
40181        (WebCore::RenderStyle::RenderStyle):
40182        * rendering/style/RenderStyle.h:
40183
401842014-03-13  Benjamin Poulain  <bpoulain@apple.com>
40185
40186        The viewport code should not depend on WebKitSystemInterface
40187        https://bugs.webkit.org/show_bug.cgi?id=130218
40188
40189        Reviewed by Tim Horton.
40190
40191        The viewport code cannot be generalized to other ports because it relies
40192        on WebKit system interface to get the device screen size.
40193        This patch fixes that by going through ChromeClient to get the data.
40194
40195        * dom/Document.cpp:
40196        (WebCore::Document::processViewport):
40197        Get the screensize from chrome client.
40198
40199        * dom/ViewportArguments.cpp:
40200        (WebCore::computeViewportAttributes):
40201        This is dead code. Nothing should ever use computeViewportAttributes().
40202
40203        (WebCore::finalizeViewportArguments):
40204        * dom/ViewportArguments.h:
40205        * page/ChromeClient.h:
40206        (WebCore::ChromeClient::viewportScreenSize):
40207
402082014-03-07  Jer Noble  <jer.noble@apple.com>
40209
40210        Add remote control command support to MediaSession.
40211        https://bugs.webkit.org/show_bug.cgi?id=129903
40212
40213        Reviewed by Eric Carlson.
40214
40215        Add the capability to receive remote control commands (currently iOS only) and to
40216        pass those commands through the MediaSessionManager.
40217
40218        Add a new platform class which can listen for remote control commands:
40219        * platform/RemoteCommandListener.cpp: Added.
40220        (WebCore::RemoteCommandListener::create):
40221        * platform/RemoteCommandListener.h: Added.
40222        (WebCore::RemoteCommandListenerClient::~RemoteCommandListenerClient):
40223        (WebCore::RemoteCommandListener::~RemoteCommandListener):
40224        (WebCore::RemoteCommandListener::RemoteCommandListener):
40225        * platform/ios/RemoteCommandListenerIOS.h: Added.
40226        * platform/ios/RemoteCommandListenerIOS.mm: Added.
40227        (WebCore::RemoteCommandListener::create):
40228        (WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS):
40229        (WebCore::RemoteCommandListenerIOS::~RemoteCommandListenerIOS):
40230
40231        Handle remote control command events in HTMLMediaElement and AudioDestinationMac:
40232        * html/HTMLMediaElement.cpp:
40233        (WebCore::HTMLMediaElement::parseAttribute):
40234        * html/HTMLMediaElement.h:
40235        * platform/audio/mac/AudioDestinationMac.h:
40236        (WebCore::AudioDestinationMac::canReceiveRemoteControlCommands):
40237        (WebCore::AudioDestinationMac::didReceiveRemoteControlCommand):
40238
40239        Pipe command events through MediaSessionManager:
40240        * platform/audio/MediaSession.cpp:
40241        (WebCore::MediaSession::canReceiveRemoteControlCommands):
40242        (WebCore::MediaSession::didReceivRemoteControlCommand):
40243        * platform/audio/MediaSession.h:
40244        * platform/audio/MediaSessionManager.cpp:
40245        (WebCore::MediaSessionManager::addSession):
40246        (WebCore::MediaSessionManager::removeSession):
40247        (WebCore::MediaSessionManager::sessionWillBeginPlayback):
40248        (WebCore::MediaSessionManager::didReceiveRemoteControlCommand):
40249        (WebCore::MediaSessionManager::addClient):
40250        (WebCore::MediaSessionManager::removeClient):
40251        * platform/audio/MediaSessionManager.h:
40252        (WebCore::MediaSessionManagerClient::~MediaSessionManagerClient):
40253        (WebCore::MediaSessionManagerClient::MediaSessionManagerClient):
40254
40255        Make sessionWillBegin/EndPlayback() methods take non-const parameters:
40256        * platform/audio/MediaSessionManager.h:
40257        (WebCore::MediaSessionManager::sessionWillEndPlayback):
40258        * platform/audio/ios/MediaSessionManagerIOS.h:
40259        * platform/audio/ios/MediaSessionManagerIOS.mm:
40260        (WebCore::MediaSessionManagerIOS::sessionWillBeginPlayaback):
40261        (WebCore::MediaSessionManagerIOS::sessionWillEndPlayaback):
40262
40263        Add new files and export new symbols:
40264        * WebCore.exp.in:
40265        * WebCore.xcodeproj/project.pbxproj:
40266
402672014-03-13  Csaba Osztrogonác  <ossy@webkit.org>
40268
40269        Unreviewed, rolling out r165544 and r165560.
40270
40271        It broke EFL/GTK/Windows build
40272
40273        Reverted changesets:
40274
40275        "Optimize hasTagName when called on an HTMLElement"
40276        https://bugs.webkit.org/show_bug.cgi?id=130090
40277        http://trac.webkit.org/changeset/165544
40278
40279        http://trac.webkit.org/changeset/165560
40280
402812014-03-13  Antti Koivisto  <antti@apple.com>
40282
40283        Try to stop asserts in debug build.
40284
40285        * dom/Node.cpp:
40286        (WebCore::Document::invalidateNodeListAndCollectionCaches):
40287
402882014-03-13  Benjamin Poulain  <bpoulain@apple.com>
40289
40290        Update the build fix for r165544
40291
40292        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
40293        Fix typo :(
40294
402952014-03-13  Benjamin Poulain  <bpoulain@apple.com>
40296
40297        Update the build fix for r165544
40298
40299        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
40300        (-[WebAccessibilityObjectWrapper isSVGGroupElement]):
40301        Use the SVG version since the name being tested is a SVG name.
40302
403032014-03-13  Benjamin Poulain  <bpoulain@apple.com>
40304
40305        Attempt to fix the build after r165542
40306
40307        * dom/NodeRenderStyle.h:
40308
403092014-03-13  Benjamin Poulain  <bpoulain@apple.com>
40310
40311        Update WebAccessibilityObjectWrapperIOS after r165544
40312
40313        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
40314        (-[WebAccessibilityObjectWrapper isSVGGroupElement]):
40315
403162014-03-13  Antti Koivisto  <antti@apple.com>
40317
40318        REGRESSION(r165542): printing/page-rule-selection.html failing
40319        https://bugs.webkit.org/show_bug.cgi?id=130205
40320
40321        Reviewed by Andreas Kling.
40322
40323        * css/StyleResolver.cpp:
40324        (WebCore::StyleResolver::keyframeStylesForAnimation):
40325        (WebCore::StyleResolver::styleForPage):
40326        
40327            Use Document style as parent when resolving page style.
40328
40329        (WebCore::StyleResolver::applyPropertyToStyle):
40330        * css/StyleResolver.h:
40331        
40332            Get rid of the default null parameter.
40333
403342014-03-13  Benjamin Poulain  <bpoulain@apple.com>
40335
40336        Remove INPUT_LIST_BUTTON from the PseudoIds
40337        https://bugs.webkit.org/show_bug.cgi?id=130108
40338
40339        Reviewed by Andreas Kling.
40340
40341        * rendering/style/RenderStyleConstants.h:
40342        It is unused.
40343
403442014-03-12  Eric Carlson  <eric.carlson@apple.com>
40345
40346        [iOS] Sync media playback with now playing
40347        https://bugs.webkit.org/show_bug.cgi?id=130172
40348
40349        Reviewed by Jer Noble.
40350        
40351        * html/HTMLMediaElement.cpp:
40352        (WebCore::HTMLMediaElement::play): Move clientWillBeginPlayback to
40353            playInternal so it is called every time playback begins.
40354        (WebCore::HTMLMediaElement::playInternal): Call clientWillBeginPlayback.
40355        (WebCore::HTMLMediaElement::pause): Move clientWillPausePlayback to
40356            playInternal so it is called every time playback begins.
40357        (WebCore::HTMLMediaElement::playInternal): Call clientWillPausePlayback.
40358        (WebCore::HTMLMediaElement::mediaSessionTitle): New. Return the 'title' attribute,
40359            or currenSrc if that is empty.
40360        * html/HTMLMediaElement.h:
40361        (WebCore::HTMLMediaElement::mediaSessionDuration): Return duration.
40362        (WebCore::HTMLMediaElement::mediaSessionCurrentTime): Return current time.
40363
40364        * platform/audio/MediaSession.cpp:
40365        (WebCore::MediaSession::clientWillPausePlayback): New, passthrough to the
40366            media element.
40367        (WebCore::MediaSession::title): Ditto.
40368        (WebCore::MediaSession::duration): Ditto.
40369        (WebCore::MediaSession::currentTime): Ditto.
40370        * platform/audio/MediaSession.h:
40371        (WebCore::MediaSessionClient::mediaSessionTitle):
40372        (WebCore::MediaSessionClient::mediaSessionDuration):
40373        (WebCore::MediaSessionClient::mediaSessionCurrentTime):
40374
40375        * platform/audio/MediaSessionManager.cpp:
40376        (WebCore::MediaSessionManager::MediaSessionManager): Initialize m_activeSession.
40377        (WebCore::MediaSessionManager::removeSession): Set m_activeSession if the session
40378            being removed is currently active.
40379        (WebCore::MediaSessionManager::sessionWillBeginPlayback): Set m_activeSession.
40380        * platform/audio/MediaSessionManager.h:
40381        (WebCore::MediaSessionManager::sessionWillEndPlayback):
40382        (WebCore::MediaSessionManager::setCurrentSession):
40383        (WebCore::MediaSessionManager::currentSession):
40384
40385        * platform/audio/ios/MediaSessionManagerIOS.h:
40386        * platform/audio/ios/MediaSessionManagerIOS.mm:
40387        (WebCore::MediaSessionManageriOS::sessionWillBeginPlayback): Call updateNowPlayingInfo. 
40388        (WebCore::MediaSessionManageriOS::sessionWillEndPlayback): Ditto.
40389        (WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Update MPNowPlayingInfoCenter
40390            with the current media item's title, duration, and current time.
40391        (-[WebMediaSessionHelper initWithCallback:]): Turn on deliver of remote control
40392            events, even though we don't respond to them yet, or Now Playing won't work.
40393
403942014-03-13  Radu Stavila  <stavila@adobe.com>
40395
40396        Webkit not building on XCode 5.1 due to garbage collection no longer being supported
40397        https://bugs.webkit.org/show_bug.cgi?id=130087
40398
40399        Reviewed by Mark Rowe.
40400
40401        Disable garbage collection on macosx when not using internal SDK.
40402
40403        No new tests required.
40404
40405        * Configurations/Base.xcconfig:
40406
404072014-03-13  Andreas Kling  <akling@apple.com>
40408
40409        Don't send synchronous resize events when FrameView has auto-sizing enabled.
40410        <https://webkit.org/b/130198>
40411        <rdar://problem/15991333>
40412
40413        Reviewed by Dan Bernstein.
40414
40415        * page/FrameView.cpp:
40416        (WebCore::FrameView::sendResizeEventIfNeeded):
40417
404182014-03-13  Antti Koivisto  <antti@apple.com>
40419
40420        Try to fix release build.
40421
40422        * css/MediaQueryMatcher.cpp:
40423        * css/StyleMedia.cpp:
40424        * html/HTMLTitleElement.cpp:
40425
404262014-03-11  Darin Adler  <darin@apple.com>
40427
40428        Avoid copy-prone idiom "for (auto item : collection)"
40429        https://bugs.webkit.org/show_bug.cgi?id=129990
40430
40431        Reviewed by Geoffrey Garen.
40432
40433        Most of these changes have no effect. A few of them get rid of unwanted
40434        copying of the items as we iterate them. Found these with the command
40435        'git grep "for (auto .*:"' or the equivalent.
40436
40437        * Modules/indexeddb/IDBKeyData.cpp:
40438        (WebCore::IDBKeyData::IDBKeyData): Use auto& to avoid copying the keys.
40439        (WebCore::IDBKeyData::maybeCreateIDBKey): Ditto.
40440        (WebCore::IDBKeyData::isolatedCopy): Ditto.
40441
40442        * dom/Node.cpp:
40443        (WebCore::Document::invalidateNodeListAndCollectionCaches): Use auto*
40444        to make explicit the fact that these are pointers. Stop using "it" for
40445        a variable that is not an iterator. Get rid of unneeded local variables
40446        for the collections themselves.
40447
40448        * dom/NodeRareData.h:
40449        (WebCore::NodeListsNodeData::adoptDocument): Use auto& to make sure we
40450        don't do any unnecessary copying. Stop using "it" for a variable that
40451        is not an iterator.
40452
40453        * html/HTMLTableRowsCollection.cpp:
40454        (WebCore::HTMLTableRowsCollection::lastRow): Use auto* to be explicit
40455        that these are pointers.
40456        * inspector/InspectorNodeFinder.cpp:
40457        (WebCore::InspectorNodeFinder::searchUsingDOMTreeTraversal): Ditto.
40458        * page/ios/FrameIOS.mm:
40459        (WebCore::Frame::interpretationsForCurrentRoot): Ditto. Also got rid of
40460        an unnecessary local variable.
40461
40462        * platform/FileChooser.cpp:
40463        (WebCore::FileChooser::chooseFiles): Use auto&. Also fix a FIXME.
40464        (WebCore::FileChooser::chooseMediaFiles): Ditto.
40465
40466        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
40467        (WebCore::SourceBufferPrivateAVFObjC::naturalSize): Use auto&.
40468
40469        * rendering/RenderIterator.h: Changed include from RenderObject.h to
40470        RenderElement.h; iterators are based on RenderElement now.
40471
40472        * rendering/svg/RenderSVGResource.cpp:
40473        (WebCore::removeFromCacheAndInvalidateDependencies): Use auto*.
40474
40475        * rendering/svg/RenderSVGResourceContainer.cpp:
40476        (WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation): Use auto*.
40477        (WebCore::RenderSVGResourceContainer::markAllClientLayersForInvalidation): Ditto.
40478        (WebCore::RenderSVGResourceContainer::registerResource): Ditto.
40479
40480        * rendering/svg/SVGRenderSupport.cpp:
40481        (WebCore::SVGRenderSupport::layoutChildren): Updated to use a more specific
40482        type, to use auto* instead of of auto, and to eliminate the slightly sloppily
40483        capitalized and not-so-slightly ungrammatical notlayoutedObjects.
40484        (WebCore::SVGRenderSupport::applyStrokeStyleToContext): Use auto&.
40485        (WebCore::SVGRenderSupport::updateMaskedAncestorShouldIsolateBlending): Use auto*.
40486
40487        * rendering/svg/SVGResourcesCycleSolver.cpp:
40488        (WebCore::SVGResourcesCycleSolver::resourceContainsCycles): Use auto*.
40489        (WebCore::SVGResourcesCycleSolver::resolveCycles): Ditto. Also lineageOfType.
40490
40491        * svg/SVGAnimateMotionElement.cpp:
40492        (WebCore::SVGAnimateMotionElement::applyResultsToTarget): Use auto*.
40493        * svg/SVGPathElement.cpp:
40494        (WebCore::SVGPathElement::invalidateMPathDependencies): Ditto.
40495
404962014-03-13  Brian Burg  <bburg@apple.com>
40497
40498        Web Inspector: Remove unused callId parameter from evaluateInWebInspector
40499        https://bugs.webkit.org/show_bug.cgi?id=129744
40500
40501        Reviewed by Timothy Hatcher.
40502
40503        * WebCore.exp.in:
40504        * inspector/InspectorController.cpp:
40505        (WebCore::InspectorController::evaluateForTestInFrontend):
40506        * inspector/InspectorController.h:
40507
405082014-03-13  Darin Adler  <darin@apple.com>
40509
40510        Optimize hasTagName when called on an HTMLElement
40511        https://bugs.webkit.org/show_bug.cgi?id=130090
40512
40513        Reviewed by Antti Koivisto.
40514
40515        Added new hasTagName functions that have the efficiency of hasLocalName.
40516        but are safe.
40517
40518        Now we can always use hasTagName, and we'll get a compile time error if
40519        we try to use an SVG tag name with an HTML element. All call sites that
40520        use the more specific tag name types are more efficient, and call sites
40521        that have a specific pointer type will get even more efficient checking
40522        that is exactly what we used to get by calling hasLocalName.
40523
40524        * accessibility/AccessibilityObject.cpp:
40525        (WebCore::AccessibilityObject::hasTagName): Cast explicitly to Element
40526        since Node::hasTagName no longer works on a general QualifiedName.
40527        * accessibility/AccessibilityRenderObject.cpp:
40528        (WebCore::AccessibilityRenderObject::isDescendantOfElementType): Use
40529        more specific type, RenderElement, so we can call hasTagName on Element
40530        instead of Node; eliminates an unnecessary branch.
40531
40532        * dom/DocumentStyleSheetCollection.cpp:
40533        (WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets): Use
40534        new for loop and full words for variable names. Also use nullptr instead
40535        of 0. Call toHTMLElement and toSVGElement in code that checks hasTagName
40536        since it's already checking isHTMLElement and isSVGElement.
40537
40538        * dom/Element.cpp:
40539        (WebCore::attrNodeListMap): Use NeverDestroyed and put the vectors into
40540        the map rather than putting pointers to a vector into the map.
40541        (WebCore::attrNodeListForElement): Take a reference rather than a pointer,
40542        and update for the change above.
40543        (WebCore::ensureAttrNodeListForElement): Ditto.
40544        (WebCore::removeAttrNodeListForElement): Ditto.
40545        (WebCore::findAttrNodeInList): Ditto.
40546        (WebCore::Element::isFocusable): Use ancestorsOfType<HTMLCanvasElement>
40547        to fine the canvas rather than a hand-written loop.
40548        (WebCore::Element::attrNodeList): Update for above changes.
40549        (WebCore::Element::setAttributeNode): Ditto.
40550        (WebCore::Element::attrIfExists): Ditto.
40551        (WebCore::Element::ensureAttr): Ditto.
40552        (WebCore::Element::detachAttrNodeFromElementWithValue): Ditto.
40553        (WebCore::Element::detachAllAttrNodesFromElement): Ditto.
40554
40555        * dom/Element.h: Removed the overload of hasLocalName that takes a
40556        QualifiedName and ignores the non-local-name parts of it. Callers should
40557        use hasTagName instead, now that it's optimized appropriately. Added
40558        overloads of hasTagName for all the specific qualified name types. It's
40559        more efficient to use the Node versions of these functions rather than
40560        using QualifiedName::matches to do the check. Removed the hasTagName and
40561        hasLocalName functions from the Node class; the only convenience functions
40562        needed in Node are the specific checks for tags from HTML, MathML, and SVG,
40563        not the general purpose ones.
40564
40565        * dom/Node.h: Removed hasLocalName and replaced the single hasTagName
40566        that takes a QualifiedName with three faster ones that take HTML, MathML,
40567        and SVG qualified names instead. Also updated to use nullptr instead of 0.
40568
40569        * dom/PositionIterator.cpp: Added now-needed include.
40570        * dom/Text.cpp: Ditto.
40571
40572        * dom/make_names.pl:
40573        (printHeaderHead): Renamed an argument for clarity and added a definitions
40574        argument, which is where we insert the classes derived from QualifiedName.
40575        (printCppHead): Renamed an argument for clarity.
40576        (printTypeHelpers): Use hasTagName rather than hasLocalName, since the
40577        former is now optimized to be the same as what the latter was.
40578        (printNamesHeaderFile): Define a class derived from QualifiedName that can
40579        be used at compile time to avoid having to check the namespace.
40580        (printNamesCppFile): Use the new more-specific type as needed.
40581
40582        * editing/ApplyStyleCommand.cpp:
40583        (WebCore::isLegacyAppleStyleSpan): Use hasTagName instead of hasLocalName,
40584        and references instead of pointers.
40585        (WebCore::ApplyStyleCommand::ApplyStyleCommand): Removed uneeded explicit
40586        construction of a smart pointer.
40587        (WebCore::ApplyStyleCommand::shouldApplyInlineStyleToRun): Updated to use
40588        the enclosingElementWithTag function by its new name.
40589
40590        * editing/Editor.cpp:
40591        (WebCore::Editor::selectionUnorderedListState): Updated to use the
40592        enclosingElementWithTag function by its new name.
40593        (WebCore::Editor::selectionOrderedListState): Ditto.
40594
40595        * editing/InsertListCommand.cpp:
40596        (WebCore::InsertListCommand::doApply): Use a more-specific type for the list tag.
40597        (WebCore::InsertListCommand::doApplyForSingleParagraph): Ditto.
40598        * editing/InsertListCommand.h: Ditto.
40599
40600        * editing/MarkupAccumulator.cpp:
40601        (WebCore::MarkupAccumulator::serializeNodesWithNamespaces): Added an explicit
40602        cast to Element in the loop that is already guarded by an isElementNode check.
40603        Also use a modern C++ for loop.
40604
40605        * editing/ReplaceSelectionCommand.cpp:
40606        (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
40607        Updated to use the enclosingElementWithTag function by its new name.
40608        (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Ditto.
40609        (WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent): Ditto.
40610
40611        * editing/TypingCommand.cpp: Added now-needed includes.
40612        * editing/VisibleUnits.cpp: Ditto.
40613
40614        * editing/htmlediting.cpp:
40615        (WebCore::enclosingElementWithTag): Changed to return an Element instead of a Node,
40616        since nodes other than elements do not have tags.
40617        * editing/htmlediting.h: Ditto.
40618
40619        * editing/mac/EditorMac.mm:
40620        (WebCore::Editor::adjustedSelectionRange): Updated to use the enclosingElementWithTag
40621        function by its new name.
40622        * editing/markup.cpp:
40623        (WebCore::StyledMarkupAccumulator::appendText): Ditto.
40624        (WebCore::StyledMarkupAccumulator::traverseNodesForSerialization): Ditto.
40625        (WebCore::highestAncestorToWrapMarkup): Ditto.
40626        (WebCore::createMarkupInternal): Ditto.
40627        (WebCore::createContextualFragment): Ditto. Use hasTagName instead of hasLocalName,
40628        since the former is now optimized to be the same as the latter was before.
40629
40630        * html/HTMLCollection.cpp:
40631        (WebCore::isMatchingElement): Use hasTagName instead of hasLocalName,
40632        since the former is now optimized to be the same as the latter was before.
40633        (WebCore::nameShouldBeVisibleInDocumentAll): Ditto.
40634        * html/HTMLElement.cpp:
40635        (WebCore::HTMLElement::ieForbidsInsertHTML): Ditto.
40636        (WebCore::unicodeBidiAttributeForDirAuto): Ditto.
40637        (WebCore::HTMLElement::parseBorderWidthAttribute): Ditto.
40638        (WebCore::HTMLElement::setInnerHTML): Ditto.
40639        (WebCore::shouldProhibitSetInnerOuterText): Ditto. Added this to share code between
40640        setInnerText and setOuterText.
40641        (WebCore::HTMLElement::setInnerText): Ditto.
40642        (WebCore::HTMLElement::setOuterText): Ditto.
40643        (WebCore::HTMLElement::rendererIsNeeded): Ditto.
40644        (WebCore::HTMLElement::createElementRenderer): Ditto.
40645
40646        * html/HTMLElement.h: Added hasTagName, which hides the one inherited from Element
40647        and takes the more-specific HTMLQualifiedName type. This means we don't need to check
40648        the namespace at runtime because it's known at compile time. Also put the
40649        implementation of Node::hasTagName for HTMLQualifiedName into this header.
40650
40651        * html/HTMLObjectElement.cpp:
40652        (WebCore::isRecognizedTagName): Updated for change in return type of
40653        HTMLNames::getHTMLTags.
40654
40655        * html/HTMLSelectElement.cpp:
40656        (WebCore::HTMLSelectElement::add): Use hasTagName inastead of hasLocalName.
40657        (WebCore::HTMLSelectElement::value): Use isHTMLOptionElement instead of hasTagName.
40658        Also use a new style for loop and emptyString() instead of "".
40659        (WebCore::HTMLSelectElement::setValue): Ditto.
40660        (WebCore::HTMLSelectElement::setLength): Ditto.
40661        (WebCore::HTMLSelectElement::searchOptionsForValue): Ditto.
40662        (WebCore::HTMLSelectElement::restoreFormControlState): Ditto.
40663
40664        * html/HTMLTableColElement.cpp:
40665        (WebCore::HTMLTableColElement::additionalPresentationAttributeStyle): Use hasTagName
40666        instead of hasLocalName.
40667
40668        * html/HTMLTableRowsCollection.cpp:
40669        (WebCore::isInSection): Updated to use hasTagName and take a reference.
40670        (WebCore::HTMLTableRowsCollection::rowAfter): Pass a reference.
40671
40672        * html/parser/HTMLConstructionSite.cpp: Added now-needed include.
40673
40674        * html/parser/HTMLTreeBuilder.cpp:
40675        (WebCore::createCaseMap): Updated to return a map rather than filling one in, and to
40676        be flxible about the type of the table being used.
40677        (WebCore::adjustSVGTagNameCase): Updated to use NeverDestroyed.
40678        (WebCore::adjustAttributes): Added new helper so we can share more code. Updated
40679        template argument names for clarity.
40680        (WebCore::adjustSVGAttributes): Marked this inline, since it just turns around and
40681        calls a single non-inline function.
40682        (WebCore::adjustMathMLAttributes): Ditto.
40683        (WebCore::addNamesWithPrefix): Changed to take argument by reference instead of pointer.
40684        (WebCore::createForeignAttributesMap): Added. Factors out the map creation from the
40685        function below.
40686        (WebCore::adjustForeignAttributes): Updated for above changes.
40687        (WebCore::HTMLTreeBuilder::processStartTagForInBody): Updated to pass reference.
40688        (WebCore::HTMLTreeBuilder::processTokenInForeignContent): Ditto.
40689
40690        * inspector/InspectorStyleSheet.cpp: Added now-needed include.
40691
40692        * mathml/MathMLElement.h: Added hasTagName, which hides the one inherited from Element
40693        and takes the more-specific MathMLQualifiedName type. This means we don't need to check
40694        the namespace at runtime because it's known at compile time. Also put the
40695        implementation of Node::hasTagName for MathMLQualifiedName into this header.
40696
40697        * mathml/MathMLInlineContainerElement.cpp:
40698        (WebCore::MathMLInlineContainerElement::createElementRenderer): Use hasTagName.
40699
40700        * mathml/MathMLSelectElement.cpp:
40701        (WebCore::MathMLSelectElement::attributeChanged): Use hasTagName.
40702        (WebCore::MathMLSelectElement::getSelectedActionChildAndIndex): Ditto.
40703        (WebCore::MathMLSelectElement::getSelectedActionChild): Ditto.
40704        (WebCore::MathMLSelectElement::getSelectedSemanticsChild): Ditto.
40705        (WebCore::MathMLSelectElement::updateSelectedChild): Ditto.
40706        * mathml/MathMLTextElement.cpp:
40707        (WebCore::MathMLTextElement::createElementRenderer): Ditto.
40708        (WebCore::MathMLTextElement::childShouldCreateRenderer): Ditto.
40709
40710        * platform/mac/HTMLConverter.mm: Added now-needed include.
40711        * rendering/RenderBlockFlow.cpp: Ditto.
40712
40713        * rendering/RenderBoxModelObject.cpp:
40714        (WebCore::RenderBoxModelObject::paintFillLayerExtended): Use hasTagName.
40715        * rendering/RenderElement.cpp:
40716        (WebCore::RenderElement::rendererForRootBackground): Ditto.
40717        * rendering/RenderLayerBacking.cpp:
40718        (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): Ditto.
40719
40720        * rendering/RenderReplaced.cpp: Added now-needed include.
40721
40722        * rendering/mathml/RenderMathMLScripts.cpp:
40723        (WebCore::RenderMathMLScripts::RenderMathMLScripts): Use hasTagName.
40724        * rendering/mathml/RenderMathMLUnderOver.cpp:
40725        (WebCore::RenderMathMLUnderOver::RenderMathMLUnderOver): Ditto.
40726
40727        * svg/SVGElement.h: Added hasTagName, which hides the one inherited from Element
40728        and takes the more-specific SVGQualifiedName type. This means we don't need to check
40729        the namespace at runtime because it's known at compile time. Also put the
40730        implementation of Node::hasTagName for SVGQualifiedName into this header.
40731
40732        * svg/SVGFontFaceSrcElement.cpp:
40733        (WebCore::SVGFontFaceSrcElement::childrenChanged): Use isSVGFontFaceElement instead
40734        of calling hasTagName.
40735
40736        * svg/SVGUseElement.cpp:
40737        (WebCore::isDirectReference): Changed to take a reference and a more specific type.
40738        (WebCore::SVGUseElement::toClipPath): Added a type cast.
40739        (WebCore::SVGUseElement::rendererClipChild): Use more specific types so we don't
40740        need a type cast.
40741
40742        * xml/parser/XMLDocumentParser.cpp:
40743        (WebCore::XMLDocumentParser::parseDocumentFragment): Added explicit calls to this
40744        unusual call site that has a good reason to use hasLocalName instead of hasTagName.
40745
407462014-03-13  Antti Koivisto  <antti@apple.com>
40747
40748        Try to fix iOS build.
40749
40750        * page/FrameView.cpp:
40751        (WebCore::FrameView::performPostLayoutTasks):
40752
407532014-03-13  Antti Koivisto  <antti@apple.com>
40754
40755        Remove StyleResolver::State::m_parentNode
40756        https://bugs.webkit.org/show_bug.cgi?id=130194
40757
40758        Reviewed by Andreas Kling.
40759
40760        This variable was the "parent" node where the style was being inherited from, not the actual parent.
40761        The code would also recompute it even though the call sites generally know the rendering parent already.
40762
40763        If we consistently pass parent style to StyleResolver::styleForElement we won't need the variable and
40764        the associated code. We also get rid of one more client of NodeRenderingTraversal.
40765
40766        * css/MediaQueryMatcher.cpp:
40767        (WebCore::MediaQueryMatcher::prepareEvaluator):
40768        * css/SVGCSSStyleSelector.cpp:
40769        (WebCore::StyleResolver::applySVGProperty):
40770        * css/StyleMedia.cpp:
40771        (WebCore::StyleMedia::matchMedium):
40772        * css/StyleResolver.cpp:
40773        (WebCore::StyleResolver::State::clear):
40774        (WebCore::StyleResolver::StyleResolver):
40775        (WebCore::StyleResolver::State::initForStyleResolve):
40776        (WebCore::StyleResolver::applyProperty):
40777        * css/StyleResolver.h:
40778        (WebCore::StyleResolver::document):
40779        (WebCore::StyleResolver::State::State):
40780        * dom/Element.cpp:
40781        (WebCore::Element::customStyleForRenderer):
40782        
40783            Add parentStyle parameter.
40784
40785        * dom/Element.h:
40786        * dom/PseudoElement.cpp:
40787        (WebCore::PseudoElement::customStyleForRenderer):
40788        * dom/PseudoElement.h:
40789        * html/HTMLOptGroupElement.cpp:
40790        (WebCore::HTMLOptGroupElement::didAttachRenderers):
40791        (WebCore::HTMLOptGroupElement::updateNonRenderStyle):
40792        (WebCore::HTMLOptGroupElement::customStyleForRenderer):
40793        * html/HTMLOptGroupElement.h:
40794        * html/HTMLOptionElement.cpp:
40795        (WebCore::HTMLOptionElement::didAttachRenderers):
40796        (WebCore::HTMLOptionElement::updateNonRenderStyle):
40797        (WebCore::HTMLOptionElement::customStyleForRenderer):
40798        * html/HTMLOptionElement.h:
40799        * html/HTMLTitleElement.cpp:
40800        (WebCore::HTMLTitleElement::textWithDirection):
40801        * html/shadow/TextControlInnerElements.cpp:
40802        (WebCore::TextControlInnerElement::customStyleForRenderer):
40803        (WebCore::TextControlInnerTextElement::customStyleForRenderer):
40804        * html/shadow/TextControlInnerElements.h:
40805        * rendering/RenderNamedFlowFragment.cpp:
40806        (WebCore::RenderNamedFlowFragment::computeStyleInRegion):
40807        (WebCore::RenderNamedFlowFragment::computeChildrenStyleInRegion):
40808        (WebCore::RenderNamedFlowFragment::setRegionObjectsRegionStyle):
40809        * rendering/RenderNamedFlowFragment.h:
40810        * style/StyleResolveTree.cpp:
40811        (WebCore::Style::styleForElement):
40812        
40813            This used to be Element::styleForRenderer. It is now a standalone static.
40814
40815        (WebCore::Style::elementInsideRegionNeedsRenderer):
40816        (WebCore::Style::createRendererIfNeeded):
40817        (WebCore::Style::resolveLocal):
40818        * svg/SVGElement.cpp:
40819        (WebCore::SVGElement::customStyleForRenderer):
40820        * svg/SVGElement.h:
40821
408222014-03-13  Zalan Bujtas  <zalan@apple.com>
40823
40824        Subpixel rendering: Nested layers with subpixel accumulation paint to wrong position.
40825        https://bugs.webkit.org/show_bug.cgi?id=130153
40826
40827        Reviewed by Simon Fraser.
40828
40829        Subpixels (fractional device pixels here) can accumulate through nested layers. Subpixels
40830        need to be propagated through the layer tree so that painting coordinates match layout coordinates.
40831        
40832        Compositing case: (absolute positioning, 2x display)
40833        parent layer pos(0.3, 0.3) -> floored painting position (0, 0)
40834        child layer pos(10.2, 10.2) -> layout offset from parent (10.2, 10.2), 
40835        but the actual painting offset is (10.5, 10.5) as the result of parent flooring.
40836        
40837        Non-compositing case: (absolute positioning, 2x display)
40838        parent layer pos(0.3, 0.3) -> GraphicsContext is translated to (0, 0).
40839        child layer pos(10.2, 10.2) -> layout offset from parent (10.2, 10.2)
40840        but the GraphicsContext's offset is (10.5, 10.5) as the result of the parent's translate.   
40841
40842        In both cases, without the subpixel adjustment, we'd paint the current layer at (10.0, 10.0)
40843        after flooring, while its painting position is actually (10.5, 10.5).
40844        Subpixels do accumulate through nested layers.
40845
40846        Tests: compositing/hidpi-nested-compositing-layers-with-subpixel-accumulation.html
40847               fast/layers/hidpi-nested-layers-with-subpixel-accumulation.html
40848
40849        * rendering/RenderLayer.cpp:
40850        (WebCore::RenderLayer::paintLayerByApplyingTransform):
40851        * rendering/RenderLayerBacking.cpp:
40852        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
40853        * rendering/RenderLayerBacking.h:
40854        (WebCore::RenderLayerBacking::devicePixelFractionFromRenderer):
40855
408562014-03-13  Radu Stavila  <stavila@adobe.com>
40857
40858        The scrolledContentOffset method should handle the hasOverflowClip check
40859        https://bugs.webkit.org/show_bug.cgi?id=130028
40860
40861        Reviewed by Antti Koivisto.
40862
40863        Before this patch, every call to RenderBox::scrolledContentOffset was guarded by the
40864        hasOverflowClip check, because the scrolledContentOffset method would ASSERT(hasOverflowClip()).
40865        This was simplified by moving the hasOverflowClip check inside the scrolledContentOffset method
40866        and returning (0, 0) for elements that do not clip the overflow.
40867
40868        No new tests needed, just a refactor.
40869
40870        * editing/VisibleUnits.cpp:
40871        (WebCore::absoluteLineDirectionPointToLocalPointInBlock):
40872        * rendering/RenderBlock.cpp:
40873        (WebCore::RenderBlock::paintObject):
40874        (WebCore::RenderBlock::selectionGapRectsForRepaint):
40875        (WebCore::RenderBlock::paintSelection):
40876        (WebCore::RenderBlock::nodeAtPoint):
40877        (WebCore::RenderBlock::offsetForContents):
40878        * rendering/RenderBox.cpp:
40879        (WebCore::RenderBox::scrolledContentOffset):
40880        (WebCore::RenderBox::offsetFromContainer):
40881        * rendering/RenderInline.cpp:
40882        (WebCore::RenderInline::offsetFromContainer):
40883        * rendering/RenderLayer.cpp:
40884        (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
40885        (WebCore::RenderLayer::calculateClipRects):
40886        * rendering/RenderNamedFlowThread.cpp:
40887        (WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
40888        * rendering/RenderObject.cpp:
40889        (WebCore::RenderObject::mapLocalToContainer):
40890        (WebCore::RenderObject::pushMappingToContainer):
40891        (WebCore::RenderObject::mapAbsoluteToLocalPoint):
40892        (WebCore::RenderObject::offsetFromContainer):
40893        * rendering/RenderTextControl.cpp:
40894        (WebCore::RenderTextControl::hitInnerTextElement):
40895
408962014-03-13  Chris Fleizach  <cfleizach@apple.com>
40897
40898        AX: accessibility data table heuristics fail on this jQuery table
40899        https://bugs.webkit.org/show_bug.cgi?id=129369
40900
40901        Reviewed by Mario Sanchez Prada.
40902
40903        Updated accessibility/table-detection.html
40904
40905        If a table uses display style of table-row-group, the RenderTable gets disassociated from the HTMLTableElement.
40906        We can find that element in a different way by asking for the parent of the first table section.
40907
40908        * accessibility/AccessibilityRenderObject.cpp:
40909        (WebCore::AccessibilityRenderObject::activeDescendant):
40910            This method was accessing an object's element unsafely and this table change exposed the issue.
40911        * accessibility/AccessibilityTable.cpp:
40912        (WebCore::AccessibilityTable::tableElement):
40913        (WebCore::AccessibilityTable::isDataTable):
40914        * accessibility/AccessibilityTable.h:
40915
409162014-03-13  Antti Koivisto  <antti@apple.com>
40917
40918        Ensure that layout milestones complete in all cases
40919        https://bugs.webkit.org/show_bug.cgi?id=130101
40920        
40921        Reviewed by Darin Adler.
40922        
40923        Milestones fail to complete in some testing scenarios.
40924
40925        * dom/Document.cpp:
40926        (WebCore::Document::setParsing):
40927        
40928            Check if we need to fire layout milestones if parsing finishes without pending layout.
40929            Parsing status affects whether the document is considered non-empty and that affects
40930            layout milestones.
40931
40932            Remove explicit layout scheduling here, layout timer will be active already if there
40933            is a layout pending
40934
40935        * page/FrameView.cpp:
40936        (WebCore::FrameView::performPostLayoutTasks):
40937        (WebCore::FrameView::firePaintRelatedMilestonesIfNeeded):
40938        
40939            Renamed for consistency
40940
40941        (WebCore::FrameView::fireLayoutRelatedMilestonesIfNeeded):
40942        
40943            Factor layout milestone firing into a function.
40944
40945        * page/FrameView.h:
40946
409472014-03-12  Brian Burg  <bburg@apple.com>
40948
40949        Web Replay: add infrastructure for memoizing nondeterministic DOM APIs
40950        https://bugs.webkit.org/show_bug.cgi?id=129445
40951
40952        Reviewed by Timothy Hatcher.
40953
40954        Add two pieces of infrastructure to support memoization of selected DOM APIs.
40955
40956        The first piece is MemoizedDOMResult, a templated replay input class that knows
40957        how to serialize a DOM API's return value, ctype, and exception code.
40958
40959        The second piece is the addition of a new IDL attribute called `Nondeterministic`.
40960        When placed on a DOM function or attribute, the code generator will emit code
40961        to save the DOM API's return value or use a memoized return value instead,
40962        depending on the current replay state. This new emitted code path is behind
40963        a feature flag.
40964
40965        No new tests, as no new inputs are addressed by this change. Per-DOM API replay
40966        regression tests will be added when those APIs are marked as nondeterministic.
40967
40968        * WebCore.xcodeproj/project.pbxproj:
40969        * bindings/scripts/CodeGeneratorJS.pm: Add support of the `Nondeterministic` attribute.
40970        (GenerateImplementation): Handle cases for attributes and getters with exceptions.
40971        (GenerateImplementationFunctionCall): Handle function calls with and without exceptions.
40972        (GetNativeTypeForMemoization): Added. Converts DOMString to WTF::String.
40973        * bindings/scripts/IDLAttributes.txt: Add new `Nondeterministic` attribute.
40974        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
40975        (WebCore::jsTestEventTargetPrototypeFunctionItem):
40976        (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
40977        * bindings/scripts/test/JS/JSTestInterface.cpp:
40978        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
40979        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
40980        * bindings/scripts/test/JS/JSTestObj.cpp:
40981        (WebCore::jsTestObjAttrWithGetterException):
40982        (WebCore::jsTestObjStringAttrWithGetterException):
40983        (WebCore::jsTestObjWithScriptStateAttributeRaises):
40984        (WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
40985        (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
40986        (WebCore::jsTestObjNullableStringValue):
40987        (WebCore::jsTestObjPrototypeFunctionByteMethod):
40988        (WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
40989        (WebCore::jsTestObjPrototypeFunctionOctetMethod):
40990        (WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
40991        (WebCore::jsTestObjPrototypeFunctionLongMethod):
40992        (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
40993        (WebCore::jsTestObjPrototypeFunctionObjMethod):
40994        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
40995        (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
40996        (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
40997        (WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
40998        (WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
40999        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
41000        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
41001        (WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
41002        (WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
41003        (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
41004        (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
41005        (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
41006        (WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
41007        (WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
41008        (WebCore::jsTestObjPrototypeFunctionStrictFunction):
41009        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
41010        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
41011        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
41012        (WebCore::jsTestTypedefsAttrWithGetterException):
41013        (WebCore::jsTestTypedefsStringAttrWithGetterException):
41014        (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
41015        (WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
41016        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
41017        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
41018        (WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
41019
41020        * replay/AllReplayInputs.h:
41021        * replay/MemoizedDOMResult.cpp: Added.
41022        (WebCore::MemoizedDOMResultBase::type):
41023        (WebCore::MemoizedDOMResultBase::createFromEncodedResult):
41024        (InputTraits<MemoizedDOMResultBase>::type):
41025        (InputTraits<MemoizedDOMResultBase>::encode):
41026        (InputTraits<MemoizedDOMResultBase>::decode):
41027
41028        * replay/MemoizedDOMResult.h: Added. Every specialization of MemoizedDOMResult<T>
41029        stores a binding name, ctype, result value of type T, and optional exception code.
41030        The ctype-specific code uses the CTypeTraits struct to abstract over enum names and
41031        compiler types. The actual encode/decode methods just use methods from EncodingTraits<T>.
41032
41033        (WebCore::MemoizedDOMResultBase::MemoizedDOMResultBase):
41034        (WebCore::MemoizedDOMResultBase::~MemoizedDOMResultBase):
41035        (WebCore::MemoizedDOMResultBase::attribute):
41036        (WebCore::MemoizedDOMResultBase::ctype):
41037        (WebCore::MemoizedDOMResultBase::exceptionCode):
41038        (WebCore::CTypeTraits::decode):
41039        (WebCore::MemoizedDOMResultBase::convertTo):
41040        (JSC::InputTraits<MemoizedDOMResultBase>::queue):
41041        * replay/ReplayInputTypes.cpp: See below.
41042        (WebCore::ReplayInputTypes::ReplayInputTypes):
41043        * replay/ReplayInputTypes.h: See below.
41044        * replay/SerializationMethods.cpp: We need to special-case the encoding
41045        and decoding of MemoizedDOMResult inputs because the input is not part of
41046        the generated per-framework replay inputs enum.
41047        (JSC::EncodingTraits<NondeterministicInputBase>::encodeValue):
41048        (JSC::EncodingTraits<NondeterministicInputBase>::decodeValue):
41049
41050        * replay/WebInputs.json: Add the EncodedCType enum as an external enum type,
41051        so that we can use a generated EncodingTraits specialization to encode the enum.
41052
410532014-03-11  Jae Hyun Park  <jaepark@webkit.org>
41054
41055        Make HTMLCanvasElement::is3D private
41056        https://bugs.webkit.org/show_bug.cgi?id=130117
41057
41058        Reviewed by Anders Carlsson.
41059
41060        HTMLCanvasElement::is3D is not used anywhere except HTMLCanvasElement.
41061        So, make HTMLCanvasElement::is3D a private method. Also, make more use
41062        of is3D method.
41063
41064        * html/HTMLCanvasElement.cpp:
41065        (WebCore::HTMLCanvasElement::reset):
41066        (WebCore::HTMLCanvasElement::getImageData):
41067        * html/HTMLCanvasElement.h:
41068
410692014-03-12  Joseph Pecoraro  <pecoraro@apple.com>
41070
41071        Web Inspector: OS X View Indication
41072        https://bugs.webkit.org/show_bug.cgi?id=130119
41073
41074        Reviewed by Timothy Hatcher.
41075
41076        * inspector/InspectorController.cpp:
41077        (WebCore::InspectorController::setIndicating):
41078        OS X will handles this in the InspectorOverlay. iOS does not use the
41079        overlay, so it handles this in the client (already implemented).
41080
41081        * inspector/InspectorOverlay.h:
41082        Remove unused m_size, and add a boolean for the indicating state.
41083
41084        * inspector/InspectorOverlay.cpp:
41085        (WebCore::InspectorOverlay::InspectorOverlay):
41086        (WebCore::InspectorOverlay::shouldShowOverlay):
41087        Helper for determining if we should show the overlay or not.
41088
41089        (WebCore::InspectorOverlay::setIndicating):
41090        Set the state and trigger an overlay update.
41091
41092        (WebCore::InspectorOverlay::paint):
41093        (WebCore::InspectorOverlay::update):
41094        (WebCore::InspectorOverlay::drawGutter):
41095        (WebCore::InspectorOverlay::evaluateInOverlay):
41096        Simplification of existing methods.
41097
41098        * inspector/InspectorOverlayPage.css:
41099        (.indicate):
41100        Give the page a blue tint, matching the node highlight color.
41101
41102        * inspector/InspectorOverlayPage.js:
41103        (showPageIndication):
41104        (hidePageIndication):
41105        Add / remove a body style class.
41106
41107        (drawNodeHighlight):
41108        Remove unused parameters.
41109
411102014-03-12  Joseph Pecoraro  <pecoraro@apple.com>
41111
41112        Web Inspector: Disable REMOTE_INSPECTOR in earlier OS X releases
41113        https://bugs.webkit.org/show_bug.cgi?id=130118
41114
41115        Reviewed by Timothy Hatcher.
41116
41117        * Configurations/FeatureDefines.xcconfig:
41118
411192014-03-12  Tim Horton  <timothy_horton@apple.com>
41120
41121        Build fix for ENABLE(IMAGE_CONTROLS) after 165479
41122
41123        * rendering/RenderThemeMac.mm:
41124        (WebCore::RenderThemeMac::servicesRolloverButtonCell):
41125        (WebCore::RenderThemeMac::paintImageControlsButton):
41126        (WebCore::RenderThemeMac::imageControlsButtonSize):
41127        Don't try to use the AppKit methods that are only available on 64-bit.
41128
411292014-03-12  Brent Fulgham  <bfulgham@apple.com>
41130
41131        [WebVTT] HTML5 "space" cahracters around "-->" are not required
41132        https://bugs.webkit.org/show_bug.cgi?id=117421
41133
41134        Reviewed by Eric Carlson.
41135
41136        Merged from Blink (patch by caitpotter88@gmail.com):
41137        https://chromium.googlesource.com/chromium/blink/+/4ef469cd627a13696b88e285ae28a60e38f9c286
41138        http://crbug.com/242158
41139
41140        New tests: media/track/track-webvtt-tc029-timings-whitespace.html
41141
41142        * html/track/WebVTTParser.cpp:
41143        (WebCore::WebVTTParser::collectTimingsAndSettings): Make whitespace around cue-timings optional.
41144
411452014-03-12  Commit Queue  <commit-queue@webkit.org>
41146
41147        Unreviewed, rolling out r165482.
41148        https://bugs.webkit.org/show_bug.cgi?id=130157
41149
41150        Broke the windows build; "error C2466: cannot allocate an
41151        array of constant size 0" (Requested by jernoble on #webkit).
41152
41153        Reverted changeset:
41154
41155        "Reduce memory use for static property maps"
41156        https://bugs.webkit.org/show_bug.cgi?id=129986
41157        http://trac.webkit.org/changeset/165482
41158
411592014-03-12  Brian Burg  <bburg@apple.com>
41160
41161        Web Inspector receives spurious setScriptEnabled instrumentation calls
41162        https://bugs.webkit.org/show_bug.cgi?id=130147
41163
41164        Reviewed by Timothy Hatcher.
41165
41166        When page settings change, inspector instrumentation should only fire if
41167        the scriptsEnabled setting actually changes from the previous setting. But
41168        due to an unnecessary PLATFORM(IOS) guard, the inspector was being notified
41169        on every settings update even if nothing changed.
41170
41171        This manifested as lots of Page.scriptsEnabled messages being sent to
41172        the inspector frontend as the Inspector window is dragged.
41173
41174        * page/Settings.cpp:
41175        (WebCore::Settings::setScriptEnabled): Remove PLATFORM(IOS) from early return.
41176
411772014-03-12  Simon Fraser  <simon.fraser@apple.com>
41178
41179        Have the scrolling tree track the viewport size, not the viewport rect
41180        https://bugs.webkit.org/show_bug.cgi?id=130141
41181
41182        Reviewed by Beth Dakin.
41183
41184        The scrolling tree only needs to know the size of the viewport, not its
41185        origin, since the origin is deduced from the updated scroll position.
41186
41187        * WebCore.exp.in:
41188        * page/scrolling/AsyncScrollingCoordinator.cpp:
41189        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
41190        * page/scrolling/ScrollingStateScrollingNode.cpp:
41191        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
41192        (WebCore::ScrollingStateScrollingNode::setViewportSize):
41193        (WebCore::ScrollingStateScrollingNode::dumpProperties):
41194        * page/scrolling/ScrollingStateScrollingNode.h:
41195        * page/scrolling/ScrollingTreeScrollingNode.cpp:
41196        (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
41197        * page/scrolling/ScrollingTreeScrollingNode.h:
41198        (WebCore::ScrollingTreeScrollingNode::viewportSize):
41199        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
41200        (WebCore::ScrollingTreeScrollingNodeIOS::setScrollLayerPosition):
41201        (WebCore::ScrollingTreeScrollingNodeIOS::maximumScrollPosition):
41202        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
41203        (WebCore::ScrollingTreeScrollingNodeMac::updateAfterChildren):
41204        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
41205        (WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
41206        (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
41207
412082014-03-12  Simon Fraser  <simon.fraser@apple.com>
41209
41210        Spelling is hard
41211        https://bugs.webkit.org/show_bug.cgi?id=130146
41212
41213        Reviewed by Beth Dakin.
41214
41215        Fix spelling (constained -> constrained).
41216
41217        * rendering/RenderLayerModelObject.cpp:
41218        (WebCore::RenderLayerModelObject::styleDidChange):
41219
412202014-03-12  Simon Fraser  <simon.fraser@apple.com>
41221
41222        Change scrollOffsetForFixedPosition() to do LayoutUnit math
41223        https://bugs.webkit.org/show_bug.cgi?id=129981
41224
41225        Reviewed by Beth Dakin.
41226
41227        FrameView::scrollOffsetForFixedPosition() returned an IntSize,
41228        but to allow subpixel scroll offsets, we need it to return a LayoutSize.
41229        
41230        Fix code that calls this to use more LayoutUnit math.
41231        
41232        This progresses fixed background images on zoom, which cam now be subpixel
41233        positioned.
41234
41235        * WebCore.exp.in:
41236        * page/FrameView.cpp:
41237        (WebCore::FrameView::viewportConstrainedVisibleContentRect):
41238        (WebCore::FrameView::scrollOffsetForFixedPosition):
41239        * page/FrameView.h:
41240        * page/scrolling/AsyncScrollingCoordinator.cpp:
41241        (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
41242        * platform/ScrollableArea.cpp:
41243        (WebCore::ScrollableArea::constrainScrollPositionForOverhang):
41244        * platform/ScrollableArea.h:
41245        * rendering/RenderBoxModelObject.cpp:
41246        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
41247        * rendering/RenderLayer.cpp:
41248        (WebCore::RenderLayer::calculateClipRects):
41249        * rendering/RenderLayerBacking.cpp:
41250        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
41251        * rendering/RenderLayerCompositor.cpp:
41252        (WebCore::RenderLayerCompositor::updateScrollLayerPosition):
41253
412542014-03-12  Gavin Barraclough  <barraclough@apple.com>
41255
41256        Reduce memory use for static property maps
41257        https://bugs.webkit.org/show_bug.cgi?id=129986
41258
41259        Reviewed by Andreas Kling.
41260
41261        Static property tables are currently duplicated on first use from read-only memory into dirty memory
41262        in every process, and since the entries are large (48 bytes) and the tables can be unusually sparse
41263        (we use a custom hash table without a rehash) a lot of memory may be wasted.
41264
41265        * bindings/js/JSDOMBinding.h:
41266        (WebCore::getStaticValueSlotEntryWithoutCaching):
41267        (WebCore::getStaticValueSlotEntryWithoutCaching<JSDOMWrapper>):
41268            - HashEntry -> HashTableValue.
41269        * bindings/js/JSDOMWindowCustom.cpp:
41270        (WebCore::JSDOMWindow::getOwnPropertySlot):
41271            - HashEntry -> HashTableValue.
41272        * bindings/js/JSHistoryCustom.cpp:
41273        (WebCore::JSHistory::getOwnPropertySlotDelegate):
41274            - HashEntry -> HashTableValue.
41275        * bindings/js/JSLocationCustom.cpp:
41276        (WebCore::JSLocation::getOwnPropertySlotDelegate):
41277        (WebCore::JSLocation::putDelegate):
41278            - HashEntry -> HashTableValue.
41279        * bindings/scripts/CodeGeneratorJS.pm:
41280        (GenerateGetOwnPropertySlotBody):
41281            - HashEntry -> HashTableValue.
41282        (GenerateHashTable):
41283            - emit the hash table index into the derived source (we were calculating this already to ensure chaining does not get too deep).
41284
412852014-03-12  Tim Horton  <timothy_horton@apple.com>
41286
41287        Hook up image controls for WebKit1
41288        https://bugs.webkit.org/show_bug.cgi?id=130062
41289        <rdar://problem/15964809>
41290
41291        Reviewed by Brady Eidson.
41292
41293        * WebCore.exp.in:
41294        * WebCore.xcodeproj/project.pbxproj:
41295        * css/CSSPrimitiveValueMappings.h:
41296        Fix some header ordering.
41297
41298        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
41299        Handle mapping ImageControlsButtonPart to the -webkit-appearance value CSSValueImageControlsButton.
41300
41301        * css/CSSValueKeywords.in:
41302        * platform/ThemeTypes.h:
41303        Add a -webkit-appearance value image-controls-button, and an associated control part.
41304
41305        * dom/Node.h:
41306        (WebCore::Node::isImageControlsButtonElement): Added.
41307
41308        * html/shadow/mac/ImageControlsButtonElementMac.cpp: Added.
41309        (WebCore::RenderImageControlsButton::RenderImageControlsButton):
41310        (WebCore::RenderImageControlsButton::~RenderImageControlsButton):
41311        (WebCore::RenderImageControlsButton::updateLogicalWidth):
41312        (WebCore::RenderImageControlsButton::computeLogicalHeight):
41313        (WebCore::ImageControlsButtonElementMac::ImageControlsButtonElementMac):
41314        (WebCore::ImageControlsButtonElementMac::~ImageControlsButtonElementMac):
41315        (WebCore::ImageControlsButtonElementMac::maybeCreate):
41316        (WebCore::ImageControlsButtonElementMac::defaultEventHandler):
41317        (WebCore::ImageControlsButtonElementMac::createElementRenderer):
41318        * html/shadow/mac/ImageControlsButtonElementMac.h: Added.
41319        Add a new element/renderer pair for the single button that comprises image controls on Mac.
41320        RenderImageControlsButton gets its size from the theme's imageControlsButtonSize.
41321
41322        * html/shadow/mac/ImageControlsRootElementMac.cpp:
41323        (WebCore::RenderImageControls::RenderImageControls):
41324        (WebCore::RenderImageControls::~RenderImageControls):
41325        (WebCore::RenderImageControls::updateLogicalWidth):
41326        (WebCore::RenderImageControls::computeLogicalHeight):
41327        (WebCore::ImageControlsRootElement::maybeCreate):
41328        (WebCore::ImageControlsRootElementMac::ImageControlsRootElementMac):
41329        (WebCore::ImageControlsRootElementMac::~ImageControlsRootElementMac):
41330        (WebCore::ImageControlsRootElementMac::createElementRenderer):
41331        * html/shadow/mac/ImageControlsRootElementMac.h:
41332        Add a custom renderer for the root image controls element on Mac, which inherits
41333        its size from the <img> that it is shadowing.
41334        Add a ImageControlsButtonElementMac as the sole child of the root element.
41335
41336        * html/shadow/mac/imageControlsMac.css:
41337        (.x-webkit-image-controls):
41338        (.x-webkit-image-controls-button):
41339        (.x-webkit-image-controls:hover .x-webkit-image-controls-button):
41340        The button should become opaque whenever *any* part of the image is hovered,
41341        not just the button itself. Also, use the new image-controls-button -webkit-appearance
41342        value to get the appropriate appearance from the theme.
41343
41344        * page/ContextMenuContext.cpp:
41345        (WebCore::ContextMenuContext::ContextMenuContext):
41346        * page/ContextMenuContext.h:
41347        (WebCore::ContextMenuContext::setControlledImage):
41348        (WebCore::ContextMenuContext::controlledImage):
41349        Store an image on the ContextMenuContext instead of just whether we hit an image.
41350
41351        * page/ContextMenuController.cpp:
41352        (WebCore::ContextMenuController::handleContextMenuEvent):
41353        (WebCore::ContextMenuController::showContextMenu):
41354        (WebCore::imageFromImageElementNode):
41355        (WebCore::ContextMenuController::maybeCreateContextMenu):
41356        (WebCore::ContextMenuController::populate):
41357        Keep track of the hit image in the ContextMenuContext.
41358
41359        (WebCore::ContextMenuController::replaceControlledImage):
41360        Replace the hit image with a new one.
41361
41362        * page/ContextMenuController.h:
41363
41364        * rendering/RenderReplaced.h:
41365        Fix a double-space typo.
41366
41367        * rendering/RenderTheme.cpp:
41368        (WebCore::RenderTheme::adjustStyle):
41369        (WebCore::RenderTheme::paint):
41370        (WebCore::RenderTheme::paintBorderOnly):
41371        (WebCore::RenderTheme::paintDecorations):
41372        Handle ImageControlsButtonPart in RenderTheme's switches.
41373
41374        * rendering/RenderTheme.h:
41375        (WebCore::RenderTheme::imageControlsButtonSize):
41376        (WebCore::RenderTheme::paintImageControlsButton):
41377        * rendering/RenderThemeMac.h:
41378        * rendering/RenderThemeMac.mm:
41379        (WebCore::RenderThemeMac::servicesRolloverButtonCell):
41380        (WebCore::RenderThemeMac::paintImageControlsButton):
41381        (WebCore::RenderThemeMac::imageControlsButtonSize):
41382        Paint the image controls button.
41383
41384        * editing/ios/EditorIOS.mm:
41385        (WebCore::Editor::WebContentReader::readImage):
41386        (WebCore::Editor::WebContentReader::readURL):
41387        * editing/mac/EditorMac.mm:
41388        (WebCore::Editor::WebContentReader::readImage):
41389        * platform/URL.cpp:
41390        (WebCore::URL::fakeURLWithRelativePart):
41391        * platform/URL.h:
41392        Factor out code to create a "fake" URL (with a UUID "hostname" and the
41393        webkit-fake-url protocol), and make use of it where we construct such URLs.
41394
413952014-03-12  Jer Noble  <jer.noble@apple.com>
41396
41397        [Mac] Crash when running media/fallback.html test in MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification()
41398        https://bugs.webkit.org/show_bug.cgi?id=130136
41399
41400        Reviewed by Eric Carlson.
41401
41402        MediaPlayerPrivateAVFoundation is trying to lock its m_queueMutex from an async thread after
41403        while being destroyed in the main thread. To resolve this race condition, redispatch from
41404        the async thread to the main thread, and use a WeakPtr to determine whether the object has
41405        been destroyed or not.
41406
41407        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
41408        (WebCore::MediaPlayerPrivateAVFoundationObjC::checkPlayability):
41409
414102014-03-12  Brent Fulgham  <bfulgham@apple.com>
41411
41412        [Win] Remove use of QTSDK
41413        https://bugs.webkit.org/show_bug.cgi?id=130049
41414
41415        Reviewed by Darin Adler.
41416
41417        Media testing already covers this functionality.
41418
41419        * WebCore.vcxproj/WebCore.vcxproj: Remove QuickTime files.
41420        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
41421        * platform/graphics/MediaPlayer.h: Remove QuickTime and Chromium
41422        media references.
41423        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: Removed.
41424        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h: Removed.
41425        * platform/graphics/win/QTCFDictionary.cpp: Removed.
41426        * platform/graphics/win/QTCFDictionary.h: Removed.
41427        * platform/graphics/win/QTDecompressionSession.cpp: Removed.
41428        * platform/graphics/win/QTDecompressionSession.h: Removed.
41429        * platform/graphics/win/QTMovie.cpp: Removed.
41430        * platform/graphics/win/QTMovie.h: Removed.
41431        * platform/graphics/win/QTMovieGWorld.cpp: Removed.
41432        * platform/graphics/win/QTMovieGWorld.h: Removed.
41433        * platform/graphics/win/QTMovieTask.cpp: Removed.
41434        * platform/graphics/win/QTMovieTask.h: Removed.
41435        * platform/graphics/win/QTMovieVisualContext.cpp: Removed.
41436        * platform/graphics/win/QTMovieVisualContext.h: Removed.
41437        * platform/graphics/win/QTMovieWinTimer.cpp: Removed.
41438        * platform/graphics/win/QTMovieWinTimer.h: Removed.
41439        * platform/graphics/win/QTPixelBuffer.cpp: Removed.
41440        * platform/graphics/win/QTPixelBuffer.h: Removed.
41441        * platform/graphics/win/QTTrack.cpp: Removed.
41442        * platform/graphics/win/QTTrack.h: Removed.
41443        * plugins/win/PluginDatabaseWin.cpp:
41444        (WebCore::PluginDatabase::defaultPluginDirectories): Don't look
41445        for the QuickTime plugin anymore.
41446
414472014-03-12  David Kilzer  <ddkilzer@apple.com>
41448
41449        Fix build after r165472
41450
41451        Fixes the following build failure:
41452
41453            WebCore/rendering/shapes/Shape.cpp:97:20: error: unused function 'ensureRadiiDoNotOverlap' [-Werror,-Wunused-function]
41454            static inline void ensureRadiiDoNotOverlap(FloatRect& bounds, FloatSize& radii)
41455                               ^
41456            1 error generated.
41457
41458        * rendering/shapes/Shape.cpp:
41459        (ensureRadiiDoNotOverlap): Remove unused function.
41460
414612014-03-12  Bem Jones-Bey  <bjonesbe@adobe.com>
41462
41463        [CSS Shapes] Remove deprecated shapes
41464        https://bugs.webkit.org/show_bug.cgi?id=125235
41465
41466        Reviewed by Dirk Schulze.
41467
41468        Remove support for deprecated shape types and syntax. These have
41469        already been removed from the CSS Shapes specification, so this aligns
41470        the implementation with the specification.
41471
41472        The "new" tests below were simply moved from the old csswg directory,
41473        as they were the only tests there that applied to the current syntax.
41474
41475        Tests: fast/shapes/shape-outside-floats/shape-outside-floats-polygon-000.html
41476               fast/shapes/shape-outside-floats/shape-outside-floats-polygon-001.html
41477               fast/shapes/shape-outside-floats/shape-outside-floats-polygon-002.html
41478
41479        * css/BasicShapeFunctions.cpp:
41480        (WebCore::valueForBasicShape):
41481        (WebCore::basicShapeForValue):
41482        * css/BasicShapeFunctions.h:
41483        * css/CSSBasicShapes.cpp:
41484        * css/CSSBasicShapes.h:
41485        * css/CSSParser.cpp:
41486        (WebCore::CSSParser::parseBasicShape):
41487        * rendering/shapes/Shape.cpp:
41488        (WebCore::Shape::createShape):
41489        * rendering/shapes/ShapeInsideInfo.cpp:
41490        (WebCore::ShapeInsideInfo::isEnabledFor):
41491        * rendering/style/BasicShapes.cpp:
41492        * rendering/style/BasicShapes.h:
41493
414942014-03-12  Carlos Garcia Campos  <cgarcia@igalia.com>
41495
41496        [GTK] [Stable] deadlock in gobject introspection
41497        https://bugs.webkit.org/show_bug.cgi?id=125651
41498
41499        Reviewed by Sergio Villar Senin.
41500
41501        Make the default SoupNetworkSession a destroyable object to ensure
41502        the wrapped SoupSession is finalized when the process finishes. This
41503        is important because soup cancels any ongoing connection when finalized.
41504
41505        * platform/network/soup/SoupNetworkSession.cpp:
41506        (WebCore::SoupNetworkSession::defaultSession): Do not use NeverDestroyed.
41507        * platform/network/soup/SoupNetworkSession.h:
41508
415092014-03-12  Antti Koivisto  <antti@apple.com>
41510
41511        Don't use NodeRenderingTraversal for pseudo elements
41512        https://bugs.webkit.org/show_bug.cgi?id=130091
41513
41514        Reviewed by Andreas Kling.
41515
41516        Make traversing during style resolve more comprehensible by handling before/after pseudo elements explicitly.
41517
41518        With this patch NodeRenderingTraversal is only needed for InsertionPoints (which are nothing but an implementation
41519        detail of the <details> element at this point).
41520
41521        * dom/Element.cpp:
41522        (WebCore::shouldUseNodeRenderingTraversalSlowPath):
41523        
41524            PseudoElements don't need the slow path anymore.
41525
41526        (WebCore::Element::setBeforePseudoElement):
41527        (WebCore::Element::setAfterPseudoElement):
41528        (WebCore::Element::clearBeforePseudoElement):
41529        (WebCore::Element::clearAfterPseudoElement):
41530        * dom/NodeRenderingTraversal.cpp:
41531        (WebCore::NodeRenderingTraversal::traverseParent):
41532        (WebCore::NodeRenderingTraversal::firstChildSlow):
41533        (WebCore::NodeRenderingTraversal::nextSiblingSlow):
41534        (WebCore::NodeRenderingTraversal::previousSiblingSlow):
41535        * dom/NodeRenderingTraversal.h:
41536        (WebCore::NodeRenderingTraversal::firstChild):
41537        * style/StyleResolveTree.cpp:
41538        (WebCore::Style::nextSiblingRenderer):
41539        
41540            Add ::before/::after pseudo element handling here.
41541
41542        (WebCore::Style::shouldCreateRenderer):
41543        (WebCore::Style::elementInsideRegionNeedsRenderer):
41544        (WebCore::Style::createRendererIfNeeded):
41545        (WebCore::Style::previousSiblingRenderer):
41546        
41547            Add ::before pseudo element handling here (text node can't be ::after).
41548
41549        (WebCore::Style::reattachTextRenderersForWhitespaceOnlySiblingsAfterAttachIfNeeded):
41550        (WebCore::Style::textRendererIsNeeded):
41551        (WebCore::Style::createTextRendererIfNeeded):
41552        (WebCore::Style::attachTextRenderer):
41553        (WebCore::Style::updateTextRendererAfterContentChange):
41554        (WebCore::Style::attachChildren):
41555        (WebCore::Style::attachDistributedChildren):
41556        
41557            Handle InsertionPoints in one place.
41558
41559        (WebCore::Style::attachShadowRoot):
41560        (WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded):
41561        (WebCore::Style::attachRenderTree):
41562        (WebCore::Style::resolveLocal):
41563        (WebCore::Style::updateTextStyle):
41564        (WebCore::Style::resolveShadowTree):
41565        (WebCore::Style::updateBeforeOrAfterPseudoElement):
41566        (WebCore::Style::resolveTree):
41567        
41568            Pass the rendering parent around to various functions instead of determining it repeatedly by calling 
41569            NodeRenderingTraversal::parent. It is always the same for all direct children being resolved and generally just
41570            the parent element.
41571
415722014-03-12  Frédéric Wang  <fred.wang@free.fr>
41573
41574        Invisible Operators should not add space.
41575        https://bugs.webkit.org/show_bug.cgi?id=115786
41576
41577        Reviewed by Chris Fleizach.
41578
41579        This change adds special handling for invisible operator to ensure they really behave as empty box. We now ignore their glyph widths and do not paint them.
41580
41581        Test: mathml/presentation/mo-invisible.html
41582
41583        * rendering/mathml/RenderMathMLOperator.cpp:
41584        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
41585        (WebCore::RenderMathMLOperator::paint):
41586        * rendering/mathml/RenderMathMLOperator.h:
41587
415882014-03-11  Frédéric Wang  <fred.wang@free.fr>
41589
41590        Implement MathML spacing around operators .
41591        https://bugs.webkit.org/show_bug.cgi?id=115787
41592
41593        Reviewed by Chris Fleizach.
41594
41595        This makes the <mo> operators use the lspace/rspace properties to
41596        determine their spacing. The spacing is now consistent with the one
41597        of <mfenced> and as a consequence bug 118843 is fixed. This also ensures
41598        that the rendering of <mo> elements is updated when the form or
41599        attributes are changed.
41600
41601        Tests: mathml/presentation/dir-mo.html
41602               mathml/presentation/mo-form-dynamic.html
41603               mathml/presentation/mo-form-minus-plus.html
41604               mathml/presentation/mo-form.html
41605               mathml/presentation/mo-lspace-rspace-dynamic.html
41606               mathml/presentation/mo-lspace-rspace.html
41607               mathml/presentation/mo-whitespaces.html
41608
41609        * css/mathml.css:
41610        * mathml/MathMLInlineContainerElement.cpp:
41611        (WebCore::MathMLInlineContainerElement::childrenChanged):
41612        * mathml/MathMLInlineContainerElement.h:
41613        * rendering/mathml/RenderMathMLOperator.cpp:
41614        (WebCore::RenderMathMLOperator::setOperatorPropertiesFromOpDictEntry):
41615        (WebCore::RenderMathMLOperator::SetOperatorProperties):
41616        (WebCore::RenderMathMLOperator::updateFromElement):
41617        (WebCore::RenderMathMLOperator::updateOperatorProperties):
41618        (WebCore::RenderMathMLOperator::updateStyle):
41619        * rendering/mathml/RenderMathMLOperator.h:
41620        * rendering/mathml/RenderMathMLRow.cpp:
41621        (WebCore::RenderMathMLRow::updateOperatorProperties):
41622        * rendering/mathml/RenderMathMLRow.h:
41623        * rendering/mathml/RenderMathMLToken.h:
41624
416252014-03-11  Brent Fulgham  <bfulgham@apple.com>
41626
41627        Get the incomplete WebVTT Regions code to build again.
41628        https://bugs.webkit.org/show_bug.cgi?id=130094
41629
41630        Reviewed by Eric Carlson.
41631
41632        The feature is not being turned on here, so there are no new tests.
41633
41634        * DerivedSources.make: Add missing IDL files for Regions.
41635        * WebCore.xcodeproj/project.pbxproj: Add Regions-related files.
41636        * html/track/InbandWebVTTTextTrack.cpp:
41637        (WebCore::InbandWebVTTTextTrack::newRegionsParsed): Add stub implementation.
41638        * html/track/LoadableTextTrack.cpp: Add missing include file.
41639        * html/track/TextTrack.cpp:
41640        (WebCore::TextTrack::TextTrack): Correct ordering of construction
41641        to avoid compiler warning.
41642
416432014-03-11  Ryuan Choi  <ryuan.choi@samsung.com>
41644
41645        Remove unused method from BatteryController
41646        https://bugs.webkit.org/show_bug.cgi?id=130063
41647
41648        Reviewed by Darin Adler.
41649
41650        * Modules/battery/BatteryController.h: Removed client() which is not used.
41651
416522014-03-11  Krzysztof Czech  <k.czech@samsung.com>
41653
41654        [ATK] Expose aria-posinset and aria-setsize through object attributes
41655        https://bugs.webkit.org/show_bug.cgi?id=130011
41656
41657        Reviewed by Chris Fleizach.
41658
41659        Based on http://www.w3.org/TR/2014/PR-wai-aria-implementation-20140206/
41660        aria-poinset and aria-setsize can be exposed as object attributes.
41661
41662        Test: accessibility/aria-setsize-posinset.html
41663
41664        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
41665        (webkitAccessibleGetAttributes):
41666
416672014-03-10  Frédéric Wang  <fred.wang@free.fr>
41668
41669        Improve renderer classes for MathML Token elements.
41670        https://bugs.webkit.org/show_bug.cgi?id=124838
41671
41672        Reviewed by Chris Fleizach.
41673
41674        This patch continues the refactoring of token elements that has been
41675        started in bug 44208. The <mo> element now derives from the
41676        RenderMathMLToken class, which was already used for the <mi> element.
41677        The behavior of anonymous <mo> elements created by the <mfenced> element
41678        is now more consistent with the one of "standard" <mo> elements and the
41679        spacing around them is now handled in RenderMathMLOperator. This is a
41680        first step towards fixing bugs 115787 and 118843. The only visible
41681        rendering change is how <mfenced> open/close attributes handle
41682        whitespace and multiple characters and some tests are added for that.
41683        Other features are already covered by other tests. Finally, this also
41684        removes some code from AccessibilityRenderObject that was used to
41685        workaround issues with <mo> elements.
41686
41687        * accessibility/AccessibilityRenderObject.cpp:
41688        (WebCore::startOfContinuations):
41689        (WebCore::AccessibilityRenderObject::textUnderElement):
41690        (WebCore::AccessibilityRenderObject::isMathOperator):
41691        (WebCore::AccessibilityRenderObject::isIgnoredElementWithinMathTree):
41692        * mathml/MathMLTextElement.cpp:
41693        (WebCore::MathMLTextElement::didAttachRenderers):
41694        (WebCore::MathMLTextElement::childrenChanged):
41695        * rendering/mathml/RenderMathMLBlock.cpp:
41696        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
41697        * rendering/mathml/RenderMathMLBlock.h:
41698        * rendering/mathml/RenderMathMLFenced.cpp:
41699        (WebCore::RenderMathMLFenced::RenderMathMLFenced):
41700        (WebCore::RenderMathMLFenced::updateFromElement):
41701        (WebCore::RenderMathMLFenced::createMathMLOperator):
41702        (WebCore::RenderMathMLFenced::makeFences):
41703        (WebCore::RenderMathMLFenced::addChild):
41704        * rendering/mathml/RenderMathMLFenced.h:
41705        * rendering/mathml/RenderMathMLOperator.cpp:
41706        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
41707        (WebCore::RenderMathMLOperator::setOperatorFlagFromAttribute):
41708        (WebCore::RenderMathMLOperator::setOperatorPropertiesFromOpDictEntry):
41709        (WebCore::RenderMathMLOperator::SetOperatorProperties):
41710        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
41711        (WebCore::RenderMathMLOperator::rebuildTokenContent):
41712        (WebCore::RenderMathMLOperator::updateTokenContent):
41713        (WebCore::RenderMathMLOperator::updateStyle):
41714        (WebCore::RenderMathMLOperator::firstLineBaseline):
41715        (WebCore::RenderMathMLOperator::paint):
41716        (WebCore::RenderMathMLOperator::paintChildren):
41717        * rendering/mathml/RenderMathMLOperator.h:
41718        * rendering/mathml/RenderMathMLToken.cpp:
41719        (WebCore::RenderMathMLToken::createWrapperIfNeeded):
41720
417212014-03-10  James Craig  <jcraig@apple.com>
41722
41723        Web Inspector: AXI: Expose checked/disabled/expanded/pressed/readonly/selected
41724        https://bugs.webkit.org/show_bug.cgi?id=129781
41725
41726        Reviewed by Joseph Pecoraro.
41727
41728        Enabling several more properties to be exposed in the Accessibility Node Inspector.
41729
41730        Updated Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
41731
41732        * accessibility/AccessibilityObject.cpp:
41733        (WebCore::AccessibilityObject::supportsChecked):
41734        * accessibility/AccessibilityObject.h:
41735        * inspector/InspectorDOMAgent.cpp:
41736        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
41737        * inspector/protocol/DOM.json:
41738
417392014-03-10  Bem Jones-Bey  <bjonesbe@adobe.com>
41740
41741        [CSS Shapes] inset corner radii are not flipped for vertical writing modes
41742        https://bugs.webkit.org/show_bug.cgi?id=129918
41743
41744        Reviewed by Dean Jackson.
41745
41746        When creating an inset shape, convert the radii to logical coordinates
41747        as well as the box.
41748
41749        Tests: fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left.html
41750               fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right.html
41751
41752        * rendering/shapes/Shape.cpp:
41753        (WebCore::Shape::createShape): Convert the radii to logical
41754            coordinates.
41755
417562014-03-10  Joseph Pecoraro  <pecoraro@apple.com>
41757
41758        Web Inspector: Frontend loaded resources from cache are not hidden as expected
41759        https://bugs.webkit.org/show_bug.cgi?id=130044
41760
41761        Reviewed by Timothy Hatcher.
41762
41763        * loader/FrameLoader.cpp:
41764        (WebCore::FrameLoader::loadedResourceFromMemoryCache):
41765        Use the new request that was passed in. Assume it is filled in appropriately.
41766
41767        * loader/cache/CachedResourceLoader.h:
41768        * loader/cache/CachedResourceLoader.cpp:
41769        (WebCore::CachedResourceLoader::shouldContinueAfterNotifyingLoadedFromMemoryCache):
41770        Carry over the hidden from inspector state if the passed in request had it,
41771        and create the request that loadedResourceFromMemoryCache will use.
41772
41773        * xml/XMLHttpRequest.cpp:
41774        (WebCore::XMLHttpRequest::createRequest):
41775        Add missing ifdefs for INSPECTOR only function.
41776
417772014-03-10  Jinwoo Song  <jinwoo7.song@samsung.com>
41778
41779        Remove 'visibilitychange' attribute event listener from document
41780        https://bugs.webkit.org/show_bug.cgi?id=129794
41781
41782        Reviewed by Simon Fraser.
41783
41784        Remove the unused attribute event listener which is not defined in Page Visibility API spec.
41785        http://www.w3.org/TR/page-visibility/#sec-document-interface
41786
41787        * dom/Document.h:
41788
417892014-03-10  Benjamin Poulain  <bpoulain@apple.com>
41790
41791        [iOS][WebKit 2] Wire the unobscured rect in the WebProcess
41792        https://bugs.webkit.org/show_bug.cgi?id=130058
41793
41794        Reviewed by Simon Fraser.
41795
41796        * WebCore.exp.in:
41797        * platform/ScrollView.h:
41798        * platform/ios/ScrollViewIOS.mm:
41799        (WebCore::ScrollView::unobscuredContentRect):
41800        (WebCore::ScrollView::setUnobscuredContentRect):
41801
418022014-03-10  Benjamin Poulain  <bpoulain@apple.com>
41803
41804        makeSelectorPseudoTypeMap.py should not be copied in the WebCore bundle
41805
41806        * WebCore.xcodeproj/project.pbxproj:
41807
418082014-03-10  Mario Sanchez Prada  <mario.prada@samsung.com>
41809
41810        [GTK] Add support for Geoclue2
41811        https://bugs.webkit.org/show_bug.cgi?id=120185
41812
41813        Reviewed by Carlos Garcia Campos.
41814
41815        Patch by Anton Obzhirov <a.obzhirov@samsung.com> and Mario Sanchez Prada <mario.prada@samsung.com>
41816
41817        Implement a new geolocation provider based on Geoclue2, which will only
41818        be used if a good enough version of Geoclue2 is found  at configure time.
41819
41820        * GNUmakefile.am: Generate C-API for accessing the D-Bus API
41821        provided by Geoclue2, and place it in DerivedSources.
41822        * GNUmakefile.list.am: Add GeolocationProviderGeoclue2.cpp, and
41823        include the generated proxy files when using Geoclue2.
41824        * PlatformGTK.cmake: Likewise, for CMake based builds.
41825        * platform/geoclue/GeolocationProviderGeoclue.h: Modified to
41826        accomodate the needs both for Geoclue and Geoclue2 providers.
41827        * platform/geoclue/GeolocationProviderGeoclue1.cpp: Renamed from Source/WebCore/platform/geoclue/GeolocationProviderGeoclue.cpp.
41828        (GeolocationProviderGeoclue::getPositionCallback):
41829        (GeolocationProviderGeoclue::positionChangedCallback):
41830        (GeolocationProviderGeoclue::createGeocluePositionCallback):
41831        (GeolocationProviderGeoclue::geoclueClientSetRequirementsCallback):
41832        (GeolocationProviderGeoclue::createGeoclueClientCallback):
41833        (GeolocationProviderGeoclue::GeolocationProviderGeoclue):
41834        (GeolocationProviderGeoclue::~GeolocationProviderGeoclue):
41835        (GeolocationProviderGeoclue::startUpdating):
41836        (GeolocationProviderGeoclue::stopUpdating):
41837        (GeolocationProviderGeoclue::setEnableHighAccuracy):
41838        (GeolocationProviderGeoclue::initializeGeoclueClient):
41839        (GeolocationProviderGeoclue::initializeGeocluePosition):
41840        (GeolocationProviderGeoclue::updateClientRequirements):
41841        (GeolocationProviderGeoclue::positionChanged):
41842        (GeolocationProviderGeoclue::errorOccurred):
41843        * platform/geoclue/GeolocationProviderGeoclue2.cpp: Added.
41844        (GeolocationProviderGeoclue::GeolocationProviderGeoclue):
41845        (GeolocationProviderGeoclue::~GeolocationProviderGeoclue):
41846        (GeolocationProviderGeoclue::startUpdating):
41847        (GeolocationProviderGeoclue::stopUpdating):
41848        (GeolocationProviderGeoclue::setEnableHighAccuracy):
41849        (GeolocationProviderGeoclue::createGeoclueManagerProxyCallback):
41850        (GeolocationProviderGeoclue::getGeoclueClientCallback):
41851        (GeolocationProviderGeoclue::createGeoclueClientProxyCallback):
41852        (GeolocationProviderGeoclue::startClientCallback):
41853        (GeolocationProviderGeoclue::locationUpdatedCallback):
41854        (GeolocationProviderGeoclue::createLocationProxyCallback):
41855        (GeolocationProviderGeoclue::startGeoclueClient):
41856        (GeolocationProviderGeoclue::updateLocation):
41857        (GeolocationProviderGeoclue::errorOccurred):
41858        (GeolocationProviderGeoclue::updateClientRequirements):
41859
418602014-03-10  Brent Fulgham  <bfulgham@apple.com>
41861
41862        Unreviewed Windows Build Fix.
41863
41864        * WebCore.vcxproj/WebCore.vcxproj: Don't build cURL files for Apple Windows port.
41865        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
41866        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
41867        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerPaintContents): Correct
41868        method signature to match base class.
41869        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::loadInternal): Use proper character encoding.
41870
418712014-03-10  Simon Fraser  <simon.fraser@apple.com>
41872
41873        Fix three leaks
41874        https://bugs.webkit.org/show_bug.cgi?id=130048
41875
41876        Reviewed by Anders Carlsson.
41877
41878        The NSDictionary was leaked.
41879
41880        * page/ios/UserAgentIOS.mm:
41881        (WebCore::osMarketingVersion):
41882
418832014-03-10  Beth Dakin  <bdakin@apple.com>
41884
41885        Set background color of WK2's UIScrollView to the pageExtendedBackgroundColor
41886        https://bugs.webkit.org/show_bug.cgi?id=129919
41887
41888        Reviewed by Benjamin Poulain.
41889
41890        WK2 needs to be able to ask for the pageExtendedBackgroundColor, so this patch 
41891        adds a function to Page that will return it
41892
41893        * WebCore.exp.in:
41894        * page/Page.cpp:
41895        (WebCore::Page::pageExtendedBackgroundColor):
41896        * page/Page.h:
41897        * rendering/RenderLayerCompositor.h:
41898        (WebCore::RenderLayerCompositor::rootExtendedBackgroundColor):
41899
419002014-03-10  Benjamin Poulain  <bpoulain@apple.com>
41901
41902        Generalize unobscured rect to all ports
41903        https://bugs.webkit.org/show_bug.cgi?id=130036
41904
41905        Reviewed by Simon Fraser.
41906
41907        iOS differentiates visible content and unobscured content. This patch moves the concept to all
41908        ports to remove the #ifdefs from the call sites.
41909
41910        On everything but iOS, unobscuredRect and visibleRect are the same.
41911
41912        * WebCore.exp.in:
41913        * page/DOMWindow.cpp:
41914        (WebCore::DOMWindow::innerHeight):
41915        (WebCore::DOMWindow::innerWidth):
41916        * page/SpatialNavigation.cpp:
41917        (WebCore::canScrollInDirection):
41918        * platform/ScrollView.cpp:
41919        (WebCore::ScrollView::updateScrollbars):
41920        (WebCore::ScrollView::paint):
41921        * platform/ScrollView.h:
41922        (WebCore::ScrollView::unobscuredContentRectIncludingScrollbars):
41923        (WebCore::ScrollView::unobscuredContentRect):
41924        * rendering/RenderView.cpp:
41925        (WebCore::RenderView::viewportSize):
41926
419272014-03-10  Benjamin Poulain  <benjamin@webkit.org>
41928
41929        Start splitting CSS Selectors's pseudo types
41930        https://bugs.webkit.org/show_bug.cgi?id=130003
41931
41932        Reviewed by Andreas Kling.
41933
41934        CSS Selectors pseudo types come in 3 flavors: page, pseudo class, pseudo elements.
41935
41936        The three types are mixed together in a single enum list named PseudoType. Only some combinations
41937        of match type + pseudo type are valid, but this is implicitly defined from the code.
41938
41939        This patch is the beginning of a refactoring to add more clear boundaries between
41940        valid and invalid combinations.
41941
41942        First, the handling of page pseudo types is completely split from the other values.
41943        The parser use a different method for handling the value CSSParserSelector::parsePagePseudoSelector().
41944
41945        PagePseudo types no longer store their string in the CSSSelector either to reduce the redundancy
41946        with m_pseudoType.
41947        When we need to generate the string for those CSSSelector, we recreate the string as needed in
41948        CSSSelector::selectorText().
41949
41950        The remaining two types are not yet split in this patch but this introduce the preliminary clean up
41951        toward that goal.
41952        The list of parsed pseudo types is now generated at compile time from the source in SelectorPseudoTypeMap.in.
41953
41954        * DerivedSources.make:
41955        The mapping of strings to pseudo types is generated from SelectorPseudoTypeMap.in
41956        by the new script makeSelectorPseudoTypeMap.py.
41957
41958        * WebCore.xcodeproj/project.pbxproj:
41959        * css/CSSGrammar.y.in:
41960        Split the parsing of Pseudo Types. Pseudo page get its own method. The others will need some work.
41961
41962        * css/CSSParserValues.cpp:
41963        (WebCore::CSSParserSelector::parsePagePseudoSelector):
41964        (WebCore::CSSParserSelector::setPseudoTypeValue):
41965        * css/CSSParserValues.h:
41966        * css/CSSSelector.cpp:
41967        (WebCore::CSSSelector::specificityForPage):
41968        This is an example of invalid combination that is hidden by the current code.
41969        First, Left and Right could never appear in a pseudo class match.
41970        (WebCore::CSSSelector::pseudoId):
41971        (WebCore::CSSSelector::parsePseudoType):
41972        (WebCore::appendPseudoTypeTailIfNecessary):
41973        (WebCore::CSSSelector::selectorText):
41974        * css/CSSSelector.h:
41975        (WebCore::CSSSelector::pseudoType):
41976        (WebCore::CSSSelector::matchesPseudoElement):
41977        (WebCore::CSSSelector::setValue):
41978        (WebCore::CSSSelector::CSSSelector):
41979        * css/PageRuleCollector.cpp:
41980        (WebCore::checkPageSelectorComponents):
41981        * css/SelectorChecker.cpp:
41982        (WebCore::SelectorChecker::checkOne):
41983        * css/SelectorPseudoTypeMap.h: Added.
41984        * css/SelectorPseudoTypeMap.in: Added.
41985        * css/makeSelectorPseudoTypeMap.py: Added.
41986        (enumerablePseudoType):
41987        (expand_ifdef_condition):
41988        * cssjit/SelectorCompiler.cpp:
41989        (WebCore::SelectorCompiler::addPseudoType):
41990
419912014-03-10  Enrica Casucci  <enrica@apple.com>
41992
41993        iOS build fix after http://trac.webkit.org/changeset/165385
41994
41995        Unreviewed.
41996
41997        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
41998        (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
41999
420002014-03-10  Daniel Bates  <dabates@apple.com>
42001
42002        REGRESSION (r159218): FrameView::layout() should destroy TemporaryChange<LayoutPhase>
42003        before destroying Ref<FrameView>
42004        https://bugs.webkit.org/show_bug.cgi?id=130034
42005        <rdar://problem/15664288>
42006
42007        Reviewed by Alexey Proskuryakov.
42008
42009        We should always destroy TemporaryChange<LayoutPhase> before destroying Ref<FrameView>
42010        in FrameView::layout() so as to ensure that the FrameView exists when we restore the
42011        original layout phase value.
42012
42013        The existing test fast/frames/crash-remove-iframe-during-object-beforeload.html covers
42014        this change. Although you must run the test with Guard Malloc enabled (i.e. run-webkit-tests -r).
42015
42016        * page/FrameView.cpp:
42017        (WebCore::FrameView::layout): Move construction of variable protect before the construction of
42018        variable layoutPhaseRestorer. Additionally, add a period to the end of the comment associated
42019        with variable protect.
42020
420212014-03-10  Zsolt Borbely  <borbezs@inf.u-szeged.hu>
42022
42023        ASSERTION FAILED: span >= 1
42024        https://bugs.webkit.org/show_bug.cgi?id=129148
42025
42026        Reviewed by Andreas Kling.
42027
42028        Set the value of span to 1 if the given number is too big or zero.
42029
42030        Test: fast/table/incorrect-colgroup-span-values.html
42031
42032        * html/HTMLTableColElement.cpp:
42033        (WebCore::HTMLTableColElement::parseAttribute):
42034
420352014-03-10  Brent Fulgham  <bfulgham@apple.com>
42036
42037        [Win] Pass environment to Pre-Build, Pre-Link, and Post-Build Stages.
42038        https://bugs.webkit.org/show_bug.cgi?id=130023.
42039
42040        Reviewed by Dean Jackson.
42041
42042        * WebCore.vcxproj/WebCore.proj: Avoid trailing slashes in path values to
42043        prevent escaping during later string substitution.
42044
420452014-03-10  Radu Stavila  <stavila@adobe.com>
42046
42047        [CSS Regions] Hit-testing is not working properly inside scrollable regions
42048        https://bugs.webkit.org/show_bug.cgi?id=130015
42049
42050        Reviewed by Antti Koivisto.
42051
42052        When hit-testing inside the flow thread's layer, the scrolled offset
42053        of the current region must be taken into consideration.
42054
42055        Test: fast/regions/scrollable-regions-hit-testing-inside.html
42056
42057        * rendering/RenderLayer.cpp:
42058        (WebCore::RenderLayer::calculateClipRects):
42059
420602014-03-10  Hans Muller  <hmuller@adobe.com>
42061
42062        [CSS Shapes] SVG Image valued shape fails if root element's size is relative
42063        https://bugs.webkit.org/show_bug.cgi?id=128983
42064
42065        Reviewed by Simon Fraser.
42066
42067        When creating a shape based on an Image, compute its dimensions using
42068        RenderBoxModelObject::calculateImageIntrinsicDimensions(), then set the
42069        ImageResource's containerSize, and then use imageForRenderer() to get the
42070        image to be drawn. The first step resolves SVG Image relative sizes, the
42071        second step creates and caches an SVGImageForContainer with the correct
42072        containerSize, and the last step retrieves the SVGImageForContainer.
42073
42074        Test: fast/shapes/shape-outside-floats/shape-outside-relative-size-svg.html
42075
42076        * rendering/RenderBoxModelObject.h: Publicized calculateImageIntrinsicDimensions() and its enum.
42077        * rendering/shapes/Shape.cpp:
42078        (WebCore::Shape::createRasterShape):
42079        * rendering/shapes/Shape.h:
42080        * rendering/shapes/ShapeInfo.cpp:
42081        (WebCore::getShapeImageAndRect):
42082        (WebCore::ShapeInfo<RenderType>::computedShape):
42083
420842014-03-10  Darin Adler  <darin@apple.com>
42085
42086        TextIterator: Use StringView and references rather than pointers
42087        https://bugs.webkit.org/show_bug.cgi?id=129975
42088
42089        Reviewed by Anders Carlsson.
42090
42091        TextIterator refinements:
42092        - Use StringView instead of deprecatedCharacters to point to characters within strings.
42093        - Added TextIteratorCopyableText, a safe way to copy the current text of a TextIterator,
42094          for use by WordAwareIterator.
42095        - Removed m_shouldStop; iterators stop by setting m_positionNode to null, and there is no
42096          need for a separate boolean to do the same thing.
42097        - Got rid of all the boolean data members set based on the text iterator behavior; instead
42098          store the behavior in a data member and check it directly.
42099        - Changed most functions to use references rather than pointers.
42100        - Small micro-optimizations, such as using fastGetAttribute rather than getAttribute.
42101        - Switched to nullptr instead of 0 where appropriate.
42102        - Removed unused functions.
42103        - Cut down on use of abbreviations instead of words.
42104        - Renamed data members and argument names for clarity.
42105        - Split up assertions that needlessly asserted more than one thing in a single expression.
42106        - Treat CDATASection just like other Text, since its text will be visible.
42107
42108        * editing/Editor.cpp:
42109        (WebCore::Editor::advanceToNextMisspelling): Pass reference rather than pointer.
42110        (WebCore::Editor::rangeOfString): Ditto.
42111        (WebCore::Editor::countMatchesForText): Ditto.
42112        * editing/TextCheckingHelper.cpp:
42113        (WebCore::TextCheckingHelper::findFirstMisspelling): Ditto.
42114
42115        * editing/TextIterator.cpp:
42116        (WebCore::depthCrossingShadowBoundaries): Take a reference rather than a pointer.
42117        (WebCore::nextInPreOrderCrossingShadowBoundaries): Ditto.
42118        (WebCore::fullyClipsContents): Ditto.
42119        (WebCore::ignoresContainerClip): Ditto.
42120        (WebCore::pushFullyClippedState): Ditto.
42121        (WebCore::setUpFullyClippedStack): Ditto.
42122        (WebCore::isRendererReplacedElement): Use references rather than pointers in the
42123        implementation. Also use fastGetAttribute instead of getAttribute.
42124        (WebCore::TextIteratorCopyableText::reset): Added.
42125        (WebCore::TextIteratorCopyableText::set): Added.
42126        (WebCore::TextIteratorCopyableText::appendToStringBuilder): Added.
42127        (WebCore::TextIterator::TextIterator): Use more initialization rather than assignment.
42128        Got rid of some local variables.
42129        (WebCore::TextIterator::advance): Removed the m_shouldStop boolean, uneeded.
42130        Many other improvements. Use isTextNode instead of nodeType.
42131        (WebCore::hasVisibleTextNode): Changed this into a file-private helper function
42132        instead of a member function.
42133        (WebCore::TextIterator::handleTextNode): Used references and cut down on type casts.
42134        Gave local variables clearer names.
42135        (WebCore::TextIterator::handleTextBox): More of the same.
42136        (WebCore::TextIterator::handleTextNodeFirstLetter): Ditto.
42137        (WebCore::TextIterator::handleReplacedElement): Ditto.
42138        (WebCore::shouldEmitTabBeforeNode): Ditto.
42139        (WebCore::hasHeaderTag): Added.
42140        (WebCore::shouldEmitNewlinesBeforeAndAfterNode): More of the same.
42141        (WebCore::shouldEmitNewlineAfterNode): Ditto.
42142        (WebCore::shouldEmitNewlineBeforeNode): Ditto.
42143        (WebCore::shouldEmitExtraNewlineForNode): Ditto.
42144        (WebCore::collapsedSpaceLength): Use StringImpl directly instead of using the
42145        deprecatedCharacters function.
42146        (WebCore::TextIterator::shouldRepresentNodeOffsetZero): More like above.
42147        (WebCore::TextIterator::shouldEmitSpaceBeforeAndAfterNode): Ditto.
42148        (WebCore::TextIterator::representNodeOffsetZero): Ditto.
42149        (WebCore::TextIterator::handleNonTextNode): Ditto.
42150        (WebCore::TextIterator::exitNode): Ditto.
42151        (WebCore::TextIterator::emitCharacter): Changed to use the new copyable text class
42152        instead of managing the single character buffer directly here.
42153        (WebCore::TextIterator::emitText): Changed to take a Text& and use the copyable text
42154        class. Added a FIXME about a mistake I noticed.
42155        (WebCore::TextIterator::range): Streamlined and simplified a bit. Updated data
42156        member names to be a bit clearer. This function never returned null before, but there
42157        was a code path that looked like it would; I removed that.
42158        (WebCore::TextIterator::node): Removed unneeded null checks; the range function will
42159        never return a range of null or one with null for a start container.
42160        (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): More
42161        like above.
42162        (WebCore::SimplifiedBackwardsTextIterator::advance): Reorganized a bit and removed
42163        m_shouldStop.
42164        (WebCore::SimplifiedBackwardsTextIterator::handleTextNode): More of the same.
42165        (WebCore::SimplifiedBackwardsTextIterator::handleFirstLetter): Ditto.
42166        (WebCore::SimplifiedBackwardsTextIterator::handleReplacedElement): Ditto.
42167        (WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode): Ditto.
42168        (WebCore::SimplifiedBackwardsTextIterator::exitNode): Ditto.
42169        (WebCore::SimplifiedBackwardsTextIterator::emitCharacter): Ditto.
42170        (WebCore::SimplifiedBackwardsTextIterator::advanceRespectingRange): Ditto.
42171        (WebCore::SimplifiedBackwardsTextIterator::range): Ditto.
42172        (WebCore::CharacterIterator::CharacterIterator): Ditto.
42173        (WebCore::CharacterIterator::range): Ditto. No need for ASSERT_NO_EXCEPTION.
42174        (WebCore::CharacterIterator::advance): Ditto.
42175        (WebCore::BackwardsCharacterIterator::BackwardsCharacterIterator): Ditto.
42176        (WebCore::BackwardsCharacterIterator::range): Ditto.
42177        (WebCore::BackwardsCharacterIterator::advance): Ditto.
42178        (WebCore::WordAwareIterator::WordAwareIterator): Ditto.
42179        (WebCore::WordAwareIterator::advance): Use copyableText for m_previousText, fixing
42180        the FIXME that I wrote in here before.
42181        (WebCore::WordAwareIterator::text): Ditto.
42182        (WebCore::containsKanaLetters): Changed to quickly return false when the pattern
42183        is all Latin-1 rather than expanding to 16-bit just to check.
42184        (WebCore::SearchBuffer::SearchBuffer): Iterate the target using the string operator[]
42185        instead of using deprecatedCharacters.
42186        (WebCore::SearchBuffer::append): Do the folding of quote marks and hyphens one character
42187        at a time as we move characters into the buffer instead of in a separate loop.
42188        (WebCore::TextIterator::rangeLength): Updated for changes eslwehere.
42189        (WebCore::TextIterator::subrange): Ditto.
42190        (WebCore::isInsideReplacedElement): Ditto. Also streamlined and removed unneeded null check.
42191        (WebCore::TextIterator::rangeFromLocationAndLength): Updated for changes elsewhere and
42192        removed unneeded ASSERT_NO_EXCEPTION.
42193        (WebCore::plainText): Ditto.
42194        (WebCore::collapsedToBoundary): Ditto.
42195        (WebCore::findPlainText): Ditto.
42196
42197        * editing/TextIterator.h: Changed many functions to take references instead of pointers.
42198        Added TextIteratorCopyableText, to represent the current text in a TextIterator in a form
42199        that can be safely copied and used after further iteration. Reorganized member functions so
42200        they are in the same order in all the classes. Changed TextIterator to use
42201        TextIteratorCopyableText. Removed many unused functions, including:
42202        - TextIterator::length
42203        - TextIterator::deprecatedTextIteratorCharacters
42204        - TextIterator::characterAt
42205        - SimplifiedBackwardsTextIterator::length
42206        - CharacterIterator::length
42207        - CharacterIterator::string
42208        - WordAwareIterator::length
42209        - WordAwareIterator::range
42210
42211        * editing/VisibleSelection.cpp:
42212        (WebCore::VisibleSelection::appendTrailingWhitespace): Pass reference rather than pointer.
42213        Use text().length() instead of length(). Check atEnd() before using CharacterIterator, since
42214        iterator member functions don't work when at the end.
42215        * editing/VisibleUnits.cpp:
42216        (WebCore::previousBoundary): Ditto.
42217        (WebCore::nextBoundary): Ditto.
42218        * editing/htmlediting.cpp:
42219        (WebCore::visiblePositionForIndexUsingCharacterIterator): Ditto.
42220        * page/ios/FrameIOS.mm:
42221        (WebCore::Frame::indexCountOfWordPrecedingSelection): Ditto.
42222        (WebCore::Frame::wordsInCurrentParagraph): Ditto.
42223
422242014-03-10  Martin Robinson  <mrobinson@igalia.com>
42225
42226        [GTK] [CMake] Clean up library linking
42227        https://bugs.webkit.org/show_bug.cgi?id=129782
42228
42229        Reviewed by Philippe Normand.
42230
42231        * PlatformGTK.cmake: Some files are duplicated on the source list of two convenience
42232        libraries. Ensure that they are all compiled into WebCore instead of WebCorePlatformGTK.
42233        Some simply need to be moved to WebCore from WebCorePlatformGTK. Don't try to link
42234        WebCorePlatformGTK against WebCore -- convenience libraries should be able to save
42235        their symbol resolution for the final linking step.
42236
422372014-03-10  Radu Stavila  <stavila@adobe.com>
42238
42239        [CSS Regions] Scrolling regions with the mouse wheel only works properly if hovering over the region's padding
42240        https://bugs.webkit.org/show_bug.cgi?id=129485
42241
42242        Reviewed by Andrei Bucur.
42243
42244        When searching for the region under the mouse pointer (to identify which region to scroll), 
42245        the localToAbsolute method must be called on the region container, not the region itself.
42246        Also, when calling the offsetFromContainer method on a named flow fragment,
42247        it must only take into consideration the border and padding of the fragment container,
42248        not its scrolled offset.
42249
42250        Test: fast/regions/wheel-scrollable-single-region.html
42251
42252        * rendering/RenderBox.cpp:
42253        (WebCore::RenderBox::scroll):
42254        * rendering/RenderFlowThread.cpp:
42255        * rendering/RenderFlowThread.h:
42256        * rendering/RenderNamedFlowFragment.cpp:
42257        (WebCore::RenderNamedFlowFragment::offsetFromContainer):
42258        * rendering/RenderNamedFlowFragment.h:
42259        * rendering/RenderNamedFlowThread.cpp:
42260        (WebCore::RenderNamedFlowThread::fragmentFromAbsolutePointAndBox):
42261        * rendering/RenderNamedFlowThread.h:
42262
422632014-03-10  Jinwoo Song  <jinwoo7.song@samsung.com>
42264
42265        Remove unused dispatchStorageEvent() from StorageAreaSync
42266        https://bugs.webkit.org/show_bug.cgi?id=129999
42267
42268        Reviewed by Andreas Kling.
42269
42270        dispatchStorageEvent() is not used anywhere.
42271
42272        * storage/StorageAreaSync.h: Remove dispatchStorageEvent().
42273
422742014-03-09  Alexey Proskuryakov  <ap@apple.com>
42275
42276        iOS build fix.
42277
42278        * dom/KeyboardEvent.cpp: (WebCore::KeyboardEvent::KeyboardEvent):
42279
422802014-03-06  Alexey Proskuryakov  <ap@apple.com>
42281
42282        [Mac] Don't perform a round-trip through WebProcess before interpreting key events
42283        https://bugs.webkit.org/show_bug.cgi?id=129812
42284
42285        Reviewed by Darin Adler.
42286
42287        No significant behavior changes expected, except for Esc key processing, which now
42288        dispatches a keypress before executing its default action.
42289
42290        * platform/KeypressCommand.h: Added.
42291        (WebCore::KeypressCommand::KeypressCommand):
42292        * GNUmakefile.list.am:
42293        * WebCore.vcxproj/WebCore.vcxproj:
42294        * WebCore.vcxproj/WebCore.vcxproj.filters:
42295        * WebCore.xcodeproj/project.pbxproj:
42296        Moved KeypressCommand from dom/KeyboardEvent.h to its own header, as it needed
42297        in platform/ directory now.
42298
42299        * dom/KeyboardEvent.cpp:
42300        (WebCore::KeyboardEvent::KeyboardEvent):
42301        * dom/KeyboardEvent.h:
42302        (WebCore::KeyboardEvent::handledByInputMethod):
42303        (WebCore::KeyboardEvent::keypressCommands):
42304        * platform/PlatformKeyboardEvent.h:
42305        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
42306        (WebCore::PlatformKeyboardEvent::handledByInputMethod):
42307        (WebCore::PlatformKeyboardEvent::commands):
42308        PlatformKeyboardEvent now carries results of interpreting the event by AppKit. This
42309        is logically not much different from carrying charcode, and is similar to what Gtk
42310        does for input methods.
42311        KeyboardEvent already had keypress commands, which were added to it after construction.
42312        It's still possible for WebKit1, while with WebKit2, they are provided at construction
42313        time. The event now also has a boolean for whether IM handled it already.
42314
423152014-03-09  Zalan Bujtas  <zalan@apple.com>
42316
42317        Subpixel rendering: Pass FloatSize boxsize to transform animations to support device pixel sizing.
42318        https://bugs.webkit.org/show_bug.cgi?id=129985
42319
42320        Reviewed by Simon Fraser.
42321
42322        This is in preparation to stop passing integral positioned boxes to transform animations.
42323
42324        No change in behavior.
42325
42326        * WebCore.exp.in:
42327        * platform/graphics/GraphicsLayer.h:
42328        (WebCore::GraphicsLayer::addAnimation):
42329        * platform/graphics/ca/GraphicsLayerCA.cpp:
42330        (WebCore::getTransformFunctionValue):
42331        (WebCore::GraphicsLayerCA::addAnimation):
42332        (WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
42333        (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
42334        (WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
42335        (WebCore::GraphicsLayerCA::setTransformAnimationKeyframes):
42336        * platform/graphics/ca/GraphicsLayerCA.h:
42337        * rendering/RenderLayerBacking.cpp:
42338        (WebCore::RenderLayerBacking::startTransition):
42339
423402014-03-08  Simon Fraser  <simon.fraser@apple.com>
42341
42342        [iOS Wk2] Can't scroll after going back to page in page cache
42343        https://bugs.webkit.org/show_bug.cgi?id=129989
42344        <rdar://problem/16217588>
42345
42346        Reviewed by Dan Bernstein.
42347
42348        iOS has a special FrameLoader::forceLayoutWithoutRecalculatingStyle()
42349        function that is called instead of FrameView::forceLayout(). This was unimplemented
42350        for the WK2 FrameLoaderClient, so no layout was forced, with the result
42351        that the contentSize was never updated and scrolling was broken.
42352        
42353        Fix by renaming the client function to forceLayoutOnRestoreFromPageCache()
42354        and having it return a bool to say whether the default forceLayout()
42355        should be done. WK1 can then continue to have its custom behavior,
42356        and Wk2 will simply do a forceLayout().
42357        
42358        Also remove FrameLaoderClient::forceLayout(), which was never called.
42359
42360        * loader/EmptyClients.h:
42361        * loader/FrameLoader.cpp:
42362        (WebCore::FrameLoader::commitProvisionalLoad):
42363        * loader/FrameLoaderClient.h:
42364
423652014-03-08  Simon Fraser  <simon.fraser@apple.com>
42366
42367        [iOS WK2] Get position:fixed working slighlty better
42368        https://bugs.webkit.org/show_bug.cgi?id=129988
42369
42370        Reviewed by Dan Bernstein.
42371
42372        On iOS we want to use the viewport-constrained visible rect, not
42373        just the visible rect.
42374
42375        * page/scrolling/AsyncScrollingCoordinator.cpp:
42376        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
42377
423782014-03-07  Simon Fraser  <simon.fraser@apple.com>
42379
42380        [iOS] Don't call scrollOffsetForFixedPosition a second time if we have no header and footer layers
42381        https://bugs.webkit.org/show_bug.cgi?id=129912
42382
42383        Reviewed by Tim Horton.
42384
42385        Avoid extra work if we have no header or footer layers.
42386
42387        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
42388        (WebCore::ScrollingTreeScrollingNodeIOS::setScrollLayerPosition):
42389
423902014-03-08  Zalan Bujtas  <zalan@apple.com>
42391
42392        RenderElement::valueForLength() callers misuse bool parameter.
42393        https://bugs.webkit.org/show_bug.cgi?id=129982
42394
42395        Reviewed by Andreas Kling.
42396
42397        Remove bogus RenderView* parameter.
42398
42399        * rendering/RenderBox.cpp:
42400        (WebCore::RenderBox::computePercentageLogicalHeight):
42401        * rendering/RenderElement.cpp:
42402        (WebCore::RenderElement::repaintAfterLayoutIfNeeded):
42403
424042014-03-08  Jeremy Jones  <jeremyj@apple.com>
42405
42406        Allow media element to supply the video layer after fullscreen transition has already begun.
42407        https://bugs.webkit.org/show_bug.cgi?id=129870
42408
42409        Reviewed by Eric Carlson.
42410
42411        Instead of borrowing the videolayer from the HTMLMediaElement, WebVideoFullscreen now supplies a layer to HTMLMediaElement to fill in as needed and at the appropriate time.
42412
42413        This allows fullscreen even if the video layer hasn't yet been created. And in the future it allows MediaPlayer to supply other layers such as closed captions. 
42414
42415        * WebCore.exp.in:
42416        Remove exports related to borrowing and lend the video layer.
42417        Add exports for supplying a layer to fullscreen and keepying the frame and gravity properties in sync.
42418
42419        * html/HTMLMediaElement.cpp:
42420        Remove the concept of borrowing the platform layer.
42421        Add the concept of a supplied m_videoFullscreenLayer, into which the media player can add layers.
42422        When the m_videoFullscreenFrame is supplied, don't show the video layer inline any more.
42423        Stash video layer properties in case the media player is not yet created.
42424
42425        (WebCore::HTMLMediaElement::HTMLMediaElement):
42426        Initialize gravity to the default. Remove m_platformLayerBorrowed.
42427
42428        (WebCore::HTMLMediaElement::platformLayer):
42429        When we have a m_videoFullscreenLayer, don't show video inline.
42430
42431        (WebCore::HTMLMediaElement::setVideoFullscreenLayer):
42432        Pass along the m_videoFullscreenLayer to the MediaPlayer if available or just stash it for later.
42433
42434        (WebCore::HTMLMediaElement::createMediaPlayer):
42435        Pass along video fullscreen properties that we may have accumulated before the MediaPlayer was created.
42436
42437        (WebCore::HTMLMediaElement::setVideoFullscreenGravity):
42438        Stash the gravity property, pass it along to the media player if possible.
42439
42440        * html/HTMLMediaElement.h:
42441        Remove concept of borrowing the video layer. Add properties for a supplied videoFullscreenLayer.
42442
42443        * platform/graphics/MediaPlayer.cpp:
42444        (WebCore::MediaPlayer::setVideoFullscreenLayer):
42445        Forward on to internal implementation.
42446
42447        (WebCore::MediaPlayer::setVideoFullscreenFrame):
42448        Forward on to internal implementation.
42449
42450        (WebCore::MediaPlayer::setVideoFullscreenGravity):
42451        Forward on to internal implementation.
42452
42453        * platform/graphics/MediaPlayer.h:
42454        Add methods for video fullscreen Layer, Frame and Gravity.
42455
42456        * platform/graphics/MediaPlayerPrivate.h:
42457        (WebCore::MediaPlayerPrivateInterface::setVideoFullscreenLayer):
42458        Add default implementation.
42459
42460        (WebCore::MediaPlayerPrivateInterface::setVideoFullscreenFrame):
42461        Add default implementation.
42462        
42463        (WebCore::MediaPlayerPrivateInterface::setVideoFullscreenGravity):
42464        Add default implementation.
42465        
42466        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
42467        Add support for fullscreen video layer, frame and gravity.
42468
42469        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
42470        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
42471        Init m_videoFullscreenGravity. 
42472
42473        (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
42474        Apply cached properties once video layer is created and add to the fullscreen layer.
42475
42476        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
42477        Cache the property value. Add video layer right away available.
42478
42479        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame):
42480        Cache the property value. Apply to video layer right away if available.
42481
42482        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenGravity):
42483        Cache the property value. Apply to video layer right away if available.
42484
42485        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
42486        Supply a fullscreen video layer to the WebVideoFullscreenModel and to the WebVideoFullscreenInterface.
42487
42488        (-[WebVideoFullscreenController enterFullscreen:]):
42489        Supply a fullscreen video layer to the WebVideoFullscreenModel and to the WebVideoFullscreenInterface.
42490
42491        (-[WebVideoFullscreenController didExitFullscreen]):
42492        Clean up the videoFullscreenLayer.
42493
42494        * platform/ios/WebVideoFullscreenInterface.h:
42495        Remove methods related to lending the video layer.
42496
42497        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
42498        Rename WebAVPlayer layer to WebAVVideoLayer to match the AVKit name.
42499        Remove functions related to lending the video layer.
42500        Supply a layer directly to enterFullscreen.
42501
42502        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
42503        (+[WebAVVideoLayer videoLayer]):
42504        Rename WebAVPlayer layer to WebAVVideoLayer to match the AVKit name.
42505
42506        (-[WebAVVideoLayer setPlayerController:]):
42507        Store the AVPlayerController to prevent AVKit's default behavior.
42508
42509        (-[WebAVVideoLayer setBounds:]):
42510        Forward this onto the WebVideoFullscreenModel
42511
42512        (-[WebAVVideoLayer setVideoLayerGravity:]):
42513        Forward this onto the WebVideoFullscreenModel
42514
42515        (-[WebAVVideoLayer videoLayerGravity]):
42516        Forward this onto the WebVideoFullscreenModel
42517
42518        (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
42519        Supply a video layer directly instead of relying on one being previously loaned.
42520
42521        (WebVideoFullscreenInterfaceAVKit::exitFullscreen):
42522        Clean-up now assumes there is a video layer.
42523
42524        * platform/ios/WebVideoFullscreenModel.h:
42525        Remove methods for borrowing and returning video layers.
42526        Add methods for keeping video layer state in sync.
42527
42528        * platform/ios/WebVideoFullscreenModelMediaElement.h:
42529        Remove methods for borrowing and returning video layers.
42530        Add method for supplying a video fullscreen layer.
42531        Add methods for keeping video layer state in sync.
42532
42533        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
42534        (WebVideoFullscreenModelMediaElement::setMediaElement):
42535        Handle audio element case by setting hasVideo to false.
42536
42537        (WebVideoFullscreenModelMediaElement::setVideoFullscreenLayer):
42538        Pass along the video fullscreen layer to the media element.
42539
42540        (WebVideoFullscreenModelMediaElement::setVideoLayerFrame):
42541        Pass along the video layer frame to the media element.
42542
42543        (WebVideoFullscreenModelMediaElement::setVideoLayerGravity):
42544        Pass along the video layer gravity to the media element.
42545
425462014-03-08  Jae Hyun Park  <jaepark@webkit.org>
42547
42548        Clean up PlatformLayer.h
42549        https://bugs.webkit.org/show_bug.cgi?id=129967
42550
42551        Reviewed by Martin Robinson.
42552
42553        * platform/graphics/PlatformLayer.h:
42554        Remove duplicated declaration of PlatformLayer when using TextureMapper.
42555
425562014-03-08  Zalan Bujtas  <zalan@apple.com>
42557
42558        Subpixel rendering: Simple compositing container layer (isSimpleContainerCompositingLayer) paints to wrong position.
42559        https://bugs.webkit.org/show_bug.cgi?id=129861
42560
42561        Reviewed by Simon Fraser.
42562
42563        This patch ensures that both the simple and non-simple cases paint to the same position.
42564        Simple compositing container layer codepath needs to take the fractional device pixel offset
42565        into account when painting. Without the fractional value, the final paint rounding could push the
42566        paint offset to a different position.
42567        retina example:
42568        compositing top-left: 0px 0px.
42569        fractional offset: 0.3px 0.3px
42570        painting coords without offseting: 0px 0px
42571                           with offseting: 0.5px 0.5px
42572
42573        Tests: compositing/hidpi-simple-container-layer-on-device-pixel.html
42574
42575        * WebCore.exp.in:
42576        * platform/graphics/GraphicsLayer.h:
42577        (WebCore::GraphicsLayer::contentsRect):
42578        (WebCore::GraphicsLayer::setContentsRect):
42579        (WebCore::GraphicsLayer::contentsClippingRect):
42580        (WebCore::GraphicsLayer::setContentsClippingRect):
42581        * platform/graphics/ca/GraphicsLayerCA.cpp:
42582        (WebCore::GraphicsLayerCA::setContentsRect):
42583        (WebCore::GraphicsLayerCA::setContentsClippingRect):
42584        (WebCore::GraphicsLayerCA::updateContentsRects):
42585        * platform/graphics/ca/GraphicsLayerCA.h:
42586        * rendering/RenderLayerBacking.cpp:
42587        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
42588        (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundColor):
42589        (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
42590        (WebCore::RenderLayerBacking::contentOffsetInCompostingLayer):
42591        (WebCore::RenderLayerBacking::backgroundBoxForPainting):
42592        * rendering/RenderLayerBacking.h:
42593
425942014-03-08  Oliver Hunt  <oliver@apple.com>
42595
42596        SerializedScriptValue may move Identifiers between worlds
42597        https://bugs.webkit.org/show_bug.cgi?id=129979
42598
42599        Reviewed by Andreas Kling.
42600
42601        Test: fast/workers/worker-copy-shared-blob-url.html
42602
42603        Don't use Strings to store blob URLs as String's may be Identifiers
42604        and they can only exist in one world/thread at a time.
42605
42606        * Modules/indexeddb/IDBObjectStore.cpp:
42607        (WebCore::IDBObjectStore::put):
42608        * bindings/js/SerializedScriptValue.cpp:
42609        (WebCore::CloneDeserializer::deserializeString):
42610        (WebCore::SerializedScriptValue::addBlobURL):
42611        (WebCore::SerializedScriptValue::SerializedScriptValue):
42612        * bindings/js/SerializedScriptValue.h:
42613
426142014-03-07  Timothy Hatcher  <timothy@apple.com>
42615
42616        Load source maps and their resources asynchronously.
42617
42618        https://bugs.webkit.org/show_bug.cgi?id=112071
42619
42620        Reviewed by Joseph Pecoraro.
42621
42622        * inspector/InspectorPageAgent.cpp:
42623        (WebCore::InspectorPageAgent::buildObjectForFrameTree):
42624        Honor the hiddenFromInspector flag.
42625
42626        * inspector/InspectorResourceAgent.cpp:
42627        (WebCore::InspectorResourceAgent::willSendRequest):
42628        (WebCore::InspectorResourceAgent::markResourceAsCached):
42629        (WebCore::InspectorResourceAgent::didReceiveResponse):
42630        (WebCore::InspectorResourceAgent::didReceiveData):
42631        (WebCore::InspectorResourceAgent::didFinishLoading):
42632        (WebCore::InspectorResourceAgent::didFailLoading):
42633        (WebCore::InspectorResourceAgent::replayXHR):
42634        (WebCore::InspectorResourceAgent::loadResource):
42635        * inspector/InspectorResourceAgent.h:
42636        Honor the hiddenFromInspector flag by keeping track of
42637        hidden identifiers in a HashSet.
42638
42639        * inspector/protocol/Network.json:
42640        (Network.loadResource): Added.
42641
42642        * platform/network/ResourceRequestBase.h:
42643        (WebCore::ResourceRequestBase::hiddenFromInspector): Added.
42644        (WebCore::ResourceRequestBase::setHiddenFromInspector): Added.
42645        (WebCore::ResourceRequestBase::ResourceRequestBase):
42646        Add a flag to hide the request from the Inspector.
42647
42648        * xml/XMLHttpRequest.cpp:
42649        (WebCore::XMLHttpRequest::XMLHttpRequest):
42650        (WebCore::XMLHttpRequest::sendForInspector): Added.
42651        (WebCore::XMLHttpRequest::sendForInspectorXHRReplay): Renamed.
42652        (WebCore::XMLHttpRequest::createRequest):
42653        * xml/XMLHttpRequest.h:
42654        Make Inspector loads allow cross-origins and hide their request
42655        from the Inspector itself.
42656
426572014-03-07  Tim Horton  <timothy_horton@apple.com>
42658
42659        [WebKit2][iOS] PDF
42660        https://bugs.webkit.org/show_bug.cgi?id=129600
42661        <rdar://problem/15260216>
42662
42663        Reviewed by Anders Carlsson.
42664
42665        * WebCore.exp.in:
42666        * platform/MIMETypeRegistry.cpp:
42667        (WebCore::initializeSupportedImageMIMETypes):
42668        (WebCore::initializePDFMIMETypes):
42669        (WebCore::initializePostScriptMIMETypes):
42670        (WebCore::initializeMIMETypeRegistry):
42671        (WebCore::MIMETypeRegistry::getPDFMIMETypes):
42672        * platform/MIMETypeRegistry.h:
42673        Split PDF and PostScript MIME types, so WebKit2 can retrieve just the PDF ones
42674        without PostScript included.
42675
426762014-03-07  Myles C. Maxfield  <mmaxfield@apple.com>
42677
42678        Comment in RenderStyle is no longer accurate
42679        https://bugs.webkit.org/show_bug.cgi?id=129956
42680
42681        Reviewed by Simon Fraser.
42682
42683        RenderStyle::createStyleInheritingFromPseudoStyle was moved from RenderImage. Before it
42684        was moved, there was an image-specific comment in the function. However, that comment
42685        is both irrelevant to RenderStyle, and incorrect as the function is necessary for
42686        RenderQuotes as well.
42687
42688        No new tests are necessary because there is no behavior change.
42689
42690        * rendering/style/RenderStyle.cpp:
42691        (WebCore::RenderStyle::createStyleInheritingFromPseudoStyle):
42692
426932014-03-07  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
42694
42695        [WebRTC] Throw SYNTAX_ERROR when maxRetransmits and maxRetransmitTime are both set in RTCDataChannelInit
42696        https://bugs.webkit.org/show_bug.cgi?id=129894
42697
42698        Reviewed by Eric Carlson.
42699
42700        Existing test was updated.
42701
42702        * Modules/mediastream/RTCDataChannel.cpp:
42703        (WebCore::RTCDataChannel::create):
42704
427052014-03-07  Benjamin Poulain  <bpoulain@apple.com>
42706
42707        Fix the regression introduced by r165288
42708        https://bugs.webkit.org/show_bug.cgi?id=129934
42709
42710        Reviewed by Ryosuke Niwa.
42711
42712        * page/DOMWindow.cpp:
42713        (WebCore::DOMWindow::scrollX):
42714        (WebCore::DOMWindow::scrollY):
42715        We need to return the new value after layout, not the value from the dirty tree.
42716
427172014-03-07  Benjamin Poulain  <benjamin@webkit.org>
42718
42719        Traversal failure in a direct adjacent chain with tail backtracking lacks the path to clear the tail
42720        https://bugs.webkit.org/show_bug.cgi?id=129863
42721
42722        Reviewed by Gavin Barraclough.
42723
42724        Direct adjacent backtracking use the stack to push the backtracking entry point and recover from there.
42725        In case of traversal failure, their is no point in recovering from the indirect adjancent entry point and
42726        we should clear entry point from the stack (which is the purpose of the tail).
42727
42728        The adjancent tail was missing the part for clearing the stack in one case.
42729
42730        The case with adjancent backtracking inside descendant backtracing was doing everything right. This patch
42731        generalize this code and the correct tail is fully generated by generateAdjacentBacktrackingTail().
42732
42733        JumpToClearAdjacentDescendantTail becomes JumpToClearAdjacentTail, and this new backtracking state is added
42734        to the missing traversal action.
42735
42736        Test: fast/selectors/long-adjacent-backtracking.html
42737
42738        * cssjit/SelectorCompiler.cpp:
42739        (WebCore::SelectorCompiler::solveBacktrackingAction):
42740        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
42741        (WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures):
42742        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAdjacentBacktrackingTail):
42743        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateBacktrackingTailsIfNeeded):
42744
427452014-03-07  Andreas Kling  <akling@apple.com>
42746
42747        [Mac] Notify system malloc of fake memory pressure.
42748        <https://webkit.org/b/129908>
42749
42750        After fixing the leak in r165252, I was surprised to find that it didn't
42751        show up on memory test bots. It turns out that while the memory is now
42752        getting freed, the system malloc implementation doesn't actually release
42753        pages back to the OS until there is memory pressure.
42754
42755        Since we are just faking the memory pressure on bots, we have to let
42756        system malloc in on the fun, so we can get representative numbers.
42757        With this change, we should finally see the effect of not leaking the
42758        URLRequest object tree.
42759
42760        Reviewed by Anders Carlsson.
42761
42762        * platform/mac/MemoryPressureHandlerMac.mm:
42763        (WebCore::MemoryPressureHandler::install):
42764
42765            Tell system malloc that we are under fake memory pressure.
42766
427672014-03-07  Benjamin Poulain  <bpoulain@apple.com>
42768
42769        [iOS] WebKit1 scroll position is incorrect
42770        https://bugs.webkit.org/show_bug.cgi?id=129905
42771
42772        Reviewed by Simon Fraser.
42773
42774        * page/DOMWindow.cpp:
42775        (WebCore::DOMWindow::scrollX):
42776        (WebCore::DOMWindow::scrollY):
42777        A new optimization was avoiding layout if the position is zero. This was using the scrollX/Y instead
42778        of actualScrollX/Y which caused us to always bail out instead of returning the value to JavaScript.
42779
42780        * platform/ScrollView.h:
42781        (WebCore::ScrollView::actualScrollX):
42782        (WebCore::ScrollView::actualScrollY):
42783        (WebCore::ScrollView::actualScrollPosition):
42784        This was accidentally changed to the iOS compat document visible rect at some point.
42785
427862014-03-07  Adenilson Cavalcanti  <cavalcantii@gmail.com>
42787
42788        Remove unused StdDeviation from Drop shadow effect
42789        https://bugs.webkit.org/show_bug.cgi?id=129891
42790
42791        Reviewed by Dirk Schulze.
42792
42793        No new tests, no change on behavior.
42794
42795        * platform/graphics/filters/FEDropShadow.h:
42796
427972014-03-07  Brent Fulgham  <bfulgham@apple.com>
42798
42799        Correct out-of-band track selection logic.
42800        https://bugs.webkit.org/show_bug.cgi?id=129900
42801
42802        Reviewed by Jer Noble.
42803
42804        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
42805        (WebCore::MediaPlayerPrivateAVFoundationObjC::synchronizeTextTrackState): Correct test to
42806        use inequality.
42807
428082014-03-07  Bear Travis  <betravis@adobe.com>
42809
42810        [CSS Shapes] Correctly serialize ellipse positions
42811        https://bugs.webkit.org/show_bug.cgi?id=129700
42812
42813        Reviewed by Dirk Schulze.
42814
42815        Updating ellipse serialization to be in line with
42816        the CSS Shapes spec. Positions should serialize as
42817        2 or 4-value positions, converting keywords to
42818        percentages where possible. This uses the same method
42819        as circle position serialization (bug 129404).
42820
42821        Updated existing parsing tests.
42822
42823        * css/CSSBasicShapes.cpp:
42824        (WebCore::CSSBasicShapeEllipse::cssText): Use the
42825        normalization / serialization helpers for shape position.
42826
428272014-03-07  Brian Burg  <bburg@apple.com>
42828
42829        Unreviewed, rebaseline run-binding-tests results after r165242.
42830
42831        * bindings/scripts/test/JS/JSTestObj.cpp:
42832        (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
42833        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
42834        (WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
42835
428362014-03-07  Darin Adler  <darin@apple.com>
42837
42838        Remove non-working optimization that was attempted on iOS only
42839        https://bugs.webkit.org/show_bug.cgi?id=129595
42840        <rdar://problem/15798825>
42841
42842        Reviewed by Sam Weinig.
42843
42844        Code in GCController tried to optimize cases where the controller
42845        was used, but no JavaScript had been run in the current process.
42846        The code was never effective, and was iOS-only. Another way to fix
42847        the problem would be to change the code so it works, and if we do
42848        that we should do it for all platforms, not just iOS.
42849
42850        * bindings/js/GCController.cpp:
42851        (WebCore::GCController::garbageCollectNow): Remove check of
42852        JSDOMWindow::commonVMExists, since it's called just after a call
42853        to JSDOMWindow::commonVM, which will create it as a side effect.
42854        (WebCore::GCController::releaseExecutableMemory): Ditto.
42855
42856        * bindings/js/JSDOMWindowBase.cpp:
42857        (WebCore::JSDOMWindowBase::commonVM): Removed iOS-specific code
42858        that pulled the commonVM global out into another function so we
42859        can check for its existence without creating it as a side effect.
42860
42861        * bindings/js/JSDOMWindowBase.h: Ditto.
42862
428632014-03-07  Bem Jones-Bey  <bjonesbe@adobe.com>
42864
42865        [CSS Shapes] inset does not properly clamp large corner radii
42866        https://bugs.webkit.org/show_bug.cgi?id=129726
42867
42868        Reviewed by Dirk Schulze.
42869
42870        Make sure that radii that are larger than 50% of the associated shape
42871        dimension (height or width) are properly reduced the same way as
42872        border-radius radii are.
42873
42874        Test: fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-large-radius.html
42875
42876        * rendering/shapes/Shape.cpp:
42877        (WebCore::ensureRadiiDoNotOverlap): Drive by style fix.
42878        (WebCore::Shape::createShape): Scale radii the same way as border
42879            radii are scaled.
42880        * platform/graphics/FloatRoundedRect.h:
42881        (WebCore::calcBorderRadiiConstraintScaleFor): Move border radii
42882            constraint calculation function out so that it can be shared by
42883            the shape code.
42884        * rendering/style/RenderStyle.cpp:
42885        (WebCore::RenderStyle::getRoundedBorderFor): Call renamed scale function.
42886
428872014-03-07  Carlos Garcia Campos  <cgarcia@igalia.com>
42888
42889        [GST] Set name to several timeout sources
42890        https://bugs.webkit.org/show_bug.cgi?id=129878
42891
42892        Reviewed by Philippe Normand.
42893
42894        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
42895        (WebCore::MediaPlayerPrivateGStreamer::videoChanged):
42896        (WebCore::MediaPlayerPrivateGStreamer::videoCapsChanged):
42897        (WebCore::MediaPlayerPrivateGStreamer::audioChanged):
42898        (WebCore::MediaPlayerPrivateGStreamer::textChanged):
42899        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
42900        (WebCore::MediaPlayerPrivateGStreamerBase::volumeChanged):
42901        (WebCore::MediaPlayerPrivateGStreamerBase::muteChanged):
42902
429032014-03-07  Carlos Garcia Campos  <cgarcia@igalia.com>
42904
42905        [GTK] Timeout sources not correctly removed
42906        https://bugs.webkit.org/show_bug.cgi?id=129877
42907
42908        Reviewed by Philippe Normand.
42909
42910        Set source ID variables to 0 after removing the sources from the
42911        context. Also give a name to the sources.
42912
42913        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
42914        (WebCore::TrackPrivateBaseGStreamer::disconnect):
42915        (WebCore::TrackPrivateBaseGStreamer::activeChanged):
42916        (WebCore::TrackPrivateBaseGStreamer::tagsChanged):
42917        (WebCore::TrackPrivateBaseGStreamer::notifyTrackOfActiveChanged):
42918
429192014-03-07  Gergo Balogh  <gbalogh.u-szeged@partner.samsung.com>
42920
42921        Remove FFTFrameMKL.
42922        https://bugs.webkit.org/show_bug.cgi?id=129866
42923
42924        Reviewed by Csaba Osztrogonác.
42925
42926        * platform/audio/FFTFrame.h:
42927        * platform/audio/FFTFrameStub.cpp:
42928        * platform/audio/mkl/FFTFrameMKL.cpp: Removed, it is never used.
42929
429302014-03-07  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
42931
42932        [WebRTC] Adding getConfiguration method to RTCPeerConnection
42933        https://bugs.webkit.org/show_bug.cgi?id=129845
42934
42935        Reviewed by Eric Carlson.
42936
42937        Test: fast/mediastream/RTCPeerConnection-getConfiguration.html
42938
42939        * CMakeLists.txt:
42940        * DerivedSources.make:
42941        * GNUmakefile.list.am:
42942        * Modules/mediastream/RTCConfiguration.idl: Added.
42943        * Modules/mediastream/RTCIceServer.idl: Added.
42944        * Modules/mediastream/RTCPeerConnection.cpp:
42945        (WebCore::RTCPeerConnection::RTCPeerConnection):
42946        (WebCore::RTCPeerConnection::updateIce):
42947        (WebCore::RTCPeerConnection::getConfiguration):
42948        * Modules/mediastream/RTCPeerConnection.h:
42949        * Modules/mediastream/RTCPeerConnection.idl:
42950
429512014-03-07  Jinwoo Song  <jinwoo7.song@samsung.com>
42952
42953        Optimize collectionLast() and collectionTraverseBackward() in LiveNodeList
42954        https://bugs.webkit.org/show_bug.cgi?id=129775
42955
42956        Reviewed by Ryosuke Niwa.
42957
42958        Check the LiveNodeList type if it is HTMLTagNodeListType and ClassNodeListType then
42959        apply inlined matching methods for each type.
42960
42961        * dom/LiveNodeList.cpp:
42962        (WebCore::lastMatchingElement): Added.
42963        (WebCore::previousMatchingElement): Added.
42964        (WebCore::traverseMatchingElementsBackward): Added.
42965        (WebCore::LiveNodeList::collectionLast): Apply lastMatchingElement() with LiveNodeList type.
42966        (WebCore::LiveNodeList::collectionTraverseBackward): Apply traverseMatchingElementsBackward()
42967        with LiveNodeList type.
42968
429692014-03-06  Andreas Kling  <akling@apple.com>
42970
42971        WebCoreResourceHandleAsOperationQueueDelegate over-retains NSURLRequest.
42972        <https://webkit.org/b/129862>
42973
42974        Don't retain the pointer before assigning it to a RetainPtr, since that
42975        will cause the object to leak.
42976
42977        Reviewed by Alexey Proskuryakov.
42978
42979        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
42980        (-[WebCoreResourceHandleAsOperationQueueDelegate continueWillSendRequest:]):
42981
429822014-03-06  Dan Bernstein  <mitz@apple.com>
42983
42984        Don’t copy WebInputs.json into the framework.
42985
42986        * WebCore.xcodeproj/project.pbxproj: Removed WebInputs.json from the Copy Bundle Resources
42987        build phase of the WebCore target.
42988
429892014-03-06  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
42990
42991        [WebRTC] Updating RTCPeerConnection.idl
42992        https://bugs.webkit.org/show_bug.cgi?id=129804
42993
42994        Reviewed by Eric Carlson.
42995
42996        Some methods signatures were wrong, marking some arguments as optional when they are mandatory.
42997
42998        Existing tests were updated.
42999
43000        * Modules/mediastream/RTCPeerConnection.cpp:
43001        (WebCore::RTCPeerConnection::getStats):
43002        * Modules/mediastream/RTCPeerConnection.h:
43003        * Modules/mediastream/RTCPeerConnection.idl:
43004        * Modules/mediastream/RTCStatsRequestImpl.cpp:
43005        (WebCore::RTCStatsRequestImpl::create):
43006        (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
43007        (WebCore::RTCStatsRequestImpl::requestFailed):
43008        * Modules/mediastream/RTCStatsRequestImpl.h:
43009        * platform/mediastream/RTCStatsRequest.h:
43010
430112014-03-06  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
43012
43013        [WebRTC] Updating RTCIceServer to match spec
43014        https://bugs.webkit.org/show_bug.cgi?id=129844
43015
43016        Reviewed by Eric Carlson.
43017
43018        Move RTCIceServer from RTCConfiguration to its own file.
43019
43020        * Modules/mediastream/RTCPeerConnection.cpp:
43021        (WebCore::validateIceServerURL):
43022        (WebCore::processIceServer):
43023        * platform/mediastream/RTCConfiguration.h:
43024        (WebCore::RTCConfiguration::iceServers):
43025        * platform/mediastream/RTCIceServer.h: Added.
43026
430272014-03-06  Hyowon Kim  <hw1008.kim@samsung.com>
43028
43029        [EFL] Move EvasGL classes from WebKit to WebCore namespace.
43030        https://bugs.webkit.org/show_bug.cgi?id=129797
43031
43032        Reviewed by Gyuyoung Kim.
43033
43034        Though EvasGLContext and EvasGLSurface files were moved from WebKit2/UIProcess/API/efl/ 
43035        to WebCore/platform/graphics/efl/, they are still in WebKit namespace.
43036        Patch for namespace changes.
43037
43038        * platform/graphics/efl/EvasGLContext.cpp:
43039        * platform/graphics/efl/EvasGLContext.h:
43040        * platform/graphics/efl/EvasGLSurface.cpp:
43041        * platform/graphics/efl/EvasGLSurface.h:
43042
430432014-03-06  Brian Burg  <bburg@apple.com>
43044
43045        CodeGeneratorJS.pm doesn't need to add spaces between consecutive closing template brackets
43046        https://bugs.webkit.org/show_bug.cgi?id=129836
43047
43048        Reviewed by Andreas Kling.
43049
43050        * bindings/scripts/CodeGeneratorJS.pm:
43051        (GenerateParametersCheck):
43052        (GetNativeVectorInnerType):
43053        (GetSVGPropertyTypes):
43054
430552014-03-06  Jinwoo Song  <jinwoo7.song@samsung.com>
43056
43057        Remove unused method from BatteryController
43058        https://bugs.webkit.org/show_bug.cgi?id=129850
43059
43060        Reviewed by Gyuyoung Kim.
43061
43062        isActive() method is never called anywhere.
43063
43064        * Modules/battery/BatteryController.cpp:
43065        * Modules/battery/BatteryController.h:
43066
430672014-03-06  Pratik Solanki  <psolanki@apple.com>
43068
43069        [iOS] Crash on launch with website restrictions enabled
43070        https://bugs.webkit.org/show_bug.cgi?id=129854
43071        <rdar://problem/16207016>
43072
43073        Reviewed by Simon Fraser.
43074
43075        * platform/mac/ContentFilterMac.mm:
43076        (WebCore::ContentFilter::ContentFilter): Initialize m_neFilterSourceQueue so that we don't
43077        crash in the dtor due to garbage value in the field.
43078
430792014-03-06  Simon Fraser  <simon.fraser@apple.com>
43080
43081        Minor optimization in ScrollingTreeScrollingNodeMac
43082        https://bugs.webkit.org/show_bug.cgi?id=129848
43083
43084        Reviewed by Dean Jackson.
43085
43086        No need to call scrollOffsetForFixedPosition() again if we don't have header
43087        and footer layers.
43088
43089        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
43090        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
43091
430922014-03-06  Mark Lam  <mark.lam@apple.com>
43093
43094        XMLHttpRequest: status and statusText throw DOM Exception 11 when the state is UNSENT or OPENED.
43095        https://bugs.webkit.org/show_bug.cgi?id=45994
43096
43097        Not reviewed.
43098
43099        Re-landing r161051 (originally by Ryosuke Niwa, reviewed by Alexey Proskuryakov)
43100        since https://bugs.webkit.org/show_bug.cgi?id=126219 is no longer an issue.
43101
43102        * xml/XMLHttpRequest.cpp:
43103        (WebCore::XMLHttpRequest::status):
43104        (WebCore::XMLHttpRequest::statusText):
43105        * xml/XMLHttpRequest.h:
43106        * xml/XMLHttpRequest.idl:
43107
431082014-03-06  Brent Fulgham  <bfulgham@apple.com>
43109
43110        Revise Out-of-band VTT support for better integration with AVFoundation engine
43111        https://bugs.webkit.org/show_bug.cgi?id=129749
43112        <rdar://problem/16215701>
43113
43114        Reviewed by Eric Carlson.
43115
43116        Revise the platform handling of out-of-band text tracks so that we can keep AVFoundation
43117        informed of track selections we make. Use a dummy out-of-band child of the existing text
43118        track classes to avoid code duplication.
43119
43120        * WebCore.xcodeproj/project.pbxproj: Add new OutOfBandTextTrackPrivateAVF.h file.
43121        * html/HTMLMediaElement.cpp:
43122        (WebCore::HTMLMediaElement::parseAttribute): Notify player when OOB tracks change.
43123        (WebCore::HTMLMediaElement::outOfBandTrackSources): Also pass track mode to platform backend.
43124        * html/track/TextTrack.cpp:
43125        (WebCore::TextTrack::platformTextTrack): Also pass track mode to constructor.
43126        * html/track/TrackBase.cpp:
43127        (WebCore::TrackBase::TrackBase): Move ownership of track unique identifier to this base class.
43128        * html/track/TrackBase.h:
43129        (WebCore::TrackBase::uniqueId): Ditto.
43130        * platform/graphics/MediaPlayer.cpp:
43131        (WebCore::MediaPlayer::notifyTrackModeChanged): Added stub to pass message to platform player.
43132        * platform/graphics/MediaPlayer.h:
43133        * platform/graphics/MediaPlayerPrivate.h:
43134        (WebCore::MediaPlayerPrivateInterface::notifyTrackModeChanged): Stub for most platforms.
43135        * platform/graphics/PlatformTextTrack.h:
43136        (WebCore::PlatformTextTrack::create): Update for revised constructor (with 'mode' argument).
43137        (WebCore::PlatformTextTrack::createOutOfBand): Ditto.
43138        (WebCore::PlatformTextTrack::mode): Added.
43139        (WebCore::PlatformTextTrack::captionMenuOffItem): Use revised constructor arguments.
43140        (WebCore::PlatformTextTrack::captionMenuAutomaticItem): Ditto.
43141        (WebCore::PlatformTextTrack::PlatformTextTrack): Ditto.
43142        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h: Change predicate to return enum indicating the category
43143        of track (out-of-band, legacy closed caption, or in band).
43144        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
43145        (WebCore::MediaPlayerPrivateAVFoundation::notifyTrackModeChanged): Added.
43146        * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.h: Override predicate to return category enum.
43147        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: Revise to use new category enum.
43148        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h: Override predicate to return category enum.
43149        that this is NOT an out-of-band track.
43150        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h: Ditto.
43151        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
43152        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
43153        (WebCore::MediaPlayerPrivateAVFoundationObjC::notifyTrackModeChanged): Added implementation.
43154        (WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions): Revise to handle out-of-band
43155        track placeholders.
43156        (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Modify to inform AVFoundation about any
43157        out-of-band tracks we've selected.
43158        (WebCore::MediaPlayerPrivateAVFoundationObjC::synchronizeTextTrackState): Added.
43159        * platform/graphics/avfoundation/objc/OutOfBandTextTrackPrivateAVF.h: Added.
43160        (WebCore::OutOfBandTextTrackPrivateAVF::create):
43161        (WebCore::OutOfBandTextTrackPrivateAVF::processCue):
43162        (WebCore::OutOfBandTextTrackPrivateAVF::resetCueValues):
43163        (WebCore::OutOfBandTextTrackPrivateAVF::mediaSelectionOption):
43164        (WebCore::OutOfBandTextTrackPrivateAVF::OutOfBandTextTrackPrivateAVF):
43165        (WebCore::OutOfBandTextTrackPrivateAVF::processCueAttributes):
43166        * platform/graphics/ios/InbandTextTrackPrivateAVFIOS.h: Override predicate to indicate
43167        that this is NOT an out-of-band track.
43168        * platform/graphics/ios/MediaPlayerPrivateIOS.mm:
43169        (WebCore::MediaPlayerPrivateIOS::setSelectedTextTrack): Correct typo in logging text.
43170
431712014-03-06  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
43172
43173        [WebRTC] Updating createOffer and createAnswer methods to match WebRTC editor's draft of 01/27/2014
43174        https://bugs.webkit.org/show_bug.cgi?id=129484
43175
43176        Reviewed by Eric Carlson.
43177
43178        According to the spec, createOffer and createAnswer will no longer have MediaConstraints as an argument,
43179        instead they will have RTCOfferOptions and RTCOfferAnswerOptions, respectively.
43180
43181        Existing tests were updated.
43182
43183        * CMakeLists.txt:
43184        * GNUmakefile.list.am:
43185        * Modules/mediastream/RTCOfferAnswerOptions.cpp: Added.
43186        * Modules/mediastream/RTCOfferAnswerOptions.h: Added.
43187        * Modules/mediastream/RTCPeerConnection.cpp:
43188        (WebCore::RTCPeerConnection::createOffer):
43189        (WebCore::RTCPeerConnection::createAnswer):
43190        * Modules/mediastream/RTCPeerConnection.h:
43191        * Modules/mediastream/RTCPeerConnection.idl:
43192        * platform/mediastream/RTCPeerConnectionHandler.h:
43193        * platform/mock/RTCPeerConnectionHandlerMock.cpp:
43194        (WebCore::RTCPeerConnectionHandlerMock::createOffer):
43195        (WebCore::RTCPeerConnectionHandlerMock::createAnswer):
43196        * platform/mock/RTCPeerConnectionHandlerMock.h:
43197
431982014-03-06  Brian Burg  <bburg@apple.com>
43199
43200        Web Replay: premature release() of PassRefPtr in InspectorReplayAgent
43201        https://bugs.webkit.org/show_bug.cgi?id=129827
43202
43203        Reviewed by Timothy Hatcher.
43204
43205        * inspector/InspectorReplayAgent.cpp:
43206        (WebCore::InspectorReplayAgent::didCreateFrontendAndBackend):
43207
432082014-03-06  Benjamin Poulain  <bpoulain@apple.com>
43209
43210        [iOS] Do not compile fake mouse event handling when iOS Touch Events are enabled
43211        https://bugs.webkit.org/show_bug.cgi?id=129725
43212
43213        Reviewed by Dan Bernstein.
43214
43215        Bug <rdar://problem/16218636>. The code is #ifdef'ed out to avoid setting up useless objects
43216        and to avoid future mistake.
43217
43218        * page/EventHandler.cpp:
43219        (WebCore::EventHandler::EventHandler):
43220        (WebCore::EventHandler::~EventHandler):
43221        (WebCore::EventHandler::clear):
43222        (WebCore::EventHandler::handleMousePressEvent):
43223        (WebCore::EventHandler::startAutoHideCursorTimer):
43224        (WebCore::EventHandler::handleMouseMoveEvent):
43225        (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
43226        (WebCore::EventHandler::dispatchFakeMouseMoveEventSoonInQuad):
43227        * page/EventHandler.h:
43228
432292014-03-06  Pratik Solanki  <psolanki@apple.com>
43230
43231        Unreviewed. iOS build fix after r165199.
43232
43233        * rendering/RootInlineBox.cpp:
43234
432352014-03-06  Benjamin Poulain  <bpoulain@apple.com>
43236
43237        [iOS] Rename the actualVisibleXXXRect to unobscuredContentRect for consistency
43238        https://bugs.webkit.org/show_bug.cgi?id=129773
43239
43240        Reviewed by Simon Fraser.
43241
43242        * dom/TreeScope.cpp:
43243        (WebCore::nodeFromPoint):
43244        * platform/ScrollView.cpp:
43245        (WebCore::ScrollView::visibleContentRectInternal):
43246        * platform/ScrollView.h:
43247        * platform/ios/ScrollViewIOS.mm:
43248        (WebCore::ScrollView::unoscuredContentRect):
43249        * platform/ios/wak/WAKScrollView.h:
43250        * platform/ios/wak/WAKScrollView.mm:
43251        (-[WAKScrollView unoscuredContentRect]):
43252        (-[WAKScrollView description]):
43253        * rendering/RenderLayer.cpp:
43254        (WebCore::RenderLayer::scrollRectToVisible):
43255
432562014-03-05  Oliver Hunt  <oliver@apple.com>
43257
43258        Support caching of custom setters
43259        https://bugs.webkit.org/show_bug.cgi?id=129519
43260
43261        Reviewed by Filip Pizlo.
43262
43263        Add forwarding header
43264
43265        Tests: js/regress/assign-custom-setter-polymorphic.html
43266               js/regress/assign-custom-setter.html
43267
43268        * ForwardingHeaders/jit/SpillRegistersMode.h: Added.
43269
432702014-03-05  Jon Honeycutt  <jhoneycutt@apple.com>
43271
43272        Invalid cast in WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients()
43273
43274        <https://bugs.webkit.org/show_bug.cgi?id=121887>
43275        <rdar://problem/15073043>
43276
43277        Clang appears to be optimizing out a branch in RenderObject::node()
43278        when compiling RenderLayer::FilterInfo::updateReferenceFilterClients().
43279        We'll work around this by factoring out the code in question into a
43280        separate member function marked NEVER_INLINE.
43281
43282        No test possible due to <https://bugs.webkit.org/show_bug.cgi?id=129757>.
43283
43284        Reviewed by David Kilzer.
43285
43286        * rendering/RenderLayerFilterInfo.cpp:
43287        (WebCore::RenderLayer::FilterInfo::layerElement):
43288        Code moved from updateReferenceFilterClients(). Returns the Element*
43289        for m_layer.
43290        (WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients):
43291        Use layerElement().
43292
43293        * rendering/RenderLayerFilterInfo.h:
43294        Declared layerElement().
43295
432962014-03-06  Joseph Pecoraro  <pecoraro@apple.com>
43297
43298        Web Inspector: Expose the console object in JSContexts to interact with Web Inspector
43299        https://bugs.webkit.org/show_bug.cgi?id=127944
43300
43301        Reviewed by Geoffrey Garen.
43302
43303        Covered by existing tests.
43304
43305        * CMakeLists.txt:
43306        * DerivedSources.cpp:
43307        * DerivedSources.make:
43308        * ForwardingHeaders/runtime/ConsoleClient.h: Added.
43309        * ForwardingHeaders/runtime/ConsoleTypes.h: Renamed from Source/WebCore/ForwardingHeaders/inspector/ConsoleTypes.h.
43310        * GNUmakefile.list.am:
43311        * PlatformGTK.cmake:
43312        * WebCore.exp.in:
43313        * WebCore.vcxproj/WebCore.vcxproj:
43314        * WebCore.vcxproj/WebCore.vcxproj.filters:
43315        * WebCore.xcodeproj/project.pbxproj:
43316        * bindings/gobject/GNUmakefile.am:
43317        Update build systems.
43318
43319        * page/Console.cpp: Removed.
43320        * page/Console.h: Removed.
43321        * page/Console.idl: Removed.
43322        * page/DOMWindow.cpp:
43323        (WebCore::DOMWindow::~DOMWindow):
43324        (WebCore::DOMWindow::resetDOMWindowProperties):
43325        * page/DOMWindow.h:
43326        (WebCore::DOMWindow::defaultStatus):
43327        * page/DOMWindow.idl:
43328        Removed the old IDL generated Console object on window.
43329
43330        * page/PageConsole.cpp:
43331        (WebCore::PageConsole::shouldPrintExceptions):
43332        (WebCore::PageConsole::setShouldPrintExceptions):
43333        (WebCore::PageConsole::mute):
43334        (WebCore::PageConsole::unmute):
43335        (WebCore::PageConsole::messageWithTypeAndLevel):
43336        (WebCore::PageConsole::count):
43337        (WebCore::PageConsole::profile):
43338        (WebCore::PageConsole::profileEnd):
43339        (WebCore::PageConsole::time):
43340        (WebCore::PageConsole::timeEnd):
43341        (WebCore::PageConsole::timeStamp):
43342        (WebCore::PageConsole::group):
43343        (WebCore::PageConsole::groupCollapsed):
43344        (WebCore::PageConsole::groupEnd):
43345        (WebCore::PageConsole::clearProfiles):
43346        * page/PageConsole.h:
43347        Move the handling of Console object into PageConsole.
43348
43349        * bindings/js/ScriptCachedFrameData.cpp:
43350        (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
43351        (WebCore::ScriptCachedFrameData::restore):
43352        * bindings/js/ScriptController.cpp:
43353        (WebCore::ScriptController::clearWindowShell):
43354        (WebCore::ScriptController::initScript):
43355        Set the PageConsole as the ConsoleClient of the JSGlobalObject
43356        so that WebCore may handle console messages directly. For instance
43357        it may pass messages on to the ChromeClient.
43358
43359        * testing/Internals.cpp:
43360        (WebCore::Internals::consoleProfiles):
43361        To access profiles, go through PageConsole now instead of Console.
43362
43363        * bindings/js/JSDOMWindowBase.cpp:
43364        * bindings/objc/WebScriptObject.mm:
43365        * css/MediaList.cpp:
43366        * dom/ScriptExecutionContext.h:
43367        * dom/UIEvent.cpp:
43368        * dom/ViewportArguments.cpp:
43369        * html/parser/XSSAuditorDelegate.cpp:
43370        * inspector/CommandLineAPIHost.h:
43371        * inspector/InspectorInstrumentation.cpp:
43372        * inspector/InspectorInstrumentation.h:
43373        * inspector/InspectorProfilerAgent.cpp:
43374        * inspector/WebConsoleAgent.cpp:
43375        * loader/FrameLoader.cpp:
43376        * loader/MixedContentChecker.cpp:
43377        * loader/appcache/ApplicationCacheGroup.cpp:
43378        * loader/cache/CachedResourceLoader.cpp:
43379        * page/ChromeClient.h:
43380        * page/ContentSecurityPolicy.cpp:
43381        * page/Page.cpp:
43382        * page/Page.h:
43383        * svg/SVGDocumentExtensions.cpp:
43384        * workers/WorkerMessagingProxy.cpp:
43385        * workers/WorkerReportingProxy.h:
43386        Update includes.
43387
433882014-03-06  Zsolt Borbely  <borbezs@inf.u-szeged.hu>
43389
43390        Fix the !ENABLE(CSS_STICKY_POSITION) build
43391        https://bugs.webkit.org/show_bug.cgi?id=129793
43392
43393        Reviewed by Simon Fraser.
43394
43395        Add missing ENABLE(CSS_STICKY_POSITION) guard to EditingStyle::convertPositionStyle().
43396
43397        * editing/EditingStyle.cpp:
43398        (WebCore::EditingStyle::convertPositionStyle):
43399
434002014-03-06  Joseph Pecoraro  <pecoraro@apple.com>
43401
43402        [Mac] Leak: dispatch_semaphore leak allocated in MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange
43403        https://bugs.webkit.org/show_bug.cgi?id=129792
43404
43405        Reviewed by Anders Carlsson.
43406
43407        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
43408        (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
43409
434102014-03-06  Brendan Long  <b.long@cablelabs.com>
43411
43412        Implement VideoTrackList.selectedIndex
43413        https://bugs.webkit.org/show_bug.cgi?id=129770
43414
43415        Reviewed by Eric Carlson.
43416
43417        Tests: media/track/video/video-track-mkv-theora-selected.html
43418
43419        * html/track/VideoTrackList.idl:
43420
434212014-03-06  Lorenzo Tilve  <ltilve@igalia.com>
43422
43423        [GTK][CMake] Fix the GTK+ CMake build
43424        https://bugs.webkit.org/show_bug.cgi?id=129801
43425
43426        Reviewed by Martin Robinson.
43427
43428        Include missing files for CMake build
43429
43430        * CMakeLists.txt: Add a missing references to DOMURLMediaStream
43431
434322014-03-06  Zalan Bujtas  <zalan@apple.com>
43433
43434        Subpixel rendering: Setting content to opaque on m_graphicsLayer depends on subpixel accumulation.
43435        https://bugs.webkit.org/show_bug.cgi?id=129776
43436
43437        Reviewed by Simon Fraser.
43438
43439        isEmpty() returns true when any of the dimensions is <= 0. Subpixel accumulation could happen
43440        in one direction only. Use isZero() instead().
43441
43442        * rendering/RenderLayerBacking.cpp:
43443        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
43444
434452014-03-06  Gurpreet Kaur  <k.gurpreet@samsung.com>
43446
43447        REGRESSION (r158254): Rubber-banding at Bing image search causes the toolbar to move up and away
43448        https://bugs.webkit.org/show_bug.cgi?id=128873
43449
43450        Reviewed by Antonio Gomes.
43451
43452        This regression is caused by  http://trac.webkit.org/changeset/154614 
43453        and http://trac.webkit.org/changeset/156605. So reverting the changes
43454        to make it Web compatible as earlier.
43455
43456        * dom/Element.cpp:
43457        (WebCore::Element::scrollLeft):
43458        (WebCore::Element::scrollTop):
43459        (WebCore::Element::setScrollLeft):
43460        (WebCore::Element::setScrollTop):
43461        Reverting changes as it caused regression.
43462
434632014-03-06  Zan Dobersek  <zdobersek@igalia.com>
43464
43465        Move Source/WebCore/html/canvas/ code to std::unique_ptr
43466        https://bugs.webkit.org/show_bug.cgi?id=129668
43467
43468        Reviewed by Anders Carlsson.
43469
43470        Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/html/canvas/ to std::unique_ptr.
43471
43472        * html/HTMLCanvasElement.cpp:
43473        (WebCore::HTMLCanvasElement::~HTMLCanvasElement):
43474        (WebCore::HTMLCanvasElement::getContext):
43475        * html/HTMLCanvasElement.h:
43476        * html/canvas/ANGLEInstancedArrays.cpp:
43477        * html/canvas/ANGLEInstancedArrays.h:
43478        * html/canvas/CanvasRenderingContext2D.h:
43479        * html/canvas/EXTTextureFilterAnisotropic.cpp:
43480        * html/canvas/EXTTextureFilterAnisotropic.h:
43481        * html/canvas/OESElementIndexUint.cpp:
43482        * html/canvas/OESElementIndexUint.h:
43483        * html/canvas/OESStandardDerivatives.cpp:
43484        * html/canvas/OESStandardDerivatives.h:
43485        * html/canvas/OESTextureFloat.cpp:
43486        * html/canvas/OESTextureFloat.h:
43487        * html/canvas/OESTextureFloatLinear.cpp:
43488        * html/canvas/OESTextureFloatLinear.h:
43489        * html/canvas/OESTextureHalfFloat.cpp:
43490        * html/canvas/OESTextureHalfFloat.h:
43491        * html/canvas/OESTextureHalfFloatLinear.cpp:
43492        * html/canvas/OESTextureHalfFloatLinear.h:
43493        * html/canvas/OESVertexArrayObject.cpp:
43494        * html/canvas/OESVertexArrayObject.h:
43495        * html/canvas/WebGLCompressedTextureATC.cpp:
43496        * html/canvas/WebGLCompressedTextureATC.h:
43497        * html/canvas/WebGLCompressedTexturePVRTC.cpp:
43498        * html/canvas/WebGLCompressedTexturePVRTC.h:
43499        * html/canvas/WebGLCompressedTextureS3TC.cpp:
43500        * html/canvas/WebGLCompressedTextureS3TC.h:
43501        * html/canvas/WebGLDebugRendererInfo.cpp:
43502        * html/canvas/WebGLDebugRendererInfo.h:
43503        * html/canvas/WebGLDebugShaders.cpp:
43504        * html/canvas/WebGLDebugShaders.h:
43505        * html/canvas/WebGLDepthTexture.cpp:
43506        * html/canvas/WebGLDepthTexture.h:
43507        * html/canvas/WebGLDrawBuffers.cpp:
43508        * html/canvas/WebGLDrawBuffers.h:
43509        * html/canvas/WebGLLoseContext.cpp:
43510        * html/canvas/WebGLLoseContext.h:
43511        * html/canvas/WebGLRenderingContext.cpp:
43512        (WebCore::WebGLRenderingContext::create):
43513        (WebCore::WebGLRenderingContext::getExtension):
43514        * html/canvas/WebGLRenderingContext.h:
43515
435162014-03-06  Zan Dobersek  <zdobersek@igalia.com>
43517
43518        Move Source/WebCore/editing/ code to std::unique_ptr
43519        https://bugs.webkit.org/show_bug.cgi?id=129665
43520
43521        Reviewed by Anders Carlsson.
43522
43523        Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/editing/ with std::unique_ptr.
43524
43525        * editing/EditingStyle.cpp:
43526        (WebCore::htmlElementEquivalents):
43527        (WebCore::EditingStyle::conflictsWithImplicitStyleOfElement):
43528        (WebCore::htmlAttributeEquivalents):
43529        (WebCore::EditingStyle::conflictsWithImplicitStyleOfAttributes):
43530        (WebCore::EditingStyle::extractConflictingImplicitStyleOfAttributes):
43531        (WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):
43532        (WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
43533        * editing/Editor.cpp:
43534        (WebCore::Editor::Editor):
43535        (WebCore::Editor::clear):
43536        * editing/Editor.h:
43537        * page/Frame.cpp:
43538        (WebCore::Frame::Frame):
43539        * page/Frame.h:
43540
435412014-03-06  Zan Dobersek  <zdobersek@igalia.com>
43542
43543        Move to using std::unique_ptr for KeyboardEvent, ScriptExecutionContext::PendingException
43544        https://bugs.webkit.org/show_bug.cgi?id=129061
43545
43546        Reviewed by Eric Carlson.
43547
43548        Replace uses of OwnPtr and PassOwnPtr for KeyboardEvent and ScriptExecutionContext::PendingException
43549        classes with std::unique_ptr. ScriptExecutionContext::Task objects are still handled through OwnPtr,
43550        but this will be addressed later.
43551
43552        * dom/KeyboardEvent.cpp:
43553        (WebCore::KeyboardEvent::KeyboardEvent):
43554        * dom/KeyboardEvent.h:
43555        * dom/ScriptExecutionContext.cpp:
43556        (WebCore::ScriptExecutionContext::reportException):
43557        * dom/ScriptExecutionContext.h:
43558        * dom/ScriptRunner.h: Remove an unnecessary PassOwnPtr header inclusion.
43559
435602014-03-06  Commit Queue  <commit-queue@webkit.org>
43561
43562        Unreviewed, rolling out r165175.
43563        http://trac.webkit.org/changeset/165175
43564        https://bugs.webkit.org/show_bug.cgi?id=129788
43565
43566        Linking failures on GTK, EFL due to missing gstreamer-tag-1.0
43567        dependency (Requested by zdobersek on #webkit).
43568
43569        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
43570        (WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged):
43571
435722014-03-05  Brendan Long  <b.long@cablelabs.com>
43573
43574        [GStreamer] human readable language code for tracks
43575        https://bugs.webkit.org/show_bug.cgi?id=124514
43576
43577        Reviewed by Philippe Normand.
43578
43579        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
43580        (WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged): Run language codes though gst_tag_get_language_code_iso_639_1() to make sure they're valid.
43581
435822014-03-05  Ryuan Choi  <ryuan.choi@samsung.com>
43583
43584        Remove unused method from Vibration
43585        https://bugs.webkit.org/show_bug.cgi?id=129732
43586
43587        Reviewed by Gyuyoung Kim.
43588
43589        * Modules/vibration/Vibration.cpp:
43590        Removed isActive(), which is never called since r152441.
43591        * Modules/vibration/Vibration.h: Ditto.
43592
435932014-03-05  Commit Queue  <commit-queue@webkit.org>
43594
43595        Unreviewed, rolling out r165141, r165157, and r165158.
43596        http://trac.webkit.org/changeset/165141
43597        http://trac.webkit.org/changeset/165157
43598        http://trac.webkit.org/changeset/165158
43599        https://bugs.webkit.org/show_bug.cgi?id=129772
43600
43601        "broke ftl" (Requested by olliej_ on #webkit).
43602
43603        * ForwardingHeaders/jit/SpillRegistersMode.h: Removed.
43604
436052014-03-05  Martin Robinson  <mrobinson@igalia.com>
43606
43607        [GTK][CMake] The GObject DOM bindings should always be built
43608        https://bugs.webkit.org/show_bug.cgi?id=127963
43609
43610        Reviewed by Ryosuke Niwa.
43611
43612        * PlatformGTK.cmake: Make compilation of the WebKitGTK+ GObject DOM bindings
43613        unconditional, instead of conditional on the WebKit2 build.
43614
436152014-03-05  Jer Noble  <jer.noble@apple.com>
43616
43617        [MSE] Crash in SourceBuffer::sourceBufferPrivateDidReceiveSample() - received samples after SourceBuffer was removed.
43618        https://bugs.webkit.org/show_bug.cgi?id=129761
43619
43620        Reviewed by Eric Carlson.
43621
43622        Guard against the possibility that SourceBufferPrivates will continue to generate samples even after
43623        a parse error. Bail out early from sourceBufferPrivateDidReceiveInitializationSegment and
43624        sourceBufferPrivateDidReceiveSample if the SourceBuffer has been removed.
43625
43626        * Modules/mediasource/SourceBuffer.cpp:
43627        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
43628        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
43629
436302014-03-05  Enrica Casucci  <enrica@apple.com>
43631
43632        Build fix, take 2.
43633
43634        * platform/mac/HTMLConverter.mm:
43635
436362014-03-05  Enrica Casucci  <enrica@apple.com>
43637
43638        Build fix.
43639
43640        * platform/mac/HTMLConverter.mm:
43641
436422014-03-05  Enrica Casucci  <enrica@apple.com>
43643
43644        Crash when copying content that contains <sup>.
43645        https://bugs.webkit.org/show_bug.cgi?id=129765
43646        <rdar://problem/16139498>
43647        
43648        Reviewed by Benjamin Poulain.
43649
43650        Adding static definition of NSAttributeSuperscriptName.
43651
43652        * platform/mac/HTMLConverter.mm:
43653
436542014-03-05  Gavin Barraclough  <barraclough@apple.com>
43655
43656        https://bugs.webkit.org/show_bug.cgi?id=128625
43657        Add fast mapping from StringImpl to JSString
43658
43659        Unreviewed roll-out.
43660
43661        Reverting r164347, r165054, r165066 - not clear the performance tradeoff was right.
43662
43663        * bindings/js/DOMWrapperWorld.cpp:
43664        (WebCore::DOMWrapperWorld::clearWrappers):
43665        * bindings/js/DOMWrapperWorld.h:
43666        * bindings/js/JSDOMBinding.h:
43667        (WebCore::jsStringWithCache):
43668        * bindings/js/JSDOMWindowBase.cpp:
43669        (WebCore::JSDOMWindowBase::commonVM):
43670        * bindings/scripts/StaticString.pm:
43671        (GenerateStrings):
43672
436732014-03-05  Daniel Bates  <dabates@apple.com>
43674            And Alexey Proskuryakov  <ap@apple.com>
43675
43676        ASSERT(newestManifest) fails in WebCore::ApplicationCacheGroup::didFinishLoadingManifest()
43677        https://bugs.webkit.org/show_bug.cgi?id=129753
43678        <rdar://problem/12069835>
43679
43680        Reviewed by Alexey Proskuryakov.
43681
43682        Fixes an issue where an assertion failure would occur when visiting a web site whose on-disk
43683        app cache doesn't contain a manifest resource.
43684
43685        For some reason an app cache for a web site may be partially written to disk. In particular, the
43686        app cache may only contain a CacheGroups entry. That is, the manifest resource and origin records
43687        may not be persisted to disk. From looking over the code, we're unclear how such a situation can occur
43688        and hence have been unable to create such an app cache. We were able to reproduce this issue using
43689        an app cache database file that was provided by a person that was affected by this issue.
43690
43691        No test included because it's not straightforward to write a test for this change.
43692
43693        * loader/appcache/ApplicationCacheGroup.cpp:
43694        (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): Assert that m_cacheBeingUpdated->manifestResource()
43695        is non-null. Currently we only document this assumption in a code comment. Also separated a single assertion
43696        expression into two assertion expressions to make it straightforward to identify the failing sub-expression
43697        on failure.
43698        * loader/appcache/ApplicationCacheStorage.cpp:
43699        (WebCore::ApplicationCacheStorage::store): Modified to call ApplicationCacheStorage::deleteCacheGroupRecord()
43700        to remove a cache group and associated cache records (if applicable) before inserting a cache group entry.
43701        This replacement approach will ultimately repair incomplete app cache data for people affected by this bug.
43702        (WebCore::ApplicationCacheStorage::loadCache): Log an error and return nullptr if the cache we loaded doesn't
43703        have a manifest resource.
43704        (WebCore::ApplicationCacheStorage::deleteCacheGroupRecord): Added.
43705        (WebCore::ApplicationCacheStorage::deleteCacheGroup): Extracted deletion logic for cache group record into
43706        ApplicationCacheStorage::deleteCacheGroupRecord().
43707        * loader/appcache/ApplicationCacheStorage.h:
43708
437092014-03-05  Oliver Hunt  <oliver@apple.com>
43710
43711        Support caching of custom setters
43712        https://bugs.webkit.org/show_bug.cgi?id=129519
43713
43714        Reviewed by Filip Pizlo.
43715
43716        Add forwarding header
43717
43718        Tests: js/regress/assign-custom-setter-polymorphic.html
43719               js/regress/assign-custom-setter.html
43720
43721        * ForwardingHeaders/jit/SpillRegistersMode.h: Added.
43722
437232014-03-05  David Kilzer  <ddkilzer@apple.com>
43724
43725        Fix crash in CompositeEditCommand::cloneParagraphUnderNewElement()
43726        <http://webkit.org/b/129751>
43727        <rdar://problem/16237965>
43728
43729        Reviewed by Jon Honeycutt.
43730
43731        Merged from Blink (patch by Yuta Kitamura):
43732        https://src.chromium.org/viewvc/blink?revision=168160&view=revision
43733        http://crbug.com/345005
43734
43735            The root cause is CompositeEditCommand::moveParagraphWithClones() passing
43736            two positions |start| and |end| which do not follow the document order,
43737            i.e. in some situations |start| is located after |end| because of
43738            the difference in affinity.
43739
43740            This patch fixes this crash by normalizing |end| to |start| in such situations.
43741            It also adds an ASSERT that checks the relationship between |start| and |end|.
43742
43743        Test: editing/execCommand/format-block-crash.html
43744
43745        * editing/CompositeEditCommand.cpp:
43746        (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
43747        (WebCore::CompositeEditCommand::moveParagraphWithClones):
43748        * editing/CompositeEditCommand.h:
43749
437502014-03-05  Radu Stavila  <stavila@adobe.com>
43751
43752        [CSS Regions] Scrollable regions
43753        https://bugs.webkit.org/show_bug.cgi?id=129301
43754
43755        Reviewed by David Hyatt.
43756
43757        Named flow fragments do not inherit the overflow property from the fragment container.
43758        When asked if the flow thread content should be clipped, the named flow fragments
43759        will respond using the overflow property of the named flow fragment container.
43760
43761        When painting the flow thread layer inside the region, the scrolled content offset of
43762        the region must be used to offset the flow thread's layer.
43763
43764        Tests: fast/regions/scrollable-last-region.html
43765               fast/regions/scrollable-single-region-bt.html
43766               fast/regions/scrollable-single-region-lr.html
43767               fast/regions/scrollable-single-region-relative-element.html
43768               fast/regions/scrollable-single-region-rl.html
43769               fast/regions/scrollable-single-region.html
43770
43771        * rendering/RenderLayer.cpp:
43772        (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
43773        (WebCore::RenderLayer::calculateClipRects):
43774        * rendering/RenderNamedFlowFragment.cpp:
43775        (WebCore::RenderNamedFlowFragment::createStyle):
43776        (WebCore::RenderNamedFlowFragment::shouldClipFlowThreadContent):
43777        * rendering/RenderNamedFlowFragment.h:
43778        * rendering/RenderNamedFlowThread.cpp:
43779        (WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
43780        * rendering/RenderRegion.cpp:
43781        (WebCore::RenderRegion::shouldClipFlowThreadContent):
43782        * rendering/RenderRegion.h:
43783
437842014-03-05  Zalan Bujtas  <zalan@apple.com>
43785
43786        Subpixel rendering: Device pixel round accumulated subpixel value when the RenderLayer with transform paints its content.
43787        https://bugs.webkit.org/show_bug.cgi?id=129079
43788
43789        Reviewed by Simon Fraser.
43790
43791        Snap the content to the device pixel position (as opposed to integral position) before
43792        applying the transform. Recalculate the remaining subpixels that need offsetting at painting time.
43793
43794        Test: compositing/hidpi-absolute-subpixel-positioned-transformed-elements.html
43795
43796        * platform/graphics/LayoutPoint.h:
43797        (WebCore::roundedForPainting):
43798        * rendering/RenderLayer.cpp:
43799        (WebCore::RenderLayer::paintLayerByApplyingTransform):
43800
438012014-03-05  Eric Carlson  <eric.carlson@apple.com>
43802
43803        [iOS] Show external device name/type in placeholder
43804        https://bugs.webkit.org/show_bug.cgi?id=129723
43805
43806        Reviewed by Jer Noble.
43807
43808        Make the name and type of the external device available to the JS based controls.
43809        * Modules/mediacontrols/MediaControlsHost.cpp:
43810        (WebCore::MediaControlsHost::externalDeviceDisplayName):
43811        (WebCore::MediaControlsHost::externalDeviceType):
43812        * Modules/mediacontrols/MediaControlsHost.h:
43813        * Modules/mediacontrols/MediaControlsHost.idl:
43814
43815        * Modules/mediacontrols/mediaControlsiOS.js:
43816        (ControllerIOS.prototype.updateWirelessPlaybackStatus): Display device type-specific infomation
43817            in the placeholder image.
43818
43819        * WebCore.exp.in: Export new WebKitSystemInterface functions.
43820
43821        * platform/graphics/MediaPlayer.cpp:
43822        (WebCore::MediaPlayer::wirelessPlaybackTargetName): Added.
43823        (WebCore::MediaPlayer::wirelessPlaybackTargetType): Ditto.
43824        * platform/graphics/MediaPlayer.h:
43825        * platform/graphics/MediaPlayerPrivate.h:
43826
43827        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
43828        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
43829        (WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetType): Added.
43830        (WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetName): Ditto.
43831
43832        * platform/ios/WebCoreSystemInterfaceIOS.mm:
43833        * platform/mac/WebCoreSystemInterface.h:
43834        * platform/mac/WebCoreSystemInterface.mm:
43835
438362014-03-05  Benjamin Poulain  <bpoulain@apple.com>
43837
43838        [iOS] Rename the various VisibleExtent variations to exposedContentRect
43839        https://bugs.webkit.org/show_bug.cgi?id=129728
43840
43841        Reviewed by Simon Fraser.
43842
43843        Rename DocumentVisibleExtent and VisibleExtentContentRect to ExposedContentRect in a desperate
43844        attempt to make things a tiny little bit less confusing.
43845
43846        The name is ExposedContentRect and not ExposedRect as that rect is exposed on ScrollView, while the
43847        rect is in document coordinates (which does not make any difference on WebKit1...).
43848
43849        * WebCore.exp.in:
43850        * platform/ScrollView.h:
43851        * platform/ios/ScrollViewIOS.mm:
43852        (WebCore::ScrollView::exposedContentRect):
43853        (WebCore::ScrollView::setExposedContentRect):
43854        * platform/ios/wak/WAKScrollView.h:
43855        * platform/ios/wak/WAKScrollView.mm:
43856        (-[WAKScrollView exposedContentRect]):
43857        * rendering/RenderLayerCompositor.cpp:
43858        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
43859        (WebCore::RenderLayerCompositor::didChangeVisibleRect):
43860
438612014-03-05  Simon Fraser  <simon.fraser@apple.com>
43862
43863        ObjC exception when dropping files into a WKView: drag and drop uses code from WebKit.framework
43864        https://bugs.webkit.org/show_bug.cgi?id=129752
43865
43866        Reviewed by Enrica Casucci.
43867
43868        Add C functions for NSURL-related functionality required by WebKit2
43869
43870        * WebCore.exp.in:
43871        * platform/mac/WebCoreNSURLExtras.h:
43872        * platform/mac/WebCoreNSURLExtras.mm:
43873        (WebCore::URLByCanonicalizingURL):
43874        (WebCore::rangeOfURLScheme):
43875        (WebCore::looksLikeAbsoluteURL):
43876
438772014-03-05  Martin Hock  <mhock@apple.com>
43878
43879        Add support for sessions to MemoryCache.
43880        https://bugs.webkit.org/show_bug.cgi?id=127794
43881
43882        Reviewed by Sam Weinig.
43883
43884        * WebCore.exp.in:
43885        * editing/DeleteButtonController.cpp:
43886        (WebCore::DeleteButtonController::createDeletionUI): Initialize CachedImage with sessionID.
43887        * html/DOMURL.cpp:
43888        (WebCore::DOMURL::revokeObjectURL): Remove URL from MemoryCache for all sessions.
43889        * inspector/InspectorPageAgent.cpp:
43890        (WebCore::InspectorPageAgent::cachedResource): Pass sessionID to MemoryCache.
43891        * inspector/InspectorResourceAgent.cpp:
43892        (WebCore::InspectorResourceAgent::replayXHR): Ditto.
43893        * loader/DocumentLoader.cpp:
43894        (WebCore::areAllLoadersPageCacheAcceptable): Ditto.
43895        * loader/FrameLoader.cpp:
43896        (WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads): Ditto.
43897        * loader/ImageLoader.cpp:
43898        (WebCore::ImageLoader::updateFromElement): Initialize CachedImage with sessionID.
43899        * loader/archive/cf/LegacyWebArchive.cpp:
43900        (WebCore::LegacyWebArchive::create): Pass sessionID to MemoryCache.
43901        * loader/cache/CachedCSSStyleSheet.cpp:
43902        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet): Constructor takes sessionID.
43903        * loader/cache/CachedCSSStyleSheet.h:
43904        * loader/cache/CachedFont.cpp: Ditto.
43905        (WebCore::CachedFont::CachedFont):
43906        * loader/cache/CachedFont.h:
43907        * loader/cache/CachedImage.cpp: Ditto.
43908        (WebCore::CachedImage::CachedImage):
43909        * loader/cache/CachedImage.h:
43910        * loader/cache/CachedRawResource.cpp: Ditto.
43911        (WebCore::CachedRawResource::CachedRawResource):
43912        * loader/cache/CachedRawResource.h:
43913        * loader/cache/CachedResource.cpp: Ditto.
43914        (WebCore::CachedResource::CachedResource):
43915        (WebCore::CachedResource::~CachedResource): Pass sessionID to MemoryCache.
43916        * loader/cache/CachedResource.h:
43917        (WebCore::CachedResource::sessionID):
43918        * loader/cache/CachedResourceLoader.cpp:
43919        (WebCore::createResource): Constructors take sessionID.
43920        (WebCore::CachedResourceLoader::sessionID): Retrieve sessionID from page.
43921        (WebCore::CachedResourceLoader::requestUserCSSStyleSheet): Pass sessionID to MemoryCache.
43922        (WebCore::CachedResourceLoader::requestResource): Initialize CachedCSSStyleSheet with sessionID.
43923        (WebCore::CachedResourceLoader::revalidateResource): Initialize cached resource with sessionID.
43924        (WebCore::CachedResourceLoader::loadResource): Pass sessionID to MemoryCache and initialize cached resource with sessionID.
43925        * loader/cache/CachedResourceLoader.h:
43926        * loader/cache/CachedSVGDocument.cpp: Constructor takes sessionID.
43927        (WebCore::CachedSVGDocument::CachedSVGDocument):
43928        * loader/cache/CachedSVGDocument.h:
43929        * loader/cache/CachedScript.cpp: Ditto.
43930        (WebCore::CachedScript::CachedScript):
43931        * loader/cache/CachedScript.h:
43932        * loader/cache/CachedTextTrack.cpp: Ditto.
43933        (WebCore::CachedTextTrack::CachedTextTrack):
43934        * loader/cache/CachedTextTrack.h:
43935        * loader/cache/CachedXSLStyleSheet.cpp: Ditto.
43936        (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
43937        * loader/cache/CachedXSLStyleSheet.h:
43938        * loader/cache/MemoryCache.cpp:
43939        (WebCore::MemoryCache::getSessionMap): Retrieve CachedResourceMap based on sessionID.
43940        (WebCore::MemoryCache::add): Use sessionID from CachedResource parameter.
43941        (WebCore::MemoryCache::revalidationSucceeded): Add sessionID parameter.
43942        (WebCore::MemoryCache::resourceForURL): Ditto.
43943        (WebCore::MemoryCache::resourceForRequest): Ditto, also move impl into impl method.
43944        (WebCore::MemoryCache::resourceForRequestImpl): Add CachedResourceMap parameter.
43945        (WebCore::MemoryCache::addImageToCache): Use default sessionID.
43946        (WebCore::MemoryCache::removeImageFromCache): Ditto.
43947        (WebCore::MemoryCache::evict): Use sessionID from CachedResource parameter.
43948        (WebCore::MemoryCache::removeResourcesWithOrigin): Iterate through all CachedResourceMaps.
43949        (WebCore::MemoryCache::getOriginsWithCache): Ditto.
43950        (WebCore::MemoryCache::removeUrlFromCache): Add sessionID parameter.
43951        (WebCore::MemoryCache::removeRequestFromCache): Ditto.
43952        (WebCore::MemoryCache::removeRequestFromSessionCaches): Remove request from all CachedResourceMaps, with multithread support.
43953        (WebCore::MemoryCache::removeRequestFromCacheImpl): Add sessionID parameter.
43954        (WebCore::MemoryCache::removeRequestFromSessionCachesImpl): Iterate through all CachedResourceMaps.
43955        (WebCore::MemoryCache::crossThreadRemoveRequestFromCache): Add sessionID parameter.
43956        (WebCore::MemoryCache::crossThreadRemoveRequestFromSessionCaches): Pass on request to removeRequestFromSessionCachesImpl.
43957        (WebCore::MemoryCache::getStatistics): Iterate through all CachedResourceMaps.
43958        (WebCore::MemoryCache::setDisabled): Ditto.
43959        * loader/cache/MemoryCache.h: Create another level for cache.
43960        * platform/CrossThreadCopier.cpp: Allow copying SessionIDs across threads.
43961        (WebCore::SessionID>::copy):
43962        * platform/CrossThreadCopier.h:
43963        * platform/network/cf/ResourceRequest.h:
43964        (WebCore::ResourceRequest::ResourceRequest): Remove trailing whitespace.
43965        * rendering/RenderSnapshottedPlugIn.cpp:
43966        (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Initialize CachedImage with sessionID.
43967        * testing/Internals.cpp:
43968        (WebCore::Internals::isLoadingFromMemoryCache): Pass sessionID to MemoryCache.
43969
439702014-03-03  Martin Robinson  <mrobinson@igalia.com>
43971
43972        [GTK][CMake] Generate documentation for the DOM bindings
43973        https://bugs.webkit.org/show_bug.cgi?id=126211
43974
43975        Reviewed by Carlos Garcia Campos.
43976
43977        * PlatformGTK.cmake: Add some files to the GObjectDOMBindings build, so that the
43978        doc generation succeeds. Have the GObjectDOMBindings_INSTALLED_HEADERS variable contain
43979        all installed headers and use another variable for GIR generation. Create the configuration
43980        file for the gtkdoc generation.
43981
439822014-03-05  Zalan Bujtas  <zalan@apple.com>
43983
43984        Subpixel rendering: Wrong cliprect on absolute positioned elements.
43985        https://bugs.webkit.org/show_bug.cgi?id=129656
43986
43987        Reviewed by Simon Fraser.
43988
43989        outlineBoundsForRepaint() is expected to return the outline repaint rect. Using enclosingIntRect()
43990        to calculate the outline boundaries breaks repaint logic in RenderElement::repaintAfterLayoutIfNeeded().
43991        Since enclosingIntRect() can return bigger rect than repaint rect, the old/new bounds' dimensions could end up
43992        being different which triggers the size change repaint code path.
43993
43994        Test: fast/repaint/hidpi-absolute-positioned-element-wrong-cliprect-after-move.html
43995
43996        * rendering/RenderBox.cpp:
43997        (WebCore::RenderBox::outlineBoundsForRepaint):
43998        * rendering/RenderElement.cpp:
43999        (WebCore::RenderElement::repaintAfterLayoutIfNeeded):
44000        * rendering/svg/RenderSVGModelObject.cpp:
44001        (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
44002
440032014-03-05  Krzysztof Czech  <k.czech@samsung.com>
44004
44005        [ATK] Expose missing functionalities of AtkTableCell to AT.
44006        https://bugs.webkit.org/show_bug.cgi?id=129492
44007
44008        Reviewed by Mario Sanchez Prada.
44009
44010        Implemented missing API of AtkTableCell.
44011
44012        No new tests. Covered by existing ones.
44013
44014        * accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:
44015        (webkitAccessibleTableCellGetColumnSpan):
44016        (webkitAccessibleTableCellGetRowSpan):
44017        (webkitAccessibleTableCellGetPosition):
44018        (webkitAccessibleTableCellGetTable):
44019        (webkitAccessibleTableCellInterfaceInit):
44020
440212014-03-05  Andres Gomez  <agomez@igalia.com>
44022
44023        [GStreamer] WebSource doesn't need the "iradio-mode" property
44024        https://bugs.webkit.org/show_bug.cgi?id=129685
44025
44026        Reviewed by Philippe Normand.
44027
44028        Removed the "iradio-mode" property from the WK source element
44029        since this was only available for its modification from
44030        playbin/uridecodebin and, as discussed in GStreamer bug #725383,
44031        it was not being set and now is going to be removed.
44032
44033        It is safe just to send always the "icy-metadata" header set and
44034        deal with returning "icy" headers as we were already doing.
44035
44036        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
44037        (webKitWebSrcSetProperty):
44038        (webKitWebSrcGetProperty):
44039        (webKitWebSrcStart):
44040
440412014-03-05  Chang Shu  <cshu@webkit.org>
44042
44043        Copying wrapping text results in multiple spaces between wrapped lines stripped.
44044        https://bugs.webkit.org/show_bug.cgi?id=129609.
44045
44046        Reviewed by Ryosuke Niwa.
44047
44048        While checking the condition of restoring the missing space, the collapsed spaces
44049        may not be exactly one.
44050
44051        editing/pasteboard/copy-text-with-wrapped-tag.html is enhanced to test this case.
44052
44053        * editing/TextIterator.cpp:
44054        (WebCore::TextIterator::handleTextBox):
44055
440562014-03-05  Ryosuke Niwa  <rniwa@webkit.org>
44057
44058        appendChild shouldn't invalidate LiveNodeLists and HTMLCollections if they don't have valid caches
44059        https://bugs.webkit.org/show_bug.cgi?id=129727
44060
44061        Reviewed by Andreas Kling.
44062
44063        Before this patch, invalidateNodeListAndCollectionCachesInAncestors invalidated node lists and HTML
44064        collections on ancestors of a node whenever we're inserting or removing a child node. This patch
44065        makes HTMLCollections and LiveNodeLists register themselves with Document only when they have valid
44066        caches.
44067
44068        Each user of CollectionIndexCache now implements willValidateIndexCache member function that gets
44069        called when CollectionIndexCache caches any state and necessitates the registration with document.
44070
44071        * dom/ChildNodeList.h: Added an empty willValidateIndexCache since child node lists are never
44072        registered with document.
44073
44074        * dom/CollectionIndexCache.h:
44075        (WebCore::CollectionIndexCache::hasValidCache): Added.
44076        (WebCore::CollectionIndexCache::nodeCount): Calls willValidateIndexCache when caching node count.
44077        (WebCore::CollectionIndexCache::nodeAfterCached): Ditto. Also assert that hasValidCache() true in
44078        the cases where we're simply updating our caches or adding more caches.
44079        (WebCore::CollectionIndexCache::nodeAt): Ditto. Also added a code to set the length cache when
44080        we've reached the end of the list. This should be a slight speed up on some cases.
44081
44082        * dom/Document.cpp:
44083        (WebCore::Document::Document): Initializes a variable used by assertions.
44084        (WebCore::Document::unregisterNodeList): Added an early exit for when m_listsInvalidatedAtDocument
44085        is empty since invalidateNodeListAndCollectionCaches swaps out the list.
44086        (WebCore::Document::registerCollection): Removed the boolean hasIdNameMap since we now explicitly
44087        call collectionCachedIdNameMap in HTMLCollection.
44088        (WebCore::Document::unregisterCollection): Ditto. Exit early if m_collectionsInvalidatedAtDocument
44089        is empty since invalidateNodeListAndCollectionCaches swaps out the list.
44090        * dom/Document.h:
44091
44092        * dom/LiveNodeList.cpp:
44093        (WebCore::LiveNodeList::invalidateCache): Unregister the node list with document if we had caches.
44094        * dom/LiveNodeList.h:
44095        (WebCore::LiveNodeList::LiveNodeList):
44096        (WebCore::LiveNodeList::~LiveNodeList): Ditto.
44097        (WebCore::LiveNodeList::invalidateCache): Pass around document. This is necessary since document()
44098        had already moved to the new document inside NodeListsNodeData::invalidateCaches.
44099        (WebCore::LiveNodeList::willValidateIndexCache): Added. Registers itself with document.
44100
44101        * dom/Node.cpp:
44102        (WebCore::Document::invalidateNodeListAndCollectionCaches): Swap the lists since invalidateCache
44103        tries to unregister node lists and HTML collections with document. Since this is the only case in
44104        which node lists and HTML collections being removed may not be in the lists in unregisterNodeList
44105        and unregisterCollection, assert this condition via m_inInvalidateNodeListAndCollectionCaches.
44106        (WebCore::NodeListsNodeData::invalidateCaches):
44107
44108        * dom/NodeRareData.h:
44109        (WebCore::NodeListsNodeData::adoptDocument): Unregister node lists and HTML collections from old
44110        document via invalidateCache. We need to explicitly pass in oldDocument here since owner node's
44111        document had already been changed to newDocument at this point. Since we're invalidating caches,
44112        there is no need to register node lists and HTML collections with newDocument.
44113
44114        * html/HTMLCollection.cpp:
44115        (WebCore::HTMLCollection::HTMLCollection):
44116        (WebCore::HTMLCollection::~HTMLCollection): Unregister the node list with document if we had caches.
44117        (WebCore::HTMLCollection::invalidateCache): Ditto.
44118        (WebCore::HTMLCollection::invalidateNamedElementCache):
44119        * html/HTMLCollection.h:
44120        (WebCore::HTMLCollection::invalidateCache): Pass around document as done in LiveNodeList.
44121        (WebCore::HTMLCollection::willValidateIndexCache): Ditto.
44122
44123        * html/HTMLFormControlsCollection.cpp:
44124        (WebCore::HTMLFormControlsCollection::invalidateCache): Ditto.
44125        * html/HTMLFormControlsCollection.h:
44126
44127        * html/HTMLSelectElement.cpp:
44128        (WebCore::HTMLSelectElement::invalidateSelectedItems): Ditto.
44129        (WebCore::HTMLSelectElement::setRecalcListItems): Ditto.
44130
441312014-03-05  Jon Lee  <jonlee@apple.com>
44132
44133        Fix linker error after r165087
44134        https://bugs.webkit.org/show_bug.cgi?id=129730
44135
44136        Reviewed by Csaba Osztrogonác.
44137
44138        * WebCore.exp.in: Remove undefined symbol __ZN7WebCore32WebVideoFullscreenChangeObserverD2Ev.
44139
441402014-03-04  Zalan Bujtas  <zalan@apple.com>
44141
44142        Enable device pixel repaint rect tracking.
44143        https://bugs.webkit.org/show_bug.cgi?id=129712
44144
44145        Reviewed by Simon Fraser.
44146
44147        Tracked repaint rects are device pixel snapped now to support hiDPI test cases.
44148
44149        Test: fast/repaint/hidpi-device-pixel-based-repaint-rect-tracking.html
44150
44151        * WebCore.exp.in:
44152        * page/FrameView.cpp:
44153        (WebCore::FrameView::addTrackedRepaintRect):
44154        (WebCore::FrameView::trackedRepaintRectsAsText): Print them as LayoutUnits to get
44155        trailing zeros cut off.
44156        * page/FrameView.h:
44157        * rendering/RenderLayer.cpp:
44158        (WebCore::RenderLayer::calculateClipRects):
44159        * rendering/RenderLayer.h:
44160        * rendering/RenderLayerBacking.cpp:
44161        (WebCore::RenderLayerBacking::setContentsNeedDisplay):
44162        (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
44163        * rendering/RenderView.cpp:
44164        (WebCore::RenderView::repaintViewRectangle):
44165
441662014-03-04  Simon Fraser  <simon.fraser@apple.com>
44167
44168        Don't clamp scrolling node offsets when the offset is changed by delegated scrolling
44169        https://bugs.webkit.org/show_bug.cgi?id=129724
44170
44171        Reviewed by Sam Weinig.
44172        
44173        Call setScrollPositionWithoutContentEdgeConstraints() from
44174        ScrollingTree::scrollPositionChangedViaDelegatedScrolling() so that
44175        layers are not clamped during rubber-banding.
44176        
44177        This requires making setScrollPositionWithoutContentEdgeConstraints()
44178        a pure virtual function on the base class.
44179
44180        * page/scrolling/ScrollingTree.cpp:
44181        (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
44182        * page/scrolling/ScrollingTreeScrollingNode.h:
44183        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
44184        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
44185
441862014-03-04  Jeremy Jones  <jeremyj@apple.com>
44187
44188        WebVideoFullscreen, should make the hand off of the video layer explicit.
44189        https://bugs.webkit.org/show_bug.cgi?id=128844
44190
44191        Reviewed by Simon Fraser.
44192
44193        This change introduces a more explicit hand-off of the video layer.
44194        This describes the interactions between WebVideoFullscreenInterface and WebVideoFullscreenModel
44195        WebVideoFullscreenModel <-> WebVideoFullscreenInterface
44196              enterFullScreen(*) ->
44197                                <- borrowVideoLayer
44198              willLendVideoLayer ->
44199               didLendVideoLayer ->
44200                                <- didEnterFullscreen
44201                                ...
44202                                <- requestExitFullscreen
44203                  exitFullscreen ->
44204                                <- returnVideoLayer
44205                                <- didExitFullscreen
44206        (*) enterFullScreen actually comes from WebVideoFullscreenControllerAVKit.
44207
44208        * WebCore.exp.in:
44209        Export new functions in WebVideoFullscreenInterfaceAVKit, WebVideoFullscreenModelMediaElement, etc.
44210
44211        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
44212        Add WebVideoFullscreenControllerChangeObserver to forward fullscreen callbacks to WebVideoFullscreenController
44213
44214        (WebVideoFullscreenControllerChangeObserver::setTarget):
44215        Sets obj-c target of fullscreen change callbacks.
44216
44217        (-[WebVideoFullscreenController init]):
44218        Point _changeObserver's target at self.
44219
44220        (-[WebVideoFullscreenController dealloc]):
44221        Clear _changeObserver's target.
44222
44223        (-[WebVideoFullscreenController enterFullscreen:]):
44224        Retain self to prevent dealloc during animation or while fullscreen.
44225        Connect _interface to _changeObserver.
44226
44227        (-[WebVideoFullscreenController exitFullscreen]):
44228        Remove use of completion move cleanup to -didExitFullscreen.
44229
44230        (-[WebVideoFullscreenController didEnterFullscreen]):
44231        Nothing to see here.
44232
44233        (-[WebVideoFullscreenController didExitFullscreen]):
44234        Move clean up code that was in a completion to here.
44235
44236        * platform/ios/WebVideoFullscreenInterface.h:
44237        Add delarations for more explicit hand-off of video layer.
44238
44239        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
44240        Add WebVideoFullscreenChangeObserver to notify when fullscreen animations complete.
44241        Add declarations for more explicit hand-off of video layer.
44242        Add WebAVPlayerLayer now always wraps the m_videoLayer to prevent default behavior
44243        of AVPlayerLayer.
44244
44245        (WebCore::WebVideoFullscreenChangeObserver::~WebVideoFullscreenChangeObserver):
44246        Add empty virtual destructor.
44247
44248        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
44249        Include AVKit headers instead of declaring everything locally.
44250        AVPlayerLayer protocol renamed to AVVideoLayer per AVKit.
44251
44252        (-[WebAVPlayerController dealloc]):
44253        Don't refer to self.
44254
44255        (-[WebAVPlayerController playerViewController:shouldDismissWithReason:]):
44256        Pause before requesting exit fullscreen.
44257
44258        (-[WebAVPlayerLayer setPlayerController:]):
44259        This is required by AVVideoLayer, but we don't need it.
44260
44261        (WebVideoFullscreenInterfaceAVKit::playerController):
44262        White space.
44263
44264        (WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenChangeObserver):
44265        Set observer to forward fullscreen changes to.
44266
44267        (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
44268        Use more explicit video layer hand-off.
44269
44270        (WebVideoFullscreenInterfaceAVKit::doEnterFullscreen):
44271        Move enterFullscreen logic here.
44272        AVPlayerViewController now takes the video layer at init time.
44273        Always provide a video layer wrapped in a WebAVPlayerLayer.
44274
44275        (WebVideoFullscreenInterfaceAVKit::willLendVideoLayer):
44276        Use more explicit video layer hand-off.
44277
44278        (WebVideoFullscreenInterfaceAVKit::didLendVideoLayer):
44279        Use more explicit video layer hand-off.
44280
44281        (WebVideoFullscreenInterfaceAVKit::exitFullscreen):
44282        Use more explicit video layer hand-off.
44283
44284        * platform/ios/WebVideoFullscreenModel.h:
44285        Add functions for more explicit video layer hand-off.
44286
44287        * platform/ios/WebVideoFullscreenModelMediaElement.h:
44288        Mark virtual functions as virtual.
44289        Add changes for WebVideoFullscreenModel.
44290
44291        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
44292        Use more explicit video layer hand-off.
44293
44294        (WebVideoFullscreenModelMediaElement::setMediaElement):
44295        Don't push the video layer. Wait for a request for it.
44296
44297        (WebVideoFullscreenModelMediaElement::handleEvent):
44298        Make sure m_videoFullscreenInterface is valid.
44299
44300        (WebVideoFullscreenModelMediaElement::borrowVideoLayer):
44301        Use more explicit video layer hand-off.
44302        Lend videoLayer in request to a request to borrow the videoLayer.
44303        Make sure to retain the video layer before it is removed from the layer tree.
44304
44305        (WebVideoFullscreenModelMediaElement::returnVideoLayer):
44306        Use more explicit video layer hand-off.
44307
44308        (WebVideoFullscreenModelMediaElement::requestExitFullscreen):
44309        Don't clear the mediaElement reference until completely exited from fullscreen.
44310
443112014-03-04  Simon Fraser  <simon.fraser@apple.com>
44312
44313        Get position:fixed working slightly better on iOS
44314        https://bugs.webkit.org/show_bug.cgi?id=129714
44315
44316        Reviewed by Benjamin Poulain.
44317
44318        Send the scroll position as a FloatPoint, rather than an IntPoint.
44319
44320        * WebCore.exp.in:
44321        * page/scrolling/ScrollingTree.cpp:
44322        (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
44323        * page/scrolling/ScrollingTree.h:
44324
443252014-03-04  Alex Christensen  <achristensen@webkit.org>
44326
44327        Fixed Windows build without MEDIA_CONTROLS_SCRIPT enabled.
44328        https://bugs.webkit.org/show_bug.cgi?id=129701
44329
44330        Reviewed by Jer Noble.
44331
44332        * WebCore.vcxproj/WebCore.vcxproj:
44333        * DerivedSources.cpp:
44334        Moved UserAgentScriptsData.cpp to DerivedSources.cpp to only be built if MEDIA_CONTROLS_SCRIPT is enabled.
44335        * DerivedSources.make:
44336        Only generate UserAgentScripts.cpp/h when USER_AGENT_SCRIPTS is non-empty.
44337        * rendering/RenderThemeWin.cpp:
44338        Only include UserAgentScripts.h when MEDIA_CONTROLS_SCRIPT is enabled.
44339
443402014-03-04  Simon Fraser  <simon.fraser@apple.com>
44341
44342        Allow iOS DumpRenderTree crashes to show application-specific information
44343        https://bugs.webkit.org/show_bug.cgi?id=129705
44344
44345        Reviewed by David Kilzer.
44346
44347        Make the WKSI function SetCrashReportApplicationSpecificInformation available
44348        in iOS simulator builds.
44349
44350        * WebCore.exp.in:
44351        * platform/ios/WebCoreSystemInterfaceIOS.mm:
44352        * platform/mac/WebCoreSystemInterface.h:
44353
443542014-03-04  Andreas Kling  <akling@apple.com>
44355
44356        Spam static branch prediction hints on JS bindings.
44357        <https://webkit.org/b/129703>
44358
44359        Add UNLIKELY hints to all !castedThis and exec->hadException() paths
44360        in the JS bindings since they are almost always going to get skipped.
44361
44362        Reviewed by Geoff Garen.
44363
44364        * bindings/scripts/CodeGeneratorJS.pm:
44365        (GenerateImplementation):
44366        (GenerateParametersCheck):
44367        (GenerateImplementationFunctionCall):
44368        (GenerateConstructorDefinition):
44369
443702014-03-04  Adenilson Cavalcanti  <cavalcantii@gmail.com>
44371
44372        Remove unused StdDeviation from Gaussian Blur effect
44373        https://bugs.webkit.org/show_bug.cgi?id=129693
44374
44375        Reviewed by Simon Fraser.
44376
44377        No new tests, no change on behavior.
44378
44379        * platform/graphics/filters/FEGaussianBlur.cpp:
44380        * platform/graphics/filters/FEGaussianBlur.h:
44381
443822014-03-04  Andreas Kling  <akling@apple.com>
44383
44384        Add a Document::updateStyleIfNeededForNode(Node&).
44385        <https://webkit.org/b/129689>
44386
44387        Generalize the mechanism that computed style uses to avoid doing full
44388        style updates when the node we're interested in isn't actually dirty.
44389
44390        Reviewed by Antti Koivisto.
44391
44392        * css/CSSComputedStyleDeclaration.cpp:
44393        (WebCore::ComputedStyleExtractor::propertyValue):
44394        * dom/Document.cpp:
44395        (WebCore::nodeOrItsAncestorNeedsStyleRecalc):
44396        (WebCore::Document::updateStyleIfNeededForNode):
44397        * dom/Document.h:
44398        * editing/htmlediting.cpp:
44399        (WebCore::isEditablePosition):
44400        * html/HTMLInputElement.cpp:
44401        (WebCore::HTMLInputElement::defaultEventHandler):
44402
444032014-03-04  Mark Hahnenberg  <mhahnenberg@apple.com>
44404
44405        Merge API shims and JSLock
44406        https://bugs.webkit.org/show_bug.cgi?id=129650
44407
44408        Reviewed by Mark Lam.
44409
44410        No new tests.
44411
44412        JSLock is now taking on all of APIEntryShim's responsibilities since there is never a reason 
44413        to take just the JSLock. Ditto for DropAllLocks and APICallbackShim.
44414
44415        * bindings/js/DOMRequestState.h:
44416        (WebCore::DOMRequestState::Scope::Scope):
44417        * bindings/js/JSDOMPromise.h:
44418        (WebCore::DeferredWrapper::resolve):
44419        (WebCore::DeferredWrapper::reject):
44420        (WebCore::DeferredWrapper::resolve<String>):
44421        (WebCore::DeferredWrapper::resolve<bool>):
44422        (WebCore::char>>):
44423        (WebCore::DeferredWrapper::reject<String>):
44424        * bindings/js/ScriptController.cpp:
44425        (WebCore::ScriptController::evaluateInWorld):
44426        * bindings/js/SerializedScriptValue.cpp:
44427        (WebCore::SerializedScriptValue::create):
44428        (WebCore::SerializedScriptValue::deserialize):
44429
444302014-03-04  Beth Dakin  <bdakin@apple.com>
44431
44432        REGRESSION: Overlay scrollbars that have grown are sometimes askew in the track
44433        https://bugs.webkit.org/show_bug.cgi?id=129691
44434        -and corresponding-
44435        <rdar://problem/15666846>
44436
44437        Reviewed by Simon Fraser.
44438
44439        This regression started happening after we adopted the setPresentationValue 
44440        ScrollbarPainter API which allows us to update the position of the scrollbar knob 
44441        from our secondary scrolling thread. The bug occurs when the scrollbar grows while 
44442        it still thinks it is in presentation-value mode. Whenever the scrollbar grows, it 
44443        should be in non-presentation value mode.
44444
44445        If the wheel event has ended or been cancelled, we can switch out of presentation 
44446        value mode.
44447        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
44448        (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
44449
44450        Sometimes we will grow the scrollbar before we have received a wheel event with 
44451        the end or cancelled phase, and so automatically switch out of presentation-value 
44452        mode whenever we start one of these animations.
44453        * platform/mac/ScrollAnimatorMac.mm:
44454        (-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
44455
444562014-03-04  Zan Dobersek  <zdobersek@igalia.com>
44457
44458        Move Source/WebCore/html/track/ code to std::unique_ptr
44459        https://bugs.webkit.org/show_bug.cgi?id=129666
44460
44461        Reviewed by Eric Carlson.
44462
44463        Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/html/track/ with std::unique_ptr.
44464
44465        * html/track/AudioTrack.h:
44466        * html/track/InbandWebVTTTextTrack.cpp:
44467        (WebCore::InbandWebVTTTextTrack::parseWebVTTCueData):
44468        * html/track/InbandWebVTTTextTrack.h:
44469        * html/track/LoadableTextTrack.cpp:
44470        (WebCore::LoadableTextTrack::loadTimerFired):
44471        (WebCore::LoadableTextTrack::newCuesAvailable):
44472        (WebCore::LoadableTextTrack::cueLoadingCompleted):
44473        (WebCore::LoadableTextTrack::newRegionsAvailable):
44474        * html/track/LoadableTextTrack.h:
44475        * html/track/TextTrack.h:
44476        * html/track/TextTrackCue.h:
44477        * html/track/TextTrackRegion.h:
44478        * html/track/VTTCue.cpp:
44479        (WebCore::VTTCue::createWebVTTNodeTree):
44480        (WebCore::VTTCue::markFutureAndPastNodes):
44481        * html/track/VTTCue.h:
44482        * html/track/VideoTrack.h:
44483        * html/track/WebVTTParser.cpp:
44484        (WebCore::WebVTTParser::WebVTTParser):
44485        * html/track/WebVTTParser.h:
44486        * html/track/WebVTTTokenizer.h:
44487        * loader/TextTrackLoader.cpp:
44488        (WebCore::TextTrackLoader::processNewCueData):
44489        * loader/TextTrackLoader.h:
44490
444912014-03-04  Zalan Bujtas  <zalan@apple.com>
44492
44493        Subpixel rendering: Make border-radius painting device pixel aware.
44494        https://bugs.webkit.org/show_bug.cgi?id=129558
44495
44496        Reviewed by Simon Fraser.
44497
44498        Snap rounded rects to device pixels right before passing them to GraphicsContext.
44499
44500        * rendering/RenderBoxModelObject.cpp:
44501        (WebCore::RenderBoxModelObject::clipRoundedInnerRect):
44502        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
44503        (WebCore::RenderBoxModelObject::paintBorder):
44504        * rendering/RenderBoxModelObject.h:
44505        * rendering/RenderReplaced.cpp:
44506        (WebCore::RenderReplaced::paint):
44507        * rendering/RenderWidget.cpp:
44508        (WebCore::RenderWidget::paint):
44509
445102014-03-04  Simon Fraser  <simon.fraser@apple.com>
44511
44512        Crashes and assertions running iOS compositing tests
44513        https://bugs.webkit.org/show_bug.cgi?id=129688
44514
44515        Reviewed by Dean Jackson.
44516        
44517        When a layer is no longer composited, we need to unregister it
44518        from the scrolling coordinator, and remove it from m_scrollCoordinatedLayers.
44519
44520        Tested by compositing tests on iOS.
44521
44522        * rendering/RenderLayerCompositor.cpp:
44523        (WebCore::RenderLayerCompositor::updateBacking):
44524
445252014-03-04  Antti Koivisto  <antti@apple.com>
44526
44527        Update bindings test results after r165046.
44528
44529        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
44530        (webkit_dom_test_obj_set_property):
44531        (webkit_dom_test_obj_set_reflected_string_attr):
44532        (webkit_dom_test_obj_set_reflected_url_attr):
44533        (webkit_dom_test_obj_set_reflected_custom_url_attr):
44534        * bindings/scripts/test/JS/JSTestObj.cpp:
44535        (WebCore::setJSTestObjReflectedStringAttr):
44536        (WebCore::setJSTestObjReflectedURLAttr):
44537        (WebCore::setJSTestObjReflectedCustomURLAttr):
44538        * bindings/scripts/test/ObjC/DOMTestObj.mm:
44539        (-[DOMTestObj setReflectedStringAttr:]):
44540        (-[DOMTestObj setReflectedURLAttr:]):
44541        (-[DOMTestObj setReflectedCustomURLAttr:]):
44542
445432014-03-04  Martin Robinson  <mrobinson@igalia.com>
44544
44545        [GTK] Simplify the GObject DOM bindings API break check into one step
44546        https://bugs.webkit.org/show_bug.cgi?id=129571
44547
44548        Reviewed by Carlos Garcia Campos.
44549
44550        * bindings/gobject/GNUmakefile.am: We no longer generate the webkitdom.symbols file in the
44551        DerivedSources directory. All the logic is handled internally in the script now.
44552        * bindings/scripts/gobject-run-api-break-test: Removed.
44553
445542014-03-04  Zalan Bujtas  <zalan@apple.com>
44555
44556        Build fix for iOS.
44557
44558        * rendering/RenderThemeIOS.mm:
44559        (WebCore::RenderThemeIOS::addRoundedBorderClip):
44560        (WebCore::RenderThemeIOS::paintFileUploadIconDecorations):
44561
445622014-03-04  Zalan Bujtas  <zalan@apple.com>
44563
44564        Subpixel rendering: Make GraphicsLayer::fillRect FloatRoundedRect based and cleanup dependencies.
44565        https://bugs.webkit.org/show_bug.cgi?id=129557
44566
44567        Reviewed by Simon Fraser.
44568
44569        This is the preparation for snapping rounded rects to device pixel position. It enables
44570        device pixel aware border-radius painting.
44571
44572        No change in functionality.
44573
44574        * platform/efl/RenderThemeEfl.cpp:
44575        (WebCore::RenderThemeEfl::paintMediaSliderThumb):
44576        * platform/graphics/FloatRoundedRect.cpp:
44577        (WebCore::FloatRoundedRect::FloatRoundedRect):
44578        (WebCore::FloatRoundedRect::isRenderable):
44579        * platform/graphics/FloatRoundedRect.h:
44580        * platform/graphics/GraphicsContext.cpp:
44581        (WebCore::GraphicsContext::clipRoundedRect):
44582        (WebCore::GraphicsContext::clipOutRoundedRect):
44583        (WebCore::GraphicsContext::fillRoundedRect):
44584        (WebCore::GraphicsContext::fillRectWithRoundedHole):
44585        * platform/graphics/GraphicsContext.h:
44586        * platform/graphics/Path.cpp:
44587        (WebCore::Path::addRoundedRect):
44588        * platform/graphics/Path.h:
44589        * platform/graphics/RoundedRect.cpp:
44590        (WebCore::RoundedRect::pixelSnappedRoundedRectForPainting):
44591        * platform/graphics/RoundedRect.h:
44592        * platform/graphics/ShadowBlur.cpp:
44593        (WebCore::ShadowBlur::drawRectShadow):
44594        (WebCore::ShadowBlur::drawInsetShadow):
44595        (WebCore::ShadowBlur::drawRectShadowWithoutTiling):
44596        (WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
44597        (WebCore::ShadowBlur::drawInsetShadowWithTiling):
44598        (WebCore::ShadowBlur::drawRectShadowWithTiling):
44599        * platform/graphics/ShadowBlur.h:
44600        * platform/graphics/cairo/GraphicsContextCairo.cpp:
44601        (WebCore::GraphicsContext::fillRect):
44602        (WebCore::GraphicsContext::platformFillRoundedRect):
44603        (WebCore::GraphicsContext::fillRectWithRoundedHole):
44604        * platform/graphics/cg/GraphicsContextCG.cpp:
44605        (WebCore::GraphicsContext::fillRect):
44606        (WebCore::GraphicsContext::platformFillRoundedRect):
44607        (WebCore::GraphicsContext::fillRectWithRoundedHole):
44608        * platform/graphics/wince/GraphicsContextWinCE.cpp:
44609        (WebCore::GraphicsContext::fillRoundedRect):
44610        * platform/gtk/RenderThemeGtk.cpp:
44611        (WebCore::borderRadiiFromStyle):
44612        (WebCore::RenderThemeGtk::paintMediaSliderTrack):
44613        (WebCore::RenderThemeGtk::paintMediaSliderThumb):
44614        (WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack):
44615        * platform/win/DragImageWin.cpp:
44616        (WebCore::createDragImageForLink):
44617        * rendering/RenderBox.cpp:
44618        (WebCore::RenderBox::paintBoxDecorations):
44619        (WebCore::RenderBox::pushContentsClip):
44620        * rendering/RenderBoxModelObject.cpp:
44621        (WebCore::RenderBoxModelObject::clipRoundedInnerRect):
44622        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
44623        (WebCore::RenderBoxModelObject::paintBorder):
44624        (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
44625        (WebCore::RenderBoxModelObject::clipBorderSideForComplexInnerPath):
44626        (WebCore::RenderBoxModelObject::paintBoxShadow):
44627        * rendering/RenderLayer.cpp:
44628        (WebCore::RenderLayer::clipToRect):
44629        * rendering/RenderThemeIOS.mm:
44630        (WebCore::RenderThemeIOS::paintRadioDecorations):
44631        (WebCore::RenderThemeIOS::paintTextFieldDecorations):
44632        (WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
44633        (WebCore::RenderThemeIOS::paintSliderTrack):
44634        (WebCore::RenderThemeIOS::paintProgressBar):
44635        (WebCore::RenderThemeIOS::paintFileUploadIconDecorations):
44636        * rendering/RenderThemeMac.mm:
44637        (WebCore::RenderThemeMac::paintMenuListButtonGradients):
44638        (WebCore::RenderThemeMac::paintSliderTrack):
44639        * rendering/RenderThemeSafari.cpp:
44640        (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
44641        (WebCore::RenderThemeSafari::paintSliderTrack):
44642        * rendering/shapes/BoxShape.cpp:
44643        (WebCore::BoxShape::buildDisplayPaths):
44644        * rendering/style/BasicShapes.cpp:
44645        (WebCore::BasicShapeInset::path):
44646
446472014-03-04  Andreas Kling  <akling@apple.com>
44648
44649        Micro-optimize Strings in JS bindings.
44650        <https://webkit.org/b/129673>
44651
44652        Tweaked for new jsStringWithWeakOwner signature. This patch removes
44653        36 bytes of code from every wrapper getter that returns a DOMString.
44654
44655        Reviewed by Ryosuke Niwa.
44656
44657        * bindings/js/JSDOMBinding.h:
44658        (WebCore::jsStringWithCache):
44659
446602014-03-03  David Kilzer  <ddkilzer@apple.com>
44661
44662        SVGPropertyTearOffs should detachChildren before deleting its value.
44663        <http://webkit.org/b/129618>
44664        <rdar://problem/15661617>
44665
44666        Reviewed by Maciej Stachowiak.
44667
44668        Merged from Blink (patch by kouhei@chromium.org):
44669        https://src.chromium.org/viewvc/blink?revision=158563&view=revision
44670        http://crbug.com/296276
44671
44672        Test: svg/transforms/svg-matrix-tearoff-crash.html
44673
44674        NOTE: The test does not reproduce a crash on WebKit using
44675        JavaScriptCore.
44676
44677        * svg/properties/SVGPropertyTearOff.h:
44678        (WebCore::SVGPropertyTearOff::setValue):
44679        (WebCore::SVGPropertyTearOff::~SVGPropertyTearOff):
44680        - Call detachChildren() if m_value is a copy.  The original
44681          Blink patch did not modify the destructor code path, although
44682          that seems obvious via code inspection.
44683
446842014-03-04  Zalan Bujtas  <zalan@apple.com>
44685
44686        Subpixel rendering: Incorrect repaint rect cuts off content's right edge after move.
44687        https://bugs.webkit.org/show_bug.cgi?id=129652
44688
44689        Reviewed by Simon Fraser.
44690
44691        When repaint rect is adjusted in order to take the distance from renderer into account,
44692        the accumulated fraction value need to be added too. This is always a positive value.
44693
44694        Test: fast/borders/hidpi-border-clipping-right-after-move.html
44695
44696        * rendering/RenderLayerBacking.cpp:
44697        (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
44698
446992014-03-04  Ryuan Choi  <ryuan.choi@samsung.com>
44700
44701        Remove unused member variable of NetworkInfoController
44702        https://bugs.webkit.org/show_bug.cgi?id=129674
44703
44704        Reviewed by Gyuyoung Kim.
44705
44706        * Modules/networkinfo/NetworkInfoController.cpp:
44707        (WebCore::NetworkInfoController::NetworkInfoController):
44708        (WebCore::NetworkInfoController::create):
44709        (WebCore::provideNetworkInfoTo):
44710        * Modules/networkinfo/NetworkInfoController.h: Removed m_page which is not really used.
44711
447122014-02-07  Sergio Villar Senin  <svillar@igalia.com>
44713
44714        [CSS Grid Layout] Percentages of indefinite sizes should compute to auto
44715        https://bugs.webkit.org/show_bug.cgi?id=128173
44716
44717        Reviewed by Darin Adler.
44718
44719        We should treat percentages of indefinite sizes as auto as
44720        mandated by the spec. Otherwise we would end up calculating a
44721        percentage of -1, the value we use to represent infinite.
44722
44723        Added some test cases to the current tests.
44724
44725        * rendering/RenderGrid.cpp:
44726        (WebCore::RenderGrid::gridTrackSize):
44727        * rendering/style/GridTrackSize.h:
44728        (WebCore::GridTrackSize::isPercentage):
44729
447302014-03-04  Ryosuke Niwa  <rniwa@webkit.org>
44731
44732        Don't synchronize attributes in reflect setters when we don't need to
44733        https://bugs.webkit.org/show_bug.cgi?id=129662
44734
44735        Reviewed by Andreas Kling.
44736
44737        The vast majority of attributes don't need synchronization. Avoid calling synchronizeAttribute in setters
44738        for those content attributes generated by "Reflect" keyword in IDL.
44739
44740        * bindings/scripts/CodeGenerator.pm:
44741        (SetterExpression):
44742        * dom/Element.cpp:
44743        (WebCore::Element::setAttributeWithoutSynchronization): Added.
44744        * dom/Element.h:
44745
447462014-03-04  Andreas Kling  <akling@apple.com>
44747
44748        Remove Document::idAttributeName().
44749        <https://webkit.org/b/129663>
44750
44751        Reviewed by Ryosuke "DYEB" Niwa.
44752
44753        This abstraction is not actually used and causes unnecessary indirection
44754        in some pretty hot code paths.
44755
44756        Replace it with hard-coded HTMLNames::idAttr instead which is a compile
44757        time constant pointer. We can revisit this in the future if we wish to
44758        implement support for custom id attributes.
44759
44760        * dom/Attr.cpp:
44761        (WebCore::Attr::isId):
44762        * dom/Document.cpp:
44763        (WebCore::Document::Document):
44764        * dom/Document.h:
44765        * dom/Element.cpp:
44766        (WebCore::Element::attributeChanged):
44767        (WebCore::Element::willModifyAttribute):
44768        * dom/Element.h:
44769        (WebCore::Element::getIdAttribute):
44770        (WebCore::Element::getNameAttribute):
44771        (WebCore::Element::setIdAttribute):
44772        * html/HTMLElement.cpp:
44773        (WebCore::HTMLElement::parseAttribute):
44774        * html/HTMLFrameElementBase.cpp:
44775        (WebCore::HTMLFrameElementBase::parseAttribute):
44776        * html/HTMLMapElement.cpp:
44777        (WebCore::HTMLMapElement::parseAttribute):
44778        * svg/SVGElement.cpp:
44779        (WebCore::SVGElement::attributeChanged):
44780        (WebCore::SVGElement::isKnownAttribute):
44781        (WebCore::SVGElement::svgAttributeChanged):
44782
447832014-03-04  Ryosuke Niwa  <rniwa@webkit.org>
44784
44785        REGRESSION(r164856): Use after free in WebCore::QualifiedName::operator== / WebCore::StyledElement::attributeChanged
44786        https://bugs.webkit.org/show_bug.cgi?id=129550
44787
44788        Reviewed by Andreas Kling.
44789
44790        We can't store a reference to QualifiedName here because ensureUniqueElementData could delete QualifiedName inside Attribute.
44791
44792        Test: fast/dom/uniquing-attributes-via-setAttribute.html
44793
44794        * dom/Element.cpp:
44795        (WebCore::Element::setAttributeInternal):
44796
447972014-03-04  Hyowon Kim  <hw1008.kim@samsung.com>
44798
44799        Move EvasGLContext and EvasGLSurface files into the efl common directory.
44800        https://bugs.webkit.org/show_bug.cgi?id=129603
44801
44802        Reviewed by Gyuyoung Kim.
44803
44804        EFL port will use EvasGLContext and EvasGLSurface files in both WK1 and WK2.
44805
44806        No new tests, just refactorings.
44807
44808        * PlatformEfl.cmake:
44809        * platform/graphics/efl/EvasGLContext.cpp: Renamed from Source/WebKit2/UIProcess/API/efl/EvasGLContext.cpp.
44810        (WebKit::EvasGLContext::EvasGLContext):
44811        (WebKit::EvasGLContext::~EvasGLContext):
44812        * platform/graphics/efl/EvasGLContext.h: Renamed from Source/WebKit2/UIProcess/API/efl/EvasGLContext.h.
44813        (WebKit::EvasGLContext::create):
44814        (WebKit::EvasGLContext::context):
44815        * platform/graphics/efl/EvasGLSurface.cpp: Renamed from Source/WebKit2/UIProcess/API/efl/EvasGLSurface.cpp.
44816        (WebKit::EvasGLSurface::EvasGLSurface):
44817        (WebKit::EvasGLSurface::~EvasGLSurface):
44818        * platform/graphics/efl/EvasGLSurface.h: Renamed from Source/WebKit2/UIProcess/API/efl/EvasGLSurface.h.
44819        (WebKit::EvasGLSurface::create):
44820        (WebKit::EvasGLSurface::surface):
44821
448222014-03-03  Martin Robinson  <mrobinson@igalia.com>
44823
44824        Fix the GTK+ CMake build
44825
44826        * PlatformGTK.cmake: Add a missing file to the source list.
44827
448282014-03-03  Sanghyup Lee  <sh53.lee@samsung.com>
44829
44830        :active style is not cleared when its display property is set to none before mouse released.
44831        https://bugs.webkit.org/show_bug.cgi?id=129465
44832
44833        Reviewed by Antonio Gomes.
44834
44835        Source/WebCore:
44836
44837        We currently clearing the :active style when element has a renderer.
44838        This patch makes elements clear its active style regardless of renderer. 
44839
44840        * dom/Document.cpp:
44841        (WebCore::Document::updateHoverActiveState):
44842
44843        LayoutTests:
44844
44845        * fast/css/active-display-none-expected.txt: Added.
44846        * fast/css/active-display-none.html: Added.
44847
44848
448492014-03-03  Andreas Kling  <akling@apple.com>
44850
44851        Remove 2 unnecessary includes from JSDOMBinding.h
44852        <https://webkit.org/b/129619>
44853
44854        Reviewed by Antti Koivisto.
44855
44856        * bindings/js/JSDOMBinding.h:
44857
448582014-03-03  Myles C. Maxfield  <mmaxfield@apple.com>
44859
44860        GraphicsContext::drawLineForText needs to be exported from WebCore.dylib for iOS builds
44861        https://bugs.webkit.org/show_bug.cgi?id=129647
44862
44863        Reviewed by NOBODY (This is a build fix).
44864
44865        Fixing after r165025 and r165016.
44866
44867        No new tests as this is a build fix.
44868
44869        * WebCore.exp.in:
44870
448712014-03-03  Jer Noble  <jer.noble@apple.com>
44872
44873        [iOS] Start playback button misplaced
44874        https://bugs.webkit.org/show_bug.cgi?id=129628
44875
44876        Reviewed by Simon Fraser.
44877
44878        On YouTube embeds, while the video is loading it is placed into the DOM with a 0x0 size.
44879        This causes the start playback button to be visible in the upper-left corner of the embed
44880        area. The button wasn't visible previously (in plugin mode) because the plugin clipped its
44881        drawing to its bounds, and so the <video> shadow should do the same.
44882
44883        * Modules/mediacontrols/mediaControlsiOS.css:
44884        (::-webkit-media-controls):
44885
448862014-03-03  Enrica Casucci  <enrica@apple.com>
44887
44888        Build fix for iOS simulator.
44889
44890        * WebCore.exp.in:
44891
448922014-03-03  Jeremy Jones  <jeremyj@apple.com>
44893
44894        Forward application suspend resume notifications to the web process.
44895        https://bugs.webkit.org/show_bug.cgi?id=129356
44896
44897        Reviewed by Eric Carlson.
44898
44899        * platform/audio/ios/MediaSessionManagerIOS.mm:
44900        (-[WebMediaSessionHelper initWithCallback:]):
44901        Observe UIApplicationDidBecomeActiveNotification,
44902        WebUIApplicationDidBecomeActiveNotification,
44903        WebUIApplicationWillEnterForegroundNotification, and
44904        WebUIApplicationWillResignActiveNotification
44905        
44906        (-[WebMediaSessionHelper applicationDidBecomeActive:]):
44907        Resume session.
44908
449092014-03-03  Commit Queue  <commit-queue@webkit.org>
44910
44911        Unreviewed, rolling out r165013.
44912        http://trac.webkit.org/changeset/165013
44913        https://bugs.webkit.org/show_bug.cgi?id=129646
44914
44915        New code is not thread safe, asserting on a worker test
44916        (Requested by ap on #webkit).
44917
44918        * WebCore.exp.in:
44919        * editing/DeleteButtonController.cpp:
44920        (WebCore::DeleteButtonController::createDeletionUI):
44921        * html/DOMURL.cpp:
44922        (WebCore::DOMURL::revokeObjectURL):
44923        * inspector/InspectorPageAgent.cpp:
44924        (WebCore::InspectorPageAgent::cachedResource):
44925        * inspector/InspectorResourceAgent.cpp:
44926        (WebCore::InspectorResourceAgent::replayXHR):
44927        * loader/DocumentLoader.cpp:
44928        (WebCore::areAllLoadersPageCacheAcceptable):
44929        * loader/FrameLoader.cpp:
44930        (WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads):
44931        * loader/ImageLoader.cpp:
44932        (WebCore::ImageLoader::updateFromElement):
44933        * loader/archive/cf/LegacyWebArchive.cpp:
44934        (WebCore::LegacyWebArchive::create):
44935        * loader/cache/CachedCSSStyleSheet.cpp:
44936        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
44937        * loader/cache/CachedCSSStyleSheet.h:
44938        * loader/cache/CachedFont.cpp:
44939        (WebCore::CachedFont::CachedFont):
44940        * loader/cache/CachedFont.h:
44941        * loader/cache/CachedImage.cpp:
44942        (WebCore::CachedImage::CachedImage):
44943        * loader/cache/CachedImage.h:
44944        * loader/cache/CachedRawResource.cpp:
44945        (WebCore::CachedRawResource::CachedRawResource):
44946        * loader/cache/CachedRawResource.h:
44947        * loader/cache/CachedResource.cpp:
44948        (WebCore::CachedResource::CachedResource):
44949        (WebCore::CachedResource::~CachedResource):
44950        * loader/cache/CachedResource.h:
44951        * loader/cache/CachedResourceLoader.cpp:
44952        (WebCore::createResource):
44953        (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
44954        (WebCore::CachedResourceLoader::requestResource):
44955        (WebCore::CachedResourceLoader::revalidateResource):
44956        (WebCore::CachedResourceLoader::loadResource):
44957        * loader/cache/CachedResourceLoader.h:
44958        * loader/cache/CachedSVGDocument.cpp:
44959        (WebCore::CachedSVGDocument::CachedSVGDocument):
44960        * loader/cache/CachedSVGDocument.h:
44961        * loader/cache/CachedScript.cpp:
44962        (WebCore::CachedScript::CachedScript):
44963        * loader/cache/CachedScript.h:
44964        * loader/cache/CachedTextTrack.cpp:
44965        (WebCore::CachedTextTrack::CachedTextTrack):
44966        * loader/cache/CachedTextTrack.h:
44967        * loader/cache/CachedXSLStyleSheet.cpp:
44968        (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
44969        * loader/cache/CachedXSLStyleSheet.h:
44970        * loader/cache/MemoryCache.cpp:
44971        (WebCore::MemoryCache::add):
44972        (WebCore::MemoryCache::revalidationSucceeded):
44973        (WebCore::MemoryCache::resourceForURL):
44974        (WebCore::MemoryCache::resourceForRequest):
44975        (WebCore::MemoryCache::addImageToCache):
44976        (WebCore::MemoryCache::removeImageFromCache):
44977        (WebCore::MemoryCache::evict):
44978        (WebCore::MemoryCache::removeResourcesWithOrigin):
44979        (WebCore::MemoryCache::getOriginsWithCache):
44980        (WebCore::MemoryCache::removeUrlFromCache):
44981        (WebCore::MemoryCache::removeRequestFromCache):
44982        (WebCore::MemoryCache::removeRequestFromCacheImpl):
44983        (WebCore::MemoryCache::crossThreadRemoveRequestFromCache):
44984        (WebCore::MemoryCache::getStatistics):
44985        (WebCore::MemoryCache::setDisabled):
44986        * loader/cache/MemoryCache.h:
44987        * platform/CrossThreadCopier.cpp:
44988        * platform/CrossThreadCopier.h:
44989        * platform/network/cf/ResourceRequest.h:
44990        (WebCore::ResourceRequest::ResourceRequest):
44991        * rendering/RenderSnapshottedPlugIn.cpp:
44992        (WebCore::RenderSnapshottedPlugIn::updateSnapshot):
44993        * testing/Internals.cpp:
44994        (WebCore::Internals::isLoadingFromMemoryCache):
44995
449962014-03-03  Sam Weinig  <sam@webkit.org>
44997
44998        Fix the iOS Simulator build.
44999
45000        * WebCore.exp.in:
45001
450022014-03-03  Myles C. Maxfield  <mmaxfield@apple.com>
45003
45004        Space between double underlines does not scale with font size
45005        https://bugs.webkit.org/show_bug.cgi?id=129521
45006
45007        Reviewed by Simon Fraser.
45008
45009        This patch moves the logic about how far to draw the second underline (when text-decoration-style: double
45010        is specified) from InlineTextBox to GraphicsContext, because GraphicsContext is the authoritative source
45011        about how thick underlines should be. The space between the two underlines is set to the thickness of
45012        each of the underlines.
45013
45014        This patch also deletes some unused code in InlineTextBox that was never getting triggered, in addition
45015        to unifying drawLineForText with drawLinesForText. This didn't have any performance impact in my testing.
45016
45017        Test: fast/css3-text/css3-text-decoration/text-decoration-style-double-space-scales.html
45018
45019        * platform/graphics/GraphicsContext.h: drawLineForText takes a boolean for if we should draw double
45020        underlines.
45021        * platform/graphics/cg/GraphicsContextCG.cpp:
45022        (WebCore::GraphicsContext::drawLineForText):
45023        (WebCore::GraphicsContext::drawLinesForText):
45024        * platform/graphics/cairo/GraphicsContextCairo.cpp:
45025        (WebCore::GraphicsContext::drawLineForText):
45026        * platform/graphics/wince/GraphicsContextWinCE.cpp:
45027        (WebCore::GraphicsContext::drawLineForText):
45028        * rendering/InlineTextBox.cpp: Use new boolean argument
45029        (WebCore::drawSkipInkUnderline):
45030        (WebCore::InlineTextBox::paintDecoration):
45031
450322014-02-28  Chris Fleizach  <cfleizach@apple.com>
45033
45034        AX: Support IOS Accessibility in WK2
45035        https://bugs.webkit.org/show_bug.cgi?id=129527
45036
45037        Reviewed by Sam Weinig.
45038
45039        Update the iOS wrapper so that it can convert points to screen space in WebKit2.
45040
45041        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
45042        (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
45043        (-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]):
45044
450452014-03-03  Martin Hock  <mhock@apple.com>
45046
45047        Add support for sessions to MemoryCache.
45048        https://bugs.webkit.org/show_bug.cgi?id=127794
45049
45050        Reviewed by Sam Weinig.
45051
45052        * WebCore.exp.in:
45053        * editing/DeleteButtonController.cpp:
45054        (WebCore::DeleteButtonController::createDeletionUI): Initialize CachedImage with sessionID.
45055        * html/DOMURL.cpp:
45056        (WebCore::DOMURL::revokeObjectURL): Remove URL from MemoryCache for all sessions.
45057        * inspector/InspectorPageAgent.cpp:
45058        (WebCore::InspectorPageAgent::cachedResource): Pass sessionID to MemoryCache.
45059        * inspector/InspectorResourceAgent.cpp:
45060        (WebCore::InspectorResourceAgent::replayXHR): Ditto.
45061        * loader/DocumentLoader.cpp:
45062        (WebCore::areAllLoadersPageCacheAcceptable): Ditto.
45063        * loader/FrameLoader.cpp:
45064        (WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads): Ditto.
45065        * loader/ImageLoader.cpp:
45066        (WebCore::ImageLoader::updateFromElement): Initialize CachedImage with sessionID.
45067        * loader/archive/cf/LegacyWebArchive.cpp:
45068        (WebCore::LegacyWebArchive::create): Pass sessionID to MemoryCache.
45069        * loader/cache/CachedCSSStyleSheet.cpp:
45070        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet): Constructor takes sessionID.
45071        * loader/cache/CachedCSSStyleSheet.h:
45072        * loader/cache/CachedFont.cpp: Ditto.
45073        (WebCore::CachedFont::CachedFont):
45074        * loader/cache/CachedFont.h:
45075        * loader/cache/CachedImage.cpp: Ditto.
45076        (WebCore::CachedImage::CachedImage):
45077        * loader/cache/CachedImage.h:
45078        * loader/cache/CachedRawResource.cpp: Ditto.
45079        (WebCore::CachedRawResource::CachedRawResource):
45080        * loader/cache/CachedRawResource.h:
45081        * loader/cache/CachedResource.cpp: Ditto.
45082        (WebCore::CachedResource::CachedResource):
45083        (WebCore::CachedResource::~CachedResource): Pass sessionID to MemoryCache.
45084        * loader/cache/CachedResource.h:
45085        (WebCore::CachedResource::sessionID):
45086        * loader/cache/CachedResourceLoader.cpp:
45087        (WebCore::createResource): Constructors take sessionID.
45088        (WebCore::CachedResourceLoader::sessionID): Retrieve sessionID from page.
45089        (WebCore::CachedResourceLoader::requestUserCSSStyleSheet): Pass sessionID to MemoryCache.
45090        (WebCore::CachedResourceLoader::requestResource): Initialize CachedCSSStyleSheet with sessionID.
45091        (WebCore::CachedResourceLoader::revalidateResource): Initialize cached resource with sessionID.
45092        (WebCore::CachedResourceLoader::loadResource): Pass sessionID to MemoryCache and initialize cached resource with sessionID.
45093        * loader/cache/CachedResourceLoader.h:
45094        * loader/cache/CachedSVGDocument.cpp: Constructor takes sessionID.
45095        (WebCore::CachedSVGDocument::CachedSVGDocument):
45096        * loader/cache/CachedSVGDocument.h:
45097        * loader/cache/CachedScript.cpp: Ditto.
45098        (WebCore::CachedScript::CachedScript):
45099        * loader/cache/CachedScript.h:
45100        * loader/cache/CachedTextTrack.cpp: Ditto.
45101        (WebCore::CachedTextTrack::CachedTextTrack):
45102        * loader/cache/CachedTextTrack.h:
45103        * loader/cache/CachedXSLStyleSheet.cpp: Ditto.
45104        (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
45105        * loader/cache/CachedXSLStyleSheet.h:
45106        * loader/cache/MemoryCache.cpp:
45107        (WebCore::MemoryCache::getSessionMap): Retrieve CachedResourceMap based on sessionID.
45108        (WebCore::MemoryCache::add): Use sessionID from CachedResource parameter.
45109        (WebCore::MemoryCache::revalidationSucceeded): Add sessionID parameter.
45110        (WebCore::MemoryCache::resourceForURL): Ditto.
45111        (WebCore::MemoryCache::resourceForRequest): Ditto, also move impl into impl method.
45112        (WebCore::MemoryCache::resourceForRequestImpl): Add CachedResourceMap parameter.
45113        (WebCore::MemoryCache::addImageToCache): Use default sessionID.
45114        (WebCore::MemoryCache::removeImageFromCache): Ditto.
45115        (WebCore::MemoryCache::evict): Use sessionID from CachedResource parameter.
45116        (WebCore::MemoryCache::removeResourcesWithOrigin): Iterate through all CachedResourceMaps.
45117        (WebCore::MemoryCache::getOriginsWithCache): Ditto.
45118        (WebCore::MemoryCache::removeUrlFromCache): Add sessionID parameter.
45119        (WebCore::MemoryCache::removeRequestFromCache): Ditto.
45120        (WebCore::MemoryCache::removeRequestFromCacheImpl): Ditto.
45121        (WebCore::MemoryCache::removeRequestFromSessionCaches): Iterate through all CachedResourceMaps.
45122        (WebCore::MemoryCache::crossThreadRemoveRequestFromCache): Add sessionID parameter.
45123        (WebCore::MemoryCache::getStatistics): Iterate through all CachedResourceMaps.
45124        (WebCore::MemoryCache::setDisabled): Ditto.
45125        * loader/cache/MemoryCache.h: Create another level for cache.
45126        * platform/CrossThreadCopier.cpp: Allow copying SessionIDs across threads.
45127        (WebCore::SessionID>::copy):
45128        * platform/CrossThreadCopier.h:
45129        * platform/network/cf/ResourceRequest.h:
45130        (WebCore::ResourceRequest::ResourceRequest): Remove trailing whitespace.
45131        * rendering/RenderSnapshottedPlugIn.cpp:
45132        (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Initialize CachedImage with sessionID.
45133        * testing/Internals.cpp:
45134        (WebCore::Internals::isLoadingFromMemoryCache): Pass sessionID to MemoryCache.
45135
451362014-03-03  Andreas Kling  <akling@apple.com>
45137
45138        Remove unused DataView code from JSDOMBinding.h
45139        <https://webkit.org/b/129616>
45140
45141        Reviewed by Antti Koivisto.
45142
45143        * bindings/js/JSDOMBinding.h:
45144
451452014-03-03  Simon Fraser  <simon.fraser@apple.com>
45146
45147        Allow overflow-scroll to be one-finger scrolled until we hook up UIScrollViews
45148        https://bugs.webkit.org/show_bug.cgi?id=129621
45149
45150        Reviewed by Benjamin Poulain.
45151
45152        Temporary change to allow overflow:scroll to be scrolled in iOS WK2.
45153
45154        * rendering/RenderLayer.cpp:
45155        (WebCore::RenderLayer::hasAcceleratedTouchScrolling):
45156
451572014-03-03  Antti Koivisto  <antti@apple.com>
45158
45159        Find results on simple lines are not marked correctly
45160        https://bugs.webkit.org/show_bug.cgi?id=129586
45161
45162        Reviewed by Andreas Kling.
45163
45164        Tests: editing/text-iterator/count-mark-lineboxes.html
45165               editing/text-iterator/count-mark-simple-lines.html
45166               
45167        TextIterator operating on simple lines failed to take the end of the range into account.
45168        This also causes performance issues on long documents as range traversals would miss the end
45169        node and end up going through the entire document.
45170
45171        * editing/TextIterator.cpp:
45172        (WebCore::TextIterator::handleTextNode):
45173        
45174            Stop when hitting the range end on simple text nodes.
45175
45176        (WebCore::SimplifiedBackwardsTextIterator::handleTextNode):
45177        
45178            Use hasRenderedText test instead of linebox-only firstTextBox.
45179
45180        * testing/Internals.cpp:
45181        (WebCore::Internals::countMatchesForText):
45182        * testing/Internals.h:
45183        * testing/Internals.idl:
45184        
45185            Add testing interface for counting and marking matches.
45186
451872014-03-03  Benjamin Poulain  <benjamin@webkit.org>
45188
45189        SelectorQuery failing RightMostWithIdMatch are compiling their selectors for each execution
45190        https://bugs.webkit.org/show_bug.cgi?id=129601
45191
45192        Reviewed by Andreas Kling.
45193
45194        This caused a regression after r164924 for documents in quirks mode. Since those always fail
45195        selectorForIdLookup(), they ended up compiling the selector every time they were called.
45196
45197        * dom/SelectorQuery.cpp:
45198        (WebCore::SelectorDataList::execute):
45199
452002014-03-01  Jer Noble  <jer.noble@apple.com>
45201
45202        [Mac] Crash in MediaPlayer::rateChanged()
45203        https://bugs.webkit.org/show_bug.cgi?id=129548
45204
45205        Reviewed by Darin Adler.
45206
45207        WTF::bind will automatically ref the parameters added to it. But MediaPlayerPrivate-
45208        AVFoundation and -MediaSOurceAVFObjC are not RefCounted, so by the time the bound
45209        function is called, the underlying objects may have been freed.
45210
45211        Replace or augment callOnMainThread arguments with lambdas and weakPtrs so that
45212        if the argument has been destroyed, its methods will not be called.
45213
45214        Make the MediaPlayerPrivateAVFoundation::Notification function type a std::function:
45215        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
45216        (WebCore::MediaPlayerPrivateAVFoundation::Notification::Notification):
45217        (WebCore::MediaPlayerPrivateAVFoundation::Notification::function):
45218
45219        Make createWeakPtr() public so that it can be called from non-class methods:
45220        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
45221        (WebCore::MediaPlayerPrivateAVFoundationObjC::createWeakPtr): 
45222        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
45223        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::createWeakPtr): 
45224
45225        Use a weakPtr to abort callOnMainThread() if the object has been destroyed:
45226        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
45227        (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
45228        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
45229        (WebCore::CMTimebaseEffectiveRateChangedCallback):
45230        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::play):
45231        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pause):
45232        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance):
45233
452342014-02-28  Jer Noble  <jer.noble@apple.com>
45235
45236        [MSE] YouTube videos fail to play
45237        https://bugs.webkit.org/show_bug.cgi?id=129525
45238
45239        Reviewed by Darin Adler.
45240
45241        Test: media/media-source/media-source-fudge-factor.html
45242
45243        Add a very simple playability metric to SourceBuffer. Track the number of seconds buffered
45244        and use that metric to determine whether the MediaSource has buffered enough data to play
45245        through.
45246
45247        * Modules/mediasource/MediaSource.cpp:
45248        (WebCore::MediaSource::currentTime): Added simple accessor.
45249        (WebCore::MediaSource::monitorSourceBuffers): Replace the functor-based iterators with lambdas.
45250        (WebCore::MediaSource::addSourceBuffer): Drive-by fix; only add new source buffers to the
45251            activeSourceBuffers list if those buffers are actually active.
45252        * Modules/mediasource/MediaSource.h:
45253        * Modules/mediasource/SourceBuffer.cpp:
45254        (WebCore::SourceBuffer::SourceBuffer): Initialize new ivars.
45255        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Measure the number of seconds buffered.
45256        (WebCore::SourceBuffer::monitorBufferingRate): Use a simple Exponential moving average to
45257            track the buffering rate.
45258        (WebCore::SourceBuffer::hasCurrentTime): Return true if the current time is within 1/24 s
45259            of a buffered range.
45260        (WebCore::SourceBuffer::hasFutureTime): Moved from MediaSource.
45261        (WebCore::SourceBuffer::canPlayThrough): Return true if the buffering rate is > 1s per
45262            second, or if the rate is sufficient to keep up over the remaining time.
45263        * Modules/mediasource/SourceBuffer.h:
45264
452652014-03-03  Bear Travis  <betravis@adobe.com>
45266
45267        [CSS Shapes] Serialize circle positions
45268        https://bugs.webkit.org/show_bug.cgi?id=129404
45269
45270        Reviewed by Dirk Schulze.
45271
45272        Circle positions should always be present when serialized, and should
45273        only have the 2 or 4-valued form. Keywords are converted to percentages
45274        and simplified where possible. This patch adds some additional processing
45275        that converts the parsed position into the serialized format, before
45276        converting it to text. See http://dev.w3.org/csswg/css-shapes/#basic-shape-serialization.
45277
45278        Updated existing parsing tests.
45279
45280        * css/CSSBasicShapes.cpp:
45281        (WebCore::serializePositionOffset): Convert a position offset to a serialized string.
45282        The offset must be a pair, as generated by buildSerializablePositionOffset.
45283        (WebCore::buildSerializablePositionOffset): Generates a keyword + offset pair for each
45284        position offset. The keywords may later be dropped during serialization.
45285        (WebCore::CSSBasicShapeCircle::cssText): Use the new serialization methods.
45286
452872014-03-03  Lorenzo Tilve  <ltilve@igalia.com>
45288
45289        Optimize StylePropertiesSet::findPropertyIndex() to improve CSS properties performance
45290        https://bugs.webkit.org/show_bug.cgi?id=129605
45291
45292        Reviewed by Andreas Kling.
45293
45294        Merged from Blink (patch by Mikhail Pozdnyakov):
45295        https://src.chromium.org/viewvc/blink?view=revision&revision=167325
45296
45297        Avoid checking whether 'StylePropertiesSet' is mutable and accesing directly to its
45298        data members to achieve performance improvements
45299
45300        Before the optimization applied:
45301            mean: 3064.8337171934063 runs/s
45302            median: 3097.5899379343855 runs/s
45303            stdev: 66.89274074044187 runs/s
45304            min: 2891.7479324362585 runs/s
45305            max: 3113.288683440125 runs/s
45306
45307        After the optimization applied:
45308            mean: 3343.8356114138105 runs/s
45309            median: 3356.25682957446 runs/s
45310            stdev: 36.297533087489036 runs/s
45311            min: 3238.5468032264243 runs/s
45312            max: 3368.664837531425 runs/s
45313
45314        Performance gain for the average value is approx. 9.1%, in the
45315        range of the 10% - 8.2% for the min and max measured
45316        values (Linux desktop x64).
45317
45318        * css/StyleProperties.cpp:
45319        (WebCore::ImmutableStyleProperties::findPropertyIndex):
45320        (WebCore::MutableStyleProperties::findPropertyIndex):
45321        * css/StyleProperties.h:
45322        (WebCore::toMutableStyleProperties):
45323        (WebCore::toImmutableStyleProperties):
45324        (WebCore::StyleProperties::findPropertyIndex):
45325
453262014-03-03  Brian Burg  <bburg@apple.com>
45327
45328        Unreviewed build fix for Windows after r164986.
45329
45330        * WebCore.vcxproj/build-generated-files.sh: Export WebReplayScripts
45331        so that the build system knows how to find CodeGeneratorReplayInputs.py.
45332
453332014-03-03  Andrei Bucur  <abucur@adobe.com>
45334
45335        [CSS Regions] Overset computation is incorrect in some cases
45336        https://bugs.webkit.org/show_bug.cgi?id=129032
45337
45338        Reviewed by Mihnea Ovidenie.
45339
45340        This patch reworks the way overset is computed for regions and named flows.
45341
45342        1. Regions overflow no longer trigger an overset changed event. This is because
45343        the overflow of a box is contained within the region range of the box. The content
45344        edge should be considered the logical bottom position of the content inside the
45345        flow thread.
45346
45347        2. The regions events logic was moved from RenderFlowThread to RenderNamedFlowThread
45348        and from RenderRegion to RenderNamedFlowFragment (including the regionOverset property).
45349
45350        3. The overset value of the named flow is no longer stored in the named flow. It is
45351        extracted from the overset of the last region in the chain.
45352
45353        4. The regions overset is not computed every time the flow thread is laid out which
45354        should improve performance for flows with many regions. With the patch, each region
45355        computes the overset value during its layout when the flow thread is in the overflow
45356        or the final layout phase.
45357
45358        5. The overset changed event is dispatched only at the end of the layout of the named flows,
45359        after all the region overset changes have been considered. This means that the overset
45360        event can't be dispatched in the middle of the auto-height processing algorithm that
45361        requires multiple layout passes for the flow threads.
45362
45363        However, the region layout update event dispatch timing was not changed, it is dispatched
45364        every time the flow thread has a layout. This preserves the current behavior of the event.
45365
45366        Tests: The old tests were modified to take into account the change.
45367
45368        * dom/Element.cpp:
45369        (WebCore::Element::webkitRegionOverset):
45370        * dom/WebKitNamedFlow.cpp:
45371        (WebCore::WebKitNamedFlow::overset):
45372        * inspector/InspectorCSSAgent.cpp:
45373        (WebCore::InspectorCSSAgent::buildArrayForRegions):
45374        * rendering/FlowThreadController.cpp:
45375        (WebCore::FlowThreadController::updateFlowThreadsIntoMeasureContentPhase):
45376        * rendering/RenderBlock.cpp:
45377        (WebCore::RenderBlock::computeOverflow):
45378        * rendering/RenderFlowThread.cpp:
45379        (WebCore::RenderFlowThread::RenderFlowThread):
45380        (WebCore::RenderFlowThread::layout):
45381        * rendering/RenderFlowThread.h:
45382        * rendering/RenderNamedFlowFragment.cpp:
45383        (WebCore::RenderNamedFlowFragment::layoutBlock):
45384        (WebCore::RenderNamedFlowFragment::setRegionOversetState):
45385        (WebCore::RenderNamedFlowFragment::regionOversetState):
45386        (WebCore::RenderNamedFlowFragment::updateOversetState):
45387        * rendering/RenderNamedFlowFragment.h:
45388        * rendering/RenderNamedFlowThread.cpp:
45389        (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
45390        (WebCore::RenderNamedFlowThread::computeOverflow):
45391        (WebCore::RenderNamedFlowThread::layout):
45392        (WebCore::RenderNamedFlowThread::dispatchNamedFlowEvents):
45393        (WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEventIfNeeded):
45394        (WebCore::RenderNamedFlowThread::dispatchRegionOversetChangeEventIfNeeded):
45395        * rendering/RenderNamedFlowThread.h:
45396        There's a new field called m_flowContentBottom that tracks the content bottom of the flow thread
45397        after layout. This value is used to compute the overset value of the regions because it's not
45398        affected by relative positioning or visual overflow such as shadows.
45399        * rendering/RenderRegion.cpp:
45400        * rendering/RenderRegion.h:
45401
454022014-03-03  Tomas Popela  <tpopela@redhat.com>
45403
45404        [GTK] CodeGeneratorGObject.pm remove usage of undefined variable
45405        https://bugs.webkit.org/show_bug.cgi?id=129602
45406
45407        Reviewed by Martin Robinson.
45408
45409        Remove usage of undefined variable hdrPropIncludes in CodeGeneratorGObject.pm
45410
45411        * bindings/scripts/CodeGeneratorGObject.pm:
45412        (WriteData):
45413
454142014-03-03  Brian Burg  <bburg@apple.com>
45415
45416        Web Replay: upstream input storage, capture/replay machinery, and inspector domain
45417        https://bugs.webkit.org/show_bug.cgi?id=128782
45418
45419        Reviewed by Timothy Hatcher, Joseph Pecoraro, and Andreas Kling.
45420
45421        No new tests yet, as they rely on infrastructure tracked in https://webkit.org/b/129190.
45422
45423        Replayable executions are organized into ReplaySessions, which can
45424        contain several ReplaySessionSegments that divide overall execution
45425        at main frame navigation boundaries. NondeterministicInput subclasses
45426        are stored in SegmentedInputStorage according to the input's InputQueue.
45427
45428        Capture and playback are controlled at the page granularity by the Page's
45429        ReplayController. The controller knows how to create new segments, replay to
45430        arbitrary positions in the ReplaySession, and track the active InputCursor.
45431
45432        The capturing and replaying input cursor subclasses encapsulate state for
45433        storing new inputs and loading/dispatching saved inputs, respectively.
45434
45435        The ReplayAgent and associated inspector protocol domain is the friendly
45436        public API for programmatically capturing and replaying sessions.
45437
45438        * DerivedSources.make: Add replay inputs code generation target. Add the
45439        replay domain specification to the list of inspector domains.
45440
45441        * ForwardingHeaders/replay/EncodedValue.h: Added.
45442        * WebCore.xcodeproj/project.pbxproj: Add many files, and export
45443        `WebReplayScripts` environment variable to DerivedSources.make.
45444
45445        * inspector/InspectorController.cpp: Add the replay agent.
45446        (WebCore::InspectorController::InspectorController):
45447
45448        * inspector/InspectorInstrumentation.cpp:
45449        Add events for segment lifecycle events, and loading/unloading of sessions
45450        and segments, and capture/replay progress events. The replay controller
45451        also needs to know about detached and committed frames.
45452
45453        (WebCore::InspectorInstrumentation::frameDetachedFromParentImpl):
45454        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
45455        (WebCore::InspectorInstrumentation::sessionCreatedImpl):
45456        (WebCore::InspectorInstrumentation::sessionLoadedImpl):
45457        (WebCore::InspectorInstrumentation::sessionModifiedImpl):
45458        (WebCore::InspectorInstrumentation::segmentCreatedImpl):
45459        (WebCore::InspectorInstrumentation::segmentCompletedImpl):
45460        (WebCore::InspectorInstrumentation::segmentLoadedImpl):
45461        (WebCore::InspectorInstrumentation::segmentUnloadedImpl):
45462        (WebCore::InspectorInstrumentation::captureStartedImpl):
45463        (WebCore::InspectorInstrumentation::captureStoppedImpl):
45464        (WebCore::InspectorInstrumentation::playbackStartedImpl):
45465        (WebCore::InspectorInstrumentation::playbackPausedImpl):
45466        (WebCore::InspectorInstrumentation::playbackHitPositionImpl):
45467        (WebCore::InspectorInstrumentation::replayAgentEnabled):
45468        * inspector/InspectorInstrumentation.h:
45469        (WebCore::InspectorInstrumentation::replayAgentEnabled):
45470        (WebCore::InspectorInstrumentation::sessionCreated):
45471        (WebCore::InspectorInstrumentation::sessionLoaded):
45472        (WebCore::InspectorInstrumentation::sessionModified):
45473        (WebCore::InspectorInstrumentation::segmentCreated):
45474        (WebCore::InspectorInstrumentation::segmentCompleted):
45475        (WebCore::InspectorInstrumentation::segmentLoaded):
45476        (WebCore::InspectorInstrumentation::segmentUnloaded):
45477        (WebCore::InspectorInstrumentation::captureStarted):
45478        (WebCore::InspectorInstrumentation::captureStopped):
45479        (WebCore::InspectorInstrumentation::playbackStarted):
45480        (WebCore::InspectorInstrumentation::playbackPaused):
45481        (WebCore::InspectorInstrumentation::playbackHitPosition):
45482
45483        * inspector/InspectorReplayAgent.cpp: Added.
45484        (WebCore::buildInspectorObjectForPosition):
45485        (WebCore::buildInspectorObjectForInput):
45486        (WebCore::buildInspectorObjectForSession):
45487        (WebCore::SerializeInputToJSONFunctor::SerializeInputToJSONFunctor):
45488        (WebCore::SerializeInputToJSONFunctor::~SerializeInputToJSONFunctor):
45489        (WebCore::SerializeInputToJSONFunctor::operator()):
45490        (WebCore::SerializeInputToJSONFunctor::returnValue):
45491        (WebCore::buildInspectorObjectForSegment):
45492        (WebCore::InspectorReplayAgent::InspectorReplayAgent):
45493        (WebCore::InspectorReplayAgent::~InspectorReplayAgent):
45494        (WebCore::InspectorReplayAgent::sessionState):
45495        (WebCore::InspectorReplayAgent::didCreateFrontendAndBackend):
45496        (WebCore::InspectorReplayAgent::willDestroyFrontendAndBackend):
45497        (WebCore::InspectorReplayAgent::frameNavigated):
45498        (WebCore::InspectorReplayAgent::frameDetached):
45499        (WebCore::InspectorReplayAgent::sessionCreated):
45500        (WebCore::InspectorReplayAgent::sessionModified):
45501        (WebCore::InspectorReplayAgent::sessionLoaded):
45502        (WebCore::InspectorReplayAgent::segmentCreated):
45503        (WebCore::InspectorReplayAgent::segmentCompleted):
45504        (WebCore::InspectorReplayAgent::segmentLoaded):
45505        (WebCore::InspectorReplayAgent::segmentUnloaded):
45506        (WebCore::InspectorReplayAgent::captureStarted):
45507        (WebCore::InspectorReplayAgent::captureStopped):
45508        (WebCore::InspectorReplayAgent::playbackStarted):
45509        (WebCore::InspectorReplayAgent::playbackPaused):
45510        (WebCore::InspectorReplayAgent::playbackHitPosition):
45511        (WebCore::InspectorReplayAgent::startCapturing):
45512        (WebCore::InspectorReplayAgent::stopCapturing):
45513        (WebCore::InspectorReplayAgent::replayToPosition):
45514        (WebCore::InspectorReplayAgent::replayToCompletion):
45515        (WebCore::InspectorReplayAgent::pausePlayback):
45516        (WebCore::InspectorReplayAgent::cancelPlayback):
45517        (WebCore::InspectorReplayAgent::switchSession):
45518        (WebCore::InspectorReplayAgent::insertSessionSegment):
45519        (WebCore::InspectorReplayAgent::removeSessionSegment):
45520        Provide a public API for modifying sessions. This is the backend support
45521        for user editing of replay sessions to add/remove specific segments.
45522
45523        (WebCore::InspectorReplayAgent::findSession):
45524        (WebCore::InspectorReplayAgent::findSegment):
45525        (WebCore::InspectorReplayAgent::getAvailableSessions):
45526        (WebCore::InspectorReplayAgent::getSerializedSession):
45527        (WebCore::InspectorReplayAgent::getSerializedSegment):
45528        Most of the replay protocol domain speaks in terms of sesssion and
45529        segment identifiers. These functions return the actual data associated
45530        with these identifiers.
45531
45532        * inspector/InspectorReplayAgent.h: Added.
45533        * inspector/InstrumentingAgents.cpp:
45534        (WebCore::InstrumentingAgents::InstrumentingAgents):
45535        (WebCore::InstrumentingAgents::reset):
45536        * inspector/InstrumentingAgents.h:
45537        (WebCore::InstrumentingAgents::inspectorReplayAgent): Added.
45538        (WebCore::InstrumentingAgents::setInspectorReplayAgent): Added.
45539        * inspector/protocol/Replay.json: Added.
45540
45541        * page/Page.cpp:
45542        (WebCore::Page::Page):
45543        * page/Page.h:
45544        (WebCore::Page::replayController): Added.
45545        * platform/Logging.h: Add WebReplay logging channel.
45546        * replay/AllReplayInputs.h: Added. Simplifies importing all input definitions.
45547
45548        * replay/CapturingInputCursor.cpp: Added.
45549        (WebCore::CapturingInputCursor::CapturingInputCursor):
45550        (WebCore::CapturingInputCursor::~CapturingInputCursor):
45551        (WebCore::CapturingInputCursor::create):
45552        (WebCore::CapturingInputCursor::storeInput):
45553        (WebCore::CapturingInputCursor::loadInput):
45554        (WebCore::CapturingInputCursor::uncheckedLoadInput):
45555        * replay/CapturingInputCursor.h: Added.
45556
45557        * replay/EventLoopInput.h:
45558        (WebCore::EventLoopInputBase::EventLoopInputBase):
45559        (WebCore::EventLoopInputBase::timestamp):
45560        (WebCore::EventLoopInputBase::setTimestamp): Support deserialization.
45561
45562        * replay/EventLoopInputDispatcher.cpp: Added. This class encapsulates the timers
45563        and measurements used to dispatch event loop inputs during replay.
45564
45565        (WebCore::EventLoopInputDispatcher::EventLoopInputDispatcher):
45566        (WebCore::EventLoopInputDispatcher::run):
45567        (WebCore::EventLoopInputDispatcher::pause):
45568        (WebCore::EventLoopInputDispatcher::timerFired):
45569        (WebCore::EventLoopInputDispatcher::dispatchInputSoon):
45570        (WebCore::EventLoopInputDispatcher::dispatchInput):
45571        * replay/EventLoopInputDispatcher.h: Added.
45572        (WebCore::EventLoopInputDispatcherClient::EventLoopInputDispatcherClient):
45573        (WebCore::EventLoopInputDispatcherClient::~EventLoopInputDispatcherClient):
45574
45575        * replay/FunctorInputCursor.h: Added.
45576        (WebCore::FunctorInputCursor::~FunctorInputCursor):
45577        (WebCore::FunctorInputCursor::forEachInputInQueue):
45578        (WebCore::FunctorInputCursor::FunctorInputCursor):
45579        (WebCore::FunctorInputCursor::storeInput):
45580        (WebCore::FunctorInputCursor::loadInput):
45581        (WebCore::FunctorInputCursor::uncheckedLoadInput):
45582
45583        * replay/ReplayController.cpp: Added.
45584        (WebCore::ReplayController::ReplayController):
45585        (WebCore::ReplayController::switchSession):
45586        (WebCore::ReplayController::createSegment):
45587        (WebCore::ReplayController::completeSegment):
45588        (WebCore::ReplayController::loadSegment):
45589        (WebCore::ReplayController::unloadSegment):
45590        (WebCore::ReplayController::startCapturing):
45591        (WebCore::ReplayController::stopCapturing):
45592        (WebCore::ReplayController::startPlayback):
45593        (WebCore::ReplayController::pausePlayback):
45594        (WebCore::ReplayController::cancelPlayback):
45595        (WebCore::ReplayController::replayToPosition):
45596        (WebCore::ReplayController::frameDetached):
45597        (WebCore::ReplayController::frameNavigated):
45598        (WebCore::ReplayController::loadedSession):
45599        (WebCore::ReplayController::loadedSegment):
45600        (WebCore::ReplayController::activeInputCursor):
45601        (WebCore::ReplayController::dispatcher):
45602        (WebCore::ReplayController::willDispatchInput):
45603        (WebCore::ReplayController::didDispatchInput):
45604        (WebCore::ReplayController::didDispatchFinalInput):
45605        * replay/ReplayController.h: Added.
45606        (WebCore::ReplayPosition::ReplayPosition):
45607        (WebCore::ReplayPosition::operator<):
45608        (WebCore::ReplayPosition::operator==):
45609
45610        * replay/ReplayInputCreationMethods.cpp: Added.
45611        Static factory implementations for inputs belong here.
45612        (WebCore::InitialNavigation::createFromPage):
45613
45614        * replay/ReplayInputDispatchMethods.cpp: Added.
45615        All dispatch() implementations for generated replay inputs belong here.
45616        (WebCore::BeginSegmentSentinel::dispatch):
45617        (WebCore::EndSegmentSentinel::dispatch):
45618        (WebCore::InitialNavigation::dispatch):
45619
45620        * replay/ReplayInputTypes.cpp:
45621        (WebCore::ReplayInputTypes::ReplayInputTypes):
45622        * replay/ReplayInputTypes.h: Define strings for WebCore inputs.
45623
45624        * replay/ReplaySession.cpp: Added.
45625        (WebCore::ReplaySession::create):
45626        (WebCore::ReplaySession::ReplaySession):
45627        (WebCore::ReplaySession::~ReplaySession):
45628        (WebCore::ReplaySession::appendSegment):
45629        (WebCore::ReplaySession::insertSegment):
45630        (WebCore::ReplaySession::removeSegment):
45631        * replay/ReplaySession.h: Added.
45632        (WebCore::ReplaySession::identifier):
45633        (WebCore::ReplaySession::timestamp):
45634        (WebCore::ReplaySession::size):
45635        (WebCore::ReplaySession::at):
45636        (WebCore::ReplaySession::begin):
45637        (WebCore::ReplaySession::end):
45638
45639        * replay/ReplaySessionSegment.cpp: Added.
45640        (WebCore::ReplaySessionSegment::create):
45641        (WebCore::ReplaySessionSegment::ReplaySessionSegment):
45642        (WebCore::ReplaySessionSegment::~ReplaySessionSegment):
45643        (WebCore::ReplaySessionSegment::createCapturingCursor):
45644        (WebCore::ReplaySessionSegment::createReplayingCursor):
45645        (WebCore::ReplaySessionSegment::createFunctorCursor):
45646        * replay/ReplaySessionSegment.h: Added.
45647        (WebCore::ReplaySessionSegment::identifier):
45648        (WebCore::ReplaySessionSegment::timestamp):
45649
45650        * replay/ReplayingInputCursor.cpp: Added.
45651        (WebCore::ReplayingInputCursor::ReplayingInputCursor):
45652        (WebCore::ReplayingInputCursor::~ReplayingInputCursor):
45653        (WebCore::ReplayingInputCursor::create):
45654        (WebCore::ReplayingInputCursor::storeInput):
45655        (WebCore::ReplayingInputCursor::loadInput):
45656        (WebCore::ReplayingInputCursor::uncheckedLoadInput):
45657        * replay/ReplayingInputCursor.h: Added.
45658
45659        * replay/SegmentedInputStorage.cpp: Added.
45660        (WebCore::queueTypeToLogPrefix):
45661        (WebCore::jsonStringForInput):
45662        (WebCore::offsetForInputQueue):
45663        (WebCore::SegmentedInputStorage::SegmentedInputStorage):
45664        (WebCore::SegmentedInputStorage::~SegmentedInputStorage):
45665        (WebCore::SegmentedInputStorage::load):
45666        (WebCore::SegmentedInputStorage::store):
45667        (WebCore::SegmentedInputStorage::queueSize):
45668        * replay/SegmentedInputStorage.h: Added.
45669
45670        * replay/SerializationMethods.cpp: Added.
45671        Specializations of EncodingTraits for WebCore types belong here.
45672
45673        (JSC::EncodingTraits<NondeterministicInputBase>::encodeValue):
45674        (JSC::EncodingTraits<NondeterministicInputBase>::decodeValue):
45675        (JSC::EncodingTraits<SecurityOrigin>::encodeValue):
45676        (JSC::EncodingTraits<SecurityOrigin>::decodeValue):
45677        (JSC::EncodingTraits<URL>::encodeValue):
45678        (JSC::EncodingTraits<URL>::decodeValue):
45679        * replay/SerializationMethods.h: Added.
45680        * replay/WebInputs.json: Added.
45681        In this inital patch, we define BeginSegmentSentinel,
45682        EndSegmentSentinel, and InitialNavigation inputs.
45683
456842014-03-03  Antoine Quint  <graouts@webkit.org>
45685
45686        Respect SVG fragment identifiers in <img> src attribute
45687        https://bugs.webkit.org/show_bug.cgi?id=129387
45688
45689        Reviewed by Dirk Schulze.
45690
45691        Following Dirk Schulze's suggestion, we set the URL on the SVGImage itself and handle the URL's
45692        fragment identifier at draw time in the SVGImage itself, which will provide a sounder base for
45693        handling of fragment identifier in SVG resource URLs in CSS properties, and should also deal
45694        with the crasher reported in http://webkit.org/b/129498 since there is a guaranteed Frame at the
45695        time we call SVGImage::draw().
45696
45697        * svg/graphics/SVGImage.cpp:
45698        (WebCore::SVGImage::draw):
45699        * svg/graphics/SVGImage.h:
45700        * svg/graphics/SVGImageForContainer.cpp:
45701        * svg/graphics/SVGImageForContainer.h:
45702
457032014-03-03  Laszlo Vidacs  <lvidacs.u-szeged@partner.samsung.com>
45704
45705        Move function calls outside loop in dom
45706        https://bugs.webkit.org/show_bug.cgi?id=126525
45707
45708        Reviewed by Csaba Osztrogonác.
45709
45710        Store the result of length() in a local variable and use it in each iteration.
45711
45712        * dom/DOMImplementation.cpp:
45713        (WebCore::DOMImplementation::isXMLMIMEType):
45714        * dom/ElementData.cpp:
45715        (WebCore::UniqueElementData::UniqueElementData):
45716        * dom/EventContext.cpp:
45717        (WebCore::TouchEventContext::checkReachability):
45718
457192014-03-03  Tomas Popela  <tpopela@redhat.com>
45720
45721        [GTK] webkit_dom_range_compare_boundary_points fails when 0 is passed as how parameter
45722        https://bugs.webkit.org/show_bug.cgi?id=129145
45723
45724        Reviewed by Carlos Garcia Campos.
45725
45726        While generating GObject DOM API the generator should skip non pointer
45727        types while generating the g_return_val_if_fail macro.
45728        This will avoid the situation when Range.START_TO_START is defined as 0,
45729        thus the webkit_dom_range_compare_boundary_points function will fail
45730        everytime it is called with 0 as how value.
45731
45732        * bindings/scripts/CodeGeneratorGObject.pm:
45733        (GenerateFunction):
45734
457352014-03-03  Jozsef Berta  <jberta.u-szeged@partner.samsung.com>
45736
45737        [cmake] *Names.cpp file should be regenerated after touching StaticString.pm
45738        https://bugs.webkit.org/show_bug.cgi?id=129031
45739
45740        Reviewed by Csaba Osztrogonác.
45741
45742        * CMakeLists.txt: Added make_names.pl dependencies: bindings/scripts/Hasher.pm and bindings/scripts/StaticString.pm
45743
457442014-03-03  Xabier Rodriguez Calvar  <calvaris@igalia.com>
45745
45746        [GTK] Multimedia controls captions icon needs its own metaphor
45747        https://bugs.webkit.org/show_bug.cgi?id=129091
45748
45749        Reviewed by Martin Robinson.
45750
45751        As we got the new icon created, we used it with a fallback to the
45752        old icon to keep run-time compatibility.
45753
45754        No new tests, current ones suffice.
45755
45756        * platform/gtk/RenderThemeGtk.cpp:
45757        (WebCore::RenderThemeGtk::paintMediaToggleClosedCaptionsButton):
45758        Replicated RenderThemeGtk::paintMediaButton to check for the
45759        necessary icon first and do the fallback to the old and stock
45760        icons.
45761        * platform/gtk/RenderThemeGtk2.cpp:
45762        (WebCore::getStockIconForWidgetType): Added ASSERT for non-empty
45763        icon name.
45764        (WebCore::getStockSymbolicIconForWidgetType): Check for non empty
45765        icon name before calling getStockIconForWidgetType. Fixed coding
45766        style.
45767        * platform/gtk/RenderThemeGtk3.cpp:
45768        (WebCore::getStockIconForWidgetType): Added ASSERT for non-empty
45769        icon name.
45770        (WebCore::getStockSymbolicIconForWidgetType): Check for non empty
45771        icon name before calling getStockIconForWidgetType. Fixed coding
45772        style.
45773
457742014-03-02  Benjamin Poulain  <benjamin@webkit.org>
45775
45776        Add a fallback path for compiling the remaining attribute checkers
45777        https://bugs.webkit.org/show_bug.cgi?id=129580
45778
45779        Reviewed by Darin Adler.
45780
45781        The remaining attribute checkers appear to be less common than the simple value match.
45782        This patch adds them to SelectorCompiler for completeness but no attempt is made at optimizing them,
45783        they all default to function calls.
45784
45785        If the assumption that those selectors are not common turn out to be incorrect, we should see
45786        the function calls in profiles and optimize them as needed.
45787
45788        * css/SelectorChecker.cpp:
45789        (WebCore::attributeValueMatches):
45790        If we get anything but attribute match here, something has gone horribly wrong. Update the code
45791        to fail if that were to happen.
45792
45793        * cssjit/SelectorCompiler.cpp:
45794        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
45795        Add the missing match type to the selector fragment.
45796
45797        Begin, End, Contain cannot match an empty value per specification. We can test that at compile time
45798        and fail immediately. See http://www.w3.org/TR/css3-selectors/#attribute-substrings
45799
45800        List has the extra requirement that a value containing a space does not match anything. It also cannot
45801        match with an empty string. See http://www.w3.org/TR/css3-selectors/#attribute-representation
45802
45803        (WebCore::SelectorCompiler::attributeValueBeginsWith):
45804        (WebCore::SelectorCompiler::attributeValueContains):
45805        (WebCore::SelectorCompiler::attributeValueEndsWith):
45806        (WebCore::SelectorCompiler::attributeValueMatchHyphenRule):
45807        (WebCore::SelectorCompiler::attributeValueSpaceSeparetedListContains):
45808        The slow fallbacks.
45809
45810        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
45811        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):
45812        A generic code generator making function call to match an attribute value.
45813
458142014-02-25  Andreas Kling  <akling@apple.com>
45815
45816        JSDOMWindow::commonVM() should return a reference.
45817        <https://webkit.org/b/129293>
45818
45819        Since this function always returns a VM and never null, make it
45820        return a reference instead. There are more VM getters that never
45821        return null, but I tried to keep the patch from snowballing.
45822
45823        Reviewed by Geoff Garen.
45824
458252014-03-02  Timothy Hatcher  <timothy@apple.com>
45826
45827        Remove ASSERT in ~IDBRequest since it is firing during legitimate uses in Web Inspector.
45828
45829        Adding the ASSERT back is tracked by https://webkit.org/b/129593.
45830
45831        https://bugs.webkit.org/show_bug.cgi?id=129328
45832
45833        Reviewed by Sam Weinig.
45834
45835        * Modules/indexeddb/IDBRequest.cpp:
45836        (WebCore::IDBRequest::~IDBRequest):
45837
458382014-03-02  Commit Queue  <commit-queue@webkit.org>
45839
45840        Unreviewed, rolling out r164961.
45841        http://trac.webkit.org/changeset/164961
45842        https://bugs.webkit.org/show_bug.cgi?id=129596
45843
45844        Caused many assertion failures (Requested by ap on #webkit).
45845
45846        * css/SelectorChecker.cpp:
45847        (WebCore::attributeValueMatches):
45848        * cssjit/SelectorCompiler.cpp:
45849        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
45850        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
45851
458522014-03-02  Darin Adler  <darin@apple.com>
45853
45854        Streamline use of TextIterator, cutting down includes and use of soon-to-be-deleted functions
45855        https://bugs.webkit.org/show_bug.cgi?id=129592
45856
45857        Reviewed by Sam Weinig.
45858
45859        * WebCore.exp.in: Re-sorted this file. Not sure how it got unsorted.
45860
45861        * accessibility/AccessibilityObject.cpp:
45862        (WebCore::AccessibilityObject::stringForVisiblePositionRange): Call TextIterator::text
45863        instead of TextIterator::length. Also removed unneeded special case for empty string
45864        and exception code.
45865        (WebCore::AccessibilityObject::lengthForVisiblePositionRange): Ditto.
45866
45867        * accessibility/AccessibilityObject.h: Include TextIteratorBehavior.h instead of
45868        TextIterator.h.
45869
45870        * accessibility/AccessibilityRenderObject.cpp: Include TextIterator.h.
45871
45872        * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: Removed unneeded
45873        TextIterator.h include.
45874
45875        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
45876        (-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]): Call
45877        TextIterator::text instead of TextIterator::length.
45878
45879        * dom/Element.cpp: Include TextIterator.h.
45880
45881        * dom/Node.cpp: Include Range.h.
45882
45883        * dom/Position.cpp:
45884        (WebCore::Position::isCandidate): Cast to RenderBlockFlow since that's what the
45885        type check above does. Use a return statement instead of an else for better flow.
45886        (WebCore::Position::leadingWhitespacePosition): Call
45887        deprecatedIsCollapsibleWhitespace by its new name (newly deprecated).
45888        (WebCore::Position::trailingWhitespacePosition): Ditto.
45889
45890        * dom/Range.cpp:
45891        (WebCore::Range::firstNode): Added a FIXME about code that clearly does not
45892        belong. This is something we really need to fix.
45893
45894        * editing/AlternativeTextController.cpp: Include TextIterator.h.
45895        * editing/ApplyStyleCommand.cpp: Ditto.
45896
45897        * editing/CompositeEditCommand.cpp:
45898        (WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit): Call
45899        deprecatedIsCollapsibleWhitespace by its new name (newly deprecated).
45900
45901        * editing/Editor.h: Include TextIteratorBehavior.h instead of TextIterator.h.
45902
45903        * editing/HTMLInterchange.cpp:
45904        (WebCore::convertHTMLTextToInterchangeFormat): Call
45905        deprecatedIsCollapsibleWhitespace by its new name (newly deprecated).
45906
45907        * editing/SpellingCorrectionCommand.cpp: Include TextIterator.h.
45908
45909        * editing/TextIterator.h: Moved isCollapsibleWhitespace from here into
45910        htmlediting.h and renamed it deprecatedIsCollapsibleWhitespace.
45911
45912        * editing/TextIterator.cpp: Call
45913        deprecatedIsCollapsibleWhitespace by its new name (newly deprecated).
45914
45915        * editing/TypingCommand.cpp: Include TextIterator.h.
45916
45917        * editing/VisibleUnits.cpp:
45918        (WebCore::previousBoundary): Call TextIterator::text instead of
45919        TextIterator::length.
45920        (WebCore::nextBoundary): Ditto.
45921
45922        * editing/htmlediting.cpp: Include TextIterator.h.
45923
45924        * editing/htmlediting.h: Removed non-helpful section comments.
45925        Added FIXME about isWhitespace. Added deprecatedIsCollapsibleWhitespace,
45926        formerly not deprecated and in TextIterator.h.
45927
45928        * editing/markup.cpp: Include TextIterator.h.
45929
45930        * html/HTMLTextAreaElement.cpp: Include TextIterator.h.
45931
45932        * page/ContextMenuController.cpp:
45933        (WebCore::selectionContainsPossibleWord): Call TextIterator::text
45934        instead of TextIterator::length and TextIterator::characterAt.
45935
45936        * page/EventHandler.cpp: Sorted conditional includes alphabetically by condition.
45937
45938        * platform/mac/HTMLConverter.mm:
45939        (+[WebHTMLConverter editingAttributedStringFromRange:]): Call TextIterator::text
45940        instead of TextIterator::length.
45941
459422014-03-02  Benjamin Poulain  <benjamin@webkit.org>
45943
45944        Add a fallback path for compiling the remaining attribute checkers
45945        https://bugs.webkit.org/show_bug.cgi?id=129580
45946
45947        Reviewed by Darin Adler.
45948
45949        The remaining attribute checkers appear to be less common than the simple value match.
45950        This patch adds them to SelectorCompiler for completeness but no attempt is made at optimizing them,
45951        they all default to function calls.
45952
45953        If the assumption that those selectors are not common turn out to be incorrect, we should see
45954        the function calls in profiles and optimize them as needed.
45955
45956        * css/SelectorChecker.cpp:
45957        (WebCore::attributeValueMatches):
45958        If we get anything but attribute match here, something has gone horribly wrong. Update the code
45959        to fail if that were to happen.
45960
45961        * cssjit/SelectorCompiler.cpp:
45962        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
45963        Add the missing match type to the selector fragment.
45964
45965        Begin, End, Contain cannot match an empty value per specification. We can test that at compile time
45966        and fail immediately. See http://www.w3.org/TR/css3-selectors/#attribute-substrings
45967
45968        List has the extra requirement that a value containing a space does not match anything. It also cannot
45969        match with an empty string. See http://www.w3.org/TR/css3-selectors/#attribute-representation
45970
45971        (WebCore::SelectorCompiler::attributeValueBeginsWith):
45972        (WebCore::SelectorCompiler::attributeValueContains):
45973        (WebCore::SelectorCompiler::attributeValueEndsWith):
45974        (WebCore::SelectorCompiler::attributeValueMatchHyphenRule):
45975        (WebCore::SelectorCompiler::attributeValueSpaceSeparetedListContains):
45976        The slow fallbacks.
45977
45978        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
45979        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):
45980        A generic code generator making function call to match an attribute value.
45981
459822014-03-02  Darin Adler  <darin@apple.com>
45983
45984        Fix build for case-sensitive file systems.
45985
45986        * platform/UserActivity.h: Runloop -> RunLoop.
45987
459882014-03-02  Gavin Barraclough  <barraclough@apple.com>
45989
45990        HysteresisTimer should use WebCore::Timer
45991        https://bugs.webkit.org/show_bug.cgi?id=129587
45992
45993        Reviewed by Sam Weinig.
45994
45995        * platform/HysteresisActivity.h:
45996        (WebCore::HysteresisActivity::HysteresisActivity):
45997        (WebCore::HysteresisActivity::hysteresisTimerFired):
45998            - RunLoop::Timer -> WebCore::Timer.
45999        * platform/UserActivity.h:
46000
460012014-03-02  Darin Adler  <darin@apple.com>
46002
46003        Split TextIteratorBehavior into a separate header
46004        https://bugs.webkit.org/show_bug.cgi?id=129578
46005
46006        Reviewed by Sam Weinig.
46007
46008        This is in preparation to greatly cut down on includes of TextIterator.h.
46009
46010        * GNUmakefile.list.am: Added new header.
46011        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
46012        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
46013        * WebCore.xcodeproj/project.pbxproj: Ditto.
46014
46015         * editing/FindOptions.h: Changed typedef to unsigned char;
46016        there is no reason to store these in a 32-bit integer.
46017
46018         * editing/TextIterator.h: Added include of TextIteratorBehavior.h
46019        and moved comments about the meanings of flag bits to their definition.
46020
46021        * editing/TextIteratorBehavior.h: Added.
46022
46023        * WebCore.exp.in: Updated for type changes.
46024
460252014-03-02  Enrica Casucci  <enrica@apple.com>
46026
46027        [iOS WebKit2] Form controls handling
46028        https://bugs.webkit.org/show_bug.cgi?id=129344
46029        <rdar://problem/16053643>
46030
46031        Reviewed by Simon Fraser.
46032
46033        Updates localizable strings and adds some exports.
46034
46035        * English.lproj/Localizable.strings:
46036        * WebCore.exp.in:
46037        * WebCore.xcodeproj/project.pbxproj:
46038
460392014-03-02  Benjamin Poulain  <bpoulain@apple.com>
46040
46041        [iOS][WK2] Pages using tiled compositing layers allocate too many tiles on zoom
46042        https://bugs.webkit.org/show_bug.cgi?id=129471
46043
46044        Reviewed by Simon Fraser.
46045
46046        A few issues with TileController were causing sublayers of the root layers
46047        to tile incorrect surfaces on zoom.
46048
46049        First, the exposedRect API was not updating the sublayers. The layers go correctly
46050        into tiling mode, but the tiles cover the full document instead of the visible area.
46051
46052        The other major issue was the margins being applied to the coverage size in document
46053        coordinates. Since each margin is 512px, the total coverage size after zoom was
46054        gigantic.
46055
46056        To solve this, this patch switch from the exposedRect API to the generic concept
46057        of VisibleExtentContentRect introduced for iOS WebKit1.
46058
46059        * WebCore.exp.in:
46060        * platform/ScrollView.h:
46061        Define a VisibleExtentContentRect on the scrollview itself when there is no
46062        platformWidget().
46063        The case with inside frame is untested due to stability issues :(.
46064        (see <rdar://problem/16199219>)
46065
46066        * platform/graphics/ca/mac/TileController.mm:
46067        (WebCore::TileController::computeTileCoverageRect):
46068        Remove the margin from the tile coverage.
46069
46070        On iOS, m_tileCoverage is always zero at the moment. Previously, the tile coverage
46071        was artificially extended by the margins. With the margins removed, I temporarily added
46072        a factor of 1.5.
46073        ViewUpdateDispatcher has all the information to compute a great tile coverage, I will need
46074        a follow up patch to fix that.
46075
46076        * platform/ios/ScrollViewIOS.mm:
46077        (WebCore::ScrollView::visibleExtentContentRect):
46078        (WebCore::ScrollView::setVisibleExtentContentRect):
46079
460802014-03-02  Darin Adler  <darin@apple.com>
46081
46082        Sort Mac platform export files so they merge better
46083        https://bugs.webkit.org/show_bug.cgi?id=129581
46084
46085        Reviewed by Sam Weinig.
46086
46087        * WebCore.exp.in: Ran the new sort-export-file on this.
46088
460892014-03-02  Dean Jackson  <dino@apple.com>
46090
46091        Add protected casting to FilterOperation classes.
46092        https://bugs.webkit.org/show_bug.cgi?id=124062
46093
46094        Reviewed by Sam Weinig.
46095
46096        Use the type cast macro generators to produce some toFilterOperation-style
46097        functions, and then use them in our PlatformCA filter code.
46098
46099        Test: css3/filters/animation-from-initial-values-with-color-matrix.html
46100
46101        * platform/graphics/ca/mac/PlatformCAFiltersMac.mm: Use the toFilterOperation methods, in
46102        some cases removing the unnecessary double cast.
46103        (PlatformCAFilters::filterValueForOperation):
46104        (PlatformCAFilters::colorMatrixValueForFilter):
46105        * platform/graphics/filters/FilterOperation.cpp:
46106        (WebCore::BasicColorMatrixFilterOperation::blend):
46107        (WebCore::BasicColorMatrixFilterOperation::operator==): Move this to the .cpp file so it can use the casting methods.
46108        (WebCore::BasicComponentTransferFilterOperation::blend):
46109        (WebCore::BasicComponentTransferFilterOperation::operator==): Ditto.
46110        * platform/graphics/filters/FilterOperation.h: Add the casting macros.
46111
461122014-03-02  Yoav Weiss  <yoav@yoav.ws>
46113
46114        Fix srcset related bugs
46115        https://bugs.webkit.org/show_bug.cgi?id=129539
46116
46117        Fixed a bug reported against Blink's srcset implementation at https://code.google.com/p/chromium/issues/detail?id=347998
46118        When both src and srcset had only 1x descriptors and the DPR was higher than 1, the src's resource was picked.
46119
46120        Also fixed the invalid descriptor handling, which wasn't aligned with the spec, and therefore was not as forward compatible as it should be.
46121        Invalid descriptors caused the entire resource to be ignored, rather than just the descriptors themselves.
46122
46123        Reviewed by Andreas Kling.
46124
46125        Tests: fast/hidpi/image-srcset-invalid-descriptor.html
46126               fast/hidpi/image-srcset-src-selection-1x-both.html
46127
46128        * html/parser/HTMLParserIdioms.cpp:
46129        (WebCore::parseDescriptors):
46130        (WebCore::parseImagesWithScaleFromSrcsetAttribute):
46131        (WebCore::bestFitSourceForImageAttributes):
46132
461332014-03-01  Gavin Barraclough  <barraclough@apple.com>
46134
46135        Split UserActivity, simplify PageThrottler
46136        https://bugs.webkit.org/show_bug.cgi?id=129551
46137
46138        Reviewed by Darin Adler.
46139
46140        The class UserActivity currently implements two things – a hysteresis mechanism, and
46141        an abstraction of NSActivity controlled by that mechanism. PageThrottler implements
46142        its own hysteresis mechanism, which directly controls DOM timer throttling and also
46143        controls a couple of UserActivities, giving a total of 3 separate hysteresis mechanisms,
46144        layered two deep.
46145
46146        Split UserActivity into three, with HysteresisActivity implementing an abstract hysteresis
46147        mechanism, UserActivity::Impl controlling the NSActivity, and then UserActivity combining
46148        these two back together. The interface to UserActivity is unchanged.
46149
46150        Remove PageThrottler's bespoke hysteresis, replacing it with a use of HysteresisActivity.
46151        Replace the two UserActivities with a single UserActivity::Impl, so there are no longer
46152        layered hysteresis mechanisms.
46153
46154        * WebCore.exp.in:
46155            - exports changed.
46156        * WebCore.xcodeproj/project.pbxproj:
46157            - added HysteresisActivity.h.
46158        * page/PageThrottler.cpp:
46159        (WebCore::PageThrottler::PageThrottler):
46160            - if the page starts visible, begin activity. If it starts hidden throttle DOM timers.
46161        (WebCore::PageThrottler::hiddenPageDOMTimerThrottlingStateChanged):
46162            - when the DOM timer throttling setting changes, make sure we update.
46163        (WebCore::PageThrottler::incrementActivityCount):
46164        (WebCore::PageThrottler::decrementActivityCount):
46165            - when m_activityCount changes update the hysteresis state.
46166        (WebCore::PageThrottler::updateHysteresis):
46167        (WebCore::PageThrottler::setViewState):
46168            - when IsVisuallyIdle changes update the hysteresis state.
46169        (WebCore::PageThrottler::started):
46170        (WebCore::PageThrottler::stopped):
46171            - callbacks from HysteresisActivity, these control m_activity and DOM timer throttling.
46172        * page/PageThrottler.h:
46173        (WebCore::PageThrottler::didReceiveUserInput):
46174        (WebCore::PageThrottler::pluginDidEvaluate):
46175            - call impulse to temporarily enable the activity.
46176        * platform/HysteresisActivity.h: Copied from Source/WebCore/platform/UserActivity.h.
46177        (WebCore::HysteresisActivity::HysteresisActivity):
46178            - constructor takes a delegate optionally a timeout.
46179        (WebCore::HysteresisActivity::start):
46180            - start activity immediately. If stopped, call started method on delegate. If in timeout period, cancel the timer.
46181        (WebCore::HysteresisActivity::stop):
46182            - stop activity after hysteresis. If started, initiate timeout period.
46183        (WebCore::HysteresisActivity::impulse):
46184            - ensure activity for at least the timeout period.
46185        (WebCore::HysteresisActivity::hysteresisTimerFired):
46186            - delayed stop - when the timer fires call stopped on the delegate.
46187        * platform/UserActivity.cpp:
46188        (WebCore::UserActivity::Impl::Impl):
46189        (WebCore::UserActivity::Impl::beginActivity):
46190        (WebCore::UserActivity::Impl::endActivity):
46191            - nop implementation.
46192        (WebCore::UserActivity::UserActivity):
46193            - UserActivity maintains existing interface with hysteresis.
46194        (WebCore::UserActivity::started):
46195        (WebCore::UserActivity::stopped):
46196            - callbacks from HysteresisTimer; forward to Impl.
46197        * platform/UserActivity.h:
46198        * platform/mac/UserActivityMac.mm:
46199        (WebCore::UserActivity::Impl::Impl):
46200            - UserActivity::Impl, abstraction for NSActivity without added hysteresis.
46201        (WebCore::UserActivity::Impl::beginActivity):
46202            - allocate NSActivity.
46203        (WebCore::UserActivity::Impl::endActivity):
46204            - release NSActivity.
46205
462062014-03-02  Brian Burg  <bburg@apple.com>
46207
46208        DocumentLoader should keep maps of ResourceLoaders instead of sets
46209        https://bugs.webkit.org/show_bug.cgi?id=129388
46210
46211        Reviewed by Darin Adler.
46212
46213        For web replay, we need to be able to pull a ResourceLoader instance by
46214        identifier from the DocumentLoader. This is easy to do if we convert
46215        ResourceLoaderSet to ResourceLoaderMap, keyed by the loader's identifier.
46216
46217        Added assertions whenever adding or removing from the map to ensure
46218        that we don't try to add duplicates or resources with zero identifiers.
46219
46220        No new tests required. No functionality was added.
46221
46222        * loader/DocumentLoader.cpp:
46223        (WebCore::cancelAll):
46224        (WebCore::setAllDefersLoading):
46225        (WebCore::areAllLoadersPageCacheAcceptable):
46226        (WebCore::DocumentLoader::addSubresourceLoader):
46227        (WebCore::DocumentLoader::removeSubresourceLoader):
46228        (WebCore::DocumentLoader::addPlugInStreamLoader):
46229        (WebCore::DocumentLoader::removePlugInStreamLoader):
46230        (WebCore::DocumentLoader::subresourceLoaderFinishedLoadingOnePart):
46231        * loader/DocumentLoader.h:
46232        * loader/NetscapePlugInStreamLoader.cpp:
46233        (WebCore::NetscapePlugInStreamLoader::create): Only add the loader
46234        to the document loader's map if it initialized successfully.
46235        The old code was probably leaking resource loaders that failed to
46236        initialize.
46237
46238        * loader/mac/DocumentLoaderMac.cpp:
46239        (WebCore::scheduleAll):
46240        (WebCore::unscheduleAll):
46241
462422014-03-02  Dirkjan Ochtman  <d.ochtman@activevideo.com>
46243
46244        Support ENABLE_ENCRYPTED_MEDIA in cmake builds
46245        https://bugs.webkit.org/show_bug.cgi?id=129575
46246
46247        Reviewed by Philippe Normand.
46248
46249        No new tests, only fixes the build.
46250
46251        * CMakeLists.txt:
46252        Add support for ENABLE_ENCRYPTED_MEDIA.
46253        * Modules/encryptedmedia/MediaKeySession.cpp:
46254        (WebCore::MediaKeySession::close):
46255        Assign nullptr instead of 0 to OwnPtr to appease gcc-4.7.
46256
462572014-03-01  Tim Horton  <timothy_horton@apple.com>
46258
46259        WebKit2 View Gestures (Smart Magnification): Support for iOS
46260        https://bugs.webkit.org/show_bug.cgi?id=129146
46261        <rdar://problem/16032668>
46262
46263        Reviewed by Benjamin Poulain.
46264
46265        * WebCore.exp.in:
46266        Add an export.
46267
462682014-03-01  Commit Queue  <commit-queue@webkit.org>
46269
46270        Unreviewed, rolling out r164929 and r164934.
46271        http://trac.webkit.org/changeset/164929
46272        http://trac.webkit.org/changeset/164934
46273        https://bugs.webkit.org/show_bug.cgi?id=129570
46274
46275        Caused assertions on two srcset tests (Requested by ap on
46276        #webkit).
46277
46278        * html/parser/HTMLParserIdioms.cpp:
46279        (WebCore::isHTMLSpaceOrComma):
46280        (WebCore::parseImagesWithScaleFromSrcsetAttribute):
46281        (WebCore::bestFitSourceForImageAttributes):
46282
462832014-03-01  Dan Bernstein  <mitz@apple.com>
46284
46285        Build fix.
46286
46287        * html/parser/HTMLParserIdioms.cpp: Removed an unused function.
46288
462892014-03-01  David Kilzer  <ddkilzer@apple.com>
46290
46291        Ensure keySplines is valid in SMIL animations
46292        <http://webkit.org/b/129547>
46293        <rdar://problem/15676128>
46294
46295        Reviewed by Darin Adler.
46296
46297        Merged from Blink (patch by Philip Rogers):
46298        https://src.chromium.org/viewvc/blink?revision=156452&view=revision
46299        http://crbug.com/276111
46300
46301            This patch fixes a crash in SMIL animations when keySplines are not
46302            specified. The SMIL spec is clear on this:
46303            http://www.w3.org/TR/2001/REC-smil-animation-20010904/#AnimFuncCalcMode
46304            "If there are any errors in the keyTimes specification (bad values,
46305            too many or too few values), the animation will have no effect."
46306
46307            This patch simply checks that keyTimes is not empty. Previously,
46308            splinesCount was set to be m_keySplines.size() + 1 in
46309            SVGAnimationElement.cpp; this patch changes splinesCount to be equal
46310            to m_keySplines.size() to make the logic easier to follow and to
46311            match other checks in SVGAnimationElement::startedActiveInterval.
46312
46313        Test: svg/animations/animate-keysplines-crash.html
46314
46315        * svg/SVGAnimationElement.cpp:
46316        (WebCore::SVGAnimationElement::startedActiveInterval):
46317
463182014-03-01  Benjamin Poulain  <benjamin@webkit.org>
46319
46320        Tighten minimumRegisterRequirements()
46321        https://bugs.webkit.org/show_bug.cgi?id=129538
46322
46323        Reviewed by Andreas Kling.
46324
46325        Fix small things that made minimumRegisterRequirements() a little optimistic
46326        when dealing with attributes.
46327
46328        Test: fast/selectors/adjacent-descendant-tail-register-requirement.html
46329
46330        * cssjit/SelectorCompiler.cpp:
46331        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
46332        Attribute Set does not do value matching, the case sensitive value matching is irrelevant
46333        The problem is that flag is also used by minimumRegisterRequirements()
46334        to find if one more register is needed.
46335
46336        Set the flag to case sensitive to avoid reserving one extra register.
46337
46338        (WebCore::SelectorCompiler::minimumRegisterRequirements):
46339        Use a new backtrackingFlag to know if there is a descendant tail, thus a backtracking register
46340        reserved.
46341        This is better than using the backtracking action because the backtracking chain could be
46342        an adjacent chain inside a descendant chain.
46343
46344        The flags are designed for that, just set one for minimumRegisterRequirements().
46345
46346        The 2 extra registers for the attribute count and address become limited to all attributes
46347        except the last one. We don't keep a copy for the last matching, those registers were not needed.
46348
46349        (WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
46350
463512014-03-01  Pratik Solanki  <psolanki@apple.com>
46352
46353        [iOS] selectionImageForcingBlackText should return autoreleased object
46354        https://bugs.webkit.org/show_bug.cgi?id=129437
46355        <rdar://problem/15810384>
46356
46357        Reviewed by Darin Adler.
46358
46359        * bindings/objc/DOM.mm:
46360        (-[DOMRange renderedImageForcingBlackText:renderedImageForcingBlackText:]):
46361
463622014-03-01  Yoav Weiss  <yoav@yoav.ws>
46363
46364        Fix srcset related bugs
46365        https://bugs.webkit.org/show_bug.cgi?id=129539
46366
46367        Fixed a bug reported against Blink's srcset implementation at https://code.google.com/p/chromium/issues/detail?id=347998
46368        When both src and srcset had only 1x descriptors and the DPR was higher than 1, the src's resource was picked.
46369
46370        Also fixed the invalid descriptor handling, which wasn't aligned with the spec, and therefore was not as forward compatible as it should be.
46371        Invalid descriptors caused the entire resource to be ignored, rather than just the descriptors themselves.
46372
46373        Reviewed by Andreas Kling.
46374
46375        Tests: fast/hidpi/image-srcset-invalid-descriptor.html
46376               fast/hidpi/image-srcset-src-selection-1x-both.html
46377
46378        * html/parser/HTMLParserIdioms.cpp:
46379        (WebCore::parseDescriptors):
46380        (WebCore::parseImagesWithScaleFromSrcsetAttribute):
46381        (WebCore::bestFitSourceForImageAttributes):
46382
463832014-03-01  Darin Adler  <darin@apple.com>
46384
46385        Improve "bad parent" and "bad child list" assertions in line boxes
46386        https://bugs.webkit.org/show_bug.cgi?id=125656
46387
46388        Reviewed by Sam Weinig.
46389
46390        My previous fix for this problem was incomplete. This continuation of that fix addresses
46391        the flaw in the original and adds additional lifetime checking so problems can be seen in
46392        debug builds without a memory debugger.
46393
46394        * rendering/InlineBox.cpp:
46395        (WebCore::InlineBox::assertNotDeleted): Added. Poor man's memory debugging helper.
46396        (WebCore::InlineBox::~InlineBox): Refactored body into a new function named
46397        invalidateParentChildList. Added code to update the deletion sentinel to record
46398        that this object is deleted.
46399        (WebCore::InlineBox::setHasBadParent): Moved here from header since this debug-only
46400        feature does not need to be inlined. Added a call to assertNotDeleted.
46401        (WebCore::InlineBox::invalidateParentChildList): Added. Refactored from the destructor,
46402        this is used by RenderTextLineBoxes.
46403
46404        * rendering/InlineBox.h: Added the deletion sentinel, and called it in the parent
46405        function. Also changed the expansion/setExpansion functions to use the type name "int",
46406        since we don't use the type name "signed" in the WebKit coding style.
46407
46408        * rendering/InlineFlowBox.cpp:
46409        (WebCore::InlineFlowBox::~InlineFlowBox): Call setHasBadChildList rather than doing the
46410        setHasBadParent work on children directly, to avoid code duplication.
46411        (WebCore::InlineFlowBox::setHasBadChildList): Moved here from header. Added code to set
46412        "has bad parent" on all children, something we previously did only on destruction. Also
46413        added assertNotDeleted.
46414        (WebCore::InlineFlowBox::checkConsistency): Added call to assertNotDeleted. Also tweaked
46415        code style and variable names a little bit.
46416
46417        * rendering/InlineFlowBox.h: Moved setHasBadChildList out of the header when it's on.
46418        The empty version for ASSERT_WITH_SECURITY_IMPLICATION_DISABLED is still in the header.
46419
46420        * rendering/RenderTextLineBoxes.cpp:
46421        (WebCore::RenderTextLineBoxes::invalidateParentChildLists): Call the new
46422        InlineBox::invalidateParentChildList function instead of calling setHasBadChildList directly.
46423        The new function checks m_hasBadParent, something we couldn't do here.
46424
464252014-03-01  Benjamin Poulain  <benjamin@webkit.org>
46426
46427        Optimized querySelector(All) when selector contains #id
46428        https://bugs.webkit.org/show_bug.cgi?id=116502
46429
46430        Reviewed by Andreas Kling.
46431
46432        Test: fast/selectors/querySelector-id-filtering.html
46433
46434        The idea of this patch is to perform querySelector on a subtree
46435        rooted at the last element with #id matching. For example, if we have the selector
46436        "#foobar div a", we start by looking for the element with ID foobar in the TreeScope
46437        cache, and start matching the children from there.
46438
46439        The idea comes from Rune for
46440        https://chromium.googlesource.com/chromium/blink/+/1cd83d3588973a02ab15d94b1b05a28620853624
46441        but the code as diverged too much so it had to be reimplemented specifically for WebKit.
46442
46443        * css/CSSSelectorList.cpp:
46444        (WebCore::CSSSelectorList::CSSSelectorList):
46445        (WebCore::CSSSelectorList::operator=):
46446        * css/CSSSelectorList.h:
46447        (WebCore::CSSSelectorList::~CSSSelectorList):
46448        * css/StyleRule.h:
46449        (WebCore::StyleRule::wrapperAdoptSelectorList):
46450        (WebCore::StyleRulePage::wrapperAdoptSelectorList):
46451        * dom/SelectorQuery.cpp:
46452        (WebCore::isSingleTagNameSelector):
46453        (WebCore::isSingleClassNameSelector):
46454        (WebCore::findIdMatchingType):
46455        (WebCore::SelectorDataList::SelectorDataList):
46456        (WebCore::filterRootById):
46457        (WebCore::SelectorDataList::executeCompiledSimpleSelectorChecker):
46458        (WebCore::SelectorDataList::execute):
46459        (WebCore::SelectorQuery::SelectorQuery):
46460        (WebCore::SelectorQueryCache::add):
46461        * dom/SelectorQuery.h:
46462        (WebCore::SelectorDataList::SelectorData::SelectorData):
46463
464642014-02-28  Alexey Proskuryakov  <ap@apple.com>
46465
46466        Node::compareDocumentPosition leaks memory structure
46467        https://bugs.webkit.org/show_bug.cgi?id=120244
46468
46469        Reviewed by Ryosuke Niwa.
46470
46471        * dom/Node.cpp: (WebCore::Node::compareDocumentPosition): Don't do it.
46472
464732014-03-01  David Kilzer  <ddkilzer@apple.com>
46474
46475        Fix lifetime handling of SVGPropertyTearOffs
46476        <http://webkit.org/b/129211>
46477        <rdar://problem/15696025>
46478
46479        Reviewed by Maciej Stachowiak.
46480
46481        Merged from Blink (patch by Ojan Vafai):
46482        https://src.chromium.org/viewvc/blink?revision=157801&view=revision
46483        http://crbug.com/288771
46484
46485            -Replace SVGStaticPropertyWithParentTearOff with SVGMatrixTearOff
46486            since it's only used in that one place. This means we can get rid
46487            of the templatizing and the method pointer.
46488            -Change SVGPropertyTearOff to keep track of it's child tearoffs
46489            and call detachWrapper on its child tearoffs when it's destroyed
46490            or when it's wrapper is detached.
46491            -Have SVGPropertyTearOff hold WeakPtrs to the child tearoffs
46492            to avoid having a cycle.
46493
46494        Test: svg/transforms/svg-matrix-tearoff-crash.html
46495
46496        * GNUmakefile.list.am:
46497        * WebCore.vcxproj/WebCore.vcxproj:
46498        * WebCore.vcxproj/WebCore.vcxproj.filters:
46499        * WebCore.xcodeproj/project.pbxproj:
46500        * bindings/scripts/CodeGeneratorJS.pm:
46501        (NativeToJSValue):
46502        * svg/properties/SVGMatrixTearOff.h: Renamed from Source/WebCore/svg/properties/SVGStaticPropertyWithParentTearOff.h.
46503        (WebCore::SVGMatrixTearOff::create):
46504        (WebCore::SVGMatrixTearOff::commitChange):
46505        (WebCore::SVGMatrixTearOff::SVGMatrixTearOff):
46506        * svg/properties/SVGPropertyTearOff.h:
46507        (WebCore::SVGPropertyTearOff::addChild):
46508        (WebCore::SVGPropertyTearOff::detachChildren):
46509
465102014-03-01  Zan Dobersek  <zdobersek@igalia.com>
46511
46512        Unreviewed build fix after r164913.
46513
46514        * platform/CountedUserActivity.h: Some ports don't (yet) support forwarding headers for WebCore,
46515        so UserActivity.h should be included as non-forwarding.
46516
465172014-03-01  Gavin Barraclough  <barraclough@apple.com>
46518
46519        Change PageActivityAssertionToken to use a WeakPtr
46520        https://bugs.webkit.org/show_bug.cgi?id=129526
46521
46522        Reviewed by Sam Weinig.
46523
46524        PageThrottler effectively implements a bespoke weak pointer mechanism; remove this & just use WeakPtr.
46525
46526        * page/PageActivityAssertionToken.cpp:
46527        (WebCore::PageActivityAssertionToken::PageActivityAssertionToken):
46528        (WebCore::PageActivityAssertionToken::~PageActivityAssertionToken):
46529            - addActivityToken->incrementActivityCount, removeActivityToken->decrementActivityCount
46530        * page/PageActivityAssertionToken.h:
46531            - removed invalidate, made m_throttler a WeakPtr
46532        * page/PageThrottler.cpp:
46533        (WebCore::PageThrottler::PageThrottler):
46534            - initialize m_weakPtrFactory, m_activityCount.
46535        (WebCore::PageThrottler::~PageThrottler):
46536            - removed called to invalidate.
46537        (WebCore::PageThrottler::startThrottleHysteresisTimer):
46538            - m_activityTokens.size()->m_activityCount
46539        (WebCore::PageThrottler::throttleHysteresisTimerFired):
46540            - m_activityTokens.size()->m_activityCount
46541        (WebCore::PageThrottler::incrementActivityCount):
46542            - m_activityTokens.add->++
46543        (WebCore::PageThrottler::decrementActivityCount):
46544            - m_activityTokens.remove->--
46545        * page/PageThrottler.h:
46546        (WebCore::PageThrottler::weakPtr):
46547            - replaced HashSet with WeakPtrFactory & count.
46548
465492014-03-01  Gavin Barraclough  <barraclough@apple.com>
46550
46551        Split UserActivity/CountedUserActivity
46552        https://bugs.webkit.org/show_bug.cgi?id=129520
46553
46554        Reviewed by Sam Weinig.
46555
46556        UserActivity currently provides an interface allowing counted, nested calls to enable/disable.
46557        In some cases it would be easier to use if it were a simpler boolean enabled/disabled interface.
46558
46559        * WebCore.exp.in:
46560            - beginActivity->start, endActivity->stop.
46561        * WebCore.xcodeproj/project.pbxproj:
46562        * page/PageThrottler.cpp:
46563        (WebCore::PageThrottler::PageThrottler):
46564        (WebCore::PageThrottler::~PageThrottler):
46565        (WebCore::PageThrottler::throttlePage):
46566        (WebCore::PageThrottler::unthrottlePage):
46567        (WebCore::PageThrottler::setIsVisuallyIdle):
46568            - beginActivity->increment, endActivity->decrement.
46569        * page/PageThrottler.h:
46570            - UserActivity->CountedUserActivity for m_pageActivity
46571        * platform/CountedUserActivity.h: Copied from Source/WebCore/platform/UserActivity.h.
46572        (WebCore::CountedUserActivity::CountedUserActivity):
46573        (WebCore::CountedUserActivity::increment):
46574        (WebCore::CountedUserActivity::decrement):
46575            - Added, provides counted interface to UserActivity.
46576        * platform/UserActivity.cpp:
46577        (WebCore::UserActivity::UserActivity):
46578            - m_count removed
46579        (WebCore::UserActivity::start):
46580        (WebCore::UserActivity::stop):
46581            - beginActivity->start, endActivity->stop, implentation now empty.
46582        * platform/UserActivity.h:
46583            - beginActivity->start, endActivity->stop, m_count moved to HAVE(NS_ACTIVITY)
46584        * platform/mac/UserActivityMac.mm:
46585        (WebCore::UserActivity::UserActivity):
46586            - m_count->m_started
46587        (WebCore::UserActivity::isValid):
46588            - m_count->m_started
46589        (WebCore::UserActivity::start):
46590        (WebCore::UserActivity::stop):
46591            - beginActivity->start, endActivity->stop, no longer nest
46592
46593
465942014-02-28  Benjamin Poulain  <benjamin@webkit.org>
46595
46596        Caller saved registers can be accidentally discarded when clearing the local stack
46597        https://bugs.webkit.org/show_bug.cgi?id=129532
46598
46599        Reviewed by Andreas Kling.
46600
46601        Tests: fast/selectors/tree-modifying-case-insensitive-selectors.html
46602               fast/selectors/tree-modifying-selectors.html
46603
46604        StackAllocator::discard() no longer make sense now that we can use caller saved regsiter.
46605        We should instead discard everything up to the beginning of the local stack.
46606
46607        * cssjit/SelectorCompiler.cpp:
46608        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
46609        * cssjit/StackAllocator.h:
46610        (WebCore::StackAllocator::popAndDiscardUpTo):
46611
466122014-02-28  Andy Estes  <aestes@apple.com>
46613
46614        [iOS] FrameLoader has a NULL m_progressTracker when initialized with initForSynthesizedDocument()
46615        https://bugs.webkit.org/show_bug.cgi?id=129534
46616
46617        Reviewed by Simon Fraser.
46618
46619        No new tests because TestWebKitAPI does not yet support iOS. See <http://webkit.org/b/129535>.
46620
46621        * loader/FrameLoader.cpp:
46622        (WebCore::FrameLoader::initForSynthesizedDocument): Create a FrameProgressTracker.
46623
466242014-02-28  Sam Weinig  <sam@webkit.org>
46625
46626        ASSERT(isMainThread()) hit under platformUserPreferredLanguages() with WebKit1 and WebKit2 in the same process
46627        https://bugs.webkit.org/show_bug.cgi?id=129528
46628
46629        Reviewed by Andreas Kling.
46630
46631        * platform/mac/Language.mm:
46632        (WebCore::preferredLanguagesMutex):
46633        (WebCore::preferredLanguages):
46634        (+[WebLanguageChangeObserver languagePreferencesDidChange:]):
46635        (WebCore::httpStyleLanguageCode):
46636        (WebCore::platformUserPreferredLanguages):
46637        Add a mutex and do an isolated copy of the strings to allow this function to be called from multiple threads.
46638
466392014-02-28  Dean Jackson  <dino@apple.com>
46640
46641        Crash at ebay.com when viewing auction items at com.apple.WebCore: WebCore::GraphicsContext3D::getExtensions + 10
46642        https://bugs.webkit.org/show_bug.cgi?id=129523
46643
46644        Reviewed by Simon Fraser.
46645
46646        * html/canvas/WebGLRenderingContext.cpp:
46647        (WebCore::WebGLRenderingContext::getSupportedExtensions): Early return if the
46648        context is pending policy resolution.
46649
466502014-02-28  Andreas Kling  <akling@apple.com>
46651
46652        Micro-optimize JSNodeOwner::isReachableFromOpaqueRoots().
46653        <https://webkit.org/b/129518>
46654
46655        Only do image and audio element specific checks for element nodes.
46656        Time spent in here goes from 0.8% to 0.5% on DYEB.
46657
46658        Reviewed by Benjamin Poulain.
46659
46660        * bindings/js/JSNodeCustom.cpp:
46661        (WebCore::isReachableFromDOM):
46662
466632014-02-28  Geoffrey Garen  <ggaren@apple.com>
46664
46665        JSC Assertion failure every time I start Safari (r164846)
46666        https://bugs.webkit.org/show_bug.cgi?id=129510
46667
46668        Reviewed by Mark Hahnenberg.
46669
46670        Take the lock before allocating objects because afterward is too late.
46671
46672        * bindings/js/ScriptController.cpp:
46673        (WebCore::ScriptController::evaluateInWorld):
46674        (WebCore::ScriptController::windowScriptNPObject):
46675        (WebCore::ScriptController::jsObjectForPluginElement):
46676
466772014-02-28  Joseph Pecoraro  <pecoraro@apple.com>
46678
46679        Web Inspector: ASSERT in WebCore::JSDOMWindowBase::supportsRichSourceInfo inspecting iOS
46680        https://bugs.webkit.org/show_bug.cgi?id=129512
46681
46682        Reviewed by Simon Fraser.
46683
46684        * page/PageDebuggable.cpp:
46685        (WebCore::PageDebuggable::connect):
46686        (WebCore::PageDebuggable::disconnect):
46687
466882014-02-28  Anders Carlsson  <andersca@apple.com>
46689
46690        VisitedLinkStore should be able to invalidate link styles for associated pages
46691        https://bugs.webkit.org/show_bug.cgi?id=129515
46692
46693        Reviewed by Dan Bernstein.
46694
46695        * page/Page.cpp:
46696        (WebCore::Page::Page):
46697        Add the VisitedLinkStore if we have one.
46698
46699        (WebCore::Page::~Page):
46700        Remove the VisitedLinkStore if we have one.
46701
46702        * page/VisitedLinkStore.cpp:
46703        (WebCore::VisitedLinkStore::~VisitedLinkStore):
46704        Assert that we don't have any pages.
46705
46706        (WebCore::VisitedLinkStore::addPage):
46707        Add the page to the set.
46708
46709        (WebCore::VisitedLinkStore::removePage):
46710        Remove the page from the set.
46711
46712        (WebCore::VisitedLinkStore::invalidateStylesForAllLinks):
46713        Traverse all the pages and invalidate the style for all links.
46714
46715        (WebCore::VisitedLinkStore::invalidateStylesForLink):
46716        Traverse all the pages and invalidate the style for a given link.
46717
46718        * page/VisitedLinkStore.h:
46719        Add new members.
46720
467212014-02-28  Benjamin Poulain  <bpoulain@apple.com>
46722
46723        [iOS][WK2] highlight rects should never big bigger than the view
46724        https://bugs.webkit.org/show_bug.cgi?id=129472
46725
46726        Reviewed by Enrica Casucci.
46727
46728        * WebCore.exp.in:
46729
467302014-02-28  Beth Dakin  <bdakin@apple.com>
46731
46732        Turn off margin tiles on iOS
46733        https://bugs.webkit.org/show_bug.cgi?id=129509
46734        -and corresponding-
46735        <rdar://problem/16200383>
46736
46737        Reviewed by Simon Fraser.
46738
46739        * page/FrameView.cpp:
46740        (WebCore::FrameView::needsExtendedBackgroundRectForPainting):
46741
467422014-02-28  Zalan Bujtas  <zalan@apple.com>
46743
46744        Subpixel rendering: Add subpixel support to border type of double, groove, ridge, inset and outset.
46745        https://bugs.webkit.org/show_bug.cgi?id=129226
46746
46747        Reviewed by Simon Fraser.
46748
46749        This is the conversion of double, inset, outset, groove and ridge border type
46750        painting to support device pixel precision width/height.
46751
46752        Regression is covered by existing tests.
46753
46754        * rendering/RenderObject.cpp:
46755        (WebCore::RenderObject::drawLineForBoxSide):
46756        * rendering/RenderObject.h:
46757
467582014-02-28  Adenilson Cavalcanti  <cavalcantii@gmail.com>
46759
46760        Filters should test for area instead of single dimension
46761        https://bugs.webkit.org/show_bug.cgi?id=123716
46762
46763        Reviewed by Dirk Schulze.
46764
46765        A filtered SVG element with a sigle dimension bigger than 5000
46766        (counting the margin/border) will fail to render. So an element
46767        with 4000x4000 will render fine, while another with 5000x10
46768        won't. This patch instead tests against the total element area,
46769        which fixes such cases.
46770
46771        It also fixes some layer violations where FilterEffectRenderer and
46772        RenderSVGResourceFilter were directly accessing the maximum filter
46773        size in FilterEffect. Since before a somewhat bigger filter would
46774        be aborted, it required to change the maximum kernel size
46775        for blur filter (some filters are slower to run than others for
46776        bigger SVGs).
46777
46778        Tests: svg/filters/big-height-filter-expected.svg
46779               svg/filters/big-height-filter.svg
46780               svg/filters/big-width-filter-expected.svg
46781               svg/filters/big-width-filter.svg
46782
46783        * platform/graphics/filters/FEGaussianBlur.cpp:
46784        * platform/graphics/filters/FilterEffect.cpp:
46785        (WebCore::FilterEffect::maxFilterArea): New function, returns the
46786        maximum allowed element area (currently is 4096 x 4096).
46787        (WebCore::FilterEffect::isFilterSizeValid): Now it tests for
46788        element area instead of a single dimension. This code is reused by
46789        FilterEffectRenderer.
46790        * platform/graphics/filters/FilterEffect.h:
46791        * rendering/FilterEffectRenderer.cpp:
46792        (WebCore::FilterEffectRenderer::updateBackingStoreRect): Uses the
46793        new function in FilterEffect to test for valid sizes.
46794        (WebCore::FilterEffectRendererHelper::beginFilterEffect): Same case.
46795        * rendering/svg/RenderSVGResourceFilter.cpp:
46796        (WebCore::RenderSVGResourceFilter::fitsInMaximumImageSize): Test
46797        for maximum area and properly changes the scale of transformed
46798        element to fit.
46799
468002014-02-28  Brent Fulgham  <bfulgham@apple.com>
46801
46802        [Mac, iOS] Incorrect ordering of construction arguments for out-of-band text elements
46803        https://bugs.webkit.org/show_bug.cgi?id=129501
46804        <rdar://problem/16198587>
46805
46806        Reviewed by Eric Carlson.
46807
46808        * html/HTMLMediaElement.cpp:
46809        (WebCore::HTMLMediaElement::parseAttribute): Correct order of arguments
46810        to PlatformTextTrack.
46811
468122014-02-28  Bem Jones-Bey  <bjonesbe@adobe.com>
46813
46814        Properly clear m_logicallyLastRun to remove use-after-free possibility
46815        https://bugs.webkit.org/show_bug.cgi?id=129489
46816
46817        Reviewed by David Hyatt.
46818
46819        A use-after-free issue was caught in Blink because m_logicallyLastRun
46820        is not cleared when the item it points to is deleted. Clearing it
46821        turns the use-after-free into a segfault, and prevents any future
46822        use-after-frees from happening.
46823
46824        * platform/text/BidiRunList.h:
46825        (WebCore::BidiRunList<Run>::deleteRuns):
46826
468272014-02-28  Jer Noble  <jer.noble@apple.com>
46828
46829        [Mac] Disambiguate calls to [[window contentView] layer] and [... setLayer:]
46830        https://bugs.webkit.org/show_bug.cgi?id=129491
46831
46832        Reviewed by Alexey Proskuryakov.
46833
46834        -[NSWindow contentView] returns a bare id, leading to ambiguity when calling
46835        certain methods, including -layer and -setLayer:. Resolve the ambiguity by
46836        explicitly casting the -contentView call to a NSView*.
46837
46838        * platform/mac/WebVideoFullscreenController.mm:
46839        (-[WebVideoFullscreenController setupVideoOverlay:]):
46840        (-[WebVideoFullscreenController windowDidLoad]):
46841        (-[WebVideoFullscreenController windowDidExitFullscreen]):
46842
468432014-02-28  Andreas Kling  <akling@apple.com>
46844
46845        MouseEvent.offsetX/Y should just return 0,0 for simulated clicks.
46846        <https://webkit.org/b/129477>
46847
46848        There's no need to compute the exact target-relative coordinates for
46849        simulated mouse events, e.g those fired by HTMLElement.click().
46850
46851        The offsetX/Y properties are not supported by Firefox.
46852
46853        Test: fast/events/relative-offset-of-simulated-click.html
46854
46855        Reviewed by Alexey Proskuryakov.
46856
46857        * dom/MouseRelatedEvent.cpp:
46858        (WebCore::MouseRelatedEvent::offsetX):
46859        (WebCore::MouseRelatedEvent::offsetY):
46860
468612014-02-27  Sergio Villar Senin  <svillar@igalia.com>
46862
46863        [CSS Grid Layout] Fix positioning grid items using named grid lines/areas
46864        https://bugs.webkit.org/show_bug.cgi?id=129372
46865
46866        Reviewed by Darin Adler.
46867
46868        Our code was assuming that a <custom-ident> in
46869        -webkit-grid-{column|row}-{start|end} and
46870        -webkit-grid-{column|row} was always a grid area name. That's
46871        wrong because the <custom-ident> could be also a explicitly named
46872        grid line or the an implicitly named grid line created by a grid
46873        area definition.
46874
46875        The style resolution code was not correct either. This patch fixes
46876        it so it now matches the spec, which means that:
46877        - first we try to match any existing grid area.
46878        - then if there is a named grid line with the name
46879        <custom-ident>-{start|end} for -webkit-grid-{column|row}-{start|end}
46880        defined before the grid area then we use it instead of the grid
46881        area.
46882        - otherwise if there is a named grid line we resolve to the first such line.
46883        - otherwise we treat it as 'auto'.
46884
46885        Fixing this uncovered a bug in GridPosition, we were not using the
46886        name of the stored grid area to check if two GridPositions were
46887        the same.
46888
46889        Tests: fast/css-grid-layout/grid-item-position-changed-dynamic.html
46890               fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html
46891
46892        * css/StyleResolver.cpp:
46893        (WebCore::gridLineDefinedBeforeGridArea): New function to check if
46894        a given named grid line was defined before an implicit named grid
46895        line created by a grid area definition.
46896        (WebCore::StyleResolver::adjustNamedGridItemPosition): New
46897        function that adjusts the position of a GridPosition parsed as a
46898        grid area.
46899        (WebCore::StyleResolver::adjustGridItemPosition): Use the new
46900        function adjustNamedGridItemPosition to adjust the positions of
46901        named grid lines.
46902        * css/StyleResolver.h:
46903        * rendering/RenderGrid.cpp:
46904        (WebCore::RenderGrid::resolveNamedGridLinePositionFromStyle): Use GridPosition:: namespace.
46905        (WebCore::RenderGrid::resolveGridPositionFromStyle): Ditto.
46906        (WebCore::RenderGrid::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition): Ditto.
46907        * rendering/RenderGrid.h:
46908        * rendering/style/GridPosition.h:
46909        (WebCore::GridPosition::adjustGridPositionForRowEndColumnEndSide): Moved from RenderGrid.cpp.
46910        (WebCore::GridPosition::adjustGridPositionForSide): Ditto.
46911        (WebCore::GridPosition::operator==): Use the named grid line to check equality.
46912
469132014-02-28  Zoltan Horvath  <zoltan@webkit.org>
46914
46915        [CSS Shapes] Update line segments for ShapeInside only if the new line is wide enough
46916        https://bugs.webkit.org/show_bug.cgi?id=129461
46917
46918        Reviewed by David Hyatt.
46919
46920        Shape-inside can make a line only narrower than the original line width, thus we don't need
46921        to update the line/shape segments in fitBelowFloats for every single line inside shape-inside.
46922        This patch adds a helper function, which updates the line segments, furthermore it updates the
46923        line segments only when the content would fit without the shape.
46924
46925        No new tests, no behavior change.
46926
46927        * rendering/line/BreakingContextInlineHeaders.h: Use new helper.
46928        (WebCore::updateSegmentsForShapes):
46929        * rendering/line/LineWidth.cpp: Use new helper.
46930        (WebCore::LineWidth::updateLineSegment): Add new helper.
46931        (WebCore::LineWidth::fitBelowFloats):
46932
469332014-02-28  Mario Sanchez Prada  <mario.prada@samsung.com>
46934
46935        paragraphs with different directionality in textarea with unicode-bidi: plaintext are aligned the same
46936        https://bugs.webkit.org/show_bug.cgi?id=71194
46937
46938        Reviewed by David Hyatt.
46939
46940        Merged from Blink r157263 by <igor.o@sisa.samsung.com>
46941        <https://src.chromium.org/viewvc/blink?revision=157263&view=revision>
46942
46943        In the css3-text spec (http://www.w3.org/TR/css3-text/#bidi-linebox):
46944
46945        The start and end edges of a line box are determined by the inline
46946        base direction of the line box. In most cases, this is given by
46947        its containing block's computed ‘direction’. However if its
46948        containing block has ‘unicode-bidi: plaintext’, the inline base
46949        direction the line box must be determined by the base direction of
46950        the bidi paragraph to which it belongs: that is, the bidi
46951        paragraph for which the line box holds content.
46952
46953        This patch just implements the behavior described above modifying
46954        updateLogicalWidthForAlignment and setting the bidi level of the
46955        RootInlineBox.
46956
46957        * rendering/RenderBlockFlow.h:
46958        * rendering/RenderBlockLineLayout.cpp:
46959        (WebCore::RenderBlockFlow::updateLogicalWidthForAlignment):
46960        (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):
46961        (WebCore::RenderBlockFlow::createLineBoxesFromBidiRuns):
46962        (WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
46963        (WebCore::RenderBlockFlow::deleteEllipsisLineBoxes):
46964        (WebCore::RenderBlockFlow::checkLinesForTextOverflow):
46965        (WebCore::RenderBlockFlow::startAlignedOffsetForLine):
46966
469672014-02-28  Jochen Eisinger  <jochen@chromium.org>
46968
46969        Update meta-referrer behavior for invalid policies
46970        https://bugs.webkit.org/show_bug.cgi?id=129475
46971
46972        This patch aligns the behavior with the CSP 1.1 referrer directive,
46973        where the fallback for an invalid value is the "never" policy.
46974
46975        Original patch from Mike West: https://src.chromium.org/viewvc/blink?view=rev&revision=165627
46976
46977        Reviewed by Alexey Proskuryakov.
46978
46979        Test: http/tests/security/referrer-policy-invalid.html
46980
46981        * dom/Document.cpp:
46982        (WebCore::Document::processReferrerPolicy):
46983
469842014-02-28  Daniel Bates  <dabates@apple.com>
46985
46986        SubresourceLoader::didFinishLoading() should not assert when a decode error occurs
46987        https://bugs.webkit.org/show_bug.cgi?id=127029
46988
46989        Reviewed by Darin Adler.
46990
46991        SubresourceLoader::didFinishLoading() can be called for a resource (e.g. an image) that
46992        failed to be decoded or, in the case of an image, whose estimated decoded size exceeds
46993        the maximum decoded size (Settings::maximumDecodedImageSize()).
46994
46995        Test: fast/images/decoded-size-exceeds-max-decoded-size.html
46996
46997        * loader/SubresourceLoader.cpp:
46998        (WebCore::SubresourceLoader::didFinishLoading):
46999
470002014-02-28  Martin Hodovan  <mhodovan@inf.u-szeged.hu>
47001
47002        ASSERTION FAILED: roundedIntPoint(rendererMappedResult) == roundedIntPoint(result) in WebCore::RenderGeometryMap::mapToContainer
47003        https://bugs.webkit.org/show_bug.cgi?id=119626
47004
47005        SVGRenderSupport::mapLocalToContainer() was trying to apply transforms
47006        in the incorrect order. Specifically, it would attempt to apply its
47007        localToParentTransform before its localToBorderBoxTransform. This
47008        was causing an ASSERT to fail when the computed transforms didn't
47009        match up to those computed by RenderGeometryMap.
47010
47011        Backported from Blink: https://codereview.chromium.org/143363004
47012
47013        Reviewed by Simon Fraser.
47014
47015        Test: svg/transforms/svg-geometry-crash.html
47016
47017        * rendering/svg/SVGRenderSupport.cpp:
47018        (WebCore::SVGRenderSupport::mapLocalToContainer):
47019
470202014-02-28  Mihnea Ovidenie  <mihnea@adobe.com>
47021
47022        [CSSRegions] ASSERTION FAILED: !m_regionsInvalidated in RenderFlowThread::regionAtBlockOffset
47023        https://bugs.webkit.org/show_bug.cgi?id=129371
47024
47025        Reviewed by Andrei Bucur.
47026
47027        regionAtBlockOffset method is meant to be used after the flow thread validated
47028        its region chain, otherwise we cannot rely on regionAtBlockOffset to determine correctly
47029        the target region based on the offset in flow thread coordinates.
47030
47031        When the video element is collected in a named flow and displayed in a region, we ensure
47032        that the region's decorations are taken into account to properly position the video.
47033        However, we have to do that only if the named flow regions are validated.
47034
47035        I changed the method cachedRegionForCompositedLayer to check only the "cached" region
47036        for a layer and not update the layer to region mappings before returning the region.
47037        Because method cachedRegionForCompositedLayer does not update the region - layer mappings,
47038        the code does not call regionAtBlockOffset in situations where the region chain is not validated yet.
47039
47040        Test: compositing/regions/video-in-overflow-region.html
47041
47042        * rendering/RenderFlowThread.cpp:
47043        (WebCore::RenderFlowThread::getLayerListForRegion): Make it a getter that relies on
47044        cached information and refrain from updating the mappings. Make it const too.
47045        (WebCore::RenderFlowThread::cachedRegionForCompositedLayer):
47046        * rendering/RenderFlowThread.h:
47047
470482014-02-28  Xabier Rodriguez Calvar  <calvaris@igalia.com>
47049
47050        [GTK] Finetune captions menu as per design team
47051        https://bugs.webkit.org/show_bug.cgi?id=129432
47052
47053        Reviewed by Eric Carlson.
47054
47055        Some design fine tuning of the captions dialog was required.
47056        
47057        No new tests, current suffice.
47058
47059        * Modules/mediacontrols/mediaControlsApple.js:
47060        Added out class.
47061        * Modules/mediacontrols/mediaControlsGtk.js:
47062        (ControllerGtk.prototype.buildCaptionMenu): Setting out class when
47063        menu is going to show overlap the panel right border.
47064        * css/mediaControlsGtk.css:
47065        (video::-webkit-media-controls-closed-captions-container.out):
47066        Setting all borders to 5px;
47067        (video::-webkit-media-controls-closed-captions-container h3):
47068        Reduced font size and increasing top padding.
47069        (video::-webkit-media-controls-closed-captions-container ul):
47070        Increased top padding.
47071
470722014-02-27  Ryosuke Niwa  <rniwa@webkit.org>
47073
47074        Element::attributeChanged shouldn't do any work when attribute value didn't change
47075        https://bugs.webkit.org/show_bug.cgi?id=129467
47076
47077        Reviewed by Geoffrey Garen.
47078
47079        Exit early in childrenChanged when the attribute value didn't change.
47080
47081        * dom/Attr.cpp:
47082        (WebCore::Attr::setValue):
47083        (WebCore::Attr::childrenChanged):
47084        * dom/Element.cpp:
47085        (WebCore::Element::setAttributeInternal):
47086        (WebCore::Element::attributeChanged):
47087        (WebCore::Element::parserSetAttributes):
47088        (WebCore::Element::removeAttributeInternal):
47089        (WebCore::Element::didAddAttribute):
47090        (WebCore::Element::didModifyAttribute):
47091        (WebCore::Element::didRemoveAttribute):
47092        (WebCore::Element::cloneAttributesFromElement):
47093        * dom/Element.h:
47094        * dom/StyledElement.cpp:
47095        (WebCore::StyledElement::attributeChanged):
47096        * dom/StyledElement.h:
47097        * html/HTMLInputElement.cpp:
47098        (WebCore::HTMLInputElement::updateType):
47099        * mathml/MathMLElement.cpp:
47100        (WebCore::MathMLElement::attributeChanged):
47101        * mathml/MathMLElement.h:
47102        * mathml/MathMLSelectElement.cpp:
47103        (WebCore::MathMLSelectElement::attributeChanged):
47104        * mathml/MathMLSelectElement.h:
47105        * svg/SVGElement.cpp:
47106        (WebCore::SVGElement::attributeChanged):
47107        * svg/SVGElement.h:
47108
471092014-02-27  Jinwoo Song  <jinwoo7.song@samsung.com>
47110
47111        [EFL] Remove duplicated keyboard string key from keyMap
47112        https://bugs.webkit.org/show_bug.cgi?id=129469
47113
47114        Reviewed by Gyuyoung Kim.
47115
47116        "Down" key is duplicated in keyMap().
47117
47118        * platform/efl/EflKeyboardUtilities.cpp:
47119        (WebCore::createKeyMap):
47120
471212014-02-27  Benjamin Poulain  <benjamin@webkit.org>
47122
47123        Unify the three call sites of SelectorQueryCache
47124        https://bugs.webkit.org/show_bug.cgi?id=129249
47125
47126        Reviewed by Andreas Kling.
47127
47128        The three call sites of SelectorQueryCache were doing the exact same thing.
47129        That code is mvoed to a new function Document::selectorQueryForString().
47130
47131        Also use String instead of AtomicString for querySelector() and querySelectorAll().
47132        This prevent the call sites from creating AtomicString just for the time of the call.
47133        This causes a tiny slow down on microbenchmarks that continuously query the same string
47134        but has no negative impact on realistic/good test cases (and the bindings are simplified).
47135
47136        * dom/ContainerNode.cpp:
47137        (WebCore::ContainerNode::querySelector):
47138        (WebCore::ContainerNode::querySelectorAll):
47139        * dom/ContainerNode.h:
47140        * dom/Document.cpp:
47141        (WebCore::Document::selectorQueryForString):
47142        * dom/Document.h:
47143        * dom/Element.cpp:
47144        (WebCore::Element::webkitMatchesSelector):
47145        * dom/SelectorQuery.cpp:
47146        (WebCore::SelectorQueryCache::add):
47147        * dom/SelectorQuery.h:
47148
471492014-02-27  Ryosuke Niwa  <rniwa@webkit.org>
47150
47151        JSC ignores the extra memory cost of HTMLCollection after a major GC
47152        https://bugs.webkit.org/show_bug.cgi?id=129450
47153
47154        Reviewed by Andreas Kling.
47155
47156        Report the extra memory cost of HTMLCollection to JSC.
47157
47158        Unfortunately, the existing mechanism to report the extra memory cost in toJS is insufficient for
47159        HTMLCollection since collection caches are populated later when HTMLCollection is accessed. Also,
47160        the extra memory cost reported by Heap::reportExtraMemoryCost will be thrown away after a major GC.
47161
47162        To work around this limitation, added a visitor.reportExtraMemoryUsage call inside visitChildren
47163        for interfaces with a newly added ReportExtraMemoryCost IDL extension flag to report the extra cost.
47164
47165        Since we may need to generate visitChildren when this flag is set, we can't automatically detect
47166        and generate calls using C++ template as done in r148648.
47167
47168        * CMakeLists.txt:
47169        * GNUmakefile.list.am:
47170        * Modules/webaudio/AudioBuffer.idl:
47171        * WebCore.vcxproj/WebCore.vcxproj:
47172        * WebCore.xcodeproj/project.pbxproj:
47173        * bindings/js/JSDOMBinding.h:
47174        * bindings/scripts/CodeGeneratorJS.pm:
47175        (InstanceNeedsVisitChildren):
47176        (GenerateHeader):
47177        (GenerateImplementation):
47178        * bindings/scripts/IDLAttributes.txt:
47179        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
47180        (WebCore::toJS):
47181        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
47182        (WebCore::toJS):
47183        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
47184        (WebCore::toJS):
47185        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
47186        (WebCore::toJS):
47187        * bindings/scripts/test/JS/JSTestException.cpp:
47188        (WebCore::toJS):
47189        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
47190        (WebCore::toJS):
47191        * bindings/scripts/test/JS/JSTestInterface.cpp:
47192        (WebCore::toJS):
47193        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
47194        (WebCore::toJS):
47195        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
47196        (WebCore::toJS):
47197        * bindings/scripts/test/JS/JSTestObj.cpp:
47198        (WebCore::toJS):
47199        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
47200        (WebCore::toJS):
47201        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
47202        (WebCore::toJS):
47203        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
47204        (WebCore::toJS):
47205        * bindings/scripts/test/JS/JSattribute.cpp:
47206        (WebCore::toJS):
47207        * bindings/scripts/test/JS/JSreadonly.cpp:
47208        (WebCore::toJS):
47209        * dom/ChildNodeList.h:
47210        * dom/CollectionIndexCache.cpp: Added.
47211        (WebCore::reportExtraMemoryCostForCollectionIndexCache):
47212        * dom/CollectionIndexCache.h:
47213        (WebCore::CollectionIndexCache::memoryCost):
47214        (WebCore::NodeType>::CollectionIndexCache):
47215        (WebCore::NodeType>::nodeCount):
47216        (WebCore::NodeType>::computeNodeCountUpdatingListCache):
47217        (WebCore::NodeType>::nodeAt):
47218        (WebCore::NodeType>::invalidate):
47219        * dom/DOMAllInOne.cpp:
47220        * dom/LiveNodeList.cpp:
47221        (WebCore::LiveNodeList::memoryCost):
47222        * dom/LiveNodeList.h:
47223        * dom/NodeList.h:
47224        (WebCore::NodeList::memoryCost):
47225        * dom/NodeList.idl:
47226        * html/HTMLCollection.cpp:
47227        (WebCore::HTMLCollection::updateNamedElementCache):
47228        * html/HTMLCollection.h:
47229        (WebCore::CollectionNamedElementCache::didPopulate):
47230        (WebCore::CollectionNamedElementCache::memoryCost):
47231        (WebCore::CollectionNamedElementCache::find):
47232        (WebCore::HTMLCollection::memoryCost):
47233        * html/HTMLCollection.idl:
47234        * html/HTMLFormControlsCollection.cpp:
47235        (WebCore::HTMLFormControlsCollection::updateNamedElementCache):
47236
472372014-02-27  Benjamin Poulain  <benjamin@webkit.org>
47238
47239        Compile attribute value matching
47240        https://bugs.webkit.org/show_bug.cgi?id=129228
47241
47242        Reviewed by Geoffrey Garen.
47243
47244        Add support for compiling value matching when matching attributes in Selector.
47245        This patch only adds exact matching, the other cases will follow.
47246
47247        There is a little infrastructure changes since FunctionCall now needs to support
47248        calls taking 2 arguments. The fun begins when the arguments are not in the right
47249        registers and need to be moved to the right place. Otherwise the code is straightforward.
47250
47251        In SelectorCompiler, it is necessary to handle two different cases of matching: case sensitive
47252        and case insensitive. The choice is done in part at compilation time by asking HTMLDocument
47253        if the name filter can include case insensitive attribute. The other part is done at runtime
47254        by querying the element for its type and document.
47255
47256        Test: fast/selectors/case-insensitive-value-matching.html
47257
47258        * css/SelectorChecker.cpp:
47259        (WebCore::attributeValueMatches): Null values matching should never happen, when an attribute
47260        has no value, its value is empty.
47261
47262        * cssjit/FunctionCall.h:
47263        (WebCore::FunctionCall::FunctionCall):
47264        Add support for calls with two arguments.
47265        (WebCore::FunctionCall::setOneArgument):
47266        (WebCore::FunctionCall::setTwoArguments):
47267        (WebCore::FunctionCall::swapArguments):
47268        Here we need to swap two registers, but we cannot allocate a new register (because the context
47269        of the function call may have taken all the available registers already).
47270
47271        On x86, the solution is simple, we can swap the two registers without side effects.
47272
47273        On other platforms, it is a little more complex. If there is any available register, we can just
47274        use it as a temporary to make the swap.
47275        If there are no available registers, we know that all the registers are taken. Since swapArguments()
47276        was called after pushing all the arguments on the stack, we can safely trash the value of any of those.
47277        We take the first available register that is not a function argument and use it as a temporary.
47278
47279        (WebCore::FunctionCall::prepareAndCall):
47280        This is the fun part, we have two registers where the values must go before the function call. The values
47281        can be in any combination of the allocated registers. The code here needs to move the two values to
47282        their target register while avoiding conflicts.
47283
47284        * cssjit/SelectorCompiler.cpp:
47285        (WebCore::SelectorCompiler::AttributeMatchingInfo::AttributeMatchingInfo):
47286        (WebCore::SelectorCompiler::AttributeMatchingInfo::canDefaultToCaseSensitiveValueMatch):
47287        (WebCore::SelectorCompiler::AttributeMatchingInfo::selector):
47288        The value of HTMLDocument::isCaseSensitiveAttribute is needed at compilation time to compute the number
47289        of required registers. As a result, we need to keep it along in the selector fragment.
47290
47291        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
47292        (WebCore::SelectorCompiler::attributeNameTestingRequiresNamespaceRegister):
47293        (WebCore::SelectorCompiler::attributeValueTestingRequiresExtraRegister):
47294        (WebCore::SelectorCompiler::minimumRegisterRequirements):
47295        (WebCore::SelectorCompiler::SelectorCodeGenerator::markParentElementIfResolvingStyle):
47296        (WebCore::SelectorCompiler::canMatchStyleAttribute):
47297        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSynchronizeStyleAttribute):
47298        (WebCore::SelectorCompiler::canMatchAnimatableSVGAttribute):
47299        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSynchronizeAllAnimatedSVGAttribute):
47300        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeMatching):
47301        The matching code is moved in a local scope. This is done to recover the register of qualifiedNameImpl
47302        before doing any value matching. That register can then be used to store the expected value when matching
47303        an attribute value.
47304        It is unfortunate there is so much register pressure in this part.
47305
47306        Value matching is done outside the loop. The idea is to keep the loop really small since in the vast majority
47307        of cases, name matching fails.
47308        If the value matching fails, we jump back into the tight loop.
47309
47310        This is not ideal in all situation. For example trivial name matching with trivial value matching should
47311        be done in loop. There is a FIXME to improve those cases later.
47312
47313        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
47314        (WebCore::SelectorCompiler::testIsHTMLClassOnDocument):
47315        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueExactMatching):
47316        In the case sensitive branch, things are really simple. We have to AtomicStringImpl pointers, if they
47317        don't match, it is a failure.
47318
47319        The case sensitive branch start by comparing the pointers in case the values are equal. This is a common
47320        case and it simplifies the cases for SVG, XHTML, etc.
47321        If the two values are not equal, we must first find if the context requires case insensitive comparison
47322        (HTMLElement in HTMLDocument). If the conditions require case insensitive matching, we then fall back
47323        to a function call.
47324
47325        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementFunctionCallTest):
47326        * dom/Attribute.h:
47327        (WebCore::Attribute::valueMemoryOffset):
47328        * dom/Document.h:
47329        (WebCore::Document::documentClassesMemoryOffset):
47330        (WebCore::Document::isHTMLDocumentClassFlag):
47331        * dom/Node.h:
47332        (WebCore::Node::treeScopeMemoryOffset):
47333        * dom/TreeScope.h:
47334        (WebCore::TreeScope::documentScopeMemoryOffset):
47335
473362014-02-27  Ryuan Choi  <ryuan.choi@samsung.com>
47337
47338        Build break when disabled CSS_GRID_LAYOUT
47339        https://bugs.webkit.org/show_bug.cgi?id=129459
47340
47341        Reviewed by Gyuyoung Kim.
47342
47343        * css/CSSValue.h: Added guards of CSS_GRID_LAYOUT for GridTemplateAreasClass.
47344
473452014-02-17  Myles C. Maxfield  <mmaxfield@apple.com>
47346
47347        text-decoration-skip: ink does not skip over SVG fonts
47348        https://bugs.webkit.org/show_bug.cgi?id=128936
47349
47350        Reviewed by Darin Adler.
47351
47352        When drawing glyphs in an SVG font, the glyphs are converted to paths and then filled. This patch moves
47353        the glyph -> path conversion into a helper class, GlyphToPathTranslator, and creates an implementation
47354        for the SVG drawing code. Once this helper class is created, it can be used to trace paths in order
47355        to make underlines skip over SVG glyphs. This helper class also has an implementation for non-SVG glyphs,
47356        which allows for the glyph tracing code to be paramaterized over the implementation of the helper class
47357        rather than if the FontData itself is SVG or not.
47358
47359        Tests: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-svg.html
47360
47361        * platform/graphics/Font.h:
47362        (WebCore::GlyphToPathTranslator::~GlyphToPathTranslator): Virtual implementation of helper class
47363        * platform/graphics/cg/PathCG.cpp:
47364        (WebCore::Path::Path): Created constructor that takes a RefPtr<CGMutablePathRef>
47365        * platform/graphics/Path.h:
47366        * platform/graphics/TextRun.h: Give RenderingContext a factory function to create the helper class
47367        instance
47368        * platform/graphics/mac/FontMac.mm: Implementation of helper class used for skipping underlines on
47369        regular (CoreText) glyphs
47370        (WebCore::MacGlyphToPathTranslator::MacGlyphToPathTranslator):
47371        (WebCore::MacGlyphToPathTranslator::moveToNextValidGlyph):
47372        (WebCore::MacGlyphToPathTranslator::incrementIndex):
47373        (WebCore::Font::dashesForIntersectionsWithRect): Call the relevant factory function, and use it
47374        to successively generate Paths
47375        * rendering/svg/SVGTextRunRenderingContext.cpp: Implementation of helper class used for SVG fonts
47376        (WebCore::SVGGlyphToPathTranslator::SVGGlyphToPathTranslator):
47377        (WebCore::SVGGlyphToPathTranslator::moveToNextValidGlyph):
47378        (WebCore::SVGGlyphToPathTranslator::incrementIndex):
47379        (WebCore::SVGTextRunRenderingContext::createGlyphToPathTranslator):
47380        (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs): Use the above implementation
47381        * rendering/svg/SVGTextRunRenderingContext.h: Factory function declaration
47382
473832014-02-27  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
47384
47385        [WebRTC] Removing MediaConstraints argument from RTCPeerConnection addStream, updateIce methods and constructor
47386        https://bugs.webkit.org/show_bug.cgi?id=129449
47387
47388        Reviewed by Eric Carlson.
47389
47390        According to WebRTC editor's draft, MediaConstraints will no longer be an argument of those methods and
47391        constructor.
47392
47393        Existing tests were updated.
47394
47395        * Modules/mediastream/RTCPeerConnection.cpp:
47396        (WebCore::RTCPeerConnection::create):
47397        (WebCore::RTCPeerConnection::RTCPeerConnection):
47398        (WebCore::RTCPeerConnection::updateIce):
47399        (WebCore::RTCPeerConnection::addStream):
47400        * Modules/mediastream/RTCPeerConnection.h:
47401        * Modules/mediastream/RTCPeerConnection.idl:
47402        * bindings/js/JSRTCPeerConnectionCustom.cpp:
47403        (WebCore::JSRTCPeerConnectionConstructor::constructJSRTCPeerConnection):
47404        * platform/mediastream/RTCPeerConnectionHandler.h:
47405        * platform/mock/RTCPeerConnectionHandlerMock.cpp:
47406        (WebCore::RTCPeerConnectionHandlerMock::initialize):
47407        (WebCore::RTCPeerConnectionHandlerMock::updateIce):
47408        (WebCore::RTCPeerConnectionHandlerMock::addStream):
47409        * platform/mock/RTCPeerConnectionHandlerMock.h:
47410
474112014-02-27  Radu Stavila  <stavila@adobe.com>
47412
47413        [CSS Regions] Move named-flow specific method decorationsClipRectForBoxInRegion to RenderNamedFlowThread
47414        https://bugs.webkit.org/show_bug.cgi?id=129428
47415
47416        Reviewed by Andreas Kling.
47417
47418        Since the decorationsClipRectForBoxInRegion method is a named flow specific method, it makes
47419        sense to be in the named flow specific class, RenderNamedFlowThread, instead of the more
47420        generic RenderFlowThread.
47421
47422        No new tests required. No new functionality.
47423
47424        * rendering/RenderBlock.cpp:
47425        (WebCore::RenderBlock::paintObject):
47426        * rendering/RenderFlowThread.cpp:
47427        * rendering/RenderFlowThread.h:
47428        * rendering/RenderNamedFlowThread.cpp:
47429        (WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
47430        * rendering/RenderNamedFlowThread.h:
47431
474322014-02-27  Zoltan Horvath  <zoltan@webkit.org>
47433
47434        Avoid calling logicalLeftOffsetForLine 2 times in LineWidth::fitBelowFloats
47435        https://bugs.webkit.org/show_bug.cgi?id=129433
47436
47437        Reviewed by Darin Adler.
47438
47439        This change updates fitBelowFloats and its helpers to call RenderBlock::logicalLeftOffsetForLine only once.
47440
47441        No new tests, no behavior change.
47442
47443        * rendering/line/LineWidth.cpp:
47444        (WebCore::availableWidthAtOffset):
47445        (WebCore::LineWidth::updateLineDimension):
47446        (WebCore::LineWidth::wrapNextToShapeOutside):
47447        (WebCore::LineWidth::fitBelowFloats):
47448        * rendering/line/LineWidth.h:
47449
474502014-02-27  Andreas Kling  <akling@apple.com>
47451
47452        Micro-optimize elementAffectsDirectionality().
47453        <https://webkit.org/b/129444>
47454
47455        Tweak this function to skip an unnecessary bit check and use
47456        fastHasAttribute() instead of hasAttribute() for looking up dirAttr.
47457
47458        ~1% speedup on DYEB/AngularJS.
47459
47460        Reviewed by Ryosuke Niwa.
47461
47462        * html/HTMLElement.cpp:
47463        (WebCore::elementAffectsDirectionality):
47464
474652014-02-27  Brian Burg  <bburg@apple.com>
47466
47467        Web Inspector: model tests should use a special Test.html inspector page
47468        https://bugs.webkit.org/show_bug.cgi?id=129190
47469
47470        Reviewed by Timothy Hatcher.
47471
47472        Convert InspectorController::isUnderTest() into a flag, and expose an
47473        Internals method so it can be set by the test before opening the inspector.
47474
47475        Test: inspector/test-harness-trivially-works.html
47476
47477        * inspector/InspectorController.cpp:
47478        (WebCore::InspectorController::evaluateForTestInFrontend):
47479        * inspector/InspectorController.h:
47480        * testing/Internals.cpp:
47481        (WebCore::Internals::setInspectorIsUnderTest): Added.
47482        * testing/Internals.h:
47483        * testing/Internals.idl:
47484
474852014-02-27  Joseph Pecoraro  <pecoraro@apple.com>
47486
47487        Unreviewed build fix after r164824.
47488
47489        Accidentally re-added some code that was removed.
47490
47491        * page/ContentSecurityPolicy.cpp:
47492
474932014-02-26  Alex Christensen  <achristensen@webkit.org>
47494
47495        Compile fix when not using TEXTURE_MAPPER_GL.
47496        https://bugs.webkit.org/show_bug.cgi?id=129417
47497
47498        Reviewed by Darin Adler.
47499
47500        * platform/graphics/texmap/TextureMapperGL.cpp:
47501        Protect platformCreateAccelerated with USE(TEXTURE_MAPPER_GL).
47502
475032014-02-27  Joseph Pecoraro  <pecoraro@apple.com>
47504
47505        Web Inspector: JSContext inspection should report exceptions in the console
47506        https://bugs.webkit.org/show_bug.cgi?id=128776
47507
47508        Reviewed by Timothy Hatcher.
47509
47510        Include some clean up of ConsoleMessage and ScriptCallStack construction.
47511
47512        Covered by existing tests.
47513
47514        * bindings/js/JSDOMBinding.cpp:
47515        (WebCore::reportException):
47516        Simplify code now that createStackTraceFromException handles it.
47517
47518        * page/ContentSecurityPolicy.cpp:
47519        (WebCore::gatherSecurityPolicyViolationEventData):
47520        (WebCore::ContentSecurityPolicy::reportViolation):
47521        ScriptCallStack can give us the first non-native callframe.
47522
47523        * inspector/InspectorResourceAgent.cpp:
47524        (WebCore::InspectorResourceAgent::buildInitiatorObject):
47525        * inspector/PageDebuggerAgent.cpp:
47526        (WebCore::PageDebuggerAgent::breakpointActionLog):
47527        * inspector/TimelineRecordFactory.cpp:
47528        (WebCore::TimelineRecordFactory::createGenericRecord):
47529        * page/Console.cpp:
47530        (WebCore::internalAddMessage):
47531        (WebCore::Console::profile):
47532        (WebCore::Console::profileEnd):
47533        (WebCore::Console::timeEnd):
47534        * page/ContentSecurityPolicy.cpp:
47535        (WebCore::gatherSecurityPolicyViolationEventData):
47536        (WebCore::ContentSecurityPolicy::reportViolation):
47537        * page/DOMWindow.cpp:
47538        (WebCore::DOMWindow::postMessage):
47539
475402014-02-27  Andreas Kling  <akling@apple.com>
47541
47542        Remove FeatureObserver.
47543        <https://webkit.org/b/129439>
47544
47545        This code was only used by the Chromium port and nobody else is
47546        making use of it.
47547
47548        Reviewed by Anders Carlsson.
47549
47550        * CMakeLists.txt:
47551        * GNUmakefile.list.am:
47552        * WebCore.vcxproj/WebCore.vcxproj:
47553        * WebCore.vcxproj/WebCore.vcxproj.filters:
47554        * WebCore.xcodeproj/project.pbxproj:
47555        * dom/EventTarget.cpp:
47556        (WebCore::EventTarget::fireEventListeners):
47557        * dom/EventTarget.h:
47558        * html/ColorInputType.cpp:
47559        * html/ColorInputType.h:
47560        * html/DateInputType.cpp:
47561        * html/DateInputType.h:
47562        * html/DateTimeInputType.cpp:
47563        * html/DateTimeInputType.h:
47564        * html/DateTimeLocalInputType.cpp:
47565        * html/DateTimeLocalInputType.h:
47566        * html/EmailInputType.cpp:
47567        * html/EmailInputType.h:
47568        * html/HTMLDataListElement.cpp:
47569        (WebCore::HTMLDataListElement::create):
47570        * html/HTMLFormControlElement.cpp:
47571        (WebCore::HTMLFormControlElement::parseAttribute):
47572        * html/HTMLInputElement.cpp:
47573        (WebCore::HTMLInputElement::parseAttribute):
47574        * html/HTMLTextFormControlElement.cpp:
47575        (WebCore::HTMLTextFormControlElement::parseAttribute):
47576        * html/InputType.cpp:
47577        * html/InputType.h:
47578        * html/MonthInputType.cpp:
47579        * html/MonthInputType.h:
47580        * html/NumberInputType.cpp:
47581        * html/NumberInputType.h:
47582        * html/RangeInputType.cpp:
47583        * html/RangeInputType.h:
47584        * html/SearchInputType.cpp:
47585        * html/SearchInputType.h:
47586        * html/TelephoneInputType.cpp:
47587        * html/TelephoneInputType.h:
47588        * html/TextInputType.cpp:
47589        * html/TextInputType.h:
47590        * html/TimeInputType.cpp:
47591        * html/TimeInputType.h:
47592        * html/URLInputType.cpp:
47593        * html/URLInputType.h:
47594        * html/WeekInputType.cpp:
47595        * html/WeekInputType.h:
47596        * loader/DocumentLoader.cpp:
47597        (WebCore::DocumentLoader::responseReceived):
47598        * loader/FrameLoader.cpp:
47599        (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
47600        (WebCore::FrameLoader::dispatchDidCommitLoad):
47601        * page/ContentSecurityPolicy.cpp:
47602        (WebCore::ContentSecurityPolicy::didReceiveHeader):
47603        * page/EventHandler.cpp:
47604        (WebCore::EventHandler::selectCursor):
47605        * page/FeatureObserver.cpp: Removed.
47606        * page/FeatureObserver.h: Removed.
47607        * page/Page.h:
47608        * rendering/RenderDeprecatedFlexibleBox.cpp:
47609        (WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
47610        * rendering/RenderLayer.cpp:
47611        (WebCore::RenderLayer::calculateClipRects):
47612        * workers/SharedWorker.cpp:
47613        (WebCore::SharedWorker::create):
47614        * workers/Worker.cpp:
47615        (WebCore::Worker::create):
47616
476172014-02-27  Chris Fleizach  <cfleizach@apple.com>
47618
47619        speechSynthesis.speak of a zero length utterance kills future speech
47620        https://bugs.webkit.org/show_bug.cgi?id=129403
47621
47622        Reviewed by Mario Sanchez Prada.
47623
47624        Empty length strings may choke a synthesizer and result in didFinishSpeaking not being called. 
47625        The WebKit code should be proactive about screening out empty length strings.
47626
47627        Test: platform/mac/fast/speechsynthesis/speech-synthesis-speak-empty-string.html
47628
47629        * Modules/speech/SpeechSynthesis.cpp:
47630        (WebCore::SpeechSynthesis::startSpeakingImmediately):
47631
476322014-02-27  Commit Queue  <commit-queue@webkit.org>
47633
47634        Unreviewed, rolling out r164783.
47635        http://trac.webkit.org/changeset/164783
47636        https://bugs.webkit.org/show_bug.cgi?id=129425
47637
47638        Broke number of multicol tests (Requested by anttik on
47639        #webkit).
47640
47641        * rendering/RenderBlock.cpp:
47642        (WebCore::RenderBlock::containingColumnsBlock):
47643
476442014-02-27  Antoine Quint  <graouts@webkit.org>
47645
47646        Respect SVG fragment identifiers in <img> src attribute
47647        https://bugs.webkit.org/show_bug.cgi?id=129387
47648
47649        Reviewed by Antti Koivisto.
47650
47651        Test: svg/css/svg-resource-fragment-identifier-img-src.html
47652
47653        When providing an SVG image for a given renderer, check that the URL used to load
47654        that image is taken into account in case it featured a fragment identifier, ensuring
47655        that the CSS :target pseudo-class is correctly handled for SVG resources. This patch
47656        is specific to <img> elements, specific support will also need to be added for various
47657        CSS properties that support SVG images.
47658
47659        * svg/graphics/SVGImageCache.cpp:
47660        (WebCore::SVGImageCache::imageForRenderer):
47661        Check if the provided renderer is attached to an <img> element and, if so, pass the
47662        resolved <img> source URL, taking into account srcset, to the SVGImageForContainer.
47663
47664        * svg/graphics/SVGImageForContainer.cpp:
47665        (WebCore::SVGImageForContainer::setURL):
47666        Trigger the FrameView machinery to ensure that the :target pseudo-class is respected
47667        should the provided URL feature a fragment identifier.
47668
47669        * svg/graphics/SVGImageForContainer.h:
47670        Declare the new setURL() method.
47671
476722014-02-27  Krzysztof Czech  <k.czech@samsung.com>
47673
47674        [ATK] Fix style errors in enum members
47675        https://bugs.webkit.org/show_bug.cgi?id=129421
47676
47677        Reviewed by Mario Sanchez Prada.
47678
47679        No new tests. No new functionality.
47680
47681        Enum members should use InterCaps with an initial capital letter.
47682
47683        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
47684        (getInterfaceMaskFromObject):
47685
476862014-02-27  Mihai Tica  <mitica@adobe.com>
47687
47688        [CSS Blending] Parse and implement the -webkit-isolation CSS property.
47689
47690        https://bugs.webkit.org/show_bug.cgi?id=128958
47691
47692        Reviewed by Dirk Schulze.
47693
47694        Parse and implement -webkit-isolation, part of the CSS Blending and Compositing spec.
47695        This patch adds functionality for HTML and SVG.
47696        -webkit-isolation: isolate restricts any child elements from blending with any of the content outside the isolated parent element.
47697
47698        Tests: css3/compositing/isolation-isolate-blended-child.html
47699               css3/compositing/isolation-parsing.html
47700               css3/compositing/svg-isolation-default.html
47701               css3/compositing/svg-isolation-isolated-group.html
47702               css3/compositing/svg-isolation-simple.html
47703
47704        * css/CSSComputedStyleDeclaration.cpp:
47705        (WebCore::ComputedStyleExtractor::propertyValue):
47706        * css/CSSParser.cpp:
47707        (WebCore::isValidKeywordPropertyAndValue):
47708        (WebCore::isKeywordPropertyID):
47709        (WebCore::CSSParser::parseValue):
47710        * css/CSSPrimitiveValueMappings.h:
47711        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
47712        (WebCore::CSSPrimitiveValue::operator Isolation):
47713        * css/CSSPropertyNames.in: Add -webkit-isolation.
47714        * css/CSSValueKeywords.in: Add the isolate value.
47715        * css/DeprecatedStyleBuilder.cpp:
47716        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
47717        * css/StyleResolver.cpp:
47718        (WebCore::StyleResolver::adjustRenderStyle): Explicitly set isolation:isolate to create a stacking context.
47719        * rendering/style/RenderStyle.cpp:
47720        (WebCore::RenderStyle::changeRequiresLayerRepaint): Changing isolation should trigger a repaint.
47721        * rendering/style/RenderStyle.h: Setters and getters for isolation.
47722        * rendering/style/RenderStyleConstants.h: Add Isolation enum.
47723        * rendering/style/StyleRareNonInheritedData.cpp: Add m_isolation.
47724        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
47725        (WebCore::StyleRareNonInheritedData::operator==):
47726        * rendering/style/StyleRareNonInheritedData.h:
47727        * rendering/svg/SVGRenderingContext.cpp:
47728        (WebCore::SVGRenderingContext::prepareToRenderSVGContent): If isolated, paint in a transparency layer.
47729
477302014-02-27  Krzysztof Czech  <k.czech@samsung.com>
47731
47732        [ATK] Utilize AtkTableCell to expose directly AccessibilityTableCell to AT
47733        https://bugs.webkit.org/show_bug.cgi?id=129250
47734
47735        Reviewed by Mario Sanchez Prada.
47736
47737        Test: accessibility/table-scope.html
47738
47739        Exposing AtkTableCell to AT. Implementing possibility to get column headers and row headers
47740        as an array of cells.
47741
47742        * GNUmakefile.list.am:
47743        * PlatformEfl.cmake:
47744        * accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp: Added.
47745        (convertToGPtrArray):
47746        (core):
47747        (webkitAccessibleTableCellGetColumnHeaderCells):
47748        (webkitAccessibleTableCellGetRowHeaderCells):
47749        (webkitAccessibleTableCellInterfaceInit):
47750        * accessibility/atk/WebKitAccessibleInterfaceTableCell.h: Added.
47751        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
47752        (getInterfaceMaskFromObject):
47753
477542014-02-27  Renata Hodovan  <rhodovan.u-szeged@partner.samsung.com>
47755
47756        Improving containing column block determination
47757        https://bugs.webkit.org/show_bug.cgi?id=125449
47758
47759        Reviewed by Darin Adler.
47760
47761        Making sure that the containing column block of any elements
47762        can not be oneself.
47763
47764        Test: fast/css/crash-on-column-splitting.html
47765
47766        * rendering/RenderBlock.cpp:
47767        (WebCore::RenderBlock::containingColumnsBlock):
47768        (WebCore::RenderBlock::splitFlow):
47769
477702014-02-27  Xabier Rodriguez Calvar  <calvaris@igalia.com>
47771
47772        [GTK] Improve JavaScript multimedia controls
47773        https://bugs.webkit.org/show_bug.cgi?id=129044
47774
47775        Reviewed by Jer Noble.
47776
47777        After webkit.org/b/123097 a follow up was needed to improve
47778        accessibily and some other cosmetic problems, like cleaner CSS and
47779        new missing baselines.
47780
47781        No new tests because of no new functionality.
47782
47783        * Modules/mediacontrols/mediaControlsApple.js:
47784        Added hiding class name.
47785        * Modules/mediacontrols/mediaControlsGtk.js:
47786        (ControllerGtk.prototype.createControls): Set remaining time as
47787        hidden by default and turned volumebox hidden into hiding.
47788        (ControllerGtk.prototype.updateTime): Simplified the hiding and
47789        showing by removing the show class and using hidden only.
47790        (ControllerGtk.prototype.handleMuteButtonMouseOver):
47791        (ControllerGtk.prototype.handleVolumeBoxMouseOut): Turned hidden
47792        into hiding.
47793        (ControllerGtk.prototype.updateReadyState): Changed coding style
47794        and added down class for the panel too.
47795        (ControllerGtk.prototype.updatePlaying): Change for coding style
47796        coherence.
47797        (ControllerGtk.prototype.handleCaptionButtonClicked): Call
47798        handleCaptionButtonShowMenu.
47799        (ControllerGtk.prototype.handleCaptionButtonMouseOver): Call
47800        handleCaptionButtonShowMenu.
47801        (ControllerGtk.prototype.handleCaptionButtonShowMenu): Created
47802        with the former behavior of handleCaptionButtonMouseOver.
47803        * css/mediaControlsGtk.css:
47804        (.hidden): Set display none for all objects with hidden class.
47805        (audio::-webkit-media-controls-panel *:focus):
47806        (audio::-webkit-media-controls-panel.down *:focus): Added gradient
47807        for the active and focus status.
47808        (audio::-webkit-media-controls-time-remaining-display)
47809        (video::-webkit-media-controls-time-remaining-display): Set
47810        display block.
47811        (audio::-webkit-media-controls-volume-slider-container)
47812        (video::-webkit-media-controls-volume-slider-container): Set
47813        display flex.
47814        (video::-webkit-media-controls-volume-slider-container.hiding):
47815        Changed from hidden.
47816        (video::-webkit-media-controls-panel .hiding.down): Changed from
47817        hidden.
47818        * platform/gtk/RenderThemeGtk.cpp:
47819        (WebCore::RenderThemeGtk::paintMediaButton): Returning true to
47820        allow CSS painting the gradient.
47821
478222014-02-27  Zan Dobersek  <zdobersek@igalia.com>
47823
47824        Unreviewed. Fixing the GTK build fix after r164757.
47825
47826        * platform/network/NetworkStateNotifier.cpp: r164757 introduced a layering violation by including
47827        the Settings.h header. The use of that class is guarded by PLATFORM(IOS), so the header inclusion
47828        should be guarded as well.
47829
478302014-02-26  Ryosuke Niwa  <rniwa@webkit.org>
47831
47832        Extract named items caches in HTMLCollection as a class
47833        https://bugs.webkit.org/show_bug.cgi?id=129365
47834
47835        Reviewed by Antti Koivisto.
47836
47837        Extracted CollectionNamedElementCache, like CollectionIndexCache, out of HTMLCollection.
47838        We can move more named item related functions into this class in the future.
47839
47840        HTMLCollection's member variables m_isNameCacheValid, m_idCache, and m_nameCache were replaced by
47841        a single unique_ptr that holds an instance of CollectionNamedElementCache since this object rarely
47842        exists in most HTMLCollections.
47843
47844        Also removed m_isItemRefElementsCacheValid since it was only used by Microdata API removed in r153772
47845        and renamed a whole bunch of member functions and variables for consistency.
47846
47847        * dom/Document.cpp:
47848        (WebCore::Document::collectionCachedIdNameMap):
47849        (WebCore::Document::collectionWillClearIdNameMap):
47850        * dom/Document.h:
47851        * dom/NodeRareData.h:
47852        (WebCore::NodeListsNodeData::adoptDocument):
47853        * html/HTMLAllCollection.cpp:
47854        (WebCore::HTMLAllCollection::namedItemWithIndex):
47855        * html/HTMLCollection.cpp:
47856        (WebCore::HTMLCollection::HTMLCollection):
47857        (WebCore::HTMLCollection::~HTMLCollection):
47858        (WebCore::HTMLCollection::invalidateCache):
47859        (WebCore::HTMLCollection::invalidateNamedElementCache): Renamed from invalidateIdNameCacheMaps.
47860        (WebCore::HTMLCollection::namedItem):
47861        (WebCore::HTMLCollection::updateNamedElementCache): Renamed from updateNameCache.
47862        (WebCore::HTMLCollection::namedItems):
47863
47864        * html/HTMLCollection.h:
47865        (WebCore::CollectionNamedElementCache::findElementsWithId): Renamed from HTMLCollection::idCache.
47866        (WebCore::CollectionNamedElementCache::findElementsWithName): Renamed from HTMLCollection::nameCache.
47867        (WebCore::CollectionNamedElementCache::appendIdCache): Moved from HTMLCollection.
47868        (WebCore::CollectionNamedElementCache::appendNameCache): Ditto.
47869        (WebCore::CollectionNamedElementCache::find): Ditto.
47870        (WebCore::CollectionNamedElementCache::append): Ditto.
47871
47872        (WebCore::HTMLCollection::invalidateCache):
47873        (WebCore::HTMLCollection::hasNamedElementCache): Renamed from hasIdNameCache.
47874        (WebCore::HTMLCollection::createNameItemCache): Added.
47875        (WebCore::HTMLCollection::namedItemCaches): Added.
47876
47877        * html/HTMLFormControlsCollection.cpp:
47878        (WebCore::HTMLFormControlsCollection::updateNamedElementCache):
47879        * html/HTMLFormControlsCollection.h:
47880
478812014-02-26  Ryosuke Niwa  <rniwa@webkit.org>
47882
47883        Indenting an indented image element resulted in an extra indentation
47884        https://bugs.webkit.org/show_bug.cgi?id=129201
47885
47886        Reviewed by Enrica Casucci.
47887
47888        The bug was caused by endOfParagraph returning a position at the beginning of a block when the position
47889        passed into the function was at the beginning of the block. Consider the following DOM:
47890        <blockquote><img></blockquote>
47891
47892        When endOfParagraph is called on (blockquote, 0), the condition r->isBR() || isBlock(n) in endOfParagraph
47893        matches immediately on startNode and it returns (blockquote, 0) again.
47894
47895        This resulted in moveParagraphWithClones invoked by indentIntoBlockquote to erroneously clone the inner
47896        blockquote. Worked around this bug in ApplyBlockElementCommand::formatSelection by checking this specific
47897        condition and moving the position to the end of the block. Unfortunately, a lot of existing code depends
47898        on the current behavior of endOfParagraph so fixing the function itself was not possible.
47899
47900        There was another bug in indentIntoBlockquote to incorrectly insert a new blockquote into the existing
47901        blockquote due to the code introduced in r99594 to avoid inserting before the root editable element.
47902        Since this happens only if outerBlock is the root editable element, which is nodeToSplitTo or an ancestor
47903        of nodeToSplitTo, explicitly look for this condition.
47904
47905        Test: editing/execCommand/indent-img-twice.html
47906
47907        * editing/ApplyBlockElementCommand.cpp:
47908        (WebCore::ApplyBlockElementCommand::formatSelection):
47909        (WebCore::isNewLineAtPosition):
47910        * editing/IndentOutdentCommand.cpp:
47911        (WebCore::IndentOutdentCommand::indentIntoBlockquote):
47912        * editing/VisibleUnits.cpp:
47913        (WebCore::endOfParagraph): Added a FIXME.
47914
479152014-02-26  Simon Fraser  <simon.fraser@apple.com>
47916
47917        Fix two assertions/crashes in compositing code
47918        https://bugs.webkit.org/show_bug.cgi?id=129414
47919
47920        Reviewed by Dean Jackson.
47921
47922        Fix two issues introduced in r164759.
47923
47924        * rendering/RenderLayerCompositor.cpp:
47925        (WebCore::RenderLayerCompositor::removeFromScrollCoordinatedLayers): Don't call
47926        ourselves recursively!
47927        (WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer): We call this
47928        function unconditionally on layer teardown, so this assertion is bogus.
47929
479302014-02-26  Simon Fraser  <simon.fraser@apple.com>
47931
47932        Fix the build with some compiler configurations.
47933
47934        * platform/mac/ScrollAnimatorMac.mm:
47935        (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
47936        (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
47937        (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
47938
479392014-02-26  Myles C. Maxfield  <mmaxfield@apple.com>
47940
47941        Ranges given to createMarkupInternal might not be canonicalized
47942        https://bugs.webkit.org/show_bug.cgi?id=129408
47943
47944        Reviewed by Ryosuke Niwa.
47945
47946        When WebKit clients (such as Mail) call WKWebArchiveCreateFromRange() with a range,
47947        that range is not necessarily canonicalized. Therefore, comparing it for equality
47948        with a canonicalized range might return a false negative. Instead, we should compare
47949        canonicalized ranges.
47950
47951        No new tests because this codepath will only be reached via SPI.
47952
47953        * editing/markup.cpp:
47954        (WebCore::createMarkupInternal):
47955
479562014-02-26  Enrica Casucci  <enrica@apple.com>
47957
47958        [iOS WebKit2] Form controls handling: implement date and time controls.
47959        https://bugs.webkit.org/show_bug.cgi?id=129344
47960
47961        Reviewed by Simon Fraser and Joseph Pecoraro.
47962
47963        Adding one localizable string.
47964
47965        * English.lproj/Localizable.strings:
47966
479672014-02-26  Simon Fraser  <simon.fraser@apple.com>
47968
47969        Prepare for overflow scrolling nodes in the scrolling tree
47970        https://bugs.webkit.org/show_bug.cgi?id=129398
47971
47972        Reviewed by Tim Horton.
47973
47974        Lay some groundwork for overflow:scrolling nodes in the scrolling tree.
47975        Change terminology to refer to "scroll-coordinatored" layers now, not just viewport-constrained
47976        layers.
47977        
47978        A given layer can be both viewport-constrained and overflow-scrolling (e.g. position:fixed,
47979        overflow:scroll), so handle that in RenderLayerBacking, and use some "reason" flags
47980        in RenderLayerCompositor.
47981
47982        * page/FrameView.cpp:
47983        (WebCore::FrameView::scrollLayerID): Rename
47984        * page/scrolling/ScrollingStateTree.cpp:
47985        (WebCore::ScrollingStateTree::attachNode): Remove invalid assertion.
47986        * rendering/RenderLayerBacking.cpp:
47987        (WebCore::RenderLayerBacking::RenderLayerBacking):
47988        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
47989        (WebCore::RenderLayerBacking::updateScrollingLayers): Simplify the logic with
47990        an early return.
47991        (WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
47992        Allow a layer to play both viewport-constrained and scrolling roles
47993        in the scrolling tree.
47994        * rendering/RenderLayerBacking.h:
47995        (WebCore::RenderLayerBacking::viewportConstrainedNodeID):
47996        (WebCore::RenderLayerBacking::setViewportConstrainedNodeID):
47997        (WebCore::RenderLayerBacking::scrollingNodeID):
47998        (WebCore::RenderLayerBacking::setScrollingNodeID):
47999        (WebCore::RenderLayerBacking::scrollingNodeIDForChildren):
48000        * rendering/RenderLayerCompositor.cpp:
48001        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
48002        (WebCore::RenderLayerCompositor::didFlushChangesForLayer):
48003        (WebCore::RenderLayerCompositor::updateBacking):
48004        (WebCore::RenderLayerCompositor::layerWillBeRemoved):
48005        (WebCore::RenderLayerCompositor::fixedRootBackgroundLayerChanged):
48006        (WebCore::RenderLayerCompositor::clearBackingForLayerIncludingDescendants):
48007        (WebCore::RenderLayerCompositor::requiresCompositingLayer):
48008        (WebCore::RenderLayerCompositor::requiresOwnBackingStore):
48009        (WebCore::RenderLayerCompositor::reasonsForCompositing):
48010        (WebCore::RenderLayerCompositor::requiresCompositingForScrolling):
48011        (WebCore::isViewportConstrainedFixedOrStickyLayer):
48012        (WebCore::isMainFrameScrollingOrOverflowScrolling):
48013        (WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):
48014        (WebCore::RenderLayerCompositor::updateScrollCoordinatedStatus):
48015        (WebCore::RenderLayerCompositor::removeFromScrollCoordinatedLayers):
48016        (WebCore::nearestScrollCoordinatedAncestor):
48017        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
48018        (WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer):
48019        (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
48020        (WebCore::RenderLayerCompositor::willRemoveScrollingLayer):
48021        (WebCore::RenderLayerCompositor::didAddScrollingLayer):
48022        * rendering/RenderLayerCompositor.h:
48023
480242014-02-26  Andy Estes  <aestes@apple.com>
48025
48026        [iOS] Support network state notification using CPNetworkObserver
48027        https://bugs.webkit.org/show_bug.cgi?id=129358
48028
48029        Reviewed by Dan Bernstein.
48030
48031        Add iOS support for navigator.onLine and online/offline events. Since
48032        it can be expensive to query CPNetworkObserver, wait to do so until
48033        someone calls NetworkStateObserver::onLine() or
48034        NetworkStateObserver::addNetworkStateChangeListener(). For clients that
48035        don't wish to observe network reachability at all, add a global opt-out.
48036        These clients will only pay the cost of CPNetworkObserver if they load
48037        a page that explicitly accesses navigator.onLine.
48038
48039        No new tests. Covered by existing tests.
48040
48041        * WebCore.exp.in: Stopped exporting NetworkStateNotifier::setIsOnLine()
48042        and started exporting Settings::gShouldOptOutOfNetworkStateObservation.
48043        * WebCore.xcodeproj/project.pbxproj: Renamed NetworkStateNotifierIOS.cpp
48044        to NetworkStateNotifierIOS.mm.
48045        * page/Settings.cpp: Defaulted gShouldOptOutOfNetworkStateObservation
48046        to false.
48047        * page/Settings.h:
48048        (WebCore::Settings::setShouldOptOutOfNetworkStateObservation):
48049        (WebCore::Settings::shouldOptOutOfNetworkStateObservation):
48050        * platform/network/NetworkStateNotifier.cpp:
48051        (WebCore::NetworkStateNotifier::addNetworkStateChangeListener): Ignored
48052        the listener if Settings::shouldOptOutOfNetworkStateObservation().
48053        Called registerObserverIfNecessary() and added the listener otherwise.
48054        (WebCore::NetworkStateNotifier::notifyNetworkStateChange): Const qualified.
48055        * platform/network/NetworkStateNotifier.h
48056        (NetworkStateNotifier::onLine):
48057        * platform/network/ios/NetworkStateNotifierIOS.cpp: Removed.
48058        * platform/network/ios/NetworkStateNotifierIOS.mm: Added.
48059        (-[NetworkStateObserver initWithNotifier:WebCore::]): Registered self
48060        as a network reachable observer on CPNetworkObserver.
48061        (-[NetworkStateObserver dealloc]): Removed self as a network reachable
48062        observer.
48063        (-[NetworkStateObserver networkStateChanged:]): Called setOnLine() on
48064        the web thread, passing the reachability value from the notification.
48065        (WebCore::NetworkStateNotifier::NetworkStateNotifier):
48066        (WebCore::NetworkStateNotifier::~NetworkStateNotifier): Cleared
48067        m_observer's pointer back to us.
48068        (WebCore::NetworkStateNotifier::registerObserverIfNecessary): Initialized
48069        m_observer if necessary.
48070        (WebCore::NetworkStateNotifier::onLine): Called
48071        registerObserverIfNecessary() and set an initial value for m_isOnLine
48072        if m_isOnLineInitialized is false. Returned m_isOnLine.
48073        (WebCore::setOnLine): Set m_isOnLine and called
48074        notifyNetworkStateChange() if needed. Unconditionally set
48075        m_isOnLineInitialized to true.
48076
480772014-02-26  Brian Burg  <bburg@apple.com>
48078
48079        Unreviewed build fix for !ENABLE(CONTEXT_MENUS).
48080
48081        I forgot to add guards to handleContextMenuEvent().
48082
48083        * replay/UserInputBridge.cpp:
48084        * replay/UserInputBridge.h:
48085
480862014-02-26  Dean Jackson  <dino@apple.com>
48087
48088        [WebGL] Only skip context error retrieval if a pending context
48089        https://bugs.webkit.org/show_bug.cgi?id=129397
48090
48091        Reviewed by Tim Horton.
48092
48093        A lost context should still ask the GC3D what the error is. Only
48094        a pending context should return early.
48095
48096        * html/canvas/WebGLRenderingContext.cpp:
48097        (WebCore::WebGLRenderingContext::getError):
48098
480992014-02-26  Brian Burg  <bburg@apple.com>
48100
48101        Web Replay: route through UserInputBridge when delivering user inputs to WebCore
48102        https://bugs.webkit.org/show_bug.cgi?id=128150
48103
48104        Reviewed by Timothy Hatcher.
48105
48106        Add an UserInputBridge instance to each Page. WebKit2 routes a page's user inputs through
48107        the WebCore page's user input bridge so that the inputs can be selectively captured, filtered,
48108        and replayed using instrumentation inside the UserInputBridge.
48109
48110        For now, the routing methods of UserInputBridge have no replay-specific code paths, and just
48111        put the input delivery code inside WebCore rather than its external clients. Replay-specific
48112        code paths will be added once https://bugs.webkit.org/show_bug.cgi?id=128782 is fixed. However,
48113        once complete the code will work as follows:
48114
48115        - When neither capturing or replaying, behavior is unchanged.
48116
48117        - When capturing user inputs, each external input is saved into a replay log as it crosses
48118        the bridge from outside WebCore.
48119
48120        - When replaying, the bridge closes and user inputs from WebKit2 are not accepted. Instead,
48121        the saved inputs from the replay log are re-dispatched as if they had crossed the bridge.
48122
48123        * CMakeLists.txt:
48124        * GNUmakefile.am:
48125        * GNUmakefile.list.am:
48126        * WebCore.exp.in: Add symbols for input routing methods.
48127        * WebCore.vcxproj/WebCore.vcxproj:
48128        * WebCore.vcxproj/WebCore.vcxproj.filters:
48129        * WebCore.xcodeproj/project.pbxproj:
48130        * page/Page.cpp:
48131        (WebCore::Page::Page): Initialize the owned UserInputBridge in the Page constructor.
48132        * page/Page.h:
48133        (WebCore::Page::inputBridge): Added a by-reference getter.
48134        * replay/UserInputBridge.cpp: Added.
48135        (WebCore::UserInputBridge::UserInputBridge):
48136        (WebCore::UserInputBridge::~UserInputBridge):
48137        (WebCore::UserInputBridge::handleContextMenuEvent):
48138        (WebCore::UserInputBridge::handleMousePressEvent):
48139        (WebCore::UserInputBridge::handleMouseReleaseEvent):
48140        (WebCore::UserInputBridge::handleMouseMoveEvent):
48141        (WebCore::UserInputBridge::handleMouseMoveOnScrollbarEvent):
48142        (WebCore::UserInputBridge::handleKeyEvent):
48143        (WebCore::UserInputBridge::handleAccessKeyEvent):
48144        (WebCore::UserInputBridge::handleWheelEvent):
48145        (WebCore::UserInputBridge::focusSetActive):
48146        (WebCore::UserInputBridge::focusSetFocused):
48147        (WebCore::UserInputBridge::scrollRecursively):
48148        (WebCore::UserInputBridge::logicalScrollRecursively):
48149        (WebCore::UserInputBridge::loadRequest):
48150        (WebCore::UserInputBridge::reloadFrame):
48151        (WebCore::UserInputBridge::stopLoadingFrame):
48152        (WebCore::UserInputBridge::tryClosePage):
48153        * replay/UserInputBridge.h: Added.
48154
481552014-02-26  Dean Jackson  <dino@apple.com>
48156
48157        [WebGL] Protect more WebGL entry points for pending contexts
48158        https://bugs.webkit.org/show_bug.cgi?id=129386
48159
48160        Reviewed by Tim Horton.
48161
48162        There are entry points into a WebGLRenderingContext that don't
48163        come from the web-exposed API directly, such as drawImage with
48164        the WebGL canvas. Protect these by returning early if we're
48165        a pending context.
48166
48167        Also a bunch of drive-by 0 -> nullptr changes.
48168
48169        * html/canvas/WebGLRenderingContext.cpp:
48170        (WebCore::WebGLRenderingContext::markLayerComposited):
48171        (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
48172        (WebCore::WebGLRenderingContext::paintRenderingResultsToImageData):
48173        (WebCore::WebGLRenderingContext::reshape):
48174        (WebCore::WebGLRenderingContext::createBuffer):
48175        (WebCore::WebGLRenderingContext::createFramebuffer):
48176        (WebCore::WebGLRenderingContext::createTexture):
48177        (WebCore::WebGLRenderingContext::createProgram):
48178        (WebCore::WebGLRenderingContext::createRenderbuffer):
48179        (WebCore::WebGLRenderingContext::createShader):
48180        (WebCore::WebGLRenderingContext::getActiveAttrib):
48181        (WebCore::WebGLRenderingContext::getActiveUniform):
48182        (WebCore::WebGLRenderingContext::getContextAttributes):
48183        (WebCore::WebGLRenderingContext::getError):
48184        (WebCore::WebGLRenderingContext::getExtension):
48185        (WebCore::WebGLRenderingContext::getShaderPrecisionFormat):
48186        (WebCore::WebGLRenderingContext::getUniformLocation):
48187        (WebCore::WebGLRenderingContext::drawImageIntoBuffer):
48188        (WebCore::WebGLRenderingContext::videoFrameToImage):
48189        (WebCore::WebGLRenderingContext::validateBufferDataParameters):
48190        (WebCore::WebGLRenderingContext::LRUImageBufferCache::imageBuffer):
48191
481922014-02-26  Bem Jones-Bey  <bjonesbe@adobe.com>
48193
48194        [CSS Shapes] inset and inset-rectangle trigger assert with replaced element and large percentage dimension
48195        https://bugs.webkit.org/show_bug.cgi?id=129060
48196
48197        Reviewed by Simon Fraser.
48198
48199        A bounds check was omitted when computing the width and height for inset
48200        rectangles, making it possible for the width or height to end up being
48201        negative. This patch adds in that check for both. It seems that only
48202        replaced elements like iframe and img trigger this problem.
48203
48204        Tests: fast/shapes/shape-outside-floats/shape-outside-floats-img-inset-negative-width-crash.html
48205               fast/shapes/shape-outside-floats/shape-outside-floats-img-inset-rectangle-negative-width-crash.html
48206
48207        * rendering/shapes/Shape.cpp:
48208        (WebCore::Shape::createShape):
48209
482102014-02-26  Myles C. Maxfield  <mmaxfield@apple.com>
48211
48212        Underlines are too thick when zoomed in
48213        https://bugs.webkit.org/show_bug.cgi?id=129352
48214
48215        Reviewed by Dean Jackson.
48216
48217        The input to the underline drawing code is in user-space, not device-space.
48218        The underlines were getting scaled twice, once in InlineTextBox and the other
48219        in GraphicsContext.
48220
48221        Test: fast/css3-text/css3-text-decoration/text-decoration-scaled.html
48222
48223        * rendering/InlineTextBox.cpp:
48224        (WebCore::InlineTextBox::paintDecoration):
48225
482262014-02-26  Andreas Kling  <akling@apple.com>
48227
48228        Remove unused InspectorCounters.
48229        <https://webkit.org/b/129367>
48230
48231        The InspectorCounters code was only used to implement two layout test
48232        APIs (window.internals.numberOfLive{Nodes,Documents}) yet it had hooks
48233        in crazy places like Node construction and destruction.
48234
48235        Rewrote the internals APIs to iterate over all live Documents instead,
48236        totaling up their referencing Node count. Added a process-global
48237        Document::allDocuments() HashSet to make this whole thing possible.
48238
48239        Reviewed by Sam Weinig.
48240
48241        * CMakeLists.txt:
48242        * GNUmakefile.list.am:
48243        * WebCore.exp.in:
48244        * WebCore.vcxproj/WebCore.vcxproj:
48245        * WebCore.vcxproj/WebCore.vcxproj.filters:
48246        * WebCore.xcodeproj/project.pbxproj:
48247        * bindings/js/JSEventListener.cpp:
48248        * dom/Document.cpp:
48249        (WebCore::Document::allDocuments):
48250        (WebCore::Document::Document):
48251        (WebCore::Document::~Document):
48252        * dom/Document.h:
48253        (WebCore::Node::Node):
48254        * dom/Node.cpp:
48255        (WebCore::Node::~Node):
48256        * inspector/InspectorAllInOne.cpp:
48257        * inspector/InspectorCounters.cpp: Removed.
48258        * inspector/InspectorCounters.h: Removed.
48259        * inspector/InspectorTimelineAgent.cpp:
48260        (WebCore::InspectorTimelineAgent::start):
48261        (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
48262        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
48263        * inspector/InspectorTimelineAgent.h:
48264        * inspector/protocol/Timeline.json:
48265        * platform/ThreadGlobalData.cpp:
48266        * testing/Internals.cpp:
48267        (WebCore::Internals::numberOfLiveNodes):
48268        (WebCore::Internals::numberOfLiveDocuments):
48269        * testing/Internals.h:
48270        * testing/Internals.idl:
48271
482722014-02-26  Joseph Pecoraro  <pecoraro@apple.com>
48273
48274        Web Inspector: Remove console.profiles from window.console API
48275        https://bugs.webkit.org/show_bug.cgi?id=116883
48276
48277        Reviewed by Timothy Hatcher.
48278
48279        console.profiles has been removed or never implemented by other
48280        browsers. We should remove it as well. However, since tests
48281        rely on it, keep it as window.internals.consoleProfiles.
48282
48283        * WebCore.exp.in:
48284        * page/Console.idl:
48285        * testing/Internals.cpp:
48286        (WebCore::Internals::consoleProfiles):
48287        * testing/Internals.h:
48288        * testing/Internals.idl:
48289
482902014-02-26  Martin Hock  <mhock@apple.com>
48291
48292        Create SessionID value-style class for session IDs.
48293        https://bugs.webkit.org/show_bug.cgi?id=129141
48294
48295        Reviewed by Sam Weinig.
48296
48297        * GNUmakefile.list.am:
48298        * WebCore.exp.in:
48299        * WebCore.xcodeproj/project.pbxproj:
48300        * page/Page.cpp: Add SessionID member.
48301        (WebCore::Page::Page):
48302        (WebCore::Page::sessionID): Retrieve sessionID or use settings if not set.
48303        * page/Page.h:
48304        (WebCore::Page::isSessionIDSet):
48305        (WebCore::Page::setSessionID):
48306        * page/SessionID.h: Session ID class consisting solely of its uint64_t session ID.
48307        (WebCore::SessionID::SessionID):
48308        (WebCore::SessionID::isValid): Not empty.
48309        (WebCore::SessionID::isEphemeral):
48310        (WebCore::SessionID::sessionID):
48311        (WebCore::SessionID::operator==): Value-based equality.
48312        (WebCore::SessionID::operator!=):
48313        (WebCore::SessionID::emptySessionID): Zero value also used for HashTraits emptyValue.
48314        (WebCore::SessionID::defaultSessionID):
48315        (WebCore::SessionID::legacyPrivateSessionID):
48316        * page/SessionIDHash.h:
48317        (WTF::SessionIDHash::hash): Just the casted session ID (low order bytes)
48318        (WTF::SessionIDHash::equal):
48319        (WTF::HashTraits<WebCore::SessionID>::emptyValue): Equal to emptySessionID.
48320        (WTF::HashTraits<WebCore::SessionID>::constructDeletedValue): -1 value.
48321        (WTF::HashTraits<WebCore::SessionID>::isDeletedValue):
48322
483232014-02-26  Eric Carlson  <eric.carlson@apple.com>
48324
48325        Fix builds that don't define IMAGE_CONTROLS.
48326
48327        * page/ContextMenuContext.cpp:
48328        (WebCore::ContextMenuContext::ContextMenuContext):
48329
483302014-02-26  Eric Carlson  <eric.carlson@apple.com>
48331
48332        Build fix for OS X after r164720.
48333
48334        * page/ContextMenuContext.cpp:
48335
483362014-02-26  Brady Eidson  <beidson@apple.com>
48337
48338        Pipe experimental image controls menu up to WebKit2
48339        https://bugs.webkit.org/show_bug.cgi?id=129339
48340
48341        Reviewed by Simon Fraser.
48342
48343        Handle events for the image control, starting down the context menu code path if appropriate:
48344        * html/shadow/mac/ImageControlsRootElementMac.cpp:
48345        (WebCore::ImageControlsRootElementMac::defaultEventHandler):
48346        * html/shadow/mac/ImageControlsRootElementMac.h:
48347
48348        Add a class to hold a HitTestResult and addition info about the current ContextMenu invocation:
48349        * page/ContextMenuContext.cpp: Added.
48350        (WebCore::ContextMenuContext::ContextMenuContext):
48351        * page/ContextMenuContext.h: Added.
48352        (WebCore::ContextMenuContext::hitTestResult):
48353        (WebCore::ContextMenuContext::isImageControl):
48354
48355        Update ContextMenuController to work with ContextMenuContext instead of HitTestResult directly:
48356        * page/ContextMenuController.cpp:
48357        (WebCore::ContextMenuController::showContextMenu):
48358        (WebCore::ContextMenuController::createContextMenu):
48359        (WebCore::ContextMenuController::contextMenuItemSelected):
48360        (WebCore::ContextMenuController::populate):
48361        (WebCore::ContextMenuController::addInspectElementItem):
48362        (WebCore::ContextMenuController::checkOrEnableIfNeeded):
48363        (WebCore::ContextMenuController::showImageControlsMenu):
48364        * page/ContextMenuController.h:
48365        (WebCore::ContextMenuController::contextMenu):
48366        (WebCore::ContextMenuController::setContextMenuContext):
48367        (WebCore::ContextMenuController::context):
48368        (WebCore::ContextMenuController::hitTestResult):
48369
48370        * CMakeLists.txt:
48371        * GNUmakefile.list.am:
48372        * WebCore.vcxproj/WebCore.vcxproj:
48373        * WebCore.xcodeproj/project.pbxproj:
48374
483752014-02-26  Zan Dobersek  <zdobersek@igalia.com>
48376
48377        REGRESSION(r162947): Document::topDocument() returns an incorrect reference for cached Documents
48378        https://bugs.webkit.org/show_bug.cgi?id=128175
48379
48380        Reviewed by Antti Koivisto.
48381
48382        * dom/Document.cpp:
48383        (WebCore::Document::topDocument): Fall back to pre-r162947 way of determining the top document
48384        when the Document is in page cache or is in the middle of having its render tree destroyed.
48385        In the first case, the determined top document is actually the document currently loaded in the
48386        Frame to which the cached document is still connected, which is obviously not desired. In the
48387        second case the top document is similarly incorrectly deduced, leading to non-deletion of the
48388        proper top document's AXObjectCache. Because of this AccessibilityRenderObjects are not detached
48389        which results in assertions in RenderObject destructor where the objects are found to be still
48390        flagged as in use by the AX cache.
48391
483922014-02-26  Mihnea Ovidenie  <mihnea@adobe.com>
48393
48394        [CSSRegions] Remove unused method RenderFlowThread::updateLayerToRegionMappings()
48395        https://bugs.webkit.org/show_bug.cgi?id=129368
48396
48397        Reviewed by Andrei Bucur.
48398
48399        Remove unused code, no new tests.
48400
48401        * rendering/RenderFlowThread.h:
48402
484032014-02-26  Xabier Rodriguez Calvar  <calvaris@igalia.com>
48404
48405        [GTK] Regression when showing the captions menu
48406        https://bugs.webkit.org/show_bug.cgi?id=129106
48407
48408        Reviewed by Martin Robinson.
48409
48410        In some cases, when clicking the captions button the menu was not
48411        shown.
48412
48413        Updated test: media/video-controls-captions-trackmenu.html
48414
48415        * Modules/mediacontrols/mediaControlsGtk.js:
48416        (ControllerGtk.prototype.buildCaptionMenu):
48417        (ControllerGtk.prototype.showCaptionMenu): Specify sizes in
48418        pixels.
48419
484202014-02-26  Ryosuke Niwa  <rniwa@webkit.org>
48421
48422        Avoid unnecessary HTML Collection invalidations for id and name attribute changes
48423        https://bugs.webkit.org/show_bug.cgi?id=129361
48424
48425        Reviewed by Benjamin Poulain.
48426
48427        Before this patch, setting id and name attributes resulted in traversing all the ancestors to invalidate
48428        HTML collections on those nodes whenever we had more than one HTMLCollection alive.
48429
48430        Avoid the traversal when HTMLCollections don't have any valid id and name map caches by making each
48431        HTMLCollection explicitly call collectionCachedIdNameMap and collectionWillClearIdNameMap when it caches
48432        or clears the id and name map.
48433
48434        Inspired by https://chromium.googlesource.com/chromium/blink/+/5b06b91b79098f7d42e480f85be32198315d2440
48435
48436        * dom/Document.cpp:
48437        (WebCore::Document::registerCollection): Takes a boolean to indicate whether collection has a valid cache
48438        for the id and name map.
48439        (WebCore::Document::unregisterCollection): Ditto.
48440        (WebCore::Document::collectionCachedIdNameMap): Added.
48441        (WebCore::Document::collectionWillClearIdNameMap): Added.
48442        * dom/Document.h:
48443
48444        * dom/NodeRareData.h:
48445        (WebCore::NodeListsNodeData::adoptDocument): Call invalidateCache on HTML collections after, not before,
48446        calling unregisterCollection and registerCollection since collections' owner nodes have already been
48447        moved to the new document here and invalidateCache uses owner node's document to call
48448        collectionWillClearIdNameMap. So calling invalidateCache before calling unregister/registerCollection
48449        would result in collectionWillClearIdNameMap getting called on a wrong document.
48450
48451        * html/HTMLCollection.cpp:
48452        (WebCore::HTMLCollection::HTMLCollection):
48453        (WebCore::HTMLCollection::~HTMLCollection):
48454        (WebCore::HTMLCollection::invalidateCache):
48455        (WebCore::HTMLCollection::invalidateIdNameCacheMaps): Added the code to uncount itself from the number
48456        of live node lists and HTML collections that need to be invalidated upon id and name attribute changes.
48457        (WebCore::HTMLCollection::updateNameCache):
48458
48459        * html/HTMLCollection.h:
48460        (WebCore::HTMLCollection::invalidateCache):
48461        (WebCore::HTMLCollection::hasIdNameCache): Renamed from hasNameCache.
48462        (WebCore::HTMLCollection::setHasIdNameCache): Renamed from setHasIdNameCache.
48463
48464        * html/HTMLFormControlsCollection.cpp:
48465        (WebCore::HTMLFormControlsCollection::updateNameCache):
48466
484672014-02-25  Frédéric Wang  <fred.wang@free.fr>
48468
48469        Add support for minsize/maxsize attributes.
48470        https://bugs.webkit.org/show_bug.cgi?id=122567
48471
48472        Reviewed by Chris Fleizach.
48473
48474        This change implements the minsize/maxsize attributes of the mo element.
48475        We also switch stretch sizes from int to LayoutUnit to improve accuracy.
48476
48477        Tests: mathml/presentation/stretchy-minsize-maxsize-dynamic.html
48478               mathml/presentation/stretchy-minsize-maxsize.html
48479
48480        * rendering/mathml/RenderMathMLOperator.cpp:
48481        (WebCore::RenderMathMLOperator::SetOperatorProperties):
48482        (WebCore::RenderMathMLOperator::stretchTo):
48483        * rendering/mathml/RenderMathMLOperator.h:
48484        * rendering/mathml/RenderMathMLRow.cpp:
48485        (WebCore::RenderMathMLRow::layout):
48486
484872014-02-25  Mihnea Ovidenie  <mihnea@adobe.com>
48488
48489        [CSSRegions] Small clean-up of flow threads accelerated compositing code
48490        https://bugs.webkit.org/show_bug.cgi?id=129312
48491
48492        Reviewed by Andrei Bucur.
48493
48494        Some clean-up for the code used for regions in accelerated compositing functionality:
48495        1. Rename updateRenderFlowThreadLayersIfNeeded -> updateFlowThreadsLayerToRegionMappingsIfNeeded
48496        as the function updates the mapping between the flow threads layers and their corresponding regions
48497        2. Remove RenderLayerCompositor::updateRenderFlowThreadLayersIfNeeded and move the code in place
48498        at call site since the function body does not require a dedicated function.
48499
48500        No new functionality, no new tests.
48501
48502        * rendering/FlowThreadController.cpp:
48503        (WebCore::FlowThreadController::updateFlowThreadsLayerToRegionMappingsIfNeeded):
48504        Now that the regions are always layers, we do not need to iterate backwards.
48505        * rendering/FlowThreadController.h:
48506        * rendering/RenderLayerCompositor.cpp:
48507        (WebCore::RenderLayerCompositor::updateCompositingLayers):
48508        * rendering/RenderLayerCompositor.h:
48509
485102014-02-25  Zalan Bujtas  <zalan@apple.com>
48511
48512        Subpixel rendering: Ensure consistent border painting width.
48513        https://bugs.webkit.org/show_bug.cgi?id=129259
48514
48515        Reviewed by Simon Fraser.
48516
48517        Border edges are painted as (semi)independent rectangles. When snapping an edge rectangle
48518        to device pixels, its painted dimensions depend on its size and its fractional position.
48519        Specific combination of position and border width can result in painting edges sized differently.
48520        Using device snapped border width to calculate inner/outer rectangles helps to maintain
48521        uniform border width.
48522
48523        Currently not testable.
48524
48525        * rendering/RenderBoxModelObject.cpp:
48526        (WebCore::BorderEdge::BorderEdge):
48527        (WebCore::BorderEdge::shouldRender):
48528        (WebCore::BorderEdge::presentButInvisible):
48529        (WebCore::BorderEdge::widthForPainting):
48530        (WebCore::BorderEdge::getDoubleBorderStripeWidths):
48531        (WebCore::RenderBoxModelObject::paintOneBorderSide):
48532        (WebCore::calculateSideRect):
48533        (WebCore::RenderBoxModelObject::paintBorderSides):
48534        (WebCore::RenderBoxModelObject::paintBorder):
48535        (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
48536        (WebCore::calculateSideRectIncludingInner):
48537
485382014-02-25  Zalan Bujtas  <zalan@apple.com>
48539
48540        Subpixel layout: Remove explicit static_cast<LayoutUnit> conversions.
48541        https://bugs.webkit.org/show_bug.cgi?id=129359
48542
48543        Reviewed by Simon Fraser.
48544
48545        No testable change in behavior.
48546
48547        * css/LengthFunctions.cpp:
48548        (WebCore::minimumValueForLength):
48549        * page/FrameView.cpp:
48550        (WebCore::FrameView::forceLayoutForPagination):
48551        * rendering/InlineFlowBox.cpp:
48552        (WebCore::InlineFlowBox::paintFillLayer):
48553        * rendering/InlineFlowBox.h:
48554        (WebCore::InlineFlowBox::logicalLeftVisualOverflow):
48555        (WebCore::InlineFlowBox::logicalRightVisualOverflow):
48556        * rendering/InlineTextBox.cpp:
48557        (WebCore::InlineTextBox::isSelected):
48558        * rendering/RenderBlock.cpp:
48559        (WebCore::RenderBlock::computeColumnCountAndWidth):
48560        (WebCore::getBPMWidth):
48561        * rendering/RenderBlockFlow.cpp:
48562        (WebCore::RenderBlockFlow::adjustForBorderFit):
48563        * rendering/RenderDeprecatedFlexibleBox.cpp:
48564        (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
48565        * rendering/RenderFieldset.cpp:
48566        (WebCore::RenderFieldset::paintBoxDecorations):
48567        * rendering/RenderTable.h:
48568        (WebCore::RenderTable::borderSpacingInRowDirection):
48569        * rendering/RenderTextControlMultiLine.cpp:
48570        (WebCore::RenderTextControlMultiLine::preferredContentLogicalWidth):
48571        * rendering/RenderTextControlSingleLine.cpp:
48572        (WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth):
48573        * rendering/RootInlineBox.cpp:
48574        (WebCore::RootInlineBox::beforeAnnotationsAdjustment):
48575        (WebCore::RootInlineBox::ascentAndDescentForBox):
48576        * rendering/svg/RenderSVGRoot.cpp:
48577        (WebCore::resolveLengthAttributeForSVG):
48578
485792014-02-25  Anders Carlsson  <andersca@apple.com>
48580
48581        Build fixes.
48582
48583        * CMakeLists.txt:
48584        * GNUmakefile.list.am:
48585        * WebCore.vcxproj/WebCore.vcxproj:
48586        * WebCore.vcxproj/WebCore.vcxproj.filters:
48587
485882014-02-25  Benjamin Poulain  <bpoulain@apple.com>
48589
48590        Build fix for OS X after r164690
48591
48592        * WebCore.exp.in:
48593
485942014-02-25  Anders Carlsson  <andersca@apple.com>
48595
48596        Rename WebCore::VisitedLinkProvider to WebCore::VisitedLinkStore
48597        https://bugs.webkit.org/show_bug.cgi?id=129357
48598
48599        Reviewed by Sam Weinig.
48600
48601        * WebCore.exp.in:
48602        * WebCore.xcodeproj/project.pbxproj:
48603        * dom/VisitedLinkState.cpp:
48604        (WebCore::VisitedLinkState::determineLinkStateSlowCase):
48605        * loader/HistoryController.cpp:
48606        (WebCore::addVisitedLink):
48607        * page/DefaultVisitedLinkStore.cpp: Renamed from Source/WebCore/page/DefaultVisitedLinkProvider.cpp.
48608        (WebCore::DefaultVisitedLinkStore::create):
48609        (WebCore::DefaultVisitedLinkStore::DefaultVisitedLinkStore):
48610        (WebCore::DefaultVisitedLinkStore::~DefaultVisitedLinkStore):
48611        (WebCore::DefaultVisitedLinkStore::isLinkVisited):
48612        (WebCore::DefaultVisitedLinkStore::addVisitedLink):
48613        * page/DefaultVisitedLinkStore.h: Renamed from Source/WebCore/page/DefaultVisitedLinkProvider.h.
48614        * page/Page.cpp:
48615        (WebCore::Page::Page):
48616        (WebCore::Page::visitedLinkStore):
48617        * page/Page.h:
48618        * page/PageGroup.cpp:
48619        (WebCore::PageGroup::visitedLinkStore):
48620        * page/PageGroup.h:
48621        * page/VisitedLinkStore.cpp: Renamed from Source/WebCore/page/VisitedLinkProvider.cpp.
48622        (WebCore::VisitedLinkStore::VisitedLinkStore):
48623        (WebCore::VisitedLinkStore::~VisitedLinkStore):
48624        * page/VisitedLinkStore.h: Renamed from Source/WebCore/page/VisitedLinkProvider.h.
48625
486262014-02-25  Enrica Casucci  <enrica@apple.com>
48627
48628        [WebKit2] Form controls handling.
48629        https://bugs.webkit.org/show_bug.cgi?id=129344
48630        <rdar://problem/16053643>
48631
48632        Reviewed by Simon Fraser and Joseph Pecoraro.
48633
48634        Adding some exports.
48635        
48636        * WebCore.exp.in:
48637
486382014-02-25  Samuel White  <samuel_white@apple.com>
48639
48640        Add accessibility search predicate support for AXOutlines
48641        https://bugs.webkit.org/show_bug.cgi?id=123748
48642
48643        Reviewed by Chris Fleizach.
48644
48645        Added new AXOutlineSearchKey to support finding elements with aria role=tree.
48646
48647        No new tests, updated existing search-predicate.html test to cover AXOutlineSearchKey.
48648
48649        * accessibility/AccessibilityObject.cpp:
48650        (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
48651        * accessibility/AccessibilityObject.h:
48652        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
48653        (createAccessibilitySearchKeyMap):
48654
486552014-02-25  Mark Lam  <mark.lam@apple.com>
48656
48657        Need to initialize VM stack data even when the VM is on an exclusive thread.
48658        <https://webkit.org/b/129265>
48659
48660        Not reviewed.
48661
48662        No new tests.
48663
48664        Relanding r164627 now that <https://webkit.org/b/129341> is fixed.
48665
48666        * bindings/js/JSDOMBinding.cpp:
48667        (WebCore::reportException):
48668        * bindings/js/JSDOMWindowBase.cpp:
48669        (WebCore::JSDOMWindowBase::commonVM):
48670
486712014-02-25  Mark Lam  <mark.lam@apple.com>
48672
48673        JSDOMPromise methods should acquire VM lock before calling into JS.
48674        <https://webkit.org/b/129341>
48675
48676        Reviewed by Geoffrey Garen.
48677
48678        No new tests.
48679
48680        * bindings/js/JSDOMPromise.h:
48681        (WebCore::DeferredWrapper::resolve):
48682        (WebCore::DeferredWrapper::reject):
48683        (WebCore::DeferredWrapper::resolve<String>):
48684        (WebCore::DeferredWrapper::resolve<bool>):
48685        (WebCore::char>>):
48686        (WebCore::DeferredWrapper::reject<String>):
48687
486882014-02-25  Anders Carlsson  <andersca@apple.com>
48689
48690        Simplify visited link style invalidation
48691        https://bugs.webkit.org/show_bug.cgi?id=129340
48692
48693        Reviewed by Dan Bernstein.
48694
48695        Get rid of the static Page::allVisitedStateChanged and Page::visitedStateChanged
48696        member functions and add functions to invalidate all styles on a single page or the style
48697        for a single link hash on a single page.
48698
48699        * WebCore.exp.in:
48700        * page/Page.cpp:
48701        (WebCore::Page::invalidateStylesForAllLinks):
48702        (WebCore::Page::invalidateStylesForLink):
48703        * page/Page.h:
48704        * page/PageGroup.cpp:
48705        (WebCore::PageGroup::addVisitedLink):
48706        (WebCore::PageGroup::removeVisitedLink):
48707        (WebCore::PageGroup::removeVisitedLinks):
48708
487092014-02-25  Andreas Kling  <akling@apple.com>
48710
48711        Remove unused ThreadSpecificInspectorCounters.
48712        <https://webkit.org/b/129337>
48713
48714        We were keeping count of all the JS event listeners in every thread
48715        to support an old Chromium feature that's no longer relevant.
48716
48717        Removing this gets rid of expensive thread-local storage lookups.
48718
48719        Reviewed by Anders Carlsson.
48720
48721        * bindings/js/JSEventListener.cpp:
48722        (WebCore::JSEventListener::JSEventListener):
48723        (WebCore::JSEventListener::~JSEventListener):
48724        * inspector/InspectorCounters.cpp:
48725        * inspector/InspectorCounters.h:
48726        * inspector/InspectorTimelineAgent.cpp:
48727        (WebCore::InspectorTimelineAgent::setDOMCounters):
48728        * inspector/protocol/Timeline.json:
48729        * platform/ThreadGlobalData.cpp:
48730        (WebCore::ThreadGlobalData::ThreadGlobalData):
48731        (WebCore::ThreadGlobalData::destroy):
48732        * platform/ThreadGlobalData.h:
48733
487342014-02-25  Laszlo Vidacs  <lvidacs.u-szeged@partner.samsung.com>
48735
48736        display:table with padding and/or borders in border-box calculates height incorrectly
48737        https://bugs.webkit.org/show_bug.cgi?id=126576
48738
48739        Reviewed by David Hyatt.
48740
48741        Based on blink issue https://codereview.chromium.org/25206002/
48742
48743        Tests: fast/box-sizing/css-table-collapse.html
48744               fast/box-sizing/css-table-no-collapse.html
48745               fast/box-sizing/table-collapse.html
48746               fast/box-sizing/table-no-collapse.html
48747
48748        * rendering/RenderBox.cpp:
48749        (WebCore::RenderBox::computePositionedLogicalHeightUsing):
48750
487512014-02-25  Anders Carlsson  <andersca@apple.com>
48752
48753        Get rid of VisitedLinkStrategy
48754        https://bugs.webkit.org/show_bug.cgi?id=129324
48755
48756        Reviewed by Dan Bernstein.
48757
48758        * GNUmakefile.list.am:
48759        * WebCore.vcxproj/WebCore.vcxproj:
48760        * WebCore.vcxproj/WebCore.vcxproj.filters:
48761        * WebCore.xcodeproj/project.pbxproj:
48762        * platform/PlatformStrategies.h:
48763        (WebCore::PlatformStrategies::PlatformStrategies):
48764        * platform/VisitedLinkStrategy.h: Removed.
48765
487662014-02-25  Alexey Proskuryakov  <ap@apple.com>
48767
48768        Rolling out http://trac.webkit.org/changeset/164611, because it broke
48769        WebKit2.PrivateBrowsingPushStateNoHistoryCallback API test
48770
48771        The change was for:
48772
48773        https://bugs.webkit.org/show_bug.cgi?id=129141
48774        Create SessionID class
48775
487762014-02-25  Commit Queue  <commit-queue@webkit.org>
48777
48778        Unreviewed, rolling out r164627.
48779        http://trac.webkit.org/changeset/164627
48780        https://bugs.webkit.org/show_bug.cgi?id=129325
48781
48782        Broke SubtleCrypto tests (Requested by ap on #webkit).
48783
48784        * bindings/js/JSDOMBinding.cpp:
48785        (WebCore::reportException):
48786        * bindings/js/JSDOMWindowBase.cpp:
48787        (WebCore::JSDOMWindowBase::commonVM):
48788
487892014-02-25  Anders Carlsson  <andersca@apple.com>
48790
48791        DefaultVisitedLinkProvider can just call into the page group directly
48792        https://bugs.webkit.org/show_bug.cgi?id=129320
48793
48794        Reviewed by Andreas Kling.
48795
48796        * page/DefaultVisitedLinkProvider.cpp:
48797        (WebCore::DefaultVisitedLinkProvider::isLinkVisited):
48798        (WebCore::DefaultVisitedLinkProvider::addVisitedLink):
48799
488002014-02-25  Commit Queue  <commit-queue@webkit.org>
48801
48802        Unreviewed, rolling out r164638.
48803        http://trac.webkit.org/changeset/164638
48804        https://bugs.webkit.org/show_bug.cgi?id=129321
48805
48806        Broke Windows build. (Requested by bfulgham on #webkit).
48807
48808        * dom/ContainerNode.h:
48809        (WebCore::ChildNodesLazySnapshot::takeSnapshot):
48810        (WebCore::ChildNodesLazySnapshot::hasSnapshot):
48811        * dom/Element.cpp:
48812        (WebCore::ensureAttrNodeListForElement):
48813        (WebCore::Element::attributes):
48814        * dom/ElementIteratorAssertions.h:
48815        (WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
48816        * dom/ElementRareData.h:
48817        (WebCore::ElementRareData::create):
48818        (WebCore::ElementRareData::setAttributeMap):
48819        * dom/MutationObserverRegistration.cpp:
48820        (WebCore::MutationObserverRegistration::create):
48821        (WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
48822        (WebCore::MutationObserverRegistration::clearTransientRegistrations):
48823        (WebCore::MutationObserverRegistration::addRegistrationNodesToSet):
48824        * dom/MutationObserverRegistration.h:
48825        * dom/NamedNodeMap.h:
48826        (WebCore::NamedNodeMap::create):
48827        (WebCore::NamedNodeMap::NamedNodeMap):
48828        * dom/Node.cpp:
48829        (WebCore::Node::ensureRareData):
48830        (WebCore::Node::didMoveToNewDocument):
48831        (WebCore::Node::ensureEventTargetData):
48832        (WebCore::Node::mutationObserverRegistry):
48833        (WebCore::Node::registerMutationObserver):
48834        (WebCore::Node::unregisterMutationObserver):
48835        (WebCore::Node::notifyMutationObserversNodeWillDetach):
48836        * dom/Node.h:
48837        * dom/NodeRareData.h:
48838        (WebCore::NodeListsNodeData::create):
48839        (WebCore::NodeListsNodeData::NodeListsNodeData):
48840        (WebCore::NodeMutationObserverData::create):
48841        (WebCore::NodeMutationObserverData::NodeMutationObserverData):
48842        (WebCore::NodeRareData::create):
48843        (WebCore::NodeRareData::clearNodeLists):
48844        (WebCore::NodeRareData::ensureNodeLists):
48845        (WebCore::NodeRareData::ensureMutationObserverData):
48846        (WebCore::NodeRareData::NodeRareData):
48847        * dom/StyledElement.cpp:
48848        (WebCore::StyledElement::rebuildPresentationAttributeStyle):
48849
488502014-02-25  Eric Carlson  <eric.carlson@apple.com>
48851
48852        [iOS] Show status image when playing video to external device
48853        https://bugs.webkit.org/show_bug.cgi?id=129277
48854
48855        Reviewed by Jer Noble.
48856
48857        * Modules/mediacontrols/mediaControlsApple.js:
48858        (Controller.prototype.handleEvent): Restructure the code so it is possible to handle events
48859            that target the video element which aren't in the HandledVideoEvents array.
48860
48861        * Modules/mediacontrols/mediaControlsiOS.js:
48862        (ControllerIOS.prototype.currentPlaybackTargetIsWireless): webkitCurrentPlaybackTargetIsWireless
48863            is an attribute, not a function.
48864        (ControllerIOS.prototype.updateWirelessPlaybackStatus): Fix style.
48865        (ControllerIOS.prototype.updateWirelessTargetAvailable): Ditto.
48866        (ControllerIOS.prototype.updateProgress): Ditto.
48867        (ControllerIOS.prototype.handleWrapperTouchStart): Show the controls if the wireless status
48868            display is touched.
48869        (ControllerIOS.prototype.handleFullscreenButtonClicked): Fix style
48870        (ControllerIOS.prototype.handleWirelessPlaybackChange): Ditto.
48871        (ControllerIOS.prototype.handleWirelessTargetAvailableChange):
48872        (ControllerIOS.prototype.handleWirelessPickerButtonClicked): Ditto. Stop even propagation.
48873
48874        Move "playback target" logic into HTMLMediaSession.
48875        * html/HTMLMediaElement.cpp:
48876        (WebCore::HTMLMediaElement::~HTMLMediaElement): Call media session.
48877        (WebCore::HTMLMediaElement::loadResource): Tell media session to apply media player
48878            restrictions now that it has a url.
48879        (WebCore::HTMLMediaElement::invalidateCachedTime): Only log when cached time is not 
48880            already invalie.
48881        (WebCore::HTMLMediaElement::webkitShowPlaybackTargetPicker): Call media session.
48882        (WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsWireless): Ditto.
48883        (WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): Ditto.
48884        (WebCore::HTMLMediaElement::addEventListener): Ditto.
48885        (WebCore::HTMLMediaElement::removeEventListen): Ditto.
48886        (WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent): Ditto.
48887        (WebCore::HTMLMediaElement::createMediaPlayer): Ditto.
48888
48889        * html/HTMLMediaSession.cpp:
48890        (WebCore::restrictionName): Log new WirelessVideoPlaybackDisabled restriction.
48891        (WebCore::HTMLMediaSession::showingPlaybackTargetPickerPermitted): Return false if there
48892            is no page, or if wireless playback is disabled.
48893        (WebCore::HTMLMediaSession::currentPlaybackTargetIsWireless): New, logic from HTMLMediaElement.
48894        (WebCore::HTMLMediaSession::showPlaybackTargetPicker): Ditto.
48895        (WebCore::HTMLMediaSession::hasWirelessPlaybackTargets): Ditto.
48896        (WebCore::HTMLMediaSession::wirelessVideoPlaybackDisabled): Ditto.
48897        (WebCore::HTMLMediaSession::setWirelessVideoPlaybackDisabled): Ditto.
48898        (WebCore::HTMLMediaSession::setHasPlaybackTargetAvailabilityListeners): Ditto.
48899        (WebCore::HTMLMediaSession::applyMediaPlayerRestrictions): New, apply media player specific
48900            restriction.
48901        * html/HTMLMediaSession.h:
48902
48903        Move "playback target" logic into HTMLMediaSession.
48904        * html/HTMLVideoElement.cpp:
48905        (WebCore::HTMLVideoElement::parseAttribute): Call media session.
48906        (WebCore::HTMLVideoElement::webkitWirelessVideoPlaybackDisabled): Call media session.
48907
48908        * platform/audio/MediaSessionManager.h:
48909        (WebCore::MediaSessionManager::showPlaybackTargetPicker): New method, does nothing in base class.
48910
48911        * platform/audio/ios/MediaSessionManagerIOS.h:
48912        * platform/audio/ios/MediaSessionManagerIOS.mm:
48913        (WebCore::MediaSessionManageriOS::showPlaybackTargetPicker): Add non-functional stub.
48914
48915        Implement wireless playback control and status API.
48916        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
48917        (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification): Dispatch TargetIsWirelessChanged.
48918        (WebCore::MediaPlayerPrivateAVFoundation::playbackTargetIsWirelessChanged): Pass through to
48919            media element.
48920        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
48921
48922        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
48923        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
48924        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize
48925            m_allowsWirelessVideoPlayback.
48926        (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Remove "externalPlaybackActive" observer.
48927        (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): Fix broken logging.
48928        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Add "externalPlaybackActive" observer,
48929            set initial wireless playback.
48930        (WebCore::MediaPlayerPrivateAVFoundationObjC::createPixelBuffer):  Fix broken logging.
48931        (WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack): Ditto.
48932        (WebCore::MediaPlayerPrivateAVFoundationObjC::isCurrentPlaybackTargetWireless): New.
48933        (WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessVideoPlaybackDisabled): New.
48934        (WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessVideoPlaybackDisabled): New.
48935        (WebCore::MediaPlayerPrivateAVFoundationObjC::playbackTargetIsWirelessDidChange): New.
48936        (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): Deal with 
48937            externalPlaybackActive.
48938
489392014-02-24  Brent Fulgham  <bfulgham@apple.com>
48940
48941        [Win] Gracefully recover from missing 'naturalSize' parameter for media
48942        https://bugs.webkit.org/show_bug.cgi?id=129278
48943
48944        Reviewed by Eric Carlson.
48945
48946        * platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h: Add declaration for
48947        missing function call.
48948        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
48949        (WebCore::MediaPlayerPrivateAVFoundationCF::assetStatus): Don't treat missing 'naturalSize'
48950        as a fatal error.
48951        (WebCore::MediaPlayerPrivateAVFoundationCF::tracksChanged): Handle case of asset track
48952        not being available yet. 
48953        (WebCore::MediaPlayerPrivateAVFoundationCF::sizeChanged): If the 'naturalSize' is empty,
48954        use the Player Item's 'presentationSize' instead.
48955        (WebCore::AVFWrapper::processNotification): Add missing handler for duration changed.
48956
489572014-02-25  Sergio Villar Senin  <svillar@igalia.com>
48958
48959        [CSS Grid Layout] Add ENABLE flag
48960        https://bugs.webkit.org/show_bug.cgi?id=129153
48961
48962        Reviewed by Simon Fraser.
48963
48964        Added ENABLE_CSS_GRID_LAYOUT feature flag.
48965
48966        * Configurations/FeatureDefines.xcconfig:
48967        * css/CSSComputedStyleDeclaration.cpp:
48968        (WebCore::isLayoutDependent):
48969        (WebCore::ComputedStyleExtractor::propertyValue):
48970        * css/CSSGridTemplateAreasValue.cpp:
48971        * css/CSSGridTemplateAreasValue.h:
48972        * css/CSSParser.cpp:
48973        (WebCore::CSSParserContext::CSSParserContext):
48974        (WebCore::operator==):
48975        (WebCore::isValidKeywordPropertyAndValue):
48976        (WebCore::isKeywordPropertyID):
48977        (WebCore::CSSParser::parseValue):
48978        * css/CSSParser.h:
48979        * css/CSSParserMode.h:
48980        * css/CSSPrimitiveValueMappings.h:
48981        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
48982        * css/CSSPropertyNames.in:
48983        * css/CSSValue.cpp:
48984        (WebCore::CSSValue::equals):
48985        (WebCore::CSSValue::cssText):
48986        (WebCore::CSSValue::destroy):
48987        * css/DeprecatedStyleBuilder.cpp:
48988        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
48989        * css/StyleProperties.cpp:
48990        (WebCore::StyleProperties::getPropertyValue):
48991        * css/StylePropertyShorthand.cpp:
48992        (WebCore::shorthandForProperty):
48993        (WebCore::matchingShorthandsForLonghand):
48994        * css/StyleResolver.cpp:
48995        (WebCore::equivalentBlockDisplay):
48996        (WebCore::StyleResolver::adjustRenderStyle):
48997        (WebCore::StyleResolver::applyProperty):
48998        * css/StyleResolver.h:
48999        * dom/Document.cpp:
49000        * dom/Document.h:
49001        * rendering/RenderElement.cpp:
49002        (WebCore::RenderElement::createFor):
49003        * rendering/RenderGrid.cpp:
49004        * rendering/RenderGrid.h:
49005        * rendering/style/GridCoordinate.h:
49006        * rendering/style/GridLength.h:
49007        * rendering/style/GridPosition.h:
49008        * rendering/style/GridTrackSize.h:
49009        * rendering/style/RenderStyle.cpp:
49010        (WebCore::RenderStyle::changeRequiresLayout):
49011        * rendering/style/RenderStyle.h:
49012        * rendering/style/RenderStyleConstants.h:
49013        * rendering/style/StyleAllInOne.cpp:
49014        * rendering/style/StyleGridData.cpp:
49015        * rendering/style/StyleGridData.h:
49016        * rendering/style/StyleGridItemData.cpp:
49017        * rendering/style/StyleGridItemData.h:
49018        * rendering/style/StyleRareNonInheritedData.cpp:
49019        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
49020        (WebCore::StyleRareNonInheritedData::operator==):
49021        * rendering/style/StyleRareNonInheritedData.h:
49022
490232014-02-25  Jer Noble  <jer.noble@apple.com>
49024
49025        [EME][Mac] Fix a few issues in CDMSessionMediaSourceAVFObjC.
49026        https://bugs.webkit.org/show_bug.cgi?id=129310
49027
49028        Reviewed by Eric Carlson.
49029
49030        Only send a 'keyerror' event if an actual error code was returned, not just
49031        when no key was added:
49032        * Modules/encryptedmedia/MediaKeySession.cpp:
49033        (WebCore::MediaKeySession::addKeyTimerFired):
49034
49035        The 'length' parameter to a typed ArrayBufferView is the number of entries
49036        in the array, not the byte length:
49037        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
49038        (WebCore::CDMSessionMediaSourceAVFObjC::generateKeyRequest):
49039
49040        The return value of streamingContentKeyRequestDataForApp:contentIdentifier:trackId:options:error
49041        is autoreleased; do not wrap it in an adoptNS:
49042        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
49043        (WebCore::CDMSessionMediaSourceAVFObjC::update):
49044
490452014-02-25  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
49046
49047        [MediaStream] Adding mock implementation of UserMediaClient
49048        https://bugs.webkit.org/show_bug.cgi?id=129274
49049
49050        Reviewed by Eric Carlson.
49051
49052        * platform/mock/UserMediaClientMock.h: Added.
49053        (WebCore::UserMediaClientRequestNotifier::UserMediaClientRequestNotifier):
49054        * testing/Internals.cpp:
49055        (WebCore::Internals::Internals):
49056
490572014-02-25  Ryosuke Niwa  <rniwa@webkit.org>
49058
49059        Tighten bitfields in live NodeLists and HTMLCollections
49060        https://bugs.webkit.org/show_bug.cgi?id=129300
49061
49062        Reviewed by Geoffrey Garen.
49063
49064        Reduce the number of bits used for m_rootType and m_type in LiveNodeList.
49065        Also use enum class for LiveNodeList types. We keep "Type" suffix not to
49066        confuse old-ish compilers.
49067
49068        * dom/ClassNodeList.cpp:
49069        (WebCore::ClassNodeList::ClassNodeList):
49070        * dom/ContainerNode.cpp:
49071        (WebCore::ContainerNode::getElementsByTagName):
49072        (WebCore::ContainerNode::getElementsByName):
49073        (WebCore::ContainerNode::getElementsByClassName):
49074        (WebCore::ContainerNode::radioNodeList):
49075        * dom/LiveNodeList.cpp:
49076        (WebCore::LiveNodeList::collectionFirst):
49077        (WebCore::LiveNodeList::collectionTraverseForward):
49078        * dom/LiveNodeList.h:
49079        (WebCore::LiveNodeList::LiveNodeList):
49080        * dom/NameNodeList.cpp:
49081        (WebCore::NameNodeList::NameNodeList):
49082        * dom/NameNodeList.h:
49083        (WebCore::NameNodeList::create):
49084        * dom/NodeRareData.h:
49085        (WebCore::NodeListsNodeData::namedNodeListKey):
49086        * dom/TagNodeList.cpp:
49087        (WebCore::HTMLTagNodeList::HTMLTagNodeList):
49088        * dom/TagNodeList.h:
49089        (WebCore::TagNodeList::create):
49090        (WebCore::HTMLTagNodeList::create):
49091        * html/HTMLCollection.h:
49092        * html/LabelableElement.cpp:
49093        (WebCore::LabelableElement::labels):
49094        * html/LabelsNodeList.cpp:
49095        (WebCore::LabelsNodeList::LabelsNodeList):
49096        * html/LabelsNodeList.h:
49097        * html/RadioNodeList.cpp:
49098        (WebCore::RadioNodeList::RadioNodeList):
49099        * html/RadioNodeList.h:
49100        (WebCore::RadioNodeList::create):
49101
491022014-02-24  Anders Carlsson  <andersca@apple.com>
49103
49104        Make it possible to set the visited link provider on a per page basis
49105        https://bugs.webkit.org/show_bug.cgi?id=129288
49106
49107        Reviewed by Andreas Kling.
49108
49109        * WebCore.exp.in:
49110        Export symbols needed by WebKit2.
49111
49112        * WebCore.xcodeproj/project.pbxproj:
49113        Make VisitedLinkProvider a private header.
49114
49115        * page/Page.cpp:
49116        (WebCore::Page::Page):
49117        Take the visited link provider from the PageClients object.
49118
49119        (WebCore::Page::visitedLinkProvider):
49120        If the page has a visited link provider set, return it.
49121
49122        * page/Page.h:
49123        Add VisitedLinkProvider to Page and PageClients.
49124
491252014-02-25  Morten Stenshorne  <mstensho@opera.com>
49126
49127        [New Multicolumn] -webkit-column-break-inside:avoid doesn't work
49128        https://bugs.webkit.org/show_bug.cgi?id=129299
49129
49130        Reviewed by Andrei Bucur.
49131
49132        adjustForUnsplittableChild() simply forgot to check whether we
49133        were inside flow thread based multicol.
49134
49135        Test: fast/multicol/newmulticol/avoid-column-break-inside.html
49136
49137        * rendering/RenderBlockFlow.cpp:
49138        (WebCore::RenderBlockFlow::adjustForUnsplittableChild):
49139
491402014-02-25  Mihnea Ovidenie  <mihnea@adobe.com>
49141
49142        [CSSRegions] Remove unused function RenderFlowThread::regionForCompositedLayer
49143        https://bugs.webkit.org/show_bug.cgi?id=129303
49144
49145        Reviewed by Andrei Bucur.
49146
49147        Cleanup, no funtionality change, no new tests.
49148
49149        * rendering/RenderFlowThread.h:
49150
491512014-02-25  Mihai Tica  <mitica@adobe.com>
49152
49153        [CSS Blending] -webkit-mix-blend-mode should force transform-style: flat.
49154        https://bugs.webkit.org/show_bug.cgi?id=126158
49155
49156        Reviewed by Mihnea Ovidenie.
49157
49158        As stated in the http://www.w3.org/TR/css3-transforms/#propdef-transform-style, an element with blending
49159        should force transform-style: flat.
49160
49161        Test: css3/compositing/blend-mode-transform-style.html
49162
49163        * css/StyleResolver.cpp:
49164        (WebCore::StyleResolver::adjustRenderStyle): If blending is detected, set transform-style to flat.
49165
491662014-02-25  Zan Dobersek  <zdobersek@igalia.com>
49167
49168        Move to using std::unique_ptr for Element, Node and related classes
49169        https://bugs.webkit.org/show_bug.cgi?id=129058
49170
49171        Reviewed by Anders Carlsson.
49172
49173        Replace uses of OwnPtr and PassOwnPtr in Element, Node and the related
49174        classes with std::unique_ptr and move semantics.
49175
49176        * dom/ContainerNode.h:
49177        (WebCore::ChildNodesLazySnapshot::takeSnapshot):
49178        (WebCore::ChildNodesLazySnapshot::hasSnapshot):
49179        * dom/Element.cpp:
49180        (WebCore::ensureAttrNodeListForElement):
49181        (WebCore::Element::attributes):
49182        * dom/ElementIteratorAssertions.h:
49183        (WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
49184        * dom/ElementRareData.h:
49185        (WebCore::ElementRareData::setAttributeMap):
49186        * dom/MutationObserverRegistration.cpp:
49187        (WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
49188        (WebCore::MutationObserverRegistration::clearTransientRegistrations):
49189        (WebCore::MutationObserverRegistration::addRegistrationNodesToSet):
49190        * dom/MutationObserverRegistration.h:
49191        * dom/NamedNodeMap.h:
49192        (WebCore::NamedNodeMap::NamedNodeMap):
49193        * dom/Node.cpp:
49194        (WebCore::Node::ensureRareData):
49195        (WebCore::Node::didMoveToNewDocument):
49196        (WebCore::Node::ensureEventTargetData):
49197        (WebCore::Node::mutationObserverRegistry):
49198        (WebCore::Node::registerMutationObserver):
49199        (WebCore::Node::unregisterMutationObserver):
49200        (WebCore::Node::notifyMutationObserversNodeWillDetach):
49201        * dom/Node.h:
49202        * dom/NodeRareData.h:
49203        (WebCore::NodeListsNodeData::NodeListsNodeData):
49204        (WebCore::NodeRareData::NodeRareData):
49205        (WebCore::NodeRareData::clearNodeLists):
49206        (WebCore::NodeRareData::ensureNodeLists):
49207        (WebCore::NodeRareData::ensureMutationObserverData):
49208        * dom/StyledElement.cpp:
49209        (WebCore::StyledElement::rebuildPresentationAttributeStyle):
49210
492112014-02-25  Andreas Kling  <akling@apple.com>
49212
49213        Prune dead code for Web Inspector memory instrumentation.
49214        <https://webkit.org/b/129286>
49215
49216        This was leftover code from Chromium's inspector. It's not used by
49217        today's WebKit inspector.
49218
49219        Reviewed by Sam Weinig.
49220
49221        * CMakeLists.txt:
49222        * DerivedSources.make:
49223        * GNUmakefile.am:
49224        * GNUmakefile.list.am:
49225        * WebCore.vcxproj/WebCore.vcxproj:
49226        * WebCore.vcxproj/WebCore.vcxproj.filters:
49227        * WebCore.xcodeproj/project.pbxproj:
49228        * inspector/InspectorAllInOne.cpp:
49229        * inspector/InspectorController.cpp:
49230        (WebCore::InspectorController::InspectorController):
49231        * inspector/InspectorController.h:
49232        * inspector/InspectorMemoryAgent.cpp: Removed.
49233        * inspector/InspectorMemoryAgent.h: Removed.
49234        * inspector/InspectorTimelineAgent.cpp:
49235        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
49236        * inspector/InspectorTimelineAgent.h:
49237        * inspector/WorkerInspectorController.cpp:
49238        (WebCore::WorkerInspectorController::WorkerInspectorController):
49239        * inspector/protocol/Memory.json: Removed.
49240
492412014-02-24  Chris Fleizach  <cfleizach@apple.com>
49242
49243        AX: Support abbr, acronym
49244        https://bugs.webkit.org/show_bug.cgi?id=128860
49245
49246        Reviewed by Mario Sanchez Prada.
49247
49248        Expose the data in <abbr>, <acronym> and <th abbr=""> as an 
49249        alternateTextValue() parameter.
49250
49251        Test: platform/mac/accessibility/abbr-acronym-tags.html
49252
49253        * accessibility/AccessibilityObject.cpp:
49254        (WebCore::AccessibilityObject::hasTagName):
49255        * accessibility/AccessibilityObject.h:
49256        (WebCore::AccessibilityObject::alternateTextValue):
49257        (WebCore::AccessibilityObject::supportsAlternateTextValue):
49258        * accessibility/AccessibilityRenderObject.cpp:
49259        (WebCore::AccessibilityRenderObject::alternateTextValue):
49260        (WebCore::AccessibilityRenderObject::supportsAlternateTextValue):
49261        * accessibility/AccessibilityRenderObject.h:
49262        * accessibility/AccessibilityTableCell.cpp:
49263        (WebCore::AccessibilityTableCell::alternateTextValue):
49264        (WebCore::AccessibilityTableCell::supportsAlternateTextValue):
49265        * accessibility/AccessibilityTableCell.h:
49266        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
49267        (AXAttributeStringSetAlternateTextValue):
49268        (AXAttributedStringAppendText):
49269        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
49270        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
49271
492722014-02-24  Martin Robinson  <mrobinson@igalia.com>
49273
49274        [GTK] generate-gtkdoc should not generate documentation for source files for unbuilt source files
49275        https://bugs.webkit.org/show_bug.cgi?id=128417
49276
49277        Reviewed by Carlos Garcia Campos.
49278
49279        * bindings/gobject/GNUmakefile.am: Generate a config file for webkitdom documentation generation.
49280
492812014-02-24  Mark Lam  <mark.lam@apple.com>
49282
49283        Need to initialize VM stack data even when the VM is on an exclusive thread.
49284        <https://webkit.org/b/129265>
49285
49286        Reviewed by Geoffrey Garen.
49287
49288        No new tests.
49289
49290        * bindings/js/JSDOMBinding.cpp:
49291        (WebCore::reportException):
49292        - Added an assertion to ensure that we are holding the JSLock.
49293        * bindings/js/JSDOMWindowBase.cpp:
49294        (WebCore::JSDOMWindowBase::commonVM):
49295        - Updated to use the new VM::setExclusiveThread().
49296
492972014-02-24  Anders Carlsson  <andersca@apple.com>
49298
49299        Add a DefaultVisitedLinkProvider and route visited link actions through it
49300        https://bugs.webkit.org/show_bug.cgi?id=129285
49301
49302        Reviewed by Dan Bernstein.
49303
49304        DefaultVisitedLinkProvider currently just forwards everything to the visited link strategy,
49305        but will soon take over the responsibilities of visited link handling from PageGroup.
49306        
49307        * CMakeLists.txt:
49308        * GNUmakefile.list.am:
49309        * WebCore.vcxproj/WebCore.vcxproj:
49310        * WebCore.vcxproj/WebCore.vcxproj.filters:
49311        * WebCore.xcodeproj/project.pbxproj:
49312        * dom/VisitedLinkState.cpp:
49313        (WebCore::VisitedLinkState::determineLinkStateSlowCase):
49314        * loader/HistoryController.cpp:
49315        (WebCore::addVisitedLink):
49316        (WebCore::HistoryController::updateForStandardLoad):
49317        (WebCore::HistoryController::updateForRedirectWithLockedBackForwardList):
49318        (WebCore::HistoryController::updateForClientRedirect):
49319        (WebCore::HistoryController::updateForSameDocumentNavigation):
49320        (WebCore::HistoryController::pushState):
49321        (WebCore::HistoryController::replaceState):
49322        * page/DefaultVisitedLinkProvider.cpp: Copied from Source/WebCore/page/VisitedLinkProvider.h.
49323        (WebCore::DefaultVisitedLinkProvider::create):
49324        (WebCore::DefaultVisitedLinkProvider::DefaultVisitedLinkProvider):
49325        (WebCore::DefaultVisitedLinkProvider::~DefaultVisitedLinkProvider):
49326        (WebCore::DefaultVisitedLinkProvider::isLinkVisited):
49327        (WebCore::DefaultVisitedLinkProvider::addVisitedLink):
49328        * page/DefaultVisitedLinkProvider.h: Copied from Source/WebCore/page/VisitedLinkProvider.h.
49329        * page/Page.cpp:
49330        (WebCore::Page::visitedLinkProvider):
49331        * page/Page.h:
49332        * page/PageGroup.cpp:
49333        (WebCore::PageGroup::PageGroup):
49334        (WebCore::PageGroup::visitedLinkProvider):
49335        * page/PageGroup.h:
49336        * page/VisitedLinkProvider.h:
49337
493382014-02-24  Jeremy Jones  <jeremyj@apple.com>
49339
49340        WK2 AVKit fullscreen doesn't display video.
49341        https://bugs.webkit.org/show_bug.cgi?id=128564
49342
49343        Reviewed by Simon Fraser.
49344
49345        * WebCore.exp.in:
49346        Export WebCore::PlatformCALayer::platformCALayer()
49347
49348        * platform/ios/WebVideoFullscreenInterface.h:
49349        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
49350        Remove SetVideoLayerID(). 
49351
49352        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
49353        (WebVideoFullscreenInterfaceAVKit::setVideoLayer):
49354        Wrap make video layer look like an AVAVPlayerLayer with WebAVPlayerLayer
49355
49356        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
49357        (WebVideoFullscreenModelMediaElement::setMediaElement):
49358        Pass along the videoLayer before borrowing it so the interface will be ready to
49359        catch the transaction that removes it.
49360
493612014-02-24  Samuel White  <samuel_white@apple.com>
49362
49363        AX: AccessibilityObject::findMatchingObjects should never include 'this' in results.
49364        https://bugs.webkit.org/show_bug.cgi?id=129243
49365
49366        Reviewed by Chris Fleizach.
49367
49368        Fix removes the container object from the search results when searching backwards. This
49369        makes backwards & forwards search results consistent with each other.
49370
49371        Test: platform/mac/accessibility/search-predicate-container-not-included.html
49372
49373        * accessibility/AccessibilityObject.cpp:
49374        (WebCore::AccessibilityObject::findMatchingObjects):
49375
493762014-02-24  Samuel White  <samuel_white@apple.com>
49377
49378        AX: findMatchingObjects backwards start position inconsistent with forwards start position when startObject == nullptr.
49379        https://bugs.webkit.org/show_bug.cgi?id=129266
49380
49381        Reviewed by Chris Fleizach.
49382
49383        When searching forward with no start object, the first thing considered is the first child of
49384        the container. However, when searching backwards with no start object nothing in the container
49385        is considered; this basically negates the search. This patch makes backwards searching without
49386        a start object start from the last child of the container to match forward search expectations.
49387
49388        Test: platform/mac/accessibility/search-predicate-start-not-specified.html
49389
49390        * accessibility/AccessibilityObject.cpp:
49391        (WebCore::AccessibilityObject::findMatchingObjects):
49392
493932014-02-24  Andreas Kling  <akling@apple.com>
49394
49395        Prune dead code for Web Inspector canvas instrumentation.
49396        <https://webkit.org/b/129269>
49397
49398        This was leftover code from Chromium's inspector. It's not used by
49399        today's WebKit inspector.
49400
49401        Reviewed by Timothy Hatcher.
49402
49403        * CMakeLists.txt:
49404        * DerivedSources.make:
49405        * GNUmakefile.am:
49406        * GNUmakefile.list.am:
49407        * WebCore.vcxproj/WebCore.vcxproj:
49408        * WebCore.vcxproj/WebCore.vcxproj.filters:
49409        * WebCore.xcodeproj/project.pbxproj:
49410        * bindings/js/JSHTMLCanvasElementCustom.cpp:
49411        (WebCore::JSHTMLCanvasElement::getContext):
49412        * inspector/InjectedScriptCanvasModule.cpp: Removed.
49413        * inspector/InjectedScriptCanvasModule.h: Removed.
49414        * inspector/InspectorAllInOne.cpp:
49415        * inspector/InspectorCanvasAgent.cpp: Removed.
49416        * inspector/InspectorCanvasAgent.h: Removed.
49417        * inspector/InspectorCanvasInstrumentation.h: Removed.
49418        * inspector/InspectorController.cpp:
49419        (WebCore::InspectorController::InspectorController):
49420        (WebCore::InspectorController::didBeginFrame):
49421        * inspector/InspectorInstrumentation.cpp:
49422        (WebCore::InspectorInstrumentation::frameDetachedFromParentImpl):
49423        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
49424        * inspector/InspectorInstrumentation.h:
49425        * inspector/InstrumentingAgents.cpp:
49426        (WebCore::InstrumentingAgents::InstrumentingAgents):
49427        (WebCore::InstrumentingAgents::reset):
49428        * inspector/InstrumentingAgents.h:
49429
494302014-02-24  Zoltan Horvath  <zoltan@webkit.org>
49431
49432        [CSS Shapes] Adjust lineTop position to the next available wrapping location at shape-outsides
49433        https://bugs.webkit.org/show_bug.cgi?id=128693
49434
49435        Reviewed by David Hyatt.
49436
49437        When we don't have space next to the floating container, but we have space inside the floating-container next
49438        to the defined shape-outside, we should wrap around the shape-outside. This patch fixes the behavior both for
49439        cases when there is no space to fit at the first line, and for the additional lines cases.
49440
49441        Test: fast/shapes/shape-outside-floats/shape-outside-floats-linetop-adjustment.html
49442
49443        * rendering/line/BreakingContextInlineHeaders.h:
49444        (WebCore::BreakingContext::handleText):
49445        (WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded):
49446        * rendering/line/LineWidth.cpp:
49447        (WebCore::availableWidthAtOffset):
49448        (WebCore::LineWidth::updateLineDimension): Added new helper.
49449        (WebCore::isWholeLineFit): Added new helper.
49450        (WebCore::LineWidth::wrapNextToShapeOutside): Added new helper.
49451        (WebCore::LineWidth::fitBelowFloats): Add optional parameter for the function.
49452        * rendering/line/LineWidth.h:
49453
494542014-02-24  Martin Hock  <mhock@apple.com>
49455
49456        Create SessionID value-style class for session IDs.
49457        https://bugs.webkit.org/show_bug.cgi?id=129141
49458
49459        Reviewed by Brady Eidson.
49460
49461        * GNUmakefile.list.am:
49462        * WebCore.exp.in:
49463        * WebCore.xcodeproj/project.pbxproj:
49464        * page/Page.cpp: Add SessionID member.
49465        (WebCore::Page::Page):
49466        (WebCore::Page::sessionID): Retrieve sessionID or use settings if not set.
49467        * page/Page.h:
49468        (WebCore::Page::setSessionID):
49469        * page/SessionID.h: Session ID class consisting solely of its uint64_t session ID.
49470        (WebCore::SessionID::SessionID):
49471        (WebCore::SessionID::isValid): Not empty.
49472        (WebCore::SessionID::isEphemeral):
49473        (WebCore::SessionID::sessionID):
49474        (WebCore::SessionID::operator==): Value-based equality.
49475        (WebCore::SessionID::operator!=):
49476        (WebCore::SessionID::emptySessionID): Zero value also used for HashTraits emptyValue.
49477        (WebCore::SessionID::defaultSessionID):
49478        (WebCore::SessionID::legacyPrivateSessionID):
49479        * page/SessionIDHash.h:
49480        (WTF::SessionIDHash::hash): Just the casted session ID (low order bytes)
49481        (WTF::SessionIDHash::equal):
49482        (WTF::HashTraits<WebCore::SessionID>::emptyValue): Equal to emptySessionID.
49483        (WTF::HashTraits<WebCore::SessionID>::constructDeletedValue): -1 value.
49484        (WTF::HashTraits<WebCore::SessionID>::isDeletedValue):
49485
494862014-02-24  Javier Fernandez  <jfernandez@igalia.com>
49487
49488        [CSS Grid Layout] handle undefined RemainingSpace in computeUsedBreadthOfGridTracks algorithm
49489        https://bugs.webkit.org/show_bug.cgi?id=128372
49490
49491        Reviewed by David Hyatt.
49492
49493        From Blink r165692 by <svillar@igalia.com>
49494
49495        The spec defines a different code path for the computeUsedBreadthOfGridTracks algorithm
49496        http://dev.w3.org/csswg/css-grid/#function-ComputeUsedBreadthOfGridTracks.
49497
49498        Basically the track breadth is different when the available size is undefined and thus,
49499        cannot be taken into account during the computations.
49500        The available size is undefined whenever the height is auto or the grid element has a
49501        shrink-to-fit behavior.
49502
49503        It was also renamed the function to match the specs so the function name starts with
49504        'compute' instead of 'computed'.
49505
49506        No new tests, but added new cases to some of them.
49507
49508        * rendering/RenderGrid.cpp:
49509        (WebCore::RenderGrid::computeIntrinsicLogicalWidths):
49510        (WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
49511        (WebCore::gridElementIsShrinkToFit):
49512        (WebCore::RenderGrid::computeNormalizedFractionBreadth):
49513        (WebCore::RenderGrid::layoutGridItems):
49514        * rendering/RenderGrid.h:
49515
495162014-02-24  Roger Fong  <roger_fong@apple.com>
49517
49518        [Windows] Unreviewed pre-emptive build fix.
49519
49520        * WebCore.vcxproj/WebCoreCommon.props: Add replay directory to include path.
49521
495222014-02-24  Brady Eidson  <beidson@apple.com>
49523
49524        Break out ImageControls style into an external stylesheet
49525        https://bugs.webkit.org/show_bug.cgi?id=129273
49526
49527        Reviewed by Jer Noble.
49528
49529        * DerivedSources.make:
49530        * WebCore.xcodeproj/project.pbxproj:
49531
49532        * css/CSSDefaultStyleSheets.cpp:
49533        (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
49534        * css/CSSDefaultStyleSheets.h:
49535
49536        * html/shadow/mac/ImageControlsRootElementMac.cpp:
49537        (WebCore::ImageControlsRootElementMac::maybeCreate):
49538
49539        * html/shadow/mac/imageControlsMac.css:
49540        (.x-webkit-imagemenu):
49541        (.x-webkit-imagemenu:hover):
49542
49543        * rendering/RenderTheme.h:
49544        (WebCore::RenderTheme::mediaControlsScript):
49545        (WebCore::RenderTheme::imageControlsStyleSheet):
49546        * rendering/RenderThemeMac.h:
49547        * rendering/RenderThemeMac.mm:
49548        (WebCore::RenderThemeMac::imageControlsStyleSheet):
49549
495502014-02-24  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
49551
49552        [WebRTC] Validating RTCConfiguration according to the spec
49553        https://bugs.webkit.org/show_bug.cgi?id=129182
49554
49555        Reviewed by Eric Carlson.
49556
49557        Spec states that:
49558            - iceServers should not be an empty list
49559            - the entry in the configuration dictionary is "urls", instead of "url"
49560            - urls can be either a list or a string
49561        Fixing all that in RTCConfiguration validation when creating a RTCPeerConnection
49562
49563        Existing tests were updated.
49564
49565        * Modules/mediastream/RTCPeerConnection.cpp:
49566        (WebCore::appendIceServer): Added.
49567        (WebCore::processIceServer): Added.
49568        (WebCore::RTCPeerConnection::parseConfiguration):
49569
495702014-02-24  Radu Stavila  <stavila@adobe.com>
49571
49572        [CSS Regions] Relative positioned elements overflowing the region do not get painted into the next tile
49573        https://bugs.webkit.org/show_bug.cgi?id=129254
49574
49575        Reviewed by Antti Koivisto.
49576
49577        The painting of the region's layer should not be aborted so early if the region's fragment shouldn't be painted
49578        because that would prevent all the layer's children from being painted.
49579
49580        Another problem this patch addresses is that clipping should also be performed when the clip rect is empty,
49581        which is what happens when painting in a tile in which the flowed element would normally be painted
49582        if it wasn't clipped by the region.
49583
49584        Test: fast/regions/content-relative-next-tile.html
49585
49586        * rendering/RenderLayer.cpp:
49587        (WebCore::RenderLayer::paintFlowThreadIfRegionForFragments):
49588
495892014-02-24  Renata Hodovan  <rhodovan.u-szeged@partner.samsung.com>
49590        
49591        Get rid of the unused 'immediate' parameters from repaint related functions
49592        https://bugs.webkit.org/show_bug.cgi?id=129111
49593
49594        Reviewed by Simon Fraser.
49595
49596        Removing the 'immediate' parameters from repaint related functions - accoring
49597        to the FIXME in RenderView::repaintViewRectangle() - since they have no effect.
49598
49599        No new tests are necessary because there is no behavior change
49600
49601        * dom/Element.cpp:
49602        (WebCore::Element::setActive):
49603        * loader/EmptyClients.h:
49604        * page/Chrome.cpp:
49605        (WebCore::Chrome::invalidateRootView):
49606        (WebCore::Chrome::invalidateContentsAndRootView):
49607        (WebCore::Chrome::invalidateContentsForSlowScroll):
49608        * page/Chrome.h:
49609        * page/ChromeClient.h:
49610        * page/Frame.cpp:
49611        (WebCore::Frame::tiledBackingStorePaintEnd):
49612        * page/FrameView.cpp:
49613        (WebCore::FrameView::invalidateRect):
49614        (WebCore::FrameView::scrollContentsFastPath):
49615        (WebCore::FrameView::repaintContentRectangle):
49616        (WebCore::FrameView::shouldUpdate):
49617        * page/FrameView.h:
49618        * platform/HostWindow.h:
49619        * platform/ScrollView.cpp:
49620        (WebCore::ScrollView::scrollContents):
49621        (WebCore::ScrollView::scrollContentsSlowPath):
49622        (WebCore::ScrollView::repaintContentRectangle):
49623        (WebCore::ScrollView::updateOverhangAreas):
49624        (WebCore::ScrollView::addPanScrollIcon):
49625        (WebCore::ScrollView::removePanScrollIcon):
49626        (WebCore::ScrollView::platformRepaintContentRectangle):
49627        * platform/ScrollView.h:
49628        * rendering/RenderBox.cpp:
49629        (WebCore::RenderBox::repaintLayerRectsForImage):
49630        * rendering/RenderFlowThread.cpp:
49631        (WebCore::RenderFlowThread::repaintRectangleInRegions):
49632        * rendering/RenderFlowThread.h:
49633        * rendering/RenderLayer.cpp:
49634        (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
49635        * rendering/RenderLayer.h:
49636        * rendering/RenderMultiColumnSet.cpp:
49637        (WebCore::RenderMultiColumnSet::repaintFlowThreadContent):
49638        * rendering/RenderMultiColumnSet.h:
49639        * rendering/RenderObject.cpp:
49640        (WebCore::RenderObject::repaintUsingContainer):
49641        (WebCore::RenderObject::repaint):
49642        (WebCore::RenderObject::repaintRectangle):
49643        (WebCore::RenderObject::repaintSlowRepaintObject):
49644        * rendering/RenderObject.h:
49645        * rendering/RenderRegion.cpp:
49646        (WebCore::RenderRegion::repaintFlowThreadContent):
49647        (WebCore::RenderRegion::repaintFlowThreadContentRectangle):
49648        * rendering/RenderRegion.h:
49649        * rendering/RenderView.cpp:
49650        (WebCore::RenderView::repaintViewRectangle):
49651        (WebCore::RenderView::flushAccumulatedRepaintRegion):
49652        (WebCore::RenderView::repaintRectangleInViewAndCompositedLayers):
49653        * rendering/RenderView.h:
49654        * svg/graphics/SVGImageChromeClient.h:
49655
496562014-02-24  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
49657
49658        Code cleanup: remove leftover ENABLE(WORKERS) macros and support.
49659        https://bugs.webkit.org/show_bug.cgi?id=129255
49660
49661        Reviewed by Csaba Osztrogonác.
49662
49663        ENABLE_WORKERS macro was removed in r159679, but r161589 added back some occurrences.
49664        Support is now also removed from xcconfig files.
49665
49666        No new tests needed.
49667
49668        * Configurations/FeatureDefines.xcconfig:
49669        * platform/ThreadGlobalData.cpp:
49670        * platform/ThreadGlobalData.h:
49671        * platform/Timer.h:
49672        (WebCore::TimerBase::isActive):
49673        * platform/ios/wak/WebCoreThread.mm:
49674        (RunWebThread):
49675        (StartWebThread):
49676
496772014-02-24  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
49678
49679        [CMake] Get rid of "FIXME: The Blackberry port ..." from WebCore/CmakeLists.txt
49680        https://bugs.webkit.org/show_bug.cgi?id=129152
49681
49682        Reviewed by Gyuyoung Kim.
49683
49684        * CMakeLists.txt:
49685
496862014-02-24  David Kilzer  <ddkilzer@apple.com>
49687
49688        Remove redundant setting in FeatureDefines.xcconfig
49689
49690        * Configurations/FeatureDefines.xcconfig:
49691
496922014-02-24  Mihai Tica  <mitica@adobe.com>
49693
49694        [CSS Blending] An element having -webkit-mix-blend-mode should only blend with the contents of the parent stacking context
49695        https://bugs.webkit.org/show_bug.cgi?id=129154
49696
49697        Reviewed by Dean Jackson.
49698
49699        The blending operation of an element having -webkit-mix-blend-mode should be restricted to the parent stacking context.
49700        This change isolates blending, preventing it from blending with other underlying elements besides the parent stacking context.
49701
49702        Tests: css3/compositing/blend-mode-isolated-group-1.html
49703               css3/compositing/blend-mode-isolated-group-2.html
49704               css3/compositing/blend-mode-isolated-group-3.html
49705
49706        * rendering/RenderLayer.cpp:
49707        (WebCore::RenderLayer::RenderLayer): Initialize added members to false.
49708        (WebCore::RenderLayer::updateBlendMode): Check if a blend mode was set or unset. If so, set the m_updateParentStackingContextShouldIsolateBlendingDirty to true.
49709        (WebCore::RenderLayer::updateParentStackingContextShouldIsolateBlending): Traverse to the parent stacking context and update the
49710        m_isolatesBlending member accordingly.
49711        * rendering/RenderLayer.h:
49712        - Add isolatesBlending() as a condition for creating a transparency layer in the paintsWithTransparency method.
49713        - Add m_updateParentStackingContextShouldIsolateBlendingDirty member.
49714        - Add m_isolatesBlending member and getter.
49715        * rendering/RenderLayerCompositor.cpp:
49716        (WebCore::RenderLayerCompositor::computeCompositingRequirements): Call updateParentStackingContextShouldIsolateBlending. 
49717
497182014-02-24  Krzysztof Czech  <k.czech@samsung.com>
49719
49720        [ATK] Wrong selected element at a given index in a list box.
49721        https://bugs.webkit.org/show_bug.cgi?id=129039
49722
49723        Reviewed by Chris Fleizach.
49724
49725        Test: accessibility/select-element-at-index.html
49726
49727        The selected element at a given index was wrong. One should be considered among the
49728        all children of a list box, not only selected ones.
49729
49730        * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
49731        (core):
49732        (listObjectForSelection):
49733        (optionFromList):
49734        (optionFromSelection):
49735        (webkitAccessibleSelectionRefSelection):
49736
497372014-02-23  Dean Jackson  <dino@apple.com>
49738
49739        [WebGL] Allow ANGLE to initialize unused varyings
49740        https://bugs.webkit.org/show_bug.cgi?id=129240
49741        <rdar://problem/15203342>
49742
49743        Reviewed by Sam Weinig.
49744
49745        Covered by: conformance/glsl/misc/shaders-with-varyings.html
49746
49747        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
49748        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
49749        Add SH_INIT_VARYINGS_WITHOUT_STATIC_USE to compiler flags.
49750
497512014-02-23  Sam Weinig  <sam@webkit.org>
49752
49753        Update FeatureDefines.xcconfig
49754
49755        Rubber-stamped by Anders Carlsson.
49756
49757        * Configurations/FeatureDefines.xcconfig:
49758
497592014-02-23  Dean Jackson  <dino@apple.com>
49760
49761        Sort the project file with sort-Xcode-project-file.
49762
49763        Rubber-stamped by Sam Weinig.
49764
49765        * WebCore.xcodeproj/project.pbxproj:
49766
497672014-02-23  Sam Weinig  <sam@webkit.org>
49768
49769        Fix incorrectly commented out code.
49770
49771        * platform/TelephoneNumberDetector.h:
49772
497732014-02-23  Sam Weinig  <sam@webkit.org>
49774
49775        Extract platform specific parts of telephone number detection 
49776        https://bugs.webkit.org/show_bug.cgi?id=129238
49777
49778        Reviewed by Dean Jackson.
49779
49780        * WebCore.xcodeproj/project.pbxproj:
49781        Add new files.
49782
49783        * html/parser/HTMLTreeBuilder.cpp:
49784        (WebCore::HTMLTreeBuilder::linkifyPhoneNumbers):
49785        (WebCore::HTMLTreeBuilder::processCharacterBufferForInBody):
49786        * platform/TelephoneNumberDetector.h: Added.
49787        * platform/cocoa/TelephoneNumberDetectorCocoa.cpp: Added.
49788        (WebCore::TelephoneNumberDetector::phoneNumbersScanner):
49789        (WebCore::TelephoneNumberDetector::isSupported):
49790        (WebCore::TelephoneNumberDetector::find):
49791        Move code to TelephoneNumberDetector.
49792
497932014-02-23  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
49794
49795        Change a url parameter type with URL in NavigatorContentUtils
49796        https://bugs.webkit.org/show_bug.cgi?id=129202
49797
49798        Reviewed by Sam Weinig.
49799
49800        It would be good if we use *URL* for url parameters instead of using String.
49801
49802        Merge from blink. https://src.chromium.org/viewvc/blink?view=rev&revision=165458.
49803
49804        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
49805        (WebCore::verifyCustomHandlerURL):
49806        (WebCore::NavigatorContentUtils::registerProtocolHandler):
49807        (WebCore::NavigatorContentUtils::isProtocolHandlerRegistered):
49808        (WebCore::NavigatorContentUtils::unregisterProtocolHandler):
49809        * Modules/navigatorcontentutils/NavigatorContentUtilsClient.h:
49810
498112014-02-23  Dean Jackson  <dino@apple.com>
49812
49813        Update ANGLE to 836bd2176e5607b14846cf1fbc5932dbc91318f4
49814        https://bugs.webkit.org/show_bug.cgi?id=129232
49815
49816        Reviewed by Brent Fulgham.
49817
49818        New files added, derived sources compiled directly, and generated
49819        steps removed for both EFL and GTK, with much-needed help from
49820        Sergio Correia.
49821
49822        * CMakeLists.txt:
49823        * GNUMakefile.am:
49824
498252014-02-23  Sam Weinig  <sam@webkit.org>
49826
49827        Move RenderMathMLMenclose.h/cpp to the right place in the Xcode project and sort.
49828
49829        Rubber-stamped by Anders Carlsson.
49830
49831        * WebCore.xcodeproj/project.pbxproj:
49832
498332014-02-23  Sam Weinig  <sam@webkit.org>
49834
49835        Move telephone number detection behind its own ENABLE macro
49836        https://bugs.webkit.org/show_bug.cgi?id=129236
49837
49838        Reviewed by Dean Jackson.
49839
49840        * Configurations/FeatureDefines.xcconfig:
49841        Add ENABLE_TELEPHONE_NUMBER_DETECTION.
49842
49843        * dom/Document.cpp:
49844        (WebCore::Document::Document):
49845        * dom/Document.h:
49846        * html/parser/HTMLConstructionSite.h:
49847        * html/parser/HTMLTreeBuilder.cpp:
49848        (WebCore::HTMLTreeBuilder::processCharacterBufferForInBody):
49849        * html/parser/HTMLTreeBuilder.h:
49850        Use ENABLE(TELEPHONE_NUMBER_DETECTION).
49851
49852        * platform/mac/SoftLinking.h:
49853        Remove PLATOFORM(IOS) from SOFT_LINK_PRIVATE_FRAMEWORK_OPTIONAL, it is not iOS specific.
49854
498552014-02-23  Zalan Bujtas  <zalan@apple.com>
49856
49857        Subpixel rendering: Fix bleed avoidance subpixel calculation.
49858        https://bugs.webkit.org/show_bug.cgi?id=129225
49859
49860        Reviewed by Simon Fraser.
49861        
49862        static_cast<LayoutUnit>(int value) only produces the desired result when subpixel is off.
49863
49864        Currently not testable.
49865
49866        * rendering/RenderBoxModelObject.cpp:
49867        (WebCore::RenderBoxModelObject::getBackgroundRoundedRect):
49868        (WebCore::shrinkRectByOneDevicePixel):
49869        (WebCore::RenderBoxModelObject::borderInnerRectAdjustedForBleedAvoidance):
49870        (WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance):
49871        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
49872        * rendering/RenderBoxModelObject.h:
49873
498742014-02-23  Zalan Bujtas  <zalan@apple.com>
49875
49876        Subpixel rendering: Add devicepixel based computation to BorderEdge class.
49877        https://bugs.webkit.org/show_bug.cgi?id=129224
49878
49879        Reviewed by Simon Fraser.
49880
49881        To produce correct width (and type) results, BorderEdge class needs to take device pixel ratio into account.
49882
49883        Currently not testable.
49884
49885        * rendering/RenderBoxModelObject.cpp:
49886        (WebCore::BorderEdge::BorderEdge):
49887        (WebCore::BorderEdge::obscuresBackgroundEdge):
49888        (WebCore::BorderEdge::getDoubleBorderStripeWidths): this does not always produce the same
49889        result as before, but the sum of inner and outer is not different.
49890        (WebCore::BorderEdge::borderWidthInDevicePixel):
49891        (WebCore::RenderBoxModelObject::getBorderEdgeInfo):
49892
498932014-02-22  Dan Bernstein  <mitz@apple.com>
49894
49895        REGRESSION (r164507): Crash beneath JSGlobalObjectInspectorController::reportAPIException at facebook.com, twitter.com, youtube.com
49896        https://bugs.webkit.org/show_bug.cgi?id=129227
49897
49898        Reviewed by Eric Carlson.
49899
49900        Reverted r164507.
49901
49902        * bindings/js/JSDOMBinding.cpp:
49903        (WebCore::reportException):
49904        * inspector/InspectorResourceAgent.cpp:
49905        (WebCore::InspectorResourceAgent::buildInitiatorObject):
49906        * inspector/PageDebuggerAgent.cpp:
49907        (WebCore::PageDebuggerAgent::breakpointActionLog):
49908        * inspector/TimelineRecordFactory.cpp:
49909        (WebCore::TimelineRecordFactory::createGenericRecord):
49910        * page/Console.cpp:
49911        (WebCore::internalAddMessage):
49912        (WebCore::Console::profile):
49913        (WebCore::Console::profileEnd):
49914        (WebCore::Console::timeEnd):
49915        * page/ContentSecurityPolicy.cpp:
49916        (WebCore::gatherSecurityPolicyViolationEventData):
49917        (WebCore::ContentSecurityPolicy::reportViolation):
49918        * page/DOMWindow.cpp:
49919        (WebCore::DOMWindow::postMessage):
49920
499212014-02-22  Joseph Pecoraro  <pecoraro@apple.com>
49922
49923        Remove some unreachable code (-Wunreachable-code)
49924        https://bugs.webkit.org/show_bug.cgi?id=129220
49925
49926        Reviewed by Eric Carlson.
49927
49928        * html/parser/HTMLTreeBuilder.cpp:
49929        (WebCore::HTMLTreeBuilder::processCharacterBuffer):
49930        (WebCore::HTMLTreeBuilder::processEndTag):
49931        The only tricky case. Here there was a break inside the
49932        #if, but not the #else, and a break after the #endif.
49933        Remove the break inside the #if, and always use the
49934        break after the #endif.
49935
49936        * Modules/indexeddb/IDBTransaction.cpp:
49937        (WebCore::IDBTransaction::modeToString):
49938        * bindings/js/JSTrackCustom.cpp:
49939        (WebCore::toJS):
49940        * bindings/js/JSWebGLRenderingContextCustom.cpp:
49941        (WebCore::functionForUniform):
49942        * css/SelectorChecker.cpp:
49943        (WebCore::SelectorChecker::checkOne):
49944        * html/HTMLMediaElement.cpp:
49945        (WebCore::HTMLMediaElement::parseAttribute):
49946        * page/CaptionUserPreferencesMediaAF.cpp:
49947        (WebCore::CaptionUserPreferencesMediaAF::captionDisplayMode):
49948
499492014-02-22  Dean Jackson  <dino@apple.com>
49950
49951        Letterpress effect disabled for synthetic italic
49952        https://bugs.webkit.org/show_bug.cgi?id=129218
49953        <rdar://problem/15997846>
49954
49955        Reviewed by Dan Bernstein.
49956
49957        There was no need to guard against synthetic italics and letterpress.
49958
49959        * platform/graphics/mac/FontMac.mm:
49960        (WebCore::Font::drawGlyphs): Remove !useLetterpressEffect from conditional.
49961
499622014-02-21  Sam Weinig  <sam@webkit.org>
49963
49964        Expose phase and momentum phase as SPI on DOMWheelEvent
49965        <rdar://problem/16110871>
49966        https://bugs.webkit.org/show_bug.cgi?id=129184
49967
49968        Reviewed by Anders Carlsson.
49969
49970        * WebCore.exp.in:
49971        Export core(DOMWheelEvent).
49972
49973        * WebCore.xcodeproj/project.pbxproj:
49974        Make DOMWheelEventInternal.h available in WebKit.
49975
49976        * dom/Element.cpp:
49977        (WebCore::Element::dispatchWheelEvent):
49978        * dom/WheelEvent.cpp:
49979        (WebCore::determineDeltaMode):
49980        (WebCore::WheelEvent::WheelEvent):
49981        (WebCore::WheelEvent::initWheelEvent):
49982        (WebCore::WheelEvent::initWebKitWheelEvent):
49983        Move PlatformWheelEvent -> DOMWheelEvent conversion to DOMWheelEvent.
49984
49985        * dom/WheelEvent.h:
49986        (WebCore::WheelEvent::create):
49987        (WebCore::WheelEvent::phase):
49988        (WebCore::WheelEvent::momentumPhase):
49989        Store phase and momentumPhase on the WheelEvent.
49990
499912014-02-22  Alexey Proskuryakov  <ap@apple.com>
49992
49993        Rename JWK key_ops values from wrap/unwrap to wrapKey/unwrapKey
49994        https://bugs.webkit.org/show_bug.cgi?id=129121
49995
49996        Reviewed by Sam Weinig.
49997
49998        * bindings/js/JSCryptoKeySerializationJWK.cpp:
49999        (WebCore::JSCryptoKeySerializationJWK::reconcileUsages): Updated to newer names.
50000        (WebCore::addUsagesToJSON): Ditto.
50001        (WebCore::JSCryptoKeySerializationJWK::serialize): rsa-oaep-key-manipulation test
50002        started ot fail, because RSA-OAEP with 2048 bit key and sha-1 can only encrypt
50003        214 bytes, and the new longer names made JSON serialization slightly longer.
50004        Compensate by not doing any indentation in JSON.
50005
500062014-02-22  Frédéric Wang  <fred.wang@free.fr>
50007
50008        Only skip stretchy operators when determining the stretch height.
50009        https://bugs.webkit.org/show_bug.cgi?id=126842
50010
50011        Reviewed by Chris Fleizach.
50012
50013        The MathML code only takes into account non-mo children for the computation of the stretch size. This change includes non-stretchy mo in that computation. A new test is added into mathml/presentation/stretchy-depth-height.html.
50014
50015        * rendering/mathml/RenderMathMLRow.cpp:
50016        (WebCore::RenderMathMLRow::layout):
50017
500182014-02-22  Frédéric Wang  <fred.wang@free.fr>
50019
50020        Implement asymmetric/symmetric stretching of vertical operators.
50021        https://bugs.webkit.org/show_bug.cgi?id=124827.
50022
50023        Reviewed by Chris Fleizach.
50024
50025        The MathML code stretches vertical operators asymmetrically by default. This patch takes into account the symmetric attribute or the symmetric property of the operator dictionary to stretch operators symmetrically.
50026
50027        Test: mathml/presentation/stretchy-depth-height-symmetric.html
50028
50029        * rendering/mathml/RenderMathMLOperator.cpp:
50030        (WebCore::RenderMathMLOperator::stretchTo):
50031        (WebCore::RenderMathMLOperator::updateFromElement):
50032        (WebCore::RenderMathMLOperator::updateStyle):
50033
500342014-02-22  Frédéric Wang  <fred.wang@free.fr>
50035
50036        Bug 119043 - Large stretch size error for MathML operators.
50037        https://bugs.webkit.org/show_bug.cgi?id=119043
50038
50039        Reviewed by Chris Fleizach.
50040
50041        The MathML code used some arbitrary gOperatorExpansion factor for the
50042        stretch size and 2/3 1/2 constants for the baseline. This change tries
50043        to consider height/depth of siblings of the stretchy operator so that
50044        the stretchy operator now matches its target.
50045
50046        Test: mathml/presentation/stretchy-depth-height.html
50047
50048        * rendering/RenderObject.h:
50049        (WebCore::RenderObject::isRenderMathMLTable):
50050        * rendering/mathml/RenderMathMLBlock.h:
50051        * rendering/mathml/RenderMathMLOperator.cpp:
50052        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
50053        (WebCore::RenderMathMLOperator::stretchTo):
50054        (WebCore::RenderMathMLOperator::findAcceptableStretchyCharacter):
50055        (WebCore::RenderMathMLOperator::updateStyle):
50056        (WebCore::RenderMathMLOperator::firstLineBaseline):
50057        (WebCore::RenderMathMLOperator::computeLogicalHeight):
50058        * rendering/mathml/RenderMathMLOperator.h:
50059        * rendering/mathml/RenderMathMLRow.cpp:
50060        (WebCore::RenderMathMLRow::layout):
50061
500622014-02-22  Frédéric Wang  <fred.wang@free.fr>
50063
50064        Unreviewed, rolling out r164534.
50065        http://trac.webkit.org/changeset/164534
50066        https://bugs.webkit.org/show_bug.cgi?id=119043
50067
50068        missing tests
50069
50070        * rendering/RenderObject.h:
50071        * rendering/mathml/RenderMathMLBlock.h:
50072        * rendering/mathml/RenderMathMLOperator.cpp:
50073        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
50074        (WebCore::RenderMathMLOperator::expandedStretchHeight):
50075        (WebCore::RenderMathMLOperator::stretchToHeight):
50076        (WebCore::RenderMathMLOperator::findAcceptableStretchyCharacter):
50077        (WebCore::RenderMathMLOperator::updateStyle):
50078        (WebCore::RenderMathMLOperator::firstLineBaseline):
50079        (WebCore::RenderMathMLOperator::computeLogicalHeight):
50080        * rendering/mathml/RenderMathMLOperator.h:
50081        * rendering/mathml/RenderMathMLRow.cpp:
50082        (WebCore::RenderMathMLRow::layout):
50083
500842014-02-22  Frédéric Wang  <fred.wang@free.fr>
50085
50086        Bug 119043 - Large stretch size error for MathML operators.
50087        https://bugs.webkit.org/show_bug.cgi?id=119043
50088
50089        Reviewed by Chris Fleizach.
50090
50091        The MathML code used some arbitrary gOperatorExpansion factor for the
50092        stretch size and 2/3 1/2 constants for the baseline. This change tries
50093        to consider height/depth of siblings of the stretchy operator so that
50094        the stretchy operator now matches its target.
50095
50096        Test: mathml/presentation/stretchy-depth-height.html
50097
50098        * rendering/RenderObject.h:
50099        (WebCore::RenderObject::isRenderMathMLTable):
50100        * rendering/mathml/RenderMathMLBlock.h:
50101        * rendering/mathml/RenderMathMLOperator.cpp:
50102        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
50103        (WebCore::RenderMathMLOperator::stretchTo):
50104        (WebCore::RenderMathMLOperator::findAcceptableStretchyCharacter):
50105        (WebCore::RenderMathMLOperator::updateStyle):
50106        (WebCore::RenderMathMLOperator::firstLineBaseline):
50107        (WebCore::RenderMathMLOperator::computeLogicalHeight):
50108        * rendering/mathml/RenderMathMLOperator.h:
50109        * rendering/mathml/RenderMathMLRow.cpp:
50110        (WebCore::RenderMathMLRow::layout):
50111
501122014-02-21  Zalan Bujtas  <zalan@apple.com>
50113
50114        REGRESSION(r164412): Pixel cracks when zooming in to any web content.
50115        https://bugs.webkit.org/show_bug.cgi?id=129195
50116
50117        Reviewed by Simon Fraser.
50118
50119        Integral clipping of the repaint rect was prematurely removed in RenderLayerBacking::paintContents().
50120        Repaint rects needs a uniform, device pixel precise clipping across the painting flow including RenderLayer,
50121        RenderView and TileController.
50122
50123        * rendering/RenderLayerBacking.cpp:
50124        (WebCore::RenderLayerBacking::paintContents):
50125        (WebCore::RenderLayerBacking::compositedBoundsIncludingMargin):
50126
501272014-02-21  Jer Noble  <jer.noble@apple.com>
50128
50129        Unreviewed Mac build fix after r164529.
50130
50131        Replace the string-to-array algorithm with a archictecture-independant
50132        one.
50133
50134        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
50135        (WebCore::CDMSessionMediaSourceAVFObjC::generateKeyRequest):
50136
501372014-02-21  Jer Noble  <jer.noble@apple.com>
50138
50139        [EME] Add a CDMSession for MediaPlayerPrivateMediaSourceAVFObjC
50140        https://bugs.webkit.org/show_bug.cgi?id=129166
50141
50142        Reviewed by Eric Carlson.
50143
50144        Add a new CDMSession, cerated by MediaPlayerPrivateMediaSourceAVFObjC allowing
50145        media-source-backed media elements to play protected content.
50146
50147        Add a new CDMSessionMediaSourceAVFObjC class:
50148        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h: Added.
50149        (WebCore::CDMSessionMediaSourceAVFObjC::~CDMSessionMediaSourceAVFObjC):
50150        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm: Added.
50151        (WebCore::CDMSessionMediaSourceAVFObjC::CDMSessionMediaSourceAVFObjC):
50152        (WebCore::CDMSessionMediaSourceAVFObjC::generateKeyRequest): Do not actually generate a
50153            key request until the certificate data has been added via update();
50154        (WebCore::CDMSessionMediaSourceAVFObjC::releaseKeys): No-op.
50155        (WebCore::CDMSessionMediaSourceAVFObjC::update): If no certificate data has yet been
50156            added, assume the incoming message contains it.
50157
50158        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
50159        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
50160        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine): Add supportsKeySystem.
50161        (WebCore::keySystemIsSupported): Use "com.apple.fps.2_0" to distinguish from the not-media-source scheme.
50162        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType): Check the keySystem type.
50163        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsKeySystem): Added.
50164        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::createSession): Added, pass through to MediaSourcePrivate.
50165        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
50166        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
50167        (WebCore::MediaSourcePrivateAVFObjC::createSession): Added.
50168        (WebCore::MediaSourcePrivateAVFObjC::sourceBufferKeyNeeded): Pass through to MediaPlayer.
50169        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
50170        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
50171        (-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]):
50172            Added, pass through to SourceBufferPrivate.
50173        (WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
50174        (WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID): Remember
50175            which track is requesting the key, and pass the request to MediaSourcePrivate.
50176
50177        Add new files to the project.
50178        * WebCore.xcodeproj/project.pbxproj:
50179
501802014-02-21  Alexey Proskuryakov  <ap@apple.com>
50181
50182        CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify contains seemingly accidental unreachable code
50183        https://bugs.webkit.org/show_bug.cgi?id=129193
50184
50185        Reviewed by Joseph Pecoraro.
50186
50187        * crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
50188        (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify): Fix the accidental code.
50189
501902014-02-21  Brent Fulgham  <bfulgham@apple.com>
50191
50192        Extend media support for WebVTT sources
50193        https://bugs.webkit.org/show_bug.cgi?id=129156
50194
50195        Reviewed by Eric Carlson.
50196
50197        * Configurations/FeatureDefines.xcconfig: Add new feature define for AVF_CAPTIONS
50198        * html/HTMLMediaElement.cpp:
50199        (WebCore::HTMLMediaElement::outOfBandTrackSources): Added.
50200        * html/HTMLMediaElement.h:
50201        * platform/graphics/MediaPlayer.cpp:
50202        (WebCore::MediaPlayer::outOfBandTrackSources): Added.
50203        * platform/graphics/MediaPlayer.h:
50204        (WebCore::MediaPlayerClient::outOfBandTrackSources): Added.
50205        * platform/graphics/PlatformTextTrack.h:
50206        (WebCore::PlatformTextTrack::create): Update for new constructor signature.
50207        (WebCore::PlatformTextTrack::createOutOfBand): Added.
50208        (WebCore::PlatformTextTrack::url): Added.
50209        (WebCore::PlatformTextTrack::isDefault): Added.
50210        (WebCore::PlatformTextTrack::PlatformTextTrack): Revised to take new URL and
50211        'isDefault' arguments.
50212        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
50213        (WebCore::mediaDescriptionForKind): Added.
50214        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Tell AVFoundation about any
50215        WebVTT tracks supplied by the web page.
50216        (WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions): Filter out any out-of-band
50217        WebVTT tracks returned by the media engine to avoid double-counting tracks.
50218
502192014-02-21  Ryosuke Niwa  <rniwa@webkit.org>
50220
50221        Inner text element should not use -webkit-user-modify
50222        https://bugs.webkit.org/show_bug.cgi?id=129035
50223
50224        Reviewed by Andreas Kling.
50225
50226        To eliminate the internal use of -webkit-user-modify, use contenteditable attribute in the inner text elements
50227        instead of manually inspecting disabled-ness and readonly-ness in RenderTextControl.
50228
50229        Unfortunately, we still have to manually set UserModify value in RenderTextControl::adjustInnerTextStyle since
50230        RenderTextControl::styleDidChange creates RenderStyle for its inner text from scratch via createInnerTextStyle.    
50231
50232        * html/HTMLFieldSetElement.cpp:
50233        (WebCore::HTMLFieldSetElement::disabledStateChanged): Don't use childrenOfType iterator which asserts that DOM
50234        isn't mutated during the traversal since we now set contenteditable attribute inside disabledStateChanged via
50235        updateFromControlElementsAncestorDisabledStateUnder.
50236
50237        * html/HTMLFormControlElement.cpp:
50238        (WebCore::HTMLFormControlElement::parseAttribute): Extracted readOnlyAttributeChanged out of this function so
50239        that HTMLTextFormControl could override it to call updateInnerTextElementEditability.
50240        (WebCore::HTMLFormControlElement::readOnlyAttributeChanged): Ditto.
50241        * html/HTMLFormControlElement.h:
50242
50243        * html/HTMLInputElement.cpp:
50244        (WebCore::HTMLInputElement::didAddUserAgentShadowRoot): Call updateInnerTextElementEditability after creating
50245        shadow DOM for the current input type.
50246        (WebCore::HTMLInputElement::updateType): Ditto.
50247        (WebCore::HTMLInputElement::parseAttribute): Ditto.
50248
50249        * html/HTMLTextAreaElement.cpp:
50250        (WebCore::HTMLTextAreaElement::didAddUserAgentShadowRoot): Call updateInnerTextElementEditability.
50251
50252        * html/HTMLTextFormControlElement.cpp:
50253        (WebCore::HTMLTextFormControlElement::disabledStateChanged): Added to update contenteditable attribute since
50254        the editability of the inner text element depends on disabled-ness of the element.
50255        (WebCore::HTMLTextFormControlElement::readOnlyAttributeChanged): Ditto for the readonly-ness of the element.
50256        (WebCore::HTMLTextFormControlElement::updateInnerTextElementEditability): Added.
50257        * html/HTMLTextFormControlElement.h:
50258
50259        * rendering/RenderTextControl.cpp:
50260        (WebCore::RenderTextControl::adjustInnerTextStyle): Use the inner text element's presentationAttributeStyle() to
50261        compute the appropriate EUserModify value instead of hard-coding it here.
50262        * rendering/RenderTextControl.h:
50263
502642014-02-21  ChangSeok Oh  <changseok.oh@collabora.com>
50265
50266        [GTK] Support WEBGL_draw_buffers extension.
50267        https://bugs.webkit.org/show_bug.cgi?id=129143
50268
50269        Reviewed by Dean Jackson.
50270
50271        Support the WEBGL_draw_buffers WebGL extension for gtk port. Relevant opengl APIs
50272        are exposed for WebGLRenderingContext to access them properly.
50273
50274        Covered by fast/canvas/webgl/webgl-draw-buffers.html
50275
50276        * platform/graphics/OpenGLShims.cpp:
50277        (WebCore::initializeOpenGLShims):
50278        * platform/graphics/OpenGLShims.h:
50279        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
50280        (WebCore::Extensions3DOpenGL::supportsExtension):
50281        (WebCore::Extensions3DOpenGL::drawBuffersEXT):
50282
502832014-02-21  ChangSeok Oh  <changseok.oh@collabora.com>
50284
50285        Mac port uses ANGLE_instanced_arrays related apis through those in GraphicsContext3DCommon.cpp
50286        https://bugs.webkit.org/show_bug.cgi?id=128803
50287
50288        Reviewed by Dean Jackson.
50289
50290        Merge mac port implementation of ANGLE_instanced_arrays into common code.
50291
50292        No new tests, no functionality changed.
50293
50294        * platform/graphics/mac/GraphicsContext3DMac.mm:
50295        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
50296        (WebCore::Extensions3DOpenGL::drawArraysInstanced):
50297        (WebCore::Extensions3DOpenGL::drawElementsInstanced):
50298        (WebCore::Extensions3DOpenGL::vertexAttribDivisor):
50299        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
50300        (WebCore::GraphicsContext3D::vertexAttribDivisor):
50301
503022014-02-21  Myles C. Maxfield  <mmaxfield@apple.com>
50303
50304        After copy and paste, cursor may appear to be above the bottom of content
50305        https://bugs.webkit.org/show_bug.cgi?id=129167
50306
50307        Reviewed by Ryosuke Niwa.
50308
50309        Adding a clear:both to the end of content.
50310
50311        I can't handle the case of the cursor appearing above the bottom of
50312        absolutely positioned divs (of the case of floats inside absolutely
50313        positioned divs) because you can't know where the bottom of a div
50314        will end up being rendered (it is affected by things like browser
50315        window width and text size settings). Therefore, the only case I
50316        can handle is the case where there is a floating div in the same
50317        level as the document itself.
50318
50319        Test: editing/pasteboard/copy-paste-inserts-clearing-div.html
50320
50321        * editing/EditingStyle.cpp:
50322        (WebCore::EditingStyle::isFloating):
50323        * editing/EditingStyle.h:
50324        * editing/markup.cpp:
50325        (WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator):
50326        (WebCore::StyledMarkupAccumulator::appendElement):
50327        (WebCore::createMarkupInternal):
50328
503292014-02-21  Dean Jackson  <dino@apple.com>
50330
50331        [iOS Media] Wireless target UI
50332        https://bugs.webkit.org/show_bug.cgi?id=129189
50333        <rdar://problem/15349928>
50334        <rdar://problem/16100060>
50335
50336        Reviewed by Eric Carlson.
50337
50338        Implement a prototype UI for wireless playback targets. The UI
50339        doesn't currently work, but can be simulated via a class variable
50340        in ControllerIOS.
50341
50342        * Modules/mediacontrols/mediaControlsiOS.css:
50343        (audio::-webkit-media-controls-panel button): Reset the default style of
50344        button elements, to avoid getting a border.
50345        (audio::-webkit-media-controls-wireless-playback-status): Holds the UI showing
50346        the user that the media is playing on another target.
50347        (audio::-webkit-media-controls-wireless-playback-status.hidden):
50348        (audio::-webkit-media-controls-wireless-playback-picker-button): The button to
50349        trigger selection of targets.
50350        (audio::-webkit-media-controls-wireless-playback-picker-button.active):
50351        (audio::-webkit-media-controls-panel): This needs to be position absolute for
50352        the wireless playback status to fill the viewport.
50353        * Modules/mediacontrols/mediaControlsiOS.js:
50354        (ControllerIOS): Check for targets.
50355        (ControllerIOS.prototype.addVideoListeners):
50356        (ControllerIOS.prototype.removeVideoListeners):
50357        (ControllerIOS.prototype.UIString): New method to return localized strings (with
50358        a FIXME).
50359        (ControllerIOS.prototype.shouldHaveAnyUI): Needs to display if there is a wireless
50360        target.
50361        (ControllerIOS.prototype.currentPlaybackTargetIsWireless):
50362        (ControllerIOS.prototype.updateWirelessPlaybackStatus): Create the status content,
50363        replacing the device name if it is available.
50364        (ControllerIOS.prototype.updateWirelessTargetAvailable):
50365        (ControllerIOS.prototype.createControls):
50366        (ControllerIOS.prototype.configureInlineControls):
50367        (ControllerIOS.prototype.handleWirelessPlaybackChange):
50368        (ControllerIOS.prototype.handleWirelessTargetAvailableChange):
50369        (ControllerIOS.prototype.handleWirelessPickerButtonClicked):
50370
503712014-02-21  Jer Noble  <jer.noble@apple.com>
50372
50373        Make a generic CDMPrivateMediaPlayer and move its CDMSession into platform/.
50374        https://bugs.webkit.org/show_bug.cgi?id=129164
50375
50376        Reviewed by Eric Carlson.
50377
50378        Move the session created by CDMPrivateAVFoundation into platform, and rename
50379        CDMPrivateAVFoundation to CDMPrivateMediaPlayer. Future media engines who want
50380        to support a keysystem from within the media engine can create their own
50381        CDMSession as part of the MediaPlayerPrivate interface.
50382
50383        * Modules/encryptedmedia/CDM.cpp:
50384        (WebCore::installedCDMFactories):
50385        (WebCore::CDM::createSession):
50386        * Modules/encryptedmedia/CDM.h:
50387        * Modules/encryptedmedia/CDMPrivate.h:
50388        * Modules/encryptedmedia/MediaKeySession.cpp:
50389        * Modules/encryptedmedia/MediaKeySession.h:
50390        * Modules/encryptedmedia/CDMPrivateAVFoundation.mm: Removed.
50391        * Modules/encryptedmedia/CDMPrivateMediaPlayer.cpp: Renamed from Source/WebCore/Modules/encryptedmedia/CDMPrivateAVFoundation.cpp.
50392        (WebCore::CDMPrivateMediaPlayer::supportsKeySystem):
50393        (WebCore::CDMPrivateMediaPlayer::supportsKeySystemAndMimeType):
50394        (WebCore::CDMPrivateMediaPlayer::supportsMIMEType):
50395        (WebCore::CDMPrivateMediaPlayer::createSession):
50396        * Modules/encryptedmedia/CDMPrivateMediaPlayer.h: Renamed from Source/WebCore/Modules/encryptedmedia/CDMPrivateAVFoundation.h.
50397        (WebCore::CDMPrivateMediaPlayer::create):
50398        (WebCore::CDMPrivateMediaPlayer::~CDMPrivateMediaPlayer):
50399        (WebCore::CDMPrivateMediaPlayer::cdm):
50400        (WebCore::CDMPrivateMediaPlayer::CDMPrivateMediaPlayer):
50401        * WebCore.xcodeproj/project.pbxproj:
50402        * platform/graphics/CDMSession.h: Extracted from CDMPrivateAVFoundation.h.
50403        (WebCore::CDMSessionClient::~CDMSessionClient):
50404        (WebCore::CDMSession::CDMSession):
50405        (WebCore::CDMSession::~CDMSession):
50406        * platform/graphics/MediaPlayer.cpp:
50407        (WebCore::MediaPlayer::createSession):
50408        * platform/graphics/MediaPlayer.h:
50409        * platform/graphics/MediaPlayerPrivate.h:
50410        (WebCore::MediaPlayerPrivateInterface::createSession):
50411        * platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h: Renamed from Source/WebCore/Modules/encryptedmedia/CDMPrivateAVFoundation.h.
50412        (WebCore::CDMSessionAVFoundationObjC::~CDMSessionAVFoundationObjC):
50413        * platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm: Renamed from Source/WebCore/Modules/encryptedmedia/CDMPrivateAVFoundation.mm.
50414        (WebCore::CDMSessionAVFoundationObjC::CDMSessionAVFoundationObjC):
50415        (WebCore::CDMSessionAVFoundationObjC::generateKeyRequest):
50416        (WebCore::CDMSessionAVFoundationObjC::releaseKeys):
50417        (WebCore::CDMSessionAVFoundationObjC::update):
50418        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
50419        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
50420        (WebCore::MediaPlayerPrivateAVFoundationObjC::createSession):
50421        * testing/MockCDM.cpp:
50422        (WebCore::MockCDMSession::setClient):
50423        (WebCore::MockCDM::createSession):
50424        * testing/MockCDM.h:
50425
504262014-02-21  Jer Noble  <jer.noble@apple.com>
50427
50428        Add a supportsKeySystem media engine factory parameter.
50429        https://bugs.webkit.org/show_bug.cgi?id=129161
50430
50431        Reviewed by Eric Carlson.
50432
50433        Add a new parameter to the MediaPlayerFactory to allow registered media
50434        engines to be queried for keySystem support:
50435        * platform/graphics/MediaPlayer.cpp:
50436        (WebCore::MediaPlayerFactory::MediaPlayerFactory):
50437        (WebCore::MediaPlayer::supportsKeySystem):
50438        * platform/graphics/MediaPlayer.h:
50439
50440        Support this new field in MediaPlayerPrivateAVFoundationObjC:
50441        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
50442        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
50443        (WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine):
50444        (WebCore::keySystemIsSupported):
50445        (WebCore::MediaPlayerPrivateAVFoundationObjC::supportsKeySystem):
50446        (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
50447
50448        Add an empty field for SupportsKeySystem to the remaining media engines:
50449        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
50450        (WebCore::MediaPlayerPrivateAVFoundationCF::registerMediaEngine):
50451        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
50452        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine):
50453        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
50454        (WebCore::MediaPlayerPrivateGStreamer::registerMediaEngine):
50455        * platform/graphics/ios/MediaPlayerPrivateIOS.mm:
50456        (WebCore::MediaPlayerPrivateIOS::registerMediaEngine):
50457        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
50458        (WebCore::MediaPlayerPrivateQTKit::registerMediaEngine):
50459        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
50460        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::registerMediaEngine):
50461        * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
50462        (WebCore::MockMediaPlayerMediaSource::registerMediaEngine):
50463
504642014-02-21  Benjamin Poulain  <bpoulain@apple.com>
50465
50466        Fix WebCore's internals after r164505
50467
50468        * testing/Internals.cpp:
50469        (WebCore::Internals::findEditingDeleteButton): The call became ambiguous after r164505.
50470
504712014-02-21  Joseph Pecoraro  <pecoraro@apple.com>
50472
50473        Web Inspector: JSContext inspection should report exceptions in the console
50474        https://bugs.webkit.org/show_bug.cgi?id=128776
50475
50476        Reviewed by Timothy Hatcher.
50477
50478        Include some clean up of ConsoleMessage and ScriptCallStack construction.
50479
50480        Covered by existing tests.
50481
50482        * bindings/js/JSDOMBinding.cpp:
50483        (WebCore::reportException):
50484        Simplify code now that createStackTraceFromException handles it.
50485
50486        * page/ContentSecurityPolicy.cpp:
50487        (WebCore::gatherSecurityPolicyViolationEventData):
50488        (WebCore::ContentSecurityPolicy::reportViolation):
50489        ScriptCallStack can give us the first non-native callframe.
50490
50491        * inspector/InspectorResourceAgent.cpp:
50492        (WebCore::InspectorResourceAgent::buildInitiatorObject):
50493        * inspector/PageDebuggerAgent.cpp:
50494        (WebCore::PageDebuggerAgent::breakpointActionLog):
50495        * inspector/TimelineRecordFactory.cpp:
50496        (WebCore::TimelineRecordFactory::createGenericRecord):
50497        * page/Console.cpp:
50498        (WebCore::internalAddMessage):
50499        (WebCore::Console::profile):
50500        (WebCore::Console::profileEnd):
50501        (WebCore::Console::timeEnd):
50502        * page/ContentSecurityPolicy.cpp:
50503        (WebCore::gatherSecurityPolicyViolationEventData):
50504        (WebCore::ContentSecurityPolicy::reportViolation):
50505        * page/DOMWindow.cpp:
50506        (WebCore::DOMWindow::postMessage):
50507
505082014-02-21  Benjamin Poulain  <benjamin@webkit.org>
50509
50510        jsDocumentPrototypeFunctionGetElementById should not create an AtomicString for the function argument
50511        https://bugs.webkit.org/show_bug.cgi?id=128893
50512
50513        Reviewed by Darin Adler.
50514
50515        The declaration of TreeScope::getElementById() was taking an AtomicString as the parameter.
50516        Because of this, all the call sites manipulating String were creating and keeping alive an AtomicString
50517        to make the call.
50518
50519        This had two negative consequences:
50520        -The call sites were ref-ing the ID's atomic string for no reason.
50521        -When there is no ID associated with the input string, an atomic string was created for the sole
50522         purpose of failing the query. Since IDs are stored as AtomicString, if there is not an existing
50523         AtomicString for the input, there is no reason to query anything.
50524
50525        * WebCore.exp.in:
50526        * bindings/js/JSDOMBinding.cpp:
50527        (WebCore::findAtomicString): Update this after the rename.
50528
50529        * bindings/scripts/CodeGeneratorObjC.pm:
50530        (GenerateImplementation):
50531        * bindings/scripts/IDLAttributes.txt:
50532        Now that there are two overloads for TreeScope::getElementById(), the conversion from NSString*
50533        is ambiguous. I add the keyword ObjCExplicitAtomicString to force an explicit conversion to AtomicString.
50534
50535        * dom/Document.idl:
50536        * dom/TreeScope.cpp:
50537        (WebCore::TreeScope::getElementById):
50538        When getting an AtomicString, the case of a empty string is not important, use isNull() instead.
50539        When getting a String, get the corresponding AtomicString if any and use that for getting the element.
50540
50541        * dom/TreeScope.h:
50542        * html/FTPDirectoryDocument.cpp:
50543        (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
50544        Solve the ambiguous call.
50545
50546        * svg/SVGAElement.cpp:
50547        (WebCore::SVGAElement::defaultEventHandler):
50548        This is a wonderful candidate for substringSharingImpl. The substring does not survive the call since
50549        the new getElementById never create any AtomicString.
50550
50551        * svg/SVGSVGElement.cpp:
50552        (WebCore::SVGSVGElement::getElementById):
50553        It looks like there are opportunities to get faster here, Ryosuke should have a look.
50554
50555        * svg/SVGSVGElement.h:
50556        * xml/XMLTreeViewer.cpp:
50557        (WebCore::XMLTreeViewer::transformDocumentToTreeView):
50558        Unrelated cleanup: noStyleMessage was useless.
50559
505602014-02-21  Daniel Bates  <dabates@apple.com>
50561
50562        COL element in table has 0 for offsetWidth
50563        https://bugs.webkit.org/show_bug.cgi?id=15277
50564
50565        Reviewed by David Hyatt.
50566
50567        Implements offset{Left, Top, Width, Height} for table columns and column groups
50568        per section Extensions to the HTMLElement Interface of the CSSOM View spec,
50569        <http://www.w3.org/TR/cssom-view/#extensions-to-the-htmlelement-interface> (Draft 17 December 2013).
50570
50571        For now, we fail almost all of the offset{Height, Top} sub-tests in the included test
50572        for the separate border model as we need to fix <https://bugs.webkit.org/show_bug.cgi?id=128988>.
50573
50574        Test: fast/table/col-and-colgroup-offsets.html
50575
50576        * rendering/RenderTable.cpp:
50577        (WebCore::RenderTable::RenderTable): Initialize cached column offset top and offset height.
50578        We cache these offsets since they are the same for all columns in the table.
50579        (WebCore::RenderTable::invalidateCachedColumns): Clear cached effective column index map.
50580        (WebCore::RenderTable::invalidateCachedColumnOffsets): Added.
50581        (WebCore::RenderTable::layout): Invalidate cached column offsets as the location or height
50582        of one or more sections may have changed.
50583        (WebCore::RenderTable::updateColumnCache): Modified to build effective column index map.
50584        (WebCore::RenderTable::effectiveIndexOfColumn): Added.
50585        (WebCore::RenderTable::offsetTopForColumn): Added.
50586        (WebCore::RenderTable::offsetLeftForColumn): Added.
50587        (WebCore::RenderTable::offsetWidthForColumn): Added.
50588        (WebCore::RenderTable::offsetHeightForColumn): Added.
50589        * rendering/RenderTable.h: Make isTableColumnGroupWithColumnChildren() const.
50590        * rendering/RenderTableCol.cpp:
50591        (WebCore::RenderTableCol::offsetLeft): Added; turns around and calls RenderTable::offsetLeftForColumn().
50592        (WebCore::RenderTableCol::offsetTop): Added; turns around and calls RenderTable::offsetTopForColumn().
50593        (WebCore::RenderTableCol::offsetWidth): Added; turns around and calls RenderTable::offsetWidthForColumn().
50594        (WebCore::RenderTableCol::offsetHeight): Added; turns around and calls RenderTable::offsetHeightForColumn().
50595        * rendering/RenderTableCol.h:
50596
505972014-02-21  Enrica Casucci  <enrica@apple.com>
50598
50599        Build fix for iOS after r164498.
50600
50601        Unreviewed.
50602
50603        * platform/graphics/ios/MediaPlayerPrivateIOS.mm:
50604        (WebCore::MediaPlayerPrivateIOS::buffered):
50605
506062014-02-21  Ryosuke Niwa  <rniwa@webkit.org>
50607
50608        Disallow the use of -webkit-user-modify on shadow pseudo elements
50609        https://bugs.webkit.org/show_bug.cgi?id=129144
50610
50611        Reviewed by Geoffrey Garen.
50612
50613        Completely disallow -webkit-user-modify on user agent (builtin) pseudo elements.
50614
50615        We've already had rules to do this in html.css but just hard code it into the engine
50616        in order to eliminate the all uses of -webkit-user-modify in html.css.
50617
50618        * css/StyleResolver.cpp:
50619        (WebCore::StyleResolver::adjustRenderStyle):
50620        * css/html.css:
50621        (input::-webkit-textfield-decoration-container):
50622        (input::-webkit-clear-button):
50623        (input[type="search"]::-webkit-search-cancel-button):
50624        (input[type="search"]::-webkit-search-decoration):
50625        (input[type="search"]::-webkit-search-results-decoration):
50626        (input[type="search"]::-webkit-search-results-button):
50627        (input::-webkit-inner-spin-button):
50628        (input::-webkit-input-speech-button):
50629        (input::-webkit-input-placeholder, isindex::-webkit-input-placeholder):
50630        (input[type="file"]::-webkit-file-upload-button):
50631        (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container):
50632        (input[type="range"]::-webkit-slider-runnable-track):
50633        (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb):
50634        (input[type="color"]::-webkit-color-swatch-wrapper):
50635        (input[type="color"]::-webkit-color-swatch):
50636        (::-webkit-validation-bubble):
50637        (::-webkit-validation-bubble-message):
50638        (::-webkit-validation-bubble-text-block):
50639        (::-webkit-validation-bubble-heading):
50640        (::-webkit-validation-bubble-arrow):
50641        (::-webkit-validation-bubble-arrow-clipper):
50642        (meter::-webkit-meter-inner-element):
50643        (meter::-webkit-meter-bar):
50644        (meter::-webkit-meter-optimum-value):
50645        (meter::-webkit-meter-suboptimum-value):
50646        (meter::-webkit-meter-even-less-good-value):
50647        (progress::-webkit-progress-inner-element):
50648        (progress::-webkit-progress-bar):
50649        (progress::-webkit-progress-value):
50650
506512014-02-21  Eric Carlson  <eric.carlson@apple.com>
50652
50653        Fix TimeRanges layering violations
50654        https://bugs.webkit.org/show_bug.cgi?id=128717
50655
50656        Reviewed by Jer Noble.
50657
50658        No new tests, no functionality changed.
50659
50660        * CMakeLists.txt:
50661        * GNUmakefile.list.am: Add PlatformTimeRanges.
50662
50663        * Modules/mediasource/MediaSource.cpp:
50664        (WebCore::MediaSource::buffered): TimeRanges -> PlatformTimeRanges.
50665        * Modules/mediasource/MediaSource.h:
50666
50667        * Modules/mediasource/SourceBuffer.cpp:
50668        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): TimeRanges* -> TimeRanges&.
50669
50670        * WebCore.exp.in: Update for signature changes.
50671
50672        * WebCore.vcxproj/WebCore.vcxproj:
50673        * WebCore.vcxproj/WebCore.vcxproj.filters:
50674        * WebCore.xcodeproj/project.pbxproj: Add PlatformTimeRanges.
50675
50676        * html/HTMLMediaElement.cpp:
50677        (WebCore::HTMLMediaElement::percentLoaded): Create TimeRanges from PlatformTimeRanges.
50678        (WebCore::HTMLMediaElement::buffered): Ditto.
50679        (WebCore::HTMLMediaElement::seekable): Ditto.
50680
50681        * html/MediaController.cpp:
50682        (MediaController::buffered): TimeRanges* -> TimeRanges&.
50683        (MediaController::seekable): Ditto.
50684        (MediaController::played): Ditto.
50685
50686        Move all of the logic into PlatformTimeRanges. Change API to take TimeRanges& instead of TimeRanges*.
50687        * html/TimeRanges.cpp:
50688        (WebCore::TimeRanges::create): Move to .cpp from .h.
50689        (WebCore::TimeRanges::TimeRanges): Initialize the PlatformTimeRanges member variable.
50690        (WebCore::TimeRanges::start): Passthrough to PlatformTimeRanges.
50691        (WebCore::TimeRanges::end): Ditto.
50692        (WebCore::TimeRanges::invert): Ditto.
50693        (WebCore::TimeRanges::copy): Ditto.
50694        (WebCore::TimeRanges::intersectWith): Ditto.
50695        (WebCore::TimeRanges::unionWith): Ditto.
50696        (WebCore::TimeRanges::length): Ditto.
50697        (WebCore::TimeRanges::add): Ditto.
50698        (WebCore::TimeRanges::contain): Ditto.
50699        (WebCore::TimeRanges::find): Ditto.
50700        (WebCore::TimeRanges::nearest): Ditto.
50701        (WebCore::TimeRanges::totalDuration): Ditto.
50702        * html/TimeRanges.h:
50703
50704        * platform/graphics/MediaPlayer.cpp:
50705        (WebCore::NullMediaPlayerPrivate::buffered): TimeRanges -> PlatformTimeRanges.
50706        (WebCore::MediaPlayer::buffered): Ditto.
50707        (WebCore::MediaPlayer::seekable): Ditto.
50708        * platform/graphics/MediaPlayer.h:
50709        * platform/graphics/MediaPlayerPrivate.h:
50710
50711        * platform/graphics/MediaSourcePrivateClient.h:
50712
50713        * platform/graphics/PlatformTimeRanges.cpp: Added.
50714        * platform/graphics/PlatformTimeRanges.h: Added.
50715
50716        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
50717        (WebCore::MediaPlayerPrivateAVFoundation::buffered): TimeRanges -> PlatformTimeRanges.
50718        (WebCore::MediaPlayerPrivateAVFoundation::loadedTimeRangesChanged): Drive-by fix to log
50719            FunctionType notifications. ASSERT when passed an unknown notification.
50720
50721        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
50722        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
50723        (WebCore::MediaPlayerPrivateAVFoundationCF::platformBufferedTimeRanges):  TimeRanges -> PlatformTimeRanges.
50724        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
50725        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
50726        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
50727        (WebCore::MediaPlayerPrivateAVFoundationObjC::currentTime): Ditto.
50728        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges): Ditto.
50729
50730        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
50731        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
50732        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekable): Ditto.
50733        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered): Ditto.
50734
50735        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
50736        (WebCore::MediaPlayerPrivateGStreamer::buffered): Ditto.
50737        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
50738
50739        * platform/graphics/ios/MediaPlayerPrivateIOS.h:
50740        * platform/graphics/ios/MediaPlayerPrivateIOS.mm:
50741        (WebCore::MediaPlayerPrivateIOS::buffered): Ditto.
50742
50743        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
50744        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
50745        (WebCore::MediaPlayerPrivateQTKit::buffered): Ditto.
50746
50747        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
50748        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::buffered): Ditto.
50749        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
50750
50751        * platform/graphics/wince/MediaPlayerPrivateWinCE.h:
50752
50753        * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
50754        (WebCore::MockMediaPlayerMediaSource::buffered): Ditto.
50755        (WebCore::MockMediaPlayerMediaSource::advanceCurrentTime): Ditto.
50756        * platform/mock/mediasource/MockMediaPlayerMediaSource.h:
50757
507582014-02-21  Enrica Casucci  <enrica@apple.com>
50759
50760        Support WebSelections in WK2 on iOS.
50761        https://bugs.webkit.org/show_bug.cgi?id=127015
50762        <rdar://problem/15211964>
50763
50764        Reviewed by Benjamin Poulain.
50765
50766        Adding some exports.
50767
50768        * WebCore.exp.in:
50769
507702014-02-21  Benjamin Poulain  <bpoulain@apple.com>
50771
50772        'mouseenter' mouse compat event not fired when listeners for touch events
50773        https://bugs.webkit.org/show_bug.cgi?id=128534
50774
50775        Reviewed by Andreas Kling.
50776
50777        The code dispatching mouseenter and mouseleave events was making the assumption that
50778        only mouse move would cause Document::updateHoverActiveState.
50779
50780        This is not true in some cases. In the case of this bug, the first touch handler sets
50781        the hover state. From there, the code handling enter/leave is in an inconsistent state.
50782
50783        This patch changes the delivery of mouse enter/leave events to be done through the regular
50784        processing of mouse events. The update is done with the mouseover and mouseout events.
50785
50786        * dom/Document.cpp:
50787        (WebCore::Document::prepareMouseEvent):
50788        (WebCore::Document::updateHoverActiveState):
50789        * dom/Document.h:
50790        * page/EventHandler.cpp:
50791        (WebCore::nearestCommonHoverAncestor):
50792        (WebCore::hierarchyHasCapturingEventListeners):
50793        (WebCore::EventHandler::updateMouseEventTargetNode):
50794
507952014-02-21  Jon Honeycutt  <jhoneycutt@apple.com>
50796
50797        Crash reloading page with position: fixed content
50798        https://bugs.webkit.org/show_bug.cgi?id=129119
50799        <rdar://problem/16127090>
50800
50801        Reviewed by Brent Fulgham.
50802
50803        Test: platform/mac-wk2/tiled-drawing/crash-reloading-with-position-fixed-content.html
50804
50805        * page/scrolling/ScrollingTree.cpp:
50806        (WebCore::ScrollingTree::removeDestroyedNodes):
50807        Check the node's ID against the latched node's ID before the node is
50808        removed from the tree.
50809
508102014-02-21  Joseph Pecoraro  <pecoraro@apple.com>
50811
50812        Revert r164486, causing a number of test failures.
50813
50814        Unreviewed rollout.
50815
508162014-02-21  David Kilzer  <ddkilzer@apple.com>
50817
50818        StyleResolver::loadPendingImage() should take a reference to StylePendingImage
50819        <http://webkit.org/b/129021>
50820
50821        Reviewed by Brent Fulgham.
50822
50823        * css/StyleResolver.cpp:
50824        (WebCore::StyleResolver::loadPendingImage): Change pendingImage
50825        parameter to a reference.
50826        (WebCore::StyleResolver::loadPendingShapeImage): Update to use
50827        references.
50828        (WebCore::StyleResolver::loadPendingImages): Ditto.
50829        * css/StyleResolver.h:
50830        (WebCore::StyleResolver::loadPendingImage): Change pendingImage
50831        parameter to a reference.
50832
508332014-02-21  Joseph Pecoraro  <pecoraro@apple.com>
50834
50835        Web Inspector: JSContext inspection should report exceptions in the console
50836        https://bugs.webkit.org/show_bug.cgi?id=128776
50837
50838        Reviewed by Timothy Hatcher.
50839
50840        Include some clean up of ConsoleMessage and ScriptCallStack construction.
50841
50842        Covered by existing tests.
50843
50844        * bindings/js/JSDOMBinding.cpp:
50845        (WebCore::reportException):
50846        Simplify code now that createStackTraceFromException handles it.
50847
50848        * page/ContentSecurityPolicy.cpp:
50849        (WebCore::gatherSecurityPolicyViolationEventData):
50850        (WebCore::ContentSecurityPolicy::reportViolation):
50851        ScriptCallStack can give us the first non-native callframe.
50852
50853        * inspector/InspectorResourceAgent.cpp:
50854        (WebCore::InspectorResourceAgent::buildInitiatorObject):
50855        * inspector/PageDebuggerAgent.cpp:
50856        (WebCore::PageDebuggerAgent::breakpointActionLog):
50857        * inspector/TimelineRecordFactory.cpp:
50858        (WebCore::TimelineRecordFactory::createGenericRecord):
50859        * page/Console.cpp:
50860        (WebCore::internalAddMessage):
50861        (WebCore::Console::profile):
50862        (WebCore::Console::profileEnd):
50863        (WebCore::Console::timeEnd):
50864        * page/ContentSecurityPolicy.cpp:
50865        (WebCore::gatherSecurityPolicyViolationEventData):
50866        (WebCore::ContentSecurityPolicy::reportViolation):
50867        * page/DOMWindow.cpp:
50868        (WebCore::DOMWindow::postMessage):
50869
508702014-02-21  Martin Hodovan  <mhodovan@inf.u-szeged.hu>
50871
50872        Fixing the !ENABLE(SVG_FONTS) build
50873        https://bugs.webkit.org/show_bug.cgi?id=129150
50874
50875        Reviewed by Anders Carlsson.
50876
50877        No new tests required.
50878
50879        * svg/SVGAltGlyphElement.cpp:
50880        * svg/SVGAltGlyphElement.h:
50881        * svg/svgtags.in:
50882
508832014-02-21  Radu Stavila  <stavila@adobe.com>
50884
50885        [CSS Regions] Use the named-flow-specific object RenderNamedFlowFragment instead of the generic RenderRegion whenever possible
50886        https://bugs.webkit.org/show_bug.cgi?id=128599
50887
50888        Reviewed by Andrei Bucur.
50889
50890        Use the named flow specific RenderNamedFlowFragment instead of the generic RenderRegion, whenever possible.
50891        Move named flow specific methods from RenderRegion to RenderNamedFlowFragment.
50892
50893        No new tests required.
50894
50895        * dom/Element.cpp:
50896        (WebCore::Element::renderNamedFlowFragment):
50897        (WebCore::Element::webkitRegionOverset):
50898        (WebCore::Element::webkitGetRegionFlowRanges):
50899        * dom/Element.h:
50900        * inspector/InspectorCSSAgent.cpp:
50901        (WebCore::InspectorCSSAgent::buildArrayForRegions):
50902        * rendering/PaintInfo.h:
50903        (WebCore::PaintInfo::PaintInfo):
50904        * rendering/RenderBlock.cpp:
50905        (WebCore::RenderBlock::paint):
50906        (WebCore::RenderBlock::paintObject):
50907        * rendering/RenderBox.cpp:
50908        (WebCore::RenderBox::paintBoxDecorations):
50909        (WebCore::RenderBox::pushContentsClip):
50910        (WebCore::RenderBox::layoutOverflowRectForPropagation):
50911        * rendering/RenderBox.h:
50912        * rendering/RenderBoxModelObject.cpp:
50913        (WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
50914        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
50915        * rendering/RenderBoxModelObject.h:
50916        * rendering/RenderInline.h:
50917        * rendering/RenderLayer.cpp:
50918        (WebCore::RenderLayer::paint):
50919        (WebCore::RenderLayer::paintLayer):
50920        (WebCore::RenderLayer::paintLayerContents):
50921        (WebCore::RenderLayer::paintLayerByApplyingTransform):
50922        (WebCore::RenderLayer::updatePaintingInfoForFragments):
50923        (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
50924        (WebCore::RenderLayer::paintBackgroundForFragments):
50925        (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
50926        (WebCore::RenderLayer::paintOutlineForFragments):
50927        (WebCore::RenderLayer::paintMaskForFragments):
50928        (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
50929        (WebCore::RenderLayer::calculateClipRects):
50930        * rendering/RenderLayer.h:
50931        * rendering/RenderNamedFlowFragment.cpp:
50932        (WebCore::RenderNamedFlowFragment::getRanges):
50933        * rendering/RenderNamedFlowFragment.h:
50934        * rendering/RenderNamedFlowThread.cpp:
50935        (WebCore::RenderNamedFlowThread::updateWritingMode):
50936        (WebCore::compareRenderNamedFlowFragments):
50937        (WebCore::addFragmentToList):
50938        (WebCore::RenderNamedFlowThread::addFragmentToNamedFlowThread):
50939        (WebCore::RenderNamedFlowThread::addRegionToThread):
50940        (WebCore::RenderNamedFlowThread::removeRegionFromThread):
50941        (WebCore::RenderNamedFlowThread::computeOversetStateForRegions):
50942        (WebCore::RenderNamedFlowThread::checkInvalidRegions):
50943        (WebCore::RenderNamedFlowThread::getRanges):
50944        (WebCore::RenderNamedFlowThread::checkRegionsWithStyling):
50945        (WebCore::RenderNamedFlowThread::clearRenderObjectCustomStyle):
50946        * rendering/RenderNamedFlowThread.h:
50947        * rendering/RenderRegion.cpp:
50948        * rendering/RenderRegion.h:
50949        * rendering/RenderReplaced.cpp:
50950        (WebCore::RenderReplaced::shouldPaint):
50951        * rendering/RenderReplica.cpp:
50952        (WebCore::RenderReplica::paint):
50953        * rendering/RootInlineBox.cpp:
50954        (WebCore::RootInlineBox::paint):
50955        * rendering/svg/RenderSVGRoot.cpp:
50956        (WebCore::RenderSVGRoot::paintReplaced):
50957
509582014-02-21  Andrei Bucur  <abucur@adobe.com>
50959
50960        [CSS Regions] Regions don't paint correctly in new-multicol elements
50961        https://bugs.webkit.org/show_bug.cgi?id=120711
50962
50963        Reviewed by David Hyatt.
50964
50965        This patch implements basic support for regions inside multi-column elements.
50966        Currently, the painting and hit-testing logic of CSS Regions is not aware of
50967        enclosing multi-column elements. The change is integrated at a layer level by
50968        making use of the pre-computed layer fragments during the painting and hit-testing
50969        phases for regions.
50970
50971        There are limitations such that self painting layers found inside the named flow
50972        thread layer will not be correctly processed because they don't go through the
50973        layer fragment collection step. This is not trivial to implement because the enclosing
50974        pagination layer provided by the multi-column element is not visibile from inside
50975        the named flow thread layer and they reside in different coordinate systems.
50976
50977        A side effect of this patch is the fix of regions incorrect clipping in certain
50978        cases (when both a region and its container clip their overflow, the region's
50979        content is visible outside the container).
50980
50981        Tests: fast/regions/region-clipping.html
50982               fast/regions/regions-in-multicol-bt.html
50983               fast/regions/regions-in-multicol-hover-overflow.html
50984               fast/regions/regions-in-multicol-hover.html
50985               fast/regions/regions-in-multicol-lr.html
50986               fast/regions/regions-in-multicol-rl.html
50987               fast/regions/regions-in-multicol.html
50988
50989        * rendering/RenderLayer.cpp:
50990        (WebCore::RenderLayer::paintLayerContents):
50991        (WebCore::RenderLayer::hitTestLayer):
50992        (WebCore::RenderLayer::paintFlowThreadIfRegionForFragments):
50993        (WebCore::RenderLayer::hitTestFlowThreadIfRegionForFragments):
50994        * rendering/RenderLayer.h:
50995
509962014-02-21  Mihai Tica  <mitica@adobe.com>
50997
50998        [CSS Blending] Refactor -webkit-blend-mode to -webkit-mix-blend-mode
50999        https://bugs.webkit.org/show_bug.cgi?id=128805
51000
51001        Reviewed by Dean Jackson.
51002
51003        The spec defines the mix-blend-mode property. This means that the
51004        prefixed version should be -webkit-mix-blend-mode, instead of
51005        -webkit-blend-mode.
51006
51007        * css/CSSComputedStyleDeclaration.cpp:
51008        (WebCore::ComputedStyleExtractor::propertyValue):
51009        * css/CSSParser.cpp:
51010        (WebCore::isValidKeywordPropertyAndValue):
51011        (WebCore::isKeywordPropertyID):
51012        (WebCore::CSSParser::parseValue):
51013        * css/CSSPropertyNames.in:
51014        * css/DeprecatedStyleBuilder.cpp:
51015        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
51016
510172014-02-21  Ryosuke Niwa  <rniwa@webkit.org>
51018
51019        Bindings tests rebaseline after r164473.
51020
51021        * bindings/scripts/test/ObjC/DOMTestObj.mm:
51022        (-[DOMTestObj mutablePoint]):
51023        (-[DOMTestObj immutablePoint]):
51024        (-[DOMTestObj mutablePointFunction]):
51025        (-[DOMTestObj immutablePointFunction]):
51026        * bindings/scripts/test/ObjC/DOMTestTypedefs.mm:
51027        (-[DOMTestTypedefs immutablePointFunction]):
51028
510292014-02-21  Tim Horton  <timothy_horton@apple.com>
51030
51031        Remove removed symbol from exports list.
51032
51033        * WebCore.exp.in:
51034
510352014-02-20  ChangSeok Oh  <changseok.oh@collabora.com>
51036
51037        Rename EXT_draw_buffers to WEBGL_draw_buffers
51038        https://bugs.webkit.org/show_bug.cgi?id=128894
51039
51040        Reviewed by Dean Jackson.
51041
51042        I noticed the related spec has changed. Accordingly chromium also changed its implementation
51043        to meet the spec. So here I'd like to apply it to webkit as well.
51044
51045        Merged from Blink (patch by bajones):
51046        https://src.chromium.org/viewvc/blink?revision=152065&view=revision
51047
51048        Test: fast/canvas/webgl/webgl-draw-buffers.html
51049
51050        * CMakeLists.txt:
51051        * DerivedSources.cpp:
51052        * DerivedSources.make:
51053        * GNUmakefile.list.am:
51054        * WebCore.vcxproj/WebCore.vcxproj:
51055        * WebCore.vcxproj/WebCore.vcxproj.filters:
51056        * WebCore.xcodeproj/project.pbxproj:
51057        * bindings/js/JSWebGLRenderingContextCustom.cpp:
51058        (WebCore::toJS):
51059        * html/canvas/EXTDrawBuffers.idl: Removed.
51060        * html/canvas/WebGLDrawBuffers.cpp: Renamed from Source/WebCore/html/canvas/EXTDrawBuffers.cpp.
51061        (WebCore::WebGLDrawBuffers::WebGLDrawBuffers):
51062        (WebCore::WebGLDrawBuffers::~WebGLDrawBuffers):
51063        (WebCore::WebGLDrawBuffers::getName):
51064        (WebCore::WebGLDrawBuffers::create):
51065        (WebCore::WebGLDrawBuffers::supported):
51066        (WebCore::WebGLDrawBuffers::drawBuffersWEBGL):
51067        (WebCore::WebGLDrawBuffers::satisfiesWebGLRequirements):
51068        * html/canvas/WebGLDrawBuffers.h: Renamed from Source/WebCore/html/canvas/EXTDrawBuffers.h.
51069        * html/canvas/WebGLDrawBuffers.idl: Added.
51070        * html/canvas/WebGLExtension.h:
51071        * html/canvas/WebGLFramebuffer.cpp:
51072        (WebCore::WebGLFramebuffer::drawBuffersIfNecessary):
51073        * html/canvas/WebGLRenderingContext.cpp:
51074        (WebCore::WebGLRenderingContext::getExtension):
51075        (WebCore::WebGLRenderingContext::getParameter):
51076        (WebCore::WebGLRenderingContext::getSupportedExtensions):
51077        (WebCore::WebGLRenderingContext::validateFramebufferFuncParameters):
51078        (WebCore::WebGLRenderingContext::supportsDrawBuffers):
51079        * html/canvas/WebGLRenderingContext.h:
51080
510812014-02-20  Ryosuke Niwa  <rniwa@webkit.org>
51082
51083        m_ancestorDisabledState should never be unknown
51084        https://bugs.webkit.org/show_bug.cgi?id=129084
51085
51086        Reviewed by Benjamin Poulain.
51087
51088        In order to resolve the bug 129035, a text form control elements needs to synchronously change
51089        its inner text element's editability by setting or unsetting contenteditable content attribute.
51090        Before this patch, we could not do this because editability of a text form control dependent on
51091        its disabled-ness which was only computed lazily via updateAncestorDisabledState().
51092
51093        This patch makes HTMLFieldSetElement and HTMLFormControlElement update this state synchronously.
51094        To avoid O(k) DOM traversal, where k is the depth of the tree, in insertedInto and removedFrom of
51095        HTMLFormControlElement on most pages, a new document-level flag, m_disabledFieldsetElementsCount,
51096        has been added to indicate whether the document contains any disabled fieldset or not.
51097
51098        Also renamed the misleadingly named disabledAttributeChanged to disabledStateChanged, and added
51099        new function of the same name (disabledAttributeChanged) to be used by HTMLFieldSetElement
51100        for keeping the document-level flag up-to-date upon disabled attribute changes.
51101
51102        Tests: fast/forms/fieldset/fieldset-disabled-2.html
51103
51104        * dom/Document.cpp:
51105        (WebCore::Document::Document): Initializes newly added m_disabledFieldsetElementsCount.
51106        (WebCore::Document::~Document): Assert that we've done house keeping right.
51107        * dom/Document.h:
51108        (WebCore::Document::hasDisabledFieldsetElement): Added.
51109        (WebCore::Document::addDisabledFieldsetElement): Added.
51110        (WebCore::Document::removeDisabledFieldsetElement): Added.
51111
51112        * html/HTMLFieldSetElement.cpp:
51113        (WebCore::HTMLFieldSetElement::~HTMLFieldSetElement): Removes itself from the owner document.
51114
51115        (WebCore::updateFromControlElementsAncestorDisabledStateUnder): Added. Updates startNode and
51116        its descendants' ancestor disabled flag. We don't update controls under another disabled
51117        fieldset element since disabled-ness of those controls aren't affected by startNode.
51118
51119        (WebCore::HTMLFieldSetElement::disabledAttributeChanged): Call addDisabledFieldsetElement and
51120        removeDisabledFieldsetElement to update the owner document's flag.
51121
51122        (WebCore::HTMLFieldSetElement::disabledStateChanged): Renamed from disabledAttributeChanged. 
51123        Enable form control elements under the first legend element and disable or enable other
51124        descendent form controls in accordance with the presence of disabled content attribute.
51125
51126        (WebCore::HTMLFieldSetElement::childrenChanged): Update disabled-ness of form controls under
51127        child legend elements because controls aren't disabled in the first legend element, and adding
51128        or removing child elements may have changed the first legend element.
51129
51130        (WebCore::HTMLFieldSetElement::didMoveToNewDocument): Update the flag on the owner document.
51131        * html/HTMLFieldSetElement.h:
51132
51133        * html/HTMLFormControlElement.cpp:
51134        (WebCore::HTMLFormControlElement::HTMLFormControlElement):
51135        (WebCore::HTMLFormControlElement::computeIsDisabledByFieldsetAncestor): Returns boolean instead of
51136        updating m_ancestorDisabledState internally. Also renamed from updateAncestorDisabledState.
51137
51138        (WebCore::HTMLFormControlElement::setAncestorDisabled): Replaced ancestorDisabledStateWasChanged.
51139        This function updates m_disabledByAncestorFieldset and calls disabledAttributeChanged as needed.
51140
51141        (WebCore::HTMLFormControlElement::disabledAttributeChanged): Added. Calls disabledStateChanged.
51142        (WebCore::HTMLFormControlElement::disabledStateChanged): Renamed from disabledAttributeChanged.
51143
51144        (WebCore::HTMLFormControlElement::insertedInto): Update m_disabledByAncestorFieldset if there is
51145        a possibility (i.e. the document contains any disabled fieldset element) that this form control
51146        is inserted under a disabled fieldset element.
51147
51148        (WebCore::HTMLFormControlElement::removedFrom): If this form control element is not disabled by
51149        a fieldset ancestor, then there is nothing to do. If it is, then check to see if the element is
51150        still disabled now that we've lost some ancestors.
51151
51152        (WebCore::HTMLFormControlElement::isDisabledFormControl): No longer updates m_ancestorDisabledState
51153        lazily since m_disabledByAncestorFieldset is never ambiguous now.
51154
51155        * html/HTMLFormControlElement.h:
51156        (WebCore::HTMLFormControlElement::disabledByAncestorFieldset): Added.
51157
511582014-02-20  Zalan Bujtas  <zalan@apple.com>
51159
51160        Remove redundant deviceScaleFactor() functions and make callers use Document::deviceScaleFactor() when accessible.
51161        https://bugs.webkit.org/show_bug.cgi?id=129137
51162
51163        Reviewed by Simon Fraser.
51164
51165        No change in behavior.
51166
51167        * editing/DeleteButtonController.cpp:
51168        (WebCore::DeleteButtonController::createDeletionUI):
51169        * page/Page.cpp:
51170        * page/Page.h:
51171        * platform/graphics/GraphicsContext.cpp:
51172        (WebCore::GraphicsContext::GraphicsContext):
51173        * platform/graphics/GraphicsContext.h:
51174        * platform/graphics/cg/GraphicsContextCG.cpp:
51175        (WebCore::GraphicsContext::platformInit):
51176        * rendering/RenderBoxModelObject.cpp:
51177        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
51178        (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
51179        * rendering/RenderImage.cpp:
51180        (WebCore::RenderImage::imageSizeForError):
51181        (WebCore::RenderImage::paintReplaced):
51182        * rendering/RenderLayer.cpp:
51183        (WebCore::RenderLayer::drawPlatformResizerImage):
51184        * rendering/RenderObject.cpp:
51185        (WebCore::RenderObject::drawLineForBoxSide):
51186        * rendering/RenderThemeMac.mm:
51187        (WebCore::RenderThemeMac::paintProgressBar):
51188        * rendering/svg/SVGRenderingContext.cpp:
51189        (WebCore::SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem):
51190
511912014-02-20  David Kilzer  <ddkilzer@apple.com>
51192
51193        Stop generating Objective-C bindings for the SVG DOM
51194        <http://webkit.org/b/129107>
51195
51196        Reviewed by Timothy Hatcher.
51197
51198        Bug 114076 stopped compiling the Objective-C bindings for the
51199        SVG DOM, but we continued to generate the header and source
51200        files after that landed in r147822.  This patch also stops
51201        generating the unused header and source files.
51202
51203        * DerivedSources.make:
51204        - Split BINDING_IDLS into NON_SVG_BINDING_IDLS and
51205          SVG_BINDING_IDLS so that they may operated on separately.
51206        - Define BINDING_IDLS again as the full list of IDL files.
51207        - Rename DOM_CLASSES to JS_DOM_CLASSES so that JavaScript
51208          bindings are still generated for all IDL files.
51209        - Add OBJC_DOM_CLASSES so that Objective-C bindings are only
51210          generated for non-SVG IDL files.
51211
51212        * bindings/scripts/CodeGeneratorObjC.pm:
51213        (GetBaseClass):
51214        (GetPropertyAttributes):
51215        (AddIncludesForType):
51216        (GenerateHeader):
51217        (GenerateImplementation):
51218        - Remove support for SVG classes.
51219
512202014-02-20  Simon Fraser  <simon.fraser@apple.com>
51221
51222        RenderBox::updateShapeOutsideInfoAfterStyleChange shows up on profiles
51223        https://bugs.webkit.org/show_bug.cgi?id=129075
51224
51225        Reviewed by Dean Jackson.
51226
51227        updateShapeOutsideInfoAfterStyleChange() showed up on profiles in content
51228        with no shapes. Avoid calling this if no style has shapeOutside().
51229
51230        * rendering/RenderBox.cpp:
51231        (WebCore::RenderBox::styleDidChange):
51232
512332014-02-20  ChangSeok Oh  <changseok.oh@collabora.com>
51234
51235        Remove unused chromium stuff in Extensions3D
51236        https://bugs.webkit.org/show_bug.cgi?id=129086
51237
51238        Reviewed by Anders Carlsson.
51239
51240        Remove GL_CHROMIUM_copy_texture and GL_CHROMIUM_flipy interfaces since they are used nowhere.
51241
51242        No new tests since no functionality changed.
51243
51244        * platform/graphics/Extensions3D.h:
51245        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
51246        * platform/graphics/opengl/Extensions3DOpenGL.h:
51247        * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
51248        * platform/graphics/opengl/Extensions3DOpenGLES.h:
51249
512502014-02-20  Joseph Pecoraro  <pecoraro@apple.com>
51251
51252        [iOS] Assert / crash trying to draw empty checked input
51253        https://bugs.webkit.org/show_bug.cgi?id=129138
51254
51255        Reviewed by Simon Fraser.
51256
51257        Test: fast/forms/checkbox-empty-size.html
51258
51259        * rendering/RenderThemeIOS.mm:
51260        (WebCore::shortened):
51261        Avoid a divide by 0, but checking for the condition upfront.
51262
512632014-02-20  Benjamin Poulain  <bpoulain@apple.com>
51264
51265        Start fixing the view states driven by the WKScrollView
51266        https://bugs.webkit.org/show_bug.cgi?id=129140
51267
51268        Reviewed by Tim Horton and Simon Fraser.
51269
51270        * platform/graphics/ca/mac/TileController.mm:
51271        (WebCore::TileController::scaledExposedRect):
51272        That comment was more confusing than helping. FrameView-relative coordinates should not need
51273        scaling.
51274
512752014-02-20  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
51276
51277        Start to use std::unique_ptr for DragImageLoader
51278        https://bugs.webkit.org/show_bug.cgi?id=129078
51279
51280        Reviewed by Ryosuke Niwa.
51281
51282        As a step to use std::unique_ptr, this patch replace uses of OwnPtr and PassOwnPtr
51283        in the DragImageLoader class with std::unique_ptr. Besides DragImageLoader is set to
51284        non-copyable class.
51285
51286        * dom/Clipboard.cpp:
51287        (WebCore::Clipboard::setDragImage):
51288        * dom/Clipboard.h:
51289
512902014-02-20  Brady Eidson  <beidson@apple.com>
51291
51292        Move the image controls setting to Settings.in
51293        https://bugs.webkit.org/show_bug.cgi?id=129126
51294
51295        Reviewed by Tim Horton.
51296
51297        * page/Settings.cpp:
51298        (WebCore::Settings::Settings):
51299        * page/Settings.h:
51300        * page/Settings.in:
51301
513022014-02-20  Brady Eidson  <beidson@apple.com>
51303
51304        Add very basic image control rendering
51305        https://bugs.webkit.org/show_bug.cgi?id=129080
51306
51307        Reviewed by Tim Horton.
51308
51309        Test: fast/images/image-controls-basic.html
51310
51311        This patch is groundwork that adds a very basic image control that can render on top of images.
51312
51313        * dom/Node.h:
51314        (WebCore::Node:: isImageControlsRootElement): Returns false, unless you are an ImageControls object.
51315        * html/HTMLAttributeNames.in:
51316
51317        Teach HTMLImageElement how to understand an experimental attribute to install controls,
51318        how to actually build the DOM to attach to the shadow root, how to tear that DOM down,
51319        and how to make sure that Renderers are created for that DOM:
51320        * html/HTMLImageElement.cpp:
51321        (WebCore::HTMLImageElement::HTMLImageElement):
51322        (WebCore::HTMLImageElement::parseAttribute):
51323        (WebCore::HTMLImageElement::didAttachRenderers):
51324        (WebCore::HTMLImageElement::updateImageControls):
51325        (WebCore::HTMLImageElement::createImageControls):
51326        (WebCore::HTMLImageElement::destroyImageControls):
51327        (WebCore::HTMLImageElement::hasImageControls):
51328        (WebCore::HTMLImageElement::childShouldCreateRenderer):
51329        * html/HTMLImageElement.h:
51330        (WebCore::HTMLImageElement::hasShadowControls): For RenderImage to query when it is constructed. 
51331
51332        Add a generic, platform independent ImageControls root element that does nothing:
51333        * html/shadow/ImageControlsRootElement.cpp: Added.
51334        (WebCore::ImageControlsRootElement::maybeCreate):
51335        (WebCore::ImageControlsRootElement::ImageControlsRootElement):
51336        (WebCore::ImageControlsRootElement::~ImageControlsRootElement):
51337        * html/shadow/ImageControlsRootElement.h: Added.
51338
51339        Add a Mac-specific ImageControls root element that renders a 20x20 red box (for now):
51340        * html/shadow/mac/ImageControlsRootElementMac.cpp: Added.
51341        (WebCore::ImageControlsRootElementMac::ImageControlsRootElementMac):
51342        (WebCore::ImageControlsRootElementMac::~ImageControlsRootElementMac):
51343        (WebCore::ImageControlsRootElement::maybeCreate):
51344        (WebCore::ImageControlsRootElementMac::maybeCreate):
51345        * html/shadow/mac/ImageControlsRootElementMac.h: Added.
51346
51347        Since much of the RenderMedia::layout() method is now required for RenderImage as well,
51348        move the logic to RenderImage. The extra work is controlled by a bool flag that will always
51349        be set for RenderMedias but will only be set for certain RenderImages:
51350        * rendering/RenderImage.cpp:
51351        (WebCore::RenderImage::RenderImage):
51352        (WebCore::RenderImage::canHaveChildren):
51353        (WebCore::RenderImage::layout):
51354        (WebCore::RenderImage::layoutShadowControls):
51355        * rendering/RenderImage.h:
51356        (WebCore::RenderImage::setHasShadowControls):
51357        (WebCore::RenderImage::shadowControlsNeedCustomLayoutMetrics):
51358
51359        * rendering/RenderMedia.cpp:
51360        (WebCore::RenderMedia::RenderMedia):
51361        * rendering/RenderMedia.h:
51362        (WebCore::RenderMedia::shadowControlsNeedCustomLayoutMetrics):
51363
51364        * WebCore.xcodeproj/project.pbxproj:
51365
51366== Rolled over to ChangeLog-2014-02-20 ==
51367