Fix the iOS build, which no longer needs these calls
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-04-30  Simon Fraser  <simon.fraser@apple.com>
2
3         Fix the iOS build, which no longer needs these calls
4         to enter/exitFullscreen.
5
6         * html/HTMLMediaElement.cpp:
7         (WebCore::HTMLMediaElement::parseAttribute):
8
9 2014-04-30  Simon Fraser  <simon.fraser@apple.com>
10
11         Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO
12         https://bugs.webkit.org/show_bug.cgi?id=132396
13
14         Reviewed by Eric Carlson.
15
16         Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO and related code.
17
18         * Configurations/FeatureDefines.xcconfig:
19         * WebCore.exp.in:
20         * css/StyleResolver.cpp:
21         (WebCore::StyleResolver::canShareStyleWithElement):
22         * dom/DOMImplementation.cpp:
23         (WebCore::DOMImplementation::createDocument):
24         * editing/TextIterator.cpp:
25         (WebCore::isRendererReplacedElement):
26         * html/HTMLMediaElement.cpp:
27         (WebCore::HTMLMediaElement::HTMLMediaElement):
28         (WebCore::HTMLMediaElement::parseAttribute):
29         * html/HTMLMediaElement.h:
30         (WebCore::HTMLMediaElement::setNeedWidgetUpdate): Deleted.
31         * html/HTMLMediaSession.cpp:
32         (WebCore::HTMLMediaSession::showPlaybackTargetPicker):
33         (WebCore::HTMLMediaSession::hasWirelessPlaybackTargets):
34         (WebCore::HTMLMediaSession::setHasPlaybackTargetAvailabilityListeners):
35         * html/HTMLVideoElement.cpp:
36         (WebCore::HTMLVideoElement::createElementRenderer):
37         (WebCore::HTMLVideoElement::didAttachRenderers):
38         (WebCore::HTMLVideoElement::parseAttribute):
39         (WebCore::HTMLVideoElement::setDisplayMode):
40         * html/shadow/MediaControlElements.cpp:
41         (WebCore::MediaControlTextTrackContainerElement::updateSizes):
42         * loader/EmptyClients.cpp:
43         (WebCore::EmptyFrameLoaderClient::createMediaPlayerProxyPlugin): Deleted.
44         * loader/EmptyClients.h:
45         * loader/FrameLoaderClient.h:
46         * loader/SubframeLoader.cpp:
47         (WebCore::SubframeLoader::loadPlugin):
48         (WebCore::SubframeLoader::loadMediaPlayerProxyPlugin): Deleted.
49         * loader/SubframeLoader.h:
50         * page/FrameView.cpp:
51         (WebCore::FrameView::updateEmbeddedObject):
52         * page/Settings.cpp:
53         (WebCore::Settings::setVideoPluginProxyEnabled): Deleted.
54         * page/Settings.h:
55         (WebCore::Settings::isVideoPluginProxyEnabled): Deleted.
56         * platform/graphics/GraphicsLayerClient.h:
57         (WebCore::GraphicsLayerClient::mediaLayerMustBeUpdatedOnMainThread): Deleted.
58         * platform/graphics/MediaPlayer.cpp:
59         (WebCore::installedMediaEngines):
60         (WebCore::MediaPlayer::MediaPlayer):
61         (WebCore::MediaPlayer::loadWithNextMediaEngine):
62         (WebCore::NullMediaPlayerPrivate::deliverNotification): Deleted.
63         (WebCore::NullMediaPlayerPrivate::setMediaPlayerProxy): Deleted.
64         (WebCore::NullMediaPlayerPrivate::setControls): Deleted.
65         (WebCore::MediaPlayer::deliverNotification): Deleted.
66         (WebCore::MediaPlayer::setMediaPlayerProxy): Deleted.
67         (WebCore::MediaPlayer::setControls): Deleted.
68         * platform/graphics/MediaPlayer.h:
69         * platform/graphics/MediaPlayerPrivate.h:
70         (WebCore::MediaPlayerPrivateInterface::deliverNotification): Deleted.
71         (WebCore::MediaPlayerPrivateInterface::setMediaPlayerProxy): Deleted.
72         (WebCore::MediaPlayerPrivateInterface::setControls): Deleted.
73         * platform/graphics/ca/GraphicsLayerCA.cpp:
74         (WebCore::GraphicsLayerCA::updateGeometry):
75         (WebCore::GraphicsLayerCA::updateContentsRects):
76         (WebCore::GraphicsLayerCA::mediaLayerMustBeUpdatedOnMainThread): Deleted.
77         * platform/graphics/ca/GraphicsLayerCA.h:
78         * rendering/RenderEmbeddedObject.cpp:
79         (WebCore::RenderEmbeddedObject::canHaveChildren):
80         * rendering/RenderLayerBacking.cpp:
81         (WebCore::RenderLayerBacking::mediaLayerMustBeUpdatedOnMainThread): Deleted.
82         * rendering/RenderLayerBacking.h:
83         * rendering/RenderLayerCompositor.cpp:
84         (WebCore::RenderLayerCompositor::requiresCompositingForVideo):
85
86 2014-04-30  Simon Fraser  <simon.fraser@apple.com>
87
88         [iOS WK2] Some accerated overflow-scroll doesn't scroll correctly
89         https://bugs.webkit.org/show_bug.cgi?id=132375
90
91         Reviewed by Tim Horton.
92         
93         We set the size of the scrolling layer (which becomes the bounds of
94         the UIScrollView) to a non-pixel-snapped padding box size, but the
95         size of the contents layer is an integral-snapped scroll size.
96         This would result in a fractional difference between the two, which
97         makes us thing that the element is scrollable when it really is not.
98         
99         Fix by setting the size of the scroll layer to pixel snapped client size,
100         which is what we also use for scrollability computation.
101         
102         Added some FIXMEs in code that requires pixel snapping.
103         
104         Also use #if PLATFORM(IOS)/#else to bracket some code that never runs on iOS
105         but tries to do something similar to iOS-only code.
106
107         * rendering/RenderLayerBacking.cpp:
108         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
109
110 2014-04-30  David Hyatt  <hyatt@apple.com>
111
112         REGRESSION (r168046): [New Multicolumn] Painting order is wrong for columns and fixed positioned elements
113         https://bugs.webkit.org/show_bug.cgi?id=132377
114
115         Reviewed by Simon Fraser.
116
117         Added fast/multicol/fixed-stack.html
118
119         * rendering/RenderLayer.cpp:
120         (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
121         (WebCore::RenderLayer::shouldBeNormalFlowOnly):
122         Change the flow thread layer for multicolumn layout to be normal flow only and to
123         stay self-painting. This has the effect of keeping the flow thread layer grouped
124         with the enclosing multicolumn layer, and this keeps the paint order correct when
125         compositing kicks in (or when something would otherwise try to get between the
126         two layers).
127
128 2014-04-30  Eric Carlson  <eric.carlson@apple.com>
129
130         [iOS] do not pause video when entering background while playing to external device
131         https://bugs.webkit.org/show_bug.cgi?id=132374
132
133         Reviewed by Jer Noble.
134
135         * WebCore.exp.in: Update beginInterruption signature.
136
137         * html/HTMLMediaElement.cpp:
138         (WebCore::HTMLMediaElement::canOverrideBackgroundPlaybackRestriction): New, return true when
139             playing to external device.
140         * html/HTMLMediaElement.h:
141
142         * platform/audio/MediaSession.cpp:
143         (WebCore::MediaSession::beginInterruption): Add interruption type to beginInterruption.
144         * platform/audio/MediaSession.h:
145
146         * platform/audio/MediaSessionManager.cpp:
147         (WebCore::MediaSessionManager::beginInterruption): Ditto.
148         (WebCore::MediaSessionManager::applicationWillEnterBackground): Ditto.
149         (WebCore::MediaSessionManager::systemWillSleep): Ditto.
150         * platform/audio/MediaSessionManager.h:
151
152         * platform/audio/ios/AudioDestinationIOS.h:
153         * platform/audio/ios/MediaSessionManagerIOS.mm:
154         (-[WebMediaSessionHelper interruption:]): Ditto.
155
156         * platform/audio/mac/AudioDestinationMac.h: Make most methods private. Add 
157             canOverrideBackgroundPlaybackRestriction. Add missing overrides.
158         * testing/Internals.cpp:
159         (WebCore::Internals::beginMediaSessionInterruption): Pass interruption type.
160
161 2014-04-30  Manuel Rego Casasnovas  <rego@igalia.com>
162
163         Unreviewed, rolling out r167879 and r167942.
164         https://bugs.webkit.org/show_bug.cgi?id=132408
165
166         OrderIterator changes caused regressions in flexbox (Requested
167         by rego on #webkit).
168
169         We're keeping the new layout test introduced in r167942
170         (fast/flexbox/order-iterator-crash.html) to avoid similar
171         regressions in the future.
172
173         Reverted changesets:
174
175         "OrderIterator refactoring to avoid extra loops"
176         https://bugs.webkit.org/show_bug.cgi?id=119061
177         http://trac.webkit.org/changeset/167879
178
179         "REGRESSION (r167879): Heap-use-after-free in
180         WebCore::RenderFlexibleBox"
181         https://bugs.webkit.org/show_bug.cgi?id=132337
182         http://trac.webkit.org/changeset/167942
183
184 2014-04-30  Enrica Casucci  <enrica@apple.com>
185
186         Cursor gets thinner on empty lines.
187         https://bugs.webkit.org/show_bug.cgi?id=132411
188         <rdar://problem/15994556>
189
190         Reviewed by Benjamin Poulain.
191
192         RenderLineBreak::localCaretRect should not define
193         locally the constant caretWidth, but use the one from
194         RenderObject.h which knows about the differences between
195         iOS and the other platforms.
196
197         * rendering/RenderLineBreak.cpp:
198         (WebCore::RenderLineBreak::localCaretRect):
199
200 2014-04-30  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
201
202         [GStreamer] Use GstMetaVideo
203         https://bugs.webkit.org/show_bug.cgi?id=132247
204
205         Reviewed by Philippe Normand.
206
207         In WebKitVideoSink we announce the usage of GstMetaVideo, but we do
208         not use it when handling the video frames. This might break
209         some decoders and filters that rely on buffer's meta, rather
210         that in the caps structures.
211
212         This patch enables the use of GstMetaVideo through the GstVideoFrame
213         API. And it is used everywhere the buffer mapping is required.
214
215         Also this patch changes to nullptr where zeros were used.
216
217         Also, compile conditionally the video buffer conversion when it is
218         ARGB/BGRA, since it is only required for the Cairo backend.
219
220         No new tests, already covered by current tests.
221
222         * platform/graphics/gstreamer/GStreamerUtilities.cpp:
223         (WebCore::getVideoSizeAndFormatFromCaps): init the GstVideoInfo before
224         used and remove caps fixate check since it is done by
225         gst_video_info_from_caps().
226         * platform/graphics/gstreamer/ImageGStreamer.h:
227         * platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
228         (ImageGStreamer::ImageGStreamer): use GstVideoFrame for buffer mapping
229         and unmapping.
230         (ImageGStreamer::~ImageGStreamer): ditto.
231         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
232         (WebCore::MediaPlayerPrivateGStreamerBase::updateTexture): ditto.
233         (WebCore::MediaPlayerPrivateGStreamerBase::currentVideoSinkCaps):
234         return nullptr if failed.
235         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
236         (webkitVideoSinkRender): rely on GstVideoInfo rather than on the
237         caps. Use GstVideoFrame for buffer mapping and unmapping. Add guards
238         for buffer transformation, since it's only used by Cairo.
239         (webkitVideoSinkDispose): remove glib version guards.
240         (webkitVideoSinkSetCaps): update the value of the private
241         GstVideoInfo.
242
243 2014-04-30  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
244
245         [GTK][GStreamer] Remove unnecessary GLIB_CHECK_VERSION #ifdefs
246         https://bugs.webkit.org/show_bug.cgi?id=132390
247
248         Reviewed by Philippe Normand.
249
250         Since EFL port use GLib 2.38 and GTK+, 2.33.2, I assume it is OK
251         remove, in GTK+ and GST, the existing glib version guards.
252
253         No new tests, already covered by current tests.
254
255         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
256         (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
257         (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
258         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
259         (webkitVideoSinkDispose):
260         (webkitVideoSinkFinalize): Deleted.
261
262 2014-04-30  Alex Christensen  <achristensen@webkit.org>
263
264         Updated ANGLE.
265         https://bugs.webkit.org/show_bug.cgi?id=132367
266         <rdar://problem/16211451>
267
268         Reviewed by Dean Jackson.
269
270         * CMakeLists.txt
271         Fixed ANGLE compiling with the update.
272         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
273         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
274         Removed SH_MAP_LONG_VARIABLE_NAMES which is no longer defined in ANGLE.
275         See https://chromium.googlesource.com/angle/angle/+/3cdfcce86b38ef31a0afd71855887193a7924468
276         * platform/graphics/opengl/Extensions3DOpenGLES.h:
277         * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
278         Updated type names from ANGLE.
279
280 2014-04-30  Alexey Proskuryakov  <ap@apple.com>
281
282         Move Blob.slice() implementation into BlobRegistryImpl
283         https://bugs.webkit.org/show_bug.cgi?id=132402
284
285         Reviewed by Anders Carlsson.
286
287         Part or centralizing the responsibility for file size tracking.
288
289         * fileapi/Blob.cpp:
290         (WebCore::Blob::Blob):
291         (WebCore::Blob::slice): Deleted.
292         * fileapi/Blob.h:
293         (WebCore::Blob::slice):
294         * fileapi/ThreadableBlobRegistry.cpp:
295         (WebCore::ThreadableBlobRegistry::registerBlobURL):
296         (WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):
297         (WebCore::registerBlobURLTask): Deleted.
298         (WebCore::registerBlobURLFromTask): Deleted.
299         * fileapi/ThreadableBlobRegistry.h:
300         * platform/network/BlobRegistry.h:
301         * platform/network/BlobRegistryImpl.cpp:
302         (WebCore::BlobRegistryImpl::appendStorageItems):
303         (WebCore::BlobRegistryImpl::registerBlobURLForSlice):
304         (WebCore::BlobRegistryImpl::blobSize):
305         * platform/network/BlobRegistryImpl.h:
306
307 2014-04-30  Brent Fulgham  <bfulgham@apple.com>
308
309         Unreviewed build fix after r168041.
310
311         * WebCore.exp.in: Add missing iOS exports.
312
313 2014-04-30  Beth Dakin  <bdakin@apple.com>
314
315         Always-visible scrollbars continuously repaint after non-momentum scrollling
316         https://bugs.webkit.org/show_bug.cgi?id=132403
317         -and corresponding-
318         <rdar://problem/16553878>
319
320         Reviewed by Simon Fraser.
321
322         No longer universally opt into presentation value mode whenever the scroll 
323         position changes on the scrolling thread. We really only want it for momentum 
324         scrolls, and this will ensure that we always set it to NO once we have set it to 
325         YES.
326         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
327         (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
328         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
329
330         Expose shouldUsePresentationValue.
331         * platform/mac/NSScrollerImpDetails.h:
332
333 2014-04-30  Anders Carlsson  <andersca@apple.com>
334
335         Move the legacy WebKit API into WebKitLegacy.framework and move it inside WebKit.framework
336         https://bugs.webkit.org/show_bug.cgi?id=132399
337         <rdar://problem/15920046>
338
339         Reviewed by Dan Bernstein.
340
341         Allow WebKitLegacy to link against WebCore.
342
343         * Configurations/WebCore.xcconfig:
344
345 2014-04-30  David Hyatt  <hyatt@apple.com>
346
347         [New Multicolumn] ASSERTs in fast/dynamic/continuation-detach-crash.html
348         https://bugs.webkit.org/show_bug.cgi?id=132392
349
350         Reviewed by Dean Jackson.
351
352         * rendering/RenderFlowThread.cpp:
353         (WebCore::RenderFlowThread::setRegionRangeForBox):
354         Add ASSERTs in case we ever try to set regions from the wrong flow thread
355         as part of the box's region range.
356
357         * rendering/RenderMultiColumnFlowThread.cpp:
358         (WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
359         Add a bunch of code that handles the discovery of a span from an outer flow thread
360         being inserted into an inner flow thread. This forces us to delete that placeholder
361         and shift the outer spanning content into the inner flow thread in order to get a new
362         mapping/placeholder created in the inner flow thread.
363
364         (WebCore::RenderMultiColumnFlowThread::flowThreadRelativeWillBeRemoved):
365         Tighten this code to use the parent() just in case we change the invariant of
366         parent = containingBlock later.
367
368         * rendering/RenderMultiColumnFlowThread.h:
369         Add a static guard when shifting a spanner to prevent the outer flow thread from
370         thinking the spanner belongs to it when it gets punted out of the inner flow thread.
371         A better long-term solution might be to make the spanner map global instead of
372         per-flow thread.
373
374         * rendering/RenderMultiColumnSpannerPlaceholder.cpp:
375         (WebCore::RenderMultiColumnSpannerPlaceholder::RenderMultiColumnSpannerPlaceholder):
376         * rendering/RenderMultiColumnSpannerPlaceholder.h:
377         Cache the flow thread so that we can get back to it in order to detect if the
378         placeholder belongs to us or not.
379
380         * rendering/RenderObject.cpp:
381         (WebCore::RenderObject::insertedIntoTree):
382         Notifications from insertedIntoTree are problematic, since this can be called during
383         the layout of the outer flow thread for content inside an inner flow thread that is
384         not getting a layout yet. This makes the currentFlowThread in the flow thread controller
385         inaccurate, so we have to add code to clear it out and put it back.
386
387 2014-04-29  Chris Fleizach  <cfleizach@apple.com>
388
389         AX: Make "contenteditable" regions into AXTextAreas
390         https://bugs.webkit.org/show_bug.cgi?id=132379
391
392         Reviewed by Mario Sanchez Prada.
393
394         Make contenteditable regions into AXTextAreas. This will allow for a more standardized
395         interface for interaction with assistive technologies.
396
397         Test: accessibility/content-editable-as-textarea.html
398
399         * accessibility/AccessibilityNodeObject.cpp:
400         (WebCore::AccessibilityNodeObject::hasContentEditableAttributeSet):
401         * accessibility/AccessibilityObject.cpp:
402         (WebCore::AccessibilityObject::contentEditableAttributeIsEnabled):
403         * accessibility/AccessibilityObject.h:
404         * accessibility/AccessibilityRenderObject.cpp:
405         (WebCore::AccessibilityRenderObject::documentBasedSelectedTextRange):
406         (WebCore::AccessibilityRenderObject::selectedText):
407         (WebCore::AccessibilityRenderObject::selectedTextRange):
408         (WebCore::AccessibilityRenderObject::renderObjectIsObservable):
409         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
410         (WebCore::AccessibilityRenderObject::ariaSelectedTextRange): Deleted.
411         * accessibility/AccessibilityRenderObject.h:
412
413 2014-04-30  Brian J. Burg  <burg@cs.washington.edu>
414
415         Clean up unnecessary methods in the BackForwardClient interface
416         https://bugs.webkit.org/show_bug.cgi?id=131637
417
418         Reviewed by Andreas Kling.
419
420         Demote back/current/forwardItem and iOS-specific methods from the
421         BackForwardClient interface. Convert the class to not be refcounted.
422
423         No new tests, no behavior was changed.
424
425         * WebCore.exp.in:
426         * history/BackForwardClient.h:
427         (WebCore::BackForwardClient::~BackForwardClient): Deleted.
428         (WebCore::BackForwardClient::backItem): Deleted.
429         (WebCore::BackForwardClient::currentItem): Deleted.
430         (WebCore::BackForwardClient::forwardItem): Deleted.
431         * history/BackForwardController.cpp:
432         (WebCore::BackForwardController::BackForwardController):
433         * history/BackForwardController.h: Take ownership of the passed BackForwardClient.
434         (WebCore::BackForwardController::client): Return a reference.
435         * history/BackForwardList.h: Remove the Page field, since it isn't used any more.
436         (WebCore::BackForwardList::create): Deleted.
437         * page/Page.h: Remove RefPtr from PageClient.
438         * page/Page.cpp:
439         (WebCore::PageClients::PageClients): Initialize client to nullptr.
440
441 2014-04-30  Brent Fulgham  <bfulgham@apple.com>
442
443         [Mac, iOS] Support caption activation via JS webkitHasClosedCaptions method
444         https://bugs.webkit.org/show_bug.cgi?id=132320
445
446         Reviewed by Eric Carlson.
447
448         * Modules/mediacontrols/mediaControlsApple.css:
449         (video::-webkit-media-text-track-container .hidden): Added.
450         * html/HTMLMediaElement.cpp:
451         (WebCore::HTMLMediaElement::configureTextTrackGroup): Added call to
452         new 'updateCaptionsContainer'.
453         (WebCore::HTMLMediaElement::updateCaptionContainer): Added.
454         * html/HTMLMediaElement.h:
455
456 2014-04-30  Alexey Proskuryakov  <ap@apple.com>
457
458         https://bugs.webkit.org/show_bug.cgi?id=132363
459         Make Blob RawData immutable
460
461         Reviewed by Anders Carlsson.
462
463         * Modules/websockets/WebSocket.cpp: (WebCore::WebSocket::didReceiveBinaryData):
464         Create RawData in one step.
465
466         * WebCore.exp.in: Don't export a constructor that we no longer have (and the new one is inline).
467
468         * fileapi/Blob.cpp: Removed entirely dead code.
469
470         * fileapi/WebKitBlobBuilder.cpp:
471         * fileapi/WebKitBlobBuilder.h:
472         Updated to collect data in a plain Vector, so that we don't have to modify RawData.
473         Removed FIXMEs about renaming - there used to be a BlobBuilder exposed to JS, but
474         now this is just a helper to implement JS Blob constructor. We should probably
475         still rename it, but not how the FIXME suggested.
476
477         * platform/network/BlobData.cpp:
478         (WebCore::BlobDataItem::detachFromCurrentThread): RawData::detachFromCurrentThread()
479         was a no-op.
480         (WebCore::BlobDataHandle::BlobDataHandle): Deleted. This was entirely dead code.
481         (WebCore::BlobDataHandle::~BlobDataHandle): Ditto.
482
483         * platform/network/BlobData.h: Made RawData immutable.
484
485         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseBlob):
486         Create RawData in one step.
487
488 2014-04-30  David Hyatt  <hyatt@apple.com>
489
490         [New Multicolumn] Region offset not factored in when mapping to local coords
491         https://bugs.webkit.org/show_bug.cgi?id=132383
492
493         Reviewed by Anders Carlsson.
494
495         Make sure to cache the offset of the multicolumn set from its parent and then
496         add that in to the translation offset.
497
498         * rendering/RenderMultiColumnFlowThread.cpp:
499         (WebCore::RenderMultiColumnFlowThread::mapAbsoluteToLocalPoint):
500
501 2014-04-30  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
502
503         Move removeEquivalentProperties functions to EditingStyle
504         https://bugs.webkit.org/show_bug.cgi?id=131093
505
506         Reviewed by Csaba Osztrogonác.
507
508         A follow-up to r167967. Use single line declaration for template methods.
509
510         * editing/EditingStyle.h:
511
512 2014-04-30  Manuel Rego Casasnovas  <rego@igalia.com>
513
514         [CSS Grid Layout] Enable runtime feature by default
515         https://bugs.webkit.org/show_bug.cgi?id=132189
516
517         Reviewed by Benjamin Poulain.
518
519         * page/Settings.in: Set cssGridLayoutEnabled to true.
520
521 2014-04-30  Manuel Rego Casasnovas  <rego@igalia.com>
522
523         [CSS Grid Layout] Wrap some specific grid code under compilation flag
524         https://bugs.webkit.org/show_bug.cgi?id=132341
525
526         Reviewed by Benjamin Poulain.
527
528         Some static variables in RenderBox are only used for CSS Grid Layout code. Wrap them and the related methods
529         under ENABLE_CSS_GRID_LAYOUT compilation flag.
530
531         * rendering/RenderBox.cpp:
532         (WebCore::RenderBox::willBeDestroyed):
533         (WebCore::RenderBox::containingBlockLogicalWidthForContent):
534         (WebCore::RenderBox::containingBlockLogicalHeightForContent):
535         (WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
536         (WebCore::RenderBox::computePercentageLogicalHeight):
537         * rendering/RenderBox.h:
538
539 2014-04-29  Commit Queue  <commit-queue@webkit.org>
540
541         Unreviewed, rolling out r167962 and r167975.
542         https://bugs.webkit.org/show_bug.cgi?id=132376
543
544         Mysteriously broke many tests (Requested by ap on #webkit).
545
546         Reverted changesets:
547
548         "[Mac, iOS] Support caption activation via JS
549         webkitHasClosedCaptions method"
550         https://bugs.webkit.org/show_bug.cgi?id=132320
551         http://trac.webkit.org/changeset/167962
552
553         "Unreviewed test fix after r167962."
554         http://trac.webkit.org/changeset/167975
555
556 2014-04-29  David Hyatt  <hyatt@apple.com>
557
558         [New Multicolumn] Multiple tests assert in RenderGeometryMap
559         https://bugs.webkit.org/show_bug.cgi?id=132285
560
561         Reviewed by Simon Fraser.
562
563         Implement offsetFromContainer for RenderMultiColumnFlowThread so that the
564         geometry map gets the right offsets. This is really only relevant for the 
565         geometry map, since I already overrode mapAbsoluteToLocalPoint and multicolumn
566         flow threads are repaint containers (so mapLocalToAbsolute never needs offsetFromContainer).
567
568         * rendering/RenderMultiColumnFlowThread.cpp:
569         (WebCore::RenderMultiColumnFlowThread::offsetFromContainer):
570         * rendering/RenderMultiColumnFlowThread.h:
571
572 2014-04-29  Benjamin Poulain  <bpoulain@apple.com>
573
574         [iOS][WK2] When pageScaleFactor * deviceScaleFactor = 1, the tile grid is completely messed up
575         https://bugs.webkit.org/show_bug.cgi?id=132368
576
577         Reviewed by Simon Fraser.
578
579         * platform/graphics/ca/mac/TileController.mm:
580         (WebCore::TileController::TileController):
581         The initial device scale factor was initialized to 1. We were returning the wrong zoomedOutContentsScale() and
582         contentsScale() on retina devices until the next successful scale update.
583
584 2014-04-29  Alexey Proskuryakov  <ap@apple.com>
585
586         Remove an unused override of BlobRegistryImpl::appendStorageItems
587         https://bugs.webkit.org/show_bug.cgi?id=132365
588
589         Reviewed by Andreas Kling.
590
591         * platform/network/BlobRegistryImpl.cpp:
592         (WebCore::BlobRegistryImpl::appendStorageItems): Deleted.
593         * platform/network/BlobRegistryImpl.h:
594
595 2014-04-29  Eric Carlson  <eric.carlson@apple.com>
596
597         [Mac] tag the video layers with descriptive name to aid debugging
598         https://bugs.webkit.org/show_bug.cgi?id=132371
599
600         Reviewed by Darin Adler.
601
602         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
603         (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Set the AVPlayerLayer
604             name in a debug build.
605
606 2014-04-29  Nikos Andronikos  <nikos.andronikos-webkit@cisra.canon.com.au>
607
608         [GTK][cmake] CMake variable (non)expansion causing 'File name too long' build error.
609         https://bugs.webkit.org/show_bug.cgi?id=132244
610
611         Reviewed by Martin Robinson.
612
613         Removing quotes around include directory variable ${WebCore_INCLUDE_DIRECTORIES} in
614         the include_directories cmake macro enables the variable to be expanded correctly.
615
616         No tests created as this fixes a platform specific build issue.
617
618         * PlatformGTK.cmake:
619
620 2014-04-29  Brent Fulgham  <bfulgham@apple.com>
621
622         Unreviewed test fix after r167962.
623         * Modules/mediacontrols/mediaControlsApple.css:
624         (.hidden): Use common '.hidden' class for controls.
625         (video::-webkit-media-text-track-container .hidden): Deleted.
626
627 2014-04-29  Brady Eidson  <beidson@apple.com>
628
629         Handle selection services menu.
630         <rdar://problem/16727798> and https://bugs.webkit.org/show_bug.cgi?id=132362
631
632         Reviewed by Tim Horton.
633
634         * WebCore.exp.in:
635
636 2014-04-29  Myles C. Maxfield  <mmaxfield@apple.com>
637
638         Removing unused argument in InlineFlowBox::placeBoxesInInlineDirection()
639         https://bugs.webkit.org/show_bug.cgi?id=132369
640
641         Reviewed by Darin Adler.
642
643         This was not caught by our compiler because placeBoxesInInlineDirection()
644         is mutually-recursive with placeBoxRangeInInlineDirection().
645
646         No new tests are necessary because there should be no behavior change.
647
648         * rendering/InlineFlowBox.cpp:
649         (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
650         (WebCore::InlineFlowBox::placeBoxRangeInInlineDirection):
651         * rendering/InlineFlowBox.h:
652         * rendering/RenderBlockLineLayout.cpp:
653         (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine):
654
655 2014-04-29  Alex Christensen  <achristensen@webkit.org>
656
657         [WinCairo] Switch video from GStreamer to Media Foundation.
658         https://bugs.webkit.org/show_bug.cgi?id=132358
659
660         Reviewed by Brent Fulgham.
661
662         * WebCore.vcxproj/WebCore.vcxproj:
663         Removed dependencies on GStreamer.
664
665 2014-04-29  Simon Fraser  <simon.fraser@apple.com>
666
667         Remove some PLATFORM(IOS) #ifdefs related to hasAcceleratedTouchScrolling()
668         https://bugs.webkit.org/show_bug.cgi?id=132353
669
670         Reviewed by Tim Horton & Darin Adler.
671
672         Minor cleanup and refactoring to remove #idefs.
673
674         * rendering/RenderLayer.cpp:
675         (WebCore::RenderLayer::scrollTo): No need for this #ifdef, usesCompositedScrolling()
676         gives the right answser already.
677         (WebCore::RenderLayer::visibleContentRectInternal): Use showsOverflowControls() to
678         avoid #ifdef.
679         (WebCore::RenderLayer::invalidateScrollbarRect): Ditto.
680         (WebCore::RenderLayer::invalidateScrollCornerRect): Ditto.
681         (WebCore::RenderLayer::verticalScrollbarWidth): Ditto.
682         (WebCore::RenderLayer::horizontalScrollbarHeight): Ditto.
683         (WebCore::RenderLayer::showsOverflowControls): Return false on iOS.
684         (WebCore::RenderLayer::paintOverflowControls): Ditto.
685         (WebCore::RenderLayer::calculateClipRects): Ditto.
686         * rendering/RenderLayer.h:
687         * rendering/RenderLayerBacking.cpp:
688         (WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
689         Just #ifdef in side of this function rather than having two similar functions.
690         (WebCore::RenderLayerBacking::shouldClipCompositedBounds):
691         (WebCore::hasNonZeroTransformOrigin):
692         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Use a local bool
693         to reduce #ifdefs.
694         (WebCore::layerOrAncestorIsTransformedOrScrolling): Deleted.
695
696 2014-04-29  Simon Fraser  <simon.fraser@apple.com>
697
698         Remove Settings::compositedScrollingForFramesEnabled
699         https://bugs.webkit.org/show_bug.cgi?id=132352
700
701         Reviewed by Andreas Kling.
702
703         The usesCompositedScrolling setting was only used by Chromium, so
704         remove it and associated code.
705
706         * page/FrameView.cpp:
707         (WebCore::FrameView::usesCompositedScrolling): Deleted.
708         * page/FrameView.h:
709         * page/Settings.in:
710         * rendering/RenderLayerCompositor.cpp:
711         (WebCore::RenderLayerCompositor::updateScrollLayerPosition):
712
713 2014-04-29  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
714
715         Move removeEquivalentProperties functions to EditingStyle
716         https://bugs.webkit.org/show_bug.cgi?id=131093
717
718         Reviewed by Darin Adler.
719
720         Moved the removeEquivalentProperties functions
721         from StyleProperties to EditingStyle class.
722
723         * css/StyleProperties.cpp:
724         (WebCore::MutableStyleProperties::removeEquivalentProperties): Deleted.
725         * css/StyleProperties.h:
726         * editing/EditingStyle.cpp:
727         (WebCore::EditingStyle::removeStyleAddedByNode):
728         (WebCore::EditingStyle::removeStyleConflictingWithStyleOfNode):
729         (WebCore::EditingStyle::prepareToApplyAt):
730         (WebCore::EditingStyle::removeEquivalentProperties):
731         (WebCore::extractPropertiesNotIn):
732         * editing/EditingStyle.h:
733
734 2014-04-29  David Hyatt  <hyatt@apple.com>
735
736         [New Multicolumn] Implement support for compositing
737         https://bugs.webkit.org/show_bug.cgi?id=132298
738
739         Reviewed by Simon Fraser.
740
741         * rendering/RenderLayer.cpp:
742         (WebCore::accumulateOffsetTowardsAncestor):
743         Add in a case for the new columns that calls into the multi-column flow thread
744         to get an offset to adjust by.
745
746         * rendering/RenderLayerBacking.cpp:
747         (WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread):
748         Make sure this code only runs for named flow threads.
749
750         * rendering/RenderLayerCompositor.cpp:
751         (WebCore::RenderLayerCompositor::canBeComposited):
752         Turn on compositing support for in-flow RenderFlowThreads instead of always returning
753         false
754
755         * rendering/RenderMultiColumnFlowThread.cpp:
756         (WebCore::RenderMultiColumnFlowThread::physicalTranslationOffsetFromFlowToRegion):
757         Changed this function to fix a couple of bugs exposed by compositing/columns tests. Its
758         end goal is the same, but the approach is improved.
759
760         * rendering/RenderMultiColumnSet.cpp:
761         (WebCore::RenderMultiColumnSet::endFlow):
762         Don't pad out to a multiple of column height. You can't flip around a flow thread
763         to get back to accurate physical coordinates if bogus padding is introduced. This
764         seemed to have no effect on any layout tests when removed, so I don't think it 
765         was really serving any useful purpose.
766
767         (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
768         Don't factor in the overall flow thread portion, since this is handled by the callers
769         now.
770
771         (WebCore::RenderMultiColumnSet::adjustRegionBoundsFromFlowThreadPortionRect):
772         * rendering/RenderMultiColumnSet.h:
773         Change this function to be ASSERT_NOT_REACHED(), since we want to know if someone calls
774         it. It only runs for named flow thread compositing code, so it would be a mistake if
775         this ever gets invoked.
776
777 2014-04-29  Mark Hahnenberg  <mhahnenberg@apple.com>
778
779         JSProxies should be cacheable
780         https://bugs.webkit.org/show_bug.cgi?id=132351
781
782         Reviewed by Geoffrey Garen.
783
784         No new tests.
785
786         Whenever we encounter a proxy in an inline cache we should try to cache on the 
787         proxy's target instead of giving up.
788
789         This patch adds support for a simple "recursive" inline cache if the base object
790         we're accessing is a pure forwarding proxy. JSGlobalObject and its subclasses 
791         are the only ones to benefit from this right now.
792
793         This is performance neutral on the benchmarks we track. Currently we won't
794         cache on JSDOMWindow due to HasImpureGetOwnPropertySlot, but this issue will be fixed soon.
795
796         * bindings/js/JSDOMWindowShell.h:
797         (WebCore::JSDOMWindowShell::createStructure):
798
799 2014-04-29  Brent Fulgham  <bfulgham@apple.com>
800
801         [Mac, iOS] Support caption activation via JS webkitHasClosedCaptions method
802         https://bugs.webkit.org/show_bug.cgi?id=132320
803
804         Reviewed by Eric Carlson.
805
806         * Modules/mediacontrols/mediaControlsApple.css:
807         (video::-webkit-media-text-track-container .hidden): Added.
808         * html/HTMLMediaElement.cpp:
809         (WebCore::HTMLMediaElement::configureTextTrackGroup): Added call to
810         new 'updateCaptionsContainer'.
811         (WebCore::HTMLMediaElement::updateCaptionContainer): Added.
812         * html/HTMLMediaElement.h:
813         * html/shadow/MediaControlElements.cpp:
814         (WebCore::MediaControlTextTrackContainerElement::hide): Use CSS class .hidden instead of
815         hard-coded "display:none".
816         (WebCore::MediaControlTextTrackContainerElement::show): Ditto.
817         * html/shadow/MediaControlElements.h:
818
819 2014-04-28  Roger Fong  <roger_fong@apple.com>
820
821         Plugins hidden by images should autoplay.
822         https://bugs.webkit.org/show_bug.cgi?id=132222.
823         <rdar://problem/16653536>
824
825         Reviewed by Jon Lee and Darin Adler.
826
827         * WebCore.exp.in: Add exports needed by WK2.
828
829 2014-04-29  Filip Pizlo  <fpizlo@apple.com>
830
831         Use LLVM as a backend for the fourth-tier DFG JIT (a.k.a. the FTL JIT)
832         https://bugs.webkit.org/show_bug.cgi?id=112840
833
834         Rubber stamped by Geoffrey Garen.
835
836         It already has a lot of tests.
837
838         * Configurations/FeatureDefines.xcconfig:
839
840 2014-04-29  Brady Eidson  <beidson@apple.com>
841
842         Change Image Controls replacement to use selection and paste
843         <rdar://problem/16302722> and https://bugs.webkit.org/show_bug.cgi?id=131992
844
845         Reviewed by Tim Horton.
846
847         * WebCore.exp.in: Remove deleted symbol.
848
849         * html/shadow/mac/ImageControlsButtonElementMac.cpp:
850         (WebCore::ImageControlsButtonElementMac::defaultEventHandler):
851
852         * page/ContextMenuController.cpp:
853         (WebCore::ContextMenuController::showImageControlsMenu): Select the image element
854           before showing the menu.
855         (WebCore::ContextMenuController::replaceControlledImage): Deleted.
856         * page/ContextMenuController.h:
857
858 2014-04-29  Jer Noble  <jer.noble@apple.com>
859
860         [iOS] Remove workaround for <rdar://problem/16578727>.
861         https://bugs.webkit.org/show_bug.cgi?id=132338
862
863         Reviewed by Darin Adler.
864
865         Now that <rdar://problem/16578727> is fixed, remove the workaround by replacing the
866         call to -_updatePlaybackControlsViewController with one to -layoutIfNeeded.
867
868         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
869         (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
870
871 2014-04-29  Zan Dobersek  <zdobersek@igalia.com>
872
873         ScriptExecutionContext::Task should work well with C++11 lambdas
874         https://bugs.webkit.org/show_bug.cgi?id=129795
875
876         Reviewed by Darin Adler.
877
878         Instead of having classes that subclass ScriptExecutionContext::Task and override
879         the performTask(ScriptExecutionContext*) method, have the ScriptExecutionContext::Task
880         take in a std::function<void (ScriptExecutionContext*)>-like object trough the constructor
881         which would contain the code currently kept in the performTask() methods.
882
883         This enables inlining C++11 lambdas into ScriptExecutionContext::postTask() calls. For
884         cleanup tasks, the Task object can be implicitly constructed by using the initializer list
885         constructor with the first argument being the ScriptExecutionContext::Task::CleanupTask tag.
886         The ScriptExecutionContext class remains non-copyable and now stores the passed-in invokable
887         object in the std::function wrapper, along with a boolean member that indicates whether the
888         task is of cleanup nature.
889
890         * Modules/quota/StorageErrorCallback.cpp:
891         (WebCore::StorageErrorCallback::CallbackTask::CallbackTask):
892         (WebCore::StorageErrorCallback::CallbackTask::performTask): Deleted.
893         * Modules/quota/StorageErrorCallback.h:
894         (WebCore::StorageErrorCallback::CallbackTask::create): Deleted.
895         * Modules/webdatabase/Database.cpp:
896         (WebCore::Database::~Database):
897         (WebCore::Database::runTransaction):
898         (WebCore::Database::scheduleTransactionCallback):
899         (WebCore::DerefContextTask::create): Deleted.
900         (WebCore::DerefContextTask::performTask): Deleted.
901         (WebCore::DerefContextTask::isCleanupTask): Deleted.
902         (WebCore::DerefContextTask::DerefContextTask): Deleted.
903         (WebCore::callTransactionErrorCallback): Deleted.
904         (WebCore::DeliverPendingCallbackTask::create): Deleted.
905         (WebCore::DeliverPendingCallbackTask::performTask): Deleted.
906         (WebCore::DeliverPendingCallbackTask::DeliverPendingCallbackTask): Deleted.
907         * Modules/webdatabase/DatabaseManager.cpp:
908         (WebCore::DatabaseManager::openDatabase):
909         (WebCore::DatabaseCreationCallbackTask::create): Deleted.
910         (WebCore::DatabaseCreationCallbackTask::performTask): Deleted.
911         (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask): Deleted.
912         * Modules/webdatabase/DatabaseSync.cpp:
913         (WebCore::CloseSyncDatabaseOnContextThreadTask::create): Deleted.
914         (WebCore::CloseSyncDatabaseOnContextThreadTask::performTask): Deleted.
915         (WebCore::CloseSyncDatabaseOnContextThreadTask::CloseSyncDatabaseOnContextThreadTask): Deleted.
916         * Modules/webdatabase/SQLCallbackWrapper.h:
917         (WebCore::SQLCallbackWrapper::clear):
918         (WebCore::SQLCallbackWrapper::SafeReleaseTask::create): Deleted.
919         (WebCore::SQLCallbackWrapper::SafeReleaseTask::performTask): Deleted.
920         (WebCore::SQLCallbackWrapper::SafeReleaseTask::isCleanupTask): Deleted.
921         (WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask): Deleted.
922         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
923         (WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
924         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
925         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
926         (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
927         (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
928         (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
929         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
930         (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
931         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
932         * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
933         (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
934         (WebCore::WorkerThreadableWebSocketChannel::mainThreadDestroy):
935         (WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
936         (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::create): Deleted.
937         (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::~WorkerGlobalScopeDidInitializeTask): Deleted.
938         (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::WorkerGlobalScopeDidInitializeTask): Deleted.
939         * Modules/websockets/WorkerThreadableWebSocketChannel.h:
940         * bindings/js/JSCallbackData.h:
941         (WebCore::DeleteCallbackDataTask::DeleteCallbackDataTask):
942         (WebCore::DeleteCallbackDataTask::create): Deleted.
943         (WebCore::DeleteCallbackDataTask::performTask): Deleted.
944         (WebCore::DeleteCallbackDataTask::isCleanupTask): Deleted.
945         * bindings/js/JSDOMGlobalObjectTask.cpp:
946         (WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
947         (WebCore::JSGlobalObjectTask::~JSGlobalObjectTask): Deleted.
948         (WebCore::JSGlobalObjectTask::performTask): Deleted.
949         * bindings/js/JSDOMGlobalObjectTask.h:
950         * bindings/js/JSDOMWindowBase.cpp:
951         (WebCore::JSDOMWindowBase::queueTaskToEventLoop):
952         * bindings/js/JSWorkerGlobalScopeBase.cpp:
953         (WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):
954         * bindings/scripts/CodeGeneratorJS.pm:
955         * bindings/scripts/test/JS/JSTestCallback.cpp:
956         (WebCore::JSTestCallback::~JSTestCallback):
957         (GenerateCallbackImplementation):
958         * dom/CrossThreadTask.h:
959         (WebCore::CrossThreadTask1::performTask):
960         (WebCore::CrossThreadTask2::performTask):
961         (WebCore::CrossThreadTask3::performTask):
962         (WebCore::CrossThreadTask4::performTask):
963         (WebCore::CrossThreadTask5::performTask):
964         (WebCore::CrossThreadTask6::performTask):
965         (WebCore::CrossThreadTask7::performTask):
966         (WebCore::CrossThreadTask8::performTask):
967         (WebCore::createCallbackTask):
968         (WebCore::CrossThreadTask1::create): Deleted.
969         (WebCore::CrossThreadTask2::create): Deleted.
970         (WebCore::CrossThreadTask3::create): Deleted.
971         (WebCore::CrossThreadTask4::create): Deleted.
972         (WebCore::CrossThreadTask5::create): Deleted.
973         (WebCore::CrossThreadTask6::create): Deleted.
974         (WebCore::CrossThreadTask7::create): Deleted.
975         (WebCore::CrossThreadTask8::create): Deleted.
976         * dom/Document.cpp:
977         (WebCore::Document::addConsoleMessage):
978         (WebCore::Document::addMessage):
979         (WebCore::Document::postTask):
980         (WebCore::Document::pendingTasksTimerFired):
981         (WebCore::PerformTaskContext::PerformTaskContext): Deleted.
982         (WebCore::Document::didReceiveTask): Deleted.
983         * dom/Document.h:
984         * dom/ScriptExecutionContext.cpp:
985         (WebCore::ScriptExecutionContext::processMessagePortMessagesSoon):
986         (WebCore::ScriptExecutionContext::timerAlignmentInterval):
987         (WebCore::ProcessMessagesSoonTask::create): Deleted.
988         (WebCore::ScriptExecutionContext::AddConsoleMessageTask::performTask): Deleted.
989         (WebCore::ScriptExecutionContext::Task::~Task): Deleted.
990         * dom/ScriptExecutionContext.h:
991         (WebCore::ScriptExecutionContext::Task::Task):
992         (WebCore::ScriptExecutionContext::Task::performTask):
993         (WebCore::ScriptExecutionContext::Task::isCleanupTask):
994         (WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
995         (WebCore::ScriptExecutionContext::AddConsoleMessageTask::create): Deleted.
996         * dom/StringCallback.cpp:
997         (WebCore::StringCallback::scheduleCallback):
998         * loader/appcache/ApplicationCacheGroup.cpp:
999         (WebCore::ApplicationCacheGroup::postListenerTask):
1000         (WebCore::CallCacheListenerTask::create): Deleted.
1001         (WebCore::CallCacheListenerTask::CallCacheListenerTask): Deleted.
1002         * workers/DefaultSharedWorkerRepository.cpp:
1003         (WebCore::SharedWorkerProxy::postTaskToLoader):
1004         (WebCore::SharedWorkerProxy::postTaskForModeToWorkerGlobalScope):
1005         (WebCore::SharedWorkerConnectTask::SharedWorkerConnectTask):
1006         (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
1007         (WebCore::DefaultSharedWorkerRepository::connectToWorker):
1008         (WebCore::SharedWorkerConnectTask::create): Deleted.
1009         (WebCore::SharedWorkerConnectTask::performTask): Deleted.
1010         * workers/WorkerEventQueue.cpp:
1011         (WebCore::WorkerEventQueue::EventDispatcher::EventDispatcher):
1012         (WebCore::WorkerEventQueue::EventDispatcher::~EventDispatcher):
1013         (WebCore::WorkerEventQueue::EventDispatcher::dispatch):
1014         (WebCore::WorkerEventQueue::enqueueEvent):
1015         (WebCore::WorkerEventQueue::cancelEvent):
1016         (WebCore::WorkerEventQueue::close):
1017         * workers/WorkerEventQueue.h:
1018         * workers/WorkerGlobalScope.cpp:
1019         (WebCore::WorkerGlobalScope::close):
1020         (WebCore::WorkerGlobalScope::postTask):
1021         (WebCore::WorkerGlobalScope::addConsoleMessage):
1022         (WebCore::WorkerGlobalScope::addMessage):
1023         (WebCore::CloseWorkerGlobalScopeTask::create): Deleted.
1024         (WebCore::CloseWorkerGlobalScopeTask::performTask): Deleted.
1025         (WebCore::CloseWorkerGlobalScopeTask::isCleanupTask): Deleted.
1026         * workers/WorkerGlobalScope.h:
1027         * workers/WorkerLoaderProxy.h:
1028         * workers/WorkerMessagingProxy.cpp:
1029         (WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
1030         (WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
1031         (WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope):
1032         (WebCore::WorkerMessagingProxy::postTaskToLoader):
1033         (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
1034         (WebCore::WorkerMessagingProxy::workerThreadCreated):
1035         (WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
1036         (WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyed):
1037         (WebCore::WorkerMessagingProxy::workerGlobalScopeClosed):
1038         (WebCore::WorkerMessagingProxy::postMessageToPageInspector):
1039         (WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject):
1040         (WebCore::WorkerMessagingProxy::reportPendingActivity):
1041         (WebCore::MessageWorkerGlobalScopeTask::create): Deleted.
1042         (WebCore::MessageWorkerGlobalScopeTask::MessageWorkerGlobalScopeTask): Deleted.
1043         (WebCore::MessageWorkerGlobalScopeTask::performTask): Deleted.
1044         (WebCore::MessageWorkerTask::create): Deleted.
1045         (WebCore::MessageWorkerTask::MessageWorkerTask): Deleted.
1046         (WebCore::MessageWorkerTask::performTask): Deleted.
1047         (WebCore::WorkerExceptionTask::create): Deleted.
1048         (WebCore::WorkerExceptionTask::WorkerExceptionTask): Deleted.
1049         (WebCore::WorkerExceptionTask::performTask): Deleted.
1050         (WebCore::WorkerGlobalScopeDestroyedTask::create): Deleted.
1051         (WebCore::WorkerGlobalScopeDestroyedTask::WorkerGlobalScopeDestroyedTask): Deleted.
1052         (WebCore::WorkerGlobalScopeDestroyedTask::performTask): Deleted.
1053         (WebCore::WorkerTerminateTask::create): Deleted.
1054         (WebCore::WorkerTerminateTask::WorkerTerminateTask): Deleted.
1055         (WebCore::WorkerTerminateTask::performTask): Deleted.
1056         (WebCore::WorkerThreadActivityReportTask::create): Deleted.
1057         (WebCore::WorkerThreadActivityReportTask::WorkerThreadActivityReportTask): Deleted.
1058         (WebCore::WorkerThreadActivityReportTask::performTask): Deleted.
1059         (WebCore::PostMessageToPageInspectorTask::create): Deleted.
1060         (WebCore::PostMessageToPageInspectorTask::PostMessageToPageInspectorTask): Deleted.
1061         (WebCore::PostMessageToPageInspectorTask::performTask): Deleted.
1062         (WebCore::NotifyNetworkStateChangeTask::create): Deleted.
1063         (WebCore::NotifyNetworkStateChangeTask::NotifyNetworkStateChangeTask): Deleted.
1064         (WebCore::NotifyNetworkStateChangeTask::performTask): Deleted.
1065         * workers/WorkerMessagingProxy.h:
1066         * workers/WorkerRunLoop.cpp:
1067         (WebCore::WorkerRunLoop::postTask):
1068         (WebCore::WorkerRunLoop::postTaskAndTerminate):
1069         (WebCore::WorkerRunLoop::postTaskForMode):
1070         (WebCore::WorkerRunLoop::Task::create):
1071         (WebCore::WorkerRunLoop::Task::performTask):
1072         (WebCore::WorkerRunLoop::Task::Task):
1073         * workers/WorkerRunLoop.h:
1074         * workers/WorkerThread.cpp:
1075         (WebCore::WorkerThread::stop):
1076         (WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):
1077         (WebCore::WorkerThreadShutdownFinishTask::create): Deleted.
1078         (WebCore::WorkerThreadShutdownFinishTask::performTask): Deleted.
1079         (WebCore::WorkerThreadShutdownFinishTask::isCleanupTask): Deleted.
1080         (WebCore::WorkerThreadShutdownStartTask::create): Deleted.
1081         (WebCore::WorkerThreadShutdownStartTask::performTask): Deleted.
1082         (WebCore::WorkerThreadShutdownStartTask::isCleanupTask): Deleted.
1083
1084 2014-04-29  Manuel Rego Casasnovas  <rego@igalia.com>
1085
1086         REGRESSION (r167879): Heap-use-after-free in WebCore::RenderFlexibleBox
1087         https://bugs.webkit.org/show_bug.cgi?id=132337
1088
1089         Reviewed by Simon Fraser.
1090
1091         From Blink r154582 by <jchaffraix@chromium.org>
1092
1093         This is a regression from the changes in OrderIterator. The issue is
1094         that we don't invalidate our iterator when a child is removed. This
1095         means that we could hold onto free'd memory until the next layout
1096         when we will recompute the iterator.
1097
1098         The solution is simple: just clear the memory when we remove a child.
1099
1100         Note that RenderGrid is not impacted by this bug as we don't use the
1101         iterator outside layout yet, but if we do it at some point the very same
1102         problem will arise, so the same treatment was applied to the class.
1103
1104         Test: fast/flexbox/order-iterator-crash.html
1105
1106         * rendering/OrderIterator.cpp:
1107         (WebCore::OrderIterator::invalidate): Clear m_children Vector.
1108         * rendering/OrderIterator.h:
1109         (WebCore::OrderIteratorPopulator::OrderIteratorPopulator): Use
1110         invalidate() method.
1111         * rendering/RenderFlexibleBox.cpp:
1112         (WebCore::RenderFlexibleBox::removeChild): Invalidate m_orderIterator.
1113         * rendering/RenderFlexibleBox.h: Add removeChild() signature.
1114         * rendering/RenderGrid.cpp: Invalidate m_orderIterator.
1115         (WebCore::RenderGrid::removeChild):
1116         * rendering/RenderGrid.h: Add removeChild() header.
1117
1118 2014-04-29  Enrica Casucci  <enrica@apple.com>
1119
1120         iOS build fix after http://trac.webkit.org/changeset/167937.
1121         Unreviewed.
1122
1123         * rendering/RenderThemeIOS.mm:
1124         (WebCore::RenderThemeIOS::adjustButtonStyle):
1125
1126 2014-04-29  Hans Muller  <hmuller@adobe.com>
1127
1128         [CSS Shapes] off-by-one error in Shape::createRasterShape()
1129         https://bugs.webkit.org/show_bug.cgi?id=132154
1130
1131         Reviewed by Bem Jones-Bey.
1132
1133         This is a port of a patch for a bug that was reported by and fixed in Blink by
1134         David Vest: https://codereview.chromium.org/237123002/.  Shape::createRasterShape()
1135         now consistently reports "end-point exclusive" intervals. Before the patch
1136         an entire row of pixels was above the shape-image-threshold, the interval's end
1137         index was reported as image.width. Now it's image.width + 1, which is consistent
1138         with the way the end index is reported if the last above threshold pixel is within
1139         an image row.
1140
1141         Two existing tests were revised to account for this change.
1142
1143         * rendering/shapes/RasterShape.cpp:
1144         (WebCore::RasterShape::getExcludedIntervals):
1145         * rendering/shapes/Shape.cpp:
1146         (WebCore::Shape::createRasterShape):
1147
1148 2014-04-29  Bem Jones-Bey  <bjonesbe@adobe.com>
1149
1150         Wrap CSS length conversion arguments in an object
1151         https://bugs.webkit.org/show_bug.cgi?id=131552
1152
1153         Reviewed by Andreas Kling.
1154
1155         This patch introduces a class CSSToLengthConversionData to wrap the
1156         data required to convert CSS lengths to Lengths. This simplifies the
1157         plumbing that goes on whenever we need to resolve CSS lengths and
1158         makes it easier to update the arguments needed for resolving these (in
1159         particular adding a RenderView for resolving viewport units at style
1160         recalc time; removing the computingFontSize bool also appears
1161         possible).
1162
1163         Note that the zoom argument, which was previously a float in some
1164         places and a double in others is now a float.
1165
1166         This is a port of a Blink patch by timloh@chromium.org.
1167
1168         No new tests, no behavior change.
1169
1170         * CMakeLists.txt:
1171         * WebCore.vcxproj/WebCore.vcxproj:
1172         * WebCore.xcodeproj/project.pbxproj:
1173         * css/BasicShapeFunctions.cpp:
1174         (WebCore::convertToLength):
1175         (WebCore::convertToLengthSize):
1176         (WebCore::convertToCenterCoordinate):
1177         (WebCore::cssValueToBasicShapeRadius):
1178         (WebCore::basicShapeForValue):
1179         * css/BasicShapeFunctions.h:
1180         * css/CSSCalculationValue.cpp:
1181         (WebCore::CSSCalcValue::computeLengthPx):
1182         (WebCore::determineCategory):
1183         * css/CSSCalculationValue.h:
1184         (WebCore::CSSCalcValue::createCalculationValue):
1185         * css/CSSGradientValue.cpp:
1186         (WebCore::CSSGradientValue::addStops):
1187         (WebCore::positionFromValue):
1188         (WebCore::CSSGradientValue::computeEndPoint):
1189         (WebCore::CSSLinearGradientValue::createGradient):
1190         (WebCore::CSSRadialGradientValue::resolveRadius):
1191         (WebCore::CSSRadialGradientValue::createGradient):
1192         * css/CSSGradientValue.h:
1193         * css/CSSPrimitiveValue.cpp:
1194         (WebCore::CSSPrimitiveValue::computeLength):
1195         (WebCore::CSSPrimitiveValue::computeLengthDouble):
1196         * css/CSSPrimitiveValue.h:
1197         * css/CSSPrimitiveValueMappings.h:
1198         (WebCore::CSSPrimitiveValue::convertToLength):
1199         * css/CSSToLengthConversionData.cpp: Added.
1200         (WebCore::CSSToLengthConversionData::zoom):
1201         * css/CSSToLengthConversionData.h: Added.
1202         (WebCore::CSSToLengthConversionData::CSSToLengthConversionData):
1203         (WebCore::CSSToLengthConversionData::style):
1204         (WebCore::CSSToLengthConversionData::rootStyle):
1205         (WebCore::CSSToLengthConversionData::computingFontSize):
1206         (WebCore::CSSToLengthConversionData::copyWithAdjustedZoom):
1207         * css/CSSToStyleMap.cpp:
1208         (WebCore::CSSToStyleMap::CSSToStyleMap):
1209         (WebCore::CSSToStyleMap::mapFillSize):
1210         (WebCore::CSSToStyleMap::mapFillXPosition):
1211         (WebCore::CSSToStyleMap::mapFillYPosition):
1212         (WebCore::CSSToStyleMap::mapNinePieceImageQuad):
1213         * css/CSSToStyleMap.h:
1214         (WebCore::CSSToStyleMap::CSSToStyleMap): Deleted.
1215         * css/DeprecatedStyleBuilder.cpp:
1216         (WebCore::ApplyPropertyAuto::applyValue):
1217         (WebCore::ApplyPropertyClip::convertToLength):
1218         (WebCore::ApplyPropertyLength::applyValue):
1219         (WebCore::ApplyPropertyBorderRadius::applyValue):
1220         (WebCore::ApplyPropertyComputeLength::applyValue):
1221         (WebCore::ApplyPropertyFontSize::applyValue):
1222         (WebCore::csstoLengthConversionDataWithTextZoomFactor):
1223         (WebCore::ApplyPropertyMarqueeIncrement::applyValue):
1224         (WebCore::ApplyPropertyLineHeight::applyValue):
1225         (WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyValue):
1226         (WebCore::ApplyPropertyWordSpacing::applyValue):
1227         (WebCore::ApplyPropertyPageSize::mmLength):
1228         (WebCore::ApplyPropertyPageSize::inchLength):
1229         (WebCore::ApplyPropertyPageSize::applyValue):
1230         (WebCore::ApplyPropertyVerticalAlign::applyValue):
1231         (WebCore::ApplyPropertyClipPath::applyValue):
1232         (WebCore::ApplyPropertyShape::applyValue):
1233         (WebCore::ApplyPropertyTextIndent::applyValue):
1234         * css/MediaQueryEvaluator.cpp:
1235         (WebCore::colorMediaFeatureEval):
1236         (WebCore::color_indexMediaFeatureEval):
1237         (WebCore::monochromeMediaFeatureEval):
1238         (WebCore::orientationMediaFeatureEval):
1239         (WebCore::aspect_ratioMediaFeatureEval):
1240         (WebCore::device_aspect_ratioMediaFeatureEval):
1241         (WebCore::device_pixel_ratioMediaFeatureEval):
1242         (WebCore::resolutionMediaFeatureEval):
1243         (WebCore::gridMediaFeatureEval):
1244         (WebCore::computeLength):
1245         (WebCore::device_heightMediaFeatureEval):
1246         (WebCore::device_widthMediaFeatureEval):
1247         (WebCore::heightMediaFeatureEval):
1248         (WebCore::widthMediaFeatureEval):
1249         (WebCore::min_colorMediaFeatureEval):
1250         (WebCore::max_colorMediaFeatureEval):
1251         (WebCore::min_color_indexMediaFeatureEval):
1252         (WebCore::max_color_indexMediaFeatureEval):
1253         (WebCore::min_monochromeMediaFeatureEval):
1254         (WebCore::max_monochromeMediaFeatureEval):
1255         (WebCore::min_aspect_ratioMediaFeatureEval):
1256         (WebCore::max_aspect_ratioMediaFeatureEval):
1257         (WebCore::min_device_aspect_ratioMediaFeatureEval):
1258         (WebCore::max_device_aspect_ratioMediaFeatureEval):
1259         (WebCore::min_device_pixel_ratioMediaFeatureEval):
1260         (WebCore::max_device_pixel_ratioMediaFeatureEval):
1261         (WebCore::min_heightMediaFeatureEval):
1262         (WebCore::max_heightMediaFeatureEval):
1263         (WebCore::min_widthMediaFeatureEval):
1264         (WebCore::max_widthMediaFeatureEval):
1265         (WebCore::min_device_heightMediaFeatureEval):
1266         (WebCore::max_device_heightMediaFeatureEval):
1267         (WebCore::min_device_widthMediaFeatureEval):
1268         (WebCore::max_device_widthMediaFeatureEval):
1269         (WebCore::min_resolutionMediaFeatureEval):
1270         (WebCore::max_resolutionMediaFeatureEval):
1271         (WebCore::animationMediaFeatureEval):
1272         (WebCore::transitionMediaFeatureEval):
1273         (WebCore::transform_2dMediaFeatureEval):
1274         (WebCore::transform_3dMediaFeatureEval):
1275         (WebCore::view_modeMediaFeatureEval):
1276         (WebCore::video_playable_inlineMediaFeatureEval):
1277         (WebCore::hoverMediaFeatureEval):
1278         (WebCore::pointerMediaFeatureEval):
1279         (WebCore::MediaQueryEvaluator::eval):
1280         * css/SVGCSSStyleSelector.cpp:
1281         (WebCore::StyleResolver::applySVGProperty):
1282         * css/StyleResolver.cpp:
1283         (WebCore::StyleResolver::State::clear):
1284         (WebCore::StyleResolver::State::initForStyleResolve):
1285         (WebCore::StyleResolver::convertToIntLength):
1286         (WebCore::StyleResolver::convertToFloatLength):
1287         (WebCore::createGridTrackBreadth):
1288         (WebCore::StyleResolver::applyProperty):
1289         (WebCore::StyleResolver::createFilterOperations):
1290         * css/StyleResolver.h:
1291         (WebCore::StyleResolver::State::setStyle):
1292         (WebCore::StyleResolver::State::cssToLengthConversionData):
1293         * css/TransformFunctions.cpp:
1294         (WebCore::convertToFloatLength):
1295         (WebCore::transformsForValue):
1296         * css/TransformFunctions.h:
1297         * css/WebKitCSSMatrix.cpp:
1298         (WebCore::WebKitCSSMatrix::setMatrixValue):
1299         * rendering/RenderThemeIOS.mm:
1300         (WebCore::applyCommonButtonPaddingToStyle):
1301         (WebCore::RenderThemeIOS::adjustButtonStyle):
1302
1303 2014-04-29  Zoltan Horvath  <zoltan@webkit.org>
1304
1305         [CSS Shapes] complex calc args for inset round vanish
1306         https://bugs.webkit.org/show_bug.cgi?id=132293
1307
1308         Reviewed by Bem Jones-Bey.
1309
1310         In order to use calc in the rounded parameters for inset shapes, we need
1311         to pass RenderStyle for the value creation as we did for the width arguments.
1312         Without taking RenderStyle into account, we hit an assert not reache
1313         in CSSPrimitiveValue::init in the debug builds.
1314
1315         I've added new parsing test.
1316
1317         * css/BasicShapeFunctions.cpp:
1318         (WebCore::valueForBasicShape):
1319         * css/CSSPrimitiveValue.cpp:
1320         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1321         (WebCore::CSSPrimitiveValue::init):
1322         * css/CSSPrimitiveValue.h:
1323         (WebCore::CSSPrimitiveValue::create):
1324         * css/CSSValuePool.h:
1325         (WebCore::CSSValuePool::createValue):
1326
1327 2014-04-29  Zoltan Horvath  <zoltan@webkit.org>
1328
1329         [CSS Shapes] complex calc values for shape-margin return null for computed style
1330         https://bugs.webkit.org/show_bug.cgi?id=132313
1331
1332         Reviewed by Bem Jones-Bey.
1333
1334         We need to pass RenderStyle* to the cssValuePool when parsing
1335         shape-margin in order to use calc() as a parameter.
1336
1337         I've added the new test case to parsing-shape-margin.html
1338
1339         * css/CSSComputedStyleDeclaration.cpp:
1340         (WebCore::ComputedStyleExtractor::propertyValue):
1341
1342 2014-04-29  Chris Fleizach  <cfleizach@apple.com>
1343
1344         AX: Row span info is wrong for table cells when a footer section is placed above a body section
1345         https://bugs.webkit.org/show_bug.cgi?id=131832
1346
1347         Reviewed by Mario Sanchez Prada.
1348
1349         If a <footer> section is placed before the body, it renders AX row information and order incorrectly.
1350         This also affects ARIA tables because they add their children by looking at renderer children, instead
1351         interrogating the RenderTable directly.
1352
1353         Test: accessibility/table-with-footer-section-above-body.html
1354
1355         * accessibility/AccessibilityARIAGrid.cpp:
1356         (WebCore::AccessibilityARIAGrid::addTableCellChild):
1357         (WebCore::AccessibilityARIAGrid::addChildren):
1358         * accessibility/AccessibilityTable.cpp:
1359         (WebCore::AccessibilityTable::addChildren):
1360         (WebCore::AccessibilityTable::addChildrenFromSection):
1361         * accessibility/AccessibilityTable.h:
1362         * accessibility/AccessibilityTableCell.cpp:
1363         (WebCore::AccessibilityTableCell::rowIndexRange):
1364         (WebCore::AccessibilityTableCell::columnIndexRange):
1365
1366 2014-04-29  Chris Fleizach  <cfleizach@apple.com>
1367
1368         AX: SpeechSynthesisUtterance cannot addEventListener
1369         https://bugs.webkit.org/show_bug.cgi?id=132321
1370
1371         Reviewed by Mario Sanchez Prada.
1372
1373         Modified an existing test (speech-synthesis-speak.html) to use addEventTarget.
1374
1375         * Modules/speech/SpeechSynthesisUtterance.idl:
1376
1377 2014-04-29  Hans Muller  <hmuller@adobe.com>
1378
1379         [CSS Shapes] shape-outside polygon fails when first vertex is 0,0
1380         https://bugs.webkit.org/show_bug.cgi?id=132132
1381
1382         Reviewed by Bem Jones-Bey.
1383
1384         ShapeInterval now distinguishes between x1==x2 - isEmpty() and x1,x2 haven't been
1385         set yet - isUndefined(). Removed the ShapeInterval setX1() and setX2() methods, since
1386         they're no longer used.
1387
1388         The polygon algorithm for computing excluded intervals now ignores horizontal
1389         edges. It also ignores edges whose lower vertex matches the top of the line, if
1390         the edge's Y direction is upwards (away from the top of the line). The rationale
1391         for this was explained here:
1392         http://hansmuller-webkit.blogspot.com/2012/11/revised-horizontal-box-algorithm.html
1393
1394         Test: fast/shapes/shape-outside-floats/shape-outside-polygon-zero-vertex.html
1395
1396         * rendering/shapes/PolygonShape.cpp:
1397         (WebCore::OffsetPolygonEdge::clippedEdgeXRange):
1398         (WebCore::PolygonShape::getExcludedIntervals):
1399         * rendering/shapes/ShapeInterval.h:
1400         (WebCore::ShapeInterval::ShapeInterval):
1401         (WebCore::ShapeInterval::isUndefined):
1402         (WebCore::ShapeInterval::x1):
1403         (WebCore::ShapeInterval::x2):
1404         (WebCore::ShapeInterval::width):
1405         (WebCore::ShapeInterval::isEmpty):
1406         (WebCore::ShapeInterval::setX1):
1407         (WebCore::ShapeInterval::setX2):
1408         (WebCore::ShapeInterval::overlaps):
1409         (WebCore::ShapeInterval::contains):
1410         (WebCore::ShapeInterval::unite):
1411
1412 2014-04-29  Andrei Bucur  <abucur@adobe.com>
1413
1414         [CSS Regions] Fix getClientRects() for content nodes
1415         https://bugs.webkit.org/show_bug.cgi?id=117407
1416
1417         Reviewed by David Hyatt.
1418
1419         This patch modifies getClientRects() to return a list of fragments
1420         for a fragmented box instead of a single rectangle positioned inside
1421         the region where the box center would appear.
1422
1423         The approach is to split the border box of the element in regions using
1424         the layout positioning. Then each fragment is mapped to the view coordinates
1425         and the result added to the list of rectangles. To preserve the originating
1426         region when mapping the fragment through the ancestor tree I've introduced
1427         the concept of a current region. The current region is stored inside a
1428         CurrentRenderRegionMaintainer object, created whenever an algorithm needing
1429         it needs to run. When the maintainer is destroyed, the cleanup is made
1430         automatically. The RenderFlowThread holds a pointer to this structure for
1431         easy access.
1432
1433         Tests: fast/regions/cssom/client-rects-fixed-content.html
1434                fast/regions/cssom/client-rects-forced-breaks.html
1435                fast/regions/cssom/client-rects-inline-complex.html
1436                fast/regions/cssom/client-rects-inline.html
1437                fast/regions/cssom/client-rects-nested-regions.html
1438                fast/regions/cssom/client-rects-positioned.html
1439                fast/regions/cssom/client-rects-relative-position.html
1440                fast/regions/cssom/client-rects-simple-block.html
1441                fast/regions/cssom/client-rects-transforms.html
1442                fast/regions/cssom/client-rects-unsplittable-float.html
1443
1444         * rendering/RenderBlock.cpp:
1445         (WebCore::RenderBlock::absoluteQuads): Split the box in fragments.
1446         * rendering/RenderBox.cpp:
1447         (WebCore::RenderBox::absoluteQuads): Split the box in fragments.
1448         * rendering/RenderFlowThread.cpp:
1449         (WebCore::RenderFlowThread::RenderFlowThread):
1450         (WebCore::RenderFlowThread::mapFromFlowToRegion):
1451         (WebCore::RenderFlowThread::mapLocalToContainer):
1452         (WebCore::RenderFlowThread::currentRegion):
1453         * rendering/RenderFlowThread.h:
1454         * rendering/RenderNamedFlowFragment.cpp:
1455         (WebCore::RenderNamedFlowFragment::absoluteQuadsForBoxInRegion): Get
1456         the fragments for this box in the region.
1457         * rendering/RenderNamedFlowFragment.h:
1458         * rendering/RenderNamedFlowThread.cpp:
1459         (WebCore::RenderNamedFlowThread::absoluteQuadsForBox): Virtual function
1460         that can be used to implement fragments to client rects mapping.
1461         * rendering/RenderNamedFlowThread.h:
1462         * rendering/RenderRegion.cpp:
1463         (WebCore::RenderRegion::rectFlowPortionForBox): Small change to correctly
1464         map empty rectangles to containers.
1465         (WebCore::CurrentRenderRegionMaintainer::CurrentRenderRegionMaintainer):
1466         (WebCore::CurrentRenderRegionMaintainer::~CurrentRenderRegionMaintainer):
1467         * rendering/RenderRegion.h:
1468         (WebCore::RenderRegion::absoluteQuadsForBoxInRegion):
1469         (WebCore::CurrentRenderRegionMaintainer::region):
1470
1471 2014-04-29  Andrei Bucur  <abucur@adobe.com>
1472
1473         Store the containing region map inside the flow thread
1474         https://bugs.webkit.org/show_bug.cgi?id=131647
1475
1476         Reviewed by Mihnea Ovidenie.
1477
1478         The patch moves the containing region map inside the flow thread where
1479         it can be better handled in case the region chain changes and the map
1480         needs to be cleared.
1481
1482         As a result of this move we are able to also cleanup the lines region
1483         information of a block flow when it is removed from the tree.
1484
1485         Test: fast/regions/inline-strike-through.html
1486
1487         * rendering/InlineFlowBox.h:
1488         (WebCore::InlineFlowBox::InlineFlowBox):
1489         * rendering/RenderBlockLineLayout.cpp:
1490         (WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
1491         * rendering/RenderFlowThread.cpp:
1492         (WebCore::RenderFlowThread::removeFlowChildInfo):
1493         (WebCore::RenderFlowThread::invalidateRegions):
1494         (WebCore::RenderFlowThread::removeLineRegionInfo):
1495         (WebCore::RenderFlowThread::checkLinesConsistency):
1496         (WebCore::RenderFlowThread::containingRegionMap):
1497         * rendering/RenderFlowThread.h:
1498         * rendering/RootInlineBox.cpp:
1499         (WebCore::containingRegionMap):
1500         (WebCore::RootInlineBox::~RootInlineBox):
1501         (WebCore::RootInlineBox::paint):
1502         (WebCore::RootInlineBox::containingRegion):
1503         (WebCore::RootInlineBox::clearContainingRegion):
1504         (WebCore::RootInlineBox::setContainingRegion):
1505
1506 2014-04-28  Benjamin Poulain  <benjamin@webkit.org>
1507
1508         SelectorCodeGenerator::generateElementIsNthChild() leaks the parent register :nth-child() is non-filtering
1509         https://bugs.webkit.org/show_bug.cgi?id=132311
1510
1511         Reviewed by Andreas Kling.
1512
1513         In two cases, the parent register was never returned to the register allocator:
1514         -Non filtering selectors (the early return).
1515         -Non marking selectors (at the moment: only querySelector API).
1516
1517         Unfortunately, generateElementIsNthChild() makes function call, which forces us to do this manual allocation
1518         of the parentElement register. Long term, I want RegisterAllocator and FunctionCall to have a special type for that.
1519
1520         Test: fast/selectors/several-nth-child.html
1521
1522         * cssjit/SelectorCompiler.cpp:
1523         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
1524
1525 2014-04-28  Yusuke Suzuki  <utatane.tea@gmail.com>
1526
1527         CSS JIT: backtracking with current / parent element for child
1528         https://bugs.webkit.org/show_bug.cgi?id=132057
1529
1530         Reviewed by Benjamin Poulain.
1531
1532         Calculate appropriate backtracking start height from the closest
1533         descendant. And at first, we use it for a simple optimization.
1534
1535         1. When backtracking start height equals to current height, we
1536         can simply jump to a descendant element check phase.
1537         2. When backtracking start height equals to current height + 1, we
1538         can simply jump to a descendant element traversing phase.
1539
1540         We can apply this optimization to fragments with adjacent combinators.
1541         But, in the meantime, we start to implement it for a fragment with
1542         child combinator.
1543
1544         * cssjit/SelectorCompiler.cpp:
1545         (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
1546         (WebCore::SelectorCompiler::TagNamePattern::TagNamePattern):
1547         (WebCore::SelectorCompiler::solveDescendantBacktrackingActionForChild):
1548         (WebCore::SelectorCompiler::solveBacktrackingAction):
1549         (WebCore::SelectorCompiler::equalTagNames):
1550         (WebCore::SelectorCompiler::equalTagNamePatterns):
1551         (WebCore::SelectorCompiler::computeBacktrackingStartHeightFromDescendant):
1552         (WebCore::SelectorCompiler::computeBacktrackingHeightFromDescendant):
1553         (WebCore::SelectorCompiler::requiresAdjacentTail):
1554         (WebCore::SelectorCompiler::requiresDescendantTail):
1555         (WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
1556         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
1557         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToParentNode):
1558         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToParentElement):
1559         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateParentElementTreeWalker):
1560         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAncestorTreeWalker):
1561         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
1562         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
1563         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
1564
1565 2014-04-28  Benjamin Poulain  <bpoulain@apple.com>
1566
1567         [iOS][WK2] Restore the scroll position and scale from the HistoryItem (mostly)
1568         https://bugs.webkit.org/show_bug.cgi?id=132307
1569
1570         Reviewed by Simon Fraser.
1571
1572         * WebCore.exp.in:
1573
1574 2014-04-28  Beth Dakin  <bdakin@apple.com>
1575
1576         Scrollbars do not update properly when topContentInset changes dynamically
1577         https://bugs.webkit.org/show_bug.cgi?id=132309
1578         -and corresponding-
1579         <rdar://problem/16642232>
1580
1581         Reviewed by Tim Horton.
1582
1583         It is not sufficient to do a layout and call updateScrollbars(). We must also call 
1584         RenderLayerCompositor::frameViewDidChangeSize() in order to properly adjust the 
1585         size and position of all of the scrolling-related layers.
1586         * page/FrameView.cpp:
1587         (WebCore::FrameView::topContentInsetDidChange):
1588
1589 2014-04-28  David Hyatt  <hyatt@apple.com>
1590
1591         [New Multicolumn] event.offsetX/offsetY don't work correctly
1592         https://bugs.webkit.org/show_bug.cgi?id=132284
1593
1594         Reviewed by Simon Fraser.
1595
1596         * rendering/RenderBoxModelObject.cpp:
1597         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
1598         Change the code here to only trigger for CSS Regions and not for
1599         multi-column. Add a FIXME pointing out that the code is broken even for
1600         CSS regions.
1601
1602          * rendering/RenderMultiColumnFlowThread.cpp:
1603         (WebCore::RenderMultiColumnFlowThread::mapAbsoluteToLocalPoint):
1604         Override mapAbsoluteToLocalPoint in order to guess a region and attempt
1605         to translate the point from that region to the flow thread local coordinate
1606         space.
1607
1608         (WebCore::RenderMultiColumnFlowThread::physicalTranslationFromRegionToFlow):
1609         * rendering/RenderMultiColumnFlowThread.h:
1610         New helper function that just wraps calling the region's logical translation
1611         function and converting to/from physical coordinates.
1612
1613 2014-04-28  Commit Queue  <commit-queue@webkit.org>
1614
1615         Unreviewed, rolling out r167857.
1616         https://bugs.webkit.org/show_bug.cgi?id=132305
1617
1618         the change was rolled out, roll out the new expectations as
1619         well (Requested by thorton on #webkit).
1620
1621         Reverted changeset:
1622
1623         "Unreviewed. Updating one bindings test baseline after
1624         r167855."
1625         http://trac.webkit.org/changeset/167857
1626
1627 2014-04-28  Dean Jackson  <dino@apple.com>
1628
1629         [Mac] Use the animated version of setHighlighted on NSButtonCell where available
1630         https://bugs.webkit.org/show_bug.cgi?id=132295
1631         <rdar://problem/16747240>
1632
1633         Reviewed by Beth Dakin.
1634
1635         Like setState, there is an animated version of setHighlighted available.
1636
1637         * platform/mac/ThemeMac.mm:
1638         (WebCore::updateStates): Use private version of _setHighlighted where possible.
1639
1640 2014-04-28  Commit Queue  <commit-queue@webkit.org>
1641
1642         Unreviewed, rolling out r167855.
1643         https://bugs.webkit.org/show_bug.cgi?id=132301
1644
1645         Broke the windows build (Requested by bfulgham on #webkit).
1646
1647         Reverted changeset:
1648
1649         "ScriptExecutionContext::Task should work well with C++11
1650         lambdas"
1651         https://bugs.webkit.org/show_bug.cgi?id=129795
1652         http://trac.webkit.org/changeset/167855
1653
1654 2014-04-24  Andy Estes  <aestes@apple.com>
1655
1656         [iOS] Implement WebQuickLookHandleClient for WebKit2
1657         https://bugs.webkit.org/show_bug.cgi?id=132157
1658
1659         Reviewed by Darin Adler.
1660
1661         * WebCore.exp.in: Exported QuickLookHandle::previewUTI().
1662         * platform/network/ios/QuickLook.h:
1663         * platform/network/ios/QuickLook.mm:
1664         (WebCore::QuickLookHandle::previewFileName): Changed to return a WTF::String.
1665         (WebCore::QuickLookHandle::previewUTI): Added.
1666
1667 2014-04-28  Chris Fleizach  <cfleizach@apple.com>
1668
1669         REGRESSION: Intermittent crash in SpeechSynthesis::didFinishSpeaking
1670         https://bugs.webkit.org/show_bug.cgi?id=111613
1671
1672         Reviewed by Mark Lam.
1673
1674         I think it's possible that didFinishSpeaking ends up calling directly back into start speaking, and the utterance reference
1675         we were holding can get cleared, so protecting this should avoid a few asserts.
1676
1677         * platform/mock/PlatformSpeechSynthesizerMock.cpp:
1678         (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
1679
1680 2014-04-28  Commit Queue  <commit-queue@webkit.org>
1681
1682         Unreviewed, rolling out r167871.
1683         https://bugs.webkit.org/show_bug.cgi?id=132290
1684
1685         broke a newmulticol test (spanner-nested-dynamic) (Requested
1686         by thorton on #webkit).
1687
1688         Reverted changeset:
1689
1690         "Store the containing region map inside the flow thread"
1691         https://bugs.webkit.org/show_bug.cgi?id=131647
1692         http://trac.webkit.org/changeset/167871
1693
1694 2014-04-28  Commit Queue  <commit-queue@webkit.org>
1695
1696         Unreviewed, rolling out r167853.
1697         https://bugs.webkit.org/show_bug.cgi?id=132288
1698
1699         caused crashes+timeouts+layout test failures described in the
1700         bug (Requested by thorton on #webkit).
1701
1702         Reverted changeset:
1703
1704         "Coalesce responses on network process side"
1705         https://bugs.webkit.org/show_bug.cgi?id=132229
1706         http://trac.webkit.org/changeset/167853
1707
1708 2014-04-24  Simon Fraser  <simon.fraser@apple.com>
1709
1710         [iOS WK2] flickery scrolling with overflow-scrolling:touch
1711         https://bugs.webkit.org/show_bug.cgi?id=132150
1712
1713         Reviewed by Tim Horton.
1714
1715         Fix typo in a comment.
1716
1717         * page/scrolling/AsyncScrollingCoordinator.cpp:
1718         (WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):
1719
1720 2014-04-28  Martin Robinson  <mrobinson@igalia.com>
1721
1722         [GTK] Builtin cursors do not properly handle transparency
1723         https://bugs.webkit.org/show_bug.cgi?id=131866
1724
1725         Reviewed by Gustavo Noronha Silva.
1726
1727         Tested by ManualTests/cursor.html.
1728
1729         * platform/gtk/CursorGtk.cpp:
1730         (WebCore::createNamedCursor): Instead of interpreting the source bitmap as an A1 image, use
1731         it as a 1-bit black and white image. We do this by:
1732             1. Painting the result to a full color image with transparency instead of an alpha-only surface.
1733             2. Masking a white background using the cursor alpha surface.
1734             3. Painting the black parts of the cursor by painting the source surface, where black pixels
1735             will be interpreted as full opaque pixels.
1736
1737 2014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1738
1739         Unreviewed. Update GObject DOM bindings symbols file.
1740
1741         * bindings/gobject/webkitdom.symbols: Add missing symbols.
1742
1743 2014-04-28  Manuel Rego Casasnovas  <rego@igalia.com>
1744
1745         OrderIterator refactoring to avoid extra loops
1746         https://bugs.webkit.org/show_bug.cgi?id=119061
1747
1748         Reviewed by Darin Adler.
1749
1750         This patch removes order values Vector and use a Vector of pairs instead. The pairs are formed by a child
1751         (RenderBox) and the index of this child. In addition, OrderIterator code is simplified.
1752
1753         It provides a helper class OrderIteratorPopulator, used for manipulating the Vector directly. Which allows to
1754         consolidate the code into a single implementation across flexbox and grid. OrderIteratorPopulator part is based
1755         on a patch from Blink r153971 by <jchaffraix@chromium.org>.
1756
1757         Current implementation is O(number of children * number of order values). Now it will just do a sort operation
1758         and then a regular loop. So if you have different order values in a flexbox or grid the performance will
1759         improve.
1760
1761         Comparing results of perf-tests:
1762         * Layout/auto-grid-lots-of-data: ~0.5% worse.
1763         * Layout/fixed-grid-lots-of-data: ~0.5% worse.
1764         * Layout/fixed-grid-lots-of-data (setting 100 different order values): ~50% better.
1765         * Layout/flexbox-lots-of-data: ~5% better.
1766
1767         No new tests, already covered by current tests.
1768
1769         * rendering/OrderIterator.cpp:
1770         (WebCore::OrderIterator::currentChild): Return current child according to m_childrenIndex.
1771         (WebCore::OrderIterator::first): Initialize m_childrenIndex and return current child.
1772         (WebCore::OrderIterator::next): Increase m_childrenIndex and return current child.
1773         (WebCore::compareByOrderValueAndIndex): Sorts the Vector by order value and index.
1774         (WebCore::OrderIteratorPopulator::~OrderIteratorPopulator): Calls compareByOrderValueAndIndex() if there is any
1775         child with non default order value.
1776         (WebCore::OrderIteratorPopulator::collectChild): Adds the child and index to the Vector. Update
1777         m_allChildrenHaveDefaultOrderValue accordingly.
1778         (WebCore::OrderIterator::OrderIterator): Deleted.
1779         (WebCore::OrderIterator::setOrderValues): Deleted.
1780         (WebCore::OrderIterator::reset): Deleted.
1781         * rendering/OrderIterator.h:
1782         (WebCore::OrderIteratorPopulator::OrderIteratorPopulator): New helper class to manipulate the Vector.
1783         (WebCore::OrderIterator::currentChild): Deleted.
1784         * rendering/RenderFlexibleBox.cpp:
1785         (WebCore::RenderFlexibleBox::RenderFlexibleBox): Remove OrderIterator intialization.
1786         (WebCore::RenderFlexibleBox::layoutBlock): Remove unneeded code related to old OrderValues vector.
1787         (WebCore::RenderFlexibleBox::prepareOrderIteratorAndMargins): Populate OrderIterator using collectChild().
1788         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): Deleted.
1789         * rendering/RenderFlexibleBox.h: Rename computeMainAxisPreferredSizes() to prepareOrderIteratorAndMargins().
1790         * rendering/RenderGrid.cpp:
1791         (WebCore::RenderGrid::RenderGrid): Remove OrderIterator initialization.
1792         (WebCore::RenderGrid::populateExplicitGridAndOrderIterator): Populate OrderIterator using collectChild().
1793
1794 2014-04-28  Zan Dobersek  <zdobersek@igalia.com>
1795
1796         std::bitset<>::test() does unnecessary bounds checks on CSSPropertyID bitsets
1797         https://bugs.webkit.org/show_bug.cgi?id=131685
1798
1799         Reviewed by Darin Adler.
1800
1801         Use std::bitset<>::operator[]() instead of std::bitset<>::test() to avoid
1802         bounds checks which are not necessary as long as a CSSPropertyID value is used.
1803
1804         * css/CSSParser.cpp:
1805         (WebCore::filterProperties):
1806         * css/StyleProperties.cpp:
1807         (WebCore::StyleProperties::asText):
1808         * css/StyleResolver.cpp:
1809         (WebCore::StyleResolver::CascadedProperties::hasProperty):
1810         (WebCore::StyleResolver::CascadedProperties::set):
1811
1812 2014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1813
1814         [GTK] TextTrack kind and mode attributes are enums since r166180
1815         https://bugs.webkit.org/show_bug.cgi?id=132228
1816
1817         Reviewed by Martin Robinson.
1818
1819         Improve coding style according to review comments, that I forgot
1820         to do before landing previous commit.
1821
1822         * bindings/gobject/WebKitDOMCustom.cpp:
1823         (webkit_dom_text_track_get_kind):
1824         (webkit_dom_text_track_get_mode):
1825         (webkit_dom_text_track_set_mode):
1826
1827 2014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1828
1829         [GTK] TextTrack kind and mode attributes are enums since r166180
1830         https://bugs.webkit.org/show_bug.cgi?id=132228
1831
1832         Reviewed by Martin Robinson.
1833
1834         We don't support enum values yet in GObject DOM bindings, but they
1835         are internally strings anyway, so we can keep the old
1836         implementations using strings as custom functions until we
1837         properly support enums.
1838
1839         * bindings/gobject/WebKitDOMCustom.cpp:
1840         (webkit_dom_text_track_get_kind):
1841         (webkit_dom_text_track_get_mode):
1842         (webkit_dom_text_track_set_mode):
1843         * bindings/gobject/WebKitDOMCustom.h:
1844         * bindings/gobject/WebKitDOMCustom.symbols:
1845
1846 2014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1847
1848         [GTK] TextTrack::addCue can raise an exception since r163974
1849         https://bugs.webkit.org/show_bug.cgi?id=132227
1850
1851         Reviewed by Martin Robinson.
1852
1853         webkit_dom_text_track_add_cue() now receives a GError paramater
1854         which is an API break. Add
1855         webkit_dom_text_track_add_cue_with_error and keep
1856         webkit_dom_text_track_add_cue as deprecated to keep API
1857         compatibility.
1858
1859         * bindings/gobject/WebKitDOMDeprecated.cpp:
1860         (webkit_dom_text_track_add_cue):
1861         * bindings/gobject/WebKitDOMDeprecated.h:
1862         * bindings/gobject/WebKitDOMDeprecated.symbols:
1863         * bindings/gobject/webkitdom.symbols:
1864         * bindings/scripts/CodeGeneratorGObject.pm:
1865         (GetEffectiveFunctionName):
1866
1867 2014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1868
1869         [GTK] TextTrackCue API changed in r163649
1870         https://bugs.webkit.org/show_bug.cgi?id=132226
1871
1872         Reviewed by Martin Robinson.
1873
1874         TextTrackCue is now a base class and part of its API was moved to
1875         the derived class VTTCue. Update the GObject DOM bindings to keep
1876         backwards compatibility.
1877
1878         * PlatformGTK.cmake: Generate bindings for DataCue and VTTCue.
1879         * bindings/gobject/WebKitDOMDeprecated.cpp:
1880         (webkit_dom_text_track_cue_get_cue_as_html): Mark as deprecated in
1881         favor of VTTCue API.
1882         (webkit_dom_text_track_cue_get_vertical): Ditto.
1883         (webkit_dom_text_track_cue_set_vertical): Ditto.
1884         (webkit_dom_text_track_cue_get_snap_to_lines): Ditto.
1885         (webkit_dom_text_track_cue_set_snap_to_lines): Ditto.
1886         (webkit_dom_text_track_cue_get_line): Ditto.
1887         (webkit_dom_text_track_cue_set_line): Ditto.
1888         (webkit_dom_text_track_cue_get_position): Ditto.
1889         (webkit_dom_text_track_cue_set_position): Ditto.
1890         (webkit_dom_text_track_cue_get_size): Ditto.
1891         (webkit_dom_text_track_cue_set_size): Ditto.
1892         (webkit_dom_text_track_cue_get_align): Ditto.
1893         (webkit_dom_text_track_cue_set_align): Ditto.
1894         (webkit_dom_text_track_cue_get_text): Ditto.
1895         (webkit_dom_text_track_cue_set_text): Ditto.
1896         * bindings/gobject/WebKitDOMDeprecated.h:
1897         * bindings/gobject/WebKitDOMDeprecated.symbols: Add new deprecated symbols.
1898         * bindings/gobject/WebKitDOMPrivate.cpp:
1899         (WebKit::wrap): Add generic wrap for TextTrackCue now that it's a
1900         base class to generate DataCue or VTTCue objects.
1901         * bindings/gobject/WebKitDOMPrivate.h:
1902         * bindings/gobject/webkitdom.symbols: Add DataCue symbols.
1903         * bindings/scripts/CodeGeneratorGObject.pm:
1904         (IsPolymorphic): Add TextTrackCue to the list of polymorphic classes.
1905
1906 2014-04-27  Andrei Bucur  <abucur@adobe.com>
1907
1908         Store the containing region map inside the flow thread
1909         https://bugs.webkit.org/show_bug.cgi?id=131647
1910
1911         Reviewed by Mihnea Ovidenie.
1912
1913         The patch moves the containing region map inside the flow thread where
1914         it can be better handled in case the region chain changes and the map
1915         needs to be cleared.
1916
1917         As a result of this move we are able to also cleanup the lines region
1918         information of a block flow when it is removed from the tree.
1919
1920         Test: fast/regions/inline-strike-through.html
1921
1922         * rendering/InlineFlowBox.h:
1923         (WebCore::InlineFlowBox::InlineFlowBox):
1924         * rendering/RenderBlockLineLayout.cpp:
1925         (WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
1926         * rendering/RenderFlowThread.cpp:
1927         (WebCore::RenderFlowThread::removeFlowChildInfo):
1928         (WebCore::RenderFlowThread::invalidateRegions):
1929         (WebCore::RenderFlowThread::removeLineRegionInfo):
1930         (WebCore::RenderFlowThread::checkLinesConsistency):
1931         (WebCore::RenderFlowThread::containingRegionMap):
1932         * rendering/RenderFlowThread.h:
1933         * rendering/RootInlineBox.cpp:
1934         (WebCore::containingRegionMap):
1935         (WebCore::RootInlineBox::~RootInlineBox):
1936         (WebCore::RootInlineBox::paint):
1937         (WebCore::RootInlineBox::containingRegion):
1938         (WebCore::RootInlineBox::clearContainingRegion):
1939         (WebCore::RootInlineBox::setContainingRegion):
1940
1941 2014-04-27  Darin Adler  <darin@apple.com>
1942
1943         REGRESSION (r159345): The hover state for links in the top navigation of Yahoo.com doesn't work
1944         https://bugs.webkit.org/show_bug.cgi?id=132241
1945         rdar://problem/16501924
1946
1947         Reviewed by Andreas Kling.
1948
1949         Test: fast/text/simple-lines-hover-underline.html
1950
1951         Checked that this does not hurt performance by running the
1952         run-perf-tests PerformanceTests/Layout/line-layout.html command before and after.
1953
1954         * rendering/RenderBlockFlow.cpp:
1955         (WebCore::RenderBlockFlow::hitTestInlineChildren): Use simpleLineLayout function rather than
1956         getting at the data member directly.
1957         (WebCore::RenderBlockFlow::firstLineBaseline): Ditto.
1958         (WebCore::RenderBlockFlow::inlineBlockBaseline): Ditto.
1959         (WebCore::RenderBlockFlow::lineCount): Ditto.
1960         (WebCore::RenderBlockFlow::paintInlineChildren): Ditto.
1961         (WebCore::RenderBlockFlow::hasLines): Ditto.
1962         (WebCore::RenderBlockFlow::simpleLineLayout): Added logic to determine which path to use if
1963         m_lineLayoutPath is undetermined, and call createLineBoxes if it's not simple.
1964         (WebCore::RenderBlockFlow::ensureLineBoxes): Factored out most of the code into a new
1965         createLineBoxes function.
1966         (WebCore::RenderBlockFlow::createLineBoxes): Ditto.
1967
1968         * rendering/RenderBlockFlow.h: Made simpleLineLayout function no longer an inline.
1969         Added a private createLineBoxes function.
1970
1971 2014-04-27  Praveen R Jadhav  <praveen.j@samsung.com>
1972
1973         [MediaStream] .ended shouldn't be part of MediaStream IDL
1974         https://bugs.webkit.org/show_bug.cgi?id=132104
1975
1976         Reviewed by Eric Carlson.
1977
1978         .ended attribute is spec'ed out of MediaStream IDL. Instead, .active
1979         is introduced to handle more scenarios. This patch replaces all 'ended'
1980         attribute calls with corresponding 'active' attributes. 
1981
1982         MediaStream-add-remove-tracks.html is updated.
1983
1984         * Modules/mediastream/MediaStream.cpp:
1985         (WebCore::MediaStream::addTrack): Replaced ended() with active().
1986         (WebCore::MediaStream::removeTrack): setEnded() isn't called. setActive()
1987         is retained which propagates oninactive event.
1988         (WebCore::MediaStream::trackDidEnd): setEnded() isn't called.
1989         (WebCore::MediaStream::removeRemoteSource): Replaced ended() with active().
1990         (WebCore::MediaStream::addRemoteTrack): Replaced ended() with active().
1991         (WebCore::MediaStream::removeRemoteTrack): Replaced ended() with active().
1992         (WebCore::MediaStream::ended): Deleted.
1993         (WebCore::MediaStream::setEnded): Deleted.
1994         (WebCore::MediaStream::streamDidEnd): Deleted.
1995         * Modules/mediastream/MediaStream.h:
1996         * Modules/mediastream/MediaStream.idl:
1997         * Modules/mediastream/RTCPeerConnection.cpp:
1998         (WebCore::RTCPeerConnection::didRemoveRemoteStream): Replaced setEnded()
1999         with setActive().
2000         * platform/mediastream/MediaStreamPrivate.cpp:
2001         (WebCore::MediaStreamPrivate::MediaStreamPrivate):
2002         (WebCore::MediaStreamPrivate::setActive): Updated comment from bug 
2003         https://bugs.webkit.org/show_bug.cgi?id=131973
2004         (WebCore::MediaStreamPrivate::setEnded): Deleted.
2005         * platform/mediastream/MediaStreamPrivate.h:
2006         (WebCore::MediaStreamPrivate::ended): Deleted.
2007
2008 2014-04-25  Andy Estes  <aestes@apple.com>
2009
2010         [iOS] Stop creating a WKWebResourceQuickLookDelegate for every WebResourceLoader
2011         https://bugs.webkit.org/show_bug.cgi?id=132215
2012
2013         Reviewed by Dan Bernstein.
2014
2015         * WebCore.exp.in: Moved QuickLook symbols to the USE(QUICK_LOOK) stanza.
2016         * platform/network/ios/QuickLook.h: Changed one of the create() overloads to no longer take a delegate argument.
2017         * platform/network/ios/QuickLook.mm: Moved WKWebResourceQuickLookDelegate to here and renamed to WebResourceLoaderQuickLookDelegate.
2018         (WebCore::QuickLookHandle::create): Created a WebResourceLoaderQuickLookDelegate only if QuickLook can handle the response.
2019
2020 2014-04-27  Sam Weinig  <sam@webkit.org>
2021
2022         [iOS WebKit2] Add support for text autosizing
2023         <rdar://problem/16545245>
2024         https://bugs.webkit.org/show_bug.cgi?id=132237
2025
2026         Reviewed by Tim Horton.
2027
2028         Move text autosizing width from Frame to Page, as it is a Page level concept.
2029
2030         * WebCore.exp.in:
2031         * page/Frame.cpp:
2032         (WebCore::Frame::textAutosizingWidth): Deleted.
2033         (WebCore::Frame::setTextAutosizingWidth): Deleted.
2034         * page/Frame.h:
2035         * page/FrameView.cpp:
2036         (WebCore::FrameView::layout):
2037         * page/Page.cpp:
2038         (WebCore::Page::Page):
2039         * page/Page.h:
2040         (WebCore::Page::textAutosizingWidth):
2041         (WebCore::Page::setTextAutosizingWidth):
2042
2043 2014-04-27  Zan Dobersek  <zdobersek@igalia.com>
2044
2045         Unreviewed. Updating one bindings test baseline after r167855.
2046
2047         * bindings/scripts/test/JS/JSTestCallback.cpp:
2048         (WebCore::JSTestCallback::~JSTestCallback):
2049
2050 2014-04-27  Darin Adler  <darin@apple.com>
2051
2052         Webpages can trigger loads with invalid URLs
2053         https://bugs.webkit.org/show_bug.cgi?id=132224
2054         rdar://problem/16697142
2055
2056         Reviewed by Alexey Proskuryakov.
2057
2058         Invalid URLs can be a way to trick the user about what website they
2059         are looking at.  Still trying to figure out a good way to regression-test this.
2060
2061         * dom/Document.cpp:
2062         (WebCore::Document::processHttpEquiv): Pass a URL rather than a String to
2063         the navigation scheduler.
2064         * loader/FrameLoader.cpp:
2065         (WebCore::FrameLoader::receivedFirstData): Ditto.
2066
2067         * loader/NavigationScheduler.cpp:
2068         (WebCore::ScheduledURLNavigation::ScheduledURLNavigation): Take a URL rather
2069         than a string.
2070         (WebCore::ScheduledURLNavigation::url): Ditto.
2071         (WebCore::ScheduledRedirect::ScheduledRedirect): Ditto.
2072         (WebCore::ScheduledLocationChange::ScheduledLocationChange): Ditto.
2073         (WebCore::ScheduledRefresh::ScheduledRefresh): Ditto.
2074         (WebCore::NavigationScheduler::shouldScheduleNavigation): Added a check that
2075         prevents navigation to any URL that is invalid, except for JavaScript URLs,
2076         which need not be valid.
2077         (WebCore::NavigationScheduler::scheduleRedirect): Use URL instead of String.
2078         (WebCore::NavigationScheduler::scheduleLocationChange): Use URL instead of
2079         String. Also got rid of empty string check since empty URLs are also invalid,
2080         and so shouldScheduleNavigation will take care of it.
2081         (WebCore::NavigationScheduler::scheduleRefresh): Use URL instead of String.
2082
2083         * loader/NavigationScheduler.h: Take URL instead of String. Also removed some
2084         unneeded incldues and uses of WTF_MAKE_NONCOPYABLE. NavigationScheduler is
2085         already noncopyable because it has a reference for a data member, and the
2086         disabler doesn't have any real reason to be noncopyable.
2087
2088         * loader/SubframeLoader.cpp:
2089         (WebCore::SubframeLoader::loadOrRedirectSubframe): Pass a URL rather than a
2090         String to the NavigationScheduler.
2091         * page/DOMWindow.cpp:
2092         (WebCore::DOMWindow::createWindow): Ditto.
2093
2094         * page/SecurityOrigin.cpp:
2095         (WebCore::SecurityOrigin::urlWithUniqueSecurityOrigin): Return a URL instead
2096         of a String.
2097         * page/SecurityOrigin.h: Updated for above change.
2098
2099 2014-04-27  Zan Dobersek  <zdobersek@igalia.com>
2100
2101         ScriptExecutionContext::Task should work well with C++11 lambdas
2102         https://bugs.webkit.org/show_bug.cgi?id=129795
2103
2104         Reviewed by Darin Adler.
2105
2106         Instead of having classes that subclass ScriptExecutionContext::Task and override
2107         the performTask(ScriptExecutionContext*) method, have the ScriptExecutionContext::Task
2108         take in a std::function<void (ScriptExecutionContext*)>-like object trough the constructor
2109         which would contain the code currently kept in the performTask() methods.
2110
2111         This enables inlining C++11 lambdas into ScriptExecutionContext::postTask() calls. For
2112         cleanup tasks, the Task object can be implicitly constructed by using the initializer list
2113         constructor with the first argument being the ScriptExecutionContext::Task::CleanupTask tag.
2114         The ScriptExecutionContext class remains non-copyable and now stores the passed-in invokable
2115         object in the std::function wrapper, along with a boolean member that indicates whether the
2116         task is of cleanup nature.
2117
2118         * Modules/quota/StorageErrorCallback.cpp:
2119         (WebCore::StorageErrorCallback::CallbackTask::CallbackTask):
2120         (WebCore::StorageErrorCallback::CallbackTask::performTask): Deleted.
2121         * Modules/quota/StorageErrorCallback.h:
2122         (WebCore::StorageErrorCallback::CallbackTask::create): Deleted.
2123         * Modules/webdatabase/Database.cpp:
2124         (WebCore::Database::~Database):
2125         (WebCore::Database::runTransaction):
2126         (WebCore::Database::scheduleTransactionCallback):
2127         (WebCore::DerefContextTask::create): Deleted.
2128         (WebCore::DerefContextTask::performTask): Deleted.
2129         (WebCore::DerefContextTask::isCleanupTask): Deleted.
2130         (WebCore::DerefContextTask::DerefContextTask): Deleted.
2131         (WebCore::callTransactionErrorCallback): Deleted.
2132         (WebCore::DeliverPendingCallbackTask::create): Deleted.
2133         (WebCore::DeliverPendingCallbackTask::performTask): Deleted.
2134         (WebCore::DeliverPendingCallbackTask::DeliverPendingCallbackTask): Deleted.
2135         * Modules/webdatabase/DatabaseManager.cpp:
2136         (WebCore::DatabaseManager::openDatabase):
2137         (WebCore::DatabaseCreationCallbackTask::create): Deleted.
2138         (WebCore::DatabaseCreationCallbackTask::performTask): Deleted.
2139         (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask): Deleted.
2140         * Modules/webdatabase/DatabaseSync.cpp:
2141         (WebCore::CloseSyncDatabaseOnContextThreadTask::create): Deleted.
2142         (WebCore::CloseSyncDatabaseOnContextThreadTask::performTask): Deleted.
2143         (WebCore::CloseSyncDatabaseOnContextThreadTask::CloseSyncDatabaseOnContextThreadTask): Deleted.
2144         * Modules/webdatabase/SQLCallbackWrapper.h:
2145         (WebCore::SQLCallbackWrapper::clear):
2146         (WebCore::SQLCallbackWrapper::SafeReleaseTask::create): Deleted.
2147         (WebCore::SQLCallbackWrapper::SafeReleaseTask::performTask): Deleted.
2148         (WebCore::SQLCallbackWrapper::SafeReleaseTask::isCleanupTask): Deleted.
2149         (WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask): Deleted.
2150         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
2151         (WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
2152         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
2153         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
2154         (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
2155         (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
2156         (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
2157         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
2158         (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
2159         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
2160         * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
2161         (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
2162         (WebCore::WorkerThreadableWebSocketChannel::mainThreadDestroy):
2163         (WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
2164         (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::create): Deleted.
2165         (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::~WorkerGlobalScopeDidInitializeTask): Deleted.
2166         (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::WorkerGlobalScopeDidInitializeTask): Deleted.
2167         * Modules/websockets/WorkerThreadableWebSocketChannel.h:
2168         * bindings/js/JSCallbackData.h:
2169         (WebCore::DeleteCallbackDataTask::DeleteCallbackDataTask):
2170         (WebCore::DeleteCallbackDataTask::create): Deleted.
2171         (WebCore::DeleteCallbackDataTask::performTask): Deleted.
2172         (WebCore::DeleteCallbackDataTask::isCleanupTask): Deleted.
2173         * bindings/js/JSDOMGlobalObjectTask.cpp:
2174         (WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
2175         (WebCore::JSGlobalObjectTask::~JSGlobalObjectTask): Deleted.
2176         (WebCore::JSGlobalObjectTask::performTask): Deleted.
2177         * bindings/js/JSDOMGlobalObjectTask.h:
2178         * bindings/js/JSDOMWindowBase.cpp:
2179         (WebCore::JSDOMWindowBase::queueTaskToEventLoop):
2180         * bindings/js/JSWorkerGlobalScopeBase.cpp:
2181         (WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):
2182         * bindings/scripts/CodeGeneratorJS.pm:
2183         (GenerateCallbackImplementation):
2184         * dom/CrossThreadTask.h:
2185         (WebCore::CrossThreadTask1::performTask):
2186         (WebCore::CrossThreadTask2::performTask):
2187         (WebCore::CrossThreadTask3::performTask):
2188         (WebCore::CrossThreadTask4::performTask):
2189         (WebCore::CrossThreadTask5::performTask):
2190         (WebCore::CrossThreadTask6::performTask):
2191         (WebCore::CrossThreadTask7::performTask):
2192         (WebCore::CrossThreadTask8::performTask):
2193         (WebCore::createCallbackTask):
2194         (WebCore::CrossThreadTask1::create): Deleted.
2195         (WebCore::CrossThreadTask2::create): Deleted.
2196         (WebCore::CrossThreadTask3::create): Deleted.
2197         (WebCore::CrossThreadTask4::create): Deleted.
2198         (WebCore::CrossThreadTask5::create): Deleted.
2199         (WebCore::CrossThreadTask6::create): Deleted.
2200         (WebCore::CrossThreadTask7::create): Deleted.
2201         (WebCore::CrossThreadTask8::create): Deleted.
2202         * dom/Document.cpp:
2203         (WebCore::Document::addConsoleMessage):
2204         (WebCore::Document::addMessage):
2205         (WebCore::Document::postTask):
2206         (WebCore::Document::pendingTasksTimerFired):
2207         (WebCore::PerformTaskContext::PerformTaskContext): Deleted.
2208         (WebCore::Document::didReceiveTask): Deleted.
2209         * dom/Document.h:
2210         * dom/ScriptExecutionContext.cpp:
2211         (WebCore::ScriptExecutionContext::processMessagePortMessagesSoon):
2212         (WebCore::ScriptExecutionContext::timerAlignmentInterval):
2213         (WebCore::ProcessMessagesSoonTask::create): Deleted.
2214         (WebCore::ScriptExecutionContext::AddConsoleMessageTask::performTask): Deleted.
2215         (WebCore::ScriptExecutionContext::Task::~Task): Deleted.
2216         * dom/ScriptExecutionContext.h:
2217         (WebCore::ScriptExecutionContext::Task::Task):
2218         (WebCore::ScriptExecutionContext::Task::performTask):
2219         (WebCore::ScriptExecutionContext::Task::isCleanupTask):
2220         (WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
2221         (WebCore::ScriptExecutionContext::AddConsoleMessageTask::create): Deleted.
2222         * dom/StringCallback.cpp:
2223         (WebCore::StringCallback::scheduleCallback):
2224         * loader/appcache/ApplicationCacheGroup.cpp:
2225         (WebCore::ApplicationCacheGroup::postListenerTask):
2226         (WebCore::CallCacheListenerTask::create): Deleted.
2227         (WebCore::CallCacheListenerTask::CallCacheListenerTask): Deleted.
2228         * workers/DefaultSharedWorkerRepository.cpp:
2229         (WebCore::SharedWorkerProxy::postTaskToLoader):
2230         (WebCore::SharedWorkerProxy::postTaskForModeToWorkerGlobalScope):
2231         (WebCore::SharedWorkerConnectTask::SharedWorkerConnectTask):
2232         (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
2233         (WebCore::DefaultSharedWorkerRepository::connectToWorker):
2234         (WebCore::SharedWorkerConnectTask::create): Deleted.
2235         (WebCore::SharedWorkerConnectTask::performTask): Deleted.
2236         * workers/WorkerEventQueue.cpp:
2237         (WebCore::WorkerEventQueue::EventDispatcher::EventDispatcher):
2238         (WebCore::WorkerEventQueue::EventDispatcher::~EventDispatcher):
2239         (WebCore::WorkerEventQueue::EventDispatcher::dispatch):
2240         (WebCore::WorkerEventQueue::enqueueEvent):
2241         (WebCore::WorkerEventQueue::cancelEvent):
2242         (WebCore::WorkerEventQueue::close):
2243         * workers/WorkerEventQueue.h:
2244         * workers/WorkerGlobalScope.cpp:
2245         (WebCore::WorkerGlobalScope::close):
2246         (WebCore::WorkerGlobalScope::postTask):
2247         (WebCore::WorkerGlobalScope::addConsoleMessage):
2248         (WebCore::WorkerGlobalScope::addMessage):
2249         (WebCore::CloseWorkerGlobalScopeTask::create): Deleted.
2250         (WebCore::CloseWorkerGlobalScopeTask::performTask): Deleted.
2251         (WebCore::CloseWorkerGlobalScopeTask::isCleanupTask): Deleted.
2252         * workers/WorkerGlobalScope.h:
2253         * workers/WorkerLoaderProxy.h:
2254         * workers/WorkerMessagingProxy.cpp:
2255         (WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
2256         (WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
2257         (WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope):
2258         (WebCore::WorkerMessagingProxy::postTaskToLoader):
2259         (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
2260         (WebCore::WorkerMessagingProxy::workerThreadCreated):
2261         (WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
2262         (WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyed):
2263         (WebCore::WorkerMessagingProxy::workerGlobalScopeClosed):
2264         (WebCore::WorkerMessagingProxy::postMessageToPageInspector):
2265         (WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject):
2266         (WebCore::WorkerMessagingProxy::reportPendingActivity):
2267         (WebCore::MessageWorkerGlobalScopeTask::create): Deleted.
2268         (WebCore::MessageWorkerGlobalScopeTask::MessageWorkerGlobalScopeTask): Deleted.
2269         (WebCore::MessageWorkerGlobalScopeTask::performTask): Deleted.
2270         (WebCore::MessageWorkerTask::create): Deleted.
2271         (WebCore::MessageWorkerTask::MessageWorkerTask): Deleted.
2272         (WebCore::MessageWorkerTask::performTask): Deleted.
2273         (WebCore::WorkerExceptionTask::create): Deleted.
2274         (WebCore::WorkerExceptionTask::WorkerExceptionTask): Deleted.
2275         (WebCore::WorkerExceptionTask::performTask): Deleted.
2276         (WebCore::WorkerGlobalScopeDestroyedTask::create): Deleted.
2277         (WebCore::WorkerGlobalScopeDestroyedTask::WorkerGlobalScopeDestroyedTask): Deleted.
2278         (WebCore::WorkerGlobalScopeDestroyedTask::performTask): Deleted.
2279         (WebCore::WorkerTerminateTask::create): Deleted.
2280         (WebCore::WorkerTerminateTask::WorkerTerminateTask): Deleted.
2281         (WebCore::WorkerTerminateTask::performTask): Deleted.
2282         (WebCore::WorkerThreadActivityReportTask::create): Deleted.
2283         (WebCore::WorkerThreadActivityReportTask::WorkerThreadActivityReportTask): Deleted.
2284         (WebCore::WorkerThreadActivityReportTask::performTask): Deleted.
2285         (WebCore::PostMessageToPageInspectorTask::create): Deleted.
2286         (WebCore::PostMessageToPageInspectorTask::PostMessageToPageInspectorTask): Deleted.
2287         (WebCore::PostMessageToPageInspectorTask::performTask): Deleted.
2288         (WebCore::NotifyNetworkStateChangeTask::create): Deleted.
2289         (WebCore::NotifyNetworkStateChangeTask::NotifyNetworkStateChangeTask): Deleted.
2290         (WebCore::NotifyNetworkStateChangeTask::performTask): Deleted.
2291         * workers/WorkerMessagingProxy.h:
2292         * workers/WorkerRunLoop.cpp:
2293         (WebCore::WorkerRunLoop::postTask):
2294         (WebCore::WorkerRunLoop::postTaskAndTerminate):
2295         (WebCore::WorkerRunLoop::postTaskForMode):
2296         (WebCore::WorkerRunLoop::Task::create):
2297         (WebCore::WorkerRunLoop::Task::performTask):
2298         (WebCore::WorkerRunLoop::Task::Task):
2299         * workers/WorkerRunLoop.h:
2300         * workers/WorkerThread.cpp:
2301         (WebCore::WorkerThread::stop):
2302         (WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):
2303         (WebCore::WorkerThreadShutdownFinishTask::create): Deleted.
2304         (WebCore::WorkerThreadShutdownFinishTask::performTask): Deleted.
2305         (WebCore::WorkerThreadShutdownFinishTask::isCleanupTask): Deleted.
2306         (WebCore::WorkerThreadShutdownStartTask::create): Deleted.
2307         (WebCore::WorkerThreadShutdownStartTask::performTask): Deleted.
2308         (WebCore::WorkerThreadShutdownStartTask::isCleanupTask): Deleted.
2309
2310 2014-04-27  Antti Koivisto  <antti@apple.com>
2311
2312         Coalesce responses on network process side
2313         https://bugs.webkit.org/show_bug.cgi?id=132229
2314
2315         Reviewed by Andreas Kling.
2316
2317         * WebCore.exp.in:
2318
2319 2014-04-27  David Kilzer  <ddkilzer@apple.com>
2320
2321         Roll out changes not part of the patch reviewed for Bug 132089
2322         <http://webkit.org/b/132089>
2323
2324         * loader/SubframeLoader.cpp:
2325         (WebCore::SubframeLoader::loadOrRedirectSubframe):
2326         * page/DOMWindow.cpp:
2327         (WebCore::DOMWindow::setLocation):
2328         (WebCore::DOMWindow::createWindow):
2329         (WebCore::DOMWindow::open):
2330
2331 2014-04-26  Darin Adler  <darin@apple.com>
2332
2333         Frame and page lifetime fixes in WebCore::createWindow
2334         https://bugs.webkit.org/show_bug.cgi?id=132089
2335
2336         Reviewed by Sam Weinig.
2337
2338         Speculative fix because I was unable to reproduce the crash that was
2339         reported with the test case attached to this bug.
2340
2341         * loader/FrameLoader.cpp:
2342         (WebCore::createWindow): Changed code to remove the assumption that calls
2343         out will not destroy the page or frame. Use RefPtr for the frame, and
2344         added early exits if frame->page() becomes null at any point before we
2345         use a page pointer.
2346
2347 2014-04-26  Alexey Proskuryakov  <ap@apple.com>
2348
2349         Local files should not be allowed to read pasteboard data during drag
2350         https://bugs.webkit.org/show_bug.cgi?id=131767
2351
2352         Reviewed by Sam Weinig.
2353
2354         Test: fast/files/local-file-drag-security.html
2355
2356         * page/DragController.cpp:
2357         (WebCore::DragController::dragExited):
2358         (WebCore::DragController::tryDHTMLDrag):
2359         Make an old Dashboard quirk really Dashboard only.
2360
2361 2014-04-24  Darin Adler  <darin@apple.com>
2362
2363         REGRESSION (r164133): Selection doesn't paint when scrolling some pages
2364         https://bugs.webkit.org/show_bug.cgi?id=132172
2365         rdar://problem/16719473
2366
2367         Reviewed by Brent Fulgham.
2368
2369         Tests: fast/dynamic/remove-invisible-node-inside-selection.html
2370                fast/dynamic/remove-node-inside-selection.html
2371
2372         * editing/FrameSelection.cpp:
2373         (WebCore::clearRenderViewSelection): Changed to take a Node& because having
2374         this take a Position& was unnecessary and strange, when really it just needs
2375         to take a document as an argument.
2376         (WebCore::DragCaretController::nodeWillBeRemoved): Updated for the above.
2377         (WebCore::FrameSelection::respondToNodeModification): Added code to set the
2378         m_pendingSelectionUpdate flag and call RenderView::setNeedsLayout so the
2379         selection will be recomputed after it's temporarily cleared when one of
2380         the selected nodes is removed.
2381
2382 2014-04-25  Ryosuke Niwa  <rniwa@webkit.org>
2383
2384         REGRESSION (r167689): Hovering file name in a file input causes a crash
2385         https://bugs.webkit.org/show_bug.cgi?id=132214
2386
2387         Reviewed by Andreas Kling.
2388
2389         The bug was caused by callDefaultEventHandlersInTheBubblingOrder unconditionally
2390         accessing path.contextAt(0) even if the event path was empty.
2391
2392         Fixed the bug by exiting early when the event path is empty.
2393
2394         Test: fast/events/shadow-event-path-2.html
2395
2396         * dom/EventDispatcher.cpp:
2397         (WebCore::callDefaultEventHandlersInTheBubblingOrder):
2398
2399 2014-04-25  Tim Horton  <timothy_horton@apple.com>
2400
2401         REGRESSION (r167828): http/tests/media/hls/video-controls-live-stream.html fails
2402
2403         * English.lproj/mediaControlsLocalizedStrings.js:
2404         Add 'Live Broadcast' to the localized strings list.
2405
2406 2014-04-25  Brady Eidson  <beidson@apple.com>
2407
2408         Add a selection overlay.
2409         <rdar://problem/16727797> and https://bugs.webkit.org/show_bug.cgi?id=132200
2410
2411         Reviewed by David Hyatt.
2412
2413         No new tests (WK2 feature in development).
2414
2415         * WebCore.xcodeproj/project.pbxproj:
2416
2417         Add a SelectionRectGathterer class.
2418         It creates a Notifier (given a RenderView) then accepts Rects from the RenderView.
2419         When the Notifier is destroyed, the appropriate EditorClient is notified of the gathered rects.
2420         * editing/SelectionRectGatherer.cpp: Added.
2421         (WebCore::SelectionRectGatherer::SelectionRectGatherer):
2422         (WebCore::SelectionRectGatherer::addRect):
2423         (WebCore::SelectionRectGatherer::addRects):
2424         (WebCore::SelectionRectGatherer::Notifier::Notifier):
2425         (WebCore::SelectionRectGatherer::Notifier::~Notifier):
2426         (WebCore::SelectionRectGatherer::clearAndCreateNotifier):
2427         * editing/SelectionRectGatherer.h: Added.
2428
2429         * page/EditorClient.h:
2430         (WebCore::EditorClient::selectionRectsDidChange):
2431
2432         * rendering/RenderView.cpp:
2433         (WebCore::RenderView::RenderView):
2434         (WebCore::RenderView::setSelection): Clear the gatherer’s rects then create a Notifier.
2435         (WebCore::RenderView::setSubtreeSelection): Give all the selection rects to be painted to
2436           the SelectionRectGatherer.
2437         * rendering/RenderView.h:
2438
2439 2014-04-08  Jer Noble  <jer.noble@apple.com>
2440
2441         Support "Live" streams in media controls.
2442         https://bugs.webkit.org/show_bug.cgi?id=131390
2443
2444         Reviewed by Brent Fulgham.
2445
2446         Test: http/tests/media/hls/video-controls-live-stream.html
2447
2448         Support "Live" streams by adding an isLive property to our media controls.
2449
2450         * Modules/mediacontrols/mediaControlsApple.css:
2451         (audio::-webkit-media-controls-status-display):
2452         (video:-webkit-full-screen::-webkit-media-controls-status-display):
2453         * Modules/mediacontrols/mediaControlsApple.js:
2454         (Controller): isLive defaults to false.
2455         (Controller.prototype.setIsLive): Set the isLive property and conditionally reconfigure the controls.
2456         (Controller.prototype.configureInlineControls): Don't add the timeline if we are live.
2457         (Controller.prototype.configureFullScreenControls): Ditto.
2458         (Controller.prototype.updateStatusDisplay): Added.
2459         (Controller.prototype.handleLoadStart): Call updateStatusDisplay().
2460         (Controller.prototype.handleError): Ditto.
2461         (Controller.prototype.handleAbort): Ditto.
2462         (Controller.prototype.handleSuspend): Ditto.
2463         (Controller.prototype.handleStalled): Ditto.
2464         (Controller.prototype.handleWaiting): Ditto.
2465         (Controller.prototype.updateDuration): Ditto.
2466         (Controller.prototype.updateReadyState): Ditto.
2467
2468 2014-04-25  Dean Jackson  <dino@apple.com>
2469
2470         Allow a platform-specific size enumeration to be passed into popup-menu display
2471         https://bugs.webkit.org/show_bug.cgi?id=132195
2472
2473         Reviewed by Brent Fulgham. With some in-person review comments from Sam Weinig.
2474
2475         Platforms like OS X use a set of predefined sizes for built-in controls
2476         used for <select>: normal, small and mini. Expose that information to
2477         the PopupMenuClient via the PopupMenuStyle, allowing it to be passed
2478         into the platform code in WebKitSystemInterface.
2479
2480         * platform/PopupMenuStyle.h: Add a menu size enum.
2481         (WebCore::PopupMenuStyle::PopupMenuStyle):
2482         (WebCore::PopupMenuStyle::menuSize):
2483         * platform/mac/WebCoreSystemInterface.h: Pass in NSControlSize as a parameter
2484         to WKPopupMenu.
2485         * platform/mac/WebCoreSystemInterface.mm: Ditto.
2486         * rendering/RenderMenuList.cpp:
2487         (RenderMenuList::menuStyle): Ask the RenderTheme to calculate the size
2488         of the menu button, so that it can be added to the PopupMenuStyle.
2489         * rendering/RenderTheme.h: New method to retrieve the menu size.
2490         (WebCore::RenderTheme::popupMenuSize): Convert an NSControlSize into a PopupMenuSize.
2491         * rendering/RenderThemeMac.h: Override the base function, and add a
2492         controlSizeForCell helper.
2493         * rendering/RenderThemeMac.mm:
2494         (WebCore::RenderThemeMac::controlSizeForCell): Used by this new
2495         code and the old setControlSizeForCell to calculate the NSControlSize
2496         that would be used for the button.
2497         (WebCore::RenderThemeMac::setControlSize): Call the new helper.
2498         (WebCore::RenderThemeMac::popupMenuSize): Return the value from the helper.
2499
2500 2014-04-25  Javier Fernandez  <jfernandez@igalia.com>
2501
2502         REGRESSION(r167799): ASSERTION in parseGridTemplateShorthand in fast/css-grid-layout/grid-template-shorthand-get-set.html
2503         https://bugs.webkit.org/show_bug.cgi?id=132194
2504
2505         Reviewed by Martin Robinson.
2506
2507         Properly resolving the grid-template shorthand for the corresponding longhand
2508         properties.
2509
2510         No new tests, grid-template-shorthand-get-set.html already covers this case.
2511
2512         * css/StyleProperties.cpp:
2513         (WebCore::StyleProperties::getPropertyValue):
2514         * css/StylePropertyShorthand.cpp:
2515         (WebCore::shorthandForProperty):
2516         (WebCore::matchingShorthandsForLonghand):
2517         * css/StyleResolver.cpp:
2518         (WebCore::StyleResolver::applyProperty):
2519
2520 2014-04-25  David Hyatt  <hyatt@apple.com>
2521
2522         Column rules not respecting scroll offsets.
2523         https://bugs.webkit.org/show_bug.cgi?id=109683
2524
2525         Reviewed by Dean Jackson.
2526
2527         Added fast/multicol/scrolling-column-rules.html
2528
2529         * rendering/RenderBlock.cpp:
2530         (WebCore::RenderBlock::paintColumnRules):
2531         Make paintColumnRules virtual so that it works with both column implementations.
2532
2533         (WebCore::RenderBlock::paintObject):
2534         Changed to call paintColumnRules with the adjusted scroll offset and to do it after
2535         bailing on the root background only check.
2536
2537         * rendering/RenderBlock.h:
2538         paintColumnRules is now virtual.
2539
2540         * rendering/RenderBlockFlow.cpp:
2541         (WebCore::RenderBlockFlow::paintColumnRules):
2542         (WebCore::RenderBlockFlow::paintBoxDecorations): Deleted.
2543         * rendering/RenderBlockFlow.h:
2544         Got rid of paintBoxDecorations override since it failed when hasBoxDecorations was false
2545         anyway. Override paintColumnRules instead to paint at the right time.
2546
2547 2014-04-23  Jon Honeycutt  <jhoneycutt@apple.com>
2548
2549         Crash applying editing commands from iframe onload event
2550
2551         <https://bugs.webkit.org/show_bug.cgi?id=132103>
2552         <rdar://problem/15696351>
2553
2554         This patch merges the Chromium bug workaround from
2555         <http://src.chromium.org/viewvc/blink?revision=162080&view=revision>,
2556         which prevents reentrancy in CompositeEditCommand::apply().
2557
2558         Reviewed by Darin Adler.
2559
2560         Test: editing/apply-style-iframe-crash.html
2561
2562         * editing/CompositeEditCommand.cpp:
2563         (WebCore::HTMLNames::ReentrancyGuard::isRecursiveCall):
2564         (WebCore::HTMLNames::ReentrancyGuard::Scope::Scope):
2565         (WebCore::HTMLNames::ReentrancyGuard::Scope::~Scope):
2566         (WebCore::CompositeEditCommand::apply):
2567         If this is a recursive call, return early.
2568
2569 2014-04-25  David Hyatt  <hyatt@apple.com>
2570
2571         [New Multicolumn] fast/multicol/hit-test-* layout tests all fail
2572         https://bugs.webkit.org/show_bug.cgi?id=132081
2573
2574         Reviewed by Dean Jackson.
2575
2576         Added a bunch of tests in fast/multicol/newmulticol/compare-with-old-impl/hit-test-*.html
2577
2578         * rendering/RenderBlock.h:
2579         Make offsetForContents public, since I need to call it from RenderMultiColumnSet.
2580
2581         * rendering/RenderMultiColumnFlowThread.cpp:
2582         (WebCore::RenderMultiColumnFlowThread::populate):
2583         Stop an ASSERT in the new columns code on the hit tests by making sure layout state is
2584         disabled when moving children around.
2585
2586         * rendering/RenderMultiColumnSet.cpp:
2587         (WebCore::RenderMultiColumnSet::positionForPoint):
2588         Refactor this function to call a helper function instead, translateRegionPointToFlowThread.
2589
2590         (WebCore::RenderMultiColumnSet::translateRegionPointToFlowThread):
2591         This function is logical (unlike the mistaken physical function I first implemented in
2592         positionForPoint).
2593
2594         (WebCore::RenderMultiColumnSet::updateHitTestResult):
2595         * rendering/RenderMultiColumnSet.h:
2596         Overridden to fill in the correct local coordinate when the HTML document is inside a paginated
2597         RenderView. Note that column spans don't actually work, but once we move over to a 
2598         non-column based pagination API, that will become irrelevant.
2599
2600 2014-04-25  Andreas Kling  <akling@apple.com>
2601
2602         Mark some things with WTF_MAKE_FAST_ALLOCATED.
2603         <https://webkit.org/b/132198>
2604
2605         Use FastMalloc for more things.
2606
2607         Reviewed by Anders Carlsson.
2608
2609         * bindings/js/ScriptController.h:
2610         * dom/DocumentOrderedMap.h:
2611         * inspector/InspectorCSSAgent.h:
2612         * inspector/InspectorDOMAgent.h:
2613         * inspector/InspectorDOMDebuggerAgent.h:
2614         * inspector/InspectorDOMStorageAgent.h:
2615         * inspector/InspectorDatabaseAgent.h:
2616         * inspector/InspectorLayerTreeAgent.h:
2617         * inspector/InspectorPageAgent.h:
2618         * inspector/InspectorResourceAgent.h:
2619         * inspector/InspectorTimelineAgent.h:
2620         * inspector/InspectorWorkerAgent.h:
2621         * inspector/PageRuntimeAgent.h:
2622         * loader/HistoryController.h:
2623         * page/DeviceClient.h:
2624         * page/DeviceController.h:
2625         * page/EventHandler.h:
2626         * page/Page.h:
2627         * page/scrolling/ScrollingStateNode.h:
2628         * platform/graphics/FontGenericFamilies.h:
2629         * platform/graphics/FontPlatformData.h:
2630
2631 2014-04-25  Radu Stavila  <stavila@adobe.com>
2632
2633         [CSS Regions] Rename objectShouldPaintInFlowRegion to something more clear
2634         https://bugs.webkit.org/show_bug.cgi?id=132050
2635
2636         Reviewed by Andreas Kling.
2637
2638         The objectShouldPaintInFlowRegion is no longer used only by the painting process
2639         but also for hit-testing, so it was renamed to something more generic (objectShouldFragmentInFlowRegion).
2640
2641         No new tests required, it's just a method rename.
2642
2643         * rendering/RenderBlock.cpp:
2644         (WebCore::RenderBlock::paint):
2645         (WebCore::RenderBlock::selectionGaps):
2646         (WebCore::RenderBlock::nodeAtPoint):
2647         * rendering/RenderBox.cpp:
2648         (WebCore::RenderBox::positionForPoint):
2649         * rendering/RenderFlowThread.cpp:
2650         (WebCore::RenderFlowThread::objectShouldFragmentInFlowRegion):
2651         (WebCore::RenderFlowThread::objectShouldPaintInFlowRegion): Deleted.
2652         * rendering/RenderFlowThread.h:
2653         * rendering/RenderLayer.cpp:
2654         (WebCore::RenderLayer::paintLayer):
2655         (WebCore::RenderLayer::hitTestLayer):
2656         * rendering/RenderRegion.cpp:
2657         (WebCore::RenderRegion::ensureOverflowForBox):
2658         * rendering/RenderReplaced.cpp:
2659         (WebCore::RenderReplaced::shouldPaint):
2660
2661 2014-04-25  Enrica Casucci  <enrica@apple.com>
2662
2663         iOS build fix after http://trac.webkit.org/changeset/167803
2664         Unreviewed.
2665
2666         * page/Frame.cpp:
2667         (WebCore::Frame::checkOverflowScroll):
2668         * rendering/RenderBlock.cpp:
2669         (WebCore::positionForPointRespectingEditingBoundaries):
2670
2671 2014-04-24  David Hyatt  <hyatt@apple.com>
2672
2673         [New Multicolumn] Add support for offsetLeft and offsetTop.
2674         https://bugs.webkit.org/show_bug.cgi?id=132080
2675
2676         Reviewed by Andrei Bucur.
2677
2678         Added fast/multicol/client-spanners-complex.html and offset-top-left.html
2679
2680         * rendering/RenderBoxModelObject.cpp:
2681         (WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
2682         Patch the offsetLeft/Top loop to handle calling into RenderMultiColumnFlowThread
2683         in order to adjust the coordinates for the new multicolumn layout.
2684
2685         * rendering/RenderMultiColumnFlowThread.cpp:
2686         (WebCore::RenderMultiColumnFlowThread::mapFromFlowToRegion):
2687         Modified to use a helper that can be shared by offsetLeft/Top code. This code
2688         ran for client rects, and I'm moving/refactoring it for more sharing.
2689
2690         (WebCore::RenderMultiColumnFlowThread::physicalTranslationOffsetFromFlowToRegion):
2691         (WebCore::RenderMultiColumnFlowThread::physicalTranslationFromFlowToRegion):
2692         * rendering/RenderMultiColumnFlowThread.h:
2693         New functions that beef up what was in mapFromFlowToRegion and fix some bugs
2694         with the translation code.
2695
2696         * rendering/RenderMultiColumnSet.cpp:
2697         (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
2698         Patched to factor in the flow thread portion rect of the specific multicolumn set.
2699
2700         * rendering/RenderObject.h:
2701         (WebCore::RenderObject::isRenderMultiColumnFlowThread):
2702         Added for toRenderMultiColumnFlowThread capability.
2703
2704 2014-04-25  Brent Fulgham  <bfulgham@apple.com>
2705
2706         ScrollingCoordinator is unaware of topContentInset
2707         https://bugs.webkit.org/show_bug.cgi?id=132158
2708         <rdar://problem/16706152>
2709
2710         Reviewed by Darin Adler.
2711
2712         Test: platform/mac/fast/scrolling/scroll-select-bottom-test.html
2713
2714         The calculation of non-fast-scrollable regions does not currently take
2715         the topContentOffset into account. Consequently, the logic that decides
2716         whether to stay on the scrolling thread, or drop down to an individual
2717         page element, can make the wrong choice. This is especially true for
2718         small scrollable regions (such as <select> elements), where the
2719         topContentInset may be quite close to the size of the scrollable
2720          element itself.
2721
2722         * page/scrolling/ScrollingCoordinator.cpp:
2723         (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion): Also
2724         include the topContentInset value in our calculation.
2725
2726 2014-04-25  Javier Fernandez  <jfernandez@igalia.com>
2727
2728         REGRESSION(r167799): Breaks debug build
2729         https://bugs.webkit.org/show_bug.cgi?id=132194
2730
2731         Reviewed by Andrei Bucur.
2732
2733         Fix the debug bots after r167799
2734
2735         No new tests, no new functionality.
2736
2737         * css/CSSParser.cpp:
2738         (WebCore::CSSParser::parseGridTemplateShorthand):
2739
2740 2014-04-25  Miyoung Shin  <myid.shin@samsung.com>
2741
2742         Web process is crashed during dispatching touchEvent created by JS.
2743         https://bugs.webkit.org/show_bug.cgi?id=113225
2744
2745         Reviewed by Benjamin Poulain.
2746
2747         TouchEvent created by JS should have the necessary attributes
2748         of touches, targetTouches and changedTouches.
2749         It should be verified weather there are touchLists before dispatching touch event.
2750
2751         Test: fast/events/touch/create-touch-event-without-touchList.html
2752
2753         * dom/EventDispatcher.cpp:
2754         (WebCore::EventDispatcher::dispatchEvent):
2755         (WebCore::EventPath::updateTouchLists):
2756         (WebCore::addRelatedNodeResolversForTouchList): Deleted.
2757
2758 2014-04-25  Philippe Normand  <pnormand@igalia.com>
2759
2760         [GTK] File webkitRelativePath attribute was removed in r163483
2761         https://bugs.webkit.org/show_bug.cgi?id=132193
2762
2763         Reviewed by Carlos Garcia Campos.
2764
2765         Add the removed getter as deprecated API to keep backwards compatibility.
2766
2767         * bindings/gobject/WebKitDOMDeprecated.cpp:
2768         (webkit_dom_file_get_webkit_relative_path):
2769         * bindings/gobject/WebKitDOMDeprecated.h:
2770         * bindings/gobject/WebKitDOMDeprecated.symbols:
2771
2772 2014-04-25  Radu Stavila  <stavila@adobe.com>
2773
2774         [CSS Regions] Overflow selection doesn't work properly
2775         https://bugs.webkit.org/show_bug.cgi?id=130715
2776
2777         Reviewed by David Hyatt.
2778
2779         When hit-testing, painting block selection gaps and searching for the node at a specific point inside a flow thread,
2780         the region range of the box being checked must be validated in order to not return false positives. Otherwise, hit-testing
2781         at the top of region B could hit elements that overflow the bottom of region A.
2782
2783         Tests: fast/regions/selection-in-overflow-hit-testing.html
2784                fast/regions/selection-in-overflow.html
2785                fast/regions/selection-in-text-after-overflow-hit-testing.html
2786
2787         * accessibility/AccessibilityRenderObject.cpp:
2788         (WebCore::AccessibilityRenderObject::visiblePositionRangeForLine):
2789         (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
2790         * dom/Document.cpp:
2791         (WebCore::Document::caretRangeFromPoint):
2792         * editing/FrameSelection.cpp:
2793         (WebCore::FrameSelection::contains):
2794         * editing/VisibleUnits.cpp:
2795         (WebCore::previousLinePosition):
2796         (WebCore::nextLinePosition):
2797         * page/EventHandler.cpp:
2798         (WebCore::EventHandler::selectClosestWordFromHitTestResult):
2799         (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
2800         (WebCore::EventHandler::handleMousePressEventTripleClick):
2801         (WebCore::EventHandler::handleMousePressEventSingleClick):
2802         (WebCore::selectionExtentRespectingEditingBoundary):
2803         (WebCore::EventHandler::updateSelectionForMouseDrag):
2804         (WebCore::EventHandler::handleMouseReleaseEvent):
2805         * page/Frame.cpp:
2806         (WebCore::Frame::visiblePositionForPoint):
2807         * rendering/RenderBlock.cpp:
2808         (WebCore::RenderBlock::selectionGaps):
2809         (WebCore::RenderBlock::nodeAtPoint):
2810         (WebCore::positionForPointRespectingEditingBoundaries):
2811         (WebCore::RenderBlock::positionForPointWithInlineChildren):
2812         (WebCore::isChildHitTestCandidate):
2813         (WebCore::RenderBlock::positionForPoint):
2814         * rendering/RenderBlock.h:
2815         * rendering/RenderBlockFlow.cpp:
2816         (WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
2817         (WebCore::RenderBlockFlow::positionForPoint):
2818         * rendering/RenderBlockFlow.h:
2819         * rendering/RenderBox.cpp:
2820         (WebCore::RenderBox::positionForPoint):
2821         * rendering/RenderBox.h:
2822         * rendering/RenderFileUploadControl.cpp:
2823         (WebCore::RenderFileUploadControl::positionForPoint):
2824         * rendering/RenderFileUploadControl.h:
2825         * rendering/RenderInline.cpp:
2826         (WebCore::RenderInline::positionForPoint):
2827         * rendering/RenderInline.h:
2828         * rendering/RenderLineBreak.cpp:
2829         (WebCore::RenderLineBreak::positionForPoint):
2830         * rendering/RenderLineBreak.h:
2831         * rendering/RenderMultiColumnSet.cpp:
2832         (WebCore::RenderMultiColumnSet::positionForPoint):
2833         * rendering/RenderMultiColumnSet.h:
2834         * rendering/RenderObject.cpp:
2835         (WebCore::RenderObject::positionForPoint):
2836         * rendering/RenderObject.h:
2837         * rendering/RenderRegion.cpp:
2838         (WebCore::RenderRegion::positionForPoint):
2839         * rendering/RenderRegion.h:
2840         * rendering/RenderReplaced.cpp:
2841         (WebCore::RenderReplaced::positionForPoint):
2842         * rendering/RenderReplaced.h:
2843         * rendering/RenderText.cpp:
2844         (WebCore::RenderText::positionForPoint):
2845         * rendering/RenderText.h:
2846         * rendering/svg/RenderSVGInlineText.cpp:
2847         (WebCore::RenderSVGInlineText::positionForPoint):
2848         * rendering/svg/RenderSVGInlineText.h:
2849         * rendering/svg/RenderSVGText.cpp:
2850         (WebCore::RenderSVGText::positionForPoint):
2851         * rendering/svg/RenderSVGText.h:
2852
2853 2014-04-25  Philippe Normand  <pnormand@igalia.com>
2854
2855         [GTK] Iframe seamless support was removed in r163427
2856         https://bugs.webkit.org/show_bug.cgi?id=132192
2857
2858         Reviewed by Carlos Garcia Campos.
2859
2860         Add the removed get and set methods as deprecated API to keep
2861         backwards compatibility.
2862
2863         * bindings/gobject/WebKitDOMDeprecated.cpp:
2864         (webkit_dom_processing_instruction_set_data):
2865         (webkit_dom_html_iframe_element_get_seamless):
2866         (webkit_dom_html_iframe_element_set_seamless):
2867         * bindings/gobject/WebKitDOMDeprecated.h:
2868         * bindings/gobject/WebKitDOMDeprecated.symbols:
2869
2870 2014-04-25  Philippe Normand  <pnormand@igalia.com>
2871
2872         [GTK] HTMLInputElement webkitdirectory property was removed in r163483
2873         https://bugs.webkit.org/show_bug.cgi?id=132191
2874
2875         Reviewed by Carlos Garcia Campos.
2876
2877         Add the removed get and set methods as deprecated API to keep
2878         backwards compatibility.
2879
2880         * bindings/gobject/WebKitDOMDeprecated.cpp:
2881         (webkit_dom_html_input_element_get_webkitdirectory):
2882         (webkit_dom_html_input_element_set_webkitdirectory):
2883         * bindings/gobject/WebKitDOMDeprecated.h:
2884         * bindings/gobject/WebKitDOMDeprecated.symbols:
2885
2886 2014-04-25  Javier Fernandez  <jfernandez@igalia.com>
2887
2888         [CSS Grid Layout] Implementation of the grid-template shorthand.
2889         https://bugs.webkit.org/show_bug.cgi?id=128980
2890
2891         Reviewed by Darin Adler.
2892
2893         This shorthand sets the values for the grid-template-columns,
2894         grid-template-rows and grid-template-areas, so the implementation
2895         tries to reuse as much available parsing functions as possible.
2896
2897         The "parsingGridTrackList" was refactored to return a CSSValue and
2898         let the "parseValue" function to assign the property value. The
2899         "forwardSlash" operator is now valid when the track-list clause is
2900         part of a shorthand. The "parseValue" function checkouts that only
2901         additional clauses are allowed when processing shorthands; the
2902         grid-columns-rows-get-set.html tests was modified to verify this.
2903
2904         The "parseGridTemplateAreas" was refactored too, in order to
2905         process single areas's rows. This is very useful for the
2906         gris-template secondary syntax, which mixes areas and rows values.
2907
2908         Finally, the "parseGirdLineNames" function was modified as well by
2909         defining an new argument to concatenate head/tail custom-ident
2910         elements and ensure the identList is at the heading index, since
2911         it's now possible the parseList was rewound.
2912
2913         The implementation of the grid-template shorthand tries first to
2914         match the <grid-template-columns> / <grid-template-rows> syntax,
2915         failing back to the secondary syntax if needed.  This approach
2916         requires to rewind the parseList but it produces a clearer code.
2917
2918         Test: fast/css-grid-layout/grid-template-shorthand-get-set.html
2919
2920         * css/CSSComputedStyleDeclaration.cpp:
2921         (WebCore::ComputedStyleExtractor::propertyValue):
2922         * css/CSSParser.cpp:
2923         (WebCore::CSSParser::parseValue):
2924         (WebCore::CSSParser::parseGridTemplateRowsAndAreas):
2925         (WebCore::CSSParser::parseGridTemplateShorthand):
2926         (WebCore::CSSParser::parseGridLineNames):
2927         (WebCore::CSSParser::parseGridTrackList):
2928         (WebCore::CSSParser::parseGridTemplateAreasRow):
2929         (WebCore::CSSParser::parseGridTemplateAreas):
2930         * css/CSSParser.h:
2931         * css/CSSParserValues.h:
2932         (WebCore::CSSParserValueList::setCurrentIndex):
2933         * css/CSSPropertyNames.in:
2934         * css/StylePropertyShorthand.cpp:
2935         (WebCore::webkitGridTemplateShorthand):
2936         * css/StylePropertyShorthand.h:
2937
2938 2014-04-25  Andreas Kling  <akling@apple.com>
2939
2940         Remove two unused SVGDocument functions.
2941         <https://webkit.org/b/132178>
2942
2943         Reviewed by Antti Koivisto.
2944
2945         * svg/SVGDocument.cpp:
2946         (WebCore::SVGDocument::dispatchZoomEvent): Deleted.
2947         (WebCore::SVGDocument::dispatchScrollEvent): Deleted.
2948         * svg/SVGDocument.h:
2949
2950 2014-04-25  Ion Rosca  <rosca@adobe.com>
2951
2952         Incomplete body painting when using blend modes
2953         https://bugs.webkit.org/show_bug.cgi?id=131889
2954
2955         The incomplete painting was caused by the transparency layer created for
2956         the root renderer. We can safely skip creating this transparency layer at
2957         the root level, as there is nothing else being painted behind this layer that
2958         could be used erroneously as a backdrop.
2959
2960         Reviewed by Simon Fraser.
2961
2962         Test: css3/compositing/blend-mode-with-body.html
2963
2964         * rendering/RenderLayer.h:
2965         Changing RenderLayer::paintsWithTransparency so that it will not
2966         return true when the root renderer needs to isolate blending.
2967
2968 2014-04-25  Darin Adler  <darin@apple.com>
2969
2970         ASSERTION FAILED: "!m_isolatedWorld->isNormal() || m_wrapper || !m_jsFunction" in svg/custom/use-instanceRoot-event-listeners.xhtml
2971         https://bugs.webkit.org/show_bug.cgi?id=132148
2972
2973         Reviewed by Andreas Kling.
2974
2975         Changed how JSCustomMarkFunction generation works. Instead of leaving out
2976         the generated visitChildren function, just generate a call to visitAdditionalChildren.
2977         This eliminates the need to repeat boilerplate.
2978
2979         The fix for the above bug was to correct mistaken logic where JSSVGElementInstance
2980         had a visitChildren that did not properly mark event listeners because it explicitly
2981         did not call through to the base class visitChildren. The new arrangement makes that
2982         mistake impossible.
2983
2984         * bindings/js/JSAttrCustom.cpp:
2985         (WebCore::JSAttr::visitAdditionalChildren): Use this instead of visitChildren.
2986         * bindings/js/JSAudioTrackCustom.cpp:
2987         (WebCore::JSAudioTrack::visitAdditionalChildren): Ditto.
2988         * bindings/js/JSAudioTrackListCustom.cpp:
2989         (WebCore::JSAudioTrackList::visitAdditionalChildren): Ditto.
2990         * bindings/js/JSCSSRuleCustom.cpp:
2991         (WebCore::JSCSSRule::visitAdditionalChildren): Ditto.
2992         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
2993         (WebCore::JSCSSStyleDeclaration::visitAdditionalChildren): Ditto.
2994         * bindings/js/JSCanvasRenderingContextCustom.cpp:
2995         (WebCore::JSCanvasRenderingContext::visitAdditionalChildren): Ditto.
2996         * bindings/js/JSCryptoKeyPairCustom.cpp:
2997         (WebCore::JSCryptoKeyPair::visitAdditionalChildren): Ditto.
2998         * bindings/js/JSDOMWindowCustom.cpp:
2999         (WebCore::JSDOMWindow::visitAdditionalChildren): Ditto.
3000         * bindings/js/JSMessageChannelCustom.cpp:
3001         (WebCore::JSMessageChannel::visitAdditionalChildren): Ditto.
3002         * bindings/js/JSMessagePortCustom.cpp:
3003         (WebCore::JSMessagePort::visitAdditionalChildren): Ditto.
3004         * bindings/js/JSNodeCustom.cpp:
3005         (WebCore::JSNode::visitAdditionalChildren): Ditto.
3006         * bindings/js/JSNodeFilterCustom.cpp:
3007         (WebCore::JSNodeFilter::visitAdditionalChildren): Ditto.
3008         * bindings/js/JSNodeIteratorCustom.cpp:
3009         (WebCore::JSNodeIterator::visitAdditionalChildren): Ditto.
3010         * bindings/js/JSSVGElementInstanceCustom.cpp:
3011         (WebCore::JSSVGElementInstance::visitAdditionalChildren): Ditto.
3012         * bindings/js/JSSharedWorkerCustom.cpp:
3013         (WebCore::JSSharedWorker::visitAdditionalChildren): Ditto.
3014         * bindings/js/JSStyleSheetCustom.cpp:
3015         (WebCore::JSStyleSheet::visitAdditionalChildren): Ditto.
3016         * bindings/js/JSTextTrackCueCustom.cpp:
3017         (WebCore::JSTextTrackCue::visitAdditionalChildren): Ditto.
3018         * bindings/js/JSTextTrackCustom.cpp:
3019         (WebCore::JSTextTrack::visitAdditionalChildren): Ditto.
3020         * bindings/js/JSTextTrackListCustom.cpp:
3021         (WebCore::JSTextTrackList::visitAdditionalChildren): Ditto.
3022         * bindings/js/JSTreeWalkerCustom.cpp:
3023         (WebCore::JSTreeWalker::visitAdditionalChildren): Ditto.
3024         * bindings/js/JSVideoTrackCustom.cpp:
3025         (WebCore::JSVideoTrack::visitAdditionalChildren): Ditto.
3026         * bindings/js/JSVideoTrackListCustom.cpp:
3027         (WebCore::JSVideoTrackList::visitAdditionalChildren): Ditto.
3028         * bindings/js/JSWebGLRenderingContextCustom.cpp:
3029         (WebCore::JSWebGLRenderingContext::visitAdditionalChildren): Ditto.
3030         * bindings/js/JSWorkerGlobalScopeCustom.cpp:
3031         (WebCore::JSWorkerGlobalScope::visitAdditionalChildren): Ditto.
3032         * bindings/js/JSXMLHttpRequestCustom.cpp:
3033         (WebCore::JSXMLHttpRequest::visitAdditionalChildren): Ditto.
3034         * bindings/js/JSXPathResultCustom.cpp:
3035         (WebCore::JSXPathResult::visitAdditionalChildren): Ditto.
3036
3037         * bindings/js/JSDOMGlobalObject.cpp:
3038         (WebCore::JSDOMGlobalObject::visitChildren): Rewrote to use modern for loops.
3039
3040         * bindings/scripts/CodeGeneratorJS.pm:
3041         (GenerateHeader): Generate declaration of visitAdditionalChildren.
3042         (GenerateImplementation): Generate call to visitAdditionalChildren.
3043
3044 2014-04-24  Andreas Kling  <akling@apple.com>
3045
3046         [iOS WebKit2] Enable optimization to mmap downloaded resources once they become file-backed.
3047         <https://webkit.org/b/132171>
3048         <rdar://problem/16720733>
3049
3050         Add a missing export for the USE(CFNETWORK) + WebKit2 combo.
3051
3052         Reviewed by Antti Koivisto.
3053
3054         * WebCore.exp.in:
3055
3056 2014-04-24  Darin Adler  <darin@apple.com>
3057
3058         FrameLoader::checkCompleted can hit the "ref'ing while destroyed" assertion
3059         https://bugs.webkit.org/show_bug.cgi?id=132163
3060         rdar://problem/16720640
3061
3062         Reviewed by Brady Eidson.
3063
3064         Couldn't find a way to test this yet. Would be nice to have a test.
3065
3066         * loader/FrameLoader.cpp:
3067         (WebCore::FrameLoader::checkCompleted): Move protector until after we check
3068         if the frame is already complete. That can happen in practice when this is
3069         called from within the frame's destructor. All the code that runs before the
3070         protector simply checks state and does not require protection.
3071
3072 2014-04-24  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3073
3074         Mark Supplement instead of RefCountedSupplement in NavigatorContentUtils 
3075         https://bugs.webkit.org/show_bug.cgi?id=132151
3076
3077         Reviewed by Darin Adler.
3078
3079         Though Original goal was to make it sharable across navigator instances, the NavigatorContentUtils
3080         has used RefCountedSupplement<Page> instead of RefCountedSupplement<Navigator>. This patch makes it
3081         use Supplement<Page> because there is no scenario which needs to be shared across navigator instances.
3082
3083         Blink merge from https://src.chromium.org/viewvc/blink?view=rev&revision=171403.
3084
3085         No new tests, no behavior changes.
3086
3087         * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
3088         (WebCore::NavigatorContentUtils::from):
3089         (WebCore::NavigatorContentUtils::create):
3090         (WebCore::provideNavigatorContentUtilsTo):
3091         * Modules/navigatorcontentutils/NavigatorContentUtils.h:
3092
3093 2014-04-24  Commit Queue  <commit-queue@webkit.org>
3094
3095         Unreviewed, rolling out r167700.
3096         https://bugs.webkit.org/show_bug.cgi?id=132142
3097
3098         Incorrectly reverted the change in r167547 for
3099         webkit.org/b/131898 (Requested by rniwa on #webkit).
3100
3101         Reverted changeset:
3102
3103         "Cursor doesn't change back to pointer when leaving the Safari
3104         window"
3105         https://bugs.webkit.org/show_bug.cgi?id=132038
3106         http://trac.webkit.org/changeset/167700
3107
3108 2014-04-24  Brady Eidson  <beidson@apple.com>
3109
3110         Rename "IMAGE_CONTROLS" feature to "SERVICE_CONTROLS"
3111         https://bugs.webkit.org/show_bug.cgi?id=132155
3112
3113         Reviewed by Tim Horton.
3114
3115         No new tests (No change in behavior).
3116
3117         * Configurations/FeatureDefines.xcconfig:
3118         * DerivedSources.make:
3119         * WebCore.exp.in:
3120         * css/CSSDefaultStyleSheets.cpp:
3121         (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
3122         * css/CSSPrimitiveValueMappings.h:
3123         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
3124         * css/CSSValueKeywords.in:
3125         * dom/Node.h:
3126         * html/HTMLImageElement.cpp:
3127         (WebCore::HTMLImageElement::HTMLImageElement):
3128         (WebCore::HTMLImageElement::parseAttribute):
3129         (WebCore::HTMLImageElement::didAttachRenderers):
3130         * html/HTMLImageElement.h:
3131         * html/shadow/ImageControlsRootElement.cpp:
3132         * html/shadow/ImageControlsRootElement.h:
3133         * html/shadow/mac/ImageControlsButtonElementMac.cpp:
3134         * html/shadow/mac/ImageControlsButtonElementMac.h:
3135         * html/shadow/mac/ImageControlsRootElementMac.cpp:
3136         * html/shadow/mac/ImageControlsRootElementMac.h:
3137         * page/ContextMenuContext.cpp:
3138         (WebCore::ContextMenuContext::ContextMenuContext):
3139         * page/ContextMenuContext.h:
3140         * page/ContextMenuController.cpp:
3141         (WebCore::ContextMenuController::maybeCreateContextMenu):
3142         (WebCore::ContextMenuController::populate):
3143         * page/ContextMenuController.h:
3144         * page/Settings.in:
3145         * platform/ThemeTypes.h:
3146         * rendering/RenderImage.cpp:
3147         (WebCore::RenderImage::canHaveChildren):
3148         * rendering/RenderTheme.cpp:
3149         (WebCore::RenderTheme::adjustStyle):
3150         (WebCore::RenderTheme::paint):
3151         (WebCore::RenderTheme::paintBorderOnly):
3152         (WebCore::RenderTheme::paintDecorations):
3153         * rendering/RenderTheme.h:
3154         * rendering/RenderThemeMac.h:
3155         * rendering/RenderThemeMac.mm:
3156         (WebCore::RenderThemeMac::servicesRolloverButtonCell):
3157         (WebCore::RenderThemeMac::paintImageControlsButton):
3158         (WebCore::RenderThemeMac::imageControlsButtonSize):
3159
3160 2014-04-24  Timothy Hatcher  <timothy@apple.com>
3161
3162         Web Inspector: Restore PageDebuggerAgent::enable / disable
3163         https://bugs.webkit.org/show_bug.cgi?id=132156
3164
3165         Restore functions that were eroniously removed in r167530.
3166
3167         Reviewed by Joseph Pecoraro.
3168
3169         * inspector/PageDebuggerAgent.cpp:
3170         (WebCore::PageDebuggerAgent::enable): Added.
3171         (WebCore::PageDebuggerAgent::disable): Added.
3172         * inspector/PageDebuggerAgent.h:
3173
3174 2014-04-24  Alexey Proskuryakov  <ap@apple.com>
3175
3176         Dropzone effects don't work in non-file documents
3177         https://bugs.webkit.org/show_bug.cgi?id=131770
3178
3179         Reviewed by Darin Adler.
3180
3181         File documents have two quirks that were making dropzone work in these before:
3182         1. An ancient hack for Dashboard allows pasteboard access from JS.
3183         2. On Mac, sandbox doesn't prevent File object creation, as we already have the access.
3184
3185         * dom/DataTransfer.cpp:
3186         (WebCore::DataTransfer::hasFileOfType):
3187         (WebCore::DataTransfer::hasStringOfType):
3188         * dom/DataTransfer.h:
3189         Moved these functions from EventHandler to DataTransfer. We can't create a DataTransfer
3190         with Files while dragging, security doesn't permit us to. But we can get the file name.
3191
3192         * fileapi/File.cpp:
3193         (WebCore::createBlobDataForFile):
3194         (WebCore::createBlobDataForFileWithName):
3195         (WebCore::File::contentTypeFromFilePath):
3196         (WebCore::getContentTypeFromFileName): Deleted.
3197         * fileapi/File.h:
3198         Exposed a function to get file type from path without creating a File first.
3199         This is much cheaper than creating a File, and works even when sandbox disallows
3200         read access to content, such as when dragging over a target.
3201
3202         * page/EventHandler.cpp:
3203         (WebCore::hasDropZoneType):
3204         (WebCore::hasFileOfType): Deleted.
3205         (WebCore::hasStringOfType): Deleted.
3206
3207 2014-04-24  Commit Queue  <commit-queue@webkit.org>
3208
3209         Unreviewed, rolling out r167441.
3210         https://bugs.webkit.org/show_bug.cgi?id=132152
3211
3212         Caused full screen regressions on vimeo, youtube, and others.
3213         (Requested by jernoble on #webkit).
3214
3215         Reverted changeset:
3216
3217         "Fullscreen media controls are unusable in pagination mode"
3218         https://bugs.webkit.org/show_bug.cgi?id=131705
3219         http://trac.webkit.org/changeset/167441
3220
3221 2014-04-24  Adenilson Cavalcanti  <cavalcantii@gmail.com>
3222
3223         Unused class forward declarations in Page
3224         https://bugs.webkit.org/show_bug.cgi?id=132141
3225
3226         Reviewed by Benjamin Poulain.
3227
3228         No new tests, no change on behavior.
3229
3230         * page/Page.h:
3231
3232 2014-04-24  Eric Carlson  <eric.carlson@apple.com>
3233
3234         [Mac] don't ask for AVAssetTrack properties before they are available
3235         https://bugs.webkit.org/show_bug.cgi?id=131902
3236         <rdar://problem/16505076>
3237
3238         Reviewed by Brent Fulgham.
3239
3240         No new tests, the behavior this changes can not be tested with a layout test.
3241
3242         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
3243         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3244         (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize
3245             m_cachedTotalBytes.
3246         (WebCore::MediaPlayerPrivateAVFoundationObjC::beginLoadingMetadata): Don't report that
3247             metadata has been loaded until the track properties we need have been loaded too.
3248         (WebCore::MediaPlayerPrivateAVFoundationObjC::totalBytes): Cache totalBytes instead
3249             of recalculating it every time.
3250         (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange): Invalidate cached
3251             total bytes.
3252         (WebCore::assetTrackMetadataKeyNames): Array of AVAssetTrack properties we use.
3253
3254 2014-04-24  Myles C. Maxfield  <mmaxfield@apple.com>
3255
3256         Unify platformWidthForGlyph across OS X and iOS
3257         https://bugs.webkit.org/show_bug.cgi?id=132036
3258
3259         Reviewed by Darin Adler.
3260
3261         This patch creates on shared SimpleFontData::platformWidthForGlyph() function for both OS X and iOS.
3262
3263         No new tests are necessary because there should be no behavior changes.
3264
3265         * platform/graphics/SimpleFontData.h: Signatures for two helper functions
3266         * platform/graphics/ios/SimpleFontDataIOS.mm: Replace iOS implementation of platformWidthForGlyph() with
3267         implementations of only the two helper functions
3268         (WebCore::SimpleFontData::getRenderingStyle): Compute style argument to CGFontGetGlyphAdvancesForStyle()
3269         (WebCore::SimpleFontData::advanceForColorBitmapFont): iOS doesn't have color bitmap fonts
3270         (WebCore::SimpleFontData::platformWidthForGlyph): Deleted.
3271         * platform/graphics/mac/SimpleFontDataMac.mm:
3272         (WebCore::SimpleFontData::getRenderingStyle): Compute style argument to CGFontGetGlyphAdvancesForStyle()
3273         (WebCore::SimpleFontData::advanceForColorBitmapFont): Use [NSFont advancementForGlyph] to compute the advance
3274         (WebCore::hasCustomTracking): Removed #if
3275         (WebCore::isEmoji): Only relevant on iOS
3276         (WebCore::SimpleFontData::platformWidthForGlyph): Shared implementation. Calls helper functions.
3277
3278 2014-04-24  Zalan Bujtas  <zalan@apple.com>
3279
3280         Subpixel rendering: Clipping on text areas when shifted by one device pixel.
3281         https://bugs.webkit.org/show_bug.cgi?id=132008
3282
3283         Reviewed by Darin Adler.
3284
3285         Make RenderTheme paint* functions LayoutRect aware. Textarea is device pixel snapped, while
3286         other theme controls are still on integral size/positions.
3287
3288         Test: fast/forms/hidpi-textarea-on-subpixel-position.html
3289
3290         * rendering/RenderBox.cpp:
3291         (WebCore::RenderBox::paintBoxDecorations):
3292         * rendering/RenderTheme.cpp:
3293         (WebCore::RenderTheme::paint):
3294         (WebCore::RenderTheme::paintBorderOnly):
3295         (WebCore::RenderTheme::paintDecorations):
3296         * rendering/RenderTheme.h:
3297         (WebCore::RenderTheme::paintTextField):
3298         (WebCore::RenderTheme::paintTextFieldDecorations):
3299         (WebCore::RenderTheme::paintTextArea):
3300         (WebCore::RenderTheme::paintTextAreaDecorations):
3301         * rendering/RenderThemeIOS.h:
3302         * rendering/RenderThemeIOS.mm:
3303         (WebCore::RenderThemeIOS::paintTextFieldDecorations):
3304         (WebCore::RenderThemeIOS::paintTextAreaDecorations):
3305         * rendering/RenderThemeMac.h:
3306         * rendering/RenderThemeMac.mm:
3307         (WebCore::RenderThemeMac::paintTextField):
3308         (WebCore::RenderThemeMac::paintTextArea):
3309
3310 2014-04-24  Myles C. Maxfield  <mmaxfield@apple.com>
3311
3312         FontCache::fontCache() never returns nullptr so it can be made to return a reference instead
3313         https://bugs.webkit.org/show_bug.cgi?id=132110
3314
3315         Reviewed by Tim Horton.
3316
3317         Updates callers to use '.' instead of '->'.
3318
3319         No new tests are necessary because there should be no behavior change.
3320
3321         * css/CSSFontFaceSource.cpp:
3322         (WebCore::CSSFontFaceSource::getFontData):
3323         * css/CSSFontSelector.cpp:
3324         (WebCore::CSSFontSelector::CSSFontSelector):
3325         (WebCore::CSSFontSelector::~CSSFontSelector):
3326         (WebCore::CSSFontSelector::addFontFaceRule):
3327         (WebCore::fontDataForGenericFamily):
3328         (WebCore::CSSFontSelector::getFallbackFontData):
3329         * platform/MemoryPressureHandler.cpp:
3330         (WebCore::MemoryPressureHandler::releaseMemory):
3331         * platform/graphics/FontCache.cpp:
3332         (WebCore::fontCache): Return a reference
3333         * platform/graphics/FontCache.h:
3334         (WebCore::FontCachePurgePreventer::FontCachePurgePreventer):
3335         (WebCore::FontCachePurgePreventer::~FontCachePurgePreventer):
3336         * platform/graphics/FontGlyphs.cpp:
3337         (WebCore::FontGlyphs::FontGlyphs):
3338         (WebCore::FontGlyphs::releaseFontData):
3339         (WebCore::FontGlyphs::realizeFontDataAt):
3340         (WebCore::FontGlyphs::glyphDataAndPageForCharacter):
3341         * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
3342         (WebCore::FontPlatformData::verticalData):
3343         * platform/graphics/ios/SimpleFontDataIOS.mm:
3344         (WebCore::SimpleFontData::platformCreateScaledFontData):
3345         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
3346         (WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
3347         * platform/graphics/mac/FontCacheMac.mm:
3348         (WebCore::invalidateFontCache):
3349         (WebCore::fontCacheRegisteredFontsChangedNotificationCallback):
3350         * platform/graphics/mac/SimpleFontDataMac.mm:
3351         (WebCore::SimpleFontData::platformDestroy):
3352         (WebCore::SimpleFontData::platformCreateScaledFontData):
3353         * platform/graphics/win/FontCacheWin.cpp:
3354         (WebCore::getCJKCodePageMasks):
3355         * platform/graphics/win/SimpleFontDataWin.cpp:
3356         (WebCore::SimpleFontData::containsCharacters):
3357         * platform/graphics/wince/FontCacheWinCE.cpp:
3358         (WebCore::getCJKCodePageMasks):
3359         * platform/graphics/wince/FontPlatformData.cpp:
3360         (WebCore::FontFamilyCodePageInfo::codePages):
3361         (WebCore::FixedSizeFontData::create):
3362         * platform/graphics/wince/GlyphPageTreeNodeWinCE.cpp:
3363         (WebCore::GlyphPage::fill):
3364         * platform/graphics/wince/SimpleFontDataWinCE.cpp:
3365         (WebCore::SimpleFontData::platformCreateScaledFontData):
3366         (WebCore::SimpleFontData::containsCharacters):
3367
3368 2014-04-24  Eric Carlson  <eric.carlson@apple.com>
3369
3370         [iOS] Manage AudioSession category according to media type
3371         https://bugs.webkit.org/show_bug.cgi?id=132096
3372
3373         Reviewed by Jer Noble.
3374
3375         * WebCore.exp.in: Export setting.
3376
3377         * html/HTMLMediaSession.cpp:
3378         (WebCore::HTMLMediaSession::HTMLMediaSession):
3379         (WebCore::initializeAudioSession): Deleted.
3380
3381         * page/Settings.cpp:
3382         * page/Settings.h:
3383         (WebCore::Settings::setShouldManageAudioSession): New.
3384         (WebCore::Settings::shouldManageAudioSession): Ditto.
3385
3386         * platform/audio/ios/AudioDestinationIOS.cpp:
3387         (WebCore::AudioDestinationIOS::AudioDestinationIOS): Use a MediaSession instead of inheriting
3388             from AudioListener and calling the AudioSession directly.
3389         (WebCore::AudioDestinationIOS::~AudioDestinationIOS): Ditto.
3390         (WebCore::AudioDestinationIOS::start): Notify session.
3391         (WebCore::AudioDestinationIOS::stop): Ditto.
3392         (WebCore::AudioDestinationIOS::beganAudioInterruption): Deleted.
3393         (WebCore::AudioDestinationIOS::endedAudioInterruption): Deleted.
3394         * platform/audio/ios/AudioDestinationIOS.h:
3395         (WebCore::AudioDestinationIOS::mediaType):
3396         (WebCore::AudioDestinationIOS::canReceiveRemoteControlCommands):
3397         (WebCore::AudioDestinationIOS::didReceiveRemoteControlCommand):
3398         (WebCore::AudioDestinationIOS::isPlaying): Deleted.
3399
3400         * platform/audio/ios/AudioSessionIOS.mm:
3401         (WebCore::categoryName): Debug-only logging function.
3402         (WebCore::AudioSession::setCategory): Don't stick with "media" once it is set.
3403
3404         * platform/audio/ios/MediaSessionManagerIOS.mm:
3405         (WebCore::MediaSessionManageriOS::resetRestrictions): Set up restrictions for WebAudio.
3406         (WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Don't set invalid start time.
3407
3408         * platform/audio/mac/MediaSessionManagerMac.cpp:
3409         (MediaSessionManager::updateSessionState): Manage AudioSession.active when WebAudio clients
3410             come and go. Manage AudioSession.category according to the number of WebAudio and
3411             HTMLMediaElement clients.
3412
3413 2014-04-24  David Hyatt  <hyatt@apple.com>
3414
3415         [New Multicolumn] Client rects don't work with column spans.
3416         https://bugs.webkit.org/show_bug.cgi?id=132131
3417
3418         Reviewed by Dean Jackson.
3419         
3420         Don't factor in the offset of the multicolumn set from the top
3421         of the multicolumn block. This was added already, and it doesn't
3422         need to be a part of columnTranslationForOffset.
3423
3424         Added fast/multicol/client-rects-spanners.html
3425
3426         * rendering/RenderMultiColumnSet.cpp:
3427         (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
3428
3429 2014-04-24  Praveen R Jadhav  <praveen.j@samsung.com>
3430
3431         [EFL] WebKit build fails when MEDIA_SOURCE is enabled
3432         https://bugs.webkit.org/show_bug.cgi?id=132118
3433
3434         Reviewed by Brent Fulgham.
3435
3436         Files MediaSourceGStreamer.cpp, SourceBufferPrivateGStreamer.cpp and
3437         WebKitMediaSourceGStreamer.cpp are included for EFL port build.
3438
3439         No new tests. No change in behaviour.
3440
3441         * PlatformEfl.cmake: MediaSourceGStreamer.cpp, SourceBufferPrivateGStreamer.cpp