1 2014-05-02 Jeremy Jones <jeremyj@apple.com>
3 Use displayNameForTrack instead of textTrack->label() for captions.
4 https://bugs.webkit.org/show_bug.cgi?id=131311
6 Reviewed by Darin Adler.
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.
11 * platform/ios/WebVideoFullscreenModelMediaElement.h:
12 * platform/ios/WebVideoFullscreenModelMediaElement.mm:
13 (WebVideoFullscreenModelMediaElement::setMediaElement):
14 move legible track code into updateLegibleOptions()
16 (WebVideoFullscreenModelMediaElement::handleEvent):
17 updateLegibleOptions on addTrack and removeTrack
19 (WebVideoFullscreenModelMediaElement::selectLegibleMediaOption):
20 select the corresponding TextTrack on HTMLMediaElement.
22 (WebVideoFullscreenModelMediaElement::updateLegibleOptions):
23 use the same mechanism as desktop to build the captions menu.
25 2014-05-02 Jeremy Jones <jeremyj@apple.com>
27 CSS-based Media Controls Show Different times content longer than 1 hour.
28 https://bugs.webkit.org/show_bug.cgi?id=132443
30 Reviewed by Jer Noble.
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.
36 * Modules/mediacontrols/mediaControlsApple.js:
37 (Controller.prototype.updateDuration):
38 Apply .hour-long-time class as appropriate.
40 (Controller.prototype.formatTime):
41 More robust formatting to handle hours.
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.
47 * Modules/mediacontrols/mediaControlsiOS.js:
48 (ControllerIOS.prototype.formatTime):
49 More robust formatting to handle hours.
51 2014-05-02 Jer Noble <jer.noble@apple.com>
53 [MSE][Mac] AVAssetTrack returns incorrect track size
54 https://bugs.webkit.org/show_bug.cgi?id=132469
56 Reviewed by Brent Fulgham.
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.
64 2014-05-02 Zalan Bujtas <zalan@apple.com>
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>
70 Reviewed by Simon Fraser.
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.
75 Currently not testable.
77 * rendering/RenderThemeIOS.mm:
78 (WebCore::RenderThemeIOS::paintTextFieldDecorations):
80 2014-05-02 Andreas Kling <akling@apple.com>
82 Remove HistogramSupport.
83 <https://webkit.org/b/132354>
85 Prune some leftover Chromium gunk that no other ports ever used.
87 Reviewed by Simon Fraser.
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:
107 (WebCore::cssPropertyID):
109 (WebCore::Document::~Document):
110 (WebCore::histogramMutationEventUsage): Deleted.
111 * dom/ShadowRoot.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):
128 2014-05-02 Brady Eidson <beidson@apple.com>
130 Stop flipping the ImageControlsButton
131 <rdar://problem/16773238> and https://bugs.webkit.org/show_bug.cgi?id=132502
133 Reviewed by Tim Horton.
135 * rendering/RenderThemeMac.mm:
136 (WebCore::RenderThemeMac::paintImageControlsButton):
138 2014-05-02 Jeremy Jones <jeremyj@apple.com>
140 Fullscreen UI does not appear after WebProcess has crashed
141 https://bugs.webkit.org/show_bug.cgi?id=132442
143 Reviewed by Darin Adler.
145 Clean up immediately when there is a WebProcess crash.
148 * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
149 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
150 (WebVideoFullscreenInterfaceAVKit::invalidate):
151 Clean-up resources immediately.
153 2014-05-02 Commit Queue <commit-queue@webkit.org>
155 Unreviewed, rolling out r168192.
156 https://bugs.webkit.org/show_bug.cgi?id=132498
158 Was not the correct fix (blurry!) (Requested by bfulgham_ on
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
168 2014-05-02 Alexey Proskuryakov <ap@apple.com>
170 Remove Blob contentDisposition handling
171 https://bugs.webkit.org/show_bug.cgi?id=132490
173 Reviewed by Sam Weinig.
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.
191 2014-05-02 Anders Carlsson <andersca@apple.com>
193 Implement FormData decoding using KeyedDecoder
194 https://bugs.webkit.org/show_bug.cgi?id=132494
196 Reviewed by Tim Horton.
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:
205 2014-05-02 Brent Fulgham <bfulgham@apple.com>
207 [iOS] deviceScaleFactor is being double-applied when rendering captions in full screen mode
208 https://bugs.webkit.org/show_bug.cgi?id=132481
210 Reviewed by Jer Noble.
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.
216 2014-05-02 Simon Fraser <simon.fraser@apple.com>
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>
222 Reviewed by Sam Weinig.
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.
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.
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):
252 2014-05-02 Anders Carlsson <andersca@apple.com>
254 Clean up FormDataElement
255 https://bugs.webkit.org/show_bug.cgi?id=132483
257 Reviewed by Sam Weinig.
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):
284 2014-05-02 Jer Noble <jer.noble@apple.com>
286 [iOS] Wireless playback button not blue when active
287 https://bugs.webkit.org/show_bug.cgi?id=132473
289 Reviewed by Simon Fraser.
291 The playback button's class was being set to 'undefined', due to Controller.ClassNames.active being undefined.
293 * Modules/mediacontrols/mediaControlsApple.js:
295 2014-05-02 Alexey Proskuryakov <ap@apple.com>
297 Don't abuse Blob deserialization constructor in WebSocket
298 https://bugs.webkit.org/show_bug.cgi?id=132478
300 Reviewed by Sam Weinig.
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
310 (WebCore::Blob::deserialize):
311 (WebCore::Blob::create): Deleted.
313 (WebCore::File::deserialize):
314 (WebCore::File::create): Deleted.
315 Renamed a special case of "create" function to avoid explaining what it is for.
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):
332 2014-05-02 Anders Carlsson <andersca@apple.com>
334 Add and implement KeyedDecoder::decodeBytes
335 https://bugs.webkit.org/show_bug.cgi?id=132479
337 Reviewed by Tim Horton.
339 * platform/KeyedCoding.h:
340 (WebCore::KeyedDecoder::decodeBytes):
342 2014-05-02 Joseph Pecoraro <pecoraro@apple.com>
344 [iOS] WebKit2 File Upload Support
345 https://bugs.webkit.org/show_bug.cgi?id=132024
347 Reviewed by Enrica Casucci.
349 * English.lproj/Localizable.strings:
350 New localized strings for <input type="file"> on iOS.
352 2014-05-02 Chris Fleizach <cfleizach@apple.com>
354 AX: WK2: iOS web page scrolling doesn't work with VoiceOver
355 https://bugs.webkit.org/show_bug.cgi?id=132028
357 Reviewed by Mario Sanchez Prada.
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.
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]):
376 2014-05-02 Jeremy Jones <jeremyj@apple.com>
378 Pause playback on exit fullscreen when inline playback not allowed.
379 https://bugs.webkit.org/show_bug.cgi?id=132450
381 Reviewed by Jer Noble.
383 Use correct method of determining if inline playback is allowed.
385 * html/HTMLMediaElement.cpp:
386 (WebCore::HTMLMediaElement::parseAttribute):
387 Use m_mediaSession->requiresFullscreenForVideoPlayback to detect if inline playback is allowed.
389 * platform/ios/WebVideoFullscreenModelMediaElement.mm:
390 (WebVideoFullscreenModelMediaElement::requestExitFullscreen):
391 Prevent duplicate exit requests.
393 2014-05-02 Ion Rosca <rosca@adobe.com>
395 [CSS Blending] Remove support for non-separable blend modes from background-blend-mode
396 https://bugs.webkit.org/show_bug.cgi?id=132327
398 Reviewed by Dean Jackson.
400 Removed support for non-separable background blend modes from the CSS parser.
401 Covered by existing tests.
404 (WebCore::CSSParser::parseFillProperty):
406 2014-05-02 Gyuyoung Kim <gyuyoung.kim@samsung.com>
408 Clean up #include <OwnPtr.h>|<PassOwnPtr.h> in Supplementable classes
409 https://bugs.webkit.org/show_bug.cgi?id=132466
411 Reviewed by Tim Horton.
413 Since r168144, Supplementable classes don't need to include OwnPtr.h or PassOwnPtr.h.
414 Clean up those inclusions.
416 No new tests, just clean up patch.
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:
434 2014-05-01 Ryuan Choi <ryuan.choi@samsung.com>
436 Remove TiledBackingStore stuff from Frame
437 https://bugs.webkit.org/show_bug.cgi?id=132458
439 Reviewed by Andreas Kling.
441 Although TiledBackingStore is using for the CoordinatedGraphics,
442 CoordinatedGraphics does not use tiledBackingStore of Frame.
444 This patch removed TiledBackingStore related code of the Frame.
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.
457 (WebCore::Frame::tiledBackingStore): Deleted.
458 * page/FrameView.cpp:
459 (WebCore::FrameView::repaintContentRectangle):
461 (WebCore::Settings::Settings):
462 (WebCore::Settings::setTiledBackingStoreEnabled): Deleted.
464 (WebCore::Settings::tiledBackingStoreEnabled): Deleted.
466 2014-05-01 Myles C. Maxfield <mmaxfield@apple.com>
468 Migrate all uses of DeviceMotionController and DeviceOrientationController to std::unique_ptr
469 https://bugs.webkit.org/show_bug.cgi?id=132461
471 Unreviewed build fix.
476 (WebCore::Document::Document):
478 * platform/ios/DeviceMotionClientIOS.h:
479 (WebCore::DeviceMotionClientIOS::create): Deleted.
480 * platform/ios/DeviceOrientationClientIOS.h:
481 (WebCore::DeviceOrientationClientIOS::create): Deleted.
483 2014-05-01 Gyuyoung Kim <gyuyoung.kim@samsung.com>
485 Convert OwnPtr and PassOwnPtr uses to std::unique_ptr in Supplement
486 https://bugs.webkit.org/show_bug.cgi?id=132165
488 Reviewed by Darin Adler.
490 According to convert from PassOwnPtr to std::unique_ptr, provideTo() callers also begin
491 to use std::make_unique.
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):
563 2014-05-01 Andreas Kling <akling@apple.com>
565 HTMLMediaElement: Remove two unnecessary virtual overrides.
566 <https://webkit.org/b/132445>
568 Now that ENABLE_PLUGIN_PROXY_FOR_VIDEO is gone, we can remove
571 - defaultEventHandler()
572 - willRespondToMouseClickEvents()
574 Reviewed by Darin Adler.
576 * html/HTMLMediaElement.cpp:
577 * html/HTMLMediaElement.h:
579 2014-05-01 Benjamin Poulain <bpoulain@apple.com>
581 ViewportConfiguration::minimumScale() uses the initial scale as initial value
582 https://bugs.webkit.org/show_bug.cgi?id=132451
583 <rdar://problem/16780111>
585 Reviewed by Enrica Casucci.
587 * page/ViewportConfiguration.cpp:
588 (WebCore::ViewportConfiguration::minimumScale):
589 The initial minimum scale was set to the initial scale, preventing some pages from zooming
592 2014-05-01 Alexey Proskuryakov <ap@apple.com>
594 Build fix for !ENABLE(BLOB) builds.
596 * fileapi/ThreadableBlobRegistry.cpp:
597 (WebCore::ThreadableBlobRegistry::registerBlobURL):
598 (WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):
600 2014-05-01 Alexey Proskuryakov <ap@apple.com>
602 Move size computation for Blob constructor into BlobRegistryImpl
603 https://bugs.webkit.org/show_bug.cgi?id=132439
605 Reviewed by Sam Weinig.
607 * Modules/websockets/WebSocket.cpp: (WebCore::WebSocket::didReceiveBinaryData):
608 Don't pass the size, anyone who cares can get it from BlobData.
610 * bindings/js/JSBlobCustom.cpp: (WebCore::JSBlobConstructor::constructJSBlob):
611 Updated for BlobBuilder changes.
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.
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).
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.
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.
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.
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.
653 2014-05-01 Eric Carlson <eric.carlson@apple.com>
655 [iOS] audio and video should automatically play to active external device
656 https://bugs.webkit.org/show_bug.cgi?id=132428
658 Reviewed by Jer Noble.
660 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
661 (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Set
662 AVPlayer.usesExternalPlaybackWhileExternalScreenIsActive.
664 2014-05-01 David Hyatt <hyatt@apple.com>
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
669 Reviewed by Oliver Hunt.
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
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):
687 2014-05-01 Simon Fraser <simon.fraser@apple.com>
689 Don't always make backing store for -webkit-backface-visibility:hidden
690 https://bugs.webkit.org/show_bug.cgi?id=132420
692 Reviewed by Sam Weinig.
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").
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.
704 Tests: compositing/backing/backface-visibility-in-3dtransformed.html
705 compositing/backing/backface-visibility-in-transformed.html
706 compositing/backing/backface-visibility.html
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:
719 2014-05-01 Alex Christensen <achristensen@webkit.org>
721 Finish updating ANGLE.
722 https://bugs.webkit.org/show_bug.cgi?id=132434
724 Reviewed by Dean Jackson.
727 Removed Uniform.cpp which is no longer in ANGLE.
729 2014-05-01 David Hyatt <hyatt@apple.com>
731 REGRESSION (new multi-column): WebKit2.ResizeReversePaginatedWebView fails on debug bots
732 https://bugs.webkit.org/show_bug.cgi?id=132429
734 Reviewed by Alexey Proskuryakov.
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.
740 * rendering/RenderMultiColumnSet.h:
741 * rendering/RenderView.cpp:
742 (WebCore::RenderView::pageCount):
744 2014-05-01 Brent Fulgham <bfulgham@apple.com>
746 Fix handling of attributes prior to compiling shader
747 https://bugs.webkit.org/show_bug.cgi?id=132430
749 Reviewed by Dean Jackson.
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
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
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.
770 2014-05-01 Zalan Bujtas <zalan@apple.com>
772 Subpixel rendering: Make selection gaps painting subpixel aware.
773 https://bugs.webkit.org/show_bug.cgi?id=132169
775 Reviewed by Simon Fraser.
777 Push selection gaps painting to device pixel boundaries instead of integral CSS pixel positions.
779 Test: fast/inline/hidpi-selection-gap-on-subpixel-position.html
781 * rendering/RenderBlock.cpp:
782 (WebCore::RenderBlock::blockSelectionGap):
783 (WebCore::RenderBlock::logicalLeftSelectionGap):
784 (WebCore::RenderBlock::logicalRightSelectionGap):
786 2014-05-01 David Kilzer <ddkilzer@apple.com>
788 Really remove ENABLE_PLUGIN_PROXY_FOR_VIDEO
789 <http://webkit.org/b/132432>
791 Reviewed by Tim Horton.
793 * platform/graphics/wince/MediaPlayerPrivateWinCE.h: Remove
794 methods and ivar in ENABLE(PLUGIN_PROXY_FOR_VIDEO).
796 2014-05-01 Javier Fernandez <jfernandez@igalia.com>
798 [CSS Grid Layout] Clamping the number of repetitions in repeat()
799 https://bugs.webkit.org/show_bug.cgi?id=131023
801 Reviewed by Brent Fulgham.
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
807 The implemented max repetitions is 10K.
809 Test: fast/css-grid-layout/grid-element-repeat-max-repetitions.html
812 (WebCore::CSSParser::parseGridTrackRepeatFunction):
814 2014-04-30 Jer Noble <jer.noble@apple.com>
816 [MSE] Seeking between two buffered ranges enquues incorrect buffers.
817 https://bugs.webkit.org/show_bug.cgi?id=132416
819 Reviewed by Eric Carlson.
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.
827 Drive-by fix: make the comparator functions take const& arguments to minimize object
830 * Modules/mediasource/SampleMap.cpp:
831 (WebCore::SampleIsLessThanMediaTimeComparator::operator()):
832 (WebCore::SampleIsGreaterThanMediaTimeComparator::operator()):
833 (WebCore::SampleMap::findSampleContainingPresentationTime):
834 (WebCore::SampleMap::reverseFindSampleContainingPresentationTime):
836 2014-05-01 Zalan Bujtas <zalan@apple.com>
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
841 Reviewed by Darin Adler.
843 Inline text selection painting now snaps to device pixels. It uses the same rounding logic as
844 other painting functions.
846 Test: fast/inline/hidpi-select-inline-on-subpixel-position.html
848 * rendering/EllipsisBox.cpp:
849 (WebCore::EllipsisBox::paintSelection):
850 * rendering/InlineTextBox.cpp:
851 (WebCore::InlineTextBox::paintSelection):
852 (WebCore::alignSelectionRectToDevicePixels): Deleted.
853 * rendering/InlineTextBox.h:
855 2014-05-01 Ryuan Choi <ryuan.choi@samsung.com>
857 [EFL] There are many warnings with software backend
858 https://bugs.webkit.org/show_bug.cgi?id=132422
860 Reviewed by Gyuyoung Kim.
862 ecore_evas_gl_x11_window_get should be called when only engine is opengl_x11.
864 This patch refactors not to call unnecessary API by checking engine type.
865 In addition, removed unnecessary isUsingEcoreX().
867 * platform/efl/EflScreenUtilities.cpp:
868 (WebCore::applyFallbackCursor):
869 (WebCore::getEcoreXWindow):
870 (WebCore::isUsingEcoreX): Deleted.
871 * platform/efl/EflScreenUtilities.h:
873 2014-05-01 Rik Cabanier <cabanier@adobe.com>
875 Calling createPattern with a broken image must throw an invalidstate error
876 https://bugs.webkit.org/show_bug.cgi?id=132407
878 Reviewed by Dirk Schulze.
880 Per the WebIDL spec, passing non-finite parameter to a method that
881 takes doubles, should generate a type error.
884 * canvas/philip/tests/2d.imageData.create2.nonfinite.html:
885 * fast/canvas/canvas-2d-imageData-create-nonfinite.html:
887 * html/canvas/CanvasRenderingContext2D.cpp:
888 (WebCore::CanvasRenderingContext2D::createImageData):
890 2014-04-30 David Hyatt <hyatt@apple.com>
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
895 Reviewed by Andreas Kling.
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.
901 2014-04-30 Alexey Proskuryakov <ap@apple.com>
903 Roll out fix for https://bugs.webkit.org/show_bug.cgi?id=131637:
904 Clean up unnecessary methods in the BackForwardClient interface
906 It broke a regression test and an API test.
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):
924 (WebCore::Page::Page):
925 (WebCore::Page::PageClients::PageClients):
928 2014-04-30 Simon Fraser <simon.fraser@apple.com>
930 More iOS build fixing. MediaPlayerPrivateIOS is defunct and can be removed.
931 Fix some build errors in other media files.
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.
939 2014-04-30 Simon Fraser <simon.fraser@apple.com>
941 Fix the iOS build, which no longer needs these calls
942 to enter/exitFullscreen.
944 * html/HTMLMediaElement.cpp:
945 (WebCore::HTMLMediaElement::parseAttribute):
947 2014-04-30 Simon Fraser <simon.fraser@apple.com>
949 Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO
950 https://bugs.webkit.org/show_bug.cgi?id=132396
952 Reviewed by Eric Carlson.
954 Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO and related code.
956 * Configurations/FeatureDefines.xcconfig:
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):
991 (WebCore::Settings::setVideoPluginProxyEnabled): Deleted.
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):
1024 2014-04-30 Simon Fraser <simon.fraser@apple.com>
1026 [iOS WK2] Some accerated overflow-scroll doesn't scroll correctly
1027 https://bugs.webkit.org/show_bug.cgi?id=132375
1029 Reviewed by Tim Horton.
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.
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.
1040 Added some FIXMEs in code that requires pixel snapping.
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.
1045 * rendering/RenderLayerBacking.cpp:
1046 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1048 2014-04-30 David Hyatt <hyatt@apple.com>
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
1053 Reviewed by Simon Fraser.
1055 Added fast/multicol/fixed-stack.html
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
1066 2014-04-30 Eric Carlson <eric.carlson@apple.com>
1068 [iOS] do not pause video when entering background while playing to external device
1069 https://bugs.webkit.org/show_bug.cgi?id=132374
1071 Reviewed by Jer Noble.
1073 * WebCore.exp.in: Update beginInterruption signature.
1075 * html/HTMLMediaElement.cpp:
1076 (WebCore::HTMLMediaElement::canOverrideBackgroundPlaybackRestriction): New, return true when
1077 playing to external device.
1078 * html/HTMLMediaElement.h:
1080 * platform/audio/MediaSession.cpp:
1081 (WebCore::MediaSession::beginInterruption): Add interruption type to beginInterruption.
1082 * platform/audio/MediaSession.h:
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:
1090 * platform/audio/ios/AudioDestinationIOS.h:
1091 * platform/audio/ios/MediaSessionManagerIOS.mm:
1092 (-[WebMediaSessionHelper interruption:]): Ditto.
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.
1099 2014-04-30 Manuel Rego Casasnovas <rego@igalia.com>
1101 Unreviewed, rolling out r167879 and r167942.
1102 https://bugs.webkit.org/show_bug.cgi?id=132408
1104 OrderIterator changes caused regressions in flexbox (Requested
1105 by rego on #webkit).
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.
1111 Reverted changesets:
1113 "OrderIterator refactoring to avoid extra loops"
1114 https://bugs.webkit.org/show_bug.cgi?id=119061
1115 http://trac.webkit.org/changeset/167879
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
1122 2014-04-30 Enrica Casucci <enrica@apple.com>
1124 Cursor gets thinner on empty lines.
1125 https://bugs.webkit.org/show_bug.cgi?id=132411
1126 <rdar://problem/15994556>
1128 Reviewed by Benjamin Poulain.
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.
1135 * rendering/RenderLineBreak.cpp:
1136 (WebCore::RenderLineBreak::localCaretRect):
1138 2014-04-30 VÃctor Manuel Jáquez Leal <vjaquez@igalia.com>
1140 [GStreamer] Use GstMetaVideo
1141 https://bugs.webkit.org/show_bug.cgi?id=132247
1143 Reviewed by Philippe Normand.
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.
1150 This patch enables the use of GstMetaVideo through the GstVideoFrame
1151 API. And it is used everywhere the buffer mapping is required.
1153 Also this patch changes to nullptr where zeros were used.
1155 Also, compile conditionally the video buffer conversion when it is
1156 ARGB/BGRA, since it is only required for the Cairo backend.
1158 No new tests, already covered by current tests.
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
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
1181 2014-04-30 VÃctor Manuel Jáquez Leal <vjaquez@igalia.com>
1183 [GTK][GStreamer] Remove unnecessary GLIB_CHECK_VERSION #ifdefs
1184 https://bugs.webkit.org/show_bug.cgi?id=132390
1186 Reviewed by Philippe Normand.
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.
1191 No new tests, already covered by current tests.
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.
1200 2014-04-30 Alex Christensen <achristensen@webkit.org>
1203 https://bugs.webkit.org/show_bug.cgi?id=132367
1204 <rdar://problem/16211451>
1206 Reviewed by Dean Jackson.
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.
1218 2014-04-30 Alexey Proskuryakov <ap@apple.com>
1220 Move Blob.slice() implementation into BlobRegistryImpl
1221 https://bugs.webkit.org/show_bug.cgi?id=132402
1223 Reviewed by Anders Carlsson.
1225 Part or centralizing the responsibility for file size tracking.
1228 (WebCore::Blob::Blob):
1229 (WebCore::Blob::slice): Deleted.
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:
1245 2014-04-30 Brent Fulgham <bfulgham@apple.com>
1247 Unreviewed build fix after r168041.
1249 * WebCore.exp.in: Add missing iOS exports.
1251 2014-04-30 Beth Dakin <bdakin@apple.com>
1253 Always-visible scrollbars continuously repaint after non-momentum scrollling
1254 https://bugs.webkit.org/show_bug.cgi?id=132403
1256 <rdar://problem/16553878>
1258 Reviewed by Simon Fraser.
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
1264 * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
1265 (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
1266 (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
1268 Expose shouldUsePresentationValue.
1269 * platform/mac/NSScrollerImpDetails.h:
1271 2014-04-30 Anders Carlsson <andersca@apple.com>
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>
1277 Reviewed by Dan Bernstein.
1279 Allow WebKitLegacy to link against WebCore.
1281 * Configurations/WebCore.xcconfig:
1283 2014-04-30 David Hyatt <hyatt@apple.com>
1285 [New Multicolumn] ASSERTs in fast/dynamic/continuation-detach-crash.html
1286 https://bugs.webkit.org/show_bug.cgi?id=132392
1288 Reviewed by Dean Jackson.
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.
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.
1302 (WebCore::RenderMultiColumnFlowThread::flowThreadRelativeWillBeRemoved):
1303 Tighten this code to use the parent() just in case we change the invariant of
1304 parent = containingBlock later.
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
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.
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.
1325 2014-04-29 Chris Fleizach <cfleizach@apple.com>
1327 AX: Make "contenteditable" regions into AXTextAreas
1328 https://bugs.webkit.org/show_bug.cgi?id=132379
1330 Reviewed by Mario Sanchez Prada.
1332 Make contenteditable regions into AXTextAreas. This will allow for a more standardized
1333 interface for interaction with assistive technologies.
1335 Test: accessibility/content-editable-as-textarea.html
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:
1351 2014-04-30 Brian J. Burg <burg@cs.washington.edu>
1353 Clean up unnecessary methods in the BackForwardClient interface
1354 https://bugs.webkit.org/show_bug.cgi?id=131637
1356 Reviewed by Andreas Kling.
1358 Demote back/current/forwardItem and iOS-specific methods from the
1359 BackForwardClient interface. Convert the class to not be refcounted.
1361 No new tests, no behavior was changed.
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.
1377 (WebCore::PageClients::PageClients): Initialize client to nullptr.
1379 2014-04-30 Brent Fulgham <bfulgham@apple.com>
1381 [Mac, iOS] Support caption activation via JS webkitHasClosedCaptions method
1382 https://bugs.webkit.org/show_bug.cgi?id=132320
1384 Reviewed by Eric Carlson.
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:
1394 2014-04-30 Alexey Proskuryakov <ap@apple.com>
1396 https://bugs.webkit.org/show_bug.cgi?id=132363
1397 Make Blob RawData immutable
1399 Reviewed by Anders Carlsson.
1401 * Modules/websockets/WebSocket.cpp: (WebCore::WebSocket::didReceiveBinaryData):
1402 Create RawData in one step.
1404 * WebCore.exp.in: Don't export a constructor that we no longer have (and the new one is inline).
1406 * fileapi/Blob.cpp: Removed entirely dead code.
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.
1415 * platform/network/BlobData.cpp:
1416 (WebCore::BlobDataItem::detachFromCurrentThread): RawData::detachFromCurrentThread()
1418 (WebCore::BlobDataHandle::BlobDataHandle): Deleted. This was entirely dead code.
1419 (WebCore::BlobDataHandle::~BlobDataHandle): Ditto.
1421 * platform/network/BlobData.h: Made RawData immutable.
1423 * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseBlob):
1424 Create RawData in one step.
1426 2014-04-30 David Hyatt <hyatt@apple.com>
1428 [New Multicolumn] Region offset not factored in when mapping to local coords
1429 https://bugs.webkit.org/show_bug.cgi?id=132383
1431 Reviewed by Anders Carlsson.
1433 Make sure to cache the offset of the multicolumn set from its parent and then
1434 add that in to the translation offset.
1436 * rendering/RenderMultiColumnFlowThread.cpp:
1437 (WebCore::RenderMultiColumnFlowThread::mapAbsoluteToLocalPoint):
1439 2014-04-30 Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com>
1441 Move removeEquivalentProperties functions to EditingStyle
1442 https://bugs.webkit.org/show_bug.cgi?id=131093
1444 Reviewed by Csaba Osztrogonác.
1446 A follow-up to r167967. Use single line declaration for template methods.
1448 * editing/EditingStyle.h:
1450 2014-04-30 Manuel Rego Casasnovas <rego@igalia.com>
1452 [CSS Grid Layout] Enable runtime feature by default
1453 https://bugs.webkit.org/show_bug.cgi?id=132189
1455 Reviewed by Benjamin Poulain.
1457 * page/Settings.in: Set cssGridLayoutEnabled to true.
1459 2014-04-30 Manuel Rego Casasnovas <rego@igalia.com>
1461 [CSS Grid Layout] Wrap some specific grid code under compilation flag
1462 https://bugs.webkit.org/show_bug.cgi?id=132341
1464 Reviewed by Benjamin Poulain.
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.
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:
1477 2014-04-29 Commit Queue <commit-queue@webkit.org>
1479 Unreviewed, rolling out r167962 and r167975.
1480 https://bugs.webkit.org/show_bug.cgi?id=132376
1482 Mysteriously broke many tests (Requested by ap on #webkit).
1484 Reverted changesets:
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
1491 "Unreviewed test fix after r167962."
1492 http://trac.webkit.org/changeset/167975
1494 2014-04-29 David Hyatt <hyatt@apple.com>
1496 [New Multicolumn] Multiple tests assert in RenderGeometryMap
1497 https://bugs.webkit.org/show_bug.cgi?id=132285
1499 Reviewed by Simon Fraser.
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).
1506 * rendering/RenderMultiColumnFlowThread.cpp:
1507 (WebCore::RenderMultiColumnFlowThread::offsetFromContainer):
1508 * rendering/RenderMultiColumnFlowThread.h:
1510 2014-04-29 Benjamin Poulain <bpoulain@apple.com>
1512 [iOS][WK2] When pageScaleFactor * deviceScaleFactor = 1, the tile grid is completely messed up
1513 https://bugs.webkit.org/show_bug.cgi?id=132368
1515 Reviewed by Simon Fraser.
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.
1522 2014-04-29 Alexey Proskuryakov <ap@apple.com>
1524 Remove an unused override of BlobRegistryImpl::appendStorageItems
1525 https://bugs.webkit.org/show_bug.cgi?id=132365
1527 Reviewed by Andreas Kling.
1529 * platform/network/BlobRegistryImpl.cpp:
1530 (WebCore::BlobRegistryImpl::appendStorageItems): Deleted.
1531 * platform/network/BlobRegistryImpl.h:
1533 2014-04-29 Eric Carlson <eric.carlson@apple.com>
1535 [Mac] tag the video layers with descriptive name to aid debugging
1536 https://bugs.webkit.org/show_bug.cgi?id=132371
1538 Reviewed by Darin Adler.
1540 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1541 (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Set the AVPlayerLayer
1542 name in a debug build.
1544 2014-04-29 Nikos Andronikos <nikos.andronikos-webkit@cisra.canon.com.au>
1546 [GTK][cmake] CMake variable (non)expansion causing 'File name too long' build error.
1547 https://bugs.webkit.org/show_bug.cgi?id=132244
1549 Reviewed by Martin Robinson.
1551 Removing quotes around include directory variable ${WebCore_INCLUDE_DIRECTORIES} in
1552 the include_directories cmake macro enables the variable to be expanded correctly.
1554 No tests created as this fixes a platform specific build issue.
1556 * PlatformGTK.cmake:
1558 2014-04-29 Brent Fulgham <bfulgham@apple.com>
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.
1565 2014-04-29 Brady Eidson <beidson@apple.com>
1567 Handle selection services menu.
1568 <rdar://problem/16727798> and https://bugs.webkit.org/show_bug.cgi?id=132362
1570 Reviewed by Tim Horton.
1574 2014-04-29 Myles C. Maxfield <mmaxfield@apple.com>
1576 Removing unused argument in InlineFlowBox::placeBoxesInInlineDirection()
1577 https://bugs.webkit.org/show_bug.cgi?id=132369
1579 Reviewed by Darin Adler.
1581 This was not caught by our compiler because placeBoxesInInlineDirection()
1582 is mutually-recursive with placeBoxRangeInInlineDirection().
1584 No new tests are necessary because there should be no behavior change.
1586 * rendering/InlineFlowBox.cpp:
1587 (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
1588 (WebCore::InlineFlowBox::placeBoxRangeInInlineDirection):
1589 * rendering/InlineFlowBox.h:
1590 * rendering/RenderBlockLineLayout.cpp:
1591 (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine):
1593 2014-04-29 Alex Christensen <achristensen@webkit.org>
1595 [WinCairo] Switch video from GStreamer to Media Foundation.
1596 https://bugs.webkit.org/show_bug.cgi?id=132358
1598 Reviewed by Brent Fulgham.
1600 * WebCore.vcxproj/WebCore.vcxproj:
1601 Removed dependencies on GStreamer.
1603 2014-04-29 Simon Fraser <simon.fraser@apple.com>
1605 Remove some PLATFORM(IOS) #ifdefs related to hasAcceleratedTouchScrolling()
1606 https://bugs.webkit.org/show_bug.cgi?id=132353
1608 Reviewed by Tim Horton & Darin Adler.
1610 Minor cleanup and refactoring to remove #idefs.
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
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
1632 (WebCore::layerOrAncestorIsTransformedOrScrolling): Deleted.
1634 2014-04-29 Simon Fraser <simon.fraser@apple.com>
1636 Remove Settings::compositedScrollingForFramesEnabled
1637 https://bugs.webkit.org/show_bug.cgi?id=132352
1639 Reviewed by Andreas Kling.
1641 The usesCompositedScrolling setting was only used by Chromium, so
1642 remove it and associated code.
1644 * page/FrameView.cpp:
1645 (WebCore::FrameView::usesCompositedScrolling): Deleted.
1648 * rendering/RenderLayerCompositor.cpp:
1649 (WebCore::RenderLayerCompositor::updateScrollLayerPosition):
1651 2014-04-29 Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com>
1653 Move removeEquivalentProperties functions to EditingStyle
1654 https://bugs.webkit.org/show_bug.cgi?id=131093
1656 Reviewed by Darin Adler.
1658 Moved the removeEquivalentProperties functions
1659 from StyleProperties to EditingStyle class.
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:
1672 2014-04-29 David Hyatt <hyatt@apple.com>
1674 [New Multicolumn] Implement support for compositing
1675 https://bugs.webkit.org/show_bug.cgi?id=132298
1677 Reviewed by Simon Fraser.
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.
1684 * rendering/RenderLayerBacking.cpp:
1685 (WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread):
1686 Make sure this code only runs for named flow threads.
1688 * rendering/RenderLayerCompositor.cpp:
1689 (WebCore::RenderLayerCompositor::canBeComposited):
1690 Turn on compositing support for in-flow RenderFlowThreads instead of always returning
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.
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.
1705 (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
1706 Don't factor in the overall flow thread portion, since this is handled by the callers
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.
1715 2014-04-29 Mark Hahnenberg <mhahnenberg@apple.com>
1717 JSProxies should be cacheable
1718 https://bugs.webkit.org/show_bug.cgi?id=132351
1720 Reviewed by Geoffrey Garen.
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.
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.
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.
1734 * bindings/js/JSDOMWindowShell.h:
1735 (WebCore::JSDOMWindowShell::createStructure):
1737 2014-04-29 Brent Fulgham <bfulgham@apple.com>
1739 [Mac, iOS] Support caption activation via JS webkitHasClosedCaptions method
1740 https://bugs.webkit.org/show_bug.cgi?id=132320
1742 Reviewed by Eric Carlson.
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:
1757 2014-04-28 Roger Fong <roger_fong@apple.com>
1759 Plugins hidden by images should autoplay.
1760 https://bugs.webkit.org/show_bug.cgi?id=132222.
1761 <rdar://problem/16653536>
1763 Reviewed by Jon Lee and Darin Adler.
1765 * WebCore.exp.in: Add exports needed by WK2.
1767 2014-04-29 Filip Pizlo <fpizlo@apple.com>
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
1772 Rubber stamped by Geoffrey Garen.
1774 It already has a lot of tests.
1776 * Configurations/FeatureDefines.xcconfig:
1778 2014-04-29 Brady Eidson <beidson@apple.com>
1780 Change Image Controls replacement to use selection and paste
1781 <rdar://problem/16302722> and https://bugs.webkit.org/show_bug.cgi?id=131992
1783 Reviewed by Tim Horton.
1785 * WebCore.exp.in: Remove deleted symbol.
1787 * html/shadow/mac/ImageControlsButtonElementMac.cpp:
1788 (WebCore::ImageControlsButtonElementMac::defaultEventHandler):
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:
1796 2014-04-29 Jer Noble <jer.noble@apple.com>
1798 [iOS] Remove workaround for <rdar://problem/16578727>.
1799 https://bugs.webkit.org/show_bug.cgi?id=132338
1801 Reviewed by Darin Adler.
1803 Now that <rdar://problem/16578727> is fixed, remove the workaround by replacing the
1804 call to -_updatePlaybackControlsViewController with one to -layoutIfNeeded.
1806 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1807 (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
1809 2014-04-29 Zan Dobersek <zdobersek@igalia.com>
1811 ScriptExecutionContext::Task should work well with C++11 lambdas
1812 https://bugs.webkit.org/show_bug.cgi?id=129795
1814 Reviewed by Darin Adler.
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.
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.
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.
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.
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.
2022 2014-04-29 Manuel Rego Casasnovas <rego@igalia.com>
2024 REGRESSION (r167879): Heap-use-after-free in WebCore::RenderFlexibleBox
2025 https://bugs.webkit.org/show_bug.cgi?id=132337
2027 Reviewed by Simon Fraser.
2029 From Blink r154582 by <jchaffraix@chromium.org>
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.
2036 The solution is simple: just clear the memory when we remove a child.
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.
2042 Test: fast/flexbox/order-iterator-crash.html
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.
2056 2014-04-29 Enrica Casucci <enrica@apple.com>
2058 iOS build fix after http://trac.webkit.org/changeset/167937.
2061 * rendering/RenderThemeIOS.mm:
2062 (WebCore::RenderThemeIOS::adjustButtonStyle):
2064 2014-04-29 Hans Muller <hmuller@adobe.com>
2066 [CSS Shapes] off-by-one error in Shape::createRasterShape()
2067 https://bugs.webkit.org/show_bug.cgi?id=132154
2069 Reviewed by Bem Jones-Bey.
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
2079 Two existing tests were revised to account for this change.
2081 * rendering/shapes/RasterShape.cpp:
2082 (WebCore::RasterShape::getExcludedIntervals):
2083 * rendering/shapes/Shape.cpp:
2084 (WebCore::Shape::createRasterShape):
2086 2014-04-29 Bem Jones-Bey <bjonesbe@adobe.com>
2088 Wrap CSS length conversion arguments in an object
2089 https://bugs.webkit.org/show_bug.cgi?id=131552
2091 Reviewed by Andreas Kling.
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
2101 Note that the zoom argument, which was previously a float in some
2102 places and a double in others is now a float.
2104 This is a port of a Blink patch by timloh@chromium.org.
2106 No new tests, no behavior change.
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):
2241 2014-04-29 Zoltan Horvath <zoltan@webkit.org>
2243 [CSS Shapes] complex calc args for inset round vanish
2244 https://bugs.webkit.org/show_bug.cgi?id=132293
2246 Reviewed by Bem Jones-Bey.
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.
2253 I've added new parsing test.
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):
2265 2014-04-29 Zoltan Horvath <zoltan@webkit.org>
2267 [CSS Shapes] complex calc values for shape-margin return null for computed style
2268 https://bugs.webkit.org/show_bug.cgi?id=132313
2270 Reviewed by Bem Jones-Bey.
2272 We need to pass RenderStyle* to the cssValuePool when parsing
2273 shape-margin in order to use calc() as a parameter.
2275 I've added the new test case to parsing-shape-margin.html
2277 * css/CSSComputedStyleDeclaration.cpp:
2278 (WebCore::ComputedStyleExtractor::propertyValue):
2280 2014-04-29 Chris Fleizach <cfleizach@apple.com>
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
2285 Reviewed by Mario Sanchez Prada.
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.
2291 Test: accessibility/table-with-footer-section-above-body.html
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):
2304 2014-04-29 Chris Fleizach <cfleizach@apple.com>
2306 AX: SpeechSynthesisUtterance cannot addEventListener
2307 https://bugs.webkit.org/show_bug.cgi?id=132321
2309 Reviewed by Mario Sanchez Prada.
2311 Modified an existing test (speech-synthesis-speak.html) to use addEventTarget.
2313 * Modules/speech/SpeechSynthesisUtterance.idl:
2315 2014-04-29 Hans Muller <hmuller@adobe.com>
2317 [CSS Shapes] shape-outside polygon fails when first vertex is 0,0
2318 https://bugs.webkit.org/show_bug.cgi?id=132132
2320 Reviewed by Bem Jones-Bey.
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.
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
2332 Test: fast/shapes/shape-outside-floats/shape-outside-polygon-zero-vertex.html
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):
2350 2014-04-29 Andrei Bucur <abucur@adobe.com>
2352 [CSS Regions] Fix getClientRects() for content nodes
2353 https://bugs.webkit.org/show_bug.cgi?id=117407
2355 Reviewed by David Hyatt.
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.
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
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
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):
2409 2014-04-29 Andrei Bucur <abucur@adobe.com>
2411 Store the containing region map inside the flow thread
2412 https://bugs.webkit.org/show_bug.cgi?id=131647
2414 Reviewed by Mihnea Ovidenie.
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.
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.
2423 Test: fast/regions/inline-strike-through.html
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):
2444 2014-04-28 Benjamin Poulain <benjamin@webkit.org>
2446 SelectorCodeGenerator::generateElementIsNthChild() leaks the parent register :nth-child() is non-filtering
2447 https://bugs.webkit.org/show_bug.cgi?id=132311
2449 Reviewed by Andreas Kling.
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).
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.
2458 Test: fast/selectors/several-nth-child.html
2460 * cssjit/SelectorCompiler.cpp:
2461 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
2463 2014-04-28 Yusuke Suzuki <utatane.tea@gmail.com>
2465 CSS JIT: backtracking with current / parent element for child
2466 https://bugs.webkit.org/show_bug.cgi?id=132057
2468 Reviewed by Benjamin Poulain.
2470 Calculate appropriate backtracking start height from the closest
2471 descendant. And at first, we use it for a simple optimization.
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.
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
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):
2503 2014-04-28 Benjamin Poulain <bpoulain@apple.com>
2505 [iOS][WK2] Restore the scroll position and scale from the HistoryItem (mostly)
2506 https://bugs.webkit.org/show_bug.cgi?id=132307
2508 Reviewed by Simon Fraser.
2512 2014-04-28 Beth Dakin <bdakin@apple.com>
2514 Scrollbars do not update properly when topContentInset changes dynamically
2515 https://bugs.webkit.org/show_bug.cgi?id=132309
2517 <rdar://problem/16642232>
2519 Reviewed by Tim Horton.
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):
2527 2014-04-28 David Hyatt <hyatt@apple.com>
2529 [New Multicolumn] event.offsetX/offsetY don't work correctly
2530 https://bugs.webkit.org/show_bug.cgi?id=132284
2532 Reviewed by Simon Fraser.
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
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
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.
2551 2014-04-28 Commit Queue <commit-queue@webkit.org>
2553 Unreviewed, rolling out r167857.
2554 https://bugs.webkit.org/show_bug.cgi?id=132305
2556 the change was rolled out, roll out the new expectations as
2557 well (Requested by thorton on #webkit).
2561 "Unreviewed. Updating one bindings test baseline after
2563 http://trac.webkit.org/changeset/167857
2565 2014-04-28 Dean Jackson <dino@apple.com>
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>
2571 Reviewed by Beth Dakin.
2573 Like setState, there is an animated version of setHighlighted available.
2575 * platform/mac/ThemeMac.mm:
2576 (WebCore::updateStates): Use private version of _setHighlighted where possible.
2578 2014-04-28 Commit Queue <commit-queue@webkit.org>
2580 Unreviewed, rolling out r167855.
2581 https://bugs.webkit.org/show_bug.cgi?id=132301
2583 Broke the windows build (Requested by bfulgham on #webkit).
2587 "ScriptExecutionContext::Task should work well with C++11
2589 https://bugs.webkit.org/show_bug.cgi?id=129795
2590 http://trac.webkit.org/changeset/167855
2592 2014-04-24 Andy Estes <aestes@apple.com>
2594 [iOS] Implement WebQuickLookHandleClient for WebKit2
2595 https://bugs.webkit.org/show_bug.cgi?id=132157
2597 Reviewed by Darin Adler.
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.
2605 2014-04-28 Chris Fleizach <cfleizach@apple.com>
2607 REGRESSION: Intermittent crash in SpeechSynthesis::didFinishSpeaking
2608 https://bugs.webkit.org/show_bug.cgi?id=111613
2610 Reviewed by Mark Lam.
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.
2615 * platform/mock/PlatformSpeechSynthesizerMock.cpp:
2616 (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
2618 2014-04-28 Commit Queue <commit-queue@webkit.org>
2620 Unreviewed, rolling out r167871.
2621 https://bugs.webkit.org/show_bug.cgi?id=132290
2623 broke a newmulticol test (spanner-nested-dynamic) (Requested
2624 by thorton on #webkit).
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
2632 2014-04-28 Commit Queue <commit-queue@webkit.org>
2634 Unreviewed, rolling out r167853.
2635 https://bugs.webkit.org/show_bug.cgi?id=132288
2637 caused crashes+timeouts+layout test failures described in the
2638 bug (Requested by thorton on #webkit).
2642 "Coalesce responses on network process side"
2643 https://bugs.webkit.org/show_bug.cgi?id=132229
2644 http://trac.webkit.org/changeset/167853
2646 2014-04-24 Simon Fraser <simon.fraser@apple.com>
2648 [iOS WK2] flickery scrolling with overflow-scrolling:touch
2649 https://bugs.webkit.org/show_bug.cgi?id=132150
2651 Reviewed by Tim Horton.
2653 Fix typo in a comment.
2655 * page/scrolling/AsyncScrollingCoordinator.cpp:
2656 (WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):
2658 2014-04-28 Martin Robinson <mrobinson@igalia.com>
2660 [GTK] Builtin cursors do not properly handle transparency
2661 https://bugs.webkit.org/show_bug.cgi?id=131866
2663 Reviewed by Gustavo Noronha Silva.
2665 Tested by ManualTests/cursor.html.
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.
2675 2014-04-28 Carlos Garcia Campos <cgarcia@igalia.com>
2677 Unreviewed. Update GObject DOM bindings symbols file.
2679 * bindings/gobject/webkitdom.symbols: Add missing symbols.
2681 2014-04-28 Manuel Rego Casasnovas <rego@igalia.com>
2683 OrderIterator refactoring to avoid extra loops
2684 https://bugs.webkit.org/show_bug.cgi?id=119061
2686 Reviewed by Darin Adler.
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.
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>.
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
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.
2705 No new tests, already covered by current tests.
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().
2732 2014-04-28 Zan Dobersek <zdobersek@igalia.com>
2734 std::bitset<>::test() does unnecessary bounds checks on CSSPropertyID bitsets
2735 https://bugs.webkit.org/show_bug.cgi?id=131685
2737 Reviewed by Darin Adler.
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.
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):
2750 2014-04-28 Carlos Garcia Campos <cgarcia@igalia.com>
2752 [GTK] TextTrack kind and mode attributes are enums since r166180
2753 https://bugs.webkit.org/show_bug.cgi?id=132228
2755 Reviewed by Martin Robinson.
2757 Improve coding style according to review comments, that I forgot
2758 to do before landing previous commit.
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):
2765 2014-04-28 Carlos Garcia Campos <cgarcia@igalia.com>
2767 [GTK] TextTrack kind and mode attributes are enums since r166180
2768 https://bugs.webkit.org/show_bug.cgi?id=132228
2770 Reviewed by Martin Robinson.
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.
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:
2784 2014-04-28 Carlos Garcia Campos <cgarcia@igalia.com>
2786 [GTK] TextTrack::addCue can raise an exception since r163974
2787 https://bugs.webkit.org/show_bug.cgi?id=132227
2789 Reviewed by Martin Robinson.
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
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):
2805 2014-04-28 Carlos Garcia Campos <cgarcia@igalia.com>
2807 [GTK] TextTrackCue API changed in r163649
2808 https://bugs.webkit.org/show_bug.cgi?id=132226
2810 Reviewed by Martin Robinson.
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.
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.
2844 2014-04-27 Andrei Bucur <abucur@adobe.com>
2846 Store the containing region map inside the flow thread
2847 https://bugs.webkit.org/show_bug.cgi?id=131647
2849 Reviewed by Mihnea Ovidenie.
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.
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.
2858 Test: fast/regions/inline-strike-through.html
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):
2879 2014-04-27 Darin Adler <darin@apple.com>
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
2885 Reviewed by Andreas Kling.
2887 Test: fast/text/simple-lines-hover-underline.html
2889 Checked that this does not hurt performance by running the
2890 run-perf-tests PerformanceTests/Layout/line-layout.html command before and after.
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.
2906 * rendering/RenderBlockFlow.h: Made simpleLineLayout function no longer an inline.
2907 Added a private createLineBoxes function.
2909 2014-04-27 Praveen R Jadhav <praveen.j@samsung.com>
2911 [MediaStream] .ended shouldn't be part of MediaStream IDL
2912 https://bugs.webkit.org/show_bug.cgi?id=132104
2914 Reviewed by Eric Carlson.
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.
2920 MediaStream-add-remove-tracks.html is updated.
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()
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.
2946 2014-04-25 Andy Estes <aestes@apple.com>
2948 [iOS] Stop creating a WKWebResourceQuickLookDelegate for every WebResourceLoader
2949 https://bugs.webkit.org/show_bug.cgi?id=132215
2951 Reviewed by Dan Bernstein.
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.
2958 2014-04-27 Sam Weinig <sam@webkit.org>
2960 [iOS WebKit2] Add support for text autosizing
2961 <rdar://problem/16545245>
2962 https://bugs.webkit.org/show_bug.cgi?id=132237
2964 Reviewed by Tim Horton.
2966 Move text autosizing width from Frame to Page, as it is a Page level concept.
2970 (WebCore::Frame::textAutosizingWidth): Deleted.
2971 (WebCore::Frame::setTextAutosizingWidth): Deleted.
2973 * page/FrameView.cpp:
2974 (WebCore::FrameView::layout):
2976 (WebCore::Page::Page):
2978 (WebCore::Page::textAutosizingWidth):
2979 (WebCore::Page::setTextAutosizingWidth):
2981 2014-04-27 Zan Dobersek <zdobersek@igalia.com>
2983 Unreviewed. Updating one bindings test baseline after r167855.
2985 * bindings/scripts/test/JS/JSTestCallback.cpp:
2986 (WebCore::JSTestCallback::~JSTestCallback):
2988 2014-04-27 Darin Adler <darin@apple.com>
2990 Webpages can trigger loads with invalid URLs
2991 https://bugs.webkit.org/show_bug.cgi?id=132224
2992 rdar://problem/16697142
2994 Reviewed by Alexey Proskuryakov.
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.
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.
3005 * loader/NavigationScheduler.cpp:
3006 (WebCore::ScheduledURLNavigation::ScheduledURLNavigation): Take a URL rather
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.
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.
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.
3032 * page/SecurityOrigin.cpp:
3033 (WebCore::SecurityOrigin::urlWithUniqueSecurityOrigin): Return a URL instead
3035 * page/SecurityOrigin.h: Updated for above change.
3037 2014-04-27 Zan Dobersek <zdobersek@igalia.com>
3039 ScriptExecutionContext::Task should work well with C++11 lambdas
3040 https://bugs.webkit.org/show_bug.cgi?id=129795
3042 Reviewed by Darin Adler.
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.
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.
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.
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.
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.
3248 2014-04-27 Antti Koivisto <antti@apple.com>
3250 Coalesce responses on network process side
3251 https://bugs.webkit.org/show_bug.cgi?id=132229
3253 Reviewed by Andreas Kling.
3257 2014-04-27 David Kilzer <ddkilzer@apple.com>
3259 Roll out changes not part of the patch reviewed for Bug 132089
3260 <http://webkit.org/b/132089>
3262 * loader/SubframeLoader.cpp:
3263 (WebCore::SubframeLoader::loadOrRedirectSubframe):
3264 * page/DOMWindow.cpp:
3265 (WebCore::DOMWindow::setLocation):
3266 (WebCore::DOMWindow::createWindow):
3267 (WebCore::DOMWindow::open):
3269 2014-04-26 Darin Adler <darin@apple.com>
3271 Frame and page lifetime fixes in WebCore::createWindow
3272 https://bugs.webkit.org/show_bug.cgi?id=132089
3274 Reviewed by Sam Weinig.
3276 Speculative fix because I was unable to reproduce the crash that was
3277 reported with the test case attached to this bug.
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
3285 2014-04-26 Alexey Proskuryakov <ap@apple.com>
3287 Local files should not be allowed to read pasteboard data during drag
3288 https://bugs.webkit.org/show_bug.cgi?id=131767
3290 Reviewed by Sam Weinig.
3292 Test: fast/files/local-file-drag-security.html
3294 * page/DragController.cpp:
3295 (WebCore::DragController::dragExited):
3296 (WebCore::DragController::tryDHTMLDrag):
3297 Make an old Dashboard quirk really Dashboard only.
3299 2014-04-24 Darin Adler <darin@apple.com>
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
3305 Reviewed by Brent Fulgham.
3307 Tests: fast/dynamic/remove-invisible-node-inside-selection.html
3308 fast/dynamic/remove-node-inside-selection.html
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.
3320 2014-04-25 Ryosuke Niwa <rniwa@webkit.org>
3322 REGRESSION (r167689): Hovering file name in a file input causes a crash
3323 https://bugs.webkit.org/show_bug.cgi?id=132214
3325 Reviewed by Andreas Kling.
3327 The bug was caused by callDefaultEventHandlersInTheBubblingOrder unconditionally
3328 accessing path.contextAt(0) even if the event path was empty.
3330 Fixed the bug by exiting early when the event path is empty.
3332 Test: fast/events/shadow-event-path-2.html
3334 * dom/EventDispatcher.cpp:
3335 (WebCore::callDefaultEventHandlersInTheBubblingOrder):
3337 2014-04-25 Tim Horton <timothy_horton@apple.com>
3339 REGRESSION (r167828): http/tests/media/hls/video-controls-live-stream.html fails
3341 * English.lproj/mediaControlsLocalizedStrings.js:
3342 Add 'Live Broadcast' to the localized strings list.
3344 2014-04-25 Brady Eidson <beidson@apple.com>
3346 Add a selection overlay.
3347 <rdar://problem/16727797> and https://bugs.webkit.org/show_bug.cgi?id=132200
3349 Reviewed by David Hyatt.
3351 No new tests (WK2 feature in development).
3353 * WebCore.xcodeproj/project.pbxproj:
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.
3367 * page/EditorClient.h:
3368 (WebCore::EditorClient::selectionRectsDidChange):
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:
3377 2014-04-08 Jer Noble <jer.noble@apple.com>
3379 Support "Live" streams in media controls.
3380 https://bugs.webkit.org/show_bug.cgi?id=131390
3382 Reviewed by Brent Fulgham.
3384 Test: http/tests/media/hls/video-controls-live-stream.html
3386 Support "Live" streams by adding an isLive property to our media controls.
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.
3406 2014-04-25 Dean Jackson <dino@apple.com>
3408 Allow a platform-specific size enumeration to be passed into popup-menu display
3409 https://bugs.webkit.org/show_bug.cgi?id=132195
3411 Reviewed by Brent Fulgham. With some in-person review comments from Sam Weinig.
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.
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
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.
3438 2014-04-25 Javier Fernandez <jfernandez@igalia.com>
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
3443 Reviewed by Martin Robinson.
3445 Properly resolving the grid-template shorthand for the corresponding longhand
3448 No new tests, grid-template-shorthand-get-set.html already covers this case.
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):
3458 2014-04-25 David Hyatt <hyatt@apple.com>
3460 Column rules not respecting scroll offsets.
3461 https://bugs.webkit.org/show_bug.cgi?id=109683
3463 Reviewed by Dean Jackson.
3465 Added fast/multicol/scrolling-column-rules.html
3467 * rendering/RenderBlock.cpp:
3468 (WebCore::RenderBlock::paintColumnRules):
3469 Make paintColumnRules virtual so that it works with both column implementations.
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.
3475 * rendering/RenderBlock.h:
3476 paintColumnRules is now virtual.
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.
3485 2014-04-23 Jon Honeycutt <jhoneycutt@apple.com>
3487 Crash applying editing commands from iframe onload event
3489 <https://bugs.webkit.org/show_bug.cgi?id=132103>
3490 <rdar://problem/15696351>
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().
3496 Reviewed by Darin Adler.
3498 Test: editing/apply-style-iframe-crash.html
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.
3507 2014-04-25 David Hyatt <hyatt@apple.com>
3509 [New Multicolumn] fast/multicol/hit-test-* layout tests all fail
3510 https://bugs.webkit.org/show_bug.cgi?id=132081
3512 Reviewed by Dean Jackson.
3514 Added a bunch of tests in fast/multicol/newmulticol/compare-with-old-impl/hit-test-*.html
3516 * rendering/RenderBlock.h:
3517 Make offsetForContents public, since I need to call it from RenderMultiColumnSet.
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.
3524 * rendering/RenderMultiColumnSet.cpp:
3525 (WebCore::RenderMultiColumnSet::positionForPoint):
3526 Refactor this function to call a helper function instead, translateRegionPointToFlowThread.
3528 (WebCore::RenderMultiColumnSet::translateRegionPointToFlowThread):
3529 This function is logical (unlike the mistaken physical function I first implemented in
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.
3538 2014-04-25 Andreas Kling <akling@apple.com>
3540 Mark some things with WTF_MAKE_FAST_ALLOCATED.
3541 <https://webkit.org/b/132198>
3543 Use FastMalloc for more things.
3545 Reviewed by Anders Carlsson.
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:
3565 * page/scrolling/ScrollingStateNode.h:
3566 * platform/graphics/FontGenericFamilies.h:
3567 * platform/graphics/FontPlatformData.h:
3569 2014-04-25 Radu Stavila <stavila@adobe.com>
3571 [CSS Regions] Rename objectShouldPaintInFlowRegion to something more clear
3572 https://bugs.webkit.org/show_bug.cgi?id=132050
3574 Reviewed by Andreas Kling.
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).
3579 No new tests required, it's just a method rename.
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):
3599 2014-04-25 Enrica Casucci <enrica@apple.com>
3601 iOS build fix after http://trac.webkit.org/changeset/167803
3605 (WebCore::Frame::checkOverflowScroll):
3606 * rendering/RenderBlock.cpp:
3607 (WebCore::positionForPointRespectingEditingBoundaries):
3609 2014-04-24 David Hyatt <hyatt@apple.com>
3611 [New Multicolumn] Add support for offsetLeft and offsetTop.
3612 https://bugs.webkit.org/show_bug.cgi?id=132080
3614 Reviewed by Andrei Bucur.
3616 Added fast/multicol/client-spanners-complex.html and offset-top-left.html
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.
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.
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.
3634 * rendering/RenderMultiColumnSet.cpp:
3635 (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
3636 Patched to factor in the flow thread portion rect of the specific multicolumn set.
3638 * rendering/RenderObject.h:
3639 (WebCore::RenderObject::isRenderMultiColumnFlowThread):
3640 Added for toRenderMultiColumnFlowThread capability.
3642 2014-04-25 Brent Fulgham <bfulgham@apple.com>
3644 ScrollingCoordinator is unaware of topContentInset
3645 https://bugs.webkit.org/show_bug.cgi?id=132158
3646 <rdar://problem/16706152>
3648 Reviewed by Darin Adler.
3650 Test: platform/mac/fast/scrolling/scroll-select-bottom-test.html
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
3660 * page/scrolling/ScrollingCoordinator.cpp:
3661 (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion): Also
3662 include the topContentInset value in our calculation.
3664 2014-04-25 Javier Fernandez <jfernandez@igalia.com>
3666 REGRESSION(r167799): Breaks debug build
3667 https://bugs.webkit.org/show_bug.cgi?id=132194
3669 Reviewed by Andrei Bucur.
3671 Fix the debug bots after r167799
3673 No new tests, no new functionality.
3675 * css/CSSParser.cpp:
3676 (WebCore::CSSParser::parseGridTemplateShorthand):
3678 2014-04-25 Miyoung Shin <myid.shin@samsung.com>
3680 Web process is crashed during dispatching touchEvent created by JS.
3681 https://bugs.webkit.org/show_bug.cgi?id=113225
3683 Reviewed by Benjamin Poulain.
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.
3689 Test: fast/events/touch/create-touch-event-without-touchList.html
3691 * dom/EventDispatcher.cpp:
3692 (WebCore::EventDispatcher::dispatchEvent):
3693 (WebCore::EventPath::updateTouchLists):
3694 (WebCore::addRelatedNodeResolversForTouchList): Deleted.
3696 2014-04-25 Philippe Normand <pnormand@igalia.com>
3698 [GTK] File webkitRelativePath attribute was removed in r163483
3699 https://bugs.webkit.org/show_bug.cgi?id=132193
3701 Reviewed by Carlos Garcia Campos.
3703 Add the removed getter as deprecated API to keep backwards compatibility.
3705 * bindings/gobject/WebKitDOMDeprecated.cpp:
3706 (webkit_dom_file_get_webkit_relative_path):
3707 * bindings/gobject/WebKitDOMDeprecated.h:
3708 * bindings/gobject/WebKitDOMDeprecated.symbols:
3710 2014-04-25 Radu Stavila <stavila@adobe.com>
3712 [CSS Regions] Overflow selection doesn't work properly
3713 https://bugs.webkit.org/show_bug.cgi?id=130715
3715 Reviewed by David Hyatt.
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.
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
3725 * accessibility/AccessibilityRenderObject.cpp:
3726 (WebCore::AccessibilityRenderObject::visiblePositionRangeForLine):
3727 (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
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):
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:
3791 2014-04-25 Philippe Normand <pnormand@igalia.com>
3793 [GTK] Iframe seamless support was removed in r163427
3794 https://bugs.webkit.org/show_bug.cgi?id=132192
3796 Reviewed by Carlos Garcia Campos.
3798 Add the removed get and set methods as deprecated API to keep
3799 backwards compatibility.
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:
3808 2014-04-25 Philippe Normand <pnormand@igalia.com>
3810 [GTK] HTMLInputElement webkitdirectory property was removed in r163483
3811 https://bugs.webkit.org/show_bug.cgi?id=132191
3813 Reviewed by Carlos Garcia Campos.
3815 Add the removed get and set methods as deprecated API to keep
3816 backwards compatibility.
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:
3824 2014-04-25 Javier Fernandez <jfernandez@igalia.com>
3826 [CSS Grid Layout] Implementation of the grid-template shorthand.
3827 https://bugs.webkit.org/show_bug.cgi?id=128980
3829 Reviewed by Darin Adler.
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.
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.
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.
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.
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.
3856 Test: fast/css-grid-layout/grid-template-shorthand-get-set.html
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):
3869 * css/CSSParserValues.h:
3870 (WebCore::CSSParserValueList::setCurrentIndex):
3871 * css/CSSPropertyNames.in:
3872 * css/StylePropertyShorthand.cpp:
3873 (WebCore::webkitGridTemplateShorthand):
3874 * css/StylePropertyShorthand.h:
3876 2014-04-25 Andreas Kling <akling@apple.com>
3878 Remove two unused SVGDocument functions.
3879 <https://webkit.org/b/132178>
3881 Reviewed by Antti Koivisto.
3883 * svg/SVGDocument.cpp:
3884 (WebCore::SVGDocument::dispatchZoomEvent): Deleted.
3885 (WebCore::SVGDocument::dispatchScrollEvent): Deleted.
3886 * svg/SVGDocument.h:
3888 2014-04-25 Ion Rosca <rosca@adobe.com>
3890 Incomplete body painting when using blend modes
3891 https://bugs.webkit.org/show_bug.cgi?id=131889
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.
3898 Reviewed by Simon Fraser.
3900 Test: css3/compositing/blend-mode-with-body.html
3902 * rendering/RenderLayer.h:
3903 Changing RenderLayer::paintsWithTransparency so that it will not
3904 return true when the root renderer needs to isolate blending.
3906 2014-04-25 Darin Adler <darin@apple.com>
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
3911 Reviewed by Andreas Kling.
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.
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
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.
3975 * bindings/js/JSDOMGlobalObject.cpp:
3976 (WebCore::JSDOMGlobalObject::visitChildren): Rewrote to use modern for loops.
3978 * bindings/scripts/CodeGeneratorJS.pm:
3979 (GenerateHeader): Generate declaration of visitAdditionalChildren.
3980 (GenerateImplementation): Generate call to visitAdditionalChildren.
3982 2014-04-24 Andreas Kling <akling@apple.com>
3984 [iOS WebKit2] Enable optimization to mmap downloaded resources once they become file-backed.
3985 <https://webkit.org/b/132171>
3986 <rdar://problem/16720733>
3988 Add a missing export for the USE(CFNETWORK) + WebKit2 combo.
3990 Reviewed by Antti Koivisto.
3994 2014-04-24 Darin Adler <darin@apple.com>
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
4000 Reviewed by Brady Eidson.
4002 Couldn't find a way to test this yet. Would be nice to have a test.
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.
4010 2014-04-24 Gyuyoung Kim <gyuyoung.kim@samsung.com>
4012 Mark Supplement instead of RefCountedSupplement in NavigatorContentUtils
4013 https://bugs.webkit.org/show_bug.cgi?id=132151
4015 Reviewed by Darin Adler.
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.
4021 Blink merge from https://src.chromium.org/viewvc/blink?view=rev&revision=171403.
4023 No new tests, no behavior changes.
4025 * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
4026 (WebCore::NavigatorContentUtils::from):
4027 (WebCore::NavigatorContentUtils::create):
4028 (WebCore::provideNavigatorContentUtilsTo):
4029 * Modules/navigatorcontentutils/NavigatorContentUtils.h:
4031 2014-04-24 Commit Queue <commit-queue@webkit.org>
4033 Unreviewed, rolling out r167700.
4034 https://bugs.webkit.org/show_bug.cgi?id=132142
4036 Incorrectly reverted the change in r167547 for
4037 webkit.org/b/131898 (Requested by rniwa on #webkit).
4041 "Cursor doesn't change back to pointer when leaving the Safari
4043 https://bugs.webkit.org/show_bug.cgi?id=132038
4044 http://trac.webkit.org/changeset/167700
4046 2014-04-24 Brady Eidson <beidson@apple.com>
4048 Rename "IMAGE_CONTROLS" feature to "SERVICE_CONTROLS"
4049 https://bugs.webkit.org/show_bug.cgi?id=132155