Timeline
Jun 18, 2017:
- 11:37 PM Changeset in webkit [218478] by
-
- 4 edits in trunk
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.17.4 release.
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit2:
- gtk/NEWS: Add release notes for 2.17.4.
- 10:40 PM Changeset in webkit [218477] by
-
- 8 edits in branches/safari-603-branch/Source/WebCore
- 10:39 PM Changeset in webkit [218476] by
-
- 7 edits in branches/safari-603-branch
- 10:36 PM Changeset in webkit [218475] by
-
- 39 edits1 delete in branches/safari-603-branch
- 10:32 PM Changeset in webkit [218474] by
-
- 2 edits in branches/safari-603-branch/Source/WebCore
- 10:26 PM Changeset in webkit [218473] by
-
- 6 edits8 deletes in branches/safari-603-branch/LayoutTests
- 10:22 PM Changeset in webkit [218472] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r218253): Infinite animated gifs no longer loop
https://bugs.webkit.org/show_bug.cgi?id=173464
Reviewed by Carlos Alberto Lopez Perez.
After the first loop iteration we keep rendering the same frame all the time, so it looks like if the animation
stopped. This is because in r218253 we changed to use SharedBuffer instead of a Vector in ImageBackingStore, but
we are not correctly copying the data in the copy constructor. We are using SharedBuffer::copy() that doesn't
actually copy the data of the segments.
- platform/graphics/ImageBackingStore.h:
(WebCore::ImageBackingStore::ImageBackingStore): Copy the data of the other SharedBuffer.
- 10:12 PM Changeset in webkit [218471] by
-
- 9 edits in trunk/Source/WebCore
[GStreamer] MainThreadNotifier ASSERTION FAILED: m_boundThread == currentThread() in _WebKitWebSrcPrivate::~_WebKitWebSrcPrivate
https://bugs.webkit.org/show_bug.cgi?id=152043
Reviewed by Xabier Rodriguez-Calvar.
Stop using a WeakPtr in MainThreadNotifier, because it's not thread safe, which causes a crash in debug builds when
the notifier is destroyed in a different thread. Make MainThreadNotifier thread safe refcounted instead, and add
an invalidate() method to mark it as invalid.
- platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
(WebCore::InbandTextTrackPrivateGStreamer::handleSample):
(WebCore::InbandTextTrackPrivateGStreamer::streamChanged):
- platform/graphics/gstreamer/MainThreadNotifier.h:
(WebCore::MainThreadNotifier::MainThreadNotifier): Deleted.
(WebCore::MainThreadNotifier::notify): Deleted.
(WebCore::MainThreadNotifier::cancelPendingNotifications): Deleted.
(WebCore::MainThreadNotifier::addPendingNotification): Deleted.
(WebCore::MainThreadNotifier::removePendingNotification): Deleted.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::videoChangedCallback):
(WebCore::MediaPlayerPrivateGStreamer::videoSinkCapsChangedCallback):
(WebCore::MediaPlayerPrivateGStreamer::audioChangedCallback):
(WebCore::MediaPlayerPrivateGStreamer::textChangedCallback):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::volumeChangedCallback):
(WebCore::MediaPlayerPrivateGStreamerBase::muteChangedCallback):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
- platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
(WebCore::TrackPrivateBaseGStreamer::TrackPrivateBaseGStreamer):
(WebCore::TrackPrivateBaseGStreamer::~TrackPrivateBaseGStreamer):
(WebCore::TrackPrivateBaseGStreamer::disconnect):
(WebCore::TrackPrivateBaseGStreamer::activeChangedCallback):
(WebCore::TrackPrivateBaseGStreamer::tagsChanged):
- platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
- platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webkit_web_src_init):
(webKitWebSrcDispose):
(webKitWebSrcStop):
(webKitWebSrcStart):
(webKitWebSrcNeedData):
(webKitWebSrcEnoughData):
(webKitWebSrcSeek):
- 9:53 PM Changeset in webkit [218470] by
-
- 2 edits in trunk/Source/WebKit2
Drop redundant IPC in WebPage::tryClose()
https://bugs.webkit.org/show_bug.cgi?id=173533
Reviewed by Sam Weinig.
Drop redundant IPC to stop the responsiveness timer in WebPage::tryClose(). The
destructor for the SendStopResponsivenessTimer already takes care of sending the
IPC.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::tryClose):
- 9:19 PM Changeset in webkit [218469] by
-
- 5 edits in branches/safari-603-branch/Source
Versioning.
- 9:00 PM Changeset in webkit [218468] by
-
- 3 edits2 adds in trunk
Meter element doesn't respect the writing direction
https://bugs.webkit.org/show_bug.cgi?id=173507
Reviewed by Sam Weinig.
Source/WebCore:
The bug was caused by NSLevelIndicatorCell no longer using the value of baseWritingDirection
to determine the direction of rendering in macOS Sierra and later. It instead relies on
the value of userInterfaceLayoutDirection.
Fixed the bug by setting both values. Once we dropped the support for macOS El Capitan
and earlier, we can remove the code to set baseWritingDirection.
Test: fast/dom/HTMLMeterElement/meter-rtl.html
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::levelIndicatorFor):
LayoutTests:
A regression ref test since existing tests were pixel tests and did not catch this regression.
Note that black border was added to workaround the anti-aliasing differences in macOS High Sierra.
- fast/dom/HTMLMeterElement/meter-rtl-expected.html: Added.
- fast/dom/HTMLMeterElement/meter-rtl.html: Added.
- 8:12 PM Changeset in webkit [218467] by
-
- 2 edits in trunk/Source/WebCore
Remove 'EditCommand::isEditCommandComposition'.
https://bugs.webkit.org/show_bug.cgi?id=173525
Reviewed by Wenson Hsieh.
Should remove 'isEditCommandComposition' from 'EditCommand' for:
- 'EditCommandComposition' is no longer a subclass of EditCommand.
- 'isEditCommandComposition' is not used at all.
- editing/EditCommand.h:
(WebCore::EditCommand::isCompositeEditCommand):
(WebCore::EditCommand::isEditCommandComposition): Deleted.
- 6:59 PM Changeset in webkit [218466] by
-
- 3 edits in trunk/Source/WebKit2
Drop unused UserMediaPermissionRequestManager::cancelPendingRequests()
https://bugs.webkit.org/show_bug.cgi?id=173529
<rdar://problem/32836986>
Reviewed by Sam Weinig.
Drop UserMediaPermissionRequestManager::cancelPendingRequests() as it is unused
and its implementation is wrong (modifies the hash maps it is iterating on).
- WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::cancelPendingRequests): Deleted.
- WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
- 1:25 PM Changeset in webkit [218465] by
-
- 7 edits4 adds in trunk
Crash when re-entering MediaDevicesEnumerationRequest::cancel()
https://bugs.webkit.org/show_bug.cgi?id=173522
<rdar://problem/31185739>
Reviewed by Darin Adler.
Source/WebCore:
When a MediaDevicesRequest is started, it creates a MediaDevicesEnumerationRequest
object and passes a completion handler to that MediaDevicesEnumerationRequest
object. The completion handler holds a reference to the MediaDevicesRequest object
so that its stays alive until the MediaDevicesEnumerationRequest either completes
or is canceled. MediaDevicesRequest also holds a reference to the
MediaDevicesEnumerationRequest object via its m_enumerationRequest data member.
When the document is destroyed, both MediaDevicesRequest::contextDestroyed() and
MediaDevicesEnumerationRequest::contextDestroyed() gets called and the other is not
pre-determined. If MediaDevicesEnumerationRequest::contextDestroyed() gets called
first then it calls MediaDevicesEnumerationRequest::cancel(). Calling cancel() ends
up destroying the completion handler. Destroying the completion handler ends up
dereferencing and destroying the MediaDevicesRequest object. The MediaDevicesRequest
destructor would call MediaDevicesEnumerationRequest::cancel() again, causing us to
re-enter it and assign nullptr to the completion callback again. Re-entering
std::function's operator=(nullptr_t) is not safe because of the way it is implemented
as we end up trying to destroy the lambda twice and crashing. Using a WTF::Function
instead fixes this particular issue because re-entering WTF::Function's operator=(nullptr_t)
is safe.
However, this fix is not sufficient. Calling the MediaDevicesRequest destructor also
dereferencing and destroys the MediaDevicesEnumerationRequest object. As a result,
when MediaDevicesEnumerationRequest::contextDestroyed() returns from its call to cancel
|this| is already dead when we call ContextDestructionObserver::contextDestroyed().
To address this issue, we now protect |this| in MediaDevicesEnumerationRequest::contextDestroyed().
Test: fast/mediastream/destroy-document-while-enumerating-devices.html
- Modules/mediastream/MediaDevicesEnumerationRequest.cpp:
(WebCore::MediaDevicesEnumerationRequest::contextDestroyed):
Protect |this| as the call to cancel() may destroy |this| before calling
ContextDestructionObserver::contextDestroyed() otherwise.
- Modules/mediastream/MediaDevicesEnumerationRequest.h:
Use WTF::Function instead of std::function for the completion handler as
it is safer (in terms of re-entrency) and avoids unnecessary copying.
- Modules/mediastream/MediaDevicesRequest.cpp:
(WebCore::MediaDevicesRequest::~MediaDevicesRequest):
Stop calling MediaDevicesEnumerationRequest::cancel(). When the destructor
is called, the MediaDevicesEnumerationRequest has either completed or been
canceled so there is no need to cancel again. I added an assertion to
make sure it is the case. This avoids re-entering
MediaDevicesEnumerationRequest::cancel() is some cases, which was risky.
(WebCore::MediaDevicesRequest::start):
Add comment for clarity and capture a Ref<> instead of a RefPtr<> now that
we can since we use WTF::Function.
Tools:
Add API test for re-entering Function's assignment operators.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/Function.cpp: Added.
(TestWebKitAPI::TestObject::TestObject):
(TestWebKitAPI::TestObject::~TestObject):
(TestWebKitAPI::TestObject::operator()):
(TestWebKitAPI::TEST):
LayoutTests:
Add layout test coverage. This test would flakily crash before the fix because it
relies on the order in which contextDestroyed() is called for MediaDevicesRequest
and MediaDevicesEnumerationRequest.
- fast/mediastream/destroy-document-while-enumerating-devices-expected.txt: Added.
- fast/mediastream/destroy-document-while-enumerating-devices.html: Added.
- fast/mediastream/resources/enumerate-devices-frame.html: Added.
- 12:49 PM Changeset in webkit [218464] by
-
- 19 edits in trunk/Source
Use WTF::Function instead of std::function in WTF/
https://bugs.webkit.org/show_bug.cgi?id=173519
Reviewed by Sam Weinig.
Source/WebCore:
Replace a few uses of std::function with WTF::Function in WebCore/
as well. It was either this or including <functional> and I decided
it made more sense to port the code.
- platform/graphics/FontSelectionAlgorithm.h:
(WebCore::FontSelectionAlgorithm::iterateActiveCapabilitiesWithReturn):
- platform/mediastream/MediaConstraints.cpp:
(WebCore::StringConstraint::find):
(WebCore::MediaTrackConstraintSetMap::forEach):
(WebCore::MediaTrackConstraintSetMap::filter):
(WebCore::MediaConstraints::isConstraintSet):
- platform/mediastream/MediaConstraints.h:
(WebCore::NumericConstraint::find):
- platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::applyConstraint):
Source/WTF:
Use WTF::Function instead of std::function in WTF/ to avoid
copying.
- wtf/Brigand.h:
- wtf/Condition.h:
- wtf/Expected.h:
- wtf/FunctionDispatcher.h:
- wtf/MainThread.h:
- wtf/MemoryPressureHandler.h:
(WTF::MemoryPressureHandler::setMemoryKillCallback):
(WTF::MemoryPressureHandler::setMemoryPressureStatusChangedCallback):
(WTF::MemoryPressureHandler::setDidExceedInactiveLimitWhileActiveCallback):
- wtf/Optional.h:
- wtf/ParkingLot.h:
- wtf/RefCounter.h:
(WTF::RefCounter<T>::RefCounter):
- wtf/WorkQueue.h:
- wtf/linux/MemoryPressureHandlerLinux.cpp:
(WTF::MemoryPressureHandler::EventFDPoller::EventFDPoller):
- wtf/text/WTFString.cpp:
(WTF::String::split):
- wtf/text/WTFString.h:
- 8:55 AM Changeset in webkit [218463] by
-
- 3 edits in trunk/Source/WebCore
[MSE] Seeking or entering fullscreen can cause extreme CPU usage
https://bugs.webkit.org/show_bug.cgi?id=173505
Reviewed by Tim Horton.
When support for painting MSE to WebGL was added in r217185, the implementation of
SourceBufferPrivateAVFObjC::isReadyForMoreSamples() was modified to support asking
the decompression session if it was ready. That change, however, caused an extreme
performance regression in the normal playback path, where WebKit will effectively
append samples endlessly to the AVSampleBufferDisplayLayer, which admirably enqueued
each of them for decoding. Eventually, the cost of iterating over the CMBufferQueue
overwhelmed the cost of decoding, and caused the extreme lag seen when seeking.
Make sure to property query the AVSampleBufferDisplayLayer for isReadyForMoreMediaData
before enqueuing.
A previous version of this patch exposed some errors which caused failing tests:
In sourceBufferPrivateDidReceiveSample(), we were using local versions of
presentationTimestamp and decodeTimestamp as keys to the decodeQueue; those local versions
were floating point values (because MediaTime + float = float), but the sample itself uses
non-floating point MediaTimes. This causes samples to be left in the queue when they should
be removed.
In didBecomeReadyForMoreSamples(), we were getting spurious assertions when a
AVSampleBufferDisplayLayer or a AVSampleBufferAudioRenderer would fire a callback from
-requestMediaDataWhenReadyOnQueue:usingBlock: even after it had been told to
-stopRequestingMediaData. Apparently it's expected behavior and so an ASSERT_NOT_REACHED is
inappropriate here.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples):
(WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples):
Jun 17, 2017:
- 8:57 PM Changeset in webkit [218462] by
-
- 2 edits in trunk/Source/WebCore
Addressing post-review comment after r218456.
https://bugs.webkit.org/show_bug.cgi?id=173509
Reviewed by Darin Adler.
- dom/Document.cpp:
(WebCore::Document::destroyRenderTree):
- 6:36 PM Changeset in webkit [218461] by
-
- 3 edits in trunk/Source/WebCore
DOMQuad::getBounds() should return a Ref<>
https://bugs.webkit.org/show_bug.cgi?id=173517
Reviewed by Simon Fraser.
DOMQuad::getBounds() should return a Ref<> as it cannot return
null.
- dom/DOMQuad.cpp:
(WebCore::DOMQuad::getBounds):
- dom/DOMQuad.h:
- 5:10 PM Changeset in webkit [218460] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed, follow-up build fix after r218457.
- UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::WebPaymentCoordinatorProxy::platformCanMakePaymentsWithActiveCard):
- 4:55 PM Changeset in webkit [218459] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed, follow-up build fix after r218457.
- UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::WebPaymentCoordinatorProxy::platformCanMakePaymentsWithActiveCard):
- 3:34 PM Changeset in webkit [218458] by
-
- 12 edits6 adds in trunk
Implement DOMQuad
https://bugs.webkit.org/show_bug.cgi?id=163534
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Implement DOMQuad per https://drafts.fxtf.org/geometry/#DOMQuad.
- web-platform-tests/css/geometry-1/DOMQuad-001-expected.txt: Tests against an older version
of the spec, so some failures.
- web-platform-tests/css/geometry-1/DOMQuad-002-expected.txt: All tests pass other than a NaN
propagation issue which needs spec clarification.
- web-platform-tests/css/geometry-1/structured-serialization-expected.txt:
Source/WebCore:
Implement DOMQuad per https://drafts.fxtf.org/geometry/#DOMQuad, other than serialization
which requires some bindings changes.
web-platform-tests/css/geometry-1/DOMRect-001.html tests against an older version of the spec,
so has some failures. DOMQuad-002.html passes, other than a NaN propagation issue that requires
spec clarification.
- CMakeLists.txt:
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMQuadCustom.cpp: Added.
(WebCore::JSDOMQuad::getBounds):
- bindings/scripts/CodeGenerator.pm:
(IsSerializableDOMType):
(IsSerializableAttribute):
- dom/DOMPoint.h:
- dom/DOMQuad.cpp: Added.
(WebCore::DOMQuad::DOMQuad):
(WebCore::DOMQuad::getBounds):
- dom/DOMQuad.h: Added.
(WebCore::DOMQuad::create):
(WebCore::DOMQuad::fromRect):
(WebCore::DOMQuad::fromQuad):
(WebCore::DOMQuad::p1):
(WebCore::DOMQuad::p2):
(WebCore::DOMQuad::p3):
(WebCore::DOMQuad::p4):
- dom/DOMQuad.idl: Added.
- dom/DOMQuadInit.h: Added.
- dom/DOMQuadInit.idl: Added.
LayoutTests:
Implement DOMQuad per https://drafts.fxtf.org/geometry/#DOMQuad.
- js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
- platform/mac/js/dom/global-constructors-attributes-expected.txt:
- 1:55 PM Changeset in webkit [218457] by
-
- 103 edits in trunk/Source
Use WTF::Function instead of std::function in WebKit2/
https://bugs.webkit.org/show_bug.cgi?id=173504
Reviewed by Darin Adler.
Use WTF::Function instead of std::function in WebKit2/ to avoid
unnecessary copying.
Source/WebCore:
- Modules/applepay/PaymentCoordinator.cpp:
(WebCore::PaymentCoordinator::canMakePaymentsWithActiveCard):
(WebCore::PaymentCoordinator::openPaymentSetup):
- Modules/applepay/PaymentCoordinator.h:
- Modules/applepay/PaymentCoordinatorClient.h:
- loader/EmptyClients.cpp:
- loader/NetscapePlugInStreamLoader.cpp:
(WebCore::NetscapePlugInStreamLoader::willSendRequest):
- loader/NetscapePlugInStreamLoader.h:
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::willSendRequest):
- loader/ResourceLoader.h:
Source/WebKit/mac:
- Plugins/Hosted/HostedNetscapePluginStream.h:
- Plugins/Hosted/HostedNetscapePluginStream.mm:
(WebKit::HostedNetscapePluginStream::willSendRequest):
- Plugins/WebNetscapePluginStream.h:
- Plugins/WebNetscapePluginStream.mm:
(WebNetscapePluginStream::willSendRequest):
- WebCoreSupport/WebPaymentCoordinatorClient.h:
- WebCoreSupport/WebPaymentCoordinatorClient.mm:
(WebPaymentCoordinatorClient::canMakePaymentsWithActiveCard):
(WebPaymentCoordinatorClient::openPaymentSetup):
Source/WebKit/win:
- Plugins/PluginStream.cpp:
(WebCore::PluginStream::willSendRequest):
- Plugins/PluginStream.h:
Source/WebKit2:
- DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::getSandboxExtensionsForBlobFiles):
- DatabaseProcess/DatabaseProcess.h:
- NetworkProcess/cache/NetworkCacheData.h:
- NetworkProcess/cache/NetworkCacheFileSystem.h:
- Platform/IPC/Connection.cpp:
(IPC::Connection::installIncomingSyncMessageCallback):
- Platform/IPC/Connection.h:
- Platform/IPC/glib/GSocketMonitor.h:
- Platform/Logging.h:
- Shared/API/APIObject.h:
- Shared/AsyncRequest.cpp:
(WebKit::AsyncRequest::AsyncRequest):
(WebKit::AsyncRequest::setAbortHandler):
- Shared/AsyncRequest.h:
- Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::CompositingRunLoop::CompositingRunLoop):
- Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
- Shared/WebContextMenuItemData.h:
- UIProcess/API/APIDownloadClient.h:
(API::DownloadClient::willSendRequest):
- UIProcess/API/APIIconLoadingClient.h:
(API::IconLoadingClient::getLoadDecisionForIcon):
- UIProcess/API/APIUIClient.h:
(API::UIClient::createNewPageAsync):
- UIProcess/API/C/WKPage.cpp:
(toGenericCallbackFunction):
- UIProcess/API/Cocoa/WKWebView.mm:
- UIProcess/API/mac/WKView.mm:
(-[WKView maybeInstallIconLoadingClient]):
- UIProcess/AcceleratedDrawingAreaProxy.cpp:
(WebKit::AcceleratedDrawingAreaProxy::dispatchAfterEnsuringDrawing):
- UIProcess/AcceleratedDrawingAreaProxy.h:
- UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
- UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::WebPaymentCoordinatorProxy::platformCanMakePaymentsWithActiveCard):
(WebKit::WebPaymentCoordinatorProxy::platformOpenPaymentSetup):
- UIProcess/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm:
(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):
- UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:
(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):
- UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::performKeyboardInteractions):
- UIProcess/Cocoa/IconLoadingDelegate.h:
- UIProcess/Cocoa/IconLoadingDelegate.mm:
(WebKit::IconLoadingDelegate::IconLoadingClient::getLoadDecisionForIcon):
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::tryAppLink):
- UIProcess/Cocoa/UIDelegate.h:
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::createNewPageCommon):
(WebKit::UIDelegate::UIClient::createNewPageAsync):
- UIProcess/Cocoa/ViewGestureController.cpp:
(WebKit::ViewGestureController::SnapshotRemovalTracker::start):
- UIProcess/Cocoa/ViewGestureController.h:
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::prepareForMoveToWindow):
- UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::fetchWebsiteData):
(WebKit::DatabaseProcessProxy::deleteWebsiteData):
(WebKit::DatabaseProcessProxy::deleteWebsiteDataForOrigins):
- UIProcess/Databases/DatabaseProcessProxy.h:
- UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::dispatchAfterEnsuringDrawing):
- UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::DrawingMonitor::start):
(WebKit::DrawingAreaProxyImpl::dispatchAfterEnsuringDrawing):
- UIProcess/DrawingAreaProxyImpl.h:
- UIProcess/GenericCallback.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::fetchWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/PageClient.h:
- UIProcess/Plugins/PlugInAutoStartProvider.cpp:
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsTableWithItemsPassingTest):
- UIProcess/Plugins/PlugInAutoStartProvider.h:
- UIProcess/Plugins/PluginProcessManager.cpp:
(WebKit::PluginProcessManager::fetchWebsiteData):
(WebKit::PluginProcessManager::deleteWebsiteData):
(WebKit::PluginProcessManager::deleteWebsiteDataForHostNames):
- UIProcess/Plugins/PluginProcessManager.h:
- UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::fetchWebsiteData):
(WebKit::PluginProcessProxy::deleteWebsiteData):
(WebKit::PluginProcessProxy::deleteWebsiteDataForHostNames):
- UIProcess/Plugins/PluginProcessProxy.h:
- UIProcess/ProcessAssertion.h:
- UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::backForwardListState):
- UIProcess/WebBackForwardList.h:
- UIProcess/WebCookieManagerProxy.cpp:
(WebKit::WebCookieManagerProxy::setCookieObserverCallback):
(WebKit::WebCookieManagerProxy::cookiesDidChange):
- UIProcess/WebCookieManagerProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setInitialFocus):
(WebKit::WebPageProxy::validateCommand):
(WebKit::WebPageProxy::sessionState):
(WebKit::WebPageProxy::runJavaScriptInMainFrame):
(WebKit::WebPageProxy::getRenderTreeExternalRepresentation):
(WebKit::WebPageProxy::getSourceForFrame):
(WebKit::WebPageProxy::getContentsAsString):
(WebKit::WebPageProxy::getBytecodeProfile):
(WebKit::WebPageProxy::getSamplingProfilerOutput):
(WebKit::WebPageProxy::isWebProcessResponsive):
(WebKit::WebPageProxy::getSelectionOrContentsAsString):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::getMarkedRangeAsync):
(WebKit::WebPageProxy::getSelectedRangeAsync):
(WebKit::WebPageProxy::characterIndexForPointAsync):
(WebKit::WebPageProxy::firstRectForCharacterRangeAsync):
(WebKit::WebPageProxy::takeSnapshot):
(WebKit::WebPageProxy::installActivityStateChangeCompletionHandler):
(WebKit::WebPageProxy::callAfterNextPresentationUpdate):
(WebKit::WebPageProxy::getLoadDecisionForIcon):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::isResponsive):
- UIProcess/WebProcessProxy.h:
- UIProcess/WebsiteData/WebsiteDataStore.h:
- UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
(WebKit::XDamageNotifier::add):
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::requestPasswordForQuickLookDocument):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::selectWithGesture):
(WebKit::WebPageProxy::updateSelectionWithTouches):
(WebKit::WebPageProxy::requestAutocorrectionData):
(WebKit::WebPageProxy::applyAutocorrection):
(WebKit::WebPageProxy::executeEditCommand):
(WebKit::WebPageProxy::selectTextWithGranularityAtPoint):
(WebKit::WebPageProxy::selectPositionAtBoundaryWithDirection):
(WebKit::WebPageProxy::moveSelectionAtBoundaryWithDirection):
(WebKit::WebPageProxy::selectPositionAtPoint):
(WebKit::WebPageProxy::beginSelectionInDirection):
(WebKit::WebPageProxy::updateSelectionWithExtentPoint):
(WebKit::WebPageProxy::updateSelectionWithExtentPointAndBoundary):
(WebKit::WebPageProxy::requestDictationContext):
(WebKit::WebPageProxy::requestAutocorrectionContext):
(WebKit::WebPageProxy::getSelectionContext):
(WebKit::WebPageProxy::selectWithTwoTouches):
(WebKit::WebPageProxy::requestRectsForGranularityWithSelectionOffset):
(WebKit::WebPageProxy::requestRectsAtSelectionOffsetWithText):
(WebKit::WebPageProxy::moveSelectionByOffset):
(WebKit::WebPageProxy::focusNextAssistedNode):
(WebKit::WebPageProxy::didRequestPasswordForQuickLookDocumentInMainFrame):
- UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
- UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::dispatchAfterEnsuringDrawing):
- UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
- UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::dispatchAfterEnsuringDrawing):
- UIProcess/mac/WKTextFinderClient.mm:
- UIProcess/mac/WebContextMenuProxyMac.mm:
(-[WKSelectionHandlerWrapper initWithSelectionHandler:]):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::attributedSubstringForCharacterRangeAsync):
(WebKit::WebPageProxy::fontAtSelection):
- WebProcess/ApplePay/WebPaymentCoordinator.cpp:
(WebKit::WebPaymentCoordinator::canMakePaymentsWithActiveCard):
(WebKit::WebPaymentCoordinator::openPaymentSetup):
- WebProcess/ApplePay/WebPaymentCoordinator.h:
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::Stream::willSendRequest):
- WebProcess/WebPage/DrawingArea.cpp:
(WebKit::DrawingArea::dispatchAfterEnsuringUpdatedScrollPosition):
- WebProcess/WebPage/DrawingArea.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::markLayersVolatile):
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::markLayersVolatile):
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::markAllLayersVolatile):
- WebProcess/WebProcess.h:
- 1:37 PM Changeset in webkit [218456] by
-
- 2 edits in trunk/Source/WebCore
Demote the "we have navigated away" check to an assertion.
https://bugs.webkit.org/show_bug.cgi?id=173509
Reviewed by Simon Fraser.
Now that the expected behavior is that the render tree can't get to the page cache, it's ok to assert.
TODO: We should also have view() check removed at some point.
- dom/Document.cpp:
(WebCore::Document::destroyRenderTree):
- 1:03 PM Changeset in webkit [218455] by
-
- 8 edits in trunk/Source
Fix CMake build
Source/WebCore:
- PlatformMac.cmake:
- bindings/js/ScriptGlobalObject.cpp:
Source/WebKit2:
- CMakeLists.txt:
- NetworkProcess/capture/NetworkCaptureEvent.cpp:
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- 12:50 PM Changeset in webkit [218454] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, rolling out r218438.
https://bugs.webkit.org/show_bug.cgi?id=173515
Caused imported/w3c/web-platform-tests/media-
source/mediasource* tests to fail (Requested by smfr on
#webkit).
Reverted changeset:
"[MSE] Seeking or entering fullscreen can cause extreme CPU
usage"
https://bugs.webkit.org/show_bug.cgi?id=173505
http://trac.webkit.org/changeset/218438
- 8:49 AM Changeset in webkit [218453] by
-
- 2 edits in trunk/Source/WebKit2
Tried to fix non-iOS builds.
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- 7:13 AM Changeset in webkit [218452] by
-
- 4 edits in trunk
ArrayBuffer constructor needs to create subclass structures before its buffer
https://bugs.webkit.org/show_bug.cgi?id=173510
Reviewed by Yusuke Suzuki.
JSTests:
- test262.yaml:
Source/JavaScriptCore:
- runtime/JSArrayBufferConstructor.cpp:
(JSC::constructArrayBuffer):
- 6:02 AM Changeset in webkit [218451] by
-
- 5 edits2 adds in trunk
Crash due to infinite recursion via FrameSelection::updateAppearanceAfterLayout
https://bugs.webkit.org/show_bug.cgi?id=173468
Reviewed by Ryosuke Niwa.
Source/WebCore:
Test: editing/selection/updateAppearanceAfterLayout-recursion.html
Calling FrameSelection::updateAppearanceAfterLayout() from Document::resolveStyle is unsafe
because it may cause another call to resolveStyle. We have some cases where the style
is still unclean when updateAppearanceAfterLayout() is called. This can lead to infinite
recursion.
The test case is not the common stack seen in CrashTracer (couldn't quit replicate it) but
the updateAppearanceAfterLayout/resolveStyle recursion is the same.
- dom/Document.cpp:
(WebCore::Document::resolveStyle):
Normally selection appearance update is done in post-layout but not all style resolutions schedule a layout.
Invoke it asynchronously in that case instead of the previous synchronous call.
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::FrameSelection):
(WebCore::FrameSelection::updateAppearanceAfterLayout):
(WebCore::FrameSelection::scheduleAppearanceUpdateAfterStyleChange):
(WebCore::FrameSelection::appearanceUpdateTimerFired):
(WebCore::FrameSelection::updateAppearanceAfterLayoutOrStyleChange):
- editing/FrameSelection.h:
LayoutTests:
- editing/selection/updateAppearanceAfterLayout-recursion-expected.txt: Added.
- editing/selection/updateAppearanceAfterLayout-recursion.html: Added.
- 5:31 AM Changeset in webkit [218450] by
-
- 2 edits in trunk/LayoutTests
[Win] Update expectations for layout tests.
https://bugs.webkit.org/show_bug.cgi?id=172437
Unreviewed test gardening, update test expectations for failing tests.
- platform/win/TestExpectations:
- 3:52 AM Changeset in webkit [218449] by
-
- 11 edits in trunk
ArrayPrototype methods should use JSValue::toLength for non-Arrays.
https://bugs.webkit.org/show_bug.cgi?id=173506
JSTests:
Reviewed by Ryosuke Niwa.
Re-baseline tests.
- ChakraCore/test/Function/apply3.baseline-jsc:
- test262.yaml:
Source/JavaScriptCore:
Reviewed by Ryosuke Niwa.
This patch changes the result of unshift if old length +
unshift.arguments.length > (2 53) - 1 to be a type error. Also,
the getLength function, which was always incorrect to use, has
been removed. Additionally, some cases where we were using a
constant for (2 53) - 1 have been replaced with
maxSafeInteger()
- interpreter/Interpreter.cpp:
(JSC::sizeOfVarargs):
- runtime/ArrayPrototype.cpp:
(JSC::arrayProtoFuncToLocaleString):
(JSC::arrayProtoFuncPop):
(JSC::arrayProtoFuncPush):
(JSC::arrayProtoFuncReverse):
(JSC::arrayProtoFuncShift):
(JSC::arrayProtoFuncSlice):
(JSC::arrayProtoFuncSplice):
(JSC::arrayProtoFuncUnShift):
(JSC::arrayProtoFuncIndexOf):
(JSC::arrayProtoFuncLastIndexOf):
- runtime/JSArrayInlines.h:
(JSC::getLength): Deleted.
- runtime/JSCJSValue.cpp:
(JSC::JSValue::toLength):
- runtime/NumberConstructor.cpp:
(JSC::numberConstructorFuncIsSafeInteger):
LayoutTests:
Unreviewed test gardening.
- 12:54 AM Changeset in webkit [218448] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening. Remove duplicate entries for tests.
- platform/win/TestExpectations:
- 12:47 AM Changeset in webkit [218447] by
-
- 2 edits in trunk/Source/WebCore
Fix Mac CMake build.
- PlatformMac.cmake:
- 12:21 AM Changeset in webkit [218446] by
-
- 44 edits2 adds in trunk
REGRESSION(r209495): materiauxlaverdure.com fails to load
https://bugs.webkit.org/show_bug.cgi?id=173301
<rdar://problem/32624850>
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Rebaselined the tests that are now passing.
- web-platform-tests/cssom/CSSNamespaceRule-expected.txt:
- web-platform-tests/cssom/serialize-values-expected.txt:
Source/WebCore:
The bug was caused by WebKit wrapping CSS string values with single quotation marks instead of
double quotation marks as spec'ed in https://drafts.csswg.org/cssom/#serialize-a-string and
implemented in Firefox and Chrome.
The website eval's the computed value of the
contentCSS property with the value'{name: "flat"}'
after stripping single quotation marks from both ends. Prior to r209495, WebKit serialized this CSS value
in single quotations without escaping double quotations. After r209495, double quotations are escaped
with backslashes as'{name: \"flat\"}'. As a result,evalis invoked with{name: \"flat\"}
after stripping single quotations from both ends, which resulted in an exception.
Chrome and Firefox don't encounter this exception despite of the fact they escape double quotations
as well because serialize with double quotations as"{name: \"flat\"}". Because there is no code
to strip double quotations, eval is invoked with the same string, resulting in the entire value as
being parsed as string, instead of an object with a single key "name" with the value of "flat" as
was the case in WebKit prior to r209495. While this behavior was most certainly not the intent of
the website author, Chrome and Firefox don't encounter an exception and the website continues to work.
This patch aligns WebKit's behavior to that of the CSS OM specification, Firefox, and Chrome by
serializing CSS string values using double quotation marks instead of single quotation marks.
Note: inline change log comments are added below for every call site of serializeString for clarity.
Test: fast/css/getPropertyValue-serialization-with-double-quotes.html
- css/CSSBasicShapes.cpp:
(WebCore::buildPathString): Use double quotation marks in path(~) of shapes.
- css/CSSMarkup.cpp:
(WebCore::serializeString):
(WebCore::serializeURL): Use double quotation marks to serialize URLs.
(WebCore::serializeAsStringOrCustomIdent): Use double quotation marks to serialize strings. We still avoid
using wrapping the value with double quotations when the value can be an identifier. See r209495.
(WebCore::serializeFontFamily): Ditto for font-family names such as "San Francisco".
- css/CSSMarkup.h:
- css/CSSNamespaceRule.cpp:
(WebCore::CSSNamespaceRule::cssText): Use double quotation marks to serialize namespace URIs.
- css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText): Use double quotation marks to serialize
the separators; e.g. counter(sectionNumber, ".") to produce "1.".
- css/CSSSelector.cpp:
(WebCore::CSSSelector::selectorText): Use double quotation marks to serialize attribute values.
- css/parser/CSSParserToken.cpp:
(WebCore::CSSParserToken::serialize): Use double quotation marks to serialize strings in @support.
- editing/EditingStyle.cpp:
(WebCore::StyleChange::extractTextStyles): Updated to strip double quotation marks in font family names to
maintain the compatibility with old versions of Microsoft Outlook.
- html/HTMLElement.cpp:
(WebCore::HTMLElement::mapLanguageAttributeToLocale): Use double quotations marks to serialize the value
of the lang content attribute. It doesn't matter which one is used here because it's only a temporary value
only fed into the CSS parser to set the equivalent CSS value from the content attribute.
LayoutTests:
Rebaselined the existing tests and added a new regression test for serializing CSS properties and values.
- accessibility/mac/alt-for-css-content-expected.txt:
- accessibility/mac/webkit-alt-for-css-content-expected.txt:
- editing/pasteboard/cjk-line-height-expected.txt:
- fast/css/alt-inherit-initial-expected.txt:
- fast/css/alt-inherit-initial.html:
- fast/css/content-language-comma-separated-list-expected.txt:
- fast/css/content-language-empty-expected.txt:
- fast/css/content-language-only-whitespace-expected.txt:
- fast/css/content-language-with-whitespace-expected.txt:
- fast/css/counters/counter-cssText-expected.txt:
- fast/css/counters/counter-cssText.html:
- fast/css/font-family-trailing-bracket-gunk-expected.txt:
- fast/css/font-family-trailing-bracket-gunk.html:
- fast/css/getComputedStyle/computed-style-font-family-expected.txt:
- fast/css/getComputedStyle/computed-style-properties-expected.txt:
- fast/css/getComputedStyle/computed-style-properties.html:
- fast/css/getComputedStyle/font-family-fallback-reset-expected.txt:
- fast/css/getComputedStyle/font-family-fallback-reset.html:
- fast/css/lang-mapped-to-webkit-locale-expected.txt:
- fast/css/lang-mapped-to-webkit-locale.xhtml:
- fast/css/serialization-with-double-quotes-expected.txt: Added.
- fast/css/serialization-with-double-quotes.html: Added.
- fast/css/uri-token-parsing-expected.txt:
- fast/css/uri-token-parsing.html:
- fast/inspector-support/cssURLQuotes-expected.txt:
- fast/inspector-support/style-expected.txt:
- fast/text/font-stretch-parse-expected.txt:
- fast/text/font-stretch-parse.html:
- fast/text/font-style-parse-expected.txt:
- fast/text/font-style-parse.html:
- fast/text/font-weight-parse-expected.txt:
- fast/text/font-weight-parse.html:
- media/controls/track-menu.html:
- platform/mac-elcapitan/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
- platform/mac-elcapitan/fast/text/font-stretch-parse-expected.txt:
- platform/mac-elcapitan/fast/text/font-style-parse-expected.txt:
- platform/mac-elcapitan/fast/text/font-weight-parse-expected.txt:
- 12:21 AM Changeset in webkit [218445] by
-
- 11 edits2 moves in trunk/Source/WebKit2
[GTK] Rename WebContextMenuItemGtk as WebContextMenuItemGlib
https://bugs.webkit.org/show_bug.cgi?id=173469
Reviewed by Michael Catanzaro.
Now that we switched to GAction this is actually a glib implementation, we keep the GtkAction support only for
backwards compatibility. We could rename the file and make the GtkAction action conditional to the GTK+ port.
- PlatformGTK.cmake:
- Shared/glib/WebContextMenuItemGlib.cpp: Renamed from Source/WebKit2/Shared/gtk/WebContextMenuItemGtk.cpp.
(WebKit::gtkStockIDFromContextMenuAction):
(WebKit::WebContextMenuItemGlib::WebContextMenuItemGlib):
(WebKit::WebContextMenuItemGlib::~WebContextMenuItemGlib):
(WebKit::WebContextMenuItemGlib::buildActionName):
(WebKit::WebContextMenuItemGlib::createActionIfNeeded):
- Shared/glib/WebContextMenuItemGlib.h: Renamed from Source/WebKit2/Shared/gtk/WebContextMenuItemGtk.h.
- UIProcess/API/gtk/WebKitContextMenu.cpp:
(webkitContextMenuPopulate):
- UIProcess/API/gtk/WebKitContextMenuActions.cpp:
(webkitContextMenuActionGetForContextMenuItem):
- UIProcess/API/gtk/WebKitContextMenuActionsPrivate.h:
- UIProcess/API/gtk/WebKitContextMenuItem.cpp:
(webkitContextMenuItemCreate):
(webkitContextMenuItemToWebContextMenuItemGlib):
(webkit_context_menu_item_new):
(webkit_context_menu_item_new_from_gaction):
(webkit_context_menu_item_new_from_stock_action):
(webkit_context_menu_item_new_from_stock_action_with_label):
(webkit_context_menu_item_new_with_submenu):
(webkit_context_menu_item_new_separator):
- UIProcess/API/gtk/WebKitContextMenuItemPrivate.h:
- UIProcess/API/gtk/WebKitContextMenuPrivate.h:
- UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewPopulateContextMenu):
- UIProcess/gtk/WebContextMenuProxyGtk.cpp:
(WebKit::WebContextMenuProxyGtk::append):
(WebKit::WebContextMenuProxyGtk::buildMenu):
(WebKit::WebContextMenuProxyGtk::populate):
- UIProcess/gtk/WebContextMenuProxyGtk.h: