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