CSS JIT cleanup: move two utility functions out of the properties-matcher section
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-05-31  Benjamin Poulain  <benjamin@webkit.org>
2
3         CSS JIT cleanup: move two utility functions out of the properties-matcher section
4         https://bugs.webkit.org/show_bug.cgi?id=133427
5
6         Reviewed by Andreas Kling.
7
8         Just move the code, no other modification.
9
10         * cssjit/SelectorCompiler.cpp:
11         (WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNoPreviousAdjacentElement):
12         (WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNoNextAdjacentElement):
13
14 2014-05-31  Darin Adler  <darin@apple.com>
15
16         Viewport percentage tests that resize the viewport are flaky
17         https://bugs.webkit.org/show_bug.cgi?id=133351
18
19         Reviewed by Anders Carlsson.
20
21         * page/FrameView.cpp:
22         (WebCore::FrameView::setFrameRect): Removed code that explicitly sends a resize event here.
23         The resize event will be sent as a side effect of layout instead.
24         (WebCore::FrameView::sendResizeEventIfNeeded): Don't send a resize event until layout is done,
25         since this is what propagates the new geometry in so the JavaScript code can detect it. Also
26         simplified the logic and streamlined a little, and added a FIXME about the bad idea here where
27         the code enqueues an event for an unknown time in the future. Removed the unneeded code that
28         passes in the DOM window as the target to dispatchWindowEvent, since that gets filled in as the
29         target by default.
30
31 2014-05-31  Anders Carlsson  <andersca@apple.com>
32
33         Don't use std::mutex::try_lock to check if we own a mutex
34         https://bugs.webkit.org/show_bug.cgi?id=133421
35
36         Reviewed by Dan Bernstein.
37
38         According the C++ standard, calling try_lock on a mutex that's already owned by the current thread
39         is undefined behavior, so don't do that.
40
41         * Modules/webdatabase/DatabaseBackendBase.cpp:
42         (WebCore::guidToVersionMap):
43         (WebCore::updateGuidVersionMap):
44         (WebCore::guidToDatabaseMap):
45         (WebCore::guidForOriginAndName):
46
47 2014-05-30  Enrica Casucci  <enrica@apple.com>
48
49         REGRESSION (WebKit2): space space to insert period doesn't work in web forms.
50         https://bugs.webkit.org/show_bug.cgi?id=133413
51         <rdar://problem/16948333>
52
53         Reviewed by Benjamin Poulain.
54
55         Adding utility functions and their exports.
56
57         * WebCore.exp.in:
58         * editing/TextIterator.cpp:
59         (WebCore::plainTextReplacingNoBreakSpace):
60         * editing/TextIterator.h:
61         * editing/VisibleUnits.cpp:
62         (WebCore::charactersAroundPosition):
63         (WebCore::characterBeforePosition): Deleted.
64         * editing/VisibleUnits.h:
65
66 2014-05-30  Zalan Bujtas  <zalan@apple.com>
67
68         Cleanup temporary setting of image interpolation quality in GraphicsContext::drawImage*
69         https://bugs.webkit.org/show_bug.cgi?id=133407
70
71         Reviewed by Darin Adler.
72
73         Add helper class to set/reset image interpolation quality value.
74
75         No change in functionality.
76
77         * platform/graphics/GraphicsContext.cpp:
78         (WebCore::InterpolationQualityMaintainer::InterpolationQualityMaintainer):
79         (WebCore::InterpolationQualityMaintainer::~InterpolationQualityMaintainer):
80         (WebCore::GraphicsContext::drawImage):
81         (WebCore::GraphicsContext::drawTiledImage):
82         (WebCore::GraphicsContext::drawImageBuffer):
83
84 2014-05-30  Myles C. Maxfield  <mmaxfield@apple.com>
85
86         Support -apple-system-font on OS X
87         https://bugs.webkit.org/show_bug.cgi?id=133382
88
89         Addressing post-review comments.
90
91         * platform/mac/WebFontCache.mm:
92         (+[WebFontCache internalFontWithFamily:traits:weight:size:]):
93
94 2014-05-30  Prashant Hiremath  <hiremathprashants@gmail.com>
95
96         Remove repetitive header in HTMLInputElement.cpp
97         https://bugs.webkit.org/show_bug.cgi?id=133376
98
99         Reviewed by Anders Carlsson.
100
101         It is just removal repeative headers hence no test needed.
102
103         * html/HTMLInputElement.cpp:
104
105 2014-05-30  Zalan Bujtas  <zalan@apple.com>
106
107         Remove redundant GraphicsContext::drawImage() function.
108         https://bugs.webkit.org/show_bug.cgi?id=133347
109
110         Reviewed by Simon Fraser.
111
112         There are 2 GraphicsContext::drawImage functions with very similar parameter list. This looks
113         to be a source of confusion and results in passing unneeded parameters.
114
115         No change in functionality.
116
117         * html/canvas/CanvasRenderingContext2D.cpp:
118         (WebCore::CanvasRenderingContext2D::drawImage):
119         (WebCore::drawImageToContext):
120         * platform/graphics/GraphicsContext.cpp:
121         (WebCore::GraphicsContext::drawImage):
122         * platform/graphics/GraphicsContext.h:
123         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
124         (WebCore::MediaPlayerPrivateGStreamerBase::paint):
125         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
126         (WebCore::BitmapTextureImageBuffer::updateContents):
127         * rendering/RenderBoxModelObject.cpp:
128         (WebCore::RenderBoxModelObject::paintNinePieceImage):
129
130 2014-05-29  Alex Christensen  <achristensen@webkit.org>
131
132         Prepare css jit for arm64 and other architectures.
133         https://bugs.webkit.org/show_bug.cgi?id=133394
134
135         Reviewed by Benjamin Poulain.
136
137         * cssjit/FunctionCall.h:
138         (WebCore::FunctionCall::swapArguments):
139         * cssjit/RegisterAllocator.h:
140         Use a designated temporary register on arm64 to prevent using a deallocated argument register to swap argument registers in.
141         * cssjit/SelectorCompiler.cpp:
142         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
143         Added assertion to make sure there are enough registers.
144
145 2014-05-29  Benjamin Poulain  <benjamin@webkit.org>
146
147         CSS JIT: add support for the pseudo classes :hover and :active
148         https://bugs.webkit.org/show_bug.cgi?id=133295
149
150         Reviewed by Andreas Kling.
151
152         This patch adds compilation support for :hover and :active. The code generation of both of them is trivial,
153         most of the patch is improving the infrastructure and safety.
154
155         The document compatibility mode is moved to its own typed enum. This ensure the values are exclusives and
156         the native type is known (unsigned char here). The values are changes to binary flags to take advantage of
157         test-and-branch on ARM64 (not used explicitely, it is automatically generated by the MacroAssembler).
158
159         The other important refactoring is the code updating the flags on RenderStyle::NonInheritedFlags.
160         The code was duplicated in some places so it is move into its own function addFlagToElementStyleFromContext().
161
162         The generators themself are very simple. First we check the quirks-mode exceptions, that is generally excluded
163         at compile time because the conditions are almost never met, even in strict mode.
164         Then we have two cases: style resolution and query selector. Almost everything is just function calls.
165
166         * cssjit/SelectorCompiler.cpp:
167         (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
168         (WebCore::SelectorCompiler::addPseudoClassType):
169         (WebCore::SelectorCompiler::SelectorCodeGenerator::addFlagToElementStyleFromContext):
170         (WebCore::SelectorCompiler::fragmentOnlyMatchesLinksInQuirksMode):
171         (WebCore::SelectorCompiler::getDocument):
172         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSpecialFailureInQuirksModeForActiveAndHoverIfNeeded):
173         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
174         (WebCore::SelectorCompiler::elementIsActive):
175         (WebCore::SelectorCompiler::elementIsActiveForStyleResolution):
176         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsActive):
177         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFirstChild):
178         (WebCore::SelectorCompiler::elementIsHovered):
179         (WebCore::SelectorCompiler::elementIsHoveredForStyleResolution):
180         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):
181         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsLastChild):
182         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsOnlyChild):
183         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
184         * dom/Document.cpp:
185         (WebCore::Document::Document):
186         (WebCore::Document::setCompatibilityMode):
187         (WebCore::Document::implicitOpen):
188         (WebCore::Document::cloneDataFromDocument):
189         * dom/Document.h:
190         (WebCore::Document::compatibilityModeMemoryOffset):
191         (WebCore::Document::inQuirksMode):
192         (WebCore::Document::inLimitedQuirksMode):
193         (WebCore::Document::inNoQuirksMode):
194         (WebCore::Document::compatibilityMode): Deleted.
195         * html/ImageDocument.cpp:
196         (WebCore::ImageDocument::ImageDocument):
197         * html/MediaDocument.cpp:
198         (WebCore::MediaDocument::MediaDocument):
199         * html/PluginDocument.cpp:
200         (WebCore::PluginDocument::PluginDocument):
201         * html/TextDocument.cpp:
202         (WebCore::TextDocument::TextDocument):
203         * html/parser/HTMLConstructionSite.cpp:
204         (WebCore::HTMLConstructionSite::setDefaultCompatibilityMode):
205         (WebCore::HTMLConstructionSite::setCompatibilityMode):
206         (WebCore::HTMLConstructionSite::setCompatibilityModeFromDoctype):
207         (WebCore::HTMLConstructionSite::insertDoctype):
208         * html/parser/HTMLConstructionSite.h:
209         * loader/DocumentWriter.cpp:
210         (WebCore::DocumentWriter::replaceDocument):
211         * loader/SinkDocument.cpp:
212         (WebCore::SinkDocument::SinkDocument):
213         * page/ios/FrameIOS.mm:
214         (WebCore::Frame::initWithSimpleHTMLDocument):
215         * rendering/style/RenderStyle.h:
216
217 2014-05-28  Jon Honeycutt  <jhoneycutt@apple.com>
218
219         Roll r168668 back in.
220
221         <https://bugs.webkit.org/show_bug.cgi?id=132621>
222
223         Reviewed by Brent Fulgham.
224
225         Tests: fast/events/beforeload-assertion.html
226                fast/events/beforeload-iframe-crash.html
227                fast/events/beforeload-input-time-crash.html
228
229         * WebCore.exp.in:
230         * dom/Document.cpp:
231         (WebCore::Document::updateLayoutIgnorePendingStylesheets):
232         * dom/Document.h:
233         * html/HTMLAppletElement.cpp:
234         (WebCore::HTMLAppletElement::renderWidgetForJSBindings):
235         * html/HTMLEmbedElement.cpp:
236         (WebCore::HTMLEmbedElement::renderWidgetForJSBindings):
237         * html/HTMLObjectElement.cpp:
238         (WebCore::HTMLObjectElement::renderWidgetForJSBindings):
239         * page/FrameView.cpp:
240         (WebCore::FrameView::FrameView):
241         (WebCore::FrameView::reset):
242         (WebCore::FrameView::updateEmbeddedObjectsTimerFired):
243         (WebCore::FrameView::flushAnyPendingPostLayoutTasks):
244         (WebCore::FrameView::performPostLayoutTasks):
245         * page/FrameView.h:
246         * testing/Internals.cpp:
247         (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks):
248         * testing/Internals.h:
249         * testing/Internals.idl:
250
251 2014-05-29  Myles C. Maxfield  <mmaxfield@apple.com>
252
253         Support -apple-system-font on OS X
254         https://bugs.webkit.org/show_bug.cgi?id=133382
255
256         Reviewed by Simon Fraser.
257
258         Guard on both family names: "-apple-system-font" and "-webkit-system-font"
259
260         Test: platform/mac/fast/text/systemFont.html
261
262         * platform/mac/WebFontCache.mm:
263         (+[WebFontCache internalFontWithFamily:traits:weight:size:]):
264
265 2014-05-29  Alexey Proskuryakov  <ap@apple.com>
266
267         Loading <object> from WebArchive crashes
268         https://bugs.webkit.org/show_bug.cgi?id=133386
269         <rdar://problem/13345509>
270
271         Reviewed by Brady Eidson.
272
273         Test: webarchive/loading/object.html
274
275         This (a) fixes the crash, and (b) avoids the crash.
276
277         * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::continueAfterContentPolicy):
278         Some types of substitute data - such as WebArchive - don't contain HTTP result codes,
279         so let's not drop to <object> fallback content when status is 0.
280         And if the load somehow failed anyway, don't crash by trying to deliver substitute data
281         to a finished loader.
282
283 2014-05-29  Alex Christensen  <achristensen@webkit.org>
284
285         [iOS WebGL] Fix depth buffer clearing issue.
286         https://bugs.webkit.org/show_bug.cgi?id=133388
287
288         Reviewed by Dean Jackson.
289
290         No new tests, but this fixes webgl/1.0.1/conformance/canvas/buffer-preserve-test.html.
291
292         * platform/graphics/mac/WebGLLayer.mm:
293         (-[WebGLLayer display]):
294         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
295         (WebCore::GraphicsContext3D::prepareTexture):
296         Moved marking the layer as composited from the mac-only prepareTexture to
297         the end of [WebGLLayer display] which is called by mac and iOS.
298
299 2014-05-29  Jeremy Jones  <jeremyj@apple.com>
300
301         Perserve caption selection in fullscreen.
302         https://bugs.webkit.org/show_bug.cgi?id=133350
303
304         Reviewed by Eric Carlson.
305
306         Use the logic from the inline player to calculate the selected caption index.
307
308         * html/HTMLMediaElement.h:
309         (WebCore::HTMLMediaElement::mediaControlsHost):
310         Expose mediaControlsHost() for use by WebVideoFullscreenModelMediaElement.
311
312         * platform/ios/WebVideoFullscreenModelMediaElement.mm:
313         (WebVideoFullscreenModelMediaElement::updateLegibleOptions):
314         Use logic from buildCaptionsMenu from mediaControlsApple.js.
315
316 2014-05-29  Jeremy Jones  <jeremyj@apple.com>
317
318         Use correct version of requiresFullscreenForVideoPlayback().
319         https://bugs.webkit.org/show_bug.cgi?id=133331
320
321         Reviewed by Eric Carlson.
322
323         Test: media/video-fullscreeen-only-controls.html
324
325         Update the last place not yet using m_mediaSession->requiresFullscreenForVideoPlayback.
326
327         * html/HTMLMediaElement.cpp:
328         (WebCore::HTMLMediaElement::parseAttribute):
329         switch to media session version for requriesFullscreenForVideoPlayback.
330
331 2014-05-29  Carlos Garcia Campos  <cgarcia@igalia.com>
332
333         [GTK] Add support for HiDPI icons
334         https://bugs.webkit.org/show_bug.cgi?id=133377
335
336         Reviewed by Martin Robinson.
337
338         Use the GTK+ missing icon at 16 or 32 size depending on the device
339         scale factor.
340
341         * platform/graphics/gtk/ImageGtk.cpp:
342         (WebCore::loadMissingImageIconFromTheme):
343         (WebCore::Image::loadPlatformResource):
344
345 2014-05-29  Owen Taylor  <otaylor@redhat.com>
346
347         [GTK] Add HighDPI support for non-accelerated compositing contents
348         https://bugs.webkit.org/show_bug.cgi?id=131562
349
350         Reviewed by Anders Carlsson.
351
352         No new tests. This will be tested once we have the proper dependencies in the WebKit testing
353         JHBuild.
354
355         * platform/cairo/WidgetBackingStore.h:
356         (WebCore::WidgetBackingStore::WidgetBackingStore): Accept a device scale argument.
357         * platform/cairo/WidgetBackingStoreCairo.cpp: Use the device scale argument to make the surface the proper size and set the surface device scale.
358         * platform/cairo/WidgetBackingStoreCairo.h: Accept a device scale argument.
359         * platform/graphics/cairo/CairoUtilities.cpp: Add a new helper to set the device scale if Cairo built against is new enough.
360         * platform/graphics/cairo/CairoUtilities.h:
361         * platform/gtk/GtkVersioning.h: Add the HAVE_GTK_SCALE_FACTOR macro.
362         * platform/gtk/WidgetBackingStoreGtkX11.cpp: Use the device scale argument to make the surface the proper size and set the surface device scale.
363         * platform/gtk/WidgetBackingStoreGtkX11.h: Accept a device scale argument.
364
365 2014-05-28  Brent Fulgham  <bfulgham@apple.com>
366
367         Captions during HLS playback flash/are difficult to readily
368         https://bugs.webkit.org/show_bug.cgi?id=133365
369         <rdar://problem/16584132>
370
371         Reviewed by Eric Carlson.
372
373         Correct two problems:
374         1. Add new logic to handle cues that are identical to existing cues, except
375            that they cover a slightly later moment in playback. For example, a cue
376            encoding device might emit a cue at 24 fps, with many of the cues containing
377            the same content but covering only 1/24th of a second.
378            
379            Rather than hiding and displaying our cues at the cue encoding rate, we should
380            simply continue to display the same cue as long as the content is unchanged.
381         2. The cue "isEqual" logic for TextTrackCueGeneric improperly short-circuited the
382            VTTCue isEqual logic. This was done to avoid a false failure due to the cue
383            type being 'generic' rather than 'vtt', but incorrectly treated cues with
384            non-matching text as equal.
385
386         * html/track/DataCue.cpp:
387         (WebCore::DataCue::cueContentsMatch): Move cue comparison code to new method that
388         doesn't check that the 'type' of the cue is identical.
389         (WebCore::DataCue::isEqual): Modified to use new 'cueContentsMatch' method.
390         (WebCore::DataCue::isStartOfCue): Confirms cues match except for start and end times.
391         * html/track/DataCue.h:
392         * html/track/TextTrack.cpp:
393         (WebCore::TextTrack::hasCue): Modify to check if a new cue is simply a continuation
394         of an existing cue.
395         * html/track/TextTrackCue.cpp:
396         (WebCore::TextTrackCue::cueContentsMatch): New method containing the equality code
397         that used to live in 'isEqual'.
398         (WebCore::TextTrackCue::isEqual): Modified to use new 'cueContentsMatch' method.
399         (WebCore::TextTrackCue::isStartOfCue): Confirms cues match except for start and
400         end times.
401         * html/track/TextTrackCue.h:
402         * html/track/TextTrackCueGeneric.cpp:
403         (WebCore::TextTrackCueGeneric::cueContentsMatch): New method containing the equality
404         code that used to live in 'isEqual'.
405         (WebCore::TextTrackCueGeneric::isEqual): Modified to use new 'cueContentsMatch' method.
406         (WebCore::TextTrackCueGeneric::isStartOfCue): Confirms cues match except for start and
407         end times.
408         * html/track/TextTrackCueGeneric.h:
409         * html/track/VTTCue.cpp:
410         (WebCore::VTTCue::cueContentsMatch): New method containing the equality code that
411         used to live in 'isEqual'.
412         (WebCore::VTTCue::isEqual): Modified to use new 'cueContentsMatch' method.
413         (WebCore::VTTCue::isStartOfCue): Confirms cues match except for start and end times.
414         * html/track/VTTCue.h:
415
416 2014-05-28  Oliver Hunt  <oliver@apple.com>
417
418         Whoops, update bindings tests results.
419
420 2014-05-28  Oliver Hunt  <oliver@apple.com>
421
422         Make DOM properties exposed as instance properties use the base object instead of |this|
423         https://bugs.webkit.org/show_bug.cgi?id=133353
424
425         Reviewed by Geoffrey Garen.
426
427         Make the bindings generator emit code that uses the base object for
428         a property, rather than the this object. This means that attributes
429         that we need to be treated as instance properties will match their old
430         instance-based behaviour.
431
432         * bindings/scripts/CodeGeneratorJS.pm:
433         (InterfaceRequiresAttributesOnInstanceForCompatibility):
434         (InterfaceRequiresAttributesOnInstance):
435         (GetCastingHelperForBaseObject):
436         (GenerateImplementation):
437         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
438         (WebCore::jsTestActiveDOMObjectExcitingAttr):
439         * bindings/scripts/test/JS/JSTestException.cpp:
440         (WebCore::jsTestExceptionName):
441         * bindings/scripts/test/JS/JSTestInterface.cpp:
442         (WebCore::jsTestInterfaceImplementsStr3):
443         (WebCore::jsTestInterfaceSupplementalStr3):
444         (WebCore::setJSTestInterfaceConstructorImplementsStaticAttr):
445         (WebCore::setJSTestInterfaceImplementsStr2):
446         (WebCore::setJSTestInterfaceImplementsStr3):
447         (WebCore::setJSTestInterfaceImplementsNode):
448         (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
449         (WebCore::setJSTestInterfaceSupplementalStr2):
450         (WebCore::setJSTestInterfaceSupplementalStr3):
451         (WebCore::setJSTestInterfaceSupplementalNode):
452         * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
453         (WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
454         (WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
455         (WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
456         (WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):
457         (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
458         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
459         (WebCore::jsTestTypedefsConstructorTestSubObj):
460         (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
461         (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
462         (WebCore::setJSTestTypedefsAttrWithGetterException):
463         (WebCore::setJSTestTypedefsAttrWithSetterException):
464         (WebCore::setJSTestTypedefsStringAttrWithGetterException):
465         (WebCore::setJSTestTypedefsStringAttrWithSetterException):
466
467 2014-05-28  Simon Fraser  <simon.fraser@apple.com>
468
469         [iOS WK2] Improve behavior of position:fixed inside accelerated overflow-scroll
470         https://bugs.webkit.org/show_bug.cgi?id=133352
471
472         Reviewed by Tim Horton.
473
474         When adjusting layers inside accelerated overflow-scroll, pass a delta
475         down to descendant nodes. Fix behavior of sticky nodes inside fixed nodes
476         inside overflow scroll (sticky should only be affected if the parent node
477         is a scrolling node).
478
479         * page/scrolling/mac/ScrollingTreeFixedNode.mm:
480         (WebCore::ScrollingTreeFixedNode::updateLayersAfterAncestorChange): Just remove
481         some .get()
482         * page/scrolling/mac/ScrollingTreeStickyNode.mm:
483         (WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange): Remove .get()s.
484         We never care about the cumulative delta here, because sticky nodes only respond to
485         changes in their direct scrolling ancestors. Only adjust the layer if the parent
486         is a scrolling node.
487
488 2014-05-27  Chris Fleizach  <cfleizach@apple.com>
489
490         AX: WebKit does not recognize ARIA 1.1 tables
491         https://bugs.webkit.org/show_bug.cgi?id=133163
492
493         Reviewed by Darin Adler.
494
495         The AXObjectCache code that determines which object to create based on the role needs to be token fallback aware.
496
497         Test: accessibility/table-fallback-roles-expose-element-attributes.html
498
499         * accessibility/AXObjectCache.cpp:
500         (WebCore::nodeHasRole):
501
502 2014-05-28  Radu Stavila  <stavila@adobe.com>
503
504         REGRESSION (r168046): Invalid layout in multicol
505         https://bugs.webkit.org/show_bug.cgi?id=133322
506
507         Reviewed by Antti Koivisto.
508
509         In some situations, deleting the line boxes of a multicol element causes the line to region
510         link to become invalid.
511
512         Test: fast/multicol/newmulticol/multicol-inside-multicol.html
513
514         * rendering/RenderFlowThread.cpp:
515         (WebCore::RenderFlowThread::clearLinesToRegionMap):
516         (WebCore::RenderFlowThread::deleteLines):
517         (WebCore::RenderFlowThread::willBeDestroyed):
518         * rendering/RenderFlowThread.h:
519
520 2014-05-28  Ryuan Choi  <ryuan.choi@samsung.com>
521
522         Remove DocumentThreadableLoaderClient.h
523         https://bugs.webkit.org/show_bug.cgi?id=133341
524
525         Reviewed by Gyuyoung Kim.
526
527         DocumentThreadableLoaderClient is not used anymore.
528
529         * WebCore.order:
530         * loader/DocumentThreadableLoader.cpp:
531         (WebCore::DocumentThreadableLoader::redirectReceived):
532         * loader/DocumentThreadableLoaderClient.h: Removed.
533         * loader/ThreadableLoaderClient.h:
534         (WebCore::ThreadableLoaderClient::isDocumentThreadableLoaderClient): Deleted.
535
536 2014-05-28  Carlos Garcia Campos  <cgarcia@igalia.com>
537
538         Unreviewed. Update GObject DOM bindings symbols file after r169017.
539
540         * bindings/gobject/webkitdom.symbols: Add webkit_dom_navigator_get_hardware_concurrency.
541
542 2014-05-28  Carlos Garcia Campos  <cgarcia@igalia.com>
543
544         REGRESSION(r168868): [GTK] Element.offset* client* scroll* API changed
545         https://bugs.webkit.org/show_bug.cgi?id=133313
546
547         Reviewed by Philippe Normand.
548
549         Keep old API that uses long also for GObject bindings.
550
551         * dom/Element.idl:
552
553 2014-05-27  Commit Queue  <commit-queue@webkit.org>
554
555         Unreviewed, rolling out r169400.
556         https://bugs.webkit.org/show_bug.cgi?id=133338
557
558         Broke the iOS build in
559         LocalizedDateCache::calculateMaximumWidth() (Requested by smfr
560         on #webkit).
561
562         Reverted changeset:
563
564         "SVG TextRuns do not always get RenderingContexts"
565         https://bugs.webkit.org/show_bug.cgi?id=133198
566         http://trac.webkit.org/changeset/169400
567
568 2014-05-27  Timothy Horton  <timothy_horton@apple.com>
569
570         REGRESSION (Margin tiles): Background gradient on dom.spec.whatwg.org is very slow to render
571         https://bugs.webkit.org/show_bug.cgi?id=133335
572         <rdar://problem/17011392>
573
574         Reviewed by Simon Fraser.
575
576         * platform/graphics/Image.cpp:
577         (WebCore::Image::drawTiled):
578         Make cross-platform and use some iOS code which avoids patterned drawing when the pattern buffer
579         would be very large. Instead, it calls draw() repeatedly over the pattern space, avoiding the allocation
580         of a huge (in the case of bug 133335, nearly 2GB) buffer.
581
582 2014-05-27  Simon Fraser  <simon.fraser@apple.com>
583
584         [iOS WK2] Fix behavior of position:sticky inside accelerated overflow-scroll
585         https://bugs.webkit.org/show_bug.cgi?id=133334
586         <rdar://problem/16462535>
587
588         Reviewed by Tim Horton.
589
590         When the scroll position changes in an accelerated overflow-scroll element, we have
591         to update child nodes in the scrolling tree for position:sticky. That requires a
592         more generic ability to update the scrolling tree after some arbitrary zoom or
593         scroll. To do this, we need to know the current fixed position rect, rather than
594         having it passed in.
595         
596         So make the fixed position rect available from ScrollingTree, and make it possible
597         to get the current scrollPosition() from any ScrollingTreeScrollingNode.
598         
599         Also, implement updateLayersAfterDelegatedScroll() in ScrollingTreeOverflowScrollingNodeIOS,
600         and have it update descendant layers.
601         
602         Finally, fix ScrollingTreeOverflowScrollingNode to use the correct rectangle for its
603         constraints math, using the scroll position of the parent node if appropriate.
604
605         * page/scrolling/ScrollingTree.h:
606         * page/scrolling/ScrollingTreeScrollingNode.h:
607         * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
608         (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):
609         * page/scrolling/ios/ScrollingTreeIOS.cpp:
610         (WebCore::ScrollingTreeIOS::fixedPositionRect):
611         * page/scrolling/ios/ScrollingTreeIOS.h:
612         * page/scrolling/mac/ScrollingTreeStickyNode.mm:
613         (WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange):
614
615 2014-05-27  Simon Fraser  <simon.fraser@apple.com>
616
617         Do some renaming in the scrolling tree
618         https://bugs.webkit.org/show_bug.cgi?id=133333
619
620         Reviewed by Tim Horton.
621
622         Rename ScrollingTreeNode::parentScrollPositionDidChange() to updateLayersAfterAncestorChange()
623         since this goes deep and to indicate that it's about layer updating.
624         
625         Also rename the "viewportRect" parameter to "fixedPositionRect", since on iOS
626         this is the custom fixed-position rect that changes on zooming.
627
628         * page/scrolling/ScrollingTree.cpp:
629         (WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling):
630         * page/scrolling/ScrollingTree.h:
631         * page/scrolling/ScrollingTreeFrameScrollingNode.h:
632         * page/scrolling/ScrollingTreeNode.h:
633         * page/scrolling/ScrollingTreeScrollingNode.h:
634         * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
635         * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
636         (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterViewportChange):
637         (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):
638         * page/scrolling/mac/ScrollingTreeFixedNode.h:
639         * page/scrolling/mac/ScrollingTreeFixedNode.mm:
640         (WebCore::ScrollingTreeFixedNode::updateLayersAfterAncestorChange):
641         (WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange): Deleted.
642         * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
643         * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
644         (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):
645         * page/scrolling/mac/ScrollingTreeStickyNode.h:
646         * page/scrolling/mac/ScrollingTreeStickyNode.mm:
647         (WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange):
648         (WebCore::ScrollingTreeStickyNode::parentScrollPositionDidChange): Deleted.
649
650 2014-05-27  Simon Fraser  <simon.fraser@apple.com>
651
652         Instantiate a ScrollingTreeMac on Mac
653         https://bugs.webkit.org/show_bug.cgi?id=133332
654
655         Reviewed by Tim Horton.
656
657         Mac previously instantiated a ThreadedScrollingTree, but this has no platform
658         knowledge. To support future expansion, create a ScrollingTreeMac subclass and
659         instantiate that on Mac.
660         
661         Also protect ScrollingCoordinatorMac in PLATFORM(MAC) #ifdefs and remove it from the
662         EXCLUDED_SOURCE_FILE_NAMES list in the xcconfig file, following general trends.
663
664         * Configurations/WebCore.xcconfig:
665         * WebCore.xcodeproj/project.pbxproj:
666         * page/scrolling/ThreadedScrollingTree.cpp:
667         (WebCore::ThreadedScrollingTree::create): Deleted.
668         * page/scrolling/ThreadedScrollingTree.h:
669         * page/scrolling/mac/ScrollingCoordinatorMac.h:
670         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
671         (WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
672         * page/scrolling/mac/ScrollingTreeMac.cpp: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h.
673         (ScrollingTreeMac::create):
674         (ScrollingTreeMac::ScrollingTreeMac):
675         * page/scrolling/mac/ScrollingTreeMac.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h.
676
677 2014-05-27  Simon Fraser  <simon.fraser@apple.com>
678
679         Prepare for position:sticky support inside accelerated overflow-scroll with WK2
680         https://bugs.webkit.org/show_bug.cgi?id=133329
681
682         Reviewed by Tim Horton.
683
684         RenderLayerCompositor::computeStickyViewportConstraints() was always using
685         the viewport rect as the constraining rect for sticky position. This is not
686         correct when inside overflow:scroll.
687         
688         Refactor code in RenderBoxModelObject to make getting the rect easy, and use
689         it to compute the constraints.
690
691         * rendering/RenderBoxModelObject.cpp:
692         (WebCore::RenderBoxModelObject::constrainingRectForStickyPosition):
693         (WebCore::RenderBoxModelObject::stickyPositionOffset):
694         * rendering/RenderBoxModelObject.h:
695         * rendering/RenderLayerCompositor.cpp:
696         (WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
697
698 2014-05-27  Bem Jones-Bey  <bjonesbe@adobe.com>
699
700         vw/vh units used as font/line-height values don't scale with the viewport
701         https://bugs.webkit.org/show_bug.cgi?id=87846
702
703         Reviewed by Darin Adler.
704
705         This patch moves the resolution of viewport units to style recalc
706         time. Currently viewport units are left unresolved during style
707         recalcs, which leads to many problems with viewport units. Moving the
708         resolution will fix these problems, as well as reduce the plumbing
709         that goes on.
710
711         This patch touches a lot of files since the valueForLength functions
712         no longer need a RenderView. The interesting changes are in:
713
714         - CSSToLengthConversionData -> CSSPrimitiveValue: for moving
715             resolution to style recalc time.
716         - Length / LengthFunctions: no longer needs to know about viewport
717             units.
718         - FrameView -> Document -> StyleResolver: for scheduling style recalcs
719             upon resize
720
721         Note that getComputedStyle will now return pixel values when viewport
722         units are used. This behavior matches Firefox and the css3-cascade
723         spec.
724
725         This is based on a Blink patch by timloh@chromium.org.
726
727         Tests: css3/viewport-percentage-lengths/viewport-percentage-lengths-anonymous-block.html
728                css3/viewport-percentage-lengths/viewport-percentage-lengths-calc.html
729                css3/viewport-percentage-lengths/viewport-percentage-lengths-percent-size-child.html
730                css3/viewport-percentage-lengths/viewport-percentage-lengths-relative-font-size.html
731                css3/viewport-percentage-lengths/viewport-percentage-lengths-resize.html
732
733         * WebCore.exp.in: Remove RenderView argument to floatValueForLength.
734         * accessibility/atk/WebKitAccessibleInterfaceText.cpp: 
735         (getAttributeSetForAccessibilityObject): Remove RenderView argument.
736         * css/BasicShapeFunctions.cpp:
737         (WebCore::convertToLength): Ditto.
738         (WebCore::floatValueForCenterCoordinate): Ditto.
739         * css/BasicShapeFunctions.h: Ditto.
740         * css/CSSCalculationValue.cpp:
741         (WebCore::unitCategory): Remove special handling for viewport units,
742             as they get resolved to pixels.
743         (WebCore::createCSS): Ditto.
744         * css/CSSComputedStyleDeclaration.cpp:
745         (WebCore::positionOffsetValue): Remove RendewView argument.
746         (WebCore::getBorderRadiusCornerValues): Remove handling of viewport
747             units, as they are already resolve to pixels here.
748         (WebCore::getBorderRadiusCornerValue): Remove RenderView argument.
749         (WebCore::getBorderRadiusShorthandValue): Ditto.
750         (WebCore::specifiedValueForGridTrackBreadth): Remove handling of
751             viewport units, as they are already resolved to pixels here.
752         (WebCore::specifiedValueForGridTrackSize): Remove RenderView argument.
753         (WebCore::valueForGridTrackList): Ditto.
754         (WebCore::lineHeightFromStyle): Ditto.
755         (WebCore::ComputedStyleExtractor::propertyValue): Ditto.
756         * css/CSSGradientValue.cpp:
757         (WebCore::CSSLinearGradientValue::createGradient): Pass RenderView to
758             CSSToLengthConversionData constructor.
759         (WebCore::CSSRadialGradientValue::createGradient): Ditto.
760         * css/CSSPrimitiveValue.cpp:
761         (WebCore::CSSPrimitiveValue::unitCategory): Remove handling of
762             viewport units, as they get resolved to pixels.
763         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Ditto.
764         (WebCore::CSSPrimitiveValue::init): Ditto.
765         (WebCore::CSSPrimitiveValue::computeLengthDouble): Resolve viewport
766             units to pixels.
767         (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory): Remove
768         handling of viewport units, since they get resolved to pixels.
769         (WebCore::CSSPrimitiveValue::viewportPercentageLength): Deleted.
770         * css/CSSPrimitiveValue.h:
771         (WebCore::CSSPrimitiveValue::isLength): Remove special handling of
772             viewport units, since they get resolved to pixels.
773         * css/CSSPrimitiveValueMappings.h:
774         (WebCore::CSSPrimitiveValue::convertToLength): Ditto.
775         * css/CSSToLengthConversionData.cpp:
776         (WebCore::CSSToLengthConversionData::viewportWidthFactor): Caclulate
777             conversion factor for viewport units to pixels. Note this does not
778             set hasViewportUnits on the RenderStyle if computing the font
779             size, because in the font size case, the RenderStyle is the
780             parent's style, not the current renderer's style.
781         (WebCore::CSSToLengthConversionData::viewportHeightFactor): Ditto.
782         (WebCore::CSSToLengthConversionData::viewportMinFactor): Ditto.
783         (WebCore::CSSToLengthConversionData::viewportMaxFactor): Ditto.
784         * css/CSSToLengthConversionData.h:
785         (WebCore::CSSToLengthConversionData::CSSToLengthConversionData): Add
786             RenderView parameter, and make RenderStyle non-const so that
787             hasViewportUnits can be set on the Style..
788         (WebCore::CSSToLengthConversionData::style): style is now non-const.
789         (WebCore::CSSToLengthConversionData::copyWithAdjustedZoom): Handle
790             RenderView argument.
791         * css/CSSToStyleMap.cpp:
792         (WebCore::CSSToStyleMap::mapFillXPosition): Remove handling of
793             viewport units, as they are already resolved to pixels here.
794         (WebCore::CSSToStyleMap::mapFillYPosition): Ditto.
795         * css/DeprecatedStyleBuilder.cpp:
796         (WebCore::ApplyPropertyLength::applyValue): Ditto.
797         (WebCore::ApplyPropertyBorderRadius::applyValue): Ditto.
798         (WebCore::ApplyPropertyComputeLength::applyValue): Ditto.
799         (WebCore::ApplyPropertyFontSize::applyValue): Ditto.
800         (WebCore::ApplyPropertyLineHeight::applyValue): Ditto.
801         (WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyValue): Ditto.
802         (WebCore::ApplyPropertyWordSpacing::applyValue): Ditto.
803         (WebCore::ApplyPropertyVerticalAlign::applyValue): Ditto.
804         (WebCore::ApplyPropertyTextIndent::applyValue): Ditto.
805         * css/LengthFunctions.cpp:
806         (WebCore::minimumIntValueForLength): Remove RenderView argument.
807         (WebCore::intValueForLength): Remove RenderView argument and
808             roundPecentages.
809         (WebCore::minimumValueForLength): Remove RenderView argument, and
810             special handling of viewport units.
811         (WebCore::valueForLength): Ditto.
812         (WebCore::floatValueForLength): Ditto.
813         (WebCore::floatSizeForLengthSize): Remove RenderView argument.
814         * css/LengthFunctions.h: Ditto.
815         * css/MediaQueryEvaluator.cpp:
816         (WebCore::MediaQueryEvaluator::eval): Add RenderView argument for
817             CSSToLengthConversionData constuctor.
818         * css/StyleResolver.cpp:
819         (WebCore::StyleResolver::State::clear): Change to 0 arg constructor
820             for CSSToLengthConversionData.
821         (WebCore::StyleResolver::State::updateConversionData): In order to get
822             the RenderView, we need to have a valid Element set on the state.
823             Since this means that we need to set the conversion data in more
824             places, move the contruction of conversion data into this helper
825             method.
826         (WebCore::StyleResolver::State::initElement): Make sure conversion
827             data is up to date.
828         (WebCore::StyleResolver::State::initForStyleResolve): Ditto.
829         (WebCore::StyleResolver::State::setStyle): When the style is set, we
830             need to make sure to update the conversion data.
831         (WebCore::StyleResolver::styleForElement): If the style has viewport
832             units, flage the document so that we can make sure to recalc the
833             viewport unit values when the viewport is resized.
834         (WebCore::StyleResolver::pseudoStyleForElement): Ditto.
835         (WebCore::StyleResolver::updateFont): Make sure the font having
836             viewport units updates the style.
837         (WebCore::StyleResolver::convertToIntLength): Remove handling of
838         viewport units, as they are resolved to pixels.
839         (WebCore::StyleResolver::convertToFloatLength): Ditto.
840         (WebCore::StyleResolver::clearCachedPropertiesAffectedByViewportUnits):
841             Invalidate the matched properties cache for styles with viewport
842             units when the viewport is resized.
843         (WebCore::createGridTrackBreadth): Remove handling of viewport units,
844             as they are resolved to pixels.
845         (WebCore::StyleResolver::applyProperty): Ditto.
846         (WebCore::StyleResolver::hasMediaQueriesAffectedByViewportChange):
847             Rename to be less confusing, since it has nothing to do with
848             viewport units.
849         (WebCore::StyleResolver::createFilterOperations): Remove handling of
850             viewport units, as they are resolved to pixels.
851         (WebCore::StyleResolver::affectedByViewportChange): Deleted.
852         (WebCore::StyleResolver::viewportPercentageValue): Deleted.
853         * css/StyleResolver.h:
854         (WebCore::StyleResolver::State::State): C++11 cleanup: 0 -> nullptr.
855         (WebCore::StyleResolver::State::setFontSizeHasViewportUnits): Set if
856             the font size is specified in viewport units.
857         (WebCore::StyleResolver::State::fontSizeHasViewportUnits): Ditto.
858         (WebCore::StyleResolver::State::setStyle): Deleted.
859         * css/TransformFunctions.cpp:
860         (WebCore::convertToFloatLength): Remove handling of viewport units,
861             since they are resolved to pixels.
862         * dom/Document.cpp:
863         (WebCore::Document::Document): Add flag to determine if some style in
864             the document has viewport units.
865         (WebCore::Document::pageSizeAndMarginsInPixels): Remove RenderView
866             argument.
867         (WebCore::Document::updateViewportUnitsOnResize): Mark elements with
868             viewport units for style recalc when the viewport size has
869             changed.
870         * dom/Document.h:
871         (WebCore::Document::setHasStyleWithViewportUnits): Flag to determine
872             if some style in the document has viewport units.
873         (WebCore::Document::hasStyleWithViewportUnits): Ditto.
874         * html/HTMLAreaElement.cpp:
875         (WebCore::HTMLAreaElement::getRegion): Remove RenderView argument.
876         * page/FrameView.cpp:
877         (WebCore::FrameView::layout): When the viewport is resized, call
878             updateViewportUnitsOnResize on the document.
879         * platform/Length.h:
880         (WebCore::Length::isSpecified): Remove handling of viewport units,
881             since they are now resolved to pixels.
882         (WebCore::Length::viewportPercentageLength): Deleted.
883         (WebCore::Length::isViewportPercentage): Deleted.
884         * rendering/ClipPathOperation.h:
885         (WebCore::ShapeClipPathOperation::pathForReferenceRect): Remove
886             RenderView argument.
887         (WebCore::BoxClipPathOperation::pathForReferenceRect): Ditto.
888         * rendering/RenderBlock.cpp:
889         (WebCore::RenderBlock::updateBlockChildDirtyBitsBeforeLayout): Remove
890             handling of viewport units, since they get updated by
891             updateViewportUnitsOnResize when the viewport is resized.
892         (WebCore::RenderBlock::nodeAtPoint): Remove RenderView argument.
893         (WebCore::RenderBlock::lineHeight): Ditto.
894         * rendering/RenderBox.cpp:
895         (WebCore::RenderBox::paintBoxDecorations): Remove RenderView argument.
896         (WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing):
897             Remove handling of viewport units, as they are resolved to pixels.
898         (WebCore::RenderBox::computePercentageLogicalHeight): Ditto.
899         (WebCore::RenderBox::computeReplacedLogicalWidthUsing): Ditto.
900         (WebCore::RenderBox::computeReplacedLogicalHeightUsing): Ditto.
901         (WebCore::RenderBox::hasViewportPercentageLogicalHeight): Deleted.
902         * rendering/RenderBox.h:
903         * rendering/RenderBoxModelObject.cpp:
904         (WebCore::RenderBoxModelObject::getBackgroundRoundedRect): Remove
905             RenderView argument.
906         (WebCore::RenderBoxModelObject::calculateFillTileSize): Remove
907             handling of viewport units, as they are resolved to pixels.
908         (WebCore::computeBorderImageSide): Remove RenderView argument.
909         (WebCore::RenderBoxModelObject::paintNinePieceImage): Ditto.
910         (WebCore::RenderBoxModelObject::paintBorder): Ditto.
911         (WebCore::RenderBoxModelObject::paintBoxShadow): Ditto.
912         * rendering/RenderElement.cpp:
913         (WebCore::RenderElement::repaintAfterLayoutIfNeeded): Ditto.
914         * rendering/RenderElement.h:
915         (WebCore::RenderElement::valueForLength): Remove unused
916             roundPercentages argument.
917         (WebCore::RenderElement::minimumValueForLength): Remove unused
918             RoundPercentages and RenderView arguments.
919         * rendering/RenderGrid.cpp:
920         (WebCore::RenderGrid::layoutGridItems): Remove handling of viewport
921             units as they are resolved to pixels.
922         * rendering/RenderInline.cpp:
923         (WebCore::computeMargin): Ditto.
924         (WebCore::RenderInline::lineHeight): Remove RenderView argument.
925         * rendering/RenderLayer.cpp:
926         (WebCore::RenderLayer::setupClipPath): Ditto.
927         * rendering/RenderLineBreak.cpp:
928         (WebCore::RenderLineBreak::lineHeight): Ditto.
929         * rendering/RenderScrollbarPart.cpp:
930         (WebCore::calcScrollbarThicknessUsing): Ditto.
931         (WebCore::RenderScrollbarPart::computeScrollbarWidth): Ditto.
932         (WebCore::RenderScrollbarPart::computeScrollbarHeight): Ditto.
933         * rendering/RenderTable.cpp:
934         (WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
935             Remove handling of viewport units, since they are resolved to
936             pixels.
937         (WebCore::RenderTable::computePreferredLogicalWidths): Now that
938             viewport unit values are resolved to pixels at style recalc time,
939             no special checking is needed to handle them, so update the
940             comment to reflect that.
941         * rendering/RenderThemeIOS.mm:
942         (WebCore::applyCommonButtonPaddingToStyle): Add RenderView argument to
943             CSSToLengthConversionData constructor.
944         (WebCore::RenderThemeIOS::adjustButtonStyle): Ditto.
945         * rendering/RenderThemeMac.mm:
946         (WebCore::RenderThemeMac::paintMenuListButtonGradients): Remove
947             RenderView argument.
948         * rendering/RenderView.cpp:
949         (WebCore::RenderView::layout): Remove handling of viewport units,
950             since they are resolved to pixels.
951         * rendering/RootInlineBox.cpp:
952         (WebCore::RootInlineBox::ascentAndDescentForBox): Remove RenderView
953             argument.
954         * rendering/shapes/Shape.cpp:
955         (WebCore::Shape::createShape): Remove RenderView argument.
956         * rendering/shapes/Shape.h:
957         * rendering/shapes/ShapeOutsideInfo.cpp:
958         (WebCore::ShapeOutsideInfo::computedShape): Ditto.
959         * rendering/style/BasicShapes.cpp:
960         (WebCore::BasicShapeCircle::floatValueForRadiusInBox): Ditto.
961         (WebCore::BasicShapeCircle::path): Ditto.
962         (WebCore::BasicShapeEllipse::floatValueForRadiusInBox): Ditto.
963         (WebCore::BasicShapeEllipse::path): Ditto.
964         (WebCore::BasicShapePolygon::path): Ditto.
965         (WebCore::floatSizeForLengthSize): Ditto.
966         (WebCore::BasicShapeInset::path): Ditto.
967         * rendering/style/BasicShapes.h:
968         * rendering/style/RenderStyle.cpp:
969         (WebCore::calcRadiiFor): Ditto.
970         (WebCore::RenderStyle::getRoundedBorderFor): Ditto.
971         (WebCore::RenderStyle::computedLineHeight): Remove handling of
972             viewport units since they are resolved to pixels.
973         * rendering/style/RenderStyle.h:
974         (WebCore::RenderStyle::setHasViewportUnits): Set if this style has
975         a property set with viewport units.
976         (WebCore::RenderStyle::hasViewportUnits): Ditto.
977         * rendering/svg/RenderSVGRoot.cpp:
978         (WebCore::resolveLengthAttributeForSVG): Remove RenderView argument.
979         (WebCore::RenderSVGRoot::computeReplacedLogicalWidth): Ditto.
980         (WebCore::RenderSVGRoot::computeReplacedLogicalHeight): Ditto.
981         * rendering/svg/SVGRenderingContext.cpp:
982         (WebCore::SVGRenderingContext::prepareToRenderSVGContent): Ditto.
983
984 2014-05-27  Zoltan Horvath  <zoltan@webkit.org>
985
986         [CSS Shapes] serialization of the computed value should omit the default radii
987         https://bugs.webkit.org/show_bug.cgi?id=132747
988
989         Reviewed by Darin Adler.
990
991         We should omit closest-side value, whereever is possible. Specification:
992         http://www.w3.org/TR/2014/CR-css-shapes-1-20140320/#basic-shape-computed-values 
993         This change aligns the behavior to the specification.
994
995         Added new test cases for the shape-outside parsing tests.
996
997         * css/CSSBasicShapes.cpp:
998         (WebCore::buildCircleString):
999         (WebCore::CSSBasicShapeCircle::cssText):
1000         (WebCore::CSSBasicShapeEllipse::cssText):
1001
1002 2014-05-27  Commit Queue  <commit-queue@webkit.org>
1003
1004         Unreviewed, rolling out r169399.
1005         https://bugs.webkit.org/show_bug.cgi?id=133326
1006
1007         Causes assertion failures in tests.  See
1008         http://build.webkit.org/results/Apple%20Mavericks%20Debug%20WK1%20(Tests)/r169399%20(5622)/results.html
1009         (Requested by mlam on #webkit).
1010
1011         Reverted changeset:
1012
1013         "Caret's screen position does not update during an overflow
1014         scroll"
1015         https://bugs.webkit.org/show_bug.cgi?id=133256
1016         http://trac.webkit.org/changeset/169399
1017
1018 2014-05-27  Myles C. Maxfield  <mmaxfield@apple.com>
1019
1020         Lists styled with SVG fonts are not rendered as expected
1021         https://bugs.webkit.org/show_bug.cgi?id=133198
1022
1023         Reviewed by Simon Fraser.
1024
1025         There were a couple places in RenderListMarker and RenderMenuList that were
1026         implicitly creating TextRuns by passing a String to a function which
1027         expected a TextRun. Because TextRun has a constructor which takes a single
1028         String and isn't marked explicit, TextRuns were being created without
1029         any of the associated code that initializes the TextRun (such as creating
1030         a RenderingContext if necessary).
1031
1032         This patch marks the aforementioned constructor as "explicit" to discourage
1033         such behavior in the future.
1034
1035         Test: svg/custom/list-items-with-svg-font-family.html
1036
1037         * platform/graphics/TextRun.h:
1038         (WebCore::TextRun::TextRun): Mark constructors as explicit.
1039         * rendering/RenderListMarker.cpp:
1040         (WebCore::RenderListMarker::computePreferredLogicalWidths): Call
1041         RenderBlock::constructTextRun.
1042         (WebCore::RenderListMarker::getRelativeMarkerRect): Ditto.
1043         * rendering/RenderMenuList.cpp:
1044         (RenderMenuList::updateOptionsWidth): Ditto.
1045
1046 2014-05-23  Myles C. Maxfield  <mmaxfield@apple.com>
1047
1048         Caret's screen position does not update during an overflow scroll
1049         https://bugs.webkit.org/show_bug.cgi?id=133256
1050
1051         Reviewed by Simon Fraser.
1052
1053         During a scroll, we set a flag which caret position is gated on, but we never
1054         actually invalidate the caret's position. This patch does so.
1055
1056         Test: editing/input/caret-position-during-scroll.html
1057
1058         * editing/FrameSelection.h:
1059         * rendering/RenderLayer.cpp:
1060         (WebCore::RenderLayer::scrollTo):
1061
1062 2014-05-27  Timothy Horton  <timothy_horton@apple.com>
1063
1064         Turn on the LayerPool for iOS
1065         https://bugs.webkit.org/show_bug.cgi?id=133299
1066
1067         Reviewed by Antti Koivisto.
1068
1069         * Configurations/WebCore.xcconfig:
1070         * platform/cocoa/MemoryPressureHandlerCocoa.mm:
1071         (WebCore::MemoryPressureHandler::platformReleaseMemory):
1072         * platform/graphics/ca/mac/TileController.mm:
1073         (WebCore::TileController::createTileLayer):
1074         * platform/graphics/ca/mac/TileGrid.mm:
1075         (WebCore::TileGrid::removeTiles):
1076         Turn on the LayerPool for iOS.
1077         We've used this on Mac for a long time, and the WebKit1
1078         ("legacy") iOS TileCache also had a similar pool.
1079         This helps a good bit with flashiness while scrolling.
1080
1081 2014-05-27  David Hyatt  <hyatt@apple.com>
1082
1083         REGRESSION: Audio volume scrubber does not show volume level thumb
1084         <rdar://problem/16902004>
1085         https://bugs.webkit.org/show_bug.cgi?id=133310
1086
1087         Reviewed by Dean Jackson.
1088
1089         This was just a silly mistake on my part with the setting of the pagination
1090         layers. Layers inside transforms are supposed to clear out their pagination
1091         status based off their ancestor containing block layers, and not off the
1092         enclosing pagination layer.
1093         
1094         Added fast/multicol/pagination/nested-transforms.html
1095
1096         * rendering/RenderLayer.cpp:
1097         (WebCore::RenderLayer::updatePagination):
1098
1099 2014-05-27  Eric Carlson  <eric.carlson@apple.com>
1100
1101         [Mac] media controls should prevent 'click' events from reaching the page
1102         https://bugs.webkit.org/show_bug.cgi?id=133268
1103
1104         Reviewed by Jer Noble.
1105
1106         Test: media/media-controls-cancel-events.html
1107
1108         * Modules/mediacontrols/mediaControlsApple.js:
1109         (Controller.prototype.handleEvent): Allow event handler to cancel event default action.
1110         (Controller.prototype.handleRewindButtonClicked): Cancel event default.
1111         (Controller.prototype.handlePlayButtonClicked): Ditto.
1112         (Controller.prototype.handleMuteButtonClicked): Ditto.
1113         (Controller.prototype.handleMinButtonClicked): Ditto.
1114         (Controller.prototype.handleCaptionButtonClicked): Ditto.
1115         (Controller.prototype.handleFullscreenButtonClicked): Ditto.
1116         * Modules/mediacontrols/mediaControlsiOS.js:
1117         (ControllerIOS.prototype.handlePlayButtonTouchEnd): Ditto.
1118         (ControllerIOS.prototype.handlePlayButtonTouchCancel): Ditto.
1119         (ControllerIOS.prototype.handleFullscreenTouchEnd): Ditto.
1120         (ControllerIOS.prototype.handleFullscreenTouchCancel): Ditto.
1121         (ControllerIOS.prototype.handleStartPlaybackButtonTouchEnd): Ditto.
1122         (ControllerIOS.prototype.handleStartPlaybackButtonTouchCancel): Ditto.
1123         (ControllerIOS.prototype.handleWirelessPickerButtonClicked): Ditto.
1124
1125 2014-05-27  Jon Lee  <jonlee@apple.com>
1126
1127         Fix Mavericks bots from r169383.
1128         https://bugs.webkit.org/show_bug.cgi?id=133311
1129
1130         Reviewed by Eric Carlson.
1131
1132         * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h: Update #ifdef to check for ENABLE(MEDIA_SOURCE).
1133         * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm: Ditto.
1134
1135 2014-05-27  Radu Stavila  <stavila@adobe.com>
1136
1137         REGRESSION (r168046): Incorrect handling of multicol spanner
1138         https://bugs.webkit.org/show_bug.cgi?id=133249
1139
1140         Reviewed by David Hyatt.
1141
1142         When removing the child of an object, the removeChild method should return the next element
1143         following the one being deleted. This will ensure that proper iteration and destruction of
1144         an object's children is possible.
1145
1146         No new tests added. This is because the test that triggers this issue also triggers
1147         another assertion, in RenderMultiColumnSet::requiresBalancing(). However, that is a totally
1148         separate problem and will be handled in a separate bug: https://bugs.webkit.org/show_bug.cgi?id=133309
1149
1150         * rendering/RenderBlock.cpp:
1151         (WebCore::RenderBlock::removeChild):
1152         * rendering/RenderBlock.h:
1153         * rendering/RenderBlockFlow.cpp:
1154         (WebCore::RenderBlockFlow::removeChild):
1155         * rendering/RenderBlockFlow.h:
1156         * rendering/RenderButton.cpp:
1157         (WebCore::RenderButton::removeChild):
1158         * rendering/RenderButton.h:
1159         * rendering/RenderElement.cpp:
1160         (WebCore::RenderElement::removeChild):
1161         (WebCore::RenderElement::removeChildInternal):
1162         * rendering/RenderElement.h:
1163         * rendering/RenderMenuList.cpp:
1164         (RenderMenuList::removeChild):
1165         * rendering/RenderMenuList.h:
1166         * rendering/RenderMultiColumnFlowThread.cpp:
1167         (WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
1168         * rendering/RenderRuby.cpp:
1169         (WebCore::RenderRubyAsInline::removeChild):
1170         (WebCore::RenderRubyAsBlock::removeChild):
1171         * rendering/RenderRuby.h:
1172         * rendering/RenderRubyRun.cpp:
1173         (WebCore::RenderRubyRun::removeChild):
1174         * rendering/RenderRubyRun.h:
1175         * rendering/mathml/RenderMathMLScripts.cpp:
1176         (WebCore::RenderMathMLScripts::removeChildInternal):
1177         (WebCore::RenderMathMLScripts::removeChild):
1178         (WebCore::RenderMathMLScriptsWrapper::removeChildInternal):
1179         (WebCore::RenderMathMLScriptsWrapper::removeChild):
1180         * rendering/mathml/RenderMathMLScripts.h:
1181         * rendering/svg/RenderSVGContainer.cpp:
1182         (WebCore::RenderSVGContainer::removeChild):
1183         * rendering/svg/RenderSVGContainer.h:
1184         * rendering/svg/RenderSVGInline.cpp:
1185         (WebCore::RenderSVGInline::removeChild):
1186         * rendering/svg/RenderSVGInline.h:
1187         * rendering/svg/RenderSVGRoot.cpp:
1188         (WebCore::RenderSVGRoot::removeChild):
1189         * rendering/svg/RenderSVGRoot.h:
1190         * rendering/svg/RenderSVGText.cpp:
1191         (WebCore::RenderSVGText::removeChild):
1192         * rendering/svg/RenderSVGText.h:
1193
1194 2014-05-27  Jon Lee  <jonlee@apple.com>
1195
1196         Update ENABLE(MEDIA_SOURCE) on Mac
1197         https://bugs.webkit.org/show_bug.cgi?id=133141
1198
1199         Reviewed by Darin Adler.
1200
1201         * Configurations/FeatureDefines.xcconfig:
1202
1203 2014-05-27  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
1204
1205         Remove BLOB guards
1206         https://bugs.webkit.org/show_bug.cgi?id=132863
1207
1208         Reviewed by Csaba Osztrogonác.
1209
1210         * Configurations/FeatureDefines.xcconfig:
1211         * Modules/websockets/WebSocketChannel.cpp:
1212         (WebCore::WebSocketChannel::WebSocketChannel):
1213         (WebCore::WebSocketChannel::didFail):
1214         (WebCore::WebSocketChannel::processOutgoingFrameQueue):
1215         (WebCore::WebSocketChannel::abortOutgoingFrameQueue):
1216         * Modules/websockets/WebSocketChannel.h:
1217         * WebCore.exp.in:
1218         * WebCore.vcxproj/WebCore.vcxproj:
1219         * bindings/js/JSBlobCustom.cpp:
1220         (WebCore::JSBlobConstructor::constructJSBlob):
1221         * bindings/js/JSFileReaderCustom.cpp:
1222         * dom/DOMExceptions.in:
1223         * dom/EventTargetFactory.in:
1224         * dom/ScriptExecutionContext.cpp:
1225         (WebCore::ScriptExecutionContext::publicURLManager):
1226         * dom/ScriptExecutionContext.h:
1227         * fileapi/AsyncFileStream.cpp:
1228         * fileapi/AsyncFileStream.h:
1229         * fileapi/Blob.cpp:
1230         (WebCore::Blob::Blob):
1231         * fileapi/Blob.h:
1232         (WebCore::Blob::slice):
1233         * fileapi/Blob.idl:
1234         * fileapi/FileError.h:
1235         * fileapi/FileError.idl:
1236         * fileapi/FileException.cpp:
1237         * fileapi/FileException.h:
1238         * fileapi/FileException.idl:
1239         * fileapi/FileReader.cpp:
1240         * fileapi/FileReader.h:
1241         * fileapi/FileReader.idl:
1242         * fileapi/FileReaderLoader.cpp:
1243         * fileapi/FileReaderLoader.h:
1244         * fileapi/FileReaderLoaderClient.h:
1245         * fileapi/FileReaderSync.cpp:
1246         * fileapi/FileReaderSync.h:
1247         * fileapi/FileReaderSync.idl:
1248         * fileapi/FileThread.cpp:
1249         * fileapi/FileThread.h:
1250         * fileapi/ThreadableBlobRegistry.cpp:
1251         (WebCore::ThreadableBlobRegistry::registerFileBlobURL): Deleted.
1252         (WebCore::ThreadableBlobRegistry::registerBlobURL): Deleted.
1253         (WebCore::ThreadableBlobRegistry::registerBlobURLForSlice): Deleted.
1254         (WebCore::ThreadableBlobRegistry::unregisterBlobURL): Deleted.
1255         (WebCore::ThreadableBlobRegistry::blobSize): Deleted.
1256         (WebCore::ThreadableBlobRegistry::getCachedOrigin): Deleted.
1257         * fileapi/WebKitBlobBuilder.cpp:
1258         (WebCore::BlobBuilder::append):
1259         * fileapi/WebKitBlobBuilder.h:
1260         * html/DOMURL.cpp:
1261         * html/DOMURL.h:
1262         * html/DOMURL.idl:
1263         * html/PublicURLManager.cpp:
1264         * html/PublicURLManager.h:
1265         * loader/LoaderStrategy.cpp:
1266         (WebCore::LoaderStrategy::createBlobRegistry):
1267         * loader/LoaderStrategy.h:
1268         * page/DOMWindow.idl:
1269         * page/SecurityOrigin.cpp:
1270         (WebCore::SecurityOrigin::shouldUseInnerURL):
1271         (WebCore::getCachedOrigin):
1272         * platform/FileStream.cpp:
1273         * platform/FileStream.h:
1274         * platform/FileStreamClient.h:
1275         * platform/SchemeRegistry.cpp:
1276         (WebCore::canDisplayOnlyIfCanRequestSchemes):
1277         * platform/network/BlobRegistry.cpp:
1278         * platform/network/BlobRegistryImpl.cpp:
1279         * platform/network/BlobResourceHandle.cpp:
1280         * platform/network/BlobResourceHandle.h:
1281         * platform/network/FormData.cpp:
1282         (WebCore::FormData::deepCopy):
1283         (WebCore::FormData::appendFile):
1284         (WebCore::FormData::appendBlob):
1285         (WebCore::FormData::appendKeyValuePairItems):
1286         (WebCore::FormData::resolveBlobReferences):
1287         (WebCore::encodeElement):
1288         (WebCore::decodeElement):
1289         * platform/network/FormData.h:
1290         (WebCore::FormDataElement::FormDataElement):
1291         (WebCore::operator==):
1292         * platform/network/cf/FormDataStreamCFNet.cpp:
1293         (WebCore::closeCurrentStream):
1294         (WebCore::advanceCurrentStream):
1295         (WebCore::formCreate):
1296         (WebCore::formRead):
1297         (WebCore::setHTTPBody):
1298         * platform/network/curl/ResourceHandleManager.cpp:
1299         (WebCore::getFormElementsCount):
1300         * platform/network/soup/ResourceHandleSoup.cpp:
1301         (WebCore::addEncodedBlobToSoupMessageBody):
1302         (WebCore::addFormElementsToSoupMessage):
1303         * workers/WorkerGlobalScope.idl:
1304         * xml/XMLHttpRequest.cpp:
1305         (WebCore::XMLHttpRequest::send):
1306         (WebCore::XMLHttpRequest::createRequest):
1307
1308 2014-05-27  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
1309
1310         Allow building CMake based ports with WEB_REPLAY
1311         https://bugs.webkit.org/show_bug.cgi?id=133154
1312
1313         Reviewed by Csaba Osztrogonác.
1314
1315         * CMakeLists.txt:
1316
1317 2014-05-27  Adrian Perez de Castro  <aperez@igalia.com>
1318
1319         [GStreamer] Add missing <wtf/MathExtras.h> header
1320         https://bugs.webkit.org/show_bug.cgi?id=133236
1321
1322         Reviewed by Philippe Normand.
1323
1324         In some configurations, not including <wtf/MathExtras.h> will cause
1325         errors about undefined functions. In particular, this happens in
1326         Linux with glibc 2.19 and compiling with Clang. Having the header
1327         included is the correct thing to do anyway.
1328
1329         * platform/graphics/gstreamer/GStreamerUtilities.cpp:
1330         Include <wtf/MathExtras.h>
1331
1332 2014-05-27  Manuel Rego Casasnovas  <rego@igalia.com>
1333
1334         Setting up OrderIterator shouldn't require an extra Vector
1335         https://bugs.webkit.org/show_bug.cgi?id=119061
1336
1337         Reviewed by Darin Adler.
1338
1339         From Blink r153971 by <jchaffraix@chromium.org>
1340
1341         This patches reuse the OrderIterator's Vector. It provides a helper class OrderIteratorPopulator, used for
1342         manipulating the Vector directly. Which allows to consolidate the code into a single implementation across
1343         flexbox and grid.
1344
1345         No new tests, already covered by current tests.
1346
1347         * rendering/OrderIterator.cpp:
1348         (WebCore::OrderIteratorPopulator::~OrderIteratorPopulator): Reset OrderIterator and call
1349         removeDuplicatedOrderValues().
1350         (WebCore::OrderIteratorPopulator::removeDuplicatedOrderValues): Sorts the Vector and removes the duplicated
1351         order values.
1352         (WebCore::OrderIteratorPopulator::collectChild): Collect order value information from child.
1353         (WebCore::OrderIterator::setOrderValues): Deleted.
1354         * rendering/OrderIterator.h:
1355         (WebCore::OrderIteratorPopulator::OrderIteratorPopulator): Add helper class to manipulate OrderValues Vector.
1356         * rendering/RenderFlexibleBox.cpp:
1357         (WebCore::RenderFlexibleBox::layoutBlock): Remove unneeded code related to old OrderValues vector.
1358         (WebCore::RenderFlexibleBox::prepareOrderIteratorAndMargins): Populate OrderIterator using collectChild().
1359         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): Deleted.
1360         * rendering/RenderFlexibleBox.h: Rename computeMainAxisPreferredSizes() to prepareOrderIteratorAndMargins().
1361         * rendering/RenderGrid.cpp:
1362         (WebCore::RenderGrid::populateExplicitGridAndOrderIterator): Populate OrderIterator using collectChild().
1363
1364 2014-05-26  Tim Horton  <timothy_horton@apple.com>
1365
1366         [wk2] RemoteLayerBackingStore front buffers should be purgeable when unparented
1367         https://bugs.webkit.org/show_bug.cgi?id=133020
1368         <rdar://problem/16521736>
1369
1370         Reviewed by Simon Fraser.
1371
1372         * WebCore.exp.in:
1373         * platform/graphics/cg/IOSurfacePool.cpp:
1374         (WebCore::IOSurfacePool::willAddSurface):
1375         * platform/graphics/cocoa/IOSurface.h:
1376         * platform/graphics/cocoa/IOSurface.mm:
1377         (IOSurface::releaseGraphicsContext):
1378         Rename clearGraphicsContext to releaseGraphicsContext for clarity.
1379
1380 2014-05-26  Philip Rogers  <pdr@google.com>
1381
1382         Remove special case for transparent SVG root layers
1383         https://bugs.webkit.org/show_bug.cgi?id=116856
1384
1385         Reviewed by Dirk Schulze.
1386
1387         This patch removes a special case from RenderLayer for root SVG layers
1388         with opacity. Instead of checking whether a composited layer exists in
1389         SVGRenderingContext::prepareToRenderSVGContent we now exclude the root
1390         SVG renderobject from the opacity checks in prepareToRenderSVGContent.
1391
1392         This is a merge of https://src.chromium.org/viewvc/blink?view=rev&revision=174102
1393         by Philip Rogers <pdr@chromium.org>.
1394
1395         No new tests as this is covered by svg/custom/composited-svg-with-opacity.html.
1396
1397         * rendering/RenderLayer.cpp:
1398         (WebCore::RenderLayer::isTransparent): Deleted.
1399         * rendering/RenderLayer.h:
1400         * rendering/svg/SVGRenderingContext.cpp:
1401         (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
1402             The opacity case for root svg renderers is now handled by
1403             RenderLayer.
1404
1405 2014-05-26  Yusuke Suzuki  <utatane.tea@gmail.com>
1406
1407         CSS JIT: Fix build error raised when CSS_SELECTOR_JIT_DEBUGGING is 1
1408         https://bugs.webkit.org/show_bug.cgi?id=133266
1409
1410         Reviewed by Benjamin Poulain.
1411
1412         When CSS_SELECTOR_JIT_DEBUGGING is 1, build erros occur on x86_64.
1413
1414         * cssjit/SelectorCompiler.cpp:
1415         (WebCore::SelectorCompiler::SelectorCodeGenerator::generatePrologue):
1416         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateEpilogue):
1417
1418 2014-05-26  Benjamin Poulain  <benjamin@webkit.org>
1419
1420         Fix the quirks mode selector matching of the pseudo classes :hover and :active
1421         https://bugs.webkit.org/show_bug.cgi?id=133063
1422
1423         Reviewed by Antti Koivisto.
1424
1425         Our implementation of the quirks mode of :active and :hover was very wrong. The only
1426         thing it was doing is verify the pseudo class is not the first selector of a fragment
1427         (which was conveniently the only thing that was tested :)).
1428
1429         Since those pseudo class were only checking for the order of the filters, something like
1430             #target:hover
1431         would succeed because :hover is not the first simple selector, while
1432             :hover#target
1433         would fail.
1434
1435         That behavior is also a problem for the CSS JIT as it is an implementation detail of SelectorChecker
1436         and compiling something like that with our out-of-order matching would be nonsense.
1437
1438         This patch update the implementation to follow http://quirks.spec.whatwg.org/#the-:active-and-:hover-quirk
1439         Basically, the only cases that do not work in quirks mode are selectors composed only of "*, :hover and :active".
1440
1441         To implement this behavior, I needed to be able to inspect a complete selector fragment, including
1442         what is before and after :hover/:active.
1443         To do that, I replaced the boolean isSubSelector by a pointer to the first selector of the fragment.
1444         When we need to match :active/:hover in quirks mode, we just go over all the selectors in the fragment
1445         to find one of the qualifying match type.
1446
1447         Tests: fast/selectors/active-hover-quirks.html
1448                fast/selectors/active-quirks.html
1449                fast/selectors/hover-quirks.html
1450
1451         * css/SelectorChecker.cpp:
1452         (WebCore::SelectorChecker::matchRecursively):
1453         (WebCore::canMatchHoverOrActiveInQuirksMode):
1454         (WebCore::SelectorChecker::checkOne):
1455         * css/SelectorChecker.h:
1456         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
1457
1458 2014-05-26  Zalan Bujtas  <zalan@apple.com>
1459
1460         Split the call to adjustForLocalZoom out into a separate expression.
1461         https://bugs.webkit.org/show_bug.cgi?id=133286
1462
1463         Reviewed by Darin Adler.
1464
1465         This patch ensures that adjustForLocalZoom() always gets called before we look at
1466         zoomFactor's value. (and not rely on the undefined behavior of the order of function argument evaluation)
1467
1468         * dom/Element.cpp:
1469         (WebCore::Element::offsetLeft):
1470         (WebCore::Element::offsetTop):
1471
1472 2014-05-26  Darin Adler  <darin@apple.com>
1473
1474         Class name matching should use ASCII case-insensitive matching, not Unicode case folding
1475         https://bugs.webkit.org/show_bug.cgi?id=133292
1476
1477         Reviewed by Anders Carlsson.
1478
1479         Tests: fast/dom/getElementsByClassName/ASCII-case-insensitive.html
1480                fast/dom/getElementsByClassName/case-sensitive.html
1481
1482         * dom/SpaceSplitString.cpp:
1483         (WebCore::hasNonASCIIOrUpper): Deleted.
1484         (WebCore::tokenizeSpaceSplitString): Use a for loop instead of while.
1485         (WebCore::spaceSplitStringTable): Renamed from sharedDataMap; the new name is supposed
1486         to help us see the analogy with the atomic string table.
1487         (WebCore::SpaceSplitString::set): Removed unneeded special case for null and preflight
1488         since AtomicString::convertToASCIILowercase now handles both of those. Changed to call
1489         convertToASCIILowercase instead of foldCase, since we don't want to fold non-ASCII.
1490         (WebCore::SpaceSplitString::spaceSplitStringContainsValue): Ditto.
1491         (WebCore::SpaceSplitStringData::create): Marked this inline since it's only called in
1492         one place and that place is in this file. Also used auto a bit and used get instead of
1493         find since the value type is a simple pointer.
1494         (WebCore::SpaceSplitStringData::destroy): Removed unneeded check for null. We never
1495         create any SpaceSplitStringData with empty strings, and a null is a kind of empty string.
1496
1497         * dom/SpaceSplitString.h: Removed some unneeded includes and some unneeded uses of the
1498         inline keyword. Changed types from size_t to unsigned in a couple places; we had a mix
1499         of the types and there was no reason to use size_t there.
1500
1501 2014-05-26  Javier Fernandez  <jfernandez@igalia.com>
1502
1503         [CSS Grid Layout] Implementation of the "grid" shorthand.
1504         https://bugs.webkit.org/show_bug.cgi?id=132122
1505
1506         Reviewed by Darin Adler.
1507
1508         The grid property is a shorthand that sets all of the explicit
1509         grid properties (grid-template-rows, grid-template-columns, and
1510         grid-template-areas) as well as all the implicit grid properties
1511         (grid-auto-rows, grid-auto-columns, and grid-auto-flow) in a
1512         single declaration
1513
1514         Notice that either explicit or implicit grid can be specified,
1515         assigning the initial values to the omitted properties.
1516
1517         Test: fast/css-grid-layout/grid-shorthand-get-set.html
1518
1519         * css/CSSComputedStyleDeclaration.cpp:
1520         (WebCore::ComputedStyleExtractor::propertyValue):
1521         * css/CSSParser.cpp:
1522         (WebCore::CSSParser::parseValue):
1523         (WebCore::CSSParser::parseGridShorthand):
1524         * css/CSSParser.h:
1525         * css/CSSPropertyNames.in:
1526         * css/StylePropertyShorthand.cpp:
1527         (WebCore::webkitGridShorthand):
1528         * css/StylePropertyShorthand.h:
1529
1530 2014-05-26  Zalan Bujtas  <zalan@apple.com>
1531
1532         Subpixel layout: Legacy Element.offset* client* return values are invalid in certain cases.
1533         https://bugs.webkit.org/show_bug.cgi?id=133272
1534
1535         Reviewed by Simon Fraser.
1536
1537         Element.offset* client* functions applied various rounding strategies on the return values before r168868.
1538         (for example, offsetLeft/Top either floored through implicit integer arithmetics or rounded explicitly depending
1539         whether the zoom scale was 1. see http://trac.webkit.org/changeset/168868/trunk/Source/WebCore/dom/Element.cpp for details)
1540         This patch mimics the legacy behavior by either rounding or flooring the return value.
1541
1542         Not testable (legacy switch is not exposed)
1543
1544         * dom/Element.cpp:
1545         (WebCore::adjustForLocalZoom):
1546         (WebCore::convertToNonSubpixelValueIfNeeded):
1547         (WebCore::Element::offsetLeft):
1548         (WebCore::Element::offsetTop):
1549
1550 2014-05-26  Michał Pakuła vel Rutka  <m.pakula@samsung.com>
1551
1552         [EFL] Input fields and text areas are not rendered correctly after r167771
1553         https://bugs.webkit.org/show_bug.cgi?id=133181
1554
1555         Reviewed by Gyuyoung Kim.
1556
1557         r167771 changed arguments of RenderTheme two virtual method arguments which were not reflected
1558         in changes in derived classes, which caused parent method to be called. Arguments in derived class
1559         were updated, also 'override' specifiers were added to all virtual methods to prevent similar errors.
1560
1561         Already covered by fast/forms/textarea-placeholder-wrapping.html
1562
1563         * platform/efl/RenderThemeEfl.cpp:
1564         (WebCore::RenderThemeEfl::paintTextField):
1565         (WebCore::RenderThemeEfl::paintTextArea):
1566         * platform/efl/RenderThemeEfl.h:
1567         (WebCore::RenderThemeEfl::supportsHover):
1568         (WebCore::RenderThemeEfl::supportsControlTints):
1569
1570 2014-05-20  Sergio Villar Senin  <svillar@igalia.com>
1571
1572         [CSS Grid Layout] Children of grid containers must be turned into grid items
1573         https://bugs.webkit.org/show_bug.cgi?id=132991
1574
1575         Reviewed by Darin Adler.
1576
1577         From Blink r150472 by <jchaffraix@chromium.org>
1578
1579         According to specs each child of a grid container must become a
1580         grid item meaning that grid items are grid level boxes and thus,
1581         do not participate in the block formatting context but in the grid
1582         formatting one.
1583
1584         This change updates the grid items' 'display' property after style
1585         resolution so that we match the specification (see section 4. Grid
1586         Items). The spec basically instructs us to compute the value of
1587         'display' by applying the table in CSS2.1 Chapter 9.7
1588         http://www.w3.org/TR/CSS2/visuren.html#dis-pos-flo
1589
1590         Test: fast/css-grid-layout/grid-item-display.html
1591
1592         * css/StyleResolver.cpp:
1593         (WebCore::isDisplayGridBox):
1594         (WebCore::StyleResolver::adjustRenderStyle):
1595
1596 2014-05-26  Zan Dobersek  <zdobersek@igalia.com>
1597
1598         Remove Vector copies in ShorthandPropertyWrapper implementation and use
1599         https://bugs.webkit.org/show_bug.cgi?id=133265
1600
1601         Reviewed by Simon Fraser.
1602
1603         * page/animation/CSSPropertyAnimation.cpp:
1604         (WebCore::ShorthandPropertyWrapper::ShorthandPropertyWrapper): Move the passed-in Vector
1605         into the member variable instead of using Vector<>::swap().
1606         (WebCore::ShorthandPropertyWrapper::propertyWrappers): Return a const reference of the member
1607         variable instead of a const value.
1608         (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Move the Vector
1609         object into the ShorthandProperthyWrapper constructor.
1610         (WebCore::gatherEnclosingShorthandProperties): Deploy a range-based for-loop.
1611
1612 2014-05-26  Tanay C  <tanay.c@samsung.com>
1613
1614         [EFL] Fix build error in blob.cpp after r168435
1615         https://bugs.webkit.org/show_bug.cgi?id=132678
1616
1617         Reviewed by Alexey Proskuryakov.
1618
1619         * fileapi/Blob.cpp:
1620         (WebCore::Blob::size): Using isInBound to check range of local var
1621         actualsize to resolve build error
1622
1623 2014-05-25  Ryuan Choi  <ryuan.choi@samsung.com>
1624
1625         [EFL] Remove TileCairo and TiledBackingStoreBackendCairo
1626         https://bugs.webkit.org/show_bug.cgi?id=133274
1627
1628         Reviewed by Gyuyoung Kim.
1629
1630         Now, TiledBackingStore is only used for CoordinatedGraphics and the EFL port.
1631         CoordinatedGraphics does not use TileCairo and TiledBackingStoreBackendCairo.
1632
1633         This patch removed them and refactored related files.
1634
1635         * PlatformEfl.cmake:
1636         * PlatformGTK.cmake:
1637         * WebCore.vcxproj/WebCore.vcxproj:
1638         * WebCore.vcxproj/WebCore.vcxproj.filters:
1639         * platform/graphics/TiledBackingStore.cpp:
1640         (WebCore::TiledBackingStore::TiledBackingStore): Deleted.
1641         * platform/graphics/TiledBackingStore.h:
1642         * platform/graphics/TiledBackingStoreBackend.h:
1643         * platform/graphics/cairo/TileCairo.cpp: Removed.
1644         * platform/graphics/cairo/TiledBackingStoreBackendCairo.cpp: Removed.
1645
1646 2014-05-25  Jinwoo Song  <jinwoo7.song@samsung.com>
1647
1648         setData() of DataTransfer has a void return type
1649         https://bugs.webkit.org/show_bug.cgi?id=133108
1650
1651         Reviewed by Alexey Proskuryakov.
1652
1653         According to HTML5 spec, setData() of DataTranfer interface does not return value.
1654         http://www.w3.org/TR/html/editing.html#the-datatransfer-interface
1655
1656         Test: editing/pasteboard/set_data_typeof_return.html
1657
1658         * dom/DataTransfer.cpp:
1659         (WebCore::DataTransfer::setData):
1660         * dom/DataTransfer.h:
1661         * dom/DataTransfer.idl:
1662         * platform/Pasteboard.h:
1663         * platform/efl/PasteboardEfl.cpp:
1664         (WebCore::Pasteboard::writeString):
1665         * platform/gtk/PasteboardGtk.cpp:
1666         (WebCore::Pasteboard::writeString):
1667         * platform/ios/PasteboardIOS.mm:
1668         (WebCore::Pasteboard::writeString):
1669         * platform/mac/PasteboardMac.mm:
1670         (WebCore::Pasteboard::writeString):
1671         * platform/win/PasteboardWin.cpp:
1672         (WebCore::Pasteboard::writeString):
1673
1674 2014-05-25  Benjamin Poulain  <bpoulain@apple.com>
1675
1676         [iOS][WK2] Use ScrollView's scrollOffset as the unobscuredContentRect
1677         https://bugs.webkit.org/show_bug.cgi?id=133262
1678
1679         Reviewed by Simon Fraser.
1680
1681         Since VisibleContentRect was fixed, we were no longer sending scroll events when updating the scrollOffset
1682         when updating the visible content rects. The reason is that the scrollOffset was defined as the top left of the
1683         VisibleContentRect, and as such was already at the end position after updating the unobscured rect.
1684
1685         This patch split the unobscuredContentRect in unobscuredContentSize (updated live on zoom) and the position defined
1686         by the ScrollView's scrollOffset (updated when scrolling).
1687
1688         * WebCore.exp.in:
1689         * platform/ScrollView.h:
1690         * platform/ios/ScrollViewIOS.mm:
1691         (WebCore::ScrollView::unobscuredContentRect):
1692         (WebCore::ScrollView::setUnobscuredContentSize):
1693         (WebCore::ScrollView::setUnobscuredContentRect): Deleted.
1694
1695 2014-05-25  David Kilzer  <ddkilzer@apple.com>
1696
1697         Add type-checked casts for TransformOperations
1698         <http://webkit.org/b/133217>
1699
1700         Reviewed by Simon Fraser.
1701
1702         * platform/graphics/GraphicsLayer.cpp:
1703         (WebCore::GraphicsLayer::validateTransformOperations):
1704         * platform/graphics/ca/GraphicsLayerCA.cpp:
1705         (WebCore::getTransformFunctionValue):
1706         - Switch to type-checked casts.
1707
1708         * platform/graphics/transforms/IdentityTransformOperation.h:
1709         * platform/graphics/transforms/Matrix3DTransformOperation.h:
1710         * platform/graphics/transforms/MatrixTransformOperation.h:
1711         * platform/graphics/transforms/PerspectiveTransformOperation.h:
1712         * platform/graphics/transforms/RotateTransformOperation.h:
1713         * platform/graphics/transforms/ScaleTransformOperation.h:
1714         * platform/graphics/transforms/SkewTransformOperation.h:
1715         * platform/graphics/transforms/TranslateTransformOperation.h:
1716         - Add 'final' to class declaration.
1717         - Add 'override' to overridden methods.
1718         - Add type-checked cast via TRANSFORMOPERATION_TYPE_CASTS macro.
1719         - Move implementation of operator==(const TransformOperation&)
1720           from header to source file so it is able to use a type-checked
1721           cast, and switch back to using a reference instead of a
1722           pointer.
1723         - Add or update ASSERT in private constructor to check for
1724           correct OperationType in classes that represent multiple
1725           types.
1726
1727         * platform/graphics/transforms/Matrix3DTransformOperation.cpp:
1728         (WebCore::Matrix3DTransformOperation::operator==): Added.
1729
1730         * platform/graphics/transforms/MatrixTransformOperation.cpp:
1731         (WebCore::Matrix3DTransformOperation::operator==): Added.
1732         (WebCore::MatrixTransformOperation::blend):
1733         - Switch to type-checked casts and use a reference.
1734
1735         * platform/graphics/transforms/PerspectiveTransformOperation.cpp:
1736         (WebCore::Matrix3DTransformOperation::operator==): Added.
1737         (WebCore::PerspectiveTransformOperation::blend):
1738         * platform/graphics/transforms/RotateTransformOperation.cpp:
1739         (WebCore::Matrix3DTransformOperation::operator==): Added.
1740         (WebCore::RotateTransformOperation::blend):
1741         * platform/graphics/transforms/ScaleTransformOperation.cpp:
1742         (WebCore::Matrix3DTransformOperation::operator==): Added.
1743         (WebCore::ScaleTransformOperation::blend):
1744         * platform/graphics/transforms/SkewTransformOperation.cpp:
1745         (WebCore::Matrix3DTransformOperation::operator==): Added.
1746         (WebCore::SkewTransformOperation::blend):
1747         * platform/graphics/transforms/TranslateTransformOperation.cpp:
1748         (WebCore::Matrix3DTransformOperation::operator==): Added.
1749         (WebCore::TranslateTransformOperation::blend):
1750         - Switch to type-checked casts.
1751
1752         * platform/graphics/transforms/TransformOperation.h:
1753         (WebCore::TransformOperation::isRotateTransformOperationType):
1754         (WebCore::TransformOperation::isScaleTransformOperationType):
1755         (WebCore::TransformOperation::isSkewTransformOperationType):
1756         (WebCore::TransformOperation::isTranslateTransformOperationType):
1757         - Add type-checking methods used in constructors and type-checked
1758           casts.
1759         - Define TRANSFORMOPERATION_TYPE_CASTS macro used by subclasses.
1760
1761 2014-05-25  David Kilzer  <ddkilzer@apple.com>
1762
1763         Crash in WebCore::TextResourceDecoder::checkForCSSCharset
1764         <http://webkit.org/b/133257>
1765         <rdar://problem/17027109>
1766
1767         Reviewed by Alexey Proskuryakov.
1768
1769         Test: fast/encoding/css-charset-missing-semi-colon-and-newline.html
1770
1771         * loader/TextResourceDecoder.cpp:
1772         (WebCore::TextResourceDecoder::checkForCSSCharset): Add early
1773         return.
1774
1775 2014-05-24  Eric Carlson  <eric.carlson@apple.com>
1776
1777         [Mac] preload AVAssetTrack properties before asking for them
1778         https://bugs.webkit.org/show_bug.cgi?id=133240
1779
1780         Reviewed by Jer Noble.
1781
1782         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1783         (WebCore::assetTrackMetadataKeyNames): Add preferredTransform and naturalSize to the list
1784             of properties we preload.
1785
1786 2014-05-24  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
1787
1788         Remove one of the CSSProperty constructor
1789         https://bugs.webkit.org/show_bug.cgi?id=131094
1790
1791         Reviewed by Darin Adler.
1792
1793         Remove one of the CSSProperty constructor, because it is obsolete.
1794
1795         * css/CSSProperty.h:
1796         (WebCore::CSSProperty::CSSProperty): Deleted.
1797         * css/StyleProperties.h:
1798         (WebCore::StyleProperties::PropertyReference::toCSSProperty):
1799
1800 2014-05-23  Simon Fraser  <simon.fraser@apple.com>
1801
1802         Rename ScrollingTreeScrollingNode's m_scrollPosition to make it clear that it's the value committed from the state tree
1803         https://bugs.webkit.org/show_bug.cgi?id=133254
1804
1805         Reviewed by Tim Horton.
1806
1807         Make ScrollingTreeScrollingNode::scrollPosition() pure virtual, and rename
1808         the member variable and associated getter to make it clear that they relate
1809         to the last committed scroll position.
1810
1811         * page/scrolling/ScrollingTreeScrollingNode.cpp:
1812         (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
1813         * page/scrolling/ScrollingTreeScrollingNode.h:
1814         (WebCore::ScrollingTreeScrollingNode::lastCommittedScrollPosition):
1815         (WebCore::ScrollingTreeScrollingNode::scrollPosition): Deleted.
1816
1817 2014-05-23  Simon Fraser  <simon.fraser@apple.com>
1818
1819         Share some more ScrollingTreeScrollingNode code
1820         https://bugs.webkit.org/show_bug.cgi?id=133248
1821
1822         Reviewed by Sam Weinig.
1823
1824         Push scrollBy(), scrollByWithoutContentEdgeConstraints() and setScrollPosition()
1825         down to ScrollingTreeFrameScrollingNode.
1826         
1827         This requires that scrollPosition() return the right thing for each class, so make
1828         it virtual. Future patches will reduce the confusion between the committed scroll
1829         position and the one derived from layers.
1830
1831         * page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
1832         (WebCore::ScrollingTreeFrameScrollingNode::scrollBy):
1833         (WebCore::ScrollingTreeFrameScrollingNode::scrollByWithoutContentEdgeConstraints):
1834         (WebCore::ScrollingTreeFrameScrollingNode::setScrollPosition):
1835         * page/scrolling/ScrollingTreeFrameScrollingNode.h:
1836         * page/scrolling/ScrollingTreeScrollingNode.h:
1837         (WebCore::ScrollingTreeScrollingNode::scrollPosition):
1838         * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
1839         * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
1840         (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPosition): Deleted.
1841         (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollBy): Deleted.
1842         (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollByWithoutContentEdgeConstraints): Deleted.
1843         * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
1844         * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
1845         (WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
1846         (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollBy):
1847         (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
1848         (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollPosition):
1849         (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
1850         (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollBy): Deleted.
1851         (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollByWithoutContentEdgeConstraints): Deleted.
1852
1853 2014-05-24  Chris Fleizach  <cfleizach@apple.com>
1854
1855         AX: fix coordinate mapping for iOS accessibility
1856         https://bugs.webkit.org/show_bug.cgi?id=133188
1857
1858         Reviewed by Sam Weinig.
1859
1860         Make WebCore aware of the accessibility point/rect conversion methods.
1861
1862         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
1863         (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
1864         (-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]):
1865         * loader/EmptyClients.h:
1866         * page/Chrome.cpp:
1867         (WebCore::Chrome::accessibilityScreenToRootView):
1868         (WebCore::Chrome::rootViewToAccessibilityScreen):
1869         * page/Chrome.h:
1870         * page/ChromeClient.h:
1871         * platform/HostWindow.h:
1872
1873 2014-05-24  Zalan Bujtas  <zalan@apple.com>
1874
1875         Subpixel rendering: Non-compositing transforms with subpixel coordinates paint to wrong position.
1876         https://bugs.webkit.org/show_bug.cgi?id=133184
1877         <rdar://problem/16745606>
1878
1879         Reviewed by Simon Fraser.
1880
1881         Snapping relative negative coordinate values should produce the same position as if they were
1882         positive absolute coordinates.
1883         When a child box gets positioned off of its containers towards top/left, its relative coordinates
1884         become negative. Pixel snapping those negative values should produce the same
1885         final painting position as if the child box was fixed positioned with positive coordinates.
1886         Since halfway values always round away from zero, negative and positive halfway values
1887         produce opposite rounding direction.
1888         This patch ensures that negative halfway values round to the direction as if they were positive.  
1889
1890         Test: fast/layers/hidpi-floor-negative-coordinate-values-to-maintain-rounding-direction.html
1891
1892         * platform/LayoutUnit.h:
1893         (WebCore::roundToDevicePixel):
1894         * rendering/RenderLayer.cpp:
1895         (WebCore::RenderLayer::paintLayerByApplyingTransform):
1896
1897 2014-05-24  Frédéric Wang  <fred.wang@free.fr>
1898
1899         Use size variants and glyph assembly from the MATH data.
1900         https://bugs.webkit.org/show_bug.cgi?id=130322
1901
1902         Reviewed by Chris Fleizach.
1903
1904         This patch modifies the RenderMathMLOperator code to use the MATH table
1905         when one is provided in the current font on the <math> tag. More
1906         precisely, the MathVariants table is used to draw a size variant or
1907         a glyph assembly. The displaystyle attribute is not supported yet, so
1908         for now large operators are always assumed to be in display style. The
1909         MATH support does not work well with all platforms+fonts, so at the
1910         moment the default font-family on the <math> is not changed.
1911
1912         Tests: mathml/opentype/large-operators-LatinModern.html
1913                mathml/opentype/opentype-stretchy.html
1914                mathml/opentype/vertical-LatinModern.html
1915
1916         * css/mathml.css: We only specify the default font-family on the math root, so that people can easily style the mathematics.
1917         For now, old fonts without the MATH table are still used as the default.
1918         (math):
1919         (math, mfenced > *): Deleted.
1920         (mo, mfenced): Deleted.
1921         * platform/graphics/SimpleFontData.cpp: don't return the math data if the font is loading.
1922         (WebCore::SimpleFontData::mathData):
1923         * platform/graphics/opentype/OpenTypeMathData.cpp: update #ifdef so that disabling ENABLE_OPENTYPE_MATH won't lead to errors with unused parameters.
1924         (WebCore::OpenTypeMathData::OpenTypeMathData):
1925         (WebCore::OpenTypeMathData::getMathConstant):
1926         (WebCore::OpenTypeMathData::getItalicCorrection):
1927         (WebCore::OpenTypeMathData::getMathVariants):
1928         * rendering/mathml/RenderMathMLOperator.cpp:
1929         (WebCore::RenderMathMLOperator::boundsForGlyph):
1930         (WebCore::RenderMathMLOperator::heightForGlyph):
1931         (WebCore::RenderMathMLOperator::advanceForGlyph):
1932         (WebCore::RenderMathMLOperator::computePreferredLogicalWidths): We handle preferred width of size variants.
1933         (WebCore::RenderMathMLOperator::shouldAllowStretching): This function now only returns whether the operator will stretch and no longer has side effect.
1934         (WebCore::RenderMathMLOperator::getGlyphAssemblyFallBack): We add a function to convert from the MathVariant table data to the format supported by RenderMathMLOperator.
1935         (WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator): We add a function to get the glyph that will be used for large operators in display style.
1936         (WebCore::RenderMathMLOperator::findStretchyData): We make this function handle size variants.
1937         (WebCore::RenderMathMLOperator::updateStyle): We handle size variants.
1938         (WebCore::RenderMathMLOperator::paint): We handle size variants.
1939         * rendering/mathml/RenderMathMLOperator.h:
1940
1941 2014-05-23  Tim Horton  <timothy_horton@apple.com>
1942
1943         REGRESSION (iOS WebKit2): requestAnimationFrame fires more than once between layer tree commits
1944         https://bugs.webkit.org/show_bug.cgi?id=132794
1945         <rdar://problem/16877909>
1946
1947         Reviewed by Simon Fraser.
1948
1949         Virtualize DisplayRefreshMonitor so that WebKit2 can implement its own DisplayRefreshMonitor for UI-side compositing views.
1950         This allows the synchronization of requestAnimationFrame callbacks with UI-side compositing painting.
1951
1952         * WebCore.exp.in:
1953         * WebCore.xcodeproj/project.pbxproj:
1954         
1955         * page/ChromeClient.h:
1956         (WebCore::ChromeClient::graphicsLayerFactory):
1957         (WebCore::ChromeClient::createDisplayRefreshMonitor):
1958         * platform/graphics/DisplayRefreshMonitorFactory.h: Added.
1959         * platform/graphics/GraphicsLayerUpdater.cpp:
1960         (WebCore::GraphicsLayerUpdater::createDisplayRefreshMonitor):
1961         * platform/graphics/GraphicsLayerUpdater.h:
1962         * rendering/RenderLayerCompositor.cpp:
1963         (WebCore::RenderLayerCompositor::createDisplayRefreshMonitor):
1964         * rendering/RenderLayerCompositor.h:
1965         Give the ChromeClient a chance to provide us with a custom DisplayRefreshMonitor.
1966         If it does not, we'll fall back to making a DisplayRefreshMonitorMac or
1967         DisplayRefreshMonitorIOS depending on the platform.
1968
1969         * dom/ScriptedAnimationController.cpp:
1970         * dom/ScriptedAnimationController.h:
1971         * platform/graphics/DisplayRefreshMonitor.cpp:
1972         * platform/graphics/DisplayRefreshMonitor.h:
1973         * platform/graphics/DisplayRefreshMonitorClient.cpp: Added.
1974         * platform/graphics/DisplayRefreshMonitorClient.h: Added.
1975         * platform/graphics/DisplayRefreshMonitorManager.cpp: Added.
1976         * platform/graphics/DisplayRefreshMonitorManager.h: Added.
1977         Split DisplayRefreshMonitor.cpp into one file per class.
1978         Use references in a few places.
1979         Remove some useless comments.
1980
1981         * platform/graphics/DisplayRefreshMonitor.cpp:
1982         (WebCore::DisplayRefreshMonitor::displayDidRefresh):
1983         Use takeAny() and remove a FIXME about it not existing.
1984
1985         * platform/graphics/DisplayRefreshMonitorClient.cpp: Added.
1986         (WebCore::DisplayRefreshMonitorClient::fireDisplayRefreshIfNeeded):
1987         Use an early return instead of having the whole function body in an if().
1988
1989         * platform/graphics/ios/DisplayRefreshMonitorIOS.h: Added.
1990         * platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
1991         * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
1992         * platform/graphics/mac/DisplayRefreshMonitorMac.h: Added.
1993         Virtualize DisplayRefreshMonitorIOS and DisplayRefreshMonitorMac,
1994         and move things specific to each of them out of DisplayRefreshMonitor itself.
1995
1996 2014-05-23  Yusuke Suzuki  <utatane.tea@gmail.com>
1997
1998         CSS JIT: Apply backtracking optimization to adjacent backtracking
1999         https://bugs.webkit.org/show_bug.cgi?id=132951
2000
2001         Reviewed by Benjamin Poulain.
2002
2003         Apply the backtracking optimization to the adjacent backtracking.
2004         This optimization is already done for the descendant backtracking.
2005         We apply this to the adjacent backtracking similarly.
2006
2007         Test: fast/selectors/backtracking-adjacent-optimized.html
2008
2009         * cssjit/SelectorCompiler.cpp:
2010         (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
2011         (WebCore::SelectorCompiler::solveAdjacentBacktrackingActionForDirectAdjacent):
2012         (WebCore::SelectorCompiler::solveBacktrackingAction):
2013         (WebCore::SelectorCompiler::computeBacktrackingStartOffsetInChain):
2014         (WebCore::SelectorCompiler::computeBacktrackingHeightFromDescendant):
2015         (WebCore::SelectorCompiler::computeBacktrackingWidthFromIndirectAdjacent):
2016         (WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
2017         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
2018         (WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures):
2019         (WebCore::SelectorCompiler::computeBacktrackingStartHeightFromDescendant): Deleted.
2020
2021 2014-05-23  Alex Christensen  <achristensen@webkit.org>
2022
2023         Make CSS JIT run on ARM64.
2024         https://bugs.webkit.org/show_bug.cgi?id=133156
2025
2026         Reviewed by Benjamin Poulain.
2027
2028         * cssjit/FunctionCall.h:
2029         (WebCore::FunctionCall::saveAllocatedRegisters):
2030         (WebCore::FunctionCall::restoreAllocatedRegisters):
2031         Use StackAllocator's new push and pop functions to push and pop a vector instead of iterating it.
2032         * cssjit/RegisterAllocator.h:
2033         (WebCore::RegisterAllocator::reserveCalleeSavedRegisters):
2034         (WebCore::RegisterAllocator::restoreCalleeSavedRegisters):
2035         Return a vector of registers to allocate instead of doing the allocation to make the RegisterAllocator
2036         not need to know about the StackAllocator and to use the new vector push and pop functions.
2037         (WebCore::RegisterAllocator::~RegisterAllocator):
2038         Store RegisterIDs instead of StackReferences to avoid needing to know about the stack.
2039         * cssjit/SelectorCompiler.cpp:
2040         (WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
2041         Removed the requirement for assert to be disabled to print disassembly when debugging css jit.
2042         (WebCore::SelectorCompiler::SelectorCodeGenerator::generatePrologue):
2043         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateEpilogue):
2044         Added to correctly push the link register and frame pointer.
2045         This is required if the jit code calls a function on arm64 and helpful for debugging tools on x86_64.
2046         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
2047         Generate the prologue and epilogue which respectively push and pop
2048         the link register, frame pointer, and callee saved registers if needed.
2049         * cssjit/StackAllocator.h:
2050         (WebCore::StackAllocator::push):
2051         (WebCore::StackAllocator::pop):
2052         Added new vector push and pop functions to use stp and ldb instructions on arm64.
2053
2054 2014-05-23  Jeremy Jones  <jeremyj@apple.com>
2055
2056         Hide fullscreen immediately when switching tabs.
2057         https://bugs.webkit.org/show_bug.cgi?id=133239
2058
2059         Reviewed by Eric Carlson.
2060
2061         This change allows fullscreen to disappear immediately while still cleaning
2062         up fullscreen normally.
2063
2064         * WebCore.exp.in:
2065         * platform/ios/WebVideoFullscreenControllerAVKit.h:
2066         renamed function to requestHideAndExitFullscreen
2067
2068         * platform/ios/WebVideoFullscreenControllerAVKit.mm:
2069         renamed function to requestHideAndExitFullscreen
2070
2071         (-[WebVideoFullscreenController requestHideAndExitFullscreen]):
2072         rename of requestExitFullscreen that also hides.
2073
2074         (-[WebVideoFullscreenController requestExitFullscreen]): Deleted.
2075         * platform/ios/WebVideoFullscreenInterfaceAVKit.h: declare requestHideAndExitFullscreen()
2076         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
2077         (WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen):
2078         this hides the window before requesting exitfullscreen from the model.
2079
2080 2014-05-23  Tim Horton  <timothy_horton@apple.com>
2081
2082         [iOS] WKPDFView should have a page indicator
2083         https://bugs.webkit.org/show_bug.cgi?id=133109
2084         <rdar://problem/16383003>
2085
2086         Reviewed by Anders Carlsson.
2087
2088         * English.lproj/Localizable.strings:
2089
2090 2014-05-23  Enrica Casucci  <enrica@apple.com>
2091
2092         Remove invalid ASSERT in wordRangeForPosition.
2093         https://bugs.webkit.org/show_bug.cgi?id=133232
2094
2095         Reviewed by Ryosuke Niwa.
2096
2097         In WK2 for iOS this function is called on every selection change.
2098         The selection could be set by Javascript in an element that is not visible.
2099         In that case we won't be able to create a VisiblePosition therefore wordRangeForPosition
2100         should not ASSERT that the VisiblePosition is not null, but rather
2101         perform an early return if it is null.
2102
2103         * editing/VisibleUnits.cpp:
2104         (WebCore::wordRangeFromPosition):
2105
2106 2014-05-23  Manuel Rego Casasnovas  <rego@igalia.com>
2107
2108         [CSS Grid Layout] Use gridRowCount() and gridColumnCount() when possible
2109         https://bugs.webkit.org/show_bug.cgi?id=133213
2110
2111         Reviewed by Sergio Villar Senin.
2112
2113         Use gridRowCount() and gridColumnCount() instead of m_grid.size() and
2114         m_grid[0].size() to make the code more descriptive and easier to
2115         understand.
2116
2117         No new tests (No change in behavior).
2118
2119         * rendering/RenderGrid.cpp:
2120         (WebCore::RenderGrid::growGrid):
2121         (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
2122
2123 2014-05-23  Alexey Proskuryakov  <ap@apple.com>
2124
2125         REGRESSION (r153917): Chart for the Category Explorer within Quicken Essentials
2126         does not draw until you force a redraw
2127         https://bugs.webkit.org/show_bug.cgi?id=133228
2128         <rdar://problem/15221231>
2129
2130         Reviewed by Simon Fraser.
2131
2132         * platform/RuntimeApplicationChecks.cpp: (WebCore::applicationIsQuickenEssentials):
2133         * platform/RuntimeApplicationChecks.h:
2134         Added a check for Quicken Essentials.
2135
2136         * platform/mac/WidgetMac.mm: (WebCore::Widget::paint): Don't do an early return
2137         for Quicken Essentials, it depends on drawing to update its layer.
2138
2139 2014-05-23  Mihnea Ovidenie  <mihnea@adobe.com>
2140
2141         REGRESSION(r169105): fast/regions/cssom/region-range-for-box-crash.html is more crashy than before
2142         https://bugs.webkit.org/show_bug.cgi?id=133124
2143
2144         Reviewed by David Hyatt.
2145
2146         When adjusting the end points of a subtree selection in the case of a document
2147         with named flows, we have to make sure that we pass the computed end
2148         points to the visible selection algorithm only if the end points are
2149         part of the same subtree, otherwise assume a selection clear behavior.
2150
2151         The test fast/regions/cssom/region-range-for-box-crash.html is used to
2152         test this behavior.
2153
2154         * rendering/SelectionSubtreeRoot.cpp:
2155         (WebCore::SelectionSubtreeRoot::adjustForVisibleSelection):
2156         (WebCore::SelectionSubtreeRoot::selectionStartEndPositions): Moved to header file.
2157         * rendering/SelectionSubtreeRoot.h:
2158         (WebCore::SelectionSubtreeRoot::selectionStartEndPositions):
2159
2160 2014-05-23  Jeremy Jones  <jeremyj@apple.com>
2161
2162         reset m_havePreparedToPlay when changing media engines.
2163         https://bugs.webkit.org/show_bug.cgi?id=133199
2164
2165         Reviewed by Eric Carlson.
2166
2167         If a play request comes in before the media player is created, m_havePreparedToPlay
2168         is set to true. But when the player is created, this prevents the new player from
2169         getting the prepare call.
2170
2171         * html/HTMLMediaElement.cpp:
2172         (WebCore::HTMLMediaElement::mediaPlayerEngineUpdated): set m_havePreparedToPlay false.
2173
2174 2014-05-23  Oliver Hunt  <oliver@apple.com>
2175
2176         Navigator object needs to have properties directly on the instance object
2177         https://bugs.webkit.org/show_bug.cgi?id=133221
2178
2179         Reviewed by Mark Lam.
2180
2181         Flag the Navigator object as requiring properties to be on the instance
2182         as there were a few compatibility issues when on the prototype.
2183
2184         * bindings/scripts/CodeGeneratorJS.pm:
2185         (InterfaceRequiresAttributesOnInstance):
2186
2187 2014-05-23  Simon Fraser  <simon.fraser@apple.com>
2188
2189         Switch CSSGradientValue to use more references
2190         https://bugs.webkit.org/show_bug.cgi?id=133206
2191
2192         Reviewed by Andreas Kling.
2193
2194         Switch from pointers to references in various places.
2195
2196         * css/CSSGradientValue.cpp:
2197         (WebCore::CSSGradientValue::image):
2198         (WebCore::CSSGradientValue::addStops):
2199         (WebCore::positionFromValue):
2200         (WebCore::CSSGradientValue::computeEndPoint):
2201         (WebCore::CSSLinearGradientValue::createGradient):
2202         (WebCore::CSSRadialGradientValue::resolveRadius):
2203         (WebCore::CSSRadialGradientValue::createGradient):
2204         * css/CSSGradientValue.h:
2205
2206 2014-05-23  Zalan Bujtas  <zalan@apple.com>
2207
2208         Subpixel rendering: Make webkit-box-shadow painting subpixel aware.
2209         https://bugs.webkit.org/show_bug.cgi?id=133201
2210         <rdar://problem/16072830>
2211
2212         Reviewed by Simon Fraser.
2213
2214         This patch enables webkit-box-shadow to be painted on a subpixel position. However, we
2215         still truncate -webkit-box-shadow property values. Tracked here: http://webkit.org/b/133202
2216
2217         Test: fast/box-shadow/hidpi-webkit-box-shadow-subpixel-position.html
2218
2219         * platform/graphics/FloatRoundedRect.cpp:
2220         (WebCore::FloatRoundedRect::inflateWithRadii): same as in from RoundedRect.
2221         (WebCore::FloatRoundedRect::adjustRadii): same as in from RoundedRect.
2222         * platform/graphics/FloatRoundedRect.h:
2223         * rendering/RenderBoxModelObject.cpp:
2224         (WebCore::RenderBoxModelObject::paintBoxShadow):
2225
2226 2014-05-22  peavo@outlook.com  <peavo@outlook.com>
2227
2228         [Curl] Crash when exceeding maximum cache limit.
2229         https://bugs.webkit.org/show_bug.cgi?id=133185
2230
2231         Reviewed by Brent Fulgham.
2232
2233         When the maximum cache limit is exceeded, I get a crash.
2234         This happens when deleting cache entries, because a reference to the url string object in the LRU list
2235         is used as a parameter to invalidateCacheEntry(), when called from makeRoomForNewEntry().
2236         When the string is removed from the LRU list in makeRoomForNewEntry(), the string is deleted.
2237         Next, the string is accessed again to remove the url from the index, and we crash.
2238
2239         This can be fixed by removing the string from the LRU list after it is removed from the index.
2240
2241         Fixing the crash also revealed an infinite loop problem.
2242         If the url for some reason only exist in the LRU list, and not in the index,
2243         we will inifitely loop in makeRoomForNewEntry(), trying to remove this url from the cache, but never succeeding.
2244         This can be fixed by removing the url from the LRU list, also when it's not in the index.
2245
2246         * platform/network/curl/CurlCacheManager.cpp:
2247         (WebCore::CurlCacheManager::makeRoomForNewEntry): Avoid infinite loop by checking if there are more cache entries to remove.
2248         (WebCore::CurlCacheManager::invalidateCacheEntry): Avoid crash and infinite loop by removing url from LRU list last.
2249
2250 2014-05-22  Simon Fraser  <simon.fraser@apple.com>
2251
2252         Make viewport units work in CSS gradients
2253         https://bugs.webkit.org/show_bug.cgi?id=133204
2254         <rdar://problem/17012259>
2255         
2256         Reviewed by Tim Horton.
2257         
2258         Make viewport percentage lengths work in gradients.
2259
2260         Test: fast/gradients/viewport-units-gradient.html
2261
2262         * css/CSSGradientValue.cpp:
2263         (WebCore::CSSGradientValue::addStops):
2264         (WebCore::CSSLinearGradientValue::createGradient):
2265         (WebCore::CSSRadialGradientValue::createGradient):
2266         * css/CSSGradientValue.h:
2267
2268 2014-05-22  Benjamin Poulain  <bpoulain@apple.com>
2269
2270         [iOS][WK2] Add support for minimal-ui viewports
2271         https://bugs.webkit.org/show_bug.cgi?id=133162
2272
2273         Reviewed by Simon Fraser.
2274
2275         Add support for minimal-ui directly into the Viewport configuration.
2276
2277         ViewportConfiguration knows about two kinds of layout size in scrollview coordinates:
2278         -normal size
2279         -minimal ui size.
2280
2281         Initially, the page is initialized with resetMinimalUI() and starts with a normal layout.
2282
2283         At any time before the main resource is loaded, the Web page can update its viewport meta tag
2284         to include minimal-ui. The viewport configuration is updated immediately to reflect the minimal-ui
2285         layout size. Any layout after that takes minimal-ui into account.
2286
2287         * WebCore.exp.in:
2288         * css/LengthFunctions.cpp:
2289         (WebCore::minimumValueForLength):
2290         (WebCore::floatValueForLength):
2291         * css/StyleResolver.cpp:
2292         (WebCore::StyleResolver::viewportPercentageValue):
2293         * dom/ViewportArguments.h:
2294         (WebCore::ViewportArguments::operator==):
2295         * page/FrameView.cpp:
2296         (WebCore::FrameView::setViewportSizeForCSSViewportUnits):
2297         (WebCore::FrameView::viewportSizeForCSSViewportUnits):
2298         (WebCore::FrameView::setViewportSize): Deleted.
2299         (WebCore::FrameView::viewportSize): Deleted.
2300         * page/FrameView.h:
2301         * page/ViewportConfiguration.cpp:
2302         (WebCore::ViewportConfiguration::ViewportConfiguration):
2303         (WebCore::ViewportConfiguration::setMinimumLayoutSize):
2304         (WebCore::ViewportConfiguration::setMinimumLayoutSizeForMinimalUI):
2305         (WebCore::ViewportConfiguration::activeMinimumLayoutSizeInScrollViewCoordinates):
2306         (WebCore::ViewportConfiguration::resetMinimalUI):
2307         (WebCore::ViewportConfiguration::pageWillRenderFirstFrame):
2308         (WebCore::ViewportConfiguration::initialScale):
2309         (WebCore::ViewportConfiguration::minimumScale):
2310         (WebCore::ViewportConfiguration::updateConfiguration):
2311         (WebCore::ViewportConfiguration::layoutWidth):
2312         (WebCore::ViewportConfiguration::layoutHeight):
2313         (WebCore::ViewportConfiguration::description):
2314         * page/ViewportConfiguration.h:
2315         (WebCore::ViewportConfiguration::minimumLayoutSizeForMinimalUI):
2316         (WebCore::ViewportConfiguration::usesMinimalUI):
2317         * rendering/RenderView.cpp:
2318         (WebCore::RenderView::viewportSizeForCSSViewportUnits):
2319         (WebCore::RenderView::viewportSize): Deleted.
2320         * rendering/RenderView.h:
2321
2322 2014-05-22  Ryosuke Niwa  <rniwa@webkit.org>
2323
2324         Can't type in status in facebook.com on iOS Safari because keyboard disappears
2325         https://bugs.webkit.org/show_bug.cgi?id=133196
2326
2327         Reviewed by Geoffrey Garen.
2328
2329         Fixed the bug by rolling out r156252.
2330
2331         When the user taps on the status on facebook.com, the page focuses a textarea,
2332         which is then made momentarily invisible by setting display:none.
2333         The page then removes display:none later and expects the textarea to be still focused.
2334
2335         With r156252, the focus is removed after the page sets display:none and the keyboard disappears.
2336         Since the focus is never reset on the textarea, the user can never type in anything.
2337
2338         The specification may need to change here given that this (rather odd) behavior/expectation exists
2339         on one of the most popular websites on the Web.
2340
2341         * dom/Document.cpp:
2342         (WebCore::Document::Document):
2343         (WebCore::Document::recalcStyle):
2344         (WebCore::Document::updateLayout):
2345         (WebCore::Document::resetHiddenFocusElementSoon): Deleted.
2346         (WebCore::Document::resetHiddenFocusElementTimer): Deleted.
2347         * dom/Document.h:
2348
2349 2014-05-22  Myles C. Maxfield  <mmaxfield@apple.com>
2350
2351         http/tests/security/xss-DENIED-xsl-document-redirect.xml fails with NetworkProcess
2352         https://bugs.webkit.org/show_bug.cgi?id=132523
2353
2354         Reviewed by Alexey Proskuryakov.
2355
2356         We should not manufacture a response in the event of an error during a
2357         synchronous XHR. In addition, this test removes two places that are
2358         sensitive to such a manufactured response.
2359
2360         Updates test expectations.
2361
2362         * loader/DocumentThreadableLoader.cpp:
2363         (WebCore::DocumentThreadableLoader::loadRequest): Don't inspect a
2364         loader response if there is an error
2365         * platform/network/cf/ResourceHandleCFNet.cpp:
2366         (WebCore::ResourceHandle::platformLoadResourceSynchronously): Do not
2367         manufacture a response
2368         * platform/network/mac/ResourceHandleMac.mm:
2369         (WebCore::ResourceHandle::platformLoadResourceSynchronously): Do not
2370         manufacture a response
2371         * xml/XSLTProcessorLibxslt.cpp:
2372         (WebCore::docLoaderFunc): Only use the response's URL if no error
2373         occurred.
2374
2375 2014-05-22  Myles C. Maxfield  <litherum@gmail.com>
2376
2377         Unreviewed typo fix.
2378
2379         Reviewed by NOBODY.
2380
2381         No new tests.
2382
2383         * platform/graphics/mac/FontMac.mm:
2384         (WebCore::Font::dashesForIntersectionsWithRect): Accidentally said run.length() instead of glyphBuffer.size().
2385
2386 2014-05-22  Andreas Kling  <akling@apple.com>
2387
2388         [iOS WebKit2] Web process should try to shrink its memory footprint when going into background.
2389         <https://webkit.org/b/133197>
2390         <rdar://problem/17011561>
2391
2392         Make releaseMemory() public so we can call it from the process-will-suspend callback.
2393
2394         Reviewed by Gavin Barraclough.
2395
2396         * WebCore.exp.in:
2397         * platform/MemoryPressureHandler.h:
2398
2399 2014-05-22  Andreas Kling  <akling@apple.com>
2400
2401         Hook up a setting for showing detailed logging during memory pressure relief.
2402         <https://webkit.org/b/133194>
2403
2404         Make the pressure relief logger opt-in. Also make it flush memory back to the
2405         OS (for both malloc and FastMalloc) to get more accurate numbers at each step.
2406
2407         Reviewed by Gavin Barraclough.
2408
2409         * WebCore.exp.in:
2410         * platform/MemoryPressureHandler.cpp:
2411         * platform/MemoryPressureHandler.h:
2412         (WebCore::MemoryPressureHandler::ReliefLogger::ReliefLogger):
2413         (WebCore::MemoryPressureHandler::ReliefLogger::~ReliefLogger):
2414         (WebCore::MemoryPressureHandler::ReliefLogger::setLoggingEnabled):
2415         * platform/cocoa/MemoryPressureHandlerCocoa.mm:
2416         (WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):
2417
2418 2014-05-22  Brady Eidson  <beidson@apple.com>
2419
2420         Don't scan for phone numbers in editable regions
2421         <rdar://problem/16949846> and https://bugs.webkit.org/show_bug.cgi?id=133192
2422
2423         Reviewed by Enrica Casucci.
2424
2425         No new tests (Currently untested WK2-only feature)
2426
2427         * editing/Editor.cpp:
2428         (WebCore::Editor::scanRangeForTelephoneNumbers): Skip the range if the Node is editable.
2429
2430 2014-05-22  Jeremy Jones  <jeremyj@apple.com>
2431
2432         Captions layout incorrectly in fullscreen.
2433         https://bugs.webkit.org/show_bug.cgi?id=133175
2434
2435         Reviewed by Eric Carlson.
2436
2437         When doing layout for fullscreen, geometry should be absolute so it is not influenced
2438         by the rest of the page. This change adds style for CSSPropertyPosition, CSSPropertyLeft,
2439         and CSSPropertyTop.
2440
2441         * html/shadow/MediaControlElements.cpp:
2442         (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
2443         Refactor style changes into updateStyleForTextTrackRepresentation().
2444         (WebCore::MediaControlTextTrackContainerElement::updateTimerFired):
2445         Refactor style changes into updateStyleForTextTrackRepresentation().
2446         (WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation):
2447         Refactor style changes into updateStyleForTextTrackRepresentation().
2448         (WebCore::MediaControlTextTrackContainerElement::updateStyleForTextTrackRepresentation):
2449         Consolidate style changes here. Include the two existing and three new style changes.
2450         * html/shadow/MediaControlElements.h:
2451         Declare updateStyleForTextTrackRepresentation().
2452
2453 2014-05-22  Simon Fraser  <simon.fraser@apple.com>
2454
2455         REGRESSION (r155977): Very stuttery 3D css animation on jtechcommunications.com
2456         https://bugs.webkit.org/show_bug.cgi?id=133179
2457         <rdar://problem/16864666>
2458
2459         Reviewed by Dean Jackson.
2460
2461         Revert code added in r155977 to try to pick a good contentsScale for layers
2462         based on a root-relative transform. This resulted in pages with too much 
2463         backing store, and too many cases where layers repainted during animations,
2464         causing stutter.
2465
2466         * platform/graphics/ca/GraphicsLayerCA.cpp:
2467         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
2468         (WebCore::GraphicsLayerCA::flushCompositingState):
2469         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
2470         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
2471         (WebCore::GraphicsLayerCA::updateContentsOpaque):
2472         (WebCore::GraphicsLayerCA::updateAnimations):
2473         (WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
2474         (WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
2475         (WebCore::GraphicsLayerCA::setTransformAnimationKeyframes):
2476         (WebCore::GraphicsLayerCA::updateContentsScale):
2477         (WebCore::clampedContentsScaleForScale): Deleted.
2478         (WebCore::maxScaleFromTransform): Deleted.
2479         (WebCore::GraphicsLayerCA::updateRootRelativeScale): Deleted.
2480         (WebCore::GraphicsLayerCA::getTransformFromAnimationsWithMaxScaleImpact): Deleted.
2481         * platform/graphics/ca/GraphicsLayerCA.h:
2482
2483 2014-05-22  Martin Hock  <mhock@apple.com>
2484
2485         [iOS] Enable -apple-system- styled elements to respond to system font size changes.
2486         https://bugs.webkit.org/show_bug.cgi?id=133186
2487         <rdar://problem/16583782>
2488
2489         Reviewed by Enrica Casucci.
2490
2491         * WebCore.exp.in:
2492         * WebCore.xcodeproj/project.pbxproj:
2493         * rendering/RenderThemeIOS.h:
2494         * rendering/RenderThemeIOS.mm:
2495         (WebCore::_contentSizeCategory):
2496         (WebCore::RenderThemeIOS::contentSizeCategory):
2497         (WebCore::RenderThemeIOS::setContentSizeCategory):
2498
2499 2014-05-22  Jer Noble  <jer.noble@apple.com>
2500
2501         [MSE] Stored samples are not freed when SourceBuffer is removed from MediaSource
2502         https://bugs.webkit.org/show_bug.cgi?id=133174
2503
2504         Reviewed by Eric Carlson.
2505
2506         Clear out stored MediaSamples from SourceBuffer's TrackBuffer storage when
2507         aborting loading. Also, report the memory cost of those samples, so that the
2508         SourceBuffer will be GCd more readily.
2509
2510         Add a mechanism for reporting the size of a MediaSample:
2511         * Modules/mediasource/SourceBuffer.h:
2512         * platform/MediaSample.h:
2513         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
2514         * platform/mock/mediasource/MockSourceBufferPrivate.cpp:
2515
2516         Track the memory usage of a SampleMap when adding and removing samples, as well
2517         as allowing the SampleMap to be cleared wholesale:
2518         * Modules/mediasource/SampleMap.cpp:
2519         (WebCore::SampleMap::clear): Release all stored MediaSamples.
2520         (WebCore::SampleMap::addSample): Update m_totalSize.
2521         (WebCore::SampleMap::removeSample): Ditto.
2522         * Modules/mediasource/SampleMap.h:
2523         (WebCore::SampleMap::SampleMap): Initialize m_totalSize.
2524         (WebCore::SampleMap::sizeInBytes): Simple accessor.
2525
2526         Clear the stored samples when loading is aborted, and report the extra memory
2527         cost
2528         * Modules/mediasource/SourceBuffer.cpp:
2529         (WebCore::SourceBuffer::SourceBuffer): Initialize m_reportedExtraMemoryCost.
2530         (WebCore::SourceBuffer::removedFromMediaSource): Clear all stored samples.
2531         (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Call reportExtraMemoryCost().
2532         (WebCore::SourceBuffer::reportExtraMemoryCost): Inform the vm of the new
2533             extra memory cost incurred by the object.
2534
2535 2014-05-22  Enrica Casucci  <enrica@apple.com>
2536
2537         REGRESSION (WebKit2): Keyboard should have Search button in duckduckgo.com.
2538         https://bugs.webkit.org/show_bug.cgi?id=133183
2539         <rdar://problem/17004207>
2540
2541         Reviewed by Geoff Garen.
2542
2543         Adding new export.
2544
2545         * WebCore.exp.in:
2546
2547 2014-05-22  Carlos Garcia Campos  <cgarcia@igalia.com>
2548
2549         REGRESSION(r163712): [GTK] Misspelling and grammar underline marks are no longer drawn
2550         https://bugs.webkit.org/show_bug.cgi?id=133047
2551
2552         Reviewed by Darin Adler.
2553
2554         Change two conditions changed by mistake in r163712.
2555
2556         * editing/TextCheckingHelper.cpp:
2557         (WebCore::findMisspellings): Enter the loop also when wordStart is 0.
2558         (WebCore::TextCheckingHelper::findFirstMisspelling): Skip the work
2559         when the text is a single character. Also reworked it to use a for
2560         loop to improve the readability.
2561
2562 2014-05-22  Piotr Grad  <p.grad@samsung.com>
2563
2564         Video is resumed with old playback rate.
2565         https://bugs.webkit.org/show_bug.cgi?id=132905
2566
2567         Reviewed by Philippe Normand.
2568
2569         Setting '0' playback rate is causing pipeline to pause.
2570         GStreamer player impl. exposed this information to upper layers but it should not.
2571         Solution is to hidden such situation behind m_playbackRatePause flag.
2572
2573         Test: media/video-paused-0-rate.html
2574
2575         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2576         (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
2577         (WebCore::MediaPlayerPrivateGStreamer::play):
2578         (WebCore::MediaPlayerPrivateGStreamer::pause):
2579         (WebCore::MediaPlayerPrivateGStreamer::doSeek):
2580         (WebCore::MediaPlayerPrivateGStreamer::updatePlaybackRate):
2581         (WebCore::MediaPlayerPrivateGStreamer::paused):
2582         (WebCore::MediaPlayerPrivateGStreamer::setRate):
2583         (WebCore::MediaPlayerPrivateGStreamer::updateStates):
2584         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
2585
2586 2014-05-22  Antti Koivisto  <antti@apple.com>
2587
2588         Text markers don't paint on simple lines
2589         https://bugs.webkit.org/show_bug.cgi?id=133177
2590
2591         Reviewed by Anders Carlsson.
2592         
2593         Marker painting code does not yet support simple lines.
2594
2595         Tests: fast/text/mark-matches-rendering-simple-lines.html
2596                fast/text/mark-matches-rendering.html
2597
2598         * dom/DocumentMarkerController.cpp:
2599         (WebCore::DocumentMarkerController::addMarker):
2600         
2601             Force text blocks with markers to use line boxes.
2602
2603         * testing/Internals.cpp:
2604         (WebCore::Internals::setMarkedTextMatchesAreHighlighted):
2605         
2606             Expose this so we can make reftests for marker rendering.
2607
2608         * testing/Internals.h:
2609         * testing/Internals.idl:
2610
2611 2014-05-22  Manuel Rego Casasnovas  <rego@igalia.com>
2612
2613         [CSS Grid Layout] Guard RenderObject::isRenderGrid() method
2614         https://bugs.webkit.org/show_bug.cgi?id=132380
2615
2616         Reviewed by Benjamin Poulain.
2617
2618         Guard RenderObject::isRenderGrid() method under ENABLE_CSS_GRID_LAYOUT compilation flag.
2619
2620         * rendering/RenderBox.cpp:
2621         (WebCore::RenderBox::computeLogicalWidthInRegion):
2622         * rendering/RenderObject.h:
2623
2624 2014-05-21  Antti Koivisto  <antti@apple.com>
2625
2626         REGRESSION(r167870): Crash in simple line layout code with :after
2627         https://bugs.webkit.org/show_bug.cgi?id=133155
2628         <rdar://problem/16977696>
2629
2630         Reviewed by Darin Adler.
2631         
2632         Fix https://bugs.webkit.org/show_bug.cgi?id=132241 in a safer way.
2633         The underline behavior is tested by the existing fast/text/simple-lines-hover-underline.html
2634
2635         Test: fast/text/simple-lines-hover-after.html
2636
2637         * rendering/RenderBlock.cpp:
2638         (WebCore::RenderBlock::invalidateLineLayoutPath): Deleted.
2639
2640             Move to RenderBlockFlow.
2641
2642         * rendering/RenderBlock.h:
2643         (WebCore::RenderBlock::invalidateLineLayoutPath):
2644         * rendering/RenderBlockFlow.cpp:
2645         (WebCore::RenderBlockFlow::styleDidChange):
2646         
2647             Invalidate layout if style changes in a manner that makes us ineligible to use the simple line layout path.
2648
2649         (WebCore::RenderBlockFlow::invalidateLineLayoutPath):
2650         
2651             Drop the simple line layout on path invalidation if it exists. It may not be valid anymore.
2652             Also invalidate the layout if this happens so we'll reconstruct the lines later.
2653
2654         (WebCore::RenderBlockFlow::simpleLineLayout): Deleted.
2655         (WebCore::RenderBlockFlow::ensureLineBoxes):
2656         (WebCore::RenderBlockFlow::createLineBoxes): Deleted.
2657                 
2658             Revert some of the changes made it r167870.
2659
2660         * rendering/RenderBlockFlow.h:
2661         (WebCore::RenderBlockFlow::simpleLineLayout):
2662         
2663             Add strong validity assert.
2664
2665 2014-05-21  Eric Carlson  <eric.carlson@apple.com>
2666
2667         [iOS] two media control button strings are not localized
2668         https://bugs.webkit.org/show_bug.cgi?id=133160
2669
2670         Reviewed by Geoffrey Garen.
2671
2672         * English.lproj/mediaControlsLocalizedStrings.js:
2673
2674 2014-05-21  Dean Jackson  <dino@apple.com>
2675
2676         [iOS] Update some of the media controls buttons to be bigger
2677         https://bugs.webkit.org/show_bug.cgi?id=133158
2678         <rdar://problem/16475828>
2679
2680         Reviewed by Simon Fraser.
2681
2682         The buttons in the media controls on iOS are too small
2683         to be comfortably pressed. Make them the size of the controls
2684         panel and the expected iOS button size (44x44px).
2685
2686         The artwork for the buttons now includes the padding. I've
2687         added a file from which you can edit the artwork, then
2688         copy it into the CSS (because editing directly in CSS is
2689         a huge pain).
2690
2691         So far just the play/pause and fullscreen button have been
2692         updated. There will be a follow-up patch to fix the remaining
2693         buttons and the scrubber.
2694
2695         * Modules/mediacontrols/assets-apple-iOS.svg: Added.
2696         * Modules/mediacontrols/mediaControlsiOS.css:
2697         (audio::-webkit-media-controls-panel):
2698         (audio::-webkit-media-controls-fullscreen-button):
2699         (audio::-webkit-media-controls-play-button):
2700         (audio::-webkit-media-controls-play-button:active):
2701         (audio::-webkit-media-controls-play-button.paused):
2702         (audio::-webkit-media-controls-fullscreen-button:active):
2703         (@media only screen and (-webkit-min-device-pixel-ratio: 2)): Deleted.
2704
2705 2014-05-21  Zalan Bujtas  <zalan@apple.com>
2706
2707         Garbage when rubber-banding at the right edge of a page zoomed to non-integral scale.
2708         https://bugs.webkit.org/show_bug.cgi?id=133139
2709         <rdar://problem/16503353>
2710
2711         Reviewed by Simon Fraser.
2712
2713         Do not pixel align the root content layer. The alignment code expands the graphics's layer size
2714         which makes the right and bottom tiles bigger than the content.
2715         Painting the body's background color produces pixel cracks, because the content can not
2716         fill the expanded tiles completely.
2717
2718         Not testable.
2719
2720         * platform/graphics/GraphicsLayerClient.h:
2721         (WebCore::GraphicsLayerClient::needsPixelAligment):
2722         * platform/graphics/ca/GraphicsLayerCA.cpp:
2723         (WebCore::GraphicsLayerCA::updateGeometry):
2724         (WebCore::GraphicsLayerCA::computePixelAlignment):
2725         * platform/graphics/ca/mac/TileGrid.mm:
2726         (WebCore::TileGrid::rectForTileIndex):
2727         * rendering/RenderLayerBacking.cpp:
2728         (WebCore::RenderLayerBacking::needsPixelAligment):
2729         * rendering/RenderLayerBacking.h:
2730
2731 2014-05-21  Radu Stavila  <stavila@adobe.com>
2732
2733         REGRESSION (r168046): Invalid layout in WebCore::RenderBox::containingBlockLogicalWidthForPositioned
2734         https://bugs.webkit.org/show_bug.cgi?id=132933
2735
2736         Reviewed by Darin Adler.
2737
2738         Invalid layout is performed when calling containingBlockLogicalWidthForPositioned for a RenderTableSection object.
2739
2740         Test: fast/multicol/newmulticol/table-section-crash.html
2741
2742         * rendering/RenderBox.cpp:
2743         (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
2744
2745 2014-05-21  Simon Pena  <simon.pena@samsung.com>
2746
2747         [EFL] Ensure EGLOffScreenContext::initialize calls platformMakeCurrent on the surface
2748         https://bugs.webkit.org/show_bug.cgi?id=124832
2749
2750         Reviewed by Antonio Gomes.
2751
2752         The original code was only calling platformMakeCurrent when the
2753         GL_EXT_robustness extension is supported: the alternate code path
2754         would only create a context, but it wouldn't make that context
2755         current. This patch ensures platformMakeCurrent is also called for
2756         the alternate code path, and, if it fails to make the context
2757         current, will destroy the context. Effectively, this makes both
2758         code paths behave in the same way.
2759
2760         * platform/graphics/surfaces/egl/EGLContext.cpp:
2761         (WebCore::EGLOffScreenContext::initialize):
2762
2763 2014-05-20  Brent Fulgham  <bfulgham@apple.com>
2764
2765         [Mac] DataCues do not work properly when rewinding video
2766         https://bugs.webkit.org/show_bug.cgi?id=133138
2767         <rdar://problem/16979086>
2768
2769         Reviewed by Eric Carlson.
2770
2771         Make the TrackPrivateBase responsible for knowing if a type of track needs a non-zero
2772         startTimeVariance value.
2773
2774         Also, correct a bug in the equality test for DataCue objects.
2775
2776         * html/track/DataCue.cpp:
2777         (WebCore::DataCue::isEqual): Handle the JSValue data types consistently, so that we don't attempt
2778         to compare a JSNull against a default JSValue object.
2779         * html/track/InbandTextTrack.cpp:
2780         (WebCore::InbandTextTrack::startTimeVariance): Added.
2781         * html/track/InbandTextTrack.h:
2782         * html/track/TextTrack.cpp:
2783         (WebCore::TextTrack::hasCue): Use new startTimeVariance method location.
2784         * html/track/TextTrack.h:
2785         (WebCore::TextTrack::startTimeVariance): Added.
2786         * html/track/TextTrackCue.cpp:
2787         (WebCore::TextTrackCue::hasEquivalentStartTime): Use new startTimeVariance location.
2788         * html/track/TextTrackCue.h:
2789         (WebCore::TextTrackCue::startTimeVariance): Deleted.
2790         * html/track/TextTrackCueGeneric.h:
2791         * platform/graphics/TrackPrivateBase.h:
2792         (WebCore::TrackPrivateBase::startTimeVariance): Added.
2793         * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
2794
2795 2014-05-20  Mark Hahnenberg  <mhahnenberg@apple.com>
2796
2797         Watchdog timer should be lazily allocated
2798         https://bugs.webkit.org/show_bug.cgi?id=133135
2799
2800         Reviewed by Geoffrey Garen.
2801
2802         No new tests.
2803
2804         We incur a noticeable amount of overhead on some benchmarks due to checking if the Watchdog ever fired. 
2805         There is no reason to do this checking if we never activated the Watchdog, which can only be done through 
2806         JSContextGroupSetExecutionTimeLimit or JSContextGroupClearExecutionTimeLimit. 
2807
2808         By allocating the Watchdog lazily on the VM we can avoid all of the associated overhead when we don't use 
2809         these two API functions (which is true of most clients).
2810
2811         * bindings/js/JSEventListener.cpp:
2812         (WebCore::JSEventListener::handleEvent):
2813         * bindings/js/WorkerScriptController.cpp:
2814         (WebCore::WorkerScriptController::evaluate):
2815         (WebCore::WorkerScriptController::scheduleExecutionTermination):
2816         (WebCore::WorkerScriptController::isExecutionTerminating):
2817
2818 2014-05-20  Dean Jackson  <dino@apple.com>
2819
2820         [Mac] Allow popup menus to override default appearance
2821         https://bugs.webkit.org/show_bug.cgi?id=133129
2822
2823         Reviewed by Tim Horton.
2824
2825         WebKitSystemInterface's WKPopupMenu has a flag to hide
2826         the arrows at the end of a popup-menu (e.g. <select>).
2827         Expose that via adding a hasDefaultAppearance flag to
2828         PopupMenuStyle, which then passes it on to WKSI.
2829
2830         * platform/PopupMenuStyle.h:
2831         (WebCore::PopupMenuStyle::PopupMenuStyle): New flag in constructor.
2832         (WebCore::PopupMenuStyle::hasDefaultAppearance): New flag.
2833         * platform/mac/WebCoreSystemInterface.h: wkPopupMenu signature has changed to accept
2834         the new flag.
2835         * platform/mac/WebCoreSystemInterface.mm: Ditto.
2836         * rendering/RenderMenuList.cpp:
2837         (RenderMenuList::itemStyle): Pass in true as default appearance when creating
2838         the PopupMenuStyle. We don't need it.
2839         (RenderMenuList::menuStyle): In this case we pass in the negated value of
2840         style().hasAppearance(), which indicates if we are overriding the built-in drawing.
2841         * rendering/RenderSearchField.cpp:
2842         (WebCore::RenderSearchField::menuStyle): Use true as the default value.
2843
2844 2014-05-20  Eric Carlson  <eric.carlson@apple.com>
2845
2846         [Mac] do not deactivate an audio session that has running I/O
2847         https://bugs.webkit.org/show_bug.cgi?id=133127
2848
2849         Reviewed by Jer Noble.
2850
2851         * page/Settings.h:
2852         (WebCore::Settings::setShouldManageAudioSessionCategory): Renamed from setShouldManageAudioSession.
2853         (WebCore::Settings::shouldManageAudioSessionCategory): Renamed from shouldManageAudioSession.
2854         (WebCore::Settings::setShouldManageAudioSession): Deleted.
2855         (WebCore::Settings::shouldManageAudioSession): Deleted.
2856
2857         * platform/audio/mac/MediaSessionManagerMac.cpp:
2858         (MediaSessionManager::updateSessionState): Don't deactivate the session if there are any
2859             Video or Audio sessions.
2860
2861         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2862         (WebCore::MediaPlayerPrivateAVFoundationObjC::assetStatus): Drive-by change to log errors 
2863             returned by -statusOfValueForKey:error: in debug builds.
2864
2865 2014-05-20  Beth Dakin  <bdakin@apple.com>
2866
2867         REGRESSION: All non-mainframe scrollbars don't paint after r169065
2868         https://bugs.webkit.org/show_bug.cgi?id=133132
2869         -and corresponding-
2870         <rdar://problem/16968850>
2871
2872         Reviewed by Geoff Garen.
2873
2874         We should not universally return true here. This feature will only work for 
2875         scrollbars with layers.
2876         * platform/ScrollableArea.h:
2877         * platform/Scrollbar.cpp:
2878         (WebCore::Scrollbar::supportsUpdateOnSecondaryThread):
2879
2880 2014-05-20  Daniel Bates  <dabates@apple.com>
2881
2882         Element within flattened frame may update its scroll state during the layout phase of the wrong RenderView
2883         https://bugs.webkit.org/show_bug.cgi?id=133013
2884         <rdar://problem/16760154>
2885
2886         Reviewed by David Hyatt.
2887
2888         Fixes an issue where the scroll state of an element may be updated during the layout of the wrong
2889         RenderView. In particular, the scroll state of an element inside a CSS flex box in a flattened
2890         frame f is updated during the layout of the RenderView associated with the parent frame of f instead
2891         of during the layout of the RenderView associated with f.
2892
2893         The layout machinery assumes that the scroll state of each scrollable element is updated before the
2894         completion of layout for its associated RenderView. Currently we have logic to defer updating the scroll
2895         state of a scrollable element until completion of recursive layout. For a page with a flattened frame, we
2896         defer such updates until completion of layout for all RenderViews along the ancestor frame hierarchy of
2897         each flattened frame regardless of the RenderView associated with the element that originated the
2898         deferred scroll state request. Instead, only the RenderView associated with the element that deferred its
2899         scroll state update should dispatch the scroll state update.
2900
2901         Tests: fast/frames/flattening/scrollable-flexbox-inside-iframe-with-zero-height-and-needs-full-repaint-crash.html
2902                fast/frames/flattening/scrollable-flexbox-inside-iframe-with-zero-height-assertion-failure.html
2903
2904         * rendering/RenderBlock.cpp: Removed WTF::-prefix in typedef definition for ContinuationOutlineTableMap.
2905         (WebCore::UpdateScrollInfoAfterLayoutTransaction::UpdateScrollInfoAfterLayoutTransaction): Added; a struct
2906         that represents a RenderView v, nested transaction count, and a list of RenderBlocks in v that will need
2907         to have their scroll state updated.
2908         (WebCore::updateScrollInfoAfterLayoutTransactionStack): Added; returns the global stack of transactions.
2909         (WebCore::RenderBlock::willBeDestroyed): Call removeFromUpdateScrollInfoAfterLayoutTransaction(), which
2910         was formerly named as removeFromDelayedUpdateScrollInfoSet.
2911         (WebCore::currentUpdateScrollInfoAfterLayoutTransaction): Added; returns the top-most transaction in the
2912         global stack.
2913         (WebCore::RenderBlock::beginUpdateScrollInfoAfterLayoutTransaction): Modified as appropriate to make use
2914         of the global stack of transactions; formerly named startDelayUpdateScrollInfo.
2915         (WebCore::RenderBlock::endAndCommitUpdateScrollInfoAfterLayoutTransaction): Modified as appropriate to
2916         make use of the global stack of transactions; formerly named finishDelayUpdateScrollInfo.
2917         (WebCore::RenderBlock::removeFromUpdateScrollInfoAfterLayoutTransaction): Modified as appropriate to make
2918         use of the global stack of transactions; formerly named removeFromDelayedUpdateScrollInfoSet.
2919         (WebCore::RenderBlock::updateScrollInfoAfterLayout): Modified as appropriate to make use of the global
2920         stack of transactions.
2921         (WebCore::RenderBlock::layout): Ditto.
2922         (WebCore::RenderBlock::startDelayUpdateScrollInfo): Deleted.
2923         (WebCore::RenderBlock::finishDelayUpdateScrollInfo): Deleted.
2924         (WebCore::RenderBlock::removeFromDelayedUpdateScrollInfoSet): Deleted.
2925         * rendering/RenderBlock.h:
2926         * rendering/RenderBlockFlow.cpp:
2927         (WebCore::RenderBlockFlow::willBeDestroyed): Call removeFromUpdateScrollInfoAfterLayoutTransaction(), which
2928         was formerly named removeFromDelayedUpdateScrollInfoSet.
2929         * rendering/RenderDeprecatedFlexibleBox.cpp:
2930         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox): Call {begin, end}UpdateScrollInfoAfterLayoutTransaction(),
2931         which was formerly named {start, end}DelayUpdateScrollInfo.
2932         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox): Ditto.
2933         * rendering/RenderFlexibleBox.cpp:
2934         (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
2935
2936 2014-05-20  Beth Dakin  <bdakin@apple.com>
2937
2938         REGRESSION (r169065): Mountain Lion run-api-tests failures: ASSERTION FAILED: 
2939         Uncaught exception - -[NSRegularLegacyScrollerImp setPresentationValue:]: 
2940         unrecognized selector sent to instance 0x7ff51aa38000
2941         https://bugs.webkit.org/show_bug.cgi?id=133121
2942
2943         Reviewed by Tim Horton.
2944
2945         * platform/mac/ScrollbarThemeMac.mm:
2946         (WebCore::ScrollbarThemeMac::setPaintCharacteristicsForScrollbar):
2947
2948 2014-05-19  Simon Fraser  <simon.fraser@apple.com>
2949
2950         REGRESSION (r169063) Fixed and sticky nodes misplaced on scrolling sometimes
2951         https://bugs.webkit.org/show_bug.cgi?id=133106
2952         <rdar://problem/16967648>
2953
2954         Reviewed by Sam Weinig.
2955
2956         Fix regression from r169063. That commit removed scrolledContentsLayers from 
2957         frame scrolling nodes, but they do actually use them.
2958         
2959         So put them back; not in the base class, because they have a somewhat different
2960         meaning for overflow scrolling and frame scrolling.
2961
2962         * WebCore.exp.in:
2963         * page/scrolling/AsyncScrollingCoordinator.cpp:
2964         (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
2965         (WebCore::AsyncScrollingCoordinator::updateFrameScrollingNode):
2966         * page/scrolling/AsyncScrollingCoordinator.h:
2967         * page/scrolling/ScrollingCoordinator.h:
2968         (WebCore::ScrollingCoordinator::updateFrameScrollingNode):
2969         * page/scrolling/ScrollingStateFrameScrollingNode.cpp:
2970         (WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
2971         (WebCore::ScrollingStateFrameScrollingNode::setScrolledContentsLayer):
2972         * page/scrolling/ScrollingStateFrameScrollingNode.h:
2973         * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
2974         (WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
2975         * rendering/RenderLayerCompositor.cpp:
2976         (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
2977
2978 2014-05-20  Radu Stavila  <stavila@adobe.com>
2979
2980         REGRESSION: [CSS Regions] Content flowed directly into the flow thread that ends up in the second region is not properly repainted
2981         https://bugs.webkit.org/show_bug.cgi?id=133111
2982
2983         Reviewed by David Hyatt.
2984
2985         When computing the repaint rect of an element flowed into a flow thread, if the element is flowed directly into
2986         the flow thread (meaning its containing block is the flow thread itself), the region's position within the flow
2987         must no longer be taken into consideration, because its already included in the element's |topLeft|.
2988
2989         Test: fast/regions/hover-element-flowed-second-region.html
2990
2991         * rendering/RenderBox.cpp:
2992         (WebCore::RenderBox::computeRectForRepaint):
2993
2994 2014-05-20  Alex Christensen  <achristensen@webkit.org>
2995
2996         Fix web timing assertion failure.
2997         https://bugs.webkit.org/show_bug.cgi?id=133094
2998         <rdar://problem/16966032>
2999
3000         Reviewed by Alexey Proskuryakov.
3001
3002         * platform/network/mac/ResourceHandleMac.mm:
3003         (WebCore::ResourceHandle::getConnectionTimingData):
3004         Set requestStart and responseStart to 0 instead of -1 to match the 
3005         ResourceLoadTiming constructor and prevent the assertion failure in
3006         PerformanceTiming::responseStart.
3007
3008 2014-05-20  Prashant Hiremath  <hiremathprashants@gmail.com>
3009
3010         Only set title on SVG documents
3011         https://bugs.webkit.org/show_bug.cgi?id=133068
3012
3013         Reviewed by Dirk Schulze.
3014
3015         Test: svg/custom/html_document_set_title.html
3016
3017         * svg/SVGTitleElement.cpp:
3018         (WebCore::SVGTitleElement::insertedInto):
3019         (WebCore::SVGTitleElement::removedFrom):
3020         (WebCore::SVGTitleElement::childrenChanged):
3021
3022 2014-05-20  peavo@outlook.com  <peavo@outlook.com>
3023
3024         [Curl] Invalid content in cache file, causes broken rendering.
3025         https://bugs.webkit.org/show_bug.cgi?id=133069
3026
3027         Reviewed by Brent Fulgham.
3028
3029         When data for a url is received as multiple parts, the cache file for the url is truncated when opened for writing,
3030         and will only contain the last part of data received.
3031         This is fixed by only opening the file once, and close it after all data has been received.
3032
3033         * platform/network/curl/CurlCacheEntry.cpp:
3034         (WebCore::CurlCacheEntry::CurlCacheEntry): Initialize cache file handle member.
3035         (WebCore::CurlCacheEntry::~CurlCacheEntry): Close cache file.
3036         (WebCore::CurlCacheEntry::saveCachedData): Only open cache file once to avoid truncating.
3037         (WebCore::CurlCacheEntry::didFail): Close cache file.
3038         (WebCore::CurlCacheEntry::didFinishLoading): Ditto.
3039         (WebCore::CurlCacheEntry::openContentFile): Added method to open cache file.
3040         (WebCore::CurlCacheEntry::closeContentFile): Added method to close cache file.
3041         * platform/network/curl/CurlCacheEntry.h: Added file handle member, and methods to open and close cache file.
3042
3043 2014-05-20  Radu Stavila  <stavila@adobe.com>
3044
3045         [CSS Regions] Block incorrectly sized when containing an unsplittable box
3046         https://bugs.webkit.org/show_bug.cgi?id=132601
3047
3048         Reviewed by Antti Koivisto.
3049
3050         When laying out elements in a region, when an inline element is encountered
3051         the size of its parent must not be increased beyond the bottom of the current region,
3052         unless if its the last region. This will ensure that the next sibling of the
3053         inline element is correctly laid out at the top of the next region, instead
3054         of leaving an empty space equal to the height of the overflow, as it did until now.
3055
3056         Tests: fast/regions/inline-block-inside-anonymous-overflow.html
3057                fast/regions/inline-block-overflow.html
3058
3059         * rendering/RenderBlockFlow.cpp:
3060         (WebCore::RenderBlockFlow::adjustLinePositionForPagination):
3061         (WebCore::RenderBlockFlow::hasNextPage):
3062         * rendering/RenderBlockFlow.h:
3063         * rendering/RenderBlockLineLayout.cpp:
3064         (WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
3065         (WebCore::RenderBlockFlow::linkToEndLineIfNeeded):
3066         (WebCore::RenderBlockFlow::determineStartPosition):
3067         (WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine):
3068
3069 2014-05-20  Mihnea Ovidenie  <mihnea@adobe.com>
3070
3071         [CSS Regions] Crash while painting block selection gaps in regions
3072         https://bugs.webkit.org/show_bug.cgi?id=132720
3073
3074         Reviewed by David Hyatt.
3075
3076         The fix for WebKit bug https://bugs.webkit.org/show_bug.cgi?id=131511
3077         allowed selection highlight to match the DOM selection when the start
3078         and end point of the selection were in different flow threads. In order
3079         to enable that, the selection was performed separately on view and
3080         render flow threads, considered selection subtrees.
3081
3082         However, the start and end points for each selection subtree were computed
3083         by means of Range class but it is not always possible to construct a valid
3084         Range from two pairs of RenderObjects and offsets.
3085
3086         This patch keeps the substrees approach but instead of storing the endpoints
3087         for each subtree in a Range and continuously extending the Range, it stores them
3088         using the already available SelectionSubtreeRoot class. After the end points are
3089         computed for each subtree and before processing the subtree selection, the end points
3090         are adjusted in a similar fashion as the one used in FrameSelection::updateAppearance(),
3091         to make sure we are passing the same expected information to the method implementing
3092         the visible selection processing.
3093
3094         Test: fast/regions/selection-gaps-paint-crash.html
3095
3096         * rendering/RenderView.cpp:
3097         (WebCore::RenderView::splitSelectionBetweenSubtrees):
3098         * rendering/SelectionSubtreeRoot.cpp:
3099         (WebCore::SelectionSubtreeRoot::adjustForVisibleSelection):
3100         * rendering/SelectionSubtreeRoot.h:
3101         (WebCore::SelectionSubtreeRoot::selectionClear):
3102
3103 2014-05-19  Simon Fraser  <simon.fraser@apple.com>
3104
3105         Scrolling pages with large TiledBacking content layers creates way too many tiles
3106         https://bugs.webkit.org/show_bug.cgi?id=133101
3107
3108         Reviewed by Tim Horton.
3109
3110         Fix the GraphicsLayerCA::adjustTiledLayerVisibleRect() logic to avoid making giant rects if the old
3111         and new visible rects don't overlap.
3112
3113         * platform/graphics/TiledBacking.h:
3114         * platform/graphics/ca/GraphicsLayerCA.cpp:
3115         (WebCore::GraphicsLayerCA::adjustTiledLayerVisibleRect):
3116         * platform/graphics/ca/mac/TileController.h:
3117
3118 2014-05-19  Simon Fraser  <simon.fraser@apple.com>
3119
3120         Correctly maintain the "isInWindow" state for all TiledBackings
3121         https://bugs.webkit.org/show_bug.cgi?id=133095
3122
3123         Reviewed by Tim Horton.
3124         
3125         We never updated the "isInWindow" state for TiledBacking that wasn't the RenderView's
3126         backing. Fix it by having RenderLayerCompositor::setIsInWindow() recurse through all
3127         layers (if necessary), updating their state. Also set the state on newly created
3128         TiledBackings.
3129
3130         * rendering/RenderLayerCompositor.cpp:
3131         (WebCore::RenderLayerCompositor::layerTiledBackingUsageChanged):
3132         (WebCore::RenderLayerCompositor::setIsInWindowForLayerIncludingDescendants):
3133         (WebCore::RenderLayerCompositor::setIsInWindow):
3134         (WebCore::RenderLayerCompositor::pageTiledBacking): Deleted.
3135         * rendering/RenderLayerCompositor.h:
3136
3137 2014-05-19  Dean Jackson  <dino@apple.com>
3138
3139         [iOS] Use status display for live streams
3140         https://bugs.webkit.org/show_bug.cgi?id=133097
3141
3142         Reviewed by Sam Weinig.
3143
3144         Follow-on from https://bugs.webkit.org/show_bug.cgi?id=131390
3145         Allow the iOS controls to use the status display field.
3146
3147         * Modules/mediacontrols/mediaControlsiOS.js:
3148         (ControllerIOS.prototype.configureInlineControls): Live streams should
3149         not have a timeline or rewind button.
3150
3151 2014-05-19  Myles C. Maxfield  <litherum@gmail.com>
3152
3153         Text decorations do not contribute to visual overflow
3154         https://bugs.webkit.org/show_bug.cgi?id=132773
3155
3156         Reviewed by Antti Koivisto.
3157
3158         This patch creates a function, visualOverflowForDecorations, which computes
3159         how much visual overflow to add around a text box due to text decorations. Most of the time,
3160         text decorations are fully contained within the text box, so the result is usually 0.
3161
3162         This function exists within style/InlineTextBoxStyle.cpp, which is an added file. This is
3163         so that it can be called from setLogicalWidthForTextRun() inside RenderBlockLineLayout.cpp
3164         and from RenderStyle::changeAffectsVisualOverflow(). The former case passes in the full
3165         InlineTextBox and the latter case just passes in a RenderStyle (because the InlineTextBox
3166         is unavailable.)
3167
3168         This patch also modifies RenderTableSection::spannedColumns() to fix an off-by-one error
3169         that was causing table borders to not be drawn when they existed right on the edge of
3170         a repaint rect.
3171
3172         Tests: fast/css3-text/css3-text-decoration/repaint/underline-outside-of-layout-rect.html
3173         Tests: fast/repaint/border-collapse-table-off-by-one-expected.html
3174
3175         * WebCore.vcxproj/WebCore.vcxproj: Adding reference to new InlineTextBoxStyle.cpp file
3176         * WebCore.vcxproj/WebCore.vcxproj.filters: Adding reference to new InlineTextBoxStyle files
3177         * WebCore.xcodeproj/project.pbxproj: Adding reference to new InlineTextBoxStyle files
3178         * rendering/InlineTextBox.cpp:
3179         (WebCore::computeUnderlineOffset): Moved to InlineTextBox.cpp
3180         (WebCore::getWavyStrokeParameters): Moved to InlineTextBox.cpp
3181         (WebCore::InlineTextBox::paintDecoration): Update to use newly refactored functions
3182         * rendering/RenderBlockLineLayout.cpp:
3183         (WebCore::setLogicalWidthForTextRun): Call visualOverflowForDecorations()
3184         * rendering/RenderTableSection.cpp:
3185         * rendering/RenderTableSelection.cpp: Fix off-by-one error when the boundary of a repaint
3186         rect lies exactly on top of a table column position
3187         * rendering/style/RenderStyle.cpp:
3188         (WebCore::RenderStyle::changeAffectsVisualOverflow): Inspects shadows and text decorations
3189         (WebCore::RenderStyle::changeRequiresLayout): Calls changeAffectsVisualOverflow()
3190         (WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline): Moved code from here
3191         to changeAffectsVisualOverflow().
3192         * rendering/style/RenderStyle.h: Function signature
3193         * style/InlineTextBoxStyle.cpp: Added.
3194         (WebCore::computeUnderlineOffset): Moved from InlineTextBox.cpp
3195         (WebCore::getWavyStrokeParameters): Moved from InlineTextBox.cpp
3196         (WebCore::extendIntToFloat): Convenience function for dealing with the fact that
3197         underline bounding boxes use floats and GlyphOverflow uses ints
3198         (WebCore::visualOverflowForDecorations): Given
3199         vertical overflow bounds, possibly extend those to include location of
3200         decorations.
3201         * style/InlineTextBoxStyle.h: Added. Function signatures.
3202         (WebCore::textDecorationStrokeThickness): Refactored from InlineTextBox.cpp
3203         (WebCore::wavyOffsetFromDecoration): Refactored from InlineTextBox.cpp
3204         * platform/graphics/Font.h:
3205         (WebCore::GlyphOverflow::isEmpty): Convenience function
3206         (WebCore::GlyphOverflow::extendTo): Convenience function
3207
3208 2014-05-19  Alex Christensen  <achristensen@webkit.org>
3209
3210         Unreviewed build fix after r169082
3211
3212         * platform/network/ResourceHandle.h:
3213         Added NSDictionary declaration.
3214
3215 2014-05-19  Beth Dakin  <bdakin@apple.com>
3216
3217         REGRESSION: Standalone images need to take topContentInset into account
3218         https://bugs.webkit.org/show_bug.cgi?id=133092
3219         -and corresponding-
3220         <rdar://problem/16945791>
3221
3222         Reviewed by Darin Adler.
3223
3224         The FrameView’s size is accurate in terms of the NSWindow size, but that is not 
3225         really what the ImageDocument code is looking for here. The ImageDocument wants to 
3226         know the size of the unobscured viewport area. We should use visibleSize() for 
3227         that.
3228         * html/ImageDocument.cpp:
3229         (WebCore::ImageDocument::scale):
3230         (WebCore::ImageDocument::imageFitsInWindow):
3231         (WebCore::ImageDocument::imageClicked):
3232
3233 2014-05-19  Alex Christensen  <achristensen@webkit.org>
3234
3235         Collect web timing data on iOS.
3236         https://bugs.webkit.org/show_bug.cgi?id=133075
3237
3238         Reviewed by Sam Weinig.
3239
3240         * platform/network/ResourceHandle.h:
3241         Added setCollectsTimingData wrapper and getConnectionTimingData declarations.
3242         getConnectionTimingData with a dictionary parameter is a private helper function.
3243         * platform/network/cf/ResourceHandleCFNet.cpp:
3244         (WebCore::ResourceHandle::start):
3245         Call setCollectsTimingData wrapper when creating a connection to ensure that timing data is collected.
3246         * platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
3247         (WebCore::ResourceHandleCFURLConnectionDelegate::didReceiveResponseCallback):
3248         * platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
3249         * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
3250         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
3251         * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
3252         * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
3253         (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
3254         * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
3255         Pass the CFURLConnectionRef to didReceiveResponse to get timing data from.
3256         * platform/network/mac/ResourceHandleMac.mm:
3257         (WebCore::ResourceHandle::getConnectionTimingData):
3258         Moved from getTimingData to compile regardless of using CFNetwork and added wrapper with CFDictionaryRef.
3259         (WebCore::ResourceHandle::setCollectsTimingData):
3260         Added wrapper to call objc function from c++.
3261         (WebCore::ResourceHandle::getTimingData):
3262         Renamed to getConnectionTimingData.
3263         * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
3264         (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
3265         * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
3266         (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
3267         Updated function name from getTimingData to getConnectionTimingData.
3268
3269 2014-05-19  Chris Fleizach  <cfleizach@apple.com>
3270
3271         AX: VoiceOver sees the WebArea out of order when topContentInset is used
3272         https://bugs.webkit.org/show_bug.cgi?id=133091
3273
3274         Reviewed by Simon Fraser.
3275
3276         Modify the scroll view's frame so that it recognizes the content inset.
3277         This is needed so that when VoiceOver sorts elements to create an ordering,
3278         the web area is not ordered at the top of the screen.
3279
3280         Test: platform/mac-wk2/accessibility/content-inset-scrollview-frame.html
3281
3282         * accessibility/AccessibilityScrollView.cpp:
3283         (WebCore::AccessibilityScrollView::elementRect):
3284
3285 2014-05-19  Beth Dakin  <bdakin@apple.com>
3286
3287         Scrollbars display incorrectly after switching between fast and slow scrolling 
3288         mode, affects Find and real sites
3289         https://bugs.webkit.org/show_bug.cgi?id=133077
3290         -and corresponding-
3291         <rdar://problem/16888608>
3292
3293         Reviewed by Tim Horton.
3294
3295         We should always return true here when updating on the secondary thread is 
3296         supported. It does not need to be gated on whether we are actively taking 
3297         advantage of that support at this moment.
3298         * platform/Scrollbar.cpp:
3299         (WebCore::Scrollbar::supportsUpdateOnSecondaryThread):
3300
3301         Always update the presentationValue whenever we update the doubleValue just to 
3302         keep them in sync.
3303         * platform/mac/ScrollbarThemeMac.mm:
3304         (WebCore::ScrollbarThemeMac::setPaintCharacteristicsForScrollbar):
3305
3306 2014-05-19  Simon Fraser  <simon.fraser@apple.com>
3307
3308         Split scrolling tree ScrollingNodes into FrameScrollingNodes and OverflowScrollingNodes
3309         https://bugs.webkit.org/show_bug.cgi?id=133022
3310
3311         Reviewed by Sam Weinig.
3312
3313         In both the scrolling state tree and the scrolling tree, split the "scrolling nodes"
3314         into FrameScrolling and OverflowScrolling nodes.
3315         
3316         Move what was the "viewportSize" property onto the base class for the scrolling
3317         nodes, calling it "scrollableAreaSize".
3318         
3319         Make minimum/maximumScrollPosition() virtual so we can share more code (and there
3320         is more code sharing to be done in future).
3321
3322         * Configurations/WebCore.xcconfig: Remove ScrollingStateScrollingNodeMac.mm and ScrollingTreeScrollingNodeMac.mm
3323         from the list, using #ifdefs in the file instead.
3324         * WebCore.exp.in: Lots of exports.
3325         * WebCore.xcodeproj/project.pbxproj: New files.
3326         * page/scrolling/AsyncScrollingCoordinator.cpp:
3327         (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
3328         (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
3329         (WebCore::AsyncScrollingCoordinator::updateFrameScrollingNode):
3330         (WebCore::AsyncScrollingCoordinator::updateOverflowScrollingNode):
3331         (WebCore::AsyncScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
3332         (WebCore::AsyncScrollingCoordinator::updateScrollingNode): Deleted.
3333         (WebCore::AsyncScrollingCoordinator::setScrollbarPaintersFromScrollbarsForNode): Deleted.
3334         This tiny function didn't need to exist.
3335         * page/scrolling/AsyncScrollingCoordinator.h:
3336         * page/scrolling/ScrollingCoordinator.h:
3337         (WebCore::ScrollingCoordinator::updateFrameScrollingNode):
3338         (WebCore::ScrollingCoordinator::updateOverflowScrollingNode):
3339         (WebCore::ScrollingCoordinator::updateScrollingNode): Deleted.
3340         * page/scrolling/ScrollingStateFrameScrollingNode.cpp: Copied from Source/WebCore/page/scrolling/ScrollingStateScrollingNode.cpp.
3341         (WebCore::ScrollingStateFrameScrollingNode::create):
3342         (WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
3343         (WebCore::ScrollingStateFrameScrollingNode::~ScrollingStateFrameScrollingNode):
3344         (WebCore::ScrollingStateFrameScrollingNode::clone):
3345         (WebCore::ScrollingStateFrameScrollingNode::setFrameScaleFactor):
3346         (WebCore::ScrollingStateFrameScrollingNode::setNonFastScrollableRegion):
3347         (WebCore::ScrollingStateFrameScrollingNode::setWheelEventHandlerCount):
3348         (WebCore::ScrollingStateFrameScrollingNode::setSynchronousScrollingReasons):
3349         (WebCore::ScrollingStateFrameScrollingNode::setScrollBehaviorForFixedElements):
3350         (WebCore::ScrollingStateFrameScrollingNode::setHeaderHeight):
3351         (WebCore::ScrollingStateFrameScrollingNode::setFooterHeight):
3352         (WebCore::ScrollingStateFrameScrollingNode::setTopContentInset):
3353         (WebCore::ScrollingStateFrameScrollingNode::setCounterScrollingLayer):
3354         (WebCore::ScrollingStateFrameScrollingNode::setInsetClipLayer):
3355         (WebCore::ScrollingStateFrameScrollingNode::setContentShadowLayer):
3356         (WebCore::ScrollingStateFrameScrollingNode::setHeaderLayer):
3357         (WebCore::ScrollingStateFrameScrollingNode::setFooterLayer):
3358         (WebCore::ScrollingStateFrameScrollingNode::setScrollbarPaintersFromScrollbars):
3359         (WebCore::ScrollingStateFrameScrollingNode::dumpProperties):
3360         * page/scrolling/ScrollingStateFrameScrollingNode.h: Copied from Source/WebCore/page/scrolling/ScrollingStateScrollingNode.h.
3361         * page/scrolling/ScrollingStateNode.h:
3362         (WebCore::LayerRepresentation::layerID):
3363         (WebCore::ScrollingStateNode::isFrameScrollingNode):
3364         (WebCore::ScrollingStateNode::isOverflowScrollingNode):
3365         * page/scrolling/ScrollingStateOverflowScrollingNode.cpp: Added.
3366         (WebCore::ScrollingStateOverflowScrollingNode::create):
3367         (WebCore::ScrollingStateOverflowScrollingNode::ScrollingStateOverflowScrollingNode):
3368         (WebCore::ScrollingStateOverflowScrollingNode::~ScrollingStateOverflowScrollingNode):
3369         (WebCore::ScrollingStateOverflowScrollingNode::clone):
3370         (WebCore::ScrollingStateOverflowScrollingNode::setScrolledContentsLayer):
3371         (WebCore::ScrollingStateOverflowScrollingNode::dumpProperties):
3372         * page/scrolling/ScrollingStateOverflowScrollingNode.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingStateScrollingNodeMac.mm.
3373         (WebCore::ScrollingStateOverflowScrollingNode::scrolledContentsLayer):
3374         * page/scrolling/ScrollingStateScrollingNode.cpp:
3375         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
3376         (WebCore::ScrollingStateScrollingNode::setScrollableAreaSize):
3377         (WebCore::ScrollingStateScrollingNode::setTotalContentsSize):
3378         (WebCore::ScrollingStateScrollingNode::dumpProperties):
3379         (WebCore::ScrollingStateScrollingNode::create): Deleted.
3380         (WebCore::ScrollingStateScrollingNode::clone): Deleted.
3381         (WebCore::ScrollingStateScrollingNode::setViewportSize): Deleted.
3382         (WebCore::ScrollingStateScrollingNode::setFrameScaleFactor): Deleted.
3383         (WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion): Deleted.
3384         (WebCore::ScrollingStateScrollingNode::setWheelEventHandlerCount): Deleted.
3385         (WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons): Deleted.
3386         (WebCore::ScrollingStateScrollingNode::setScrollBehaviorForFixedElements): Deleted.
3387         (WebCore::ScrollingStateScrollingNode::setHeaderHeight): Deleted.
3388         (WebCore::ScrollingStateScrollingNode::setFooterHeight): Deleted.
3389         (WebCore::ScrollingStateScrollingNode::setTopContentInset): Deleted.
3390         (WebCore::ScrollingStateScrollingNode::setScrolledContentsLayer): Deleted.
3391         (WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer): Deleted.
3392         (WebCore::ScrollingStateScrollingNode::setInsetClipLayer): Deleted.
3393         (WebCore::ScrollingStateScrollingNode::setContentShadowLayer): Deleted.