Timeline
Oct 6, 2020:
- 11:01 PM Changeset in webkit [268118] by
-
- 37 edits in trunk/Source/WebKit
[Media in GPU process] Don't use 'id' as a parameter or variable name
https://bugs.webkit.org/show_bug.cgi?id=206189
Reviewed by Tim Horton.
Mass rename
idtoidentifier.
No new tests, no functional change.
- GPUProcess/media/RemoteAudioDestinationManager.cpp:
(WebKit::RemoteAudioDestination::create):
(WebKit::RemoteAudioDestination::RemoteAudioDestination):
(WebKit::RemoteAudioDestinationManager::deleteAudioDestination):
(WebKit::RemoteAudioDestinationManager::startAudioDestination):
(WebKit::RemoteAudioDestinationManager::stopAudioDestination):
- GPUProcess/media/RemoteAudioDestinationManager.messages.in:
- GPUProcess/media/RemoteAudioTrackProxy.cpp:
(WebKit::RemoteAudioTrackProxy::RemoteAudioTrackProxy):
(WebKit::RemoteAudioTrackProxy::configuration):
- GPUProcess/media/RemoteAudioTrackProxy.h:
- GPUProcess/media/RemoteCDMFactoryProxy.cpp:
(WebKit::RemoteCDMFactoryProxy::addProxy):
(WebKit::RemoteCDMFactoryProxy::removeProxy):
(WebKit::RemoteCDMFactoryProxy::addInstance):
(WebKit::RemoteCDMFactoryProxy::removeInstance):
(WebKit::RemoteCDMFactoryProxy::getInstance):
(WebKit::RemoteCDMFactoryProxy::addSession):
(WebKit::RemoteCDMFactoryProxy::removeSession):
- GPUProcess/media/RemoteCDMFactoryProxy.messages.in:
- GPUProcess/media/RemoteCDMInstanceProxy.messages.in:
- GPUProcess/media/RemoteCDMProxy.messages.in:
- GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp:
(WebKit::RemoteLegacyCDMFactoryProxy::addProxy):
(WebKit::RemoteLegacyCDMFactoryProxy::removeProxy):
(WebKit::RemoteLegacyCDMFactoryProxy::addSession):
(WebKit::RemoteLegacyCDMFactoryProxy::removeSession):
(WebKit::RemoteLegacyCDMFactoryProxy::getSession const):
- GPUProcess/media/RemoteLegacyCDMFactoryProxy.messages.in:
- GPUProcess/media/RemoteLegacyCDMProxy.messages.in:
- GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:
(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::deleteMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::getProxy):
- GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy):
- GPUProcess/media/RemoteMediaResource.cpp:
(WebKit::RemoteMediaResource::create):
(WebKit::RemoteMediaResource::RemoteMediaResource):
- GPUProcess/media/RemoteMediaResourceManager.cpp:
(WebKit::RemoteMediaResourceManager::responseReceived):
(WebKit::RemoteMediaResourceManager::redirectReceived):
(WebKit::RemoteMediaResourceManager::dataSent):
(WebKit::RemoteMediaResourceManager::dataReceived):
(WebKit::RemoteMediaResourceManager::accessControlCheckFailed):
(WebKit::RemoteMediaResourceManager::loadFailed):
(WebKit::RemoteMediaResourceManager::loadFinished):
- GPUProcess/media/RemoteMediaResourceManager.messages.in:
- GPUProcess/media/RemoteTextTrackProxy.cpp:
(WebKit::RemoteTextTrackProxy::RemoteTextTrackProxy):
(WebKit::RemoteTextTrackProxy::configuration):
- GPUProcess/media/RemoteTextTrackProxy.h:
- GPUProcess/media/RemoteVideoTrackProxy.cpp:
(WebKit::RemoteVideoTrackProxy::RemoteVideoTrackProxy):
(WebKit::RemoteVideoTrackProxy::configuration):
- GPUProcess/media/RemoteVideoTrackProxy.h:
- GPUProcess/media/TextTrackPrivateRemoteConfiguration.h:
(WebKit::TextTrackPrivateRemoteConfiguration::encode const):
(WebKit::TextTrackPrivateRemoteConfiguration::decode):
- GPUProcess/media/TrackPrivateRemoteConfiguration.h:
(WebKit::TrackPrivateRemoteConfiguration::encode const):
(WebKit::TrackPrivateRemoteConfiguration::decode):
- WebProcess/GPU/media/AudioTrackPrivateRemote.cpp:
(WebKit::AudioTrackPrivateRemote::updateConfiguration):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::remoteTextTrackConfigurationChanged):
(WebKit::MediaPlayerPrivateRemote::removeRemoteVideoTrack):
(WebKit::MediaPlayerPrivateRemote::remoteVideoTrackConfigurationChanged):
- WebProcess/GPU/media/RemoteCDM.cpp:
(WebKit::RemoteCDM::create):
(WebKit::RemoteCDM::RemoteCDM):
(WebKit::RemoteCDM::createInstance):
- WebProcess/GPU/media/RemoteCDMFactory.cpp:
(WebKit::RemoteCDMFactory::createCDM):
(WebKit::RemoteCDMFactory::removeSession):
- WebProcess/GPU/media/RemoteCDMInstance.cpp:
(WebKit::RemoteCDMInstance::create):
(WebKit::RemoteCDMInstance::RemoteCDMInstance):
(WebKit::RemoteCDMInstance::createSession):
- WebProcess/GPU/media/RemoteCDMInstanceSession.cpp:
(WebKit::RemoteCDMInstanceSession::create):
(WebKit::RemoteCDMInstanceSession::RemoteCDMInstanceSession):
- WebProcess/GPU/media/RemoteLegacyCDM.cpp:
(WebKit::RemoteLegacyCDM::create):
(WebKit::RemoteLegacyCDM::RemoteLegacyCDM):
(WebKit::RemoteLegacyCDM::createSession):
(WebKit::RemoteLegacyCDM::setPlayerId):
- WebProcess/GPU/media/RemoteLegacyCDMFactory.cpp:
(WebKit::RemoteLegacyCDMFactory::createCDM):
(WebKit::RemoteLegacyCDMFactory::addSession):
(WebKit::RemoteLegacyCDMFactory::removeSession):
- WebProcess/GPU/media/RemoteLegacyCDMSession.cpp:
(WebKit::RemoteLegacyCDMSession::create):
(WebKit::RemoteLegacyCDMSession::RemoteLegacyCDMSession):
- WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
(WebKit::RemoteMediaPlayerManager::deleteRemoteMediaPlayer):
- WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:
(WebKit::RemoteMediaResourceProxy::RemoteMediaResourceProxy):
- WebProcess/GPU/media/TextTrackPrivateRemote.cpp:
(WebKit::TextTrackPrivateRemote::updateConfiguration):
- WebProcess/GPU/media/VideoTrackPrivateRemote.cpp:
(WebKit::VideoTrackPrivateRemote::updateConfiguration):
- 10:59 PM Changeset in webkit [268117] by
-
- 5 edits in trunk
Presidential Executive Order pages not accessible with Safari.
https://bugs.webkit.org/show_bug.cgi?id=217415
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/aria-modal.html.
These pages have a dialog modal element of the form
<div class="popover" role="dialog" aria-modal="true">
with style visible and a display value different from none. This makes
WebCore/accessibility to treat it as if the dialog were always visible,
and thus do not convey the content of the page outside the dialog to
VoiceOver. The author controls the visibility of the dialog using the
style opacity. This patch adds the check for the opacity to determine
whether an element is visible or not.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::isNodeVisible const):
LayoutTests:
Expanded this test to cover the case whether the modal dialog visibility
is controlled by its opacity. Cleaned up JS code and made it work in
isolated tree mode.
- accessibility/aria-modal-expected.txt:
- accessibility/aria-modal.html:
- 9:50 PM Changeset in webkit [268116] by
-
- 22 edits in trunk
Move platform logic for CSS
hoverandpointermedia queries outside of WebCore
https://bugs.webkit.org/show_bug.cgi?id=217413
Reviewed by Tim Horton.
Source/WebCore:
No change in behavior, covered by existing tests.
- css/MediaQueryEvaluator.cpp:
(WebCore::hoverEvaluate):
(WebCore::pointerEvaluate):
- page/ChromeClient.h:
- loader/EmptyClients.h:
(WebCore::EmptyChromeClient::hoverSupportedByPrimaryPointingDevice const): Added.
(WebCore::EmptyChromeClient::pointerCharacteristicsOfPrimaryPointingDevices const): Added.
Provide a way for WebCore to get information about the primary pointing device.
Refactor logic inhoverEvaluateandpointerEvaluateto move platform code into the
respectiveWebKit::WebPagefile.
Source/WebKit:
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::hoverSupportedByPrimaryPointingDevice const): Added.
(WebKit::WebChromeClient::pointerCharacteristicsOfPrimaryPointingDevices const): Added.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::hoverSupportedByPrimaryPointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfPrimaryPointingDevices const): Added.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::hoverSupportedByPrimaryPointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfPrimaryPointingDevices const): Added.
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::hoverSupportedByPrimaryPointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfPrimaryPointingDevices const): Added.
- WebProcess/WebPage/playstation/WebPagePlayStation.cpp:
(WebKit::WebPage::hoverSupportedByPrimaryPointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfPrimaryPointingDevices const): Added.
- WebProcess/WebPage/win/WebPageWin.cpp:
(WebKit::WebPage::hoverSupportedByPrimaryPointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfPrimaryPointingDevices const): Added.
- WebProcess/WebPage/wpe/WebPageWPE.cpp:
(WebKit::WebPage::hoverSupportedByPrimaryPointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfPrimaryPointingDevices const): Added.
Provide a way for WebCore to get information about the primary pointing device.
Refactor logic inWebCore::anyHoverEvaluateandWebCore::anyPointerEvaluateto move
platform code into the respectiveWebPagefile.
Source/WebKitLegacy/ios:
- WebCoreSupport/WebChromeClientIOS.h:
(WebChromeClientIOS::hoverSupportedByPrimaryPointingDevice const): Added.
(WebChromeClientIOS::pointerCharacteristicsOfPrimaryPointingDevice const): Added.
Mouse devices are not supported.
Source/WebKitLegacy/mac:
- WebCoreSupport/WebChromeClient.h:
(WebChromeClient::hoverSupportedByPrimaryPointingDevice const): Added.
(WebChromeClient::pointerCharacteristicsOfPrimaryPointingDevice const): Added.
Mouse devices are always supported.
Source/WebKitLegacy/win:
- WebCoreSupport/WebChromeClient.h:
(WebChromeClient::hoverSupportedByPrimaryPointingDevice const): Added.
(WebChromeClient::pointerCharacteristicsOfPrimaryPointingDevice const): Added.
Mouse devices are always supported.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/iOSMouseSupport.mm:
(iOSMouseSupport.MouseInitiallyDisconnected):
(iOSMouseSupport.MouseInitiallyConnected):
(iOSMouseSupport.MouseLaterDisconnected):
(iOSMouseSupport.MouseLaterConnected):
(iOSMouseSupport.MouseAlwaysConnected):
- 9:20 PM Changeset in webkit [268115] by
-
- 19 edits in trunk/Tools
Refactor TestOptions code in WebKitTestRunner to make it easier to rationalize and extend
https://bugs.webkit.org/show_bug.cgi?id=217390
Reviewed by Darin Adler.
Refactors TestOptions code in WebKitTestRunner to make it clear how options coming in at
different levels are treated and what precedence each has. The order is (from least to most):
- Global features passed to WebKitTestRunner via the command line (e.g. --show-touches)
- Hardcoded features based on the path of the test being run (hopefully we can remove all soon)
- Hardcoded platform specific defaults (currently only used by macOS for useThreadedScrolling).
- Features from the test headers within the test itself.
- Finally, a second chance for more platform specific defaults (currenly only used the Cocoa ports for setting enableProcessSwapOnNavigation and enableProcessSwapOnWindowOpen based on NSUserDefaults.)
To make this change work, and pave the way for future autogeneration of some of these test options,
the TestOptions struct (now class) was overhauled. Instead of storing the state itself, TestOptions
is now an immutable owner of a TestFeatures object. TestFeatures is a simple struct that contains maps
of option keys to values and can be merged with other TestFeatures objects. TestOptions takes a
TestFeatures at construction, and exposes getters for all keys, as well as defaults for when they are
not in the maps. In future changes, I would like to remove many of these (the ones that correspond
with WebKit preferences anyway) and have the keys and values automatically dealt with by WKPreferences.
- WebKitTestRunner/Options.cpp:
- WebKitTestRunner/Options.h:
Switch to std::unordered_map for consistency and ease of conversion.
- WebKitTestRunner/PlatformWebView.h:
(WTR::PlatformWebView::viewSupportsOptions const):
Update to call new TestOptions functions.
- WebKitTestRunner/StringFunctions.h:
(WTR::toWK):
(WTR::toWTFString):
Add conversions for std::string.
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::initialize):
Replace some bools with a new global TestFeatures instance that forms the base of
all TestFeatures merges.
(WTR::TestController::generateContextConfiguration const):
(WTR::TestController::generatePageConfiguration):
(WTR::TestController::createWebViewWithOptions):
(WTR::TestController::ensureViewSupportsOptionsForTest):
(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::TestController::resetStateToConsistentValues):
Update to call new TestOptions functions.
(WTR::TestController::createTestURL):
Expose as a static member function on TestController for use in other files.
(WTR::TestController::testOptionsForTest const):
Rework to be a sequence of TestFeatures merges.
(WTR::TestController::updateWebViewSizeForTest):
(WTR::TestController::updateWindowScaleForTest):
Update to call new TestOptions functions.
(WTR::createTestURL): Deleted.
(WTR::parseBooleanTestHeaderValue): Deleted.
(WTR::parseStringTestHeaderValueAsRelativePath): Deleted.
(WTR::parseStringTestHeaderValueAsURL): Deleted.
(WTR::updateTestOptionsFromTestHeader): Deleted.
(WTR::TestController::platformAddTestOptions const): Deleted.
Moved TestOptions parsing to TestOptions.cpp
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::createTestSettingsDictionary):
Update to call new TestOptions functions.
- WebKitTestRunner/TestOptions.h:
Reworks TestOptions to be an immutable owner of a TestFeatures struct, which is a set
of maps that map feature string keys, to values of type bool, double, string or string vector.
- WebKitTestRunner/TestOptions.cpp:
(WTR::merge):
Merges two TestFeatures objects. If both contain the same key, the 'additional'
TestFeatures overrides the 'base' TestFeatures.
(WTR::dumpFeatures):
Helper to dump features to stderr, useful for debugging.
(WTR::keyType):
Helper for parser to know which value parser to use.
(WTR::parseBooleanTestHeaderValue):
(WTR::parseStringTestHeaderValueAsRelativePath):
(WTR::parseStringTestHeaderValueAsURL):
Value parsers moved from TestController.cpp
(WTR::parseTestHeader):
Header parser moved from TestController.cpp. Update to now return
a TestFeatures object and use keyType to pick value parser rather
than inlining the if statements.
(WTR::hardcodedFeaturesBasedOnPathForTest):
Moved from the TestOptions contructor and reworked to return a TestFeatures
object to be merged by the caller.
(WTR::featureDefaultsFromTestHeaderForTest):
Creates a TestFeatures for the test headers of the current test.
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::platformSpecificFeatureOverridesDefaultsForTest const):
Reworked to now return a TestFeatures object that will be merged, rather than updating
a TestOptions. Moves enableInAppBrowserPrivacy work to TestController::platformWillRunTest
where it is more appropriate.
(WTR::TestController::platformInitializeDataStore):
(WTR::TestController::platformCreateWebView):
(WTR::TestController::finishCreatingPlatformWebView):
(WTR::TestController::setApplicationBundleIdentifier):
(WTR::TestController::cocoaResetStateToConsistentValues):
(WTR::contentMode):
Update to call new TestOptions functions.
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues):
(WTR::TestController::platformConfigureViewForTest):
Update to call new TestOptions functions.
(WTR::TestController::platformSpecificFeatureDefaultsForTest const):
(WTR::TestController::updatePlatformSpecificTestOptionsForTest const): Deleted.
Moved GeneratedTouchesDebugWindow work to TestController::platformConfigureViewForTest
where it is more appropriate and removed shouldShowTouches setting as that is done
globally now.
- WebKitTestRunner/mac/PlatformWebViewMac.mm:
(WTR::PlatformWebView::PlatformWebView):
Update to call new TestOptions functions.
- WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::TestController::platformSpecificFeatureDefaultsForTest const):
(WTR::TestController::updatePlatformSpecificTestOptionsForTest const): Deleted.
Remove shouldUseRemoteLayerTree and shouldShowWebView, as those are now done globally,
and re-implemented useThreadedScrolling to use boolFeatures.
- WebKitTestRunner/win/TestControllerWin.cpp:
(WTR::TestController::platformSpecificFeatureDefaultsForTest const):
(WTR::TestController::updatePlatformSpecificTestOptionsForTest const): Deleted.
Updated for new signature.
- WebKitTestRunner/wpe/TestControllerWPE.cpp:
(WTR::TestController::platformSpecificFeatureDefaultsForTest const):
(WTR::TestController::updatePlatformSpecificTestOptionsForTest const): Deleted.
Updated for new signature.
- WebKitTestRunner/gtk/TestControllerGTK.cpp:
(WTR::TestController::platformSpecificFeatureDefaultsForTest const):
(WTR::TestController::updatePlatformSpecificTestOptionsForTest const): Deleted.
Updated for new signature.
- 9:03 PM Changeset in webkit [268114] by
-
- 42 edits10 adds in trunk
<input type="datetime-local"> not show calendar UI when it's inside ShadowDOM
https://bugs.webkit.org/show_bug.cgi?id=216985
<rdar://problem/69660273>
Reviewed by Darin Adler.
Source/WebCore:
Tests: fast/forms/date/date-from-frameless-document.html
fast/forms/datetimelocal/datetimelocal-from-frameless-document.html
fast/forms/month/month-from-frameless-document.html
fast/forms/time/time-from-frameless-document.html
fast/forms/week/week-from-frameless-document.html
The issue here was that frameless documents, such as those created via the
<template> element or document.implementation.createHTMLDocument(...) were
not able to access the real Settings object, so were creating their own which
only contained the default values. So, the solution is to ensure we pass
the real Settings object to the Document constructors even when the Frame is
null.
To do this requires a bit of piping Settings around, but also some simplification.
Now, the Settings owned by Document is fully immutable, with the mutableSettings()
accessor being removed, as it was not actually needed. The two uses of mutable
Settings were for ServiceWorker creation, where we can just use the mutable accessor
from Page instead, and in the Document constructor, where the LegacyGetUserMediaEnabled
setting was being enabled based on a quirk. This was not only incorrect (as it would
effect more than just what the quirk intended) but unnecessary, as we can make the
bindings access the quirk directly.
The one somewhat complex case was for CachedSVGDocument and CachedSVGFont for which
I had to thread settings through CachedResourceLoader and have the CachedSVGDocument
and CachedSVGFont hold onto the Settings object until it was time to construct their
documents.
- bindings/scripts/CodeGeneratorJS.pm:
(NeedsRuntimeCheck):
(GenerateRuntimeEnableConditionalString):
- bindings/scripts/IDLAttributes.json:
Add support back for EnabledByQuirk.
- Modules/mediastream/Navigator+MediaDevices.idl:
Switch to EnabledByQuirk=shouldEnableLegacyGetUserMedia.
- page/Quirks.cpp:
(WebCore::Quirks::shouldEnableLegacyGetUserMediaQuirk const):
(WebCore::Quirks::shouldEnableLegacyGetUserMedia const): Deleted.
- page/Quirks.h:
Rename quirk to end in "Quirk" to work with the bindings generator.
- page/Settings.yaml:
Remove now unused legacyGetUserMediaEnabled settings.
- Scripts/SettingsTemplates/Settings.h.erb:
Export the settings contructor and destructor so it can be used by tests.
- workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::createPageForServiceWorker):
Switch to using the mutable settings from Page.
- dom/DOMImplementation.cpp:
(WebCore::createXMLDocument):
(WebCore::DOMImplementation::createDocument):
(WebCore::DOMImplementation::createHTMLDocument):
- dom/DOMImplementation.h:
- dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::m_selection):
(WebCore::Document::create):
(WebCore::Document::createNonRenderedPlaceholder):
(WebCore::Document::cloneDocumentWithoutChildren const):
(WebCore::Document::ensureTemplateDocument):
- dom/Document.h:
(WebCore::Document::settings const):
(WebCore::Document::create):
(WebCore::Document::mutableSettings): Deleted.
- dom/XMLDocument.h:
(WebCore::XMLDocument::create):
(WebCore::XMLDocument::createXHTML):
(WebCore::XMLDocument::XMLDocument):
- html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocument::FTPDirectoryDocument):
- html/FTPDirectoryDocument.h:
- html/HTMLDocument.cpp:
(WebCore::HTMLDocument::createSynthesizedDocument):
(WebCore::HTMLDocument::HTMLDocument):
(WebCore::HTMLDocument::cloneDocumentWithoutChildren const):
- html/HTMLDocument.h:
(WebCore::HTMLDocument::create):
- html/ImageDocument.cpp:
(WebCore::ImageDocument::ImageDocument):
- html/ImageDocument.h:
- html/MediaDocument.cpp:
(WebCore::MediaDocument::MediaDocument):
- html/MediaDocument.h:
- html/PluginDocument.cpp:
(WebCore::PluginDocument::PluginDocument):
- html/PluginDocument.h:
- html/TextDocument.cpp:
(WebCore::TextDocument::TextDocument):
- html/TextDocument.h:
- inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::patchDocument):
- loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::createDocument):
(WebCore::DocumentWriter::begin):
- loader/SinkDocument.cpp:
(WebCore::SinkDocument::SinkDocument):
- loader/SinkDocument.h:
- loader/cache/CachedResourceLoader.cpp:
(WebCore::createResource):
(WebCore::CachedResourceLoader::updateCachedResourceWithCurrentRequest):
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::revalidateResource):
(WebCore::CachedResourceLoader::loadResource):
- loader/cache/CachedResourceLoader.h:
- loader/cache/CachedSVGDocument.cpp:
(WebCore::CachedSVGDocument::CachedSVGDocument):
(WebCore::CachedSVGDocument::finishLoading):
- loader/cache/CachedSVGDocument.h:
- loader/cache/CachedSVGFont.cpp:
(WebCore::CachedSVGFont::CachedSVGFont):
(WebCore::CachedSVGFont::ensureCustomFontData):
- loader/cache/CachedSVGFont.h:
- page/ios/FrameIOS.mm:
(WebCore::Frame::initWithSimpleHTMLDocument):
- svg/SVGDocument.cpp:
(WebCore::SVGDocument::SVGDocument):
(WebCore::SVGDocument::cloneDocumentWithoutChildren const):
- svg/SVGDocument.h:
(WebCore::SVGDocument::create):
- xml/DOMParser.cpp:
(WebCore::DOMParser::DOMParser):
(WebCore::DOMParser::parseFromString):
- xml/DOMParser.h:
- xml/XMLHttpRequest.cpp:
- xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::createDocumentFromSource):
Thread settings into all the places.
Tools:
- TestWebKitAPI/Tests/WebCore/DocumentOrder.cpp:
(TestWebKitAPI::createDocument):
Update to pass a Settings object to Document::create which is now required.
LayoutTests:
Add tests that show that date/time input elements are the same whether they come from a template
document or the main document.
- fast/forms/date/date-from-frameless-document-expected.html: Added.
- fast/forms/date/date-from-frameless-document.html: Added.
- fast/forms/datetimelocal/datetimelocal-from-frameless-document-expected.html: Added.
- fast/forms/datetimelocal/datetimelocal-from-frameless-document.html: Added.
- fast/forms/month/month-from-frameless-document-expected.html: Added.
- fast/forms/month/month-from-frameless-document.html: Added.
- fast/forms/time/time-from-frameless-document-expected.html: Added.
- fast/forms/time/time-from-frameless-document.html: Added.
- fast/forms/week/week-from-frameless-document-expected.html: Added.
- fast/forms/week/week-from-frameless-document.html: Added.
- 8:34 PM Changeset in webkit [268113] by
-
- 2 edits1 add in trunk/LayoutTests
[GLIB] Gardening and rebaseline two tests
Unreviewed test gardening.
- platform/glib/webaudio/audioworklet-addModule-failure-expected.txt: Added.
- platform/gtk/TestExpectations:
- 8:20 PM Changeset in webkit [268112] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (iOS 14): [ iOS wk2 ] imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=217419
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- 6:45 PM Changeset in webkit [268111] by
-
- 1 copy in tags/Safari-610.2.11
Tag Safari-610.2.11.
- 6:35 PM Changeset in webkit [268110] by
-
- 8 edits in branches/safari-610.2-branch/Source
Versioning.
WebKit-7610.2.11
- 6:28 PM Changeset in webkit [268109] by
-
- 1 copy in tags/Safari-611.1.1.3
Tag Safari-611.1.1.3.
- 6:23 PM Changeset in webkit [268108] by
-
- 8 edits in branches/safari-611.1.1-branch/Source
Versioning.
WebKit-7611.1.1.3
- 6:05 PM Changeset in webkit [268107] by
-
- 4 edits in branches/safari-610-branch/Source/WebKit
Apply patch. rdar://problem/70026315
- 6:02 PM Changeset in webkit [268106] by
-
- 10 edits2 adds in branches/safari-610-branch
Cherry-pick r267987. rdar://problem/70025699
MediaRecorder should respect enabled and muted tracks
https://bugs.webkit.org/show_bug.cgi?id=217312
Reviewed by Eric Carlson.
Source/WebCore:
If track is muted, replace it by either silence (audio buffer filled with zeros) or black frames.
MediaRecorderPrivate will keep track of whether the selected track should be muted.
It is then the responsibility of the specialization to do the appropriate processing.
Test: http/wpt/mediarecorder/mute-tracks.html
- Modules/mediarecorder/MediaRecorder.cpp: (WebCore::MediaRecorder::trackMutedChanged): (WebCore::MediaRecorder::trackEnabledChanged):
- Modules/mediarecorder/MediaRecorder.h:
- platform/audio/cocoa/WebAudioBufferList.cpp: (WebCore::WebAudioBufferList::zeroFlatBuffer):
- platform/audio/cocoa/WebAudioBufferList.h:
- platform/mediarecorder/MediaRecorderPrivate.cpp: (WebCore::MediaRecorderPrivate::selectTracks): (WebCore::MediaRecorderPrivate::checkTrackState):
- platform/mediarecorder/MediaRecorderPrivate.h: (WebCore::MediaRecorderPrivate::trackMutedChanged): (WebCore::MediaRecorderPrivate::trackEnabledChanged): (WebCore::MediaRecorderPrivate::shouldMuteAudio const): (WebCore::MediaRecorderPrivate::shouldMuteVideo const):
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp: (WebCore::MediaRecorderPrivateAVFImpl::create): (WebCore::MediaRecorderPrivateAVFImpl::videoSampleAvailable): (WebCore::MediaRecorderPrivateAVFImpl::audioSamplesAvailable):
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
LayoutTests:
- http/wpt/mediarecorder/mute-tracks-expected.txt: Added.
- http/wpt/mediarecorder/mute-tracks.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267987 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:02 PM Changeset in webkit [268105] by
-
- 11 edits1 add in branches/safari-610-branch
Cherry-pick r267870. rdar://problem/70025703
Add AVAssetWriter SPI header
https://bugs.webkit.org/show_bug.cgi?id=217169
<rdar://problem/69793050>
Reviewed by Eric Carlson.
Source/WebCore:
No change of behavior, include SPI header instead of private SDK header.
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/spi/cocoa/AVAssetWriterSPI.h: Added.
Source/WTF:
- wtf/PlatformHave.h: Remove dependency on AVAssetWriter_private.h. Introduce HAVE_AVASSETWRITERDELEGATE_API for older OSes that only have delegate as SPI.
LayoutTests:
Enable tests by default on Catalina+, disable them on Mojave and WK1.
Disable tests for iOS13.
- TestExpectations:
- platform/ios-13/TestExpectations:
- platform/mac/TestExpectations:
- platform/mac-wk1/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267870 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:02 PM Changeset in webkit [268104] by
-
- 5 edits in branches/safari-610-branch/LayoutTests
Apply patch. rdar://problem/70024420
- 5:36 PM Changeset in webkit [268103] by
-
- 28 edits4 copies in trunk
Add implementation for AudioWorkletGlobalScope.registerProcessor()
https://bugs.webkit.org/show_bug.cgi?id=217405
Reviewed by Geoff Garen.
LayoutTests/imported/w3c:
Rebaseline WPT tests as we are now passing more checks.
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet.https-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-iterable.https-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam.https-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-sample-rate.https-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-construction.https-expected.txt:
Source/WebCore:
Add implementation for AudioWorkletGlobalScope.registerProcessor() that matches very closely
the specification at:
Also update the AudioWorkletNode constructor implementation as per:
Now that the AudioWorklet is able to register a processor and AudioParamDescriptors, the
AudioWorkletNode constructor is able to make sure that a processor with the given name was
indeed registered. We are also able to construct the AudioParam objects based on the
AudioParamDescriptors provided when registering the processor.
Note that even though it is now possible to register an AudioWorkletProcessor, it is still
not used to process the audio. An AudioWorkletNode currently only outputs silence. This will
be addresssed in a future patch.
No new tests, rebaselined existing tests.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/webaudio/AudioParam.h:
- Modules/webaudio/AudioParam.idl:
- Modules/webaudio/AudioParamDescriptor.h: Copied from Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.idl.
(WebCore::AudioParamDescriptor::isolatedCopy const):
- Modules/webaudio/AudioParamDescriptor.idl: Copied from Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.idl.
- Modules/webaudio/AudioWorkletGlobalScope.cpp:
(WebCore::AudioWorkletGlobalScope::registerProcessor):
- Modules/webaudio/AudioWorkletGlobalScope.h:
- Modules/webaudio/AudioWorkletGlobalScope.idl:
- Modules/webaudio/AudioWorkletMessagingProxy.cpp:
(WebCore::AudioWorkletMessagingProxy::AudioWorkletMessagingProxy):
(WebCore::AudioWorkletMessagingProxy::postTaskToAudioWorklet):
- Modules/webaudio/AudioWorkletMessagingProxy.h:
- Modules/webaudio/AudioWorkletNode.cpp:
(WebCore::AudioWorkletNode::create):
- Modules/webaudio/AudioWorkletThread.h:
(WebCore::AudioWorkletThread::messagingProxy):
- Modules/webaudio/AutomationRate.h: Copied from Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.idl.
- Modules/webaudio/AutomationRate.idl: Copied from Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.idl.
- Modules/webaudio/BaseAudioContext.cpp:
(WebCore::BaseAudioContext::addAudioParamDescriptors):
- Modules/webaudio/BaseAudioContext.h:
(WebCore::BaseAudioContext::parameterDescriptorMap const):
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- 5:23 PM Changeset in webkit [268102] by
-
- 9 edits in branches/safari-610-branch
Cherry-pick r267941. rdar://problem/70024420
Make sure MediaRecorder does not call fetchData until the last fetchData is completed
https://bugs.webkit.org/show_bug.cgi?id=217276
Reviewed by Darin Adler.
Source/WebCore:
When fetchData is called while an existing fetchData is inflight, enqueue the callback in a deque.
When the inflight fetchData completes, call the enqueued callbacks in order with a null blob.
Add ASSERT in MediaRecorderPrivateWriter to make sure we do not call requestMediaDataWhenReadyOnQueue too many times.
Covered by updated http/wpt/mediarecorder/MediaRecorder-dataavailable.html.
- Modules/mediarecorder/MediaRecorder.cpp: (WebCore::MediaRecorder::stopRecording): (WebCore::MediaRecorder::requestData): Do not enable the timer if MediaRecorder is not active as a small optimization. (WebCore::MediaRecorder::fetchData):
- Modules/mediarecorder/MediaRecorder.h:
- platform/mediarecorder/MediaRecorderPrivateMock.cpp: (WebCore::MediaRecorderPrivateMock::fetchData):
- platform/mediarecorder/MediaRecorderPrivateMock.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm: (WebCore::MediaRecorderPrivateWriter::flushCompressedSampleBuffers):
LayoutTests:
Add test to cover patch
Update some test expectations according bot results.
- http/wpt/mediarecorder/MediaRecorder-dataavailable-expected.txt:
- http/wpt/mediarecorder/MediaRecorder-dataavailable.html:
- platform/mac/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267941 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:23 PM Changeset in webkit [268101] by
-
- 3 edits in branches/safari-610-branch/LayoutTests
Cherry-pick r267836. rdar://problem/70024631
http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=217171
<rdar://problem/65085139>
Reviewed by Eric Carlson.
- http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html: Setting the video currentTime too close to the end makes it render transparent frames. Make it so that we try using the middle of the video content where we expect green content.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267836 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:23 PM Changeset in webkit [268100] by
-
- 15 edits in branches/safari-610-branch
Cherry-pick r267833. rdar://problem/70024626
MediaRecorder should support MediaRecorderOptions.mimeType
https://bugs.webkit.org/show_bug.cgi?id=215018
<rdar://problem/66681508>
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/mediacapture-record/MediaRecorder-mimetype-expected.txt:
Source/WebCore:
Instead of setting mime type right away, set it just before firing start event as per spec.
This will allow in the future to populate exact codec parameters if proven useful.
Covered by rebased and updated tests.
- Modules/mediarecorder/MediaRecorder.cpp: (WebCore::MediaRecorder::create): (WebCore::MediaRecorder::startRecording):
- platform/mediarecorder/MediaRecorderPrivate.h: (WebCore::MediaRecorderPrivate::startRecording):
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
Source/WebKit:
Update code to pass mimeType as part of startRecording callback.
- GPUProcess/webrtc/RemoteMediaRecorder.h: (WebKit::RemoteMediaRecorder::mimeType const):
- GPUProcess/webrtc/RemoteMediaRecorderManager.cpp: (WebKit::RemoteMediaRecorderManager::createRecorder):
- GPUProcess/webrtc/RemoteMediaRecorderManager.h:
- GPUProcess/webrtc/RemoteMediaRecorderManager.messages.in:
- WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp: (WebKit::MediaRecorderPrivate::startRecording):
- WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
LayoutTests:
Update test to expect setting of the mime type after start event.
- http/wpt/mediarecorder/mimeType.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267833 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:23 PM Changeset in webkit [268099] by
-
- 5 edits in trunk/Source/WebCore
[LFC] FormattingContext::Geometry::contentHeightForFormattingContextRoot should take a const ContainerBox&
https://bugs.webkit.org/show_bug.cgi?id=217404
Reviewed by Simon Fraser.
A formatting context root is always a Layout::ContainerBox (and not just a Layout::Box).
- layout/FormattingContext.h:
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry):
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createLayoutBox):
- 5:23 PM Changeset in webkit [268098] by
-
- 5 edits in branches/safari-610-branch
Cherry-pick r267822. rdar://problem/70024621
MediaRecorder should allow setting low bit rates for audio
https://bugs.webkit.org/show_bug.cgi?id=216688
<rdar://problem/69129142>
Reviewed by Eric Carlson.
Source/WebCore:
When setting the bitrate provided by the web app fails, we now use default bit rate values that are expected to work properly.
Covered by updated tests.
- platform/mediarecorder/cocoa/AudioSampleBufferCompressor.h:
- platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm: (WebCore::AudioSampleBufferCompressor::setBitsPerSecond): (WebCore::AudioSampleBufferCompressor::defaultOutputBitRate const): (WebCore::AudioSampleBufferCompressor::initAudioConverterForSourceFormatDescription):
LayoutTests:
Add more bitrate tests.
- http/wpt/mediarecorder/MediaRecorder-audio-bitrate.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267822 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:21 PM Changeset in webkit [268097] by
-
- 4 edits in trunk
Reloading a view in its processTerminationHandler does not work reliably when using related views
https://bugs.webkit.org/show_bug.cgi?id=217407
Reviewed by Geoff Garen.
Source/WebKit:
Related web views share the same WebContent process. When this process crashes, we iterate over
the list of WebPageProxy objects sharing this process and let them know that their process has
crashed. This causes the WebPageProxy to reset its state (so that it is aware it no longer has
a running process) and to notify the client application. Because we were notifying the client
application synchronously, the client could trigger a load in the view synchronously while we
are still iterating over the WebPageProxy objects. When triggering a load in a web view that
has no running process, we normally relaunch one. However, in the case of related web views,
the view uses its related webview's process, relaunching it if necessary. The 'relaunching
if necessary' part was not reliably happening here because the related web view may not have
been notified yet that its WebProcess has crashed (since we are still iterating over the
pages to notify them).
To address the issue, we now notify the client asynchronously of the process termination.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dispatchProcessDidTerminate):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm:
(-[NavigationDelegateWithCrashHandlerThatLoadsAgain _webView:webContentProcessDidTerminateWithReason:]):
(-[NavigationDelegateWithCrashHandlerThatLoadsAgain webView:didFinishNavigation:]):
(TEST):
- 5:19 PM Changeset in webkit [268096] by
-
- 1 copy in tags/Safari-610.2.10
Tag Safari-610.2.10.
- 5:18 PM Changeset in webkit [268095] by
-
- 6 edits in trunk
[Media in GPU Process] The seekable attribute of HTMLMediaElement has an incorrect value
https://bugs.webkit.org/show_bug.cgi?id=217410
Reviewed by Eric Carlson.
Source/WebKit:
Covered by existing tests.
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::mediaPlayerReadyStateChanged):
Update the state variables related to theseekableattribute when the media player is ready.
(WebKit::RemoteMediaPlayerProxy::updateCachedState):
Add a missing state variable setting.
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::seekable const): Deleted.
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
Instead of overriding seekable() here, we should use MediaPlayerPrivateInterface::seekable(),
which has the correct behavior.
LayoutTests:
- gpu-process/TestExpectations:
- 5:16 PM Changeset in webkit [268094] by
-
- 8 edits in branches/safari-610.2-branch/Source
Versioning.
WebKit-7610.2.10
- 5:15 PM Changeset in webkit [268093] by
-
- 3 edits in trunk/LayoutTests
REGRESSION (r267402): [ iOS Mojave+ Release ] imported/w3c/web-platform-tests/user-timing/measure-l3.any.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217414
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 5:09 PM Changeset in webkit [268092] by
-
- 26 edits2 adds in branches/safari-610-branch
Cherry-pick r267825. rdar://problem/70024248
MediaRecorder should support isTypeSupported
https://bugs.webkit.org/show_bug.cgi?id=216856
LayoutTests/imported/w3c:
Reviewed by Darin Adler.
- web-platform-tests/mediacapture-record/MediaRecorder-mimetype-expected.txt:
- web-platform-tests/mediacapture-record/MediaRecorder-peerconnection.https-expected.txt:
- web-platform-tests/mediacapture-record/idlharness.window-expected.txt:
- web-platform-tests/mediacapture-record/passthrough/MediaRecorder-passthrough.https-expected.txt:
- web-platform-tests/mediacapture-record/passthrough/MediaRecorder-passthrough.https.html: Remove JS console log error line.
Source/WebCore:
<rdar://problem/69767695>
Reviewed by Darin Adler.
Introduce MediaRecorder::isMimeTypeSupported whose result is exposed as MediaRecoder.isTypeSupported.
Cocoa port allows mp4 audio and video mime types, with H264 and AAC codecs.
Add a routine to get the mime type from the MediaRecorderPrivate.
Store it in MediaRecorder and add a mimeType getter.
Test: http/wpt/mediarecorder/mimeType.html
- Modules/mediarecorder/MediaRecorder.cpp: (WebCore::MediaRecorder::isTypeSupported): (WebCore::MediaRecorder::create):
- Modules/mediarecorder/MediaRecorder.h:
- Modules/mediarecorder/MediaRecorder.idl:
- Modules/mediarecorder/MediaRecorderProvider.cpp: (WebCore::MediaRecorderProvider::isSupported):
- Modules/mediarecorder/MediaRecorderProvider.h:
- platform/mediarecorder/MediaRecorderPrivate.h:
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp: (WebCore::MediaRecorderPrivateAVFImpl::mimeType const):
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
- platform/mediarecorder/MediaRecorderPrivateMock.cpp: (WebCore::MediaRecorderPrivateMock::mimeType const):
- platform/mediarecorder/MediaRecorderPrivateMock.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm: (WebCore::MediaRecorderPrivateWriter::mimeType const):
- platform/mediastream/MediaStreamPrivate.h:
Source/WebKit:
<rdar://problem/69767695>
Reviewed by Darin Adler.
Stop passing mimeType for each data blob.
Instead, compute it on WebProcess side.
- GPUProcess/webrtc/RemoteMediaRecorder.cpp: (WebKit::RemoteMediaRecorder::fetchData):
- GPUProcess/webrtc/RemoteMediaRecorder.h:
- GPUProcess/webrtc/RemoteMediaRecorder.messages.in:
- WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp: (WebKit::MediaRecorderPrivate::MediaRecorderPrivate): (WebKit::MediaRecorderPrivate::fetchData): (WebKit::MediaRecorderPrivate::mimeType const):
- WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
LayoutTests:
Reviewed by Darin Adler.
- http/wpt/mediarecorder/mimeType-expected.txt: Added.
- http/wpt/mediarecorder/mimeType.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267825 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:09 PM Changeset in webkit [268091] by
-
- 3 edits in branches/safari-610-branch/Source/WebCore
Cherry-pick r267828. rdar://problem/70023908
[iOS] MediaRecorder incorrect screen orientation handling
https://bugs.webkit.org/show_bug.cgi?id=198912
<rdar://problem/51802521>
Reviewed by Eric Carlson.
We were setting the transform to the writer input too soon.
Buffer the transform when receiving the first frame and set it at creation of the writer input.
Covered by http/wpt/mediarecorder/video-rotation.html now actually passing.
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm: (WebCore::MediaRecorderPrivateWriter::startAssetWriter): (WebCore::MediaRecorderPrivateWriter::appendVideoSampleBuffer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267828 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:09 PM Changeset in webkit [268090] by
-
- 3 edits in branches/safari-610-branch/Source/WebCore
Cherry-pick r267521. rdar://problem/70023915
REGRESSION (iOS/Safari 14): MediaRecorder produces invalid video files
https://bugs.webkit.org/show_bug.cgi?id=216832
<rdar://problem/69377550>
Reviewed by Eric Carlson.
Start the audio and video timestamps at zero.
Compute the audio timestamp based on the sample count and the video timestamp based
on the time at which the video sample is received.
Covered by manually testing Safari generated videos on VLC, Chrome and Firefox.
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm: (WebCore::MediaRecorderPrivateWriter::initialize): (WebCore::MediaRecorderPrivateWriter::startAssetWriter): (WebCore::copySampleBufferWithCurrentTimeStamp): (WebCore::MediaRecorderPrivateWriter::appendVideoSampleBuffer): (WebCore::createAudioSampleBuffer): (WebCore::MediaRecorderPrivateWriter::appendAudioSampleBuffer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267521 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:09 PM Changeset in webkit [268089] by
-
- 7 edits2 adds in branches/safari-610-branch
Cherry-pick r267366. rdar://problem/70023908
[iOS] MediaRecorder incorrect screen orientation handling
https://bugs.webkit.org/show_bug.cgi?id=198912
<rdar://problem/51802521>
Reviewed by Eric Carlson.
Source/WebCore:
Update MediaRecorderPrivateWriterCocoa to pass a MediaSample down to handle rotation.
Set AVAssetWriterInput transform according the first MediaSample rotation value.
Test: http/wpt/mediarecorder/video-rotation.html
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp: (WebCore::MediaRecorderPrivateAVFImpl::videoSampleAvailable):
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm: (WebCore::MediaRecorderPrivateWriter::appendVideoSampleBuffer):
Source/WebKit:
- GPUProcess/webrtc/RemoteMediaRecorder.cpp: (WebKit::RemoteMediaRecorder::videoSampleAvailable):
LayoutTests:
- http/wpt/mediarecorder/video-rotation-expected.txt: Added.
- http/wpt/mediarecorder/video-rotation.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267366 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:09 PM Changeset in webkit [268088] by
-
- 28 edits5 adds in branches/safari-610-branch
Apply patch. rdar://70023523
- 5:03 PM Changeset in webkit [268087] by
-
- 1 copy in branches/safari-610.2-branch
New branch.
- 4:44 PM Changeset in webkit [268086] by
-
- 42 edits2 copies6 adds in trunk
CSS hover and "pointer: fine" media queries do not evaluate to true with iOS 13.4 mouse support
https://bugs.webkit.org/show_bug.cgi?id=209292
<rdar://problem/60663124>
Reviewed by Tim Horton.
Source/WebCore:
On iOS, the primary pointer will always be touch input, so the
hover/pointermedia query
should never change. If a mouse is connected, however,any-hover/any-pointershould
change as now there is at least one device that supportshover/fine. Note that in the
case ofany-pointerthis means that bothcoarseandfinewill apply. Catalyst assumes
that there is always a mouse connected.
Spec: https://drafts.csswg.org/mediaqueries-4/#any-input
- css/MediaQueryEvaluator.cpp:
(WebCore::anyHoverEvaluate):
(WebCore::anyPointerEvaluate):
- page/ChromeClient.h:
- loader/EmptyClients.h:
(WebCore::EmptyChromeClient::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebCore::EmptyChromeClient::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.
Provide a way for WebCore to get the current state of whether there are any mouse devices.
Refactor logic inanyHoverEvaluateandanyPointerEvaluateto move platform code into the
respectiveWebKit::WebPagefile.
- page/PointerCharacteristics.h: Added.
Enum for
CoarseandFine.
- platform/PlatformScreen.h:
Export additional functions for use in WebKit.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
Source/WebKit:
On iOS, the primary pointer will always be touch input, so the
hover/pointermedia query
should never change. If a mouse is connected, however,any-hover/any-pointershould
change as now there is at least one device that supportshover/fine. Note that in the
case ofany-pointerthis means that bothcoarseandfinewill apply. Catalyst assumes
that there is always a mouse connected.
Spec: https://drafts.csswg.org/mediaqueries-4/#any-input
- UIProcess/ios/WKMouseDeviceObserver.h: Added.
- UIProcess/ios/WKMouseDeviceObserver.mm: Added.
(+[WKMouseDeviceObserver sharedInstance]):
(-[WKMouseDeviceObserver dealloc]):
(-[WKMouseDeviceObserver start]):
(-[WKMouseDeviceObserver stop]):
(-[WKMouseDeviceObserver mousePointerDevicesDidChange:]):
(-[WKMouseDeviceObserver _setHasMouseDeviceForTesting:]):
UseBackBoardServicesto listen for mouse devices changes and notify all WebProcess.
- UIProcess/WebProcessProxy.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::WebProcessProxy::platformInitialize): Added.
(WebKit::WebProcessProxy::~WebProcessProxy):
(WebKit::WebProcessProxy::platformDestroy): Added.
- UIProcess/ios/WebProcessProxyIOS.mm:
(WebKit::WebProcessProxy::platformInitialize): Added.
(WebKit::WebProcessProxy::platformDestroy): Added.
(WebKit::WebProcessProxy::notifyHasMouseDeviceChanged): Added.
Tell the sharedWKMouseDeviceObserverto start listening for mouse device changes when
creating the WebProcess so that the sharedWKMouseDeviceObserverknows to notify all
instances when mouse devices change. MakeallProcessesinto aprivate staticmember
function so that it can also be used inUIProcess/ios/WebProcessProxyIOS.mm.
- Shared/WebProcessCreationParameters.h:
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
Use the current state of the sharedWKMouseDeviceObserverwhen creating WebProcess instead
of sending aSetHasMouseDevicemessage immediately after the WebProcess is created.
- WebProcess/WebProcess.messages.in:
- WebProcess/WebProcess.h:
(WebKit::WebProcess::hasMouseDevice const): Added.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setHasMouseDevice): Added.
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
Update style (includingany-hoverandany-pointer) whenever mouse devices change.
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebKit::WebChromeClient::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::hasMouseDevice): Added.
(WebKit::WebPage::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.
- WebProcess/WebPage/playstation/WebPagePlayStation.cpp:
(WebKit::WebPage::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.
- WebProcess/WebPage/win/WebPageWin.cpp:
(WebKit::WebPage::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.
- WebProcess/WebPage/wpe/WebPageWPE.cpp:
(WebKit::WebPage::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.
Provide a way for WebCore to get the current state of whether there are any mouse devices.
Refactor logic inWebCore::anyHoverEvaluateandWebCore::anyPointerEvaluateto move
platform code into the respectiveWebPagefile.
- Configurations/WebKit.xcconfig:
- Platform/spi/ios/BackBoardServicesSPI.h:
- Platform/spi/ios/BaseBoardSPI.h: Added.
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
Source/WebKitLegacy/ios:
- WebCoreSupport/WebChromeClientIOS.h:
(WebChromeClientIOS::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebChromeClientIOS::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.
Mouse devices are not supported.
Source/WebKitLegacy/mac:
- WebCoreSupport/WebChromeClient.h:
(WebChromeClient::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebChromeClient::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.
Mouse devices are always supported.
Source/WebKitLegacy/win:
- WebCoreSupport/WebChromeClient.h:
(WebChromeClient::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebChromeClient::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.
Mouse devices are always supported.
Tools:
- TestWebKitAPI/cocoa/TestWKWebView.h:
- TestWebKitAPI/cocoa/TestWKWebView.mm:
(-[TestWKWebView evaluateMediaQuery:]): Added.
Create helper function for synchronously testing media queries.
- TestWebKitAPI/Tests/WebKitCocoa/iOSMouseSupport.mm:
(iOSMouseSupport.MouseInitiallyDisconnected): Added.
(iOSMouseSupport.MouseInitiallyConnected): Added.
(iOSMouseSupport.MouseLaterDisconnected): Added.
(iOSMouseSupport.MouseLaterConnected): Added.
(iOSMouseSupport.MouseAlwaysConnected): Added.
WebKitLibraries:
- WebKitPrivateFrameworkStubs/iOS/13/BackBoardServices.framework/BackBoardServices.tbd: Added.
- WebKitPrivateFrameworkStubs/iOS/14/BackBoardServices.framework/BackBoardServices.tbd: Added.
Use
BackBoardServicesto listen for mouse devices changes.
- 4:23 PM Changeset in webkit [268085] by
-
- 15 edits10 adds in trunk
Support EXT_texture_compression_rgtc WebGL extension
https://bugs.webkit.org/show_bug.cgi?id=217198
Reviewed by Kenneth Russell.
Source/WebCore:
Test: webgl/conformance/extensions/ext-texture-compression-rgtc.html
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMConvertWebGL.cpp:
(WebCore::convertToJSValue):
- html/canvas/EXTTextureCompressionRGTC.cpp: Added.
(WebCore::EXTTextureCompressionRGTC::EXTTextureCompressionRGTC):
(WebCore::EXTTextureCompressionRGTC::getName const):
- html/canvas/EXTTextureCompressionRGTC.h: Added.
- html/canvas/EXTTextureCompressionRGTC.idl: Added.
- html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::getExtension):
(WebCore::WebGL2RenderingContext::getSupportedExtensions):
- html/canvas/WebGLExtension.h:
- html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getSupportedExtensions):
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::extensionIsEnabled):
(WebCore::WebGLRenderingContextBase::validateCompressedTexFuncData):
(WebCore::WebGLRenderingContextBase::loseExtensions):
- html/canvas/WebGLRenderingContextBase.h:
- platform/graphics/ExtensionsGL.h:
LayoutTests:
- webgl/conformance/extensions/ext-texture-compression-rgtc-expected.txt: Added.
- webgl/conformance/extensions/ext-texture-compression-rgtc.html: Added.
- webgl/conformance/extensions/s3tc-and-rgtc-expected.txt: Added.
- webgl/conformance/extensions/s3tc-and-rgtc.html: Added.
- webgl/resources/webgl_test_files/conformance/extensions/ext-texture-compression-rgtc.html: Added.
- webgl/resources/webgl_test_files/conformance/extensions/s3tc-and-rgtc.html: Added.
- webgl/resources/webgl_test_files/js/tests/compressed-texture-utils.js: Added.
- 4:21 PM Changeset in webkit [268084] by
-
- 2 edits in trunk/Source/WebCore
AX: Expose lineRangeForPosition for iOS Accessibility code
https://bugs.webkit.org/show_bug.cgi?id=217256
<rdar://problem/67478962>
Reviewed by Zalan Bujtas.
Expose the existing lineRangeForPosition method for iOS accessibility.
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper lineMarkersForMarker:]):
- 4:16 PM Changeset in webkit [268083] by
-
- 2 edits in trunk/LayoutTests
Adjust test expectation to include Release queue failure after change to iOS 14
https://bugs.webkit.org/show_bug.cgi?id=214731
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- 3:59 PM Changeset in webkit [268082] by
-
- 2 edits in trunk/Source/WebCore
[LFC][BFC] Move document box special height computation out of contentHeightForFormattingContextRoot
https://bugs.webkit.org/show_bug.cgi?id=217402
Reviewed by Simon Fraser.
Document box (<html>) is not a formatting context root and while its content height computation is very similar to
BFC root height computation, it should not pollute the generic contentHeightForFormattingContextRoot code.
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):
- 3:54 PM Changeset in webkit [268081] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(iOS 14): http/wpt/cache-storage/cache-quota.any.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217412
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 3:47 PM Changeset in webkit [268080] by
-
- 17 edits in trunk/Tools
[webkitscmpy] Generate Commit object from local repository
https://bugs.webkit.org/show_bug.cgi?id=216404
<rdar://problem/68702897>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version.
- Scripts/libraries/webkitcorepy/webkitcorepy/decorators.py:
(Memoize.call.decorator): Handle case where function arguments are different.
- Scripts/libraries/webkitcorepy/webkitcorepy/mocks/popen.py:
(PopenBase.poll): Reset stdout and stderr after calling the completion handler.
- Scripts/libraries/webkitcorepy/webkitcorepy/tests/decorators_unittest.py:
(TestMemoize.test_conflicting_args):
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/contributor.py:
(Contributor): Number of lines may be singular.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git):
(Git.init): Caller may wish to specify the patterns for production and development branches.
(Git.branches): Call the more general _branches_for to unify remote stripping logic.
(Git._commit_count): Given a parameter (hash, branch, difference between default branch and commit), compute
the number of commits.
(Git._branches_for): Given a hash, return all branches the commit is part of.
(Git.commit): Construct a commit given a commit hash, revision, identifier or branch.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:
(Scm):
(Scm.init): Caller may wish to specify the patterns for production and development branches.
(Scm.commit): Construct a commit given a commit hash, revision, identifier or branch.
(Scm.prioritize_branches): Given a set of branches, pick the highest priority one.
(Scm.log): Log error to a configured logger or stderr.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:
(Svn):
(Svn.init): Caller may wish to specify the patterns for production and development branches.
(Svn.info): Allow info for a specific commit to be queried.
(Svn._cache_path): Path to json cache of branch-commit mapping.
(Svn._cache_revisions): Query the remote for a specific branch to get the list of all commits on that branch.
(Svn._commit_count): Given a revision or branch, compute the number of commits.
(Svn._branch_for): Given a revision, use local data to determine the most likely branch before asking the remote which branch
a commit is on.
(Svn.commit): Construct a commit given a commit hash, revision, identifier or branch.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
(Git): Add commands needed to construct an identifier, add mock commits.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/svn.py:
(Svn): Add commands needed to construct an identifier, add mock commits.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/contributor_unittest.py:
(TestContributor.test_short_svn_log):
- Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
(TestGit):
- Scripts/libraries/webkitscmpy/webkitscmpy/test/scm_unittest.py:
(TestScm.test_remote):
(TestScm):
- Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:
(TestSvn):
- 3:29 PM Changeset in webkit [268079] by
-
- 1 copy in tags/Safari-610.2.9
Tag Safari-610.2.9.
- 3:20 PM Changeset in webkit [268078] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(iOS 14): http/tests/cache-storage/page-cache-domcache-pending-promise.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217408
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 3:04 PM Changeset in webkit [268077] by
-
- 26 edits in trunk/Source/JavaScriptCore
[JSC] More consistent PtrTagging for code types
https://bugs.webkit.org/show_bug.cgi?id=217362
Reviewed by Mark Lam.
- Avoid tagging JIT code with OperationPtrTag. OperationPtrTag should be used only for operations (C++ code).
- Avoid mixing JIT and C++ code for the same tagged pointers. For exception trampoline, in JIT mode, we should have JIT trampoline thunk which goes to LLInt bytecode handler code.
- bytecode/BytecodeList.rb:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::finalizeUnconditionally):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::compileExceptionHandlers):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileMathIC):
- jit/ICStats.h:
- jit/JIT.cpp:
(JSC::JIT::compileWithoutLinking):
(JSC::JIT::link):
(JSC::JIT::privateCompileExceptionHandlers):
- jit/JIT.h:
(JSC::CallRecord::CallRecord):
- jit/JITCall.cpp:
(JSC::JIT::compileTailCall):
(JSC::JIT::compileOpCall):
(JSC::JIT::compileOpCallSlowCase):
- jit/JITCall32_64.cpp:
(JSC::JIT::compileOpCall):
(JSC::JIT::compileOpCallSlowCase):
- jit/JITExceptions.cpp:
(JSC::genericUnwind):
- jit/JITInlines.h:
(JSC::JIT::emitNakedNearCall):
(JSC::JIT::emitNakedNearTailCall):
(JSC::JIT::emitNakedCall): Deleted.
(JSC::JIT::emitNakedTailCall): Deleted.
- jit/JITPropertyAccess.cpp:
(JSC::JIT::privateCompilePutByVal):
(JSC::JIT::privateCompilePutPrivateNameWithCachedId):
(JSC::JIT::privateCompilePutByValWithCachedId):
- jit/SlowPathCall.h:
(JSC::JITSlowPathCall::call):
- llint/LLIntData.h:
(JSC::LLInt::getWide16CodeRef):
(JSC::LLInt::getWide32CodeRef):
(JSC::LLInt::getCodeFunctionPtr):
(JSC::LLInt::getWide16CodeFunctionPtr):
(JSC::LLInt::getWide32CodeFunctionPtr):
- llint/LLIntEntrypoint.cpp:
(JSC::LLInt::setFunctionEntrypoint):
(JSC::LLInt::setEvalEntrypoint):
(JSC::LLInt::setProgramEntrypoint):
(JSC::LLInt::setModuleProgramEntrypoint):
- llint/LLIntExceptions.cpp:
(JSC::LLInt::callToThrow):
(JSC::LLInt::handleUncaughtException):
(JSC::LLInt::catcher):
- llint/LLIntExceptions.h:
- llint/LLIntSlowPaths.cpp:
- llint/LLIntThunks.cpp:
(JSC::LLInt::generateThunkWithJumpTo):
(JSC::LLInt::functionForCallEntryThunk):
(JSC::LLInt::functionForConstructEntryThunk):
(JSC::LLInt::functionForCallArityCheckThunk):
(JSC::LLInt::functionForConstructArityCheckThunk):
(JSC::LLInt::evalEntryThunk):
(JSC::LLInt::programEntryThunk):
(JSC::LLInt::moduleProgramEntryThunk):
(JSC::LLInt::wasmFunctionEntryThunk):
(JSC::LLInt::callToThrowThunk):
(JSC::LLInt::handleUncaughtExceptionThunk):
(JSC::LLInt::catcherThunk):
- llint/LLIntThunks.h:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::processUnverifiedStackTraces):
- wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
- 2:53 PM Changeset in webkit [268076] by
-
- 12 edits in trunk/Source/WebCore
Add implementation for AudioWorkletGlobalScope's currentFrame / currentTime / sampleRate attributes
https://bugs.webkit.org/show_bug.cgi?id=217251
Reviewed by Geoffrey Garen.
Add implementation for AudioWorkletGlobalScope's currentFrame / currentTime / sampleRate attributes.
The AudioContext's sample rate is passed upon constructor since it does not change once the AudioContext
has been created. The current sample frame gets updated directly by the AudioDestinationNode on the
audio rendering thread, whenever the AudioAudioDestinationNode updates the current frame.
The currrentTime gets computed based on the current frame and the sample rate.
No new tests, no Web-facing behavior yet because we are not yet executing module scripts in
AudioWorklets.
- Modules/webaudio/AudioDestinationNode.cpp:
(WebCore::AudioDestinationNode::render):
- Modules/webaudio/AudioWorklet.cpp:
(WebCore::AudioWorklet::create):
(WebCore::AudioWorklet::AudioWorklet):
- Modules/webaudio/AudioWorklet.h:
- Modules/webaudio/AudioWorkletGlobalScope.cpp:
(WebCore::AudioWorkletGlobalScope::AudioWorkletGlobalScope):
- Modules/webaudio/AudioWorkletGlobalScope.h:
(WebCore::AudioWorkletGlobalScope::setCurrentFrame):
(WebCore::AudioWorkletGlobalScope::currentFrame const):
(WebCore::AudioWorkletGlobalScope::sampleRate const):
(WebCore::AudioWorkletGlobalScope::currentTime const):
- Modules/webaudio/AudioWorkletMessagingProxy.cpp:
(WebCore::generateWorkletParameters):
- Modules/webaudio/AudioWorkletMessagingProxy.h:
(WebCore::AudioWorkletMessagingProxy::workletThread):
- Modules/webaudio/AudioWorkletThread.h:
(WebCore::AudioWorkletThread::globalScope const):
- Modules/webaudio/BaseAudioContext.cpp:
(WebCore::BaseAudioContext::BaseAudioContext):
- Modules/webaudio/BaseAudioContext.h:
- worklets/WorkletParameters.h:
(WebCore::WorkletParameters::isolatedCopy const):
- 2:33 PM Changeset in webkit [268075] by
-
- 31 edits in trunk/Source
Redundant rendering updates can be scheduled from inside Page::updateRendering()
https://bugs.webkit.org/show_bug.cgi?id=216726
Reviewed by Tim Horton.
Source/WebCore:
The basic model for scheduling rendering updates is that code that needs to trigger an
update just calls Page::schedule[Timed]RenderingUpdate(). However, if
Page::updateRendering() is already on the stack, and the work to be scheduled will happen
later in the current update, we don't have to schedule a new one.
To fix this Page::updateRendering() and related functions track which steps remain
in the current update, and callers of schedule[Timed]RenderingUpdate() pass the update steps
for the work they need to trigger. If the requested steps are included in the remaining steps
no new update needs to be scheduled. Note that requesting a step while that step is being executed
has to schedule an upate (e.g. requestAnimationFrame inside its own callback has to schedule).
At the end of an update, if there are any unfulfilled steps, then we schedule a new update.
Add a log channel for EventLoop and and log from various places.
In my brief testing, this reduces the number of calls to Page::updateRendering() by 10-25%
on some real pages, which could be a significant power saving.
- animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::scheduleAnimationResolution):
- display/DisplayLayerController.cpp:
(WebCore::Display::LayerController::scheduleRenderingUpdate):
- dom/Document.cpp:
(WebCore::Document::setNeedsDOMWindowResizeEvent):
(WebCore::Document::setNeedsVisualViewportResize):
(WebCore::Document::addPendingScrollEventTarget):
(WebCore::Document::setNeedsVisualViewportScrollEvent):
(WebCore::Document::serviceRequestAnimationFrameCallbacks):
(WebCore::Document::intersectionObserversInitialUpdateTimerFired):
(WebCore::Document::scheduleRenderingUpdate):
(WebCore::Document::scheduleInitialIntersectionObservationUpdate):
(WebCore::Document::updateResizeObservations):
(WebCore::Document::updateAnimationsAndSendEvents):
- dom/Document.h:
- dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::scheduleAnimation):
- page/EventHandler.cpp:
(WebCore::EventHandler::scheduleCursorUpdate):
- page/FrameView.cpp:
(WebCore::FrameView::setViewExposedRect):
- page/Page.cpp:
(WebCore::Page::updateStyleAfterChangeInEnvironment):
(WebCore::Page::scheduleRenderingUpdate):
(WebCore::Page::computeUnfulfilledRenderingSteps):
(WebCore::Page::triggerRenderingUpdateForTesting):
(WebCore::Page::updateRendering):
(WebCore::Page::isolatedUpdateRendering):
(WebCore::Page::doAfterUpdateRendering):
(WebCore::Page::finalizeRenderingUpdate):
(WebCore::Page::renderingUpdateCompleted):
(WebCore::Page::accessibilitySettingsDidChange):
(WebCore::Page::appearanceDidChange):
(WebCore::operator<<):
- page/Page.h:
- page/PageOverlayController.cpp:
(WebCore::PageOverlayController::didChangeViewExposedRect):
(WebCore::PageOverlayController::notifyFlushRequired):
- page/RenderingUpdateScheduler.cpp:
(WebCore::RenderingUpdateScheduler::scheduleAnimation):
(WebCore::RenderingUpdateScheduler::scheduleRenderingUpdate):
(WebCore::RenderingUpdateScheduler::startTimer):
(WebCore::RenderingUpdateScheduler::displayRefreshFired):
- page/RenderingUpdateScheduler.h:
- page/ResizeObserver.cpp:
(WebCore::ResizeObserver::observe):
- page/WheelEventTestMonitor.cpp:
(WebCore::WheelEventTestMonitor::setTestCallbackAndStartMonitoring):
(WebCore::WheelEventTestMonitor::scheduleCallbackCheck):
- page/mac/ServicesOverlayController.mm:
(WebCore::ServicesOverlayController::Highlight::notifyFlushRequired):
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::setEventTrackingRegionsDirty):
- page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
- platform/Logging.cpp:
(WebCore::initializeLogChannelsIfNecessary):
- platform/Logging.h:
- rendering/RenderElement.cpp:
(WebCore::RenderElement::scheduleRenderingUpdateForImage):
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::notifyFlushRequired):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::scheduleRenderingUpdate):
- rendering/RenderLayerCompositor.h:
Source/WebKit:
Schedule for layer flush.
- WebProcess/WebPage/CoordinatedGraphics/LayerTreeHostTextureMapper.cpp:
(WebKit::LayerTreeHost::layerFlushTimerFired):
Source/WebKitLegacy/mac:
Provide the flags.
- WebView/WebView.mm:
(-[WebView _scheduleRenderingUpdateForPendingTileCacheRepaint]):
Source/WTF:
Make it possible to dump Vectors with inline capacity.
- wtf/text/TextStream.h:
(WTF::operator<<):
- 2:21 PM Changeset in webkit [268074] by
-
- 11 edits in trunk/Source/WebKit
Use sendWithAsyncReply to evaluate JavaScript in a WebPage
https://bugs.webkit.org/show_bug.cgi?id=217351
Reviewed by Youenn Fablet.
No change in meaningful behavior, but complexity is removed.
- UIProcess/API/C/WKPage.cpp:
(WKPageRunJavaScriptInMainFrame):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _evaluateJavaScript:asAsyncFunction:withSourceURL:withArguments:forceUserGesture:inFrame:inWorld:completionHandler:]):
(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::runJavaScriptInMainFrame):
(WebKit::WebPageProxy::runJavaScriptInFrameInScriptWorld):
(WebKit::WebPageProxy::scriptValueCallback): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::runJavaScript):
(WebKit::WebPage::runJavaScriptInFrameInScriptWorld):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- 2:18 PM Changeset in webkit [268073] by
-
- 8 edits in branches/safari-610-branch/Source
Versioning.
WebKit-7610.3.1
- 1:53 PM Changeset in webkit [268072] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] The WebContent development XPC service is not allowed to connect to the XPC endpoint in the Networking process
https://bugs.webkit.org/show_bug.cgi?id=217389
<rdar://problem/68585497>
Reviewed by Brent Fulgham.
The WebContent development XPC service is not allowed to connect to the XPC endpoint in the Networking process,
because this requires a private entitlement. The WebContent development XPC service is not allowed to have private
entitlements. The WebContent process needs to connect to the XPC endpoint in the Networking process in order to
receive the Launch Services database XPC object. This patch addresses this issue by allowing platform binaries
to connect to the XPC endpoint.
- Shared/Cocoa/XPCEndpoint.mm:
(WebKit::XPCEndpoint::XPCEndpoint):
- 1:51 PM Changeset in webkit [268071] by
-
- 4 edits in trunk/Tools
[build.webkit.org] Ensure that steps names are valid Buildbot identifiers
https://bugs.webkit.org/show_bug.cgi?id=217394
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/build.webkit.org-config/steps.py: Removed spaces from step names.
(ConfigureBuild):
(KillOldProcesses):
(CleanBuildIfScheduled):
(DeleteStaleBuildFiles):
(RunGLibAPITests):
- BuildSlaveSupport/build.webkit.org-config/steps_unittest.py: Updated unit-tests.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
- 1:37 PM Changeset in webkit [268070] by
-
- 28 edits1 move in trunk/Source
Rename MediaPlayerPrivateRemoteIdentifier to MediaPlayerIdentifier
https://bugs.webkit.org/show_bug.cgi?id=217397
Reviewed by Tim Horton.
Source/WebCore:
Move
MediaPlayerPrivateRemoteIdentifierinto WebCore, and rename it toMediaPlayerIdentifier, such that it
isn't necessarily limited to use for GPU Process code. This is preparation for introducing a display list
drawing item which will need to reference a remotely hostedMediaPlayer.
No change in behavior.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::identifier const):
- platform/graphics/MediaPlayer.h:
- platform/graphics/MediaPlayerIdentifier.h: Renamed from Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemoteIdentifier.h.
- platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::identifier const):
Source/WebKit:
Mass rename
MediaPlayerPrivateRemoteIdentifiertoWebCore::MediaPlayerIdentifier. See WebCore/ChangeLog for
more details.
- GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp:
(WebKit::RemoteLegacyCDMFactoryProxy::createCDM):
- GPUProcess/media/RemoteLegacyCDMFactoryProxy.h:
- GPUProcess/media/RemoteLegacyCDMFactoryProxy.messages.in:
- GPUProcess/media/RemoteLegacyCDMProxy.cpp:
(WebKit::RemoteLegacyCDMProxy::create):
(WebKit::RemoteLegacyCDMProxy::RemoteLegacyCDMProxy):
(WebKit::RemoteLegacyCDMProxy::setPlayerId):
- GPUProcess/media/RemoteLegacyCDMProxy.h:
- GPUProcess/media/RemoteLegacyCDMProxy.messages.in:
- GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:
(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::deleteMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::didReceivePlayerMessage):
(WebKit::RemoteMediaPlayerManagerProxy::didReceiveSyncPlayerMessage):
(WebKit::RemoteMediaPlayerManagerProxy::getProxy):
- GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
- GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy):
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- Scripts/webkit/messages.py:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote):
(WebKit::MediaPlayerPrivateRemote::identifier const):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
- WebProcess/GPU/media/RemoteLegacyCDM.cpp:
(WebKit::RemoteLegacyCDM::setPlayerId):
- WebProcess/GPU/media/RemoteLegacyCDM.h:
- WebProcess/GPU/media/RemoteLegacyCDMFactory.cpp:
(WebKit::RemoteLegacyCDMFactory::createCDM):
- WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):
(WebKit::RemoteMediaPlayerManager::deleteRemoteMediaPlayer):
(WebKit::RemoteMediaPlayerManager::findRemotePlayerId):
(WebKit::RemoteMediaPlayerManager::didReceivePlayerMessage):
- WebProcess/GPU/media/RemoteMediaPlayerManager.h:
- WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:
(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote):
- 1:29 PM Changeset in webkit [268069] by
-
- 2 edits in trunk/LayoutTests
[Media in GPU Process] Enable some layout tests
Unreviewed test gardening.
- gpu-process/TestExpectations:
- 1:14 PM Changeset in webkit [268068] by
-
- 2 edits in branches/safari-610.2.8.1-branch/Source/WebKit
Cherry-pick r268019. rdar://problem/70012479
Change a PDF RELEASE_ASSERT to an early return.
rdar://problem/69805240 and https://bugs.webkit.org/show_bug.cgi?id=217346
Reviewed by Tim Horton.
No new tests (Wish they were possible)
- WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::installPDFDocument): This release assert is getting hit regularly. Change to an early return while we continue tracking this down.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268019 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:11 PM Changeset in webkit [268067] by
-
- 8 edits in branches/safari-610.2.8.1-branch/Source
Versioning.
WebKit-7610.2.8.1.1
- 12:58 PM Changeset in webkit [268066] by
-
- 1 copy in branches/safari-610.2.8.1-branch
New branch.
- 12:39 PM Changeset in webkit [268065] by
-
- 13 edits2 adds2 deletes in trunk/Source/WebKit
Move ownership of DownloadClient from WebProcessPool to DownloadProxy
https://bugs.webkit.org/show_bug.cgi?id=217399
Reviewed by Tim Horton.
To keep binary compatibility, the WebProcessPool has a nullable DownloadClient that is used if it has been set.
This will allow us to get a DownloadClient from elsewhere, such as having the API Download object have its own delegate
or having the WKWebsiteDataStore have a delegate, which are two of the solutions I've considered. We definitely don't
want it on the WebProcessPool, though.
- SourcesCocoa.txt:
- UIProcess/API/APIDownloadClient.h:
- UIProcess/API/C/WKContext.cpp:
(WKContextSetDownloadClient):
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _setDownloadDelegate:]):
- UIProcess/API/glib/WebKitDownloadClient.cpp:
(attachDownloadClientToContext):
- UIProcess/API/glib/WebKitWebContext.cpp:
(webkitWebContextDispose):
- UIProcess/Cocoa/LegacyDownloadClient.h: Renamed from Source/WebKit/UIProcess/Cocoa/DownloadClient.h.
- UIProcess/Cocoa/LegacyDownloadClient.mm: Renamed from Source/WebKit/UIProcess/Cocoa/DownloadClient.mm.
(WebKit::LegacyDownloadClient::LegacyDownloadClient):
(WebKit::LegacyDownloadClient::didStart):
(WebKit::LegacyDownloadClient::didReceiveResponse):
(WebKit::LegacyDownloadClient::didReceiveData):
(WebKit::LegacyDownloadClient::didReceiveAuthenticationChallenge):
(WebKit::LegacyDownloadClient::didCreateDestination):
(WebKit::LegacyDownloadClient::processDidCrash):
(WebKit::LegacyDownloadClient::decideDestinationWithSuggestedFilename):
(WebKit::LegacyDownloadClient::didFinish):
(WebKit::LegacyDownloadClient::didFail):
(WebKit::LegacyDownloadClient::didCancel):
(WebKit::LegacyDownloadClient::willSendRequest):
(WebKit::LegacyDownloadClient::takeActivityToken):
(WebKit::LegacyDownloadClient::releaseActivityTokenIfNecessary):
- UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::DownloadProxy):
(WebKit::DownloadProxy::cancel):
(WebKit::DownloadProxy::invalidate):
(WebKit::DownloadProxy::processDidClose):
(WebKit::DownloadProxy::didStart):
(WebKit::DownloadProxy::didReceiveAuthenticationChallenge):
(WebKit::DownloadProxy::willSendRequest):
(WebKit::DownloadProxy::didReceiveResponse):
(WebKit::DownloadProxy::didReceiveData):
(WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):
(WebKit::DownloadProxy::didCreateDestination):
(WebKit::DownloadProxy::didFinish):
(WebKit::DownloadProxy::didFail):
(WebKit::DownloadProxy::didCancel):
(WebKit::DownloadProxy::~DownloadProxy): Deleted.
- UIProcess/Downloads/DownloadProxy.h:
- UIProcess/Downloads/DownloadProxyMap.cpp:
(WebKit::DownloadProxyMap::createDownloadProxy):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::setLegacyDownloadClient):
(WebKit::WebProcessPool::setDownloadClient): Deleted.
- UIProcess/WebProcessPool.h:
- WebKit.xcodeproj/project.pbxproj:
- 12:36 PM Changeset in webkit [268064] by
-
- 10 edits in trunk/Source/WebCore
Rename namespace Packed to namespace PackedColor
https://bugs.webkit.org/show_bug.cgi?id=217391
Reviewed by Simon Fraser.
Otherwise "using WTF::Packed;" in wtf/Packed.h causes problems if both headers are included in the same translation unit.
- css/StyleColor.cpp:
(WebCore::StyleColor::colorFromKeyword):
- css/parser/CSSParserFastPaths.cpp:
(WebCore::finishParsingHexColor):
(WebCore::finishParsingNamedColor):
- platform/graphics/Color.h:
(WebCore::Color::asInline const):
(WebCore::Color::setColor):
(WebCore::Color::encode const):
(WebCore::Color::decode):
- platform/graphics/ColorTypes.h:
(WebCore::asSRGBA):
(WebCore::Packed::RGBA::RGBA): Deleted.
(WebCore::Packed::ARGB::ARGB): Deleted.
- platform/graphics/ImageBackingStore.h:
(WebCore::ImageBackingStore::blendPixel):
(WebCore::ImageBackingStore::pixelValue const):
- platform/graphics/cg/ColorCG.cpp:
(WebCore::cachedCGColor):
- platform/graphics/mac/ColorMac.mm:
(WebCore::nsColor):
- 12:08 PM Changeset in webkit [268063] by
-
- 5 edits in trunk/Source/WebCore
[LFC][Floating] Remove redundant FormattingContextRoot in FloatingContext c'tor
https://bugs.webkit.org/show_bug.cgi?id=217398
Reviewed by Antti Koivisto.
No need to pass in the root now that FormattingContext has the root() getter.
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
- layout/floats/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::FloatingContext):
- layout/floats/FloatingContext.h:
(WebCore::Layout::FloatingContext::root const):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
- 12:04 PM Changeset in webkit [268062] by
-
- 2 edits in branches/safari-610-branch/Source/WebKit
Cherry-pick r268030. rdar://problem/70010322
Break reference cycle with NSURLSessionDataTask in NetworkDataTaskCocoa
https://bugs.webkit.org/show_bug.cgi?id=217347
<rdar://problem/69483575>
Reviewed by Geoffrey Garen.
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::applyCookiePolicyForThirdPartyCNAMECloaking):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268030 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:51 AM Changeset in webkit [268061] by
-
- 2 edits in branches/safari-610-branch/Source/WebKit
Cherry-pick r268019. rdar://problem/70005083
Change a PDF RELEASE_ASSERT to an early return.
rdar://problem/69805240 and https://bugs.webkit.org/show_bug.cgi?id=217346
Reviewed by Tim Horton.
No new tests (Wish they were possible)
- WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::installPDFDocument): This release assert is getting hit regularly. Change to an early return while we continue tracking this down.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268019 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:48 AM Changeset in webkit [268060] by
-
- 8 edits2 deletes in branches/safari-610-branch
Revert r266909. rdar://problem/69101091
- 11:42 AM Changeset in webkit [268059] by
-
- 2 edits in trunk/Tools
run-minibrowser not compatible with python3
https://bugs.webkit.org/show_bug.cgi?id=217368
Patch by Philippe Normand <pnormand@igalia.com> on 2020-10-06
Reviewed by Adrian Perez de Castro.
- Scripts/webkitpy/minibrowser/run_webkit_app.py: Use webkitcorepy's unicode().
- 10:38 AM Changeset in webkit [268058] by
-
- 2 edits in trunk/Source/WebCore
[macOS] Bump reported current shipping release UA to 10_15_7
https://bugs.webkit.org/show_bug.cgi?id=217364
<rdar://problem/69984962>
Patch by Luming Yin <luming_yin@apple.com> on 2020-10-06
Reviewed by Alex Christensen.
Bump the reported current shipping release UA from 10_15_6 to 10_15_7.
- platform/mac/UserAgentMac.mm:
(WebCore::standardUserAgentWithApplicationName):
- 10:18 AM Changeset in webkit [268057] by
-
- 26 edits1 copy2 adds in trunk
Source/WebCore:
Update Worklet.addModule() to actually fetch and evaluate the module script
https://bugs.webkit.org/show_bug.cgi?id=217242
Reviewed by Geoffrey Garen.
Update Worklet.addModule() to actually fetch and evaluate the module script as per:
The WorkletGlobalScope maintains a queue of fetch requests (basically a URL and a completion handler) and uses
the existing WorkerScriptLoader to process the requests serially. Based on the result on the load, we call the
CompletionHandler which will cause the Worklet.addModule() promise to get resolved or rejected.
Test: webaudio/audioworklet-addModule-failure.html
- Modules/webaudio/AudioWorkletGlobalScope.cpp:
- Modules/webaudio/AudioWorkletGlobalScope.h:
Provide workerOrWorkletThread() override for WorkerOrWorkletGlobalScope(), which is a replacement
for underlyingThread().
- Modules/webaudio/AudioWorkletMessagingProxy.cpp:
(WebCore::AudioWorkletMessagingProxy::AudioWorkletMessagingProxy):
(WebCore::AudioWorkletMessagingProxy::createCacheStorageConnection):
(WebCore::AudioWorkletMessagingProxy::postTaskToLoader):
(WebCore::AudioWorkletMessagingProxy::postTaskForModeToWorkerOrWorkletGlobalScope):
- Modules/webaudio/AudioWorkletMessagingProxy.h:
Update AudioWorkletMessagingProxy to subclass WorkerLoaderProxy so that AudioWorklet can reuse
WorkerScriptLoader. WorkerScriptLoader relies on WorkerLoaderProxy to do thread hopping.
- Modules/webaudio/AudioWorkletThread.cpp:
(WebCore::AudioWorkletThread::AudioWorkletThread):
(WebCore::AudioWorkletThread::workerLoaderProxy):
- Modules/webaudio/AudioWorkletThread.h:
(WebCore::AudioWorkletThread::create):
Subclass the new WorkerOrWorkletThread interface. WorkerOrWorkletThread is a new interface that
was adding so that WorkerScriptLoader can be reused by AudioWorklets.
- Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Peer::send):
(WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpgradeURL):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
Simple renaming.
- WebCore.xcodeproj/project.pbxproj:
- loader/ThreadableLoader.cpp:
(WebCore::ThreadableLoader::create):
- loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
(WebCore::WorkerThreadableLoader::loadResourceSynchronously):
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
(WebCore::WorkerThreadableLoader::MainThreadBridge::notifyIsDone):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didSendData):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFail):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishTiming):
- loader/WorkerThreadableLoader.h:
(WebCore::WorkerThreadableLoader::create):
Update WorkerThreadableLoader so that it can be reused by AudioWorklets.
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::wrapCryptoKey):
(WebCore::WorkerGlobalScope::unwrapCryptoKey):
- workers/WorkerGlobalScope.h:
Minor changes to keep building after updates to WorkerOrWorkletGlobalScope.
- workers/WorkerLoaderProxy.h:
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::createCacheStorageConnection):
(WebCore::WorkerMessagingProxy::postTaskForModeToWorkerOrWorkletGlobalScope):
- workers/WorkerMessagingProxy.h:
Simple renames.
- workers/WorkerOrWorkletGlobalScope.h:
(WebCore::WorkerOrWorkletGlobalScope::createUniqueIdentifier):
Update WorkerOrWorkletGlobalScope to add a few things WorkerScriptLoader needed to work with
both Workers and Worklets.
- workers/WorkerOrWorkletThread.h: Added.
Added new parent interface for WorkerThread and AudioWorkletThread so that WorkerScriptLoader
can work for both Workers and Worklets.
- workers/WorkerRunLoop.cpp:
(WebCore::WorkerRunLoop::runInMode):
(WebCore::WorkerRunLoop::runCleanupTasks):
Minor changes to keep building after changes to WorkerOrWorkletGlobalScope.
- workers/WorkerThread.h:
Subclass the new WorkerOrWorkletThread interface.
- workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::postTaskForModeToWorkerOrWorkletGlobalScope):
(WebCore::ServiceWorkerThreadProxy::createCacheStorageConnection):
(WebCore::ServiceWorkerThreadProxy::notifyNetworkStateChange):
(WebCore::ServiceWorkerThreadProxy::startFetch):
(WebCore::ServiceWorkerThreadProxy::cancelFetch):
(WebCore::ServiceWorkerThreadProxy::continueDidReceiveFetchResponse):
- workers/service/context/ServiceWorkerThreadProxy.h:
Simple renames.
- worklets/WorkletGlobalScope.cpp:
(WebCore::WorkletGlobalScope::WorkletGlobalScope):
Make sure we correctly initialize the security origin for the WorkletGlobalScope.
Previously, we were using a unique origin so all script loads would have failed
with a cross-origin error.
(WebCore::WorkletGlobalScope::fetchAndInvokeScript):
(WebCore::WorkletGlobalScope::processNextScriptFetchJobIfNeeded):
(WebCore::WorkletGlobalScope::didReceiveResponse):
(WebCore::WorkletGlobalScope::notifyFinished):
(WebCore::WorkletGlobalScope::didCompleteScriptFetchJob):
- worklets/WorkletGlobalScope.h:
(WebCore::WorkletGlobalScope::responsibleDocument):
(WebCore::WorkletGlobalScope::responsibleDocument const):
Add implementation for module script fetching using WorkerScriptLoader. This gets called
when Worklet.addModule() is called on the main thread.
LayoutTests:
Update Worklet.addModule() to actually fetch the module script
https://bugs.webkit.org/show_bug.cgi?id=217242
Reviewed by Geoffrey Garen.
Add layout test coverage.
- webaudio/audioworklet-addModule-failure-expected.txt: Added.
- webaudio/audioworklet-addModule-failure.html: Added.
- 10:01 AM Changeset in webkit [268056] by
-
- 2 edits in branches/safari-610-branch/Tools
Cherry-pick r267448. rdar://problem/69727369
Make TLSVersion API tests more robust.
https://bugs.webkit.org/show_bug.cgi?id=216704
Like I did in r267278, the TLSVersion.ShouldAllowDeprecatedTLS API test was also asserting with TCPServer,
so use HTTPServer which gracefully handles a variable number of connection attempts.
The NetworkSession tests that use NSUserDefaults need to be split into a separate test for bug 216041,
so may as well do that here, too.
- TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm: (TestWebKitAPI::makeWebViewWith): (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267448 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:59 AM Changeset in webkit [268055] by
-
- 12 edits in trunk/Source/WebCore
[LFC][Integration] Add renderer() to iterator
https://bugs.webkit.org/show_bug.cgi?id=217382
Reviewed by Zalan Bujtas.
Also use it while converting RenderedPosition for the iterator.
- dom/Position.h:
- editing/RenderedPosition.cpp:
(WebCore::rendererFromPosition):
(WebCore::RenderedPosition::RenderedPosition):
(WebCore::RenderedPosition::previousLeafOnLine const):
(WebCore::RenderedPosition::nextLeafOnLine const):
(WebCore::RenderedPosition::isEquivalent const):
(WebCore::RenderedPosition::bidiLevelOnLeft const):
(WebCore::RenderedPosition::bidiLevelOnRight const):
(WebCore::RenderedPosition::leftBoundaryOfBidiRun):
(WebCore::RenderedPosition::rightBoundaryOfBidiRun):
(WebCore::RenderedPosition::atLeftBoundaryOfBidiRun const):
(WebCore::RenderedPosition::atRightBoundaryOfBidiRun const):
(WebCore::RenderedPosition::positionAtLeftBoundaryOfBiDiRun const):
(WebCore::RenderedPosition::positionAtRightBoundaryOfBiDiRun const):
(WebCore::RenderedPosition::absoluteRect const):
(WebCore::renderObjectContainsPosition):
- editing/RenderedPosition.h:
(WebCore::RenderedPosition::rootBox):
(WebCore::RenderedPosition::atLeftmostOffsetInBox const):
(WebCore::RenderedPosition::atRightmostOffsetInBox const):
(WebCore::RenderedPosition::uncachedInlineBox): Deleted.
(WebCore::RenderedPosition::RenderedPosition): Deleted.
- layout/integration/LayoutIntegrationInlineContent.cpp:
(WebCore::LayoutIntegration::InlineContent::InlineContent):
(WebCore::LayoutIntegration::InlineContent::lineLayout const):
(WebCore::LayoutIntegration::InlineContent::rendererForLayoutBox const):
- layout/integration/LayoutIntegrationInlineContent.h:
(WebCore::LayoutIntegration::InlineContent::create):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::ensureInlineContent):
(WebCore::LayoutIntegration::LineLayout::rendererForLayoutBox const):
- layout/integration/LayoutIntegrationLineLayout.h:
- layout/integration/LayoutIntegrationPagination.cpp:
(WebCore::LayoutIntegration::makeAdjustedContent):
- layout/integration/LayoutIntegrationRunIterator.h:
(WebCore::LayoutIntegration::PathRun::renderer const):
- layout/integration/LayoutIntegrationRunIteratorLegacyPath.h:
(WebCore::LayoutIntegration::LegacyPath::isLastTextRunOnLine const):
(WebCore::LayoutIntegration::LegacyPath::isLastTextRun const):
(WebCore::LayoutIntegration::LegacyPath::renderer const):
- layout/integration/LayoutIntegrationRunIteratorModernPath.h:
(WebCore::LayoutIntegration::ModernPath::renderer const):
- 9:45 AM Changeset in webkit [268054] by
-
- 16 edits in trunk
FileReader should transition to readyState DONE after last onprogress event
https://bugs.webkit.org/show_bug.cgi?id=217333
Patch by Alex Christensen <achristensen@webkit.org> on 2020-10-06
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- web-platform-tests/FileAPI/FileReader/workers-expected.txt:
- web-platform-tests/FileAPI/fileReader-expected.txt:
- web-platform-tests/FileAPI/fileReader.html:
- web-platform-tests/FileAPI/reading-data-section/FileReader-multiple-reads-expected.txt:
- web-platform-tests/FileAPI/reading-data-section/filereader_abort-expected.txt:
- web-platform-tests/FileAPI/reading-data-section/filereader_readAsArrayBuffer-expected.txt:
- web-platform-tests/FileAPI/reading-data-section/filereader_readAsBinaryString-expected.txt:
- web-platform-tests/FileAPI/reading-data-section/filereader_readAsDataURL-expected.txt:
- web-platform-tests/FileAPI/reading-data-section/filereader_readAsText-expected.txt:
Source/WebCore:
I also bring the abort function in alignment with https://w3c.github.io/FileAPI/
and the behavior of Chrome and Firefox.
As suggested by Chris, I added a bool to remember if loading is complete so we can
retain existing behavior when abort is called inside the last onprogress event.
This is not mentioned by the spec yet, but it matches the existing behavior and the
behavior of Chrome, so I added a web platform test for it.
- fileapi/FileReader.cpp:
(WebCore::FileReader::abort):
(WebCore::FileReader::didFinishLoading):
(WebCore::FileReader::didFail):
- fileapi/FileReader.h:
LayoutTests:
- fast/files/file-reader-abort-expected.txt:
- fast/files/file-reader-abort-using-open-panel-expected.txt:
Update expectations to reflect new behavior that onerror is not called before onabort,
matching Chrome, Firefox, and the specification.
- 9:40 AM Changeset in webkit [268053] by
-
- 8 edits in branches/safari-610-branch/Source
Revert "Versioning."
- 9:14 AM Changeset in webkit [268052] by
-
- 5 edits in trunk/Source
Enable video capture in WebProcess by default on MacOS
https://bugs.webkit.org/show_bug.cgi?id=217385
<rdar://problem/69999542>
Reviewed by Sam Weinig.
Source/WebKit:
Manually tested in MiniBrowser.
- Shared/WebPreferencesDefaultValues.cpp:
- Shared/WebPreferencesDefaultValues.h:
Source/WTF:
- Scripts/Preferences/WebPreferencesInternal.yaml:
- 8:58 AM Changeset in webkit [268051] by
-
- 4 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Skip LFC tests.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 8:45 AM Changeset in webkit [268050] by
-
- 10 edits in trunk
Align URL setters with reasonably behaving other browsers
https://bugs.webkit.org/show_bug.cgi?id=217366
Patch by Alex Christensen <achristensen@webkit.org> on 2020-10-06
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- web-platform-tests/url/url-setters-expected.txt:
Source/WTF:
Firefox ignores everything after '/', '?', '#', and '\' in special URL schemes when setting the host to a new value.
Chrome doesn't add another '/' to the beginning of the path if it's a special scheme and starts with '\'.
I think these behaviors make sense, and aligning with these behaviors makes it so there are no tests in url-setters.html
that any other browser passes that we don't also pass.
Once https://github.com/whatwg/url/issues/551 is resolved this will also be reflected in spec wording.
- wtf/URL.cpp:
(WTF::URL::hasSpecialScheme const):
(WTF::forwardSlashHashOrQuestionMark):
(WTF::slashHashOrQuestionMark):
(WTF::URL::setHost):
(WTF::URL::setPath):
- wtf/URL.h:
LayoutTests:
- fast/dom/DOMURL/set-href-attribute-host-expected.txt:
- fast/dom/DOMURL/set-href-attribute-host.html:
- fast/dom/HTMLAnchorElement/set-href-attribute-host-expected.txt:
- fast/dom/HTMLAnchorElement/set-href-attribute-host.html:
- 8:27 AM Changeset in webkit [268049] by
-
- 18 edits in trunk/Source
Rename scheduleTimedRenderingUpdate() to scheduleRenderingUpdate() everywhere
https://bugs.webkit.org/show_bug.cgi?id=217367
Reviewed by Alex Christensen.
The previously named scheduleImmediateRenderingUpdate() is no more, so all rendering
updates that WebCore knows about are of the timed variety. So just call them
scheduleRenderingUpdate() everywhere.
Source/WebCore:
- animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::scheduleAnimationResolution):
- dom/Document.cpp:
(WebCore::Document::setNeedsDOMWindowResizeEvent):
(WebCore::Document::setNeedsVisualViewportResize):
(WebCore::Document::addPendingScrollEventTarget):
(WebCore::Document::setNeedsVisualViewportScrollEvent):
(WebCore::Document::scheduleRenderingUpdate):
(WebCore::Document::scheduleInitialIntersectionObservationUpdate):
(WebCore::Document::updateResizeObservations):
(WebCore::Document::scheduleTimedRenderingUpdate): Deleted.
- dom/Document.h:
- dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::scheduleAnimation):
- page/ChromeClient.h:
(WebCore::ChromeClient::scheduleRenderingUpdate):
(WebCore::ChromeClient::scheduleTimedRenderingUpdate): Deleted.
- page/Page.cpp:
(WebCore::Page::updateStyleAfterChangeInEnvironment):
(WebCore::Page::scheduleRenderingUpdate):
(WebCore::Page::accessibilitySettingsDidChange):
(WebCore::Page::appearanceDidChange):
(WebCore::Page::scheduleTimedRenderingUpdate): Deleted.
- page/Page.h:
- page/PageOverlayController.cpp:
(WebCore::PageOverlayController::didChangeViewExposedRect):
(WebCore::PageOverlayController::notifyFlushRequired):
- page/RenderingUpdateScheduler.cpp:
(WebCore::RenderingUpdateScheduler::adjustRenderingUpdateFrequency):
(WebCore::RenderingUpdateScheduler::scheduleRenderingUpdate):
(WebCore::RenderingUpdateScheduler::scheduleTimedRenderingUpdate): Deleted.
- page/RenderingUpdateScheduler.h:
- page/ResizeObserver.cpp:
(WebCore::ResizeObserver::observe):
- page/linux/ResourceUsageOverlayLinux.cpp:
- page/mac/ServicesOverlayController.mm:
(WebCore::ServicesOverlayController::Highlight::notifyFlushRequired):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::scheduleRenderingUpdateForImage):
- svg/graphics/SVGImageClients.h:
Source/WebKit:
- WebProcess/WebPage/CoordinatedGraphics/LayerTreeHostTextureMapper.cpp:
(WebKit::LayerTreeHost::layerFlushTimerFired):
- 7:51 AM Changeset in webkit [268048] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Remove tests passing.
- platform/glib/TestExpectations:
- 6:41 AM Changeset in webkit [268047] by
-
- 4 edits in trunk
In case all tracks are ended, enqueue a task to stop recording instead of stopping recording
https://bugs.webkit.org/show_bug.cgi?id=217372
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/mediacapture-record/MediaRecorder-stop-expected.txt:
Source/WebCore:
Covered by updated test.
- Modules/mediarecorder/MediaRecorder.cpp:
(WebCore::MediaRecorder::trackEnded):
- 6:23 AM Changeset in webkit [268046] by
-
- 4 edits in trunk
REGRESSION(r267399): [WPE] Build broken with ENABLE_ACCESSIBILITY=OFF
https://bugs.webkit.org/show_bug.cgi?id=217380
Reviewed by Philippe Normand.
Before the ATK::Bridge target got introduced in r267399 a couple of CMake variables were
used, which were empty when the accessility support was disabled and nothing was being
added to the WebKit and WPEToolingBackends targets. Now that an imported target is used
it is needed to add it as a dependency conditionally to avoid using an undefined target
name.
Source/WebKit:
No new tests needed.
- PlatformWPE.cmake: Use the ATK::Bridge target only when ENABLE_ACCESSIBILITY is set.
Tools:
- wpe/backends/CMakeLists.txt: Use the ATK::Bridge target only when ENABLE_ACCESSIBILITY is set.
- 4:51 AM Changeset in webkit [268045] by
-
- 2 edits in trunk/LayoutTests
[GTK] Unreviewed test gardening. Remove tests passing.
- platform/gtk/TestExpectations:
- 2:59 AM Changeset in webkit [268044] by
-
- 2 edits in trunk/LayoutTests
[WPE] Unreviewed test gardening. Remove test passing.
- platform/wpe/TestExpectations:
- 2:34 AM Changeset in webkit [268043] by
-
- 6 edits in trunk
Make value parameter in Document.execCommand non nullable
https://bugs.webkit.org/show_bug.cgi?id=217331
Patch by Rob Buis <rbuis@igalia.com> on 2020-10-06
Reviewed by Sam Weinig.
Source/WebCore:
Make value parameter in Document.execCommand non nullable [1].
Test: editing/execCommand/arguments-combinations.html
[1] https://html.spec.whatwg.org/#document
- dom/Document+HTML.idl:
- editing/EditorCommand.cpp:
(WebCore::executeInsertImage):
LayoutTests:
Adapt test to change.
- editing/execCommand/arguments-combinations-expected.txt:
- editing/execCommand/arguments-combinations.html:
- 2:07 AM Changeset in webkit [268042] by
-
- 2 edits in trunk/LayoutTests
[WPE] Unreviewed test gardening. Update test expectations after r268038.
- platform/wpe/TestExpectations:
- 1:53 AM Changeset in webkit [268041] by
-
- 3 edits in trunk/LayoutTests
[GTK][WPE] Update baseline of WPT test css/cssom/cssstyledeclaration-csstext.html after r267985
Unreviewed test gardening.
- platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
- 1:45 AM Changeset in webkit [268040] by
-
- 2 edits1 delete in trunk/LayoutTests
[GLIB] Update two webaudio tests baselines after r268006
Unreviewed test gardening.
- platform/glib/webaudio/Analyser/realtimeanalyser-fftsize-reset-expected.txt: Updated.
- platform/glib/webaudio/Analyser/realtimeanalyser-freq-data-expected.txt: Removed.
- 1:37 AM Changeset in webkit [268039] by
-
- 4 edits in trunk/LayoutTests
[GLIB] Move two common cache tests to GLIB test expectations.
Unreviewed test gardening.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 1:06 AM Changeset in webkit [268038] by
-
- 7 edits in trunk/Source
Non-unified build fixes, early October 2020 edition, take two
https://bugs.webkit.org/show_bug.cgi?id=217344
Unreviewed build fix.
Source/WebCore:
No new tests needed.
- Modules/contact-picker/ContactInfo.h: Add missing wtf/Forward.h and wtf/Vector.h headers.
- Modules/webaudio/AudioWorkletProcessor.h: Add missing wtf/Ref.h header.
- Modules/webaudio/AudioWorkletProcessorConstructor.h: Add missing JavaScriptCore/Strong.h header.
- rendering/RenderTextLineBoxes.cpp: Add missing VisiblePosition.h header.
Source/WebKit:
- UIProcess/WebProcessProxy.cpp: Add missing WebAutomationSession.h header.
Oct 5, 2020:
- 11:31 PM Changeset in webkit [268037] by
-
- 4 edits in trunk
%TypedArray%.from must do mapping and putting in lockstep
https://bugs.webkit.org/show_bug.cgi?id=217349
Reviewed by Yusuke Suzuki.
JSTests:
- test262/expectations.yaml:
Mark two test cases as passing.
Source/JavaScriptCore:
%TypedArray%.from first turns the input iterator into a list to find the size for the resulting typed array,
then it fills the typed array with the list elements.
If a map function is provided, however, it must be called during the *second* phase, not the first,
because if an element throws upon valueOf, that should prevent all further calls of the map function.
- builtins/TypedArrayConstructor.js:
(from):
- 10:33 PM Changeset in webkit [268036] by
-
- 4 edits in trunk/LayoutTests
[Media in GPU Process] Enable some fullscreen and picture-in-picture tests
https://bugs.webkit.org/show_bug.cgi?id=217360
Unreviewed test gardening.
- gpu-process/TestExpectations:
- media/navigate-with-pip-should-not-crash.html:
- media/pip-video-going-into-fullscreen.html:
- 10:32 PM Changeset in webkit [268035] by
-
- 2 edits in trunk/Source/WebCore
MobileSafari crashes at WebCore: -[WebAVPlayerViewControllerDelegate playerViewControllerWillStartPictureInPicture:]
https://bugs.webkit.org/show_bug.cgi?id=217356
Reviewed by Alex Christensen.
Since we replaced the RefPtr of VideoFullscreenInterfaceAVKit with a WeakPtr in
WebAVPlayerViewControllerDelegate to fix a leak in r262185, self.fullscreenInterface
could be NULL and we need to add NULL checks.
- platform/ios/VideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerViewControllerDelegate playerViewControllerWillStartPictureInPicture:]):
(-[WebAVPlayerViewControllerDelegate playerViewControllerDidStartPictureInPicture:]):
(-[WebAVPlayerViewControllerDelegate playerViewController:failedToStartPictureInPictureWithError:]):
(-[WebAVPlayerViewControllerDelegate playerViewControllerWillStopPictureInPicture:]):
(-[WebAVPlayerViewControllerDelegate playerViewControllerDidStopPictureInPicture:]):
(-[WebAVPlayerViewControllerDelegate playerViewController:shouldExitFullScreenWithReason:]):
(-[WebAVPlayerViewControllerDelegate playerViewController:restoreUserInterfaceForPictureInPictureStopWithCompletionHandler:]):
- 10:16 PM Changeset in webkit [268034] by
-
- 6 edits in trunk/Source/WebCore
Remove Page::scheduleImmediateRenderingUpdate()
https://bugs.webkit.org/show_bug.cgi?id=217361
Reviewed by Antti Koivisto.
There was only one remaining caller of Page::scheduleImmediateRenderingUpdate(), which
is RenderLayerCompositor::layerTreeAsText(). The immediate update here is necessary because
we flush compositing layers in layerTreeAsText(), and that can trigger a Core Animation commit
with painting, so we have to complete our rendering update first to ensure up-to-date layout.
However, this is a testing-only codepath, so have the naming reflect that.
- page/Page.cpp:
(WebCore::Page::triggerRenderingUpdateForTesting):
(WebCore::Page::scheduleImmediateRenderingUpdate): Deleted.
- page/Page.h:
- page/RenderingUpdateScheduler.cpp:
(WebCore::RenderingUpdateScheduler::scheduleTimedRenderingUpdate):
(WebCore::RenderingUpdateScheduler::displayRefreshFired):
(WebCore::RenderingUpdateScheduler::triggerRenderingUpdateForTesting):
(WebCore::RenderingUpdateScheduler::triggerRenderingUpdate):
(WebCore::RenderingUpdateScheduler::scheduleImmediateRenderingUpdate): Deleted.
- page/RenderingUpdateScheduler.h:
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::layerTreeAsText):
- 9:42 PM Changeset in webkit [268033] by
-
- 4 edits in trunk
Don't NFC normalize strings from blobs
https://bugs.webkit.org/show_bug.cgi?id=217327
Patch by Alex Christensen <achristensen@webkit.org> on 2020-10-05
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/FileAPI/unicode-expected.txt:
Source/WebCore:
This matches Chrome and Firefox.
Covered by newly passing web platform tests.
- fileapi/BlobBuilder.cpp:
(WebCore::BlobBuilder::append):
- 9:41 PM Changeset in webkit [268032] by
-
- 3 edits in trunk/LayoutTests
[GLIB] Gardening some flaky crashes related to NetworkProcess
Unreviewed test gardening.
- platform/gtk-wayland/TestExpectations:
- platform/wpe/TestExpectations:
- 9:17 PM Changeset in webkit [268031] by
-
- 9 edits in trunk/Source/WebCore
Remove the unused Chrome::scheduleAnimation()
https://bugs.webkit.org/show_bug.cgi?id=217359
Reviewed by Sam Weinig.
Chrome::scheduleAnimation() and the tangentially related ScrollableArea::serviceScrollAnimations()
which are unused.
- page/Chrome.h:
- page/FrameView.cpp:
(WebCore::FrameView::scheduleAnimation): Deleted.
- page/FrameView.h:
- platform/HostWindow.h:
- platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::serviceScrollAnimations): Deleted.
- platform/ScrollAnimator.h:
- platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::serviceScrollAnimations): Deleted.
- platform/ScrollableArea.h:
(WebCore::ScrollableArea::scheduleAnimation): Deleted.
- 8:03 PM Changeset in webkit [268030] by
-
- 2 edits in trunk/Source/WebKit
Break reference cycle with NSURLSessionDataTask in NetworkDataTaskCocoa
https://bugs.webkit.org/show_bug.cgi?id=217347
<rdar://problem/69483575>
Reviewed by Geoffrey Garen.
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::applyCookiePolicyForThirdPartyCNAMECloaking):
- 7:55 PM Changeset in webkit [268029] by
-
- 2 edits in trunk/Tools
Unreviewed. Update my primary email address.
- Scripts/webkitpy/common/config/contributors.json:
- 7:51 PM Changeset in webkit [268028] by
-
- 14 edits in trunk/Source
Use the "triggerRenderingUpdate" terminology in ChromeClient
https://bugs.webkit.org/show_bug.cgi?id=217355
Reviewed by Tim Horton.
ChromeClient confusingly had both scheduleRenderingUpdate() and scheduleTimedRenderingUpdate().
The former is for triggering an update soon, and the latter is a normal schedule, used by
SVGImages because they have their own Page.
Rename the one that the WebKits have to implement to triggerRenderingUpdate().
Source/WebCore:
- loader/EmptyClients.h:
- page/ChromeClient.h:
- page/RenderingUpdateScheduler.cpp:
(WebCore::RenderingUpdateScheduler::scheduleImmediateRenderingUpdate):
Source/WebKit:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::triggerRenderingUpdate):
(WebKit::WebChromeClient::scheduleRenderingUpdate): Deleted.
- WebProcess/WebCoreSupport/WebChromeClient.h:
Source/WebKitLegacy/mac:
- WebCoreSupport/WebChromeClient.h:
- WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::triggerRenderingUpdate):
(WebChromeClient::scheduleRenderingUpdate): Deleted.
Source/WebKitLegacy/win:
- WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::triggerRenderingUpdate):
(WebChromeClient::scheduleRenderingUpdate): Deleted.
- WebCoreSupport/WebChromeClient.h:
- 7:06 PM Changeset in webkit [268027] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(iOS 14): http/wpt/cache-storage/cache-quota-after-restart.any.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217357
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 6:57 PM Changeset in webkit [268026] by
-
- 22 edits in trunk/Source/WebCore
Improvements to VectorMath API
https://bugs.webkit.org/show_bug.cgi?id=217343
Reviewed by Alex Christensen.
The following improvements were made to the VectorMath API:
- Use clearer names for the functions, e.g. VectorMath::vmul() -> VectorMath::multiply()
- Drop stride parameters as the call sites always pass 1. This helps simplify the code.
- Stop using out-parameters and have the functions return a value when needed.
- Pass input scalar as 'float' instead of 'const float*'.
No new tests, no Web-facing behavior change.
- Modules/webaudio/AudioParam.cpp:
(WebCore::AudioParam::calculateFinalValues):
- Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::valuesForTimeRange):
(WebCore::AudioParamTimeline::processLinearRamp):
(WebCore::AudioParamTimeline::processSetTarget):
- Modules/webaudio/OscillatorNode.cpp:
(WebCore::OscillatorNode::calculateSampleAccuratePhaseIncrements):
- Modules/webaudio/PeriodicWave.cpp:
(WebCore::PeriodicWave::createBandLimitedTables):
- Modules/webaudio/RealtimeAnalyser.cpp:
(WebCore::RealtimeAnalyser::getFloatFrequencyData):
- platform/audio/AudioBus.cpp:
(WebCore::AudioBus::speakersSumFromByDownMixing):
(WebCore::AudioBus::copyWithGainFrom):
(WebCore::AudioBus::copyWithSampleAccurateGainValuesFrom):
- platform/audio/AudioChannel.cpp:
(WebCore::AudioChannel::scale):
(WebCore::AudioChannel::sumFrom):
(WebCore::AudioChannel::maxAbsValue const):
- platform/audio/DirectConvolver.cpp:
- platform/audio/FFTConvolver.cpp:
(WebCore::FFTConvolver::process):
- platform/audio/FFTFrame.cpp:
(WebCore::FFTFrame::scaleFFT):
(WebCore::FFTFrame::multiply):
- platform/audio/IIRFilter.cpp:
(WebCore::IIRFilter::tailTime):
- platform/audio/Reverb.cpp:
(WebCore::calculateNormalizationScale):
- platform/audio/ReverbAccumulationBuffer.cpp:
(WebCore::ReverbAccumulationBuffer::accumulate):
- platform/audio/ReverbConvolver.cpp:
- platform/audio/ReverbConvolverStage.cpp:
(WebCore::ReverbConvolverStage::ReverbConvolverStage):
- platform/audio/VectorMath.cpp:
(WebCore::VectorMath::multiplyByScalar):
(WebCore::VectorMath::add):
(WebCore::VectorMath::addScalar):
(WebCore::VectorMath::multiply):
(WebCore::VectorMath::multiplyComplex):
(WebCore::VectorMath::multiplyThenAddScalar):
(WebCore::VectorMath::maximumMagnitude):
(WebCore::VectorMath::sumOfSquares):
(WebCore::VectorMath::clamp):
(WebCore::VectorMath::linearToDecibels):
(WebCore::VectorMath::is16ByteAligned):
- platform/audio/VectorMath.h:
- platform/audio/gstreamer/FFTFrameGStreamer.cpp:
(WebCore::FFTFrame::doInverseFFT):
- platform/audio/mac/AudioDestinationMac.cpp:
(WebCore::AudioDestinationCocoa::processBusAfterRender):
- platform/audio/mac/AudioSampleBufferList.cpp:
- platform/audio/mac/FFTFrameMac.cpp:
(WebCore::FFTFrame::doFFT):
(WebCore::FFTFrame::doInverseFFT):
- 6:27 PM Changeset in webkit [268025] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r267915): Many layout tests are asserting under ~CompletionHandler()
https://bugs.webkit.org/show_bug.cgi?id=217345
<rdar://problem/69973775>
Reviewed by Tim Horton.
I did *not* intend to schedule an async task after every single image load in r267915. Apart from triggering
assertions on various tests, this also causes us to send excessive IPC messages to the UI process when loading
images, which can't be good for performance. Fix this by only calling intocomputeAndSendEditDragSnapshot()
when we've finished loading all dropped image elements.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::didFinishLoadingImageForElement):
- 6:22 PM Changeset in webkit [268024] by
-
- 2 edits in trunk/LayoutTests
Adjust test expectation for timeouts
https://bugs.webkit.org/show_bug.cgi?id=215324
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 6:21 PM Changeset in webkit [268023] by
-
- 3 edits in trunk/Tools
Disable media capture if an app's entitlements won't allow access to capture devices
https://bugs.webkit.org/show_bug.cgi?id=217319
<rdar://problem/69956112>
Unreviewed, address post-review comments.
- MiniBrowser/mac/Info.plist: Update media capture usage strings.
- MobileMiniBrowser/MobileMiniBrowser/Info.plist: Ditto.
- 5:52 PM Changeset in webkit [268022] by
-
- 7 edits in trunk/Source
ChromeClient::needsImmediateRenderingUpdate() only existing to work around a WebKit1 bug
https://bugs.webkit.org/show_bug.cgi?id=217338
Reviewed by Said Abou-Hallawa.
WebViewLayerFlushScheduler has a bug where scheduling inside the callback would fail
because the RunLoopObserver was always invalidate at the end of the callback.
If we fix this, we can remove ChromeClient::needsImmediateRenderingUpdate() which I believe
only existed to work around this bug.
Source/WebCore:
- page/ChromeClient.h:
(WebCore::ChromeClient::scheduleTimedRenderingUpdate):
(WebCore::ChromeClient::needsImmediateRenderingUpdate const): Deleted.
- page/RenderingUpdateScheduler.cpp:
(WebCore::RenderingUpdateScheduler::scheduleRenderingUpdate):
Source/WebKitLegacy/mac:
- WebCoreSupport/WebChromeClient.h:
- WebView/WebViewData.h:
- WebView/WebViewData.mm:
(WebViewLayerFlushScheduler::schedule):
(WebViewLayerFlushScheduler::layerFlushCallback):
- 5:44 PM Changeset in webkit [268021] by
-
- 9 edits in trunk/Source/WebCore
Rename scheduleTimedRenderingUpdate() functions related to images
https://bugs.webkit.org/show_bug.cgi?id=217352
Reviewed by Tim Horton.
ImageObserver and CachedImageClient have scheduleTimedRenderingUpdate() so that an SVG image's
Page and trigger rendering updates. Rename these to make it clearer they are image-related,
and remove the "timed" terminology.
- html/ImageBitmap.cpp:
- loader/cache/CachedImage.cpp:
(WebCore::CachedImage::CachedImageObserver::scheduleRenderingUpdate):
(WebCore::CachedImage::scheduleRenderingUpdate):
(WebCore::CachedImage::CachedImageObserver::scheduleTimedRenderingUpdate): Deleted.
(WebCore::CachedImage::scheduleTimedRenderingUpdate): Deleted.
- loader/cache/CachedImage.h:
- loader/cache/CachedImageClient.h:
(WebCore::CachedImageClient::scheduleRenderingUpdateForImage):
(WebCore::CachedImageClient::scheduleTimedRenderingUpdate): Deleted.
- platform/graphics/ImageObserver.h:
- rendering/RenderElement.cpp:
(WebCore::RenderElement::scheduleRenderingUpdateForImage):
(WebCore::RenderElement::scheduleTimedRenderingUpdate): Deleted.
- rendering/RenderElement.h:
- svg/graphics/SVGImageClients.h:
- 5:28 PM Changeset in webkit [268020] by
-
- 3 edits3 adds in trunk/Source/WTF
Add implementation of <filesystem> to WTF for macOS 10.14
https://bugs.webkit.org/show_bug.cgi?id=217302
Reviewed by Darin Adler.
Imports a copy of <filesystem> and its needed implementation files
from libc++ (r343838) and modifies them to build outside of libc++.
This is only needed and only built for versions of macOS < 10.15
and can be dropped when we require 10.15.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/StdFilesystem.cpp: Added.
- wtf/StdFilesystem.h: Added.
- LICENSE-libc++.txt: Added.
- 5:15 PM Changeset in webkit [268019] by
-
- 2 edits in trunk/Source/WebKit
Change a PDF RELEASE_ASSERT to an early return.
rdar://problem/69805240 and https://bugs.webkit.org/show_bug.cgi?id=217346
Reviewed by Tim Horton.
No new tests (Wish they were possible)
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::installPDFDocument): This release assert is getting hit regularly.
Change to an early return while we continue tracking this down.
- 5:15 PM Changeset in webkit [268018] by
-
- 8 edits in branches/safari-610-branch/Source
Versioning.
WebKit-7610.3.1
- 4:53 PM Changeset in webkit [268017] by
-
- 24 edits in trunk/Source/WebKit
Make DownloadID an ObjectIdentifier
https://bugs.webkit.org/show_bug.cgi?id=203962
Reviewed by Youenn Fablet and Geoffrey Garen.
Also deprecate the unused WKDownloadGetID because this identifier is internal.
- NetworkProcess/Downloads/Download.cpp:
(WebKit::Download::Download):
(WebKit::Download::didReceiveData):
(WebKit::Download::didFinish):
(WebKit::Download::didFail):
(WebKit::Download::didCancel):
(WebKit::Download::messageSenderDestinationID const):
- NetworkProcess/Downloads/DownloadID.h:
(WebKit::DownloadID::DownloadID): Deleted.
(WebKit::DownloadID::operator== const): Deleted.
(WebKit::DownloadID::operator!= const): Deleted.
(WebKit::DownloadID::downloadID const): Deleted.
(IPC::ArgumentCoder<WebKit::DownloadID>::encode): Deleted.
(IPC::ArgumentCoder<WebKit::DownloadID>::decode): Deleted.
(WTF::DownloadIDHash::hash): Deleted.
(WTF::DownloadIDHash::equal): Deleted.
(WTF::HashTraits<WebKit::DownloadID>::emptyValue): Deleted.
(WTF::HashTraits<WebKit::DownloadID>::constructDeletedValue): Deleted.
(WTF::HashTraits<WebKit::DownloadID>::isDeletedValue): Deleted.
- NetworkProcess/Downloads/DownloadMonitor.cpp:
(WebKit::DownloadMonitor::applicationWillEnterForeground):
(WebKit::DownloadMonitor::applicationDidEnterBackground):
(WebKit::DownloadMonitor::timerFired):
- NetworkProcess/Downloads/PendingDownload.cpp:
(WebKit::PendingDownload::messageSenderDestinationID const):
- NetworkProcess/Downloads/PendingDownload.h:
- NetworkProcess/NetworkDataTask.h:
(WebKit::NetworkDataTask::setPendingDownloadID):
(WebKit::NetworkDataTask::isDownload const):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::pendingDownloadCanceled):
(WebKit::NetworkProcess::findPendingDownloadLocation):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::convertToDownload):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
(-[WKNetworkSessionDelegate URLSession:downloadTask:didFinishDownloadingToURL:]):
(-[WKNetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]):
(WebKit::NetworkSessionCocoa::continueDidReceiveChallenge):
- Scripts/webkit/messages.py:
- Shared/Authentication/AuthenticationManager.h:
- UIProcess/API/C/WKDownload.cpp:
(WKDownloadGetID):
- UIProcess/API/C/WKDownload.h:
- UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::DownloadProxy):
(WebKit::generateDownloadID): Deleted.
- UIProcess/Downloads/DownloadProxy.h:
- UIProcess/Downloads/DownloadProxyMap.cpp:
(WebKit::DownloadProxyMap::createDownloadProxy):
(WebKit::DownloadProxyMap::downloadFinished):
(WebKit::DownloadProxyMap::invalidate):
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::startDownload):
(WebKit::WebFrame::convertMainResourceLoadToDownload):
- WebProcess/WebPage/WebFrame.h:
- WebProcess/WebPage/WebPage.h:
- 4:36 PM Changeset in webkit [268016] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Uncaught Exception: TypeError: undefined is not an object (evaluating 'error.message')
https://bugs.webkit.org/show_bug.cgi?id=217232
<rdar://problem/69888156>
Patch by Federico Bucchi <Federico Bucchi> on 2020-10-05
Reviewed by Devin Rousso.
Add optional chaining for error to check its existence before using error.message
- UserInterface/Models/Resource.js:
- 4:34 PM Changeset in webkit [268015] by
-
- 2 edits in trunk/Source/WebKit
Fix tvOS and watchOS build
- NetworkProcess/NetworkProcess.cpp:
I noticed it was broken in an EWS build, and it is missing this include.
- 4:29 PM Changeset in webkit [268014] by
-
- 13 edits in trunk/Source/WebKit
Rename DrawingArea::scheduleRenderingUpdate()
https://bugs.webkit.org/show_bug.cgi?id=217337
Reviewed by Tim Horton.
DrawingArea::scheduleRenderingUpdate() always schedules an "immediate" update (either
on a zero-delay timer, or in the current runloop). To make this more clear, change
the terminology to "triggerRenderingUpdate()."
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::scheduleRenderingUpdate):
- WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
(WebKit::DrawingAreaCoordinatedGraphics::triggerRenderingUpdate):
(WebKit::DrawingAreaCoordinatedGraphics::scheduleRenderingUpdate): Deleted.
- WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h:
- WebProcess/WebPage/DrawingArea.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::requestRefreshCallback):
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):
(WebKit::RemoteLayerTreeDrawingArea::updateGeometry):
(WebKit::RemoteLayerTreeDrawingArea::setExposedContentRect):
(WebKit::RemoteLayerTreeDrawingArea::triggerRenderingUpdate):
(WebKit::RemoteLayerTreeDrawingArea::didUpdate):
(WebKit::RemoteLayerTreeDrawingArea::addTransactionCallbackID):
(WebKit::RemoteLayerTreeDrawingArea::scheduleRenderingUpdate): Deleted.
- WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm:
(WebKit::RemoteScrollingCoordinator::scheduleTreeStateCommit):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::scheduleFullEditorStateUpdate):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::dynamicViewportSizeUpdate):
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::triggerRenderingUpdate):
(WebKit::TiledCoreAnimationDrawingArea::attachViewOverlayGraphicsLayer):
(WebKit::TiledCoreAnimationDrawingArea::setShouldScaleViewToFitDocument):
(WebKit::TiledCoreAnimationDrawingArea::addTransactionCallbackID):
(WebKit::TiledCoreAnimationDrawingArea::activityStateDidChange):
(WebKit::TiledCoreAnimationDrawingArea::scheduleRenderingUpdate): Deleted.
- 4:29 PM Changeset in webkit [268013] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unrevewed, fix crash for ASan debug builds
https://bugs.webkit.org/show_bug.cgi?id=217261
Reviewed by Saam Barati.
This function touches memory region which ASan cannot understand whether this is safe.
And ASan makes pointer fat so that it will see some null pointers.
- assembler/JITOperationList.cpp:
(JSC::addPointers):
- 4:15 PM Changeset in webkit [268012] by
-
- 8 edits in trunk
Disable media capture if an app's entitlements won't allow access to capture devices
https://bugs.webkit.org/show_bug.cgi?id=217319
<rdar://problem/69956112>
Reviewed by Youenn Fablet.
Source/WebKit:
No new tests, tested manually with MiniBrowser and Safari.
- UIProcess/Cocoa/UserMediaPermissionRequestManagerProxy.mm:
(WebKit::UserMediaPermissionRequestManagerProxy::permittedToCaptureAudio): If the
app is sandboxed, check for the entitlement required for audio capture. Don't
bother checking for usage string if TCC has already authorized capture.
(WebKit::UserMediaPermissionRequestManagerProxy::permittedToCaptureVideo): Ditto
for video capture.
- UIProcess/Cocoa/WebPreferencesCocoa.mm:
(WebKit::WebPreferences::platformInitializeStore): Initialize
mediaDevicesEnabled
manually because its default value is alwaysfalsein the WebProcess and may be
truein the UIProcess. WebPreferences assumes the default will always be the same
in both processes, and so has an optimization that only sends values to the
WebProcess if they differ from the default value. This means if the default in the
UIProcess is true it won't be pushed to the WebProcess, so capture won't work.
- Platform/spi/ios/TCCSPI.h: Update TCCAccessPreflightResult.
Tools:
- MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
- MiniBrowser/mac/AppDelegate.m:
(-[BrowserAppDelegate defaultConfiguration]): Don't set configuration._mediaCaptureEnabled,
it should no longer be necessary.
- MiniBrowser/mac/Info.plist: Remove unneeded keys.
- MobileMiniBrowser/MobileMiniBrowser/Info.plist: Ditto. Add usage strings.
- 4:11 PM Changeset in webkit [268011] by
-
- 1 copy in tags/Safari-611.1.2
Tag Safari-611.1.2.
- 3:40 PM Changeset in webkit [268010] by
-
- 1 copy in tags/Safari-610.2.8.0.1
Tag Safari-610.2.8.0.1.
- 3:38 PM Changeset in webkit [268009] by
-
- 8 edits2 adds in branches/safari-610-branch
Cherry-pick r266909. rdar://problem/69101091
Source/WebCore:
Text replacements at the beginning of a second line are replaced too early
https://bugs.webkit.org/show_bug.cgi?id=216327
<rdar://problem/68170353>
Reviewed by Darin Adler.
In the changes in r258871, using SimpleRanges instead of Range causing some side effects
when the replacements at the beginning of lines. The ranges that we are counting are backwards
and the return characters are being counted instead of being ignored. There is almost
certainly a better fix than this, but this patch restores the original logic that
was present when Range was being used, until a better fix can be worked out.
Test: editing/spelling/text-replacement-first-word-second-line.html
- editing/Editor.cpp: (WebCore::Editor::markAndReplaceFor):
- editing/TextCheckingHelper.cpp: (WebCore::TextCheckingParagraph::automaticReplacementStart const): (WebCore::TextCheckingParagraph::automaticReplacementLength const):
- editing/TextCheckingHelper.h:
LayoutTests:
Overlapping text replacements at the beginning of a line are replaced too early
https://bugs.webkit.org/show_bug.cgi?id=216327
Reviewed by Darin Adler.
- editing/spelling/text-replacement-first-word-second-line-expected.txt: Added.
- editing/spelling/text-replacement-first-word-second-line.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266909 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:38 PM Changeset in webkit [268008] by
-
- 13 edits in trunk/Source/WebKit
Use sendWithAsyncReply for DecideDestinationWithSuggestedFilename
https://bugs.webkit.org/show_bug.cgi?id=209195
Reviewed by Tim Horton.
This makes the download flow more clear.
No change in behavior.
- NetworkProcess/Downloads/DownloadID.h:
- NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::downloadDestinationDecided):
(WebKit::DownloadManager::cancelDownload):
(WebKit::DownloadManager::willDecidePendingDownloadDestination): Deleted.
(WebKit::DownloadManager::continueDecidePendingDownloadDestination): Deleted.
- NetworkProcess/Downloads/DownloadManager.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::findPendingDownloadLocation):
(WebKit::NetworkProcess::continueDecidePendingDownloadDestination): Deleted.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- Scripts/webkit/messages.py:
- Shared/Authentication/AuthenticationManager.h:
- UIProcess/API/APIDownloadClient.h:
- UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):
(WebKit::DownloadProxy::decideDestinationWithSuggestedFilenameAsync): Deleted.
- UIProcess/Downloads/DownloadProxy.h:
- UIProcess/Downloads/DownloadProxy.messages.in:
- 3:27 PM Changeset in webkit [268007] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed assertion fix after r268006.
- platform/audio/VectorMath.cpp:
(WebCore::VectorMath::vsvesq):
- 3:03 PM Changeset in webkit [268006] by
-
- 11 edits in trunk
[Cocoa] Vectorize linear to decibels conversion in RealtimeAnalyser
https://bugs.webkit.org/show_bug.cgi?id=217322
Reviewed by Darin Adler.
Source/WebCore:
Vectorize linear to decibels conversion in RealtimeAnalyser on Cocoa ports for
performance.
No new tests, no web-facing behavior change.
- Modules/webaudio/RealtimeAnalyser.cpp:
(WebCore::RealtimeAnalyser::getFloatFrequencyData):
- platform/audio/VectorMath.cpp:
(WebCore::VectorMath::linearToDecibels):
- platform/audio/VectorMath.h:
LayoutTests:
Slightly increase the error threshold in a few WebAudio tests because the vectorization
output for linear to decibels conversion is not quite identical to our previous output
(although very close).
- webaudio/Analyser/realtimeanalyser-downmix-expected.txt:
- webaudio/Analyser/realtimeanalyser-downmix.html:
- webaudio/Analyser/realtimeanalyser-fftsize-reset-expected.txt:
- webaudio/Analyser/realtimeanalyser-fftsize-reset.html:
- webaudio/Analyser/realtimeanalyser-freq-data-expected.txt:
- webaudio/Analyser/realtimeanalyser-freq-data.html:
- 2:44 PM Changeset in webkit [268005] by
-
- 2 edits in trunk/LayoutTests
Update TestExpectations for layout tests related to GPU process features
https://bugs.webkit.org/show_bug.cgi?id=217326
Unreviewed test gardening.
- gpu-process/TestExpectations:
- 2:35 PM Changeset in webkit [268004] by
-
- 4 edits in trunk/Source/JavaScriptCore
Add JSC option to trigger a hardware breakpoint when debugger expressions are reached.
https://bugs.webkit.org/show_bug.cgi?id=217334
Reviewed by Yusuke Suzuki.
- interpreter/Interpreter.cpp:
(JSC::Interpreter::debug):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::defaultCodeGenerationMode const):
- runtime/OptionsList.h:
- 2:34 PM Changeset in webkit [268003] by
-
- 6 edits in trunk/Source
Make NetscapePlugInStreamLoaderClient a weak pointer on NetscapePlugInStreamLoader
<https://webkit.org/b/217237>
<rdar://problem/69776714>
Reviewed by Alex Christensen.
Source/WebCore:
Could not write a test since reproducing a crash requires
rapidly reloading a URL to a PDF at random points during the
previous load.
Make NetscapePlugInStreamLoaderClient a WeakPtr on
NetscapePlugInStreamLoader, and add nullptr checks for
NetscapePlugInStreamLoader.m_client as needed.
- loader/NetscapePlugInStreamLoader.cpp:
(WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
(WebCore::NetscapePlugInStreamLoader::willSendRequest):
(WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
(WebCore::NetscapePlugInStreamLoader::didReceiveDataOrBuffer):
(WebCore::NetscapePlugInStreamLoader::didFinishLoading):
(WebCore::NetscapePlugInStreamLoader::didFail):
(WebCore::NetscapePlugInStreamLoader::willCancel):
- loader/NetscapePlugInStreamLoader.h:
Source/WebKit:
Making NetscapePlugInStreamLoaderClient inherit from
CanMakeWeakPtr<> caused PDFPlugin to fail to compile because one
of its parent classes already inherited from CanMakeWeakPtr<>.
To fix this, extract a PDFPluginStreamLoaderClient class from
PDFPlugin and link the lifetime of PDFPluginStreamLoaderClient
to PDFPlugin.
After moving the NetscapePlugInStreamLoaderClient virtual
methods from PDFPlugin to PDFPluginStreamLoaderClient, add some
simple methods to PDFPlugin so that PDFPluginStreamLoaderClient
doesn't access the instance variables directly. Also make use
of these new methods in other parts of PDFPlugin.
- WebProcess/Plugins/PDF/PDFPlugin.h:
(WebKit::PDFPlugin::documentFinishedLoading): Add.
(WebKit::PDFPlugin::identifierForLoader): Add.
(WebKit::PDFPlugin::removeOutstandingByteRangeRequest): Add.
(WebKit::PDFPlugin::PDFPluginStreamLoaderClient): Add class.
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::PDFPlugin):
(WebKit::PDFPlugin::receivedNonLinearizedPDFSentinel):
(WebKit::PDFPlugin::getResourceBytesAtPosition):
(WebKit::PDFPlugin::PDFPluginStreamLoaderClient::willSendRequest): Move from PDFPlugin.
(WebKit::PDFPlugin::PDFPluginStreamLoaderClient::didReceiveResponse): Ditto.
(WebKit::PDFPlugin::PDFPluginStreamLoaderClient::didReceiveData): Ditto.
(WebKit::PDFPlugin::PDFPluginStreamLoaderClient::didFail): Ditto.
(WebKit::PDFPlugin::PDFPluginStreamLoaderClient::didFinishLoading): Ditto.
(WebKit::PDFPlugin::byteRangeRequestForLoader):
(WebKit::PDFPlugin::forgetLoader):
(WebKit::PDFPlugin::willSendRequest): Move to PDFPluginStreamLoaderClient.
(WebKit::PDFPlugin::didReceiveResponse): Ditto.
(WebKit::PDFPlugin::didReceiveData): Ditto.
(WebKit::PDFPlugin::didFail): Ditto.
(WebKit::PDFPlugin::didFinishLoading): Ditto.
- 2:29 PM Changeset in webkit [268002] by
-
- 2 edits in trunk/Source/WebCore
Use memset to zero vectors in PeriodicWave::createBandLimitedTables()
https://bugs.webkit.org/show_bug.cgi?id=217328
Reviewed by Darin Adler.
Use memset to zero vectors in PeriodicWave::createBandLimitedTables() instead of a for
loop, for performance reasons.
No new tests, no Web-facing behavior change.
- Modules/webaudio/PeriodicWave.cpp:
(WebCore::PeriodicWave::createBandLimitedTables):
- 2:15 PM Changeset in webkit [268001] by
-
- 25 edits in trunk/Source/WebCore
Use tryHoldLock() in WebAudio to simplify the code
https://bugs.webkit.org/show_bug.cgi?id=217332
Reviewed by Darin Adler.
Use tryHoldLock() in WebAudio to simplify the code a bit.
No new tests, no Web-facing behavior change.
- Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::process):
(WebCore::AudioBufferSourceNode::setBuffer):
(WebCore::AudioBufferSourceNode::startPlaying):
(WebCore::AudioBufferSourceNode::adjustGrainParameters):
- Modules/webaudio/AudioBufferSourceNode.h:
- Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::setValueAtTime):
(WebCore::AudioParamTimeline::linearRampToValueAtTime):
(WebCore::AudioParamTimeline::exponentialRampToValueAtTime):
(WebCore::AudioParamTimeline::setTargetAtTime):
(WebCore::AudioParamTimeline::setValueCurveAtTime):
(WebCore::AudioParamTimeline::insertEvent):
(WebCore::AudioParamTimeline::cancelScheduledValues):
(WebCore::AudioParamTimeline::cancelAndHoldAtTime):
(WebCore::AudioParamTimeline::valueForContextTime):
(WebCore::AudioParamTimeline::valuesForTimeRange):
- Modules/webaudio/AudioParamTimeline.h:
- Modules/webaudio/ConvolverNode.cpp:
(WebCore::ConvolverNode::process):
(WebCore::ConvolverNode::setBuffer):
- Modules/webaudio/ConvolverNode.h:
- Modules/webaudio/MediaElementAudioSourceNode.cpp:
(WebCore::MediaElementAudioSourceNode::process):
- Modules/webaudio/MediaStreamAudioSourceNode.cpp:
(WebCore::MediaStreamAudioSourceNode::setFormat):
(WebCore::MediaStreamAudioSourceNode::process):
- Modules/webaudio/MediaStreamAudioSourceNode.h:
- Modules/webaudio/OscillatorNode.cpp:
(WebCore::OscillatorNode::process):
(WebCore::OscillatorNode::setPeriodicWave):
- Modules/webaudio/OscillatorNode.h:
- Modules/webaudio/PannerNode.cpp:
(WebCore::PannerNode::process):
(WebCore::PannerNode::setPanningModel):
(WebCore::PannerNode::setPosition):
(WebCore::PannerNode::setOrientation):
(WebCore::PannerNode::setDistanceModel):
(WebCore::PannerNode::setRefDistance):
(WebCore::PannerNode::setMaxDistance):
(WebCore::PannerNode::setRolloffFactor):
(WebCore::PannerNode::setConeOuterGain):
(WebCore::PannerNode::setConeOuterAngle):
(WebCore::PannerNode::setConeInnerAngle):
- Modules/webaudio/PannerNode.h:
- Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::process):
- Modules/webaudio/WaveShaperProcessor.cpp:
(WebCore::WaveShaperProcessor::setCurve):
(WebCore::WaveShaperProcessor::setOversample):
(WebCore::WaveShaperProcessor::process):
- Modules/webaudio/WaveShaperProcessor.h:
- Modules/webaudio/WebKitAudioPannerNode.cpp:
(WebCore::WebKitAudioPannerNode::process):
(WebCore::WebKitAudioPannerNode::setPanningModel):
- Modules/webaudio/WebKitAudioPannerNode.h:
- platform/audio/ReverbConvolver.cpp:
(WebCore::ReverbConvolver::~ReverbConvolver):
(WebCore::ReverbConvolver::backgroundThreadEntry):
(WebCore::ReverbConvolver::process):
- platform/audio/ReverbConvolver.h:
- platform/audio/cocoa/AudioDestinationCocoa.cpp:
(WebCore::AudioDestinationCocoa::render):
- platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
(WebCore::AudioSourceProviderAVFObjC::~AudioSourceProviderAVFObjC):
(WebCore::AudioSourceProviderAVFObjC::provideInput):
(WebCore::AudioSourceProviderAVFObjC::finalizeCallback):
(WebCore::AudioSourceProviderAVFObjC::prepareCallback):
(WebCore::AudioSourceProviderAVFObjC::unprepareCallback):
(WebCore::AudioSourceProviderAVFObjC::processCallback):
- platform/mediastream/mac/WebAudioSourceProviderAVFObjC.h:
- platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:
(WebCore::WebAudioSourceProviderAVFObjC::~WebAudioSourceProviderAVFObjC):
(WebCore::WebAudioSourceProviderAVFObjC::provideInput):
(WebCore::WebAudioSourceProviderAVFObjC::prepare):
(WebCore::WebAudioSourceProviderAVFObjC::unprepare):
- 1:55 PM Changeset in webkit [268000] by
-
- 2 edits in trunk/Source/WebCore
[GTK][X11] WebProcess crash in WebCore::GLContextGLX::createPbufferContext() with NVidia proprietary drivers
https://bugs.webkit.org/show_bug.cgi?id=217323
Reviewed by Adrian Perez de Castro.
The returnedElements variable might remain uninitialized if the glXChooseFBConfig()
function call fails, leading to execution of the wrong code branch later.
- platform/graphics/glx/GLContextGLX.cpp:
(WebCore::GLContextGLX::createPbufferContext): Initialized the returnedElements variable.
- 1:24 PM Changeset in webkit [267999] by
-
- 11 edits1 move1 add1 delete in trunk
REGRESSION(r267763) [SOUP] Some tests flaky crashing in NetworkSessionSoup::soupSession()
https://bugs.webkit.org/show_bug.cgi?id=217163
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-10-05
Reviewed by Alex Christensen.
Source/WebCore:
Stop using libsoup for DNS resolver. The libsoup APIs are actually using the GLib networking APIs, and the don't
really use the SoupSession. Rename DNSResolveQueueSoup as DNSResolveQueueGLib and use the GLib API instead.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- platform/Soup.cmake:
- platform/SourcesGLib.txt:
- platform/SourcesSoup.txt:
- platform/network/DNSResolveQueue.cpp:
- platform/network/glib/DNSResolveQueueGLib.cpp: Added.
(WebCore::didResolveProxy):
(WebCore::proxyResolvedForHttpUriCallback):
(WebCore::proxyResolvedForHttpsUriCallback):
(WebCore::DNSResolveQueueGLib::updateIsUsingProxy):
(WebCore::DNSResolveQueueGLib::platformResolve):
(WebCore::DNSResolveQueueGLib::resolve):
(WebCore::DNSResolveQueueGLib::stopResolve):
- platform/network/glib/DNSResolveQueueGLib.h: Renamed from Source/WebCore/platform/network/soup/DNSResolveQueueSoup.h.
- platform/network/soup/DNSResolveQueueSoup.cpp: Removed.
Source/WebKit:
Remove code to set the SoupSession on DNSResolveQueue.
- NetworkProcess/NetworkProcess.cpp:
LayoutTests:
Remove expectations for tests that should pass now.
- platform/glib/TestExpectations:
- 1:03 PM Changeset in webkit [267998] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Uncaught Exception: TypeError: undefined is not an object (evaluating 'breakpoint.disabled = true')
https://bugs.webkit.org/show_bug.cgi?id=217241
Reviewed by Brian Burg.
- UserInterface/Controllers/DOMManager.js:
(WI.DOMManager.prototype.removeBreakpointForEventListener):
It's possible for there to not be a breakpoint for a given event listener.
- 12:57 PM Changeset in webkit [267997] by
-
- 19 edits6 deletes in trunk/LayoutTests
Selection API: Fix more editing tests that rely on non-standard selection API behavior
https://bugs.webkit.org/show_bug.cgi?id=217301
Reviewed by Sam Weinig.
These changes do not change what the tests are testing. They remove
dependencies in these tests on "canonicalization" of selection points.
This is often always a change to the setup for the test, not the test substance.
In other cases, tests that are not trying to test selection are leaving unimportant
remnants of the selection in their results: clear the selection for those.
Patch also includes a few other expectations fixes so all the tests in the editing
directory pass for me on my development machine.
- editing/pasteboard/copy-null-characters-expected.txt: Remove expected selection.
- editing/pasteboard/copy-null-characters.html: Clear the selection after one part
of this test so the markup dump doesn't contain selection endpoints.
- editing/pasteboard/paste-noscript-xhtml-expected.txt: Remove expected selection.
- editing/pasteboard/paste-noscript-xhtml.xhtml: Clear the selection at two points
in this test so the markup dump doesn't contain selection endpoints.
- editing/selection/extend-by-sentence-002.html: Check the selected string rather
than checking the DOM node and offset of the selection. Keeps the substance of this
test without depending on the selection object selecting differently than what we
tell it to do.
- editing/selection/extend-selection-enclosing-block-mac.html: Set the position
at the start of a text node instead of before the text node.
- editing/selection/extend-selection-enclosing-block-win.html: Ditto.
- editing/selection/home-end.html: Added a setPositionAfterLeadingWhitespace
function and use it to set the position at the point the test results are
expecting. Before this change, the code relied on the Selection API to adjust the
selection to the first non-whitespace character, even though that is both non-standard
and not what we are testing. Doing this lets us keep the expected test results the same.
- editing/selection/move-by-word-visually-multi-line-expected.txt: Updated to
expect moving across the word, even the one that was preceded by a collapsed newline.
- editing/selection/move-by-word-visually-multi-line.html: Ditto.
- editing/selection/resources/extend-selection.js:
(setPositionAfterLeadingWhitespace): Added.
(runSelectionTestsWithGranularity): Use setPositionAfterLeadingWhitespace here
for the same purpose as in home-end.html above, to preserve the existing tests
without relying on non-standard Selection API behavior.
- editing/selection/resources/move-by-word-visually.js:
(setPositionAfterCollapsedLeadingWhitespace): Added.
(moveByWordForEveryPosition): Same as above, use the function.
- editing/selection/setBaseAndExtent-revert-selection.html: Fix the output function
to properly write out the node ID when the node is a text node within the node with
the ID. Before, the test could fail if the anchor node returned the text node we
passed in, but that relies on non-standard Selection API changes to the passed-in node.
- editing/selection/toString-1.html: Write out the unexpected result when the test
fails. It's not failing, but at one point it was, and this made it easier to diagnose.
- editing/undo/undo-after-event-edited.html: Use the Delete command to do a deletion
that we later undo. The old code was using the Selection API extractContents method,
which is not an undoable editing operation.
- platform/gtk/editing/pasteboard/drop-text-without-selection-expected.txt: Removed.
- platform/ios/editing/pasteboard/drop-text-without-selection-expected.txt: Removed.
- platform/mac-bigsur-wk1/editing/pasteboard/drop-text-without-selection-expected.txt: Removed.
- platform/mac-bigsur/editing/pasteboard/drop-text-without-selection-expected.txt: Removed.
- platform/win/editing/pasteboard/drop-text-without-selection-expected.txt: Removed.
- platform/wincairo/editing/pasteboard/drop-text-without-selection-expected.txt: Removed.
These unused files were incorrectly left behind when we converted this into a reftest.
- platform/mac-wk1/TestExpectations: Changed retro-correction-spelling-markers.html
to "[ Pass Failure ]" since it's a flaky test, not a reliable failure.
- platform/mac/TestExpectations: Changed some flakiness expectations that were marked
Release-only to be in effect in Debug builds too. For autocorrection-contraction.html,
expect a timeout on BigSur+ Debug. Not sure exactly what is causing it, but it's happening
both locally for me and on the bots.
- platform/wk2/TestExpectations: Expect a timeout in Debug builds for two tests that are
timing out both for me and on the Modern WebKit Debug bots, but not Legacy WebKit and not
Release bots.
- 12:56 PM Changeset in webkit [267996] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r267986.
https://bugs.webkit.org/show_bug.cgi?id=217329
Introduced layout test failures
Reverted changeset:
"[Cocoa] Reduce time waiting for Launch Services database"
https://bugs.webkit.org/show_bug.cgi?id=217253
https://trac.webkit.org/changeset/267986
- 12:36 PM Changeset in webkit [267995] by
-
- 47 edits in trunk
WebKit doesn't parse "#" as delimiter for fragment identifier in data URIs
https://bugs.webkit.org/show_bug.cgi?id=68089
Patch by Rob Buis <rbuis@igalia.com> on 2020-10-05
Reviewed by Alex Christensen, Ryosuke Niwa, and Darin Adler.
LayoutTests/imported/w3c:
Update improved test results.
- web-platform-tests/fetch/data-urls/processing.any-expected.txt:
- web-platform-tests/fetch/data-urls/processing.any.worker-expected.txt:
- web-platform-tests/url/data-uri-fragment-expected.txt:
Source/WebCore:
To maintain compatibility with existing iOS and macOS apps, we only do this for apps linked
with the SDK after the change.
Covered by newly passing web platform tests (which Chrome and Firefox already passed).
- loader/ResourceLoader.cpp:
(WebCore::shouldStripFragmentIdentifier):
(WebCore::ResourceLoader::loadDataURL):
- platform/cocoa/VersionChecks.h:
Source/WTF:
- wtf/URL.h:
- wtf/spi/darwin/dyldSPI.h:
LayoutTests:
Adjusts tests thats use data URIs to escape the # character.
- accessibility/ios-simulator/iframe-access.html:
- accessibility/ios-simulator/unobscured-content-rect.html:
- accessibility/resources/iframe.html:
- accessibility/scroll-to-global-point-iframe.html:
- accessibility/scroll-to-make-visible-iframe-offscreen.html:
- accessibility/scroll-to-make-visible-iframe.html:
- css3/blending/background-blend-mode-crossfade-image.html:
- css3/blending/background-blend-mode-data-uri-svg-image.html:
- css3/blending/background-blend-mode-tiled-layers.html:
- css3/flexbox/flexitem.html:
- css3/shapes/shape-outside/shape-image/shape-image-002.html:
- css3/shapes/shape-outside/shape-image/shape-image-005.html:
- editing/pasteboard/data-transfer-set-data-sanitize-url-when-copying-in-null-origin.html:
- editing/pasteboard/data-transfer-set-data-sanitize-url-when-dragging-in-null-origin.html:
- fast/css-grid-layout/grid-item-display.html:
- fast/css/import-style-update.html:
- fast/css/link-media-attr.html:
- fast/dom/HTMLLinkElement/link-stylesheet-media-type.html:
- fast/events/attribute-listener-cloned-from-frameless-doc-context-2.html:
- fast/events/attribute-listener-cloned-from-frameless-doc-context.html:
- fast/events/attribute-listener-extracted-from-frameless-doc-context-2.html:
- fast/events/attribute-listener-extracted-from-frameless-doc-context.html:
- fast/hidpi/image-srcset-data-escaped-srcset.html:
- fast/html/link-rel-stylesheet.html:
- fast/loader/data-url-encoding-html.html:
- fast/loader/data-url-encoding-svg.html:
- fast/spatial-navigation/resources/iframe.html:
- http/tests/security/top-level-unique-origin.https.html:
- platform/ios/css3/flexbox/flexitem-expected.txt:
- platform/win/css3/flexbox/flexitem-expected.txt:
- security/contentSecurityPolicy/link-with-data-url-allowed-by-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html:
- svg/animations/css-animation-background-svg.html:
- svg/animations/css-animation-embedded-svg.html:
- svg/animations/css-animation-hover-svg.html:
- svg/as-image/svg-canvas-data-url-svg-with-feimage-not-tainted.html:
- svg/custom/object-data-href.html:
- 12:31 PM Changeset in webkit [267994] by
-
- 4 edits in trunk/LayoutTests
[css-flex] Fix expectations of a test which is actually passing
https://bugs.webkit.org/show_bug.cgi?id=217318
Reviewed by Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-flexbox/padding-overflow-crash-expected.html: Added a missing " only"
to match the string used in the test.
LayoutTests:
- TestExpectations: Removed a padding-overflow-crash.html which is actually passing.
- 12:23 PM Changeset in webkit [267993] by
-
- 23 edits3 adds in branches/safari-610.2.8.0-branch
Cherry-pick r267869. rdar://problem/69963917
[iOS WK1] Crashes when using ANGLE WebGL from another thread
https://bugs.webkit.org/show_bug.cgi?id=216106
<rdar://problem/68602452>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-10-02
Reviewed by Kenneth Russell.
Source/ThirdParty/ANGLE:
Add two extensions for EAGL and CGL backends to declare the
underlying platform context being "volatile". It means that
the thread-global current context is being modified behind
ANGLE. If ANGLE context is marked volatile for a particular
API, it will sync the underlying context for every EGL
function that needs the context. Most intuitive use is
for the client to call eglMakeCurrent before calling any
gl function if the client knowns the platform state might
be dirty.
Implement eglReleaseThread for EAGL and CGL backends.
Releasing thread will unset the platform current context.
Fix a bug of omitting EGL_ANGLE_device_eagl from being
advertised.
- extensions/EGL_ANGLE_platform_angle_device_context_volatile_cgl.txt: Added.
- extensions/EGL_ANGLE_platform_angle_device_context_volatile_eagl.txt: Added.
- include/EGL/eglext_angle.h:
- src/libANGLE/Caps.cpp: (egl::DeviceExtensions::getStrings const): (egl::ClientExtensions::getStrings const):
- src/libANGLE/Caps.h:
- src/libANGLE/Display.cpp: (egl::Display::prepareForCall): (egl::Display::releaseThread): (egl::GenerateClientExtensions):
- src/libANGLE/Display.h:
- src/libANGLE/renderer/DisplayImpl.cpp: (rx::DisplayImpl::prepareForCall): (rx::DisplayImpl::releaseThread):
- src/libANGLE/renderer/DisplayImpl.h:
- src/libANGLE/renderer/gl/cgl/DisplayCGL.h:
- src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: (rx::DisplayCGL::initialize): (rx::DisplayCGL::terminate): (rx::DisplayCGL::prepareForCall): (rx::DisplayCGL::releaseThread): (rx::DisplayCGL::makeCurrent):
- src/libANGLE/renderer/gl/eagl/DisplayEAGL.h:
- src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: (rx::DisplayEAGL::initialize): (rx::DisplayEAGL::terminate): (rx::DisplayEAGL::prepareForCall): (rx::DisplayEAGL::releaseThread):
- src/libANGLE/validationEGL.cpp:
- src/libGLESv2/entry_points_egl.cpp:
- src/libGLESv2/entry_points_egl_ext.cpp:
Source/WebCore:
Source of the bug comes from following:
- WK1 might run WebKit code in client main thread.
- WK1 might run Webkit code in web thread.
- WebKit code might run WebGL payload, notably access GraphicsContextGL classes. Client is able to modify EAGL/CGL current context.
The change to ANGLE incurred two distinct behavior changes
compared to raw EAGL / CGL:
1) Before: context was set current before any GL call
After: context was set current only if EGL current context
had been changed. (Explicit code as well as ANGLE implementation
optimization.)
2) Before: context being used was able to be current in
multiple threads at the same time. (EAGL/CGL feature)
After: context cannot be current in multiple threads
at the same time. (EGL feature)
Change in behavior 1) caused ANGLE to sometimes use
the EAGL/CGL context of the client instead of
the real context that ANGLE created.
Fix this by introducing
EGL_ANGLE_platform_angle_device_context_volatile_eagl
and
EGL_ANGLE_platform_angle_device_context_volatile_cgl
which make ANGLE sync the context on each eglMakeCurrent
eglReleaseThread and eglTerminate.
Change in behavior 2) caused ANGLE to use uninitialized
context object from one thread, if the real context object
was current in another thread.
Fix this by considering "GraphicsContextGLOpenGL current context"
as part of "data that is owned by WebCoreThread lock".
The current context is set with lock held, implicitly.
The current context is released when lock is released.
When the lock is not held, GraphicsContextGLOpenGL current context
is nullptr.
Adds soft linking for EAGL for the purpose of testing this in
TestWebKitAPI. The case of Apple Silicon Mac may sometimes
use CGL and sometimes EAGL, and the test should test that
client overriding both contexts will not cause problems.
Fix ANGLE header include path:
- Do not include ANGLE in the path, as files are included with ANGLE/
- Add WK_ALTERNATE_FRAMEWORKS_DIR so that SDK_VARIANT=iosmac e.g. maccatalyst builds work
Previously the ANGLE was not included from ThirdParty/ANGLE, rather
"WebKit SDK".
- Configurations/WebCore.xcconfig:
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::makeContextCurrent): (WebCore::GraphicsContextGLOpenGL::releaseCurrentContext): (WebCore::GraphicsContextGLOpenGL::checkGPUStatus): (WebCore::GraphicsContextGLOpenGL::allowOfflineRenderers const):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/ios/wak/WebCoreThread.mm: (WebThreadUnlockFromAnyThread): (_WebThreadUnlock):
Tools:
Add a WK1 test which runs WebGL code both in
client main thread and in web thread.
This tests the case where ANGLE EGL context is
not being held current in one thread while the
other thread runs WebGL and thus ANGLE EGL code.
- TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitLegacy/ios/WebGLNoCrashOnOtherThreadAccess.mm: Added. (-[WebGLNoCrashOnOtherThreadAccessWebViewDelegate webViewDidFinishLoad:]): (-[WebGLNoCrashOnOtherThreadAccessWebViewDelegate webView:shouldStartLoadWithRequest:navigationType:]): (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267869 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:23 PM Changeset in webkit [267992] by
-
- 45 edits1 move8 adds in branches/safari-610.2.8.0-branch/Source
Cherry-pick r267602. rdar://problem/69963917
WebGL should use GLES in iOS apps running on Apple Silicon
https://bugs.webkit.org/show_bug.cgi?id=216722
<rdar://problem/68976337>
Reviewed by Tim Horton and Ken Russell.
Source/ThirdParty/ANGLE:
Change ANGLE to dynamically load either EAGL (OpenGLES) or CGL (OpenGL) depending
on both compile and runtime configurations.
Intel Mac -> CGL
Intel Mac Catalyst -> CGL
Intel iOS Simulator -> EAGL
iOS Device -> EAGL
Apple Silicon Mac -> CGL
Apple Silicon Mac Catalyst (with Mac app) -> CGL
Apple Silicon Mac Catalyst (with iOS app) -> EAGL
The trickiest bit is Apple Silicon Mac Catalyst, which depends on the
type of the application it is attempting to run. In that case ANGLE must compile
both the CGL and EAGL interfaces and then pick one to use after launch.
- ANGLE.xcodeproj/project.pbxproj: Add new files.
- Configurations/ANGLE-dynamic.xcconfig: Remove all the OpenGL* linking.
- Configurations/ANGLE-static.xcconfig:
- GLESv2.cmake: New files.
- src/common/platform.h: New definitions for CPU type on Apple Systems.
- src/gpu_info_util/SystemInfo.h: Split SystemInfo for Apple into two files, for iOS and Mac. Added a field for isiOSAppOnMac that will only be true when running an iOS binary on Apple Silicon.
- src/gpu_info_util/SystemInfo_apple.mm: Added. Decides which SystemInfo to call. (angle::GetSystemInfo):
- src/gpu_info_util/SystemInfo_ios.cpp: (angle::GetSystemInfo_ios): (angle::GetSystemInfo): Deleted.
- src/gpu_info_util/SystemInfo_macos.mm: (angle::GetSystemInfo_mac): (angle::GetSystemInfo): Deleted.
- src/libANGLE/Caps.cpp: Can no longer just check for PLATFORM_IOS. This might still need a runtime check. (gl::DetermineDepthTextureANGLESupport): (gl::DetermineDepthTextureOESSupport):
- src/libANGLE/Display.cpp: This is the main initialization point for ANGLE, which decides at compile/runtime which variant of Display to create.
- src/libANGLE/formatutils.cpp: Add the correct formats. (gl::BuildInternalFormatInfoMap):
- src/libANGLE/renderer/gl/SoftLinking_apple.h: Added. Macros to help soft-link functions and ObjC classes.
- src/libANGLE/renderer/gl/cgl/CGLFunctions.cpp: Added. Where we soft-link all the OpenGL/CGL API.
- src/libANGLE/renderer/gl/cgl/CGLFunctions.h: Added.
- src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: Use the soft-linked methods.
- src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp:
- src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.h:
- src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm: Rename WebSwapLayer to WebSwapLayerCGL otherwise it clashes with the EAGL version. (rx::WindowSurfaceCGL::initialize): (-[WebSwapLayer initWithSharedState:withContext:withFunctions:]): Deleted. (-[WebSwapLayer copyCGLPixelFormatForDisplayMask:]): Deleted. (-[WebSwapLayer copyCGLContextForPixelFormat:]): Deleted. (-[WebSwapLayer canDrawInCGLContext:pixelFormat:forLayerTime:displayTime:]): Deleted. (-[WebSwapLayer drawInCGLContext:pixelFormat:forLayerTime:displayTime:]): Deleted.
- src/libANGLE/renderer/gl/eagl/DeviceEAGL.cpp: Similar changes to the CGL implementation.
- src/libANGLE/renderer/gl/eagl/DeviceEAGL.h:
- src/libANGLE/renderer/gl/eagl/DisplayEAGL.h:
- src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: (rx::DisplayEAGL::initialize): (rx::DisplayEAGL::terminate): (rx::WorkerContextEAGL::~WorkerContextEAGL): (rx::WorkerContextEAGL::makeCurrent): (rx::WorkerContextEAGL::unmakeCurrent): (rx::DisplayEAGL::createWorkerContext):
- src/libANGLE/renderer/gl/eagl/EAGLFunctions.h: Added.
- src/libANGLE/renderer/gl/eagl/EAGLFunctions.mm: Added.
- src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm:
- src/libANGLE/renderer/gl/eagl/PbufferSurfaceEAGL.cpp:
- src/libANGLE/renderer/gl/eagl/RendererEAGL.cpp:
- src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.h:
- src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm: (-[WebSwapLayerEAGL display]): (rx::WindowSurfaceEAGL::initialize): (-[WebSwapLayer initWithSharedState:withContext:withFunctions:]): Deleted. (-[WebSwapLayer display]): Deleted.
- src/libANGLE/renderer/gl/renderergl_utils.cpp: Runtime check. (rx::nativegl_gl::GenerateCaps):
Source/WebCore:
- Configurations/WebCore.xcconfig: Remove all OpenGL/OpenGLES linking.
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/GraphicsContextGL.h: Change the ANGLE IOSurface texture binding enums into functions, because they have to be calculated at run-time.
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: Use the new soft-linked functions from PAL. Also implement the IOSurface texture binding helpers that were previously enums.
- platform/mac/PlatformScreenMac.mm:
- platform/mac/WebGLBlocklist.mm:
Source/WebCore/PAL:
Add soft-linking content for OpenGL/OpenGLES.
- PAL.xcodeproj/project.pbxproj:
- pal/PlatformMac.cmake:
- pal/cocoa/OpenGLSoftLinkCocoa.h: Added.
- pal/cocoa/OpenGLSoftLinkCocoa.mm: Added.
Source/WebKit:
- Configurations/WebKit.xcconfig: Remove OpenGL linking.
- UIProcess/mac/HighPerformanceGPUManager.mm: Renamed to .mm. Use the PAL soft-linked OpenGL API.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267602 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:14 PM Changeset in webkit [267991] by
-
- 8 edits in branches/safari-610.2.8.0-branch/Source
Versioning.
WebKit-7610.2.8.0.1
- 12:13 PM Changeset in webkit [267990] by
-
- 3 edits in trunk/LayoutTests
[GLIB] Remove two WebGL tests crashing that are passing since r266809.
Unreviewed test gardening.
Also emit GLIB baseline for webgl/1.0.3/conformance/context/context-lost-restored.html.
- platform/glib/TestExpectations:
- platform/glib/webgl/1.0.3/conformance/context/context-lost-restored-expected.txt:
- 12:01 PM Changeset in webkit [267989] by
-
- 1 copy in branches/safari-610.2.8.0-branch
New branch.
- 11:56 AM Changeset in webkit [267988] by
-
- 35 edits16 adds in trunk
[Contact Picker API] Introduce bindings for the Contact Picker API
https://bugs.webkit.org/show_bug.cgi?id=216793
<rdar://problem/69317957>
Reviewed by Wenson Hsieh.
Source/WebCore:
Added IDL for the Contact Picker API, with the exception of the address
and icon contact properties (which will be added after an initial
implemention is complete). See: https://wicg.github.io/contact-api/spec/
for more information.
Test: contact-picker/contacts-interfaces.html
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/contact-picker/ContactInfo.h: Added.
- Modules/contact-picker/ContactInfo.idl: Added.
- Modules/contact-picker/ContactProperty.h: Added.
- Modules/contact-picker/ContactProperty.idl: Added.
- Modules/contact-picker/ContactsManager.cpp: Added.
(WebCore::ContactsManager::create):
(WebCore::ContactsManager::ContactsManager):
(WebCore::ContactsManager::navigator):
(WebCore::ContactsManager::getProperties):
(WebCore::ContactsManager::select):
Stub out these API calls for now by immediately rejecting the given promise.
- Modules/contact-picker/ContactsManager.h: Added.
- Modules/contact-picker/ContactsManager.idl: Added.
- Modules/contact-picker/ContactsSelectOptions.h: Added.
- Modules/contact-picker/ContactsSelectOptions.idl: Added.
- Modules/contact-picker/NavigatorContacts.cpp: Added.
(WebCore::NavigatorContacts::NavigatorContacts):
(WebCore::NavigatorContacts::contacts):
(WebCore::NavigatorContacts::from):
(WebCore::NavigatorContacts::supplementName):
- Modules/contact-picker/NavigatorContacts.h: Added.
- Modules/contact-picker/Navigator+Contacts.idl: Added.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/WebCoreBuiltinNames.h:
- page/Settings.yaml:
Source/WebKit:
Added a new experimental feature flag. See WebCore Changelog for more details.
- Shared/WebPreferencesExperimental.yaml:
Source/WebKitLegacy/mac:
Added plumbing to support the associated experimental test option.
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(-[WebPreferences contactPickerAPIEnabled]):
(-[WebPreferences setContactPickerAPIEnabled:]):
- WebView/WebPreferencesPrivate.h:
Source/WebKitLegacy/win:
Added plumbing to support the associated experimental test option.
- Interfaces/IWebPreferencesPrivate.idl:
- WebPreferenceKeysPrivate.h:
- WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):
(WebPreferences::contactPickerAPIEnabled):
(WebPreferences::setContactPickerAPIEnabled):
- WebPreferences.h:
- WebView.cpp:
(WebView::notifyPreferencesChanged):
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
Add experimental preference for the Contact Picker API.
Tools:
Added plumbing to support the associated experimental test option.
- DumpRenderTree/TestOptions.cpp:
(TestOptions::TestOptions):
- DumpRenderTree/TestOptions.h:
- DumpRenderTree/mac/DumpRenderTree.mm:
(setWebPreferencesForTestOptions):
- DumpRenderTree/win/DumpRenderTree.cpp:
(setWebPreferencesForTestOptions):
LayoutTests:
- contact-picker/contacts-interfaces-expected.txt: Added.
- contact-picker/contacts-interfaces.html: Added.
Added a new test to verify the new API interfaces.
- fast/dom/navigator-detached-no-crash-expected.txt:
- platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt:
- platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
- platform/mac/fast/dom/navigator-detached-no-crash-expected.txt:
- platform/win/fast/dom/navigator-detached-no-crash-expected.txt:
- platform/wincairo/fast/dom/navigator-detached-no-crash-expected.txt:
- platform/wpe/fast/dom/navigator-detached-no-crash-expected.txt:
Updated an existing test to include "navigator.contacts".
- 11:52 AM Changeset in webkit [267987] by
-
- 10 edits2 adds in trunk
MediaRecorder should respect enabled and muted tracks
https://bugs.webkit.org/show_bug.cgi?id=217312
Reviewed by Eric Carlson.
Source/WebCore:
If track is muted, replace it by either silence (audio buffer filled with zeros) or black frames.
MediaRecorderPrivate will keep track of whether the selected track should be muted.
It is then the responsibility of the specialization to do the appropriate processing.
Test: http/wpt/mediarecorder/mute-tracks.html
- Modules/mediarecorder/MediaRecorder.cpp:
(WebCore::MediaRecorder::trackMutedChanged):
(WebCore::MediaRecorder::trackEnabledChanged):
- Modules/mediarecorder/MediaRecorder.h:
- platform/audio/cocoa/WebAudioBufferList.cpp:
(WebCore::WebAudioBufferList::zeroFlatBuffer):
- platform/audio/cocoa/WebAudioBufferList.h:
- platform/mediarecorder/MediaRecorderPrivate.cpp:
(WebCore::MediaRecorderPrivate::selectTracks):
(WebCore::MediaRecorderPrivate::checkTrackState):
- platform/mediarecorder/MediaRecorderPrivate.h:
(WebCore::MediaRecorderPrivate::trackMutedChanged):
(WebCore::MediaRecorderPrivate::trackEnabledChanged):
(WebCore::MediaRecorderPrivate::shouldMuteAudio const):
(WebCore::MediaRecorderPrivate::shouldMuteVideo const):
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:
(WebCore::MediaRecorderPrivateAVFImpl::create):
(WebCore::MediaRecorderPrivateAVFImpl::videoSampleAvailable):
(WebCore::MediaRecorderPrivateAVFImpl::audioSamplesAvailable):
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
LayoutTests:
- http/wpt/mediarecorder/mute-tracks-expected.txt: Added.
- http/wpt/mediarecorder/mute-tracks.html: Added.
- 11:43 AM Changeset in webkit [267986] by
-
- 3 edits in trunk/Source/WebKit
[Cocoa] Reduce time waiting for Launch Services database
https://bugs.webkit.org/show_bug.cgi?id=217253
<rdar://problem/68585497>
Reviewed by Brent Fulgham.
Currently, the WebContent process is waiting up to 5 seconds for the Launch Services database to be updated.
This is too long, since the process may be considered unresponsive by the system. This patch also addresses
an issue where the required entitlement 'com.apple.private.webkit.use-xpc-endpoint' is missing from the
WebContent development XPC service. This entitlement is required in order to receive the Launch Services
database XPC object in the WebContent process.
- Scripts/process-entitlements.sh:
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::platformDidReceiveLoadParameters):
- 11:42 AM Changeset in webkit [267985] by
-
- 25 edits16 adds in trunk
Add non-animated support for the CSS rotate property
https://bugs.webkit.org/show_bug.cgi?id=217320
<rdar://problem/69956248>
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
WPT progressions showing the correct parsing and computed style output of a non-animated "rotate" property.
- web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt:
- web-platform-tests/css/css-transforms/animation/rotate-interpolation-expected.txt:
- web-platform-tests/css/css-transforms/parsing/rotate-parsing-valid-expected.txt:
- web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
Source/WebCore:
We add non-animated support for the CSS "rotate" property as specifed in by the CSS Transforms Level 2
specification (https://drafts.csswg.org/css-transforms-2/#propdef-rotate).
Tests: transforms/2d/rotate-and-scale-and-translate-order.html
transforms/2d/rotate-and-transform-attribute-in-svg-expected.svg
transforms/2d/rotate-and-transform-attribute-in-svg.svg
transforms/2d/rotate-and-transform-css-property-in-svg-expected.svg
transforms/2d/rotate-and-transform-css-property-in-svg.svg
transforms/2d/rotate-and-translate-in-svg-expected.svg
transforms/2d/rotate-and-translate-in-svg.svg
transforms/2d/rotate-and-translate-order.html
transforms/2d/rotate-in-svg-expected.svg
transforms/2d/rotate-in-svg.svg
transforms/2d/rotate-transform-order.html
transforms/2d/rotate-transform-origin-order.html
- Headers.cmake:
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::computedRotate): Create a CSSValueList to print out the computed value for the "rotate" property.
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSProperties.json: Define the "rotate" property with the condition that the runtime setting for individual
CSS transform properties is set.
- css/CSSValueKeywords.in: Define the "z" value for the "rotate" property and ensure the "x" and "y" values are
defined as well since -webkit-scroll-snap-type may not be enabled.
- css/TransformFunctions.cpp:
(WebCore::rotateForValue): Convert a CSSValue to a RotateTransformOperation when parsing a "rotate" property value.
- css/TransformFunctions.h:
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeRotate): Create a CSSValueList when parsing a "rotate" property value.
(WebCore::CSSPropertyParser::parseSingleValue):
- platform/graphics/transforms/RotateTransformOperation.h:
- rendering/RenderObject.h:
(WebCore::RenderObject::hasTransform const): Consider that having the "rotate" property is akin to having a "transform" property
in the render tree.
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setRotate):
(WebCore::RenderStyle::applyTransform const): Account for the RenderStyle::rotate() value in the right order, after applying the
transform origin and translate, but before applying the scale and main transform.
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::rotate const):
(WebCore::RenderStyle::hasTransformRelatedProperty const):
(WebCore::RenderStyle::initialRotate):
- rendering/style/StyleRareNonInheritedData.h:
- rendering/style/WillChangeData.cpp:
(WebCore::WillChangeData::propertyCreatesStackingContext):
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertRotate):
- svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::animatedLocalTransform const): Account for the RenderStyle::rotate() value when rendering SVG, ensuring
that it is applied before the transform specified by either the "transform" CSS property or SVG attribute.
LayoutTests:
Add tests checking that the "rotate" CSS property is applied in the correct order related to
"transform-origin", "transform", "scale" and "translate". We also check that it is applied
in SVG as well.
- platform/ios-13/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
- transforms/2d/rotate-and-scale-and-translate-order-expected.html: Added.
- transforms/2d/rotate-and-scale-and-translate-order.html: Added.
- transforms/2d/rotate-and-transform-attribute-in-svg-expected.svg: Added.
- transforms/2d/rotate-and-transform-attribute-in-svg.svg: Added.
- transforms/2d/rotate-and-transform-css-property-in-svg-expected.svg: Added.
- transforms/2d/rotate-and-transform-css-property-in-svg.svg: Added.
- transforms/2d/rotate-and-translate-in-svg-expected.svg: Added.
- transforms/2d/rotate-and-translate-in-svg.svg: Added.
- transforms/2d/rotate-and-translate-order-expected.html: Added.
- transforms/2d/rotate-and-translate-order.html: Added.
- transforms/2d/rotate-in-svg-expected.svg: Added.
- transforms/2d/rotate-in-svg.svg: Added.
- transforms/2d/rotate-transform-order-expected.html: Added.
- transforms/2d/rotate-transform-order.html: Added.
- transforms/2d/rotate-transform-origin-order-expected.html: Added.
- transforms/2d/rotate-transform-origin-order.html: Added.
- 11:39 AM Changeset in webkit [267984] by
-
- 1 edit2 deletes in trunk/LayoutTests/imported/w3c
Remove url-domainToUnicode web platform test as it was done upstream.
- web-platform-tests/url/url-domainToUnicode-expected.txt: Removed.
- web-platform-tests/url/url-domainToUnicode.html: Removed.
- 11:04 AM Changeset in webkit [267983] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r267602): editing/selection/ios/select-all-in-readonly-input-does-not-overflow.html fails
https://bugs.webkit.org/show_bug.cgi?id=217321
Reviewed by Dean Jackson.
Fixes an existing test by restoring the commented-out code.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _selectionClipRect]):
- 10:59 AM Changeset in webkit [267982] by
-
- 3 edits in trunk/LayoutTests/imported/w3c
[WPE] Update baselines of two touch-events tests after r266649.
Unreviewed test gardening.
General baselines are updated because WPE is the only port running
these tests. They're skipped in all other ports.
- web-platform-tests/touch-events/historical-expected.txt:
- web-platform-tests/touch-events/idlharness.window-expected.txt:
- 10:41 AM Changeset in webkit [267981] by
-
- 23 edits3 adds in branches/safari-610-branch
Cherry-pick r267869. rdar://problem/69904332
[iOS WK1] Crashes when using ANGLE WebGL from another thread
https://bugs.webkit.org/show_bug.cgi?id=216106
<rdar://problem/68602452>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-10-02
Reviewed by Kenneth Russell.
Source/ThirdParty/ANGLE:
Add two extensions for EAGL and CGL backends to declare the
underlying platform context being "volatile". It means that
the thread-global current context is being modified behind
ANGLE. If ANGLE context is marked volatile for a particular
API, it will sync the underlying context for every EGL
function that needs the context. Most intuitive use is
for the client to call eglMakeCurrent before calling any
gl function if the client knowns the platform state might
be dirty.
Implement eglReleaseThread for EAGL and CGL backends.
Releasing thread will unset the platform current context.
Fix a bug of omitting EGL_ANGLE_device_eagl from being
advertised.
- extensions/EGL_ANGLE_platform_angle_device_context_volatile_cgl.txt: Added.
- extensions/EGL_ANGLE_platform_angle_device_context_volatile_eagl.txt: Added.
- include/EGL/eglext_angle.h:
- src/libANGLE/Caps.cpp: (egl::DeviceExtensions::getStrings const): (egl::ClientExtensions::getStrings const):
- src/libANGLE/Caps.h:
- src/libANGLE/Display.cpp: (egl::Display::prepareForCall): (egl::Display::releaseThread): (egl::GenerateClientExtensions):
- src/libANGLE/Display.h:
- src/libANGLE/renderer/DisplayImpl.cpp: (rx::DisplayImpl::prepareForCall): (rx::DisplayImpl::releaseThread):
- src/libANGLE/renderer/DisplayImpl.h:
- src/libANGLE/renderer/gl/cgl/DisplayCGL.h:
- src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: (rx::DisplayCGL::initialize): (rx::DisplayCGL::terminate): (rx::DisplayCGL::prepareForCall): (rx::DisplayCGL::releaseThread): (rx::DisplayCGL::makeCurrent):
- src/libANGLE/renderer/gl/eagl/DisplayEAGL.h:
- src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: (rx::DisplayEAGL::initialize): (rx::DisplayEAGL::terminate): (rx::DisplayEAGL::prepareForCall): (rx::DisplayEAGL::releaseThread):
- src/libANGLE/validationEGL.cpp:
- src/libGLESv2/entry_points_egl.cpp:
- src/libGLESv2/entry_points_egl_ext.cpp:
Source/WebCore:
Source of the bug comes from following:
- WK1 might run WebKit code in client main thread.
- WK1 might run Webkit code in web thread.
- WebKit code might run WebGL payload, notably access GraphicsContextGL classes. Client is able to modify EAGL/CGL current context.
The change to ANGLE incurred two distinct behavior changes
compared to raw EAGL / CGL:
1) Before: context was set current before any GL call
After: context was set current only if EGL current context
had been changed. (Explicit code as well as ANGLE implementation
optimization.)
2) Before: context being used was able to be current in
multiple threads at the same time. (EAGL/CGL feature)
After: context cannot be current in multiple threads
at the same time. (EGL feature)
Change in behavior 1) caused ANGLE to sometimes use
the EAGL/CGL context of the client instead of
the real context that ANGLE created.
Fix this by introducing
EGL_ANGLE_platform_angle_device_context_volatile_eagl
and
EGL_ANGLE_platform_angle_device_context_volatile_cgl
which make ANGLE sync the context on each eglMakeCurrent
eglReleaseThread and eglTerminate.
Change in behavior 2) caused ANGLE to use uninitialized
context object from one thread, if the real context object
was current in another thread.
Fix this by considering "GraphicsContextGLOpenGL current context"
as part of "data that is owned by WebCoreThread lock".
The current context is set with lock held, implicitly.
The current context is released when lock is released.
When the lock is not held, GraphicsContextGLOpenGL current context
is nullptr.
Adds soft linking for EAGL for the purpose of testing this in
TestWebKitAPI. The case of Apple Silicon Mac may sometimes
use CGL and sometimes EAGL, and the test should test that
client overriding both contexts will not cause problems.
Fix ANGLE header include path:
- Do not include ANGLE in the path, as files are included with ANGLE/
- Add WK_ALTERNATE_FRAMEWORKS_DIR so that SDK_VARIANT=iosmac e.g. maccatalyst builds work
Previously the ANGLE was not included from ThirdParty/ANGLE, rather
"WebKit SDK".
- Configurations/WebCore.xcconfig:
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::makeContextCurrent): (WebCore::GraphicsContextGLOpenGL::releaseCurrentContext): (WebCore::GraphicsContextGLOpenGL::checkGPUStatus): (WebCore::GraphicsContextGLOpenGL::allowOfflineRenderers const):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/ios/wak/WebCoreThread.mm: (WebThreadUnlockFromAnyThread): (_WebThreadUnlock):
Tools:
Add a WK1 test which runs WebGL code both in
client main thread and in web thread.
This tests the case where ANGLE EGL context is
not being held current in one thread while the
other thread runs WebGL and thus ANGLE EGL code.
- TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitLegacy/ios/WebGLNoCrashOnOtherThreadAccess.mm: Added. (-[WebGLNoCrashOnOtherThreadAccessWebViewDelegate webViewDidFinishLoad:]): (-[WebGLNoCrashOnOtherThreadAccessWebViewDelegate webView:shouldStartLoadWithRequest:navigationType:]): (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267869 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:41 AM Changeset in webkit [267980] by
-
- 45 edits1 move8 adds in branches/safari-610-branch/Source
Cherry-pick r267602. rdar://problem/69904386
WebGL should use GLES in iOS apps running on Apple Silicon
https://bugs.webkit.org/show_bug.cgi?id=216722
<rdar://problem/68976337>
Reviewed by Tim Horton and Ken Russell.
Source/ThirdParty/ANGLE:
Change ANGLE to dynamically load either EAGL (OpenGLES) or CGL (OpenGL) depending
on both compile and runtime configurations.
Intel Mac -> CGL
Intel Mac Catalyst -> CGL
Intel iOS Simulator -> EAGL
iOS Device -> EAGL
Apple Silicon Mac -> CGL
Apple Silicon Mac Catalyst (with Mac app) -> CGL
Apple Silicon Mac Catalyst (with iOS app) -> EAGL
The trickiest bit is Apple Silicon Mac Catalyst, which depends on the
type of the application it is attempting to run. In that case ANGLE must compile
both the CGL and EAGL interfaces and then pick one to use after launch.
- ANGLE.xcodeproj/project.pbxproj: Add new files.
- Configurations/ANGLE-dynamic.xcconfig: Remove all the OpenGL* linking.
- Configurations/ANGLE-static.xcconfig:
- GLESv2.cmake: New files.
- src/common/platform.h: New definitions for CPU type on Apple Systems.
- src/gpu_info_util/SystemInfo.h: Split SystemInfo for Apple into two files, for iOS and Mac. Added a field for isiOSAppOnMac that will only be true when running an iOS binary on Apple Silicon.
- src/gpu_info_util/SystemInfo_apple.mm: Added. Decides which SystemInfo to call. (angle::GetSystemInfo):
- src/gpu_info_util/SystemInfo_ios.cpp: (angle::GetSystemInfo_ios): (angle::GetSystemInfo): Deleted.
- src/gpu_info_util/SystemInfo_macos.mm: (angle::GetSystemInfo_mac): (angle::GetSystemInfo): Deleted.
- src/libANGLE/Caps.cpp: Can no longer just check for PLATFORM_IOS. This might still need a runtime check. (gl::DetermineDepthTextureANGLESupport): (gl::DetermineDepthTextureOESSupport):
- src/libANGLE/Display.cpp: This is the main initialization point for ANGLE, which decides at compile/runtime which variant of Display to create.
- src/libANGLE/formatutils.cpp: Add the correct formats. (gl::BuildInternalFormatInfoMap):
- src/libANGLE/renderer/gl/SoftLinking_apple.h: Added. Macros to help soft-link functions and ObjC classes.
- src/libANGLE/renderer/gl/cgl/CGLFunctions.cpp: Added. Where we soft-link all the OpenGL/CGL API.
- src/libANGLE/renderer/gl/cgl/CGLFunctions.h: Added.
- src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: Use the soft-linked methods.
- src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp:
- src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.h:
- src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm: Rename WebSwapLayer to WebSwapLayerCGL otherwise it clashes with the EAGL version. (rx::WindowSurfaceCGL::initialize): (-[WebSwapLayer initWithSharedState:withContext:withFunctions:]): Deleted. (-[WebSwapLayer copyCGLPixelFormatForDisplayMask:]): Deleted. (-[WebSwapLayer copyCGLContextForPixelFormat:]): Deleted. (-[WebSwapLayer canDrawInCGLContext:pixelFormat:forLayerTime:displayTime:]): Deleted. (-[WebSwapLayer drawInCGLContext:pixelFormat:forLayerTime:displayTime:]): Deleted.
- src/libANGLE/renderer/gl/eagl/DeviceEAGL.cpp: Similar changes to the CGL implementation.
- src/libANGLE/renderer/gl/eagl/DeviceEAGL.h:
- src/libANGLE/renderer/gl/eagl/DisplayEAGL.h:
- src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: (rx::DisplayEAGL::initialize): (rx::DisplayEAGL::terminate): (rx::WorkerContextEAGL::~WorkerContextEAGL): (rx::WorkerContextEAGL::makeCurrent): (rx::WorkerContextEAGL::unmakeCurrent): (rx::DisplayEAGL::createWorkerContext):
- src/libANGLE/renderer/gl/eagl/EAGLFunctions.h: Added.
- src/libANGLE/renderer/gl/eagl/EAGLFunctions.mm: Added.
- src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm:
- src/libANGLE/renderer/gl/eagl/PbufferSurfaceEAGL.cpp:
- src/libANGLE/renderer/gl/eagl/RendererEAGL.cpp:
- src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.h:
- src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm: (-[WebSwapLayerEAGL display]): (rx::WindowSurfaceEAGL::initialize): (-[WebSwapLayer initWithSharedState:withContext:withFunctions:]): Deleted. (-[WebSwapLayer display]): Deleted.
- src/libANGLE/renderer/gl/renderergl_utils.cpp: Runtime check. (rx::nativegl_gl::GenerateCaps):
Source/WebCore:
- Configurations/WebCore.xcconfig: Remove all OpenGL/OpenGLES linking.
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/GraphicsContextGL.h: Change the ANGLE IOSurface texture binding enums into functions, because they have to be calculated at run-time.
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: Use the new soft-linked functions from PAL. Also implement the IOSurface texture binding helpers that were previously enums.
- platform/mac/PlatformScreenMac.mm:
- platform/mac/WebGLBlocklist.mm:
Source/WebCore/PAL:
Add soft-linking content for OpenGL/OpenGLES.
- PAL.xcodeproj/project.pbxproj:
- pal/PlatformMac.cmake:
- pal/cocoa/OpenGLSoftLinkCocoa.h: Added.
- pal/cocoa/OpenGLSoftLinkCocoa.mm: Added.
Source/WebKit:
- Configurations/WebKit.xcconfig: Remove OpenGL linking.
- UIProcess/mac/HighPerformanceGPUManager.mm: Renamed to .mm. Use the PAL soft-linked OpenGL API.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267602 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:37 AM Changeset in webkit [267979] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Sources: add a + to the Local Overrides section
https://bugs.webkit.org/show_bug.cgi?id=217235
Reviewed by Brian Burg.
- UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._populateCreateLocalOverrideContextMenu): Added.
(WI.SourcesNavigationSidebarPanel.prototype._populateCreateResourceContextMenu):
- 10:37 AM Changeset in webkit [267978] by
-
- 6 edits in trunk/Source
WebDriver Input clear/value commands fails when target is inside shadow dom
https://bugs.webkit.org/show_bug.cgi?id=209233
Patch by Nitzan Uziely <nitzan@testim.io> on 2020-10-05
Reviewed by Brian Burg.
Source/WebCore:
Add support for nested shadow DOM in isDescendantOrShadowDescendantOf,
- dom/Node.cpp:
(WebCore::Node::isDescendantOrShadowDescendantOf const):
- dom/Node.h:
(WebCore::Node::isDescendantOrShadowDescendantOf const):
Source/WebKit:
Fixed nodeIsElement which would return true for non-element nodes,
which caused an exception to be thrown when getComputedStyle was called
on non shadow elements.
Fixed computeElementLayout to consider shadow root descendants as descendants
when executing elementsAtPoint.
Test for WPT (https://github.com/web-platform-tests/wpt/pull/25962)
- UIProcess/Automation/atoms/ElementDisplayed.js:
(isShown.nodeIsElement):
(isShown.enclosingNodeOrSelfMatchingPredicate):
(isShown.enclosingElementOrSelfMatchingPredicate):
- WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::computeElementLayout):
- 10:36 AM Changeset in webkit [267977] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: unable to create local override for resource that failed to load
https://bugs.webkit.org/show_bug.cgi?id=217234
<rdar://problem/69888143>
Reviewed by Brian Burg.
- UserInterface/Models/Resource.js:
(WI.Resource.prototype.async createLocalResourceOverride):
Wrap theWI.SourceCode.prototype.requestContentcall in atryin case the content is not
able to be fetched. If so, determine the MIME from the URL and fall back to"".
- UserInterface/Views/ResourceContentView.js:
(WI.ResourceContentView.prototype.requestLocalResourceOverrideInitialContent):
(WI.ResourceContentView.prototype.async _getContentForLocalResourceOverrideFromFile):
Drive-by: dropinitialfrom the parameter name as it's not really necessary.
- UserInterface/Views/TextResourceContentView.js:
(WI.TextResourceContentView.prototype.requestLocalResourceOverrideInitialContent):
Drive-by: include themimeTypeandbase64Encodedof the relatedWI.Resource.
- 10:34 AM Changeset in webkit [267976] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION(?): cannot edit Event Breakpoint
https://bugs.webkit.org/show_bug.cgi?id=217244
Reviewed by Brian Burg.
- UserInterface/Models/EventBreakpoint.js:
(WI.EventBreakpoint.get supportsEditing):
(WI.EventBreakpoint.prototype.get editable):
Move the specific listener breakpoint logic to theprototypefunction asthiswon't
exist in thestaticfunction (not to mention it's not possible to create a specific
listener breakpoint "at will" like it is for global event breakpoints).
- UserInterface/Models/URLBreakpoint.js:
(WI.URLBreakpoint.get supportsEditing): Added.
(WI.URLBreakpoint.prototype.get editable):
(WI.URLBreakpoint.get editable): Deleted.
- UserInterface/Views/URLBreakpointPopover.js:
(WI.URLBreakpointPopover.get supportsEditing):
Drive-by: update naming to matchWI.EventBreakpoint.
- 10:30 AM Changeset in webkit [267975] by
-
- 1 edit1 delete in trunk/LayoutTests/imported/w3c
Remove unused -expected.txt file
- web-platform-tests/url/urlencoded-parser-expected.txt: Removed.
- 10:23 AM Changeset in webkit [267974] by
-
- 3 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Move tests also timing out in WPE to GLIB test expectations.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- 9:42 AM Changeset in webkit [267973] by
-
- 14 edits in trunk
Storage Access API: Enable per-page storage access scope and align test cases
https://bugs.webkit.org/show_bug.cgi?id=217077
<rdar://problem/69017878>
Reviewed by Brent Fulgham.
It was decided in https://github.com/privacycg/storage-access/issues/3 that
browsers should grant storage access for all same-site resources on the whole
page, not just the requesting iframe.
Source/WebCore:
No new tests. Existing tests aligned, including
LayoutTests/http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html
which no longer calls
internals.settings.setStorageAccessAPIPerPageScopeEnabled(true)
to opt in to the setting that is now the default.
- dom/DocumentStorageAccess.cpp:
(WebCore::DocumentStorageAccess::requestStorageAccess):
Changed the settings check to do the reverse, i.e. assume
per-page access by default and per-frame access as the
exception.
- dom/DocumentStorageAccess.h:
Changed the default setting for m_storageAccessScope to per-page.
- page/Settings.yaml:
Changed the default to true for
storageAccessAPIPerPageScopeEnabled.
Source/WebKit:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::hasStorageAccess):
Added a call to WebPage::hasPageLevelStorageAccess()
and an early return if it returns true.
(WebKit::WebPage::clearPageLevelStorageAccess):
New function to clear the webpage's m_domainsWithPageLevelStorageAccess
map.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::clearResourceLoadStatistics):
Now clears all webpages' page level storage access maps.
LayoutTests:
- http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame.html:
- http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame.html:
- http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html:
- http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html:
All of the above now explicitly call
internals.settings.setStorageAccessAPIPerPageScopeEnabled(false)
to opt out of the new default setting.
- http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html:
Changed to assume per-page is the default.
- 9:38 AM Changeset in webkit [267972] by
-
- 2 edits in trunk/Source/JavaScriptCore
Build fix: Use JSC_DEFINE_HOST_FUNCTION_WITH_ATTRIBUTES() with SUPPRESS_ASAN
<rdar://problem/69954783>
- tools/JSDollarVM.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION_WITH_ATTRIBUTES):
- Change
SUPPRESS_ASAN JSC_DEFINE_HOST_FUNCTION()toJSC_DEFINE_HOST_FUNCTION_WITH_ATTRIBUTES(..., SUPPRESS_ASAN, ...)to fix the build.
- 9:36 AM Changeset in webkit [267971] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Make text selectable in CPU timeline content view
https://bugs.webkit.org/show_bug.cgi?id=216999
Reviewed by Brian Burg.
- UserInterface/Views/CPUTimelineView.css:
(.timeline-view.cpu > .content > .overview .legend):
- UserInterface/Views/CPUUsageCombinedView.css:
(.cpu-usage-combined-view > .details):
- 9:17 AM Changeset in webkit [267970] by
-
- 21 edits in trunk
Remove support for enabling subpixel CSSOM values, it's off by default everywhere and known to be not-compatible with the web
https://bugs.webkit.org/show_bug.cgi?id=217300
Reviewed by Simon Fraser.
Source/WebCore:
Remove support for subpixel CSSOM values, and fixup Element interfaces that were
only out of spec, returning doubles, due to the conditional support.
- dom/Element+CSSOMView.idl:
- dom/Element.cpp:
(WebCore::adjustForLocalZoom):
(WebCore::convertToNonSubpixelValue):
(WebCore::adjustOffsetForZoomAndSubpixelLayout):
(WebCore::Element::offsetLeftForBindings):
(WebCore::Element::offsetLeft):
(WebCore::Element::offsetTopForBindings):
(WebCore::Element::offsetTop):
(WebCore::Element::offsetWidth):
(WebCore::Element::offsetHeight):
(WebCore::Element::clientLeft):
(WebCore::Element::clientTop):
(WebCore::Element::clientWidth):
(WebCore::Element::clientHeight):
(WebCore::subpixelMetricsEnabled): Deleted.
(WebCore::convertToNonSubpixelValueIfNeeded): Deleted.
- dom/Element.h:
- html/HTMLElement+CSSOMView.idl:
- page/Settings.yaml:
Source/WebKit:
Deprecate SPI for enabling subpixel CSSOM values. It is not web compatible.
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetSubpixelCSSOMElementMetricsEnabled):
(WKPreferencesGetSubpixelCSSOMElementMetricsEnabled):
- UIProcess/API/C/WKPreferencesRefPrivate.h:
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _setSubpixelCSSOMElementMetricsEnabled:]):
(-[WKPreferences _subpixelCSSOMElementMetricsEnabled]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
Source/WebKitLegacy/mac:
Deprecate SPI for enabling subpixel CSSOM values. It is not web compatible.
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(-[WebPreferences setSubpixelCSSOMElementMetricsEnabled:]):
(-[WebPreferences subpixelCSSOMElementMetricsEnabled]):
- WebView/WebPreferencesPrivate.h:
Source/WTF:
Remove preference for toggling subpixel CSSOM values.
- Scripts/Preferences/WebPreferences.yaml:
Tools:
Remove support in MiniBrowser for toggling support for subpixel CSSOM values since it
is no longer supported in WebCore.
- MiniBrowser/mac/SettingsController.h:
- MiniBrowser/mac/SettingsController.m:
(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController toggleEnableSubPixelCSSOMMetrics:]): Deleted.
(-[SettingsController subPixelCSSOMMetricsEnabled]): Deleted.
- MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController didChangeSettings]):
- 8:43 AM Changeset in webkit [267969] by
-
- 18 edits4 moves1 delete in trunk/Source/WebCore
[LFC][Integration] Move Display::InlineContent to LayoutIntegration namespace
https://bugs.webkit.org/show_bug.cgi?id=217310
Reviewed by Zalan Bujtas.
It is only used by the integration code
Also move the related classes and rename the path independent iterator run to PathRun
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- display/DisplayView.h:
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
- layout/displaytree/DisplayRect.h: Removed.
- layout/flexformatting/FlexFormattingContext.cpp:
(WebCore::Layout::FlexFormattingContext::sizeAndPlaceFlexItems):
- layout/flexformatting/FlexFormattingState.h:
(WebCore::Layout::FlexFormattingState::lines const):
(WebCore::Layout::FlexFormattingState::addLine):
- layout/integration/LayoutIntegrationInlineContent.cpp: Renamed from Source/WebCore/layout/displaytree/DisplayInlineContent.cpp.
- layout/integration/LayoutIntegrationInlineContent.h: Renamed from Source/WebCore/layout/displaytree/DisplayInlineContent.h.
- layout/integration/LayoutIntegrationLine.h: Renamed from Source/WebCore/layout/displaytree/DisplayLine.h.
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::layout):
(WebCore::LayoutIntegration::LineLayout::constructContent):
(WebCore::LayoutIntegration::LineLayout::lineCount const):
(WebCore::LayoutIntegration::LineLayout::adjustForPagination):
(WebCore::LayoutIntegration::LineLayout::collectOverflow):
(WebCore::LayoutIntegration::LineLayout::ensureInlineContent):
(WebCore::LayoutIntegration::LineLayout::textRunsFor const):
(WebCore::LayoutIntegration::LineLayout::runFor const):
(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::hitTest):
(WebCore::LayoutIntegration::LineLayout::constructDisplayContent): Deleted.
(WebCore::LayoutIntegration::LineLayout::ensureDisplayInlineContent): Deleted.
- layout/integration/LayoutIntegrationLineLayout.h:
(WebCore::LayoutIntegration::LineLayout::inlineContent const):
(WebCore::LayoutIntegration::LineLayout::displayInlineContent const): Deleted.
- layout/integration/LayoutIntegrationPagination.cpp:
(WebCore::LayoutIntegration::computeLineTopAndBottomWithOverflow):
(WebCore::LayoutIntegration::updateMinimumPageHeight):
(WebCore::LayoutIntegration::makeAdjustedContent):
(WebCore::LayoutIntegration::adjustLinePositionsForPagination):
- layout/integration/LayoutIntegrationPagination.h:
- layout/integration/LayoutIntegrationRun.h: Renamed from Source/WebCore/layout/displaytree/DisplayRun.h.
- layout/integration/LayoutIntegrationRunIterator.cpp:
(WebCore::LayoutIntegration::RunIterator::RunIterator):
(WebCore::LayoutIntegration::TextRunIterator::TextRunIterator):
(WebCore::LayoutIntegration::LineRunIterator::LineRunIterator):
(WebCore::LayoutIntegration::PathRun::modernPath):
(WebCore::LayoutIntegration::PathRun::legacyPath):
(WebCore::LayoutIntegration::Run::modernPath): Deleted.
(WebCore::LayoutIntegration::Run::legacyPath): Deleted.
- layout/integration/LayoutIntegrationRunIterator.h:
(WebCore::LayoutIntegration::PathTextRun::legacyInlineBox const):
(WebCore::LayoutIntegration::RunIterator::operator* const):
(WebCore::LayoutIntegration::RunIterator::operator-> const):
(WebCore::LayoutIntegration::TextRunIterator::operator* const):
(WebCore::LayoutIntegration::TextRunIterator::operator-> const):
(WebCore::LayoutIntegration::TextRunIterator::get const):
(WebCore::LayoutIntegration::PathRun::PathRun):
(WebCore::LayoutIntegration::PathRun::isText const):
(WebCore::LayoutIntegration::PathRun::rect const):
(WebCore::LayoutIntegration::PathRun::baseline const):
(WebCore::LayoutIntegration::PathRun::isHorizontal const):
(WebCore::LayoutIntegration::PathRun::dirOverride const):
(WebCore::LayoutIntegration::PathRun::isLineBreak const):
(WebCore::LayoutIntegration::PathRun::useLineBreakBoxRenderTreeDumpQuirk const):
(WebCore::LayoutIntegration::PathRun::minimumCaretOffset const):
(WebCore::LayoutIntegration::PathRun::maximumCaretOffset const):
(WebCore::LayoutIntegration::PathRun::bidiLevel const):
(WebCore::LayoutIntegration::PathRun::onSameLine const):
(WebCore::LayoutIntegration::PathRun::legacyInlineBox const):
(WebCore::LayoutIntegration::PathTextRun::hasHyphen const):
(WebCore::LayoutIntegration::PathTextRun::PathTextRun):
(WebCore::LayoutIntegration::PathTextRun::text const):
(WebCore::LayoutIntegration::PathTextRun::localStartOffset const):
(WebCore::LayoutIntegration::PathTextRun::localEndOffset const):
(WebCore::LayoutIntegration::PathTextRun::length const):
(WebCore::LayoutIntegration::PathTextRun::isLastTextRunOnLine const):
(WebCore::LayoutIntegration::PathTextRun::isLastTextRun const):
(isType):
(WebCore::LayoutIntegration::Run::leftmostCaretOffset const): Deleted.
(WebCore::LayoutIntegration::Run::rightmostCaretOffset const): Deleted.
(WebCore::LayoutIntegration::Run::direction const): Deleted.
(WebCore::LayoutIntegration::Run::isLeftToRightDirection const): Deleted.
(WebCore::LayoutIntegration::TextRun::legacyInlineBox const): Deleted.
(WebCore::LayoutIntegration::Run::Run): Deleted.
(WebCore::LayoutIntegration::Run::isText const): Deleted.
(WebCore::LayoutIntegration::Run::rect const): Deleted.
(WebCore::LayoutIntegration::Run::baseline const): Deleted.
(WebCore::LayoutIntegration::Run::isHorizontal const): Deleted.
(WebCore::LayoutIntegration::Run::dirOverride const): Deleted.
(WebCore::LayoutIntegration::Run::isLineBreak const): Deleted.
(WebCore::LayoutIntegration::Run::useLineBreakBoxRenderTreeDumpQuirk const): Deleted.
(WebCore::LayoutIntegration::Run::minimumCaretOffset const): Deleted.
(WebCore::LayoutIntegration::Run::maximumCaretOffset const): Deleted.
(WebCore::LayoutIntegration::Run::bidiLevel const): Deleted.
(WebCore::LayoutIntegration::Run::onSameLine const): Deleted.
(WebCore::LayoutIntegration::Run::legacyInlineBox const): Deleted.
(WebCore::LayoutIntegration::TextRun::hasHyphen const): Deleted.
(WebCore::LayoutIntegration::TextRun::TextRun): Deleted.
(WebCore::LayoutIntegration::TextRun::text const): Deleted.
(WebCore::LayoutIntegration::TextRun::localStartOffset const): Deleted.
(WebCore::LayoutIntegration::TextRun::localEndOffset const): Deleted.
(WebCore::LayoutIntegration::TextRun::length const): Deleted.
(WebCore::LayoutIntegration::TextRun::isLastTextRunOnLine const): Deleted.
(WebCore::LayoutIntegration::TextRun::isLastTextRun const): Deleted.
- layout/integration/LayoutIntegrationRunIteratorModernPath.h:
(WebCore::LayoutIntegration::ModernPath::ModernPath):
(WebCore::LayoutIntegration::ModernPath::runs const):
(WebCore::LayoutIntegration::ModernPath::run const):
(WebCore::LayoutIntegration::ModernPath::line const):
- layout/layouttree/LayoutTreeBuilder.cpp:
- rendering/RenderTreeAsText.cpp:
(WebCore::write):
(WebCore::writeTextRun): Deleted.
- rendering/TextPainter.cpp:
(WebCore::TextPainter::clearGlyphDisplayLists):
- 8:40 AM Changeset in webkit [267968] by
-
- 9 edits2 copies1 move2 adds2 deletes in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Merge common GTK and WPE baselines and emit new baselines for WPE tests after r267960.
Also move webaudio/oscillator-sine.html failure to glib.
- platform/glib/TestExpectations:
- platform/glib/fetch/fetch-url-serialization-expected.txt:
- platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/attribute-mapping-002-expected.txt:
- platform/glib/imported/w3c/web-platform-tests/mathml/relations/html5-tree/display-1-expected.txt:
- platform/gtk/TestExpectations:
- platform/gtk/imported/w3c/web-platform-tests/mathml/relations/html5-tree/display-1-expected.txt: Removed.
- platform/gtk/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt: Copied from LayoutTests/platform/glib/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt.
- platform/wpe/http/tests/storageAccess/aggregate-sorted-data-with-storage-access-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/css/css-sizing/percentage-height-in-flexbox-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/mathml/relations/css-styling/attribute-mapping-002-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/attribute-mapping-002-expected.txt.
- platform/wpe/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt.
- 8:28 AM Changeset in webkit [267967] by
-
- 2 edits in trunk/Source/WebCore
[LFC][Integration] Enable non-uniform line height content with floats
https://bugs.webkit.org/show_bug.cgi?id=217306
Reviewed by Antti Koivisto.
Expand coverage now that we support non-uniform line heights.
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):
- 7:57 AM Changeset in webkit [267966] by
-
- 48 edits2 adds2 deletes in trunk
Unify linkedOnOrAfter duplicate code and use SPI/WebCoreTestSupport instead of NSUserDefaults
https://bugs.webkit.org/show_bug.cgi?id=217239
Reviewed by Darin Adler.
Source/WebCore:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/cocoa/VersionChecks.h: Renamed from Source/WebKit/UIProcess/Cocoa/VersionChecks.h.
- platform/cocoa/VersionChecks.mm: Renamed from Source/WebKit/UIProcess/Cocoa/VersionChecks.mm.
(WebCore::linkedOnOrAfter):
- testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::setLinkedOnOrAfterEverythingForTesting):
- testing/js/WebCoreTestSupport.h:
Source/WebKit:
- NetworkProcess/WebStorage/ios/LocalStorageDatabaseTrackerIOS.mm:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
- Shared/Cocoa/CompletionHandlerCallChecker.mm:
(WebKit::shouldThrowExceptionForDuplicateCompletionHandlerCall):
- Shared/Cocoa/DefaultWebBrowserChecks.mm:
(WebKit::determineITPState):
- Shared/Cocoa/WebKit2InitializeCocoa.mm:
(WebKit::InitializeWebKit2):
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultPassiveTouchListenersAsDefaultOnDocument):
- SourcesCocoa.txt:
- UIProcess/API/C/WKPage.cpp:
(WKPageReload):
- UIProcess/API/Cocoa/WKProcessPool.mm:
(+[WKProcessPool _setLinkedOnOrAfterEverythingForTesting]):
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(shouldAllowSettingAnyXHRHeaderFromFileURLs):
(shouldRestrictBaseURLSchemes):
(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _setupPageConfiguration:]):
(-[WKWebView reload]):
(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(defaultShouldDecidePolicyBeforeLoadingQuickLookPreview):
(-[WKWebViewConfiguration init]):
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore init]):
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _computedObscuredInset]):
- UIProcess/API/mac/WKWebViewMac.mm:
(-[WKWebView _web_dragDestinationActionForDraggingInfo:]):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
- UIProcess/Inspector/mac/WKInspectorViewController.mm:
(-[WKInspectorViewController inspectorWKWebViewReload:]):
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::hasScrollableOrZoomedMainFrame const):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createWebPage):
- UIProcess/WebProcessProxy.cpp:
(WebKit::isMainThreadOrCheckDisabled):
- UIProcess/ios/WKContentView.mm:
(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _shouldUseContextMenus]):
(applicationIsKnownToIgnoreMouseEvents):
- UIProcess/ios/WKScrollView.mm:
(-[WKScrollView _systemContentInset]):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::desktopClassBrowsingRecommended):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/cocoa/WebProcessCocoa.mm:
Source/WebKitLegacy/mac:
- DefaultDelegates/WebDefaultUIDelegate.mm:
(-[WebDefaultUIDelegate webView:dragDestinationActionMaskForDraggingInfo:]):
- Misc/WebIconDatabase.mm:
(+[WebIconDatabase sharedIconDatabase]):
- Misc/WebKitVersionChecks.h:
- Misc/WebKitVersionChecks.mm:
(WebKitLinkTimeVersion):
(linkedOnOrAfter): Deleted.
- WebView/WebPreferencesDefaultValues.mm:
(WebKit::defaultPassiveTouchListenersAsDefaultOnDocument):
(WebKit::defaultShouldRestrictBaseURLSchemes):
Tools:
- DumpRenderTree/mac/DumpRenderTree.mm:
(setDefaultsToConsistentValuesForTesting):
(DumpRenderTreeMain):
- MiniBrowser/mac/main.m:
(main):
- MobileMiniBrowser/MobileMiniBrowser/main.m:
(main):
- TestWebKitAPI/Configurations/TestWTF.xcconfig:
- TestWebKitAPI/ios/mainIOS.mm:
(main):
- TestWebKitAPI/mac/mainMac.mm:
(main):
- WebKitTestRunner/ios/mainIOS.mm:
(main):
- WebKitTestRunner/mac/main.mm:
(setDefaultsToConsistentValuesForTesting):
(main):
- 7:51 AM Changeset in webkit [267965] by
-
- 9 edits in trunk
URLParser should fail to parse URLs with hosts containing invalid punycode encodings
https://bugs.webkit.org/show_bug.cgi?id=217285
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/url/a-element-expected.txt:
- web-platform-tests/url/a-element-xhtml-expected.txt:
- web-platform-tests/url/failure-expected.txt:
- web-platform-tests/url/toascii.window-expected.txt:
- web-platform-tests/url/url-constructor-expected.txt:
Source/WTF:
URLParser has a fast path for parsing hosts that are all ASCII, but that does not validate hosts that are invalid punycode, such as "xn--".
Since all punycode encoded strings start with "xn--", if the input string starts with "xn--" then skip the fast path and let ICU decide if it's valid.
- wtf/URLParser.cpp:
(WTF::URLParser::domainToASCII):
(WTF::URLParser::startsWithXNDashDash):
(WTF::URLParser::parseHostAndPort):
- wtf/URLParser.h:
- 7:43 AM Changeset in webkit [267964] by
-
- 7 edits in trunk
When appending a Windows drive letter to a file URL, remove any path we may have copied from the base URL
https://bugs.webkit.org/show_bug.cgi?id=217284
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/url/a-element-expected.txt:
- web-platform-tests/url/a-element-xhtml-expected.txt:
- web-platform-tests/url/resources/urltestdata.json:
- web-platform-tests/url/url-constructor-expected.txt:
Source/WTF:
This fixes a web platform test and adds another to verify that we remove the entire path, not just the last segment like we do with ..
Edge has implemented this, and in order to have a platform-independent URL we should do it too.
- wtf/URLParser.cpp:
(WTF::URLParser::isWindowsDriveLetter):
(WTF::URLParser::appendWindowsDriveLetter):
(WTF::URLParser::parse):
- 7:40 AM Changeset in webkit [267963] by
-
- 17 edits in trunk
Fix UTF-8 encoding in URL parsing
https://bugs.webkit.org/show_bug.cgi?id=217289
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/url/a-element-expected.txt:
- web-platform-tests/url/a-element-origin-expected.txt:
- web-platform-tests/url/a-element-origin-xhtml-expected.txt:
- web-platform-tests/url/a-element-xhtml-expected.txt:
- web-platform-tests/url/resources/urltestdata.json:
- web-platform-tests/url/url-constructor-expected.txt:
- web-platform-tests/url/url-origin-expected.txt:
Source/WTF:
This matches the behavior of Firefox and the Unicode and whatwg encoding specifications.
- wtf/URLParser.cpp:
(WTF::URLParser::utf8PercentEncode):
(WTF::URLParser::utf8QueryEncode):
(WTF::URLParser::parseHostAndPort):
Tools:
- TestWebKitAPI/Tests/WTF/URLParser.cpp:
(TestWebKitAPI::TEST_F):
LayoutTests:
- fast/url/anchor-expected.txt:
- fast/url/anchor.html:
- fast/url/path-expected.txt:
- fast/url/path.html:
- 7:39 AM Changeset in webkit [267962] by
-
- 14 edits1 add in trunk/Source/WebCore
[LFC][Integration] Avoid ensureLineBoxes for some call sites of inlineBoxAndOffset
https://bugs.webkit.org/show_bug.cgi?id=217225
Reviewed by Zalan Bujtas.
Separate inlineRunAndOffset from inlineBoxAndOffset.
The formet returns iterator while the later forces the legacy path.
Use inlineRunAndOffset in a few places.
- dom/Position.cpp:
(WebCore::Position::rendersInDifferentPosition const):
(WebCore::Position::inlineRunAndOffset const):
(WebCore::Position::inlineBoxAndOffset const):
(WebCore::Position::ensureLineBoxes const):
(WebCore::InlineBoxAndOffset::InlineBoxAndOffset): Deleted.
- dom/Position.h:
(WebCore::InlineBoxAndOffset::InlineBoxAndOffset):
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::directionOfSelection):
- editing/VisiblePosition.h:
(WebCore::VisiblePosition::inlineRunAndOffset const):
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForFontAndText):
- layout/integration/LayoutIntegrationRunIterator.h:
(WebCore::LayoutIntegration::Run::onSameLine const):
- layout/integration/LayoutIntegrationRunIteratorLegacyPath.h:
(WebCore::LayoutIntegration::LegacyPath::onSameLine const):
(WebCore::LayoutIntegration::LegacyPath::atEnd const):
- layout/integration/LayoutIntegrationRunIteratorModernPath.h:
(WebCore::LayoutIntegration::ModernPath::onSameLine const):
(WebCore::LayoutIntegration::ModernPath::atEnd const):
- platform/DragImage.cpp:
- rendering/RenderTextLineBoxes.h:
- 7:35 AM Changeset in webkit [267961] by
-
- 7 edits in trunk/Source/WebKit
Clean up "rendering update" terminology in DrawingArea
https://bugs.webkit.org/show_bug.cgi?id=217307
Reviewed by Tim Horton.
DrawingArea doesn't know about "immediate" vs. "normal" rendering updates; for it,
all requests are for immediate rendering updates; the only difference is whether
layer tree freezing is respected.
This is the first step to correcting the naming; scheduleImmediateRenderingUpdate()
doesn't have to be exposed at all. A future patch will rename DrawingArea::scheduleRenderingUpdate()
to make it clear that it's not about timed updates.
- WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h:
- WebProcess/WebPage/DrawingArea.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::setLayerTreeStateIsFrozen):
(WebKit::RemoteLayerTreeDrawingArea::startRenderingUpdateTimer):
(WebKit::RemoteLayerTreeDrawingArea::scheduleRenderingUpdate):
(WebKit::RemoteLayerTreeDrawingArea::activityStateDidChange):
(WebKit::RemoteLayerTreeDrawingArea::scheduleImmediateRenderingUpdate): Deleted.
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::scheduleRenderingUpdate):
(WebKit::TiledCoreAnimationDrawingArea::scheduleImmediateRenderingUpdate): Deleted.
- 7:19 AM Changeset in webkit [267960] by
-
- 6 edits in trunk/Source/WebKit
[GPU Process] Make it possible to dynamically block IOKit in the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=217129
<rdar://problem/69466039>
Reviewed by Geoffrey Garen.
We need to be able to enable IOKit blocking via the WebContent sandbox dynamically.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::gpuIOKitClasses):
(WebKit::WebProcessPool::platformInitializeWebProcess):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
- 3:30 AM Changeset in webkit [267959] by
-
- 5 edits in trunk
Make xhr.response more conforming to the specification
https://bugs.webkit.org/show_bug.cgi?id=217296
Patch by Rob Buis <rbuis@igalia.com> on 2020-10-05
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update improved test result.
- web-platform-tests/xhr/overridemimetype-blob-expected.txt:
Source/WebCore:
Make xhr.response more conforming to the specification when dealing
with Blob type responses, the type for the Blob should be computed
by the "get a final MIME type" algorithm [1, 2].
Behavior matches Firefox.
Test: imported/w3c/web-platform-tests/xhr/overridemimetype-blob.html
[1] https://xhr.spec.whatwg.org/#ref-for-final-mime-type③
[2] https://xhr.spec.whatwg.org/#final-mime-type
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::createResponseBlob):
(WebCore::XMLHttpRequest::responseMIMEType const):
- xml/XMLHttpRequest.h:
- 2:46 AM Changeset in webkit [267958] by
-
- 27 edits14 adds in trunk
Add non-animated support for the CSS scale property
https://bugs.webkit.org/show_bug.cgi?id=217291
<rdar://problem/69926254>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
WPT progressions showing the correct parsing and computed style output of a non-animated "scale" property.
We are also adding some more tests to the invalid "scale" parsing to check that we bail once we get junk
for optional values after valid values and move percentage values to invalid tests (also filed a WPT PR
at https://github.com/web-platform-tests/wpt/pull/25960).
- web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- web-platform-tests/css/css-transforms/animation/scale-composition-expected.txt:
- web-platform-tests/css/css-transforms/animation/scale-interpolation-expected.txt:
- web-platform-tests/css/css-transforms/parsing/scale-parsing-invalid-expected.txt:
- web-platform-tests/css/css-transforms/parsing/scale-parsing-invalid.html:
- web-platform-tests/css/css-transforms/parsing/scale-parsing-valid-expected.txt:
- web-platform-tests/css/css-transforms/parsing/scale-parsing-valid.html:
- web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
Source/WebCore:
We add non-animated support for the CSS "scale" property as specifed in by the CSS Transforms Level 2
specification (https://drafts.csswg.org/css-transforms-2/#propdef-scale).
Tests: transforms/2d/scale-and-transform-attribute-in-svg-expected.svg
transforms/2d/scale-and-transform-attribute-in-svg.svg
transforms/2d/scale-and-transform-css-property-in-svg-expected.svg
transforms/2d/scale-and-transform-css-property-in-svg.svg
transforms/2d/scale-and-translate-in-svg-expected.svg
transforms/2d/scale-and-translate-in-svg.svg
transforms/2d/scale-and-translate-order.html
transforms/2d/scale-in-svg-expected.svg
transforms/2d/scale-in-svg.svg
transforms/2d/scale-transform-order.html
transforms/2d/scale-transform-origin-order.html
- Headers.cmake:
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::computedTranslate): Remove the extraneous is<RenderInline> check which is already covered by rendererCanBeTransformed().
(WebCore::computedScale): Create a CSSValueList to print out the computed value for the "scale" property.
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSProperties.json: Define the "scale" property with the condition that the runtime setting for individual
CSS transform properties is set.
- css/TransformFunctions.cpp:
(WebCore::scaleForValue): Convert a CSSValue to a TranslateTransformOperation when parsing a "scale" property value.
- css/TransformFunctions.h:
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeScale): Create a CSSValueList when parsing a "scale" property value.
(WebCore::CSSPropertyParser::parseSingleValue):
- platform/graphics/transforms/ScaleTransformOperation.h:
- rendering/RenderObject.h:
(WebCore::RenderObject::hasTransform const): Consider that having the "scale" property is akin to having a "transform" property
in the render tree.
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setScale):
(WebCore::RenderStyle::applyTransform const): Account for the RenderStyle::scale() value in the right order, after applying the
transform origin and translate, but before applying the main transform.
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::scale const):
(WebCore::RenderStyle::hasTransformRelatedProperty const):
(WebCore::RenderStyle::initialScale):
- rendering/style/StyleRareNonInheritedData.h:
- rendering/style/WillChangeData.cpp:
(WebCore::WillChangeData::propertyCreatesStackingContext):
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertScale):
- svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::animatedLocalTransform const): Account for the RenderStyle::scale() value when rendering SVG, ensuring
that it is applied before the transform specified by either the "transform" CSS property or SVG attribute.
LayoutTests:
Add tests checking that the "scale" CSS property is applied in the correct order related to
"transform-origin" and "transform" and that it is applied in SVG as well.
- platform/ios-13/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
- transforms/2d/scale-and-transform-attribute-in-svg-expected.svg: Added.
- transforms/2d/scale-and-transform-attribute-in-svg.svg: Added.
- transforms/2d/scale-and-transform-css-property-in-svg-expected.svg: Added.
- transforms/2d/scale-and-transform-css-property-in-svg.svg: Added.
- transforms/2d/scale-and-translate-in-svg-expected.svg: Added.
- transforms/2d/scale-and-translate-in-svg.svg: Added.
- transforms/2d/scale-and-translate-order-expected.html: Added.
- transforms/2d/scale-and-translate-order.html: Added.
- transforms/2d/scale-in-svg-expected.svg: Added.
- transforms/2d/scale-in-svg.svg: Added.
- transforms/2d/scale-transform-order-expected.html: Added.
- transforms/2d/scale-transform-order.html: Added.
- transforms/2d/scale-transform-origin-order-expected.html: Added.
- transforms/2d/scale-transform-origin-order.html: Added.
- 1:13 AM Changeset in webkit [267957] by
-
- 6 edits in trunk
MIME type parser should skip trailing HTTP whitespace
https://bugs.webkit.org/show_bug.cgi?id=217179
Patch by Rob Buis <rbuis@igalia.com> on 2020-10-05
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update test expectation.
- web-platform-tests/xhr/overridemimetype-blob-expected.txt:
Source/WebCore:
MIME type parser should skip trailing HTTP whitespace in Mimesniff mode [1].
[1] https://mimesniff.spec.whatwg.org/#parse-a-mime-type (Steps 8 and 11.9.2)
- platform/network/ParsedContentType.cpp:
(WebCore::parseToken):
Tools:
Add unit tests for trailing HTTP whitespace.
- TestWebKitAPI/Tests/WebCore/ParsedContentType.cpp:
(TestWebKitAPI::TEST):