Timeline
Mar 12, 2021:
- 6:29 PM Changeset in webkit [274378] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa][WebM] Hang when reloading page before WebM content is loaded
https://bugs.webkit.org/show_bug.cgi?id=223139
<rdar://75351029>
Reviewed by Darin Adler.
No new tests; a truly deterministic test would require a .cgi script to block loading after
the WebM init segment, but a bug in the platform format reader causes URLs not ending in
.webm to fail to load the format reader plugin. Once this issue is fixed, we can write a
test to cover this behavior.
The WebM TrackEntry "enabled" bit is optional, and WebKit previously waited until any media data
was appended to say whether or not the track is enabled in the absense of an explicit signal.
Instead, assume any track that is not explicity disabled is enabled, for the purpose of the
format reader. This means that "enabled" queries will no longer block, which breaks the deadlock
when tearing down the AVAsset backing the WebM file.
- Shared/mac/MediaFormatReader/MediaTrackReader.cpp:
(WebKit::MediaTrackReader::copyProperty):
- 6:26 PM Changeset in webkit [274377] by
-
- 3 edits in trunk/Source/WebKit
AX: PDF frame conversion routines need to be updated
https://bugs.webkit.org/show_bug.cgi?id=223138
Reviewed by Darin Adler.
PDF bounding boxes are wrong in WebKit because.
1) There's no way for PDF objects to get the primary screen height. So we need to be able to return the primary
screen height from an object in the PDF hierarchy.
2) The WKPDFPluginAccessibilityObject's position was not being converted correctly.
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:]):
(-[WKPDFPluginAccessibilityObject ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(WebKit::PDFPlugin::boundsOnScreen const):
- WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
(-[WKAccessibilityWebPageObject accessibilityAttributeValue:]):
- 6:01 PM Changeset in webkit [274376] by
-
- 5 edits in trunk/Source/WebCore
Add more MediaStream logging
https://bugs.webkit.org/show_bug.cgi?id=223143
<rdar://problem/75380363>
Reviewed by Jer Noble.
No new tests, no functional change.
- Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::clone):
(WebCore::MediaStreamTrack::stopTrack):
(WebCore::MediaStreamTrack::trackStarted):
(WebCore::MediaStreamTrack::trackEnded):
- platform/mediastream/MediaStreamTrackPrivate.cpp:
(WebCore::MediaStreamTrackPrivate::MediaStreamTrackPrivate):
(WebCore::MediaStreamTrackPrivate::~MediaStreamTrackPrivate):
(WebCore::MediaStreamTrackPrivate::setEnabled):
(WebCore::MediaStreamTrackPrivate::endTrack):
(WebCore::MediaStreamTrackPrivate::clone):
(WebCore::MediaStreamTrackPrivate::createAudioSourceProvider):
(WebCore::MediaStreamTrackPrivate::sourceStarted):
(WebCore::MediaStreamTrackPrivate::sourceStopped):
(WebCore::MediaStreamTrackPrivate::sourceMutedChanged):
(WebCore::MediaStreamTrackPrivate::sourceSettingsChanged):
(WebCore::MediaStreamTrackPrivate::preventSourceFromStopping):
(WebCore::MediaStreamTrackPrivate::hasStartedProducingData):
(WebCore::MediaStreamTrackPrivate::updateReadyState):
- platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::setMuted):
(WebCore::RealtimeMediaSource::requestToEnd):
(WebCore::RealtimeMediaSource::end):
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::~AVVideoCaptureSource):
(WebCore::AVVideoCaptureSource::startProducingData):
(WebCore::AVVideoCaptureSource::stopProducingData):
(WebCore::AVVideoCaptureSource::shutdownCaptureSession):
(WebCore::AVVideoCaptureSource::orientationChanged):
- 5:55 PM Changeset in webkit [274375] by
-
- 6 edits in trunk
REGRESSION(r274270): [WPE][GTK] Broke Epiphany test /embed/ephy-web-view/error-pages-not-stored-in-history
https://bugs.webkit.org/show_bug.cgi?id=223140
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-12
Reviewed by Alex Christensen.
Source/WebCore:
If the SecurityOriginData has no protocol or host, return an empty string instead of ":"
- page/SecurityOriginData.cpp:
(WebCore::SecurityOriginData::toString const):
Source/WebKit:
Convert empty strings to NULL.
- UIProcess/API/glib/WebKitSecurityOrigin.cpp:
(webkit_security_origin_to_string):
Tools:
Improve WebKitSecurityOrigin tests a bit.
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp:
(testCustomProtocolOrigin): Drive-by improvement: check webkit_security_origin_to_string().
(testBogusURI): Added, tests for this bug.
(beforeAll):
- 4:00 PM Changeset in webkit [274374] by
-
- 18 edits1 copy in trunk
[macOS] MobileAsset fonts are broken in Reader mode in Safari
https://bugs.webkit.org/show_bug.cgi?id=223062
Reviewed by Simon Fraser.
Source/WebCore/PAL:
- pal/spi/cf/CoreTextSPI.h:
Source/WebKit:
Here is an ASCII-art description of how various kinds of installed fonts work in WebKit:
+----------------------++-----------------------------------------+-----------------------------------------+
| Safari | Normal WKWebViews | +======================++=========================================+=========================================+
| Preinstalled Fonts Just works | Just works | +----------------------++-----------------------------------------+-----------------------------------------+
| MobileAsset Fonts Needs access to mobileassetd | Needs access to mobileassetd but not | | (and fontd for any subsequent requests | fontd. | | after the first MobileAsset font is | | | used) | App calls _grantAccessToAssetServices() | | | to vend the sandbox extension | | App calls _grantAccessToAssetServices() | | | to vend the sandbox extension to | And then the app needs to use | | mobileassetd | InjectedBundle to activate the fonts in | | | the web process | | Web process also needs a call to | | | CTFontManagerEnableAllUserFonts() and a | | | sandbox extension to access fontd | | | | | | After this call is made, font requests | | | go through fontd (like for normal | | | WKWebViews) | | | | | | And then the app needs to use | | | InjectedBundle to activate the fonts in | | | the web process | | +----------------------++-----------------------------------------+-----------------------------------------+
| User-installed Fonts Intentionally doesn't work | Needs access to fontd. | | | | | | Just works (we already vend the sandbox | | | extension upon WKWebView creation) | +----------------------++-----------------------------------------+-----------------------------------------+
The part that this patch fixes is the "Web process also needs a call to CTFontManagerEnableAllUserFonts()
and a sandbox extension to access fontd" under MobileAsset Fonts / Safari.
From looking at this chart, it becomes clear that a new message is necessary that does:
- Adds a sandbox extension so the web process can access fontd
- Calls CTFontManagerEnableAllUserFonts() to cause platform font routines to use fontd
So that's exactly what this patch does. It adds new WKWebView SPI,
_switchFromStaticFontRegistryToUserFontRegistry, which does these two things.
Even when we start using fontd, that doesn't allow user-installed fonts in WebKit in Safari, because we'll still
continue to use kCTFontUserInstalledAttribute / kCTFontFallbackOptionAttribute, just like we do in Big Sur.
Test: WebKit.MobileAssetSandboxCheck
- UIProcess/API/C/WKPreferencesRefPrivate.h: Correct the comment.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _switchFromStaticFontRegistryToUserFontRegistry]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::switchFromStaticFontRegistryToUserFontRegistry):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
(WebKit::customizedReaderConfiguration): Deleted.
(WebKit::disableStaticFontRegistry): Deleted.
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::~WebPage):
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::switchFromStaticFontRegistryToUserFontRegistry):
- WebProcess/glib/WebProcessGLib.cpp:
(WebKit::WebProcess::switchFromStaticFontRegistryToUserFontRegistry):
- WebProcess/playstation/WebProcessPlayStation.cpp:
(WebKit::WebProcess::switchFromStaticFontRegistryToUserFontRegistry):
- WebProcess/win/WebProcessWin.cpp:
(WebKit::WebProcess::switchFromStaticFontRegistryToUserFontRegistry):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/FontRegistrySandboxCheck.mm: Copied from Source/WebKit/WebProcess/playstation/WebProcessPlayStation.cpp.
(TEST):
- 3:52 PM Changeset in webkit [274373] by
-
- 4 edits in trunk
[GPU Process] inspector/canvas/memory.html fails when GPU rendering is enabled for 2D Canvas
https://bugs.webkit.org/show_bug.cgi?id=222880
Reviewed by Tim Horton.
Source/WebCore:
RemoteImageBufferProxy has to ensure its backend is created in the GPUP
before reporting its memory cost.
- platform/graphics/ConcreteImageBuffer.h:
LayoutTests:
Enable GPUP rendering for 2D canvas for this test.
- inspector/canvas/memory.html:
- 3:14 PM Changeset in webkit [274372] by
-
- 1 copy in releases/WPE WebKit/webkit-2.31.91
WPE WebKit 2.31.91
- 3:14 PM Changeset in webkit [274371] by
-
- 4 edits in releases/WebKitGTK/webkit-2.32
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.31.91 release
.:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
- wpe/NEWS: Add release notes for 2.31.91, and also the missing ones
for 2.31.90.
- 1:47 PM Changeset in webkit [274370] by
-
- 5 edits in trunk
Enable video capture in GPUProcess by default on iOS
https://bugs.webkit.org/show_bug.cgi?id=223061
Patch by Youenn Fablet <youenn@apple.com> on 2021-03-12
Reviewed by Eric Carlson.
Source/WebKit:
Covered by existing tests.
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultCaptureVideoInGPUProcessEnabled):
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):
We need to synchronously fill the granted requests, otherwise there is a risk that
the granted requests will be cleared (on page close for instance) and then later filled
for the page that was gone.
Tools:
- TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm:
(-[GetUserMediaRepromptTestView haveStream:]):
Upgrade timeout period as GPU process capture might take longer.
- 1:33 PM Changeset in webkit [274369] by
-
- 2 edits in trunk/LayoutTests
[ MacOS wk2 ] inspector/debugger/breakpoints/resolved-dump-all-inline-script-pause-locations.html is flakey timing out
https://bugs.webkit.org/show_bug.cgi?id=221759
Uneviewed test gardening.
- platform/mac-wk2/TestExpectations: Updating test expectations to Pass Timeout while test is being looked at.
- 1:25 PM Changeset in webkit [274368] by
-
- 2 edits in trunk/Source/WTF
REGRESSION(r274327) [GLIB] 2D Canvas tests timing out after enabling GPUProces in testing
https://bugs.webkit.org/show_bug.cgi?id=223130
Reviewed by Philippe Normand.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 1:12 PM Changeset in webkit [274367] by
-
- 2 edits in trunk/LayoutTests
[ macOS Debug wk2 ] imported/w3c/web-platform-tests/wasm/webapi/instantiateStreaming-bad-imports.any.worker.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223131
Unreviewed test gardeing.
- platform/mac-wk2/TestExpectations: Updating test expectations to Pass Failure for Debug.
- 11:04 AM Changeset in webkit [274366] by
-
- 2 edits in trunk/Tools
REGRESSION: two webkitscmpy.test.svn_unittest.TestRemoteSvn tests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=223006
Reviewed by Aakash Jain.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/svn.py:
(Svn.request): Hard-code timezone delta for Subversion server.
- 11:03 AM Changeset in webkit [274365] by
-
- 6 edits2 adds in trunk
[selectors] :focus-visible matches body after keyboard event
https://bugs.webkit.org/show_bug.cgi?id=223113
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/focus-visible-001.html: Modify the test to verify
that only the element matches :focus-visible (and not the body).
- web-platform-tests/css/selectors/focus-visible-019-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-019.html: Added new test to check script focus in keyboard event,
and that again only the element matches :focus-visible (and not the body).
Source/WebCore:
Fix the bug with some changes in EventHandler::internalKeyEvent().
When you use TAB (or other key) the |element| variable in this method is the document body,
however that element is not focused (element->focused() is false).
Before this patch we were marking the element as matchin :focus-visible,
however we shouldn't do that if the element is not focused (added a condition to avoid doing that).
Apart from that this patch also fixes a related issue, if a keyboard event handler is changing focus via script
there's a part of this method that takes care of updating the |element| variable.
In that case we have to remove :focus-visible flag from the previous element, and add it to the new one.
Test: imported/w3c/web-platform-tests/css/selectors/focus-visible-001.html
Test: imported/w3c/web-platform-tests/css/selectors/focus-visible-019.html
- page/EventHandler.cpp:
(WebCore::EventHandler::internalKeyEvent):
LayoutTests:
- platform/ios/TestExpectations: Skip new test for iOS.
- 10:49 AM Changeset in webkit [274364] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, fix debug assertion on bots after r274323.
Was failing to call the completion handler in a early return case.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setQuotaLoggingEnabled):
- 10:42 AM Changeset in webkit [274363] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, partial revert of r274286 because this introduced an assertion failure.
- NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::waitUntilSyncingLocalStorageFinished):
- 10:19 AM Changeset in webkit [274362] by
-
- 12 edits in trunk/Source
Reduce maximum HashTable entry size to 400 bytes
https://bugs.webkit.org/show_bug.cgi?id=223106
Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-12
Reviewed by Youenn Fablet.
Source/WebCore:
This should reduce memory use.
- loader/ResourceLoadStatistics.h:
Source/WebKit:
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::populateFromMemoryStore):
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::pruneResources):
(WebKit::ResourceLoadStatisticsMemoryStore::aggregatedThirdPartyData const):
(WebKit::ResourceLoadStatisticsMemoryStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain const):
(WebKit::ResourceLoadStatisticsMemoryStore::markAsPrevalentIfHasRedirectedToPrevalent):
(WebKit::ResourceLoadStatisticsMemoryStore::classifyPrevalentResources):
(WebKit::ResourceLoadStatisticsMemoryStore::hasHadUserInteraction):
(WebKit::ResourceLoadStatisticsMemoryStore::setPrevalentResource):
(WebKit::ResourceLoadStatisticsMemoryStore::dumpResourceLoadStatistics):
(WebKit::ResourceLoadStatisticsMemoryStore::isPrevalentResource const):
(WebKit::ResourceLoadStatisticsMemoryStore::isVeryPrevalentResource const):
(WebKit::ResourceLoadStatisticsMemoryStore::isRegisteredAsSubresourceUnder const):
(WebKit::ResourceLoadStatisticsMemoryStore::isRegisteredAsSubFrameUnder const):
(WebKit::ResourceLoadStatisticsMemoryStore::isRegisteredAsRedirectingTo const):
(WebKit::ResourceLoadStatisticsMemoryStore::isGrandfathered const):
(WebKit::ResourceLoadStatisticsMemoryStore::ensureResourceStatisticsForRegistrableDomain):
(WebKit::ResourceLoadStatisticsMemoryStore::createEncoderFromData const):
(WebKit::ResourceLoadStatisticsMemoryStore::mergeStatistics):
(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking):
(WebKit::ResourceLoadStatisticsMemoryStore::processStatistics const):
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):
(WebKit::ResourceLoadStatisticsMemoryStore::pruneStatisticsIfNeeded):
(WebKit::ResourceLoadStatisticsMemoryStore::removeDataForDomain):
(WebKit::ResourceLoadStatisticsMemoryStore::insertExpiredStatisticForTesting):
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
- Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::addChallengeToChallengeMap):
(WebKit::AuthenticationManager::shouldCoalesceChallenge const):
(WebKit::AuthenticationManager::coalesceChallengesMatching const):
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
(WebKit::AuthenticationManager::completeAuthenticationChallenge):
- Shared/Authentication/AuthenticationManager.h:
(WebKit::AuthenticationManager::Challenge::Challenge):
- WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:
(WebKit::WebResourceLoadObserver::ensureResourceStatisticsForRegistrableDomain):
(WebKit::WebResourceLoadObserver::statisticsForURL):
(WebKit::WebResourceLoadObserver::takeStatistics):
- WebProcess/WebCoreSupport/WebResourceLoadObserver.h:
Source/WTF:
- wtf/HashTable.h:
(WTF::KeyTraits>::inlineLookup):
- 9:41 AM Changeset in webkit [274361] by
-
- 3 edits in trunk/Source/WebCore
Use refptr to PeerConnectionFactoryInterface
https://bugs.webkit.org/show_bug.cgi?id=222725
Patch by Rob Buis <rbuis@igalia.com> on 2021-03-12
Reviewed by Youenn Fablet.
Use refptr instead of reference to PeerConnectionFactoryInterface.
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::LibWebRTCMediaEndpoint):
(WebCore::LibWebRTCMediaEndpoint::addTrack):
(WebCore::LibWebRTCMediaEndpoint::createSourceAndRTCTrack):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
- 9:40 AM Changeset in webkit [274360] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed Windows crash fix after r274252.
- platform/graphics/win/GraphicsContextCGWin.cpp:
(WebCore::GraphicsContext::platformInit):
- 9:33 AM Changeset in webkit [274359] by
-
- 2 edits in trunk/LayoutTests
[MacOS wk2] imported/w3c/web-platform-tests/media-source/SourceBuffer-abort-updating.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=222210
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Updating test expectations to Pass Failure until test issues can be resolved.
- 9:22 AM WebKitGTK/2.32.x edited by
- (diff)
- 8:25 AM Changeset in webkit [274358] by
-
- 3 edits in trunk/Source/WebCore
[GStreamer] Crashes deep in GStreamer under gst_element_add_pad
https://bugs.webkit.org/show_bug.cgi?id=222763
Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-12
Reviewed by Xabier Rodriguez-Calvar.
Rely on select-streams event to configure only the first video stream of the collection
received on the bus. The select-stream decodebin3 signal is not recommended, and seems
broken anyway, because no selecting audio streams was still leading to audio decode pads
being added, leading to crashes.
- platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:
(WebCore::ImageDecoderGStreamer::InnerDecoder::handleMessage):
(WebCore::ImageDecoderGStreamer::InnerDecoder::preparePipeline):
(WebCore::ImageDecoderGStreamer::InnerDecoder::selectStream): Deleted.
- platform/graphics/gstreamer/ImageDecoderGStreamer.h:
- 8:14 AM Changeset in webkit [274357] by
-
- 4 edits in trunk/Source/WebCore
Cancel image loader events after first dispatch
https://bugs.webkit.org/show_bug.cgi?id=218556
Patch by Rob Buis <rbuis@igalia.com> on 2021-03-12
Reviewed by Ryosuke Niwa.
Cancel image loader events after first dispatch.
Also change EventSender to use WeakPtr.
- dom/EventSender.h:
(WebCore::EventSender<T>::dispatchEventSoon):
(WebCore::EventSender<T>::dispatchPendingEvents):
- loader/ImageLoader.cpp:
(WebCore::ImageLoader::dispatchPendingErrorEvent):
- loader/ImageLoader.h:
- 7:08 AM Changeset in webkit [274356] by
-
- 2 edits in trunk/Source/WebKit
[MacOS] Reenable Audio Capture in GPUProcess by default
https://bugs.webkit.org/show_bug.cgi?id=223060
Reviewed by Eric Carlson.
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultCaptureAudioInGPUProcessEnabled):
- 7:06 AM Changeset in webkit [274355] by
-
- 7 edits in trunk
Support animation of perspective-origin property
https://bugs.webkit.org/show_bug.cgi?id=223116
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Add an extra 35 PASS results.
- web-platform-tests/css/css-transforms/animation/perspective-origin-interpolation-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
While we have support for animating "perspective-origin-x" and "perspective-origin-y", which are
not part of the CSS Transforms standard, we do not support animation of "perspective-origin",
which we consider in WebKit to be a shorthand property. All that is needed to address this is to
add CSSPropertyPerspectiveOrigin in the list of animatable shorthand properties when creating
animation wrappers.
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 7:02 AM Changeset in webkit [274354] by
-
- 5 edits in trunk/Source
[GTK] GTK4 crashes with XVFB: GLXBadWindow
https://bugs.webkit.org/show_bug.cgi?id=223108
Reviewed by Žan Doberšek.
Source/WebCore:
- platform/graphics/x11/PlatformDisplayX11.cpp:
(WebCore::PlatformDisplayX11::supportsGLX const): Check if GLX extension is supported and return the base error code.
- platform/graphics/x11/PlatformDisplayX11.h:
Source/WebKit:
Handle GLXBadWindow errors in AcceleratedBackingStoreX11.
- UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
(WebKit::AcceleratedBackingStoreX11::checkRequirements):
(WebKit::glxErrorCode):
(WebKit::AcceleratedBackingStoreX11::~AcceleratedBackingStoreX11):
(WebKit::AcceleratedBackingStoreX11::update):
- 6:33 AM Changeset in webkit [274353] by
-
- 18 edits in trunk
Blending lengths of different types should be allowed outside of the [0-1] range
https://bugs.webkit.org/show_bug.cgi?id=223115
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Add an extra 57 PASS results.
- web-platform-tests/css/css-backgrounds/animations/border-image-width-interpolation-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-radius-interpolation-expected.txt:
- web-platform-tests/css/css-shapes/animation/shape-outside-composition-expected.txt:
- web-platform-tests/css/css-sizing/animation/height-composition-expected.txt:
- web-platform-tests/css/css-sizing/animation/max-height-composition-expected.txt:
- web-platform-tests/css/css-sizing/animation/max-width-composition-expected.txt:
- web-platform-tests/css/css-sizing/animation/min-height-composition-expected.txt:
- web-platform-tests/css/css-sizing/animation/min-width-composition-expected.txt:
- web-platform-tests/css/css-sizing/animation/width-composition-expected.txt:
- web-platform-tests/css/css-sizing/animation/width-interpolation-expected.txt:
- web-platform-tests/css/css-transforms/animation/perspective-origin-interpolation-expected.txt:
- web-platform-tests/css/css-transforms/animation/transform-origin-interpolation-expected.txt:
- web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt:
- web-platform-tests/css/css-transforms/animation/translate-interpolation-expected.txt:
- web-platform-tests/css/css-values/animations/calc-interpolation-expected.txt:
Source/WebCore:
- platform/Length.cpp:
(WebCore::blendMixedTypes):
- 6:25 AM Changeset in webkit [274352] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed, reverting r274305.
https://bugs.webkit.org/show_bug.cgi?id=223119
Caused several debug layout-tests to crash
Reverted changeset:
"[macOS] Selecting text via mouse drag in image documents
shouldn't trigger click events"
https://bugs.webkit.org/show_bug.cgi?id=223075
https://trac.webkit.org/changeset/274305
- 5:19 AM Changeset in webkit [274351] by
-
- 12 edits3 adds in trunk
Make RTCDataChannel transferable
https://bugs.webkit.org/show_bug.cgi?id=222965
Reviewed by Eric Carlson.
Source/WebCore:
To transfer a RTCDataChannel to workers, we need to create a new RTCDataChannel using the same data channel backend, which is cross-thread compatible.
We need to make sure we do not miss forwarding any event. And also it is a burden to transfer a data channel that is sending data (say blobs for instance).
For that reason, we currently only allow transferring data channels in the event loop task that created the data channel.
We add the infrastructure to transfer RTCDataChannel in SerializedScriptValue.
This is done by serializing an index to the transfered data channel. The transfered data channel contains state information and an identifier which allows to know
in which process is the data channel to transfer and an identifier to retrieve it from a global map.
We also need to update the code so that data channel backends can change of client.
For that purpose, we delay setting the client to when they are no longer transferable.
At that time, we register the data channel as client to its backed.
In the meantime, the data channel backend will store all messages received so far.
Once client is set, the data channel backend will deliver all messages and state changes to the data channel.
Since client might want to get messages in a worker thread, the client now also registers its context identifier,
which is used to post a task to the right thread.
Test: http/wpt/webrtc/datachannel-worker.html
- Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::create):
(WebCore::RTCDataChannel::RTCDataChannel):
(WebCore::m_contextIdentifier):
(WebCore::RTCDataChannel::close):
(WebCore::rtcDataChannelLocalMap):
(WebCore::RTCDataChannel::canDetach const):
(WebCore::RTCDataChannel::detach):
(WebCore::createClosedChannel):
- Modules/mediastream/RTCDataChannel.h:
(WebCore::DetachedRTCDataChannel::DetachedRTCDataChannel):
(WebCore::DetachedRTCDataChannel::memoryCost const):
- Modules/mediastream/RTCDataChannel.idl:
- Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:
(WebCore::LibWebRTCDataChannelHandler::LibWebRTCDataChannelHandler):
(WebCore::LibWebRTCDataChannelHandler::~LibWebRTCDataChannelHandler):
(WebCore::LibWebRTCDataChannelHandler::setClient):
(WebCore::LibWebRTCDataChannelHandler::close):
(WebCore::LibWebRTCDataChannelHandler::OnStateChange):
(WebCore::LibWebRTCDataChannelHandler::checkState):
(WebCore::LibWebRTCDataChannelHandler::OnMessage):
(WebCore::LibWebRTCDataChannelHandler::OnBufferedAmountChange):
(WebCore::LibWebRTCDataChannelHandler::postTask):
- Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::serialize):
(WebCore::CloneSerializer::CloneSerializer):
(WebCore::CloneSerializer::fillTransferMap):
(WebCore::CloneSerializer::dumpRTCDataChannel):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::deserialize):
(WebCore::CloneDeserializer::CloneDeserializer):
(WebCore::CloneDeserializer::readRTCDataChannel):
(WebCore::CloneDeserializer::readTerminal):
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::computeMemoryCost const):
(WebCore::SerializedScriptValue::create):
(WebCore::canDetachRTCDataChannels):
(WebCore::SerializedScriptValue::deserialize):
- bindings/js/SerializedScriptValue.h:
- platform/mediastream/RTCDataChannelHandler.h:
(WebCore::RTCDataChannelInit::isolatedCopy const):
- platform/mock/RTCDataChannelHandlerMock.cpp:
(WebCore::RTCDataChannelHandlerMock::setClient):
- platform/mock/RTCDataChannelHandlerMock.h:
LayoutTests:
- http/wpt/webrtc/datachannel-worker-expected.txt: Added.
- http/wpt/webrtc/datachannel-worker.html: Added.
- http/wpt/webrtc/datachannel-worker.js: Added.
(onmessage):
- 4:40 AM Changeset in webkit [274350] by
-
- 2 edits in trunk/Tools
Unreviewed: Update Alicia's status to reviewer
https://bugs.webkit.org/show_bug.cgi?id=223114
- Scripts/webkitpy/common/config/contributors.json:
- 4:36 AM Changeset in webkit [274349] by
-
- 1 copy in releases/WebKitGTK/webkit-2.31.91
WebKitGTK 2.31.91
- 4:35 AM Changeset in webkit [274348] by
-
- 4 edits in releases/WebKitGTK/webkit-2.32
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.31.91 release
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.31.91.
- 3:06 AM Changeset in webkit [274347] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore/platform/gtk/po
Merge r274063 - [GTK] Update Simplified Chinese translation
https://bugs.webkit.org/show_bug.cgi?id=222845
Patch by Dingzhong Chen <wsxy162@gmail.com> on 2021-03-08
Reviewed by Carlos Garcia Campos.
- zh_CN.po:
- 3:06 AM Changeset in webkit [274346] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Tools/buildstream
Merge r274277 - [Flatpak SDK] Update libsoup3
https://bugs.webkit.org/show_bug.cgi?id=223066
Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-11
Reviewed by Carlos Garcia Campos.
- elements/sdk/libsoup3.bst: Bump to version 2.99.2.
- 3:06 AM Changeset in webkit [274345] by
-
- 11 edits in releases/WebKitGTK/webkit-2.32
Merge r274330 - [GTK] Bump API version when building with libsoup3
https://bugs.webkit.org/show_bug.cgi?id=223067
Reviewed by Adrian Perez de Castro.
.:
Use 4.1 as the API version when building with soup3 and keep using 5.0 for GTK4. Also make it impossible to
build with GTK4 and soup2.
- Source/PlatformGTK.cmake:
- Source/cmake/OptionsGTK.cmake:
Source/JavaScriptCore:
Use WEBKITGTK_API_DOC_VERSION instead of WEBKITGTK_API_VERSION for the gtkdoc configuration file.
- PlatformGTK.cmake:
Source/WebKit:
- PlatformGTK.cmake: Use WEBKITGTK_API_DOC_VERSION instead of WEBKITGTK_API_VERSION for gtkdoc config files
- gtk/webkit2gtk-web-extension.pc.in: Add variables for gtk pkg-config file and libsoup version.
- gtk/webkit2gtk.pc.in: Ditto.
Tools:
Use WEBKITGTK_API_DOC_VERSION instead of WEBKITGTK_API_VERSION.
- gtk/manifest.txt.in:
- 3:06 AM Changeset in webkit [274344] by
-
- 8 edits in releases/WebKitGTK/webkit-2.32
Merge r274275 - Unreviewed. [GTK][WPE] Bump libsoup3 version to 2.99.3
.:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
Source/WebCore:
Bring back support for logging body data.
- platform/network/soup/SoupNetworkSession.cpp:
(WebCore::SoupNetworkSession::setupLogger):
Source/WTF:
- wtf/Platform.h:
- wtf/URL.h:
- 3:06 AM Changeset in webkit [274343] by
-
- 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit
[WPE] WebKitMediaKeySystemPermissionRequest.h missing in top-level header
https://bugs.webkit.org/show_bug.cgi?id=223076
Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-11
Reviewed by Adrian Perez de Castro.
- UIProcess/API/wpe/WebKitMediaKeySystemPermissionRequest.h: Fix copy/paste mistake from GTK version of this
header.
- UIProcess/API/wpe/webkit.h: The WebKitMediaKeySystemPermissionRequest header has to be
included here so apps can consume this new API.
- 3:06 AM Changeset in webkit [274342] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit
Merge r274290 - REGRESSION(r274270): Broke WebKitSecurityOrigin docs
https://bugs.webkit.org/show_bug.cgi?id=223077
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-11
Reviewed by Darin Adler.
- UIProcess/API/glib/WebKitSecurityOrigin.cpp:
- 3:06 AM Changeset in webkit [274341] by
-
- 9 edits in releases/WebKitGTK/webkit-2.32
Merge r274270 - REGRESSION(r272469): [WPE][GTK] Epiphany UI process crashes when downloading PDFs, WebKitSecurityOrigin should use SecurityOriginData
https://bugs.webkit.org/show_bug.cgi?id=222943
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-11
Reviewed by Alex Christensen.
Source/WebKit:
Since r272469, WebCore::SecurityOrigin no longer accepts custom protocols except those
registered with LegacySchemeRegistry. WebPage registers all custom protocols, but
WebPageProxy does not, so WebCore::SecurityOrigin now only supports custom protocols in the
web process, not the UI process. This causes Epiphany to crash when the protocol of its
WebKitSecurityOrigin is unexpectedly NULL.
Alex wants to reduce usage of WebCore::SecurityOrigin outside the web process, so instead of
registering custom protocols with LegacySchemeRegistry in the UI process -- making it harder
to eventually get rid of LegacySchemeRegistry -- we will transition WebKitSecurityOrigin
from WebCore::SecurityOrigin to WebCore::SecurityOriginData, which is a simple data store
for <protocol, host, port>. This is mostly sufficient to implement WebKitSecurityOrigin,
except for webkit_security_origin_is_opaque(). I considered multiple ways to handle this,
but ultimately decided to just deprecate it. Epiphany is the only client using this function
in order to implement a WebKitSecurityOrigin equality operation, and it does so using
origins that should never be opaque, so there are no compatibility concerns here.
- UIProcess/API/glib/WebKitAuthenticationRequest.cpp:
(webkit_authentication_request_get_security_origin):
- UIProcess/API/glib/WebKitSecurityOrigin.cpp:
(_WebKitSecurityOrigin::_WebKitSecurityOrigin):
(webkitSecurityOriginCreate):
(webkitSecurityOriginGetSecurityOriginData):
(webkit_security_origin_new):
(webkit_security_origin_new_for_uri):
(webkit_security_origin_get_protocol):
(webkit_security_origin_get_host):
(webkit_security_origin_get_port):
(webkit_security_origin_is_opaque):
(webkit_security_origin_to_string):
(webkitSecurityOriginGetSecurityOrigin): Deleted.
- UIProcess/API/glib/WebKitSecurityOriginPrivate.h:
- UIProcess/API/glib/WebKitWebContext.cpp:
(addOriginToMap):
- UIProcess/API/gtk/WebKitSecurityOrigin.h:
- UIProcess/API/wpe/WebKitSecurityOrigin.h:
Tools:
Add a test to ensure security origins can be successfully created for custom protocols.
Also, update the tests to accomodate the deprecation of webkit_security_origin_is_opaque().
Notably, origins for data:// URIs are no longer special.
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp:
(testSecurityOriginBasicConstructor):
(testSecurityOriginURIConstructor):
(testSecurityOriginDefaultPort):
(testSecurityOriginFileURI):
(testSecurityOriginDataURI):
(testCustomProtocolOrigin):
(beforeAll):
(testOpaqueSecurityOrigin): Deleted.
- 3:06 AM Changeset in webkit [274340] by
-
- 6 edits in releases/WebKitGTK/webkit-2.32
Merge r274210 - [WPE][GTK] Introduce NeedsUnbrandedUserAgent quirk and use it for accounts.google.com, docs.google.com, and drive.google.com
https://bugs.webkit.org/show_bug.cgi?id=222978
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-10
Reviewed by Carlos Garcia Campos.
Source/WebCore:
This is a follow-up to bug #222039. I simplified our Google user agent quirks too much in
that bug, breaking accounts.google.com, docs.google.com, and drive.google.com for clients
that set application name and version in the user agent. What we really need here is an
empty quirk in order to ensure our most boring standard user agent is used without any
application branding or customizations. But we no longer need to fake platform or browser,
as was required in the past.
Additionaly, clean up the code a bit. We shouldn't need to compute domain and baseDomain
many separate times, for instance. There's also no need to perform string operations to
add the WebKit version to the user agent, since the version has been frozen for several
years now and is likely to remain frozen indefinitely. Finally, remove some forgotten
leftovers of our Internet Explorer and Windows quirks that were previously used for Google
Docs.
- platform/UserAgentQuirks.cpp:
(WebCore::urlRequiresChromeBrowser):
(WebCore::urlRequiresFirefoxBrowser):
(WebCore::urlRequiresMacintoshPlatform):
(WebCore::urlRequiresUnbrandedUserAgent):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):
(WebCore::isGoogle): Deleted.
(WebCore::urlRequiresLinuxDesktopPlatform): Deleted.
- platform/UserAgentQuirks.h:
- platform/glib/UserAgentGLib.cpp:
(WebCore::buildUserAgentString):
(WebCore::standardUserAgent):
(WebCore::standardUserAgentForURL):
(WebCore::versionForUAString): Deleted.
Tools:
- TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::assertUserAgentForURLHasEmptyQuirk):
(TestWebKitAPI::TEST):
(TestWebKitAPI::assertUserAgentForURLHasLinuxPlatformQuirk): Deleted.
- 3:05 AM Changeset in webkit [274339] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r274073 - Unreviewed, reverting r273197.
https://bugs.webkit.org/show_bug.cgi?id=222909
Revert of r273084 broke building on Linux platforms
Reverted changeset:
"Remove unused isGoogle function"
https://bugs.webkit.org/show_bug.cgi?id=222227
https://trac.webkit.org/changeset/273197
- 3:05 AM Changeset in webkit [274338] by
-
- 5 edits in releases/WebKitGTK/webkit-2.32
Merge r274070 - Unreviewed, reverting r273084.
https://bugs.webkit.org/show_bug.cgi?id=222905
User agent quirks still needed after all
Reverted changeset:
"[GTK] Remove all Google user agent quirks except for Google
Docs"
https://bugs.webkit.org/show_bug.cgi?id=222039
https://trac.webkit.org/changeset/273084
- 3:05 AM Changeset in webkit [274337] by
-
- 5 edits in releases/WebKitGTK/webkit-2.32
Merge r273997 - Regression(r268097): WKWebView.URL is nil in the processDidTerminate delegate
https://bugs.webkit.org/show_bug.cgi?id=222809
Reviewed by Michael Catanzaro.
Source/WebKit:
There was a PageLoadState::Transaction in resetStateAfterProcessTermination() that
was previously making sure we would not clear the WebView's URL before calling the
processDidTerminate client delegate. Now that we call the client delegate in a
separate function (WebPageProxy::dispatchProcessDidTerminate), we need to make move
the PageLoadState::Transaction to the caller in
WebProcessProxy::processDidTerminateOrFailedToLaunch(), so that its scope covers
both resetStateAfterProcessTermination() & dispatchProcessDidTerminate() calls.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resetStateAfterProcessTermination):
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm:
(TEST):
- 3:05 AM Changeset in webkit [274336] by
-
- 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit
Merge r273713 - Have WebProcessProxy::requestTermination() call processDidTerminateOrFailedToLaunch()
https://bugs.webkit.org/show_bug.cgi?id=222577
Reviewed by Geoffrey Garen.
Have WebProcessProxy::requestTermination() call processDidTerminateOrFailedToLaunch() instead of duplicating
the code. It was error-prone to have 2 separate code paths whether the process exited due to a crash or a
termination request. It led to Bug 222574 for example because we added some logic to remove the process from
the cache in processDidTerminateOrFailedToLaunch() but had failed to do so in requestTermination().
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didClose):
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
(WebKit::WebProcessProxy::didFinishLaunching):
(WebKit::WebProcessProxy::requestTermination):
- UIProcess/WebProcessProxy.h:
- 3:05 AM Changeset in webkit [274335] by
-
- 3 edits3 adds in releases/WebKitGTK/webkit-2.32
Merge r273905 - In case of POST navigation redirected by a 302, the 'Origin' header is kept in the redirected request
https://bugs.webkit.org/show_bug.cgi?id=222653
<rdar://problem/74983521>
Reviewed by Alex Christensen.
Source/WebCore:
Remove Origin header if the navigation request goes from POST to GET.
This aligns with other browsers and removes some known interop issues.
This is consistent with WebKit not sending Origin headers for GET navigations.
Test: http/wpt/fetch/navigation-post-to-get-origin.html
- loader/DocumentLoader.cpp:
(WebCore::isRedirectToGetAfterPost):
(WebCore::DocumentLoader::willSendRequest):
LayoutTests:
- http/wpt/fetch/echo-origin.py: Added.
- http/wpt/fetch/navigation-post-to-get-origin-expected.txt: Added.
- http/wpt/fetch/navigation-post-to-get-origin.html: Added.
- 3:05 AM Changeset in webkit [274334] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WTF
Merge r273841 - std::is_literal_type causes -Wdeprecated-declarations warning with GCC 11
https://bugs.webkit.org/show_bug.cgi?id=220662
<rdar://problem/73509470>
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-03
Reviewed by Darin Adler.
Ignore the warning. It would be better to not use the deprecated std::is_literal_type, but
this works for now.
- wtf/Variant.h:
- 3:05 AM Changeset in webkit [274333] by
-
- 15 edits1 move7 adds in releases/WebKitGTK/webkit-2.32
Merge r273820 - Report the correct document uri in the case of a ContentSecurityPolicyClient
https://bugs.webkit.org/show_bug.cgi?id=222489
<rdar://problem/73774118>
Reviewed by Brent Fulgham.
Source/WebCore:
Tests: http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect.html
http/tests/security/contentSecurityPolicy/report-document-uri-blob.html
Previously we were setting the document URI to be the blocked URI in
the case where we were using a ContentSecurityPolicyClient and didn't
have access to the document URL. This patch passes the document URL
to the network process when loading a resource so we can properly set
the document URI in this case.
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::shouldReportProtocolOnly):
(WebCore::ContentSecurityPolicy::deprecatedURLForReporting const):
(WebCore::ContentSecurityPolicy::reportViolation const):
Follow spec guidelines https://www.w3.org/TR/CSP2/#violation-reports
and set the document URI to be the URI's scheme if it is a globally
unique identifier.
In the case where we are using a client and don't have the document
URL, we should at least strip the blocked URL before reporting to align
with the spec.
- page/csp/ContentSecurityPolicy.h:
(WebCore::ContentSecurityPolicy::setDocumentURL):
Source/WebKit:
Pass the document URL from the Network Process when we schedule a load
in case we need to report a CSP violation in NetworkLoadChecker.
- NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::contentSecurityPolicy):
The regular toString() method sets file:// URLs to null. We should use
toRawString() so we can report the scheme if the source origin is a
local file, as per the W3C spec.
- NetworkProcess/NetworkLoadChecker.h:
- NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):
- NetworkProcess/NetworkResourceLoadParameters.h:
- NetworkProcess/NetworkResourceLoader.cpp:
- NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::PingLoad):
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
Tools:
Rename OverrideContentSecurityPolicy.mm to ContentSecurityPolicy.mm
so we can use it for more general purpose CSP testing.
Add a test for document-uri reporting for file:, data: and about: protocols.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/ContentSecurityPolicy.mm: Renamed from Tools/TestWebKitAPI/Tests/WebKitCocoa/OverrideContentSecurityPolicy.mm.
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/csp-document-uri-report.html: Added.
LayoutTests:
Layout test coverage for redirects using a ContentSecurityPolicyClient
and blob files.
- http/tests/security/contentSecurityPolicy/report-document-uri-blob-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/report-document-uri-blob.html: Added.
- http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect.html: Added.
- platform/mac-wk1/http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt: Added.
- platform/win/http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt: Added.
- platform/win/TestExpectations:
Blob URLs timeout on win.
- 3:05 AM Changeset in webkit [274332] by
-
- 10 edits in releases/WebKitGTK/webkit-2.32
Merge r273735 - REGRESSION(r263094): [GTK][WPE] API test /webkit/WebKitWebContext/languages is failing
https://bugs.webkit.org/show_bug.cgi?id=188111
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-03-02
Reviewed by Michael Catanzaro.
Source/WebKit:
The GLib API allows to change the user preferred languages after the web process is created. Since r263094 we
are no loner sending the new overrides to the web process. Instead of calling overrideUserPreferredLanguages()
we now set the overrides in the WebProcessPool configuration, so that we can remove the language observer.
- UIProcess/API/glib/WebKitWebContext.cpp:
(webkit_web_context_set_preferred_languages): Use WebProcessPool::setOverrideLanguages() instead of
overrideUserPreferredLanguages().
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::WebProcessPool) Remove the language observer registration.
(WebKit::WebProcessPool::~WebProcessPool): Remove the language observer unregistration.
(WebKit::WebProcessPool::setOverrideLanguages): Update the language overrides in the configuration and notify
all processes.
(WebKit::WebProcessPool::languageChanged): Deleted.
- UIProcess/WebProcessPool.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::userPreferredLanguagesChanged const): Call overrideUserPreferredLanguages() again here.
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
Tools:
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:
(testWebContextLanguages): Invalid locale is ignored now instead of throwing a exception.
- TestWebKitAPI/glib/TestExpectations.json: Remove test expectation now that it passes again.
- 3:05 AM Changeset in webkit [274331] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit
Merge r273643 - [GTK] Fails to build in i386: static assertion failed: divisor must be a power of two
https://bugs.webkit.org/show_bug.cgi?id=222480
Reviewed by Carlos Garcia Campos.
- Platform/IPC/StreamConnectionBuffer.h:
(IPC::StreamConnectionBuffer::headerSize):
- 1:31 AM Changeset in webkit [274330] by
-
- 11 edits in trunk
[GTK] Bump API version when building with libsoup3
https://bugs.webkit.org/show_bug.cgi?id=223067
Reviewed by Adrian Perez de Castro.
.:
Use 4.1 as the API version when building with soup3 and keep using 5.0 for GTK4. Also make it impossible to
build with GTK4 and soup2.
- Source/PlatformGTK.cmake:
- Source/cmake/OptionsGTK.cmake:
Source/JavaScriptCore:
Use WEBKITGTK_API_DOC_VERSION instead of WEBKITGTK_API_VERSION for the gtkdoc configuration file.
- PlatformGTK.cmake:
Source/WebKit:
- PlatformGTK.cmake: Use WEBKITGTK_API_DOC_VERSION instead of WEBKITGTK_API_VERSION for gtkdoc config files
- gtk/webkit2gtk-web-extension.pc.in: Add variables for gtk pkg-config file and libsoup version.
- gtk/webkit2gtk.pc.in: Ditto.
Tools:
Use WEBKITGTK_API_DOC_VERSION instead of WEBKITGTK_API_VERSION.
- gtk/manifest.txt.in:
- 1:19 AM Changeset in webkit [274329] by
-
- 8 edits in trunk
Fix interpolation of perspective property
https://bugs.webkit.org/show_bug.cgi?id=223111
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Add an extra 59 PASS results, although we also have 18 new FAIL results. Of those
new failures, 16 are due to what I believe to be an issue in the WPT test and I filed
https://github.com/web-platform-tests/wpt/pull/28036 to address this. With this change
in the test, we pass all perspective interpolation tests.
- web-platform-tests/css/css-transforms/animation/perspective-composition-expected.txt:
- web-platform-tests/css/css-transforms/animation/perspective-interpolation-expected.txt:
Source/WebCore:
In order to correctly interplate the "perspective" CSS property, we must not interpolate
between "none" values and lengths. To do this, we add a new wrapper for this property with
a canInterpolate() implementation that uses RenderStyle::hasPerspective() to determine
whether we're dealing with a "none" value.
We also had to make a change to the way the "none" value is represented internally, since it
used to be 0 although the spec (https://drafts.csswg.org/css-transforms-2/#perspective-property)
says "perspective: 0 in a stylesheet will still serialize back as 0". So we now change the
initial value to be -1, which is fine since negative values are otherwise not allowed.
To correctly support this, we must also change consumePerspective() to no longer disallow the
0 value at parse time.
- animation/CSSPropertyAnimation.cpp:
(WebCore::PerspectiveWrapper::PerspectiveWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumePerspective):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::hasPerspective const):
(WebCore::RenderStyle::initialPerspective):
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertPerspective):
Mar 11, 2021:
- 11:14 PM Changeset in webkit [274328] by
-
- 2 edits in trunk/Source/WTF
REGRESSION (r267775): Web Share API Level 2 is incorrectly disabled
https://bugs.webkit.org/show_bug.cgi?id=223110
Reviewed by Simon Fraser.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
Through a series of minor mishaps related to r267623 and r267775,
the current state of the default value of WebShareFileAPIEnabled
in modern WebKit does not match what it was changed to in r267762
(is it now instead off everywhere).
Fix this regression by copying the condition from WebShareEnabled.
- 10:57 PM Changeset in webkit [274327] by
-
- 13 edits in trunk
[GPUP] Enable 2D Canvas in layout tests by default
https://bugs.webkit.org/show_bug.cgi?id=222835
Reviewed by Simon Fraser.
Source/WTF:
Move UseGPUProcessForCanvasRenderingEnabled from WebPreferencesInternal
to WebPreferencesExperimental so that the WebKitTestRunner will turn it
on by default.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- Scripts/Preferences/WebPreferencesInternal.yaml:
LayoutTests:
Some of the canvas layout tests are still failing when GPUP is enabled
for 2D Canvas. Skip these tests for now.
- TestExpectations:
- gpu-process/TestExpectations:
- http/tests/canvas/color-fonts/fill-gradient-sbix-2.html:
- http/tests/canvas/color-fonts/fill-gradient-sbix-3.html:
- http/tests/canvas/color-fonts/fill-gradient-sbix-4.html:
- http/tests/canvas/color-fonts/stroke-gradient-sbix-2.html:
- http/tests/canvas/color-fonts/stroke-gradient-sbix-3.html:
- http/tests/canvas/color-fonts/stroke-gradient-sbix-4.html:
webkit.org/b/222881
- inspector/canvas/memory.html:
webkit.org/b/222880
- 9:56 PM Changeset in webkit [274326] by
-
- 2 edits in trunk/Source/WebCore
[GPU Process] Encoding buffer for DisplayList items should be aligned to 8 bytes
https://bugs.webkit.org/show_bug.cgi?id=223096
Reviewed by Simon Fraser.
Ensure the static array in ItemBuffer::append() is aligned to 8 bytes.
So each member in the encoded DisplayList::Item can be aligned to its
alignment requirement
- platform/graphics/displaylists/DisplayListItemBuffer.h:
(WebCore::DisplayList::ItemBuffer::append):
- 9:43 PM Changeset in webkit [274325] by
-
- 9 edits in trunk/Source
Adopt VM_FLAGS_PERMANENT for the config vm mapping
https://bugs.webkit.org/show_bug.cgi?id=222086
<rdar://74402690>
Reviewed by Yusuke Suzuki and Mark Lam.
Source/JavaScriptCore:
- runtime/JSCConfig.h:
(JSC::Config::configureForTesting):
Source/WebKit:
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
(WebKit::XPCServiceMain):
Source/WTF:
- wtf/PlatformHave.h:
- wtf/Threading.cpp:
(WTF::initialize):
- wtf/WTFConfig.cpp:
(WTF::setPermissionsOfConfigPage):
- wtf/WTFConfig.h:
(WTF::setPermissionsOfConfigPage):
- 8:48 PM Changeset in webkit [274324] by
-
- 25 edits in trunk/Source
Introduce ensureOnMainThread()
https://bugs.webkit.org/show_bug.cgi?id=223105
Reviewed by Darin Adler.
Introduce ensureOnMainThread(), similarly to the recently added ensureOnMainThreadRunLoop(). It runs
the task synchronously when on the main thread, otherwise dispatches the task to the main thread.
Source/WebCore:
- accessibility/AccessibilityObjectInterface.h:
(WebCore::Accessibility::performFunctionOnMainThread):
(WebCore::Accessibility::retrieveValueFromMainThread):
(WebCore::Accessibility::retrieveAutoreleasedValueFromMainThread):
- dom/MessagePort.cpp:
(WebCore::MessagePort::close):
- dom/messageports/MessagePortChannelProviderImpl.cpp:
(WebCore::MessagePortChannelProviderImpl::createNewMessagePortChannel):
(WebCore::MessagePortChannelProviderImpl::entangleLocalPortInThisProcessToRemote):
(WebCore::MessagePortChannelProviderImpl::messagePortDisentangled):
(WebCore::MessagePortChannelProviderImpl::messagePortClosed):
(WebCore::MessagePortChannelProviderImpl::postMessageToRemote):
(WebCore::MessagePortChannelProviderImpl::takeAllMessagesForPort):
(WebCore::MessagePortChannelProviderImpl::checkRemotePortForActivity):
(WebCore::MessagePortChannelProviderImpl::performActionOnMainThread): Deleted.
- dom/messageports/MessagePortChannelProviderImpl.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::enqueueTaskForDispatcher):
- page/WheelEventTestMonitor.cpp:
(WebCore::WheelEventTestMonitor::scheduleCallbackCheck):
- platform/GenericTaskQueue.cpp:
(WebCore::TaskDispatcher<Timer>::postTask):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(ensureOnMainThread): Deleted.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(-[WebRootSampleBufferBoundsChangeListener observeValueForKeyPath:ofObject:change:context:]):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::invalidateFontCache):
- platform/graphics/cocoa/WebCoreDecompressionSession.mm:
(WebCore::WebCoreDecompressionSession::maybeBecomeReadyForMoreMediaData):
- platform/mediastream/CaptureDeviceManager.cpp:
(WebCore::CaptureDeviceManager::deviceChanged):
- platform/mediastream/RealtimeOutgoingVideoSource.cpp:
(WebCore::RealtimeOutgoingVideoSource::applyRotation):
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioCaptureSourceFactory::beginInterruption):
(WebCore::CoreAudioCaptureSourceFactory::endInterruption):
(WebCore::CoreAudioCaptureSourceFactory::scheduleReconfiguration):
- platform/network/cocoa/WebCoreNSURLSession.mm:
(-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:completionHandler:]):
- platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::runOnMainThread):
Source/WebKitLegacy:
- Storage/StorageTracker.cpp:
(WebKit::StorageTracker::setOriginDetails):
Source/WTF:
- wtf/MainThread.cpp:
(WTF::ensureOnMainThread):
- wtf/MainThread.h:
- wtf/ThreadSafeRefCounted.h:
(WTF::ThreadSafeRefCounted::deref const):
- wtf/text/cf/StringImplCF.cpp:
(WTF::StringWrapperCFAllocator::deallocate):
- wtf/unix/MemoryPressureHandlerUnix.cpp:
(WTF::MemoryPressureHandler::triggerMemoryPressureEvent):
- 8:42 PM Changeset in webkit [274323] by
-
- 26 edits in trunk
Add some logging to help debug flaky quota tests
https://bugs.webkit.org/show_bug.cgi?id=222995
Patch by Sihui Liu <sihui_liu@appe.com> on 2021-03-11
Reviewed by Youenn Fablet.
Source/WebCore:
http/tests/IndexedDB/storage-limit* have been flaky on bots since they were added. Add an option to allow
printing some logging in these tests.
No new test as no behavior change in quota management.
- storage/StorageQuotaManager.cpp:
(WebCore::StorageQuotaManager::requestSpaceOnBackgroundThread):
(WebCore::StorageQuotaManager::tryGrantRequest):
(WebCore::StorageQuotaManager::setLoggingEnabled):
- storage/StorageQuotaManager.h:
Source/WebKit:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setQuotaLoggingEnabled):
(WebKit::NetworkProcess::storageQuotaManager):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreSetQuotaLoggingEnabled):
- UIProcess/API/C/WKWebsiteDataStoreRef.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::setQuotaLoggingEnabled):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::setQuotaLoggingEnabled):
- UIProcess/WebsiteData/WebsiteDataStore.h:
Source/WebKitLegacy:
- Storage/InProcessIDBServer.cpp:
(InProcessIDBServer::quotaManager):
Tools:
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setQuotaLoggingEnabled):
(WTR::TestRunner::setIsSpeechRecognitionPermissionGranted):
(WTR::TestRunner::setIsMediaKeySystemPermissionGranted):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::setQuotaLoggingEnabled):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
- http/tests/IndexedDB/storage-limit-1.https.html:
- http/tests/IndexedDB/storage-limit-2.https.html:
- http/tests/IndexedDB/storage-limit.https.html:
- 7:51 PM Changeset in webkit [274322] by
-
- 12 edits in trunk/Source
Drop some unnecessary RunLoop::isMain() / IsMainRunLoop() checks
https://bugs.webkit.org/show_bug.cgi?id=223094
Reviewed by Darin Adler.
Drop some unnecessary RunLoop::isMain() / IsMainRunLoop() checks. callOnMainThread() / ensureOnMainRunLoop()
take care of calling their lambda synchronously when already on the main runloop.
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::copyTextureFromMedia):
- Shared/mac/MediaFormatReader/MediaFormatReader.cpp:
(WebKit::MediaFormatReader::startOnMainThread):
- UIProcess/API/Cocoa/WKURLSchemeTask.mm:
(getExceptionTypeFromMainRunLoop):
(-[WKURLSchemeTaskImpl dealloc]):
- WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:
(WebKit::RemoteImageDecoderAVF::createFrameImageAtIndex):
- WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:
(-[WKAccessibilityWebPageObjectBase accessibilityPluginObject]):
- 7:24 PM Changeset in webkit [274321] by
-
- 9 edits in trunk
[GPU Process] http/tests/media/hls/hls-audio-tracks-locale-selection.html fails
https://bugs.webkit.org/show_bug.cgi?id=223102
<rdar://problem/75338802>
Reviewed by Jer Noble.
Source/WebKit:
No new tests, these changes fix an existing test.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess): Set user preferred
languages if parameters.overrideLanguages isn't empty.
(WebKit::GPUConnectionToWebProcess::setUserPreferredLanguages): Set user preferred
languages.
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/GPUConnectionToWebProcess.messages.in:
- Shared/GPUProcessConnectionParameters.h: Add overrideLanguages.
(WebKit::GPUProcessConnectionParameters::encode const):
(WebKit::GPUProcessConnectionParameters::decode):
- WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::languagesChanged): Send new languages to GPU process.
(WebKit::GPUProcessConnection::GPUProcessConnection): Register for language changes.
(WebKit::GPUProcessConnection::~GPUProcessConnection): Unregister.
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeGPUProcessConnectionParameters):Add overrideLanguages.
LayoutTests:
- platform/wk2/TestExpectations: Unskip the passing test.
- 7:09 PM Changeset in webkit [274320] by
-
- 1 copy in tags/Safari-611.1.21.81.1
Tag Safari-611.1.21.81.1.
- 6:55 PM Changeset in webkit [274319] by
-
- 2 edits in branches/safari-611.1.21.81-branch/Source/WebKit
Cherry-pick r274295. rdar://problem/75344113
[macOS] Add additional telemetry to WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=223080
Reviewed by Brent Fulgham.
Add additional telemetry to WebContent sandbox on macOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274295 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:46 PM Changeset in webkit [274318] by
-
- 8 edits in branches/safari-611.1.21.81-branch/Source
Versioning.
WebKit-7611.1.21.81.1
- 6:31 PM Changeset in webkit [274317] by
-
- 1 copy in tags/Safari-611.1.21.1.9
Tag Safari-611.1.21.1.9.
- 6:27 PM Changeset in webkit [274316] by
-
- 1 copy in branches/safari-611.1.21.81-branch
New branch.
- 6:10 PM Changeset in webkit [274315] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r274264) [MacOS Wk1] compositing/visibility/iframe-visibility-hidden.html is a flakey image failure
https://bugs.webkit.org/show_bug.cgi?id=223104
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 5:37 PM Changeset in webkit [274314] by
-
- 2 edits in trunk/Tools
Adding myself as a committer in the contributors file
N/A
N/A
- Scripts/webkitpy/common/config/contributors.json: Added myself as a committer
- 4:56 PM Changeset in webkit [274313] by
-
- 2 edits in trunk/Source/WebCore
[BigSur wk1 arm64] platform/mac/fast/objc/longlongTest.html is a consistent failure.
https://bugs.webkit.org/show_bug.cgi?id=223051
Reviewed by Chris Dumez and Yusuke Suzuki.
The issue is that the test is expecting convertValueToObjcValue()'s conversion of
double to long long to follow x86_64 semantics. I don't think there's a
specification for this behavior (falls under undefined behavior). I'll just
change the code such that it emulates x86_64 behavior to placate the test.
Test covered by platform/mac/fast/objc/longlongTest.html.
- bridge/objc/objc_utility.mm:
(JSC::Bindings::convertDoubleToLongLong):
(JSC::Bindings::convertValueToObjcValue):
- 4:47 PM Changeset in webkit [274312] by
-
- 3 edits1 add in trunk
AI validator patchpoint should read heap top
https://bugs.webkit.org/show_bug.cgi?id=223052
<rdar://75087095>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/private-methods-inheritance.js: Added.
(A):
(A.prototype.x):
(B.prototype.y):
(B):
Source/JavaScriptCore:
Currently, the patchpoint doesn't specify any reads, which allows it to be moved around by B3
and can cause false positives since it at least read the structure ID for comparing values.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::validateAIState):
- 4:43 PM Changeset in webkit [274311] by
-
- 3 edits in trunk/Source/WebKit
[iOS, macOS] Re-allow WebContent sandbox permissions for specific /etc files
https://bugs.webkit.org/show_bug.cgi?id=223088
<rdar://problem/75332107>
Reviewed by Per Arne Vollan.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
- 4:22 PM Changeset in webkit [274310] by
-
- 2 edits in trunk/Source/WebKit
[macOS] override the background color of PDF documents to match PDFKit
https://bugs.webkit.org/show_bug.cgi?id=223091
<rdar://problem/74584770>
Reviewed by Tim Horton.
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::PDFPlugin):
- 4:12 PM Changeset in webkit [274309] by
-
- 1 copy in tags/Safari-612.1.5.4
Tag Safari-612.1.5.4.
- 4:08 PM Changeset in webkit [274308] by
-
- 25 edits5 adds in trunk
Align JSGlobalObject::defineOwnProperty() with the spec and other runtimes
https://bugs.webkit.org/show_bug.cgi?id=203456
Reviewed by Robin Morisset.
JSTests:
- microbenchmarks/global-var-put-to-scope.js: Added.
- stress/eval-func-decl-in-frozen-global.js:
Object.freeze() redefines all global variables as ReadOnly, including hoisted
var error.
Aligns with V8.
- stress/global-object-define-own-property-put-to-scope.js: Added.
- stress/global-object-define-own-property.js: Added.
- stress/to-this-before-arrow-function-closes-over-this-that-starts-as-lexical-environment.js:
Fix unwanted name conflict, which was an error in the original test, not an intended part of it.
Also, remove misleading comment ondefinePropertyand assert accessors are created on global object.
Aligns with V8.
LayoutTests/imported/w3c:
- web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-define-own-property-unforgeable-same-origin-expected.txt: Added.
- web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-define-own-property-unforgeable-same-origin.html: Added.
Source/JavaScriptCore:
Per spec, top-level
varbindings are non-configurable properties of the global
object [1], whileundefined/NaN/Infinityare also non-writable [2].
Prior to this change, redefining global
varbinding with accessor descriptor
failed silently (rather than throwing a TypeError); redefining with data or
generic descriptor created a structure property, which took precedence over
symbol table entry in JSGlobalObject::getOwnPropertySlot(), effectively
destroying live binding betweenglobal.fooandvar foo.
This patch re-engineers JSGlobalObject::defineOwnProperty(), fixing both issues
mentioned above. If defineOwnProperty() override is removed, there is no way
a live binding can be maintained.
In a follow-up change, JSGlobalObject::getOwnPropertySlot() will be updated to
search symbol table first, aligning it with the spec [3], put(), and
defineOwnProperty(). Apart from consistency, this will bring a mild speed-up.
To accomodate global
varbinding reassignment right after it becomes read-only
(in the same scope), this patch introduces a watchpoint that can be fired by
JSGlobalObject::defineOwnProperty(). put_to_scope performance is neutral.
Also, this patch removes unused symbolTableGet() overload and orphaned
JSGlobalObject::defineGetter() / JSGlobalObject::defineSetter() declarations.
[1]: https://tc39.es/ecma262/#sec-object-environment-records-createmutablebinding-n-d
[2]: https://tc39.es/ecma262/#sec-value-properties-of-the-global-object
[3]: https://tc39.es/ecma262/#sec-global-environment-records-getbindingvalue-n-s
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::needsDynamicLookup):
(JSC::DFG::ByteCodeParser::parseBlock):
- jit/JIT.cpp:
(JSC::JIT::emitVarReadOnlyCheck):
- jit/JIT.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_put_to_scope):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_put_to_scope):
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::defineOwnProperty):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::varReadOnlyWatchpoint):
- runtime/JSSymbolTableObject.h:
(JSC::symbolTableGet):
Source/WebCore:
This patch removes
locationspecial-casing, which a) incorrectly returned
falseif new descriptor was the same as the current one and b) failed
silently otherwise (rather than throwing a TypeError).
However, this change introduces
window/documentspecial-casing because
they exist on the structure and as symbol table entries (for performance reasons).
Aligns WebKit with Blink and partly with Gecko.
Test: imported/w3c/web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-define-own-property-unforgeable-same-origin.html
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::defineOwnProperty):
LayoutTests:
- fast/dom/Window/Location/window-override-location-using-defineGetter-expected.txt:
- fast/dom/Window/Location/window-override-location-using-defineGetter.html:
- fast/dom/Window/Location/window-override-window-using-defineGetter-expected.txt:
- fast/dom/Window/Location/window-override-window-using-defineGetter.html:
- fast/dom/getter-on-window-object2-expected.txt:
- fast/dom/getter-on-window-object2.html:
- 4:01 PM Changeset in webkit [274307] by
-
- 34 edits in trunk
Introduce WorkQueue::main() to get the main thread's work queue
https://bugs.webkit.org/show_bug.cgi?id=223087
Reviewed by Geoffrey Garen.
Introduce WorkQueue::main() to get the main thread's work queue. This allows us to port some more code from
dispatch_queue to WorkQueue. It also simplifies some code that has to deal that sometimes needs to run on
the main thread and other times on a background queue. Having a single WorkQueue type to represent both the
main thread and a background queue makes writing such code more convenient.
Source/WebCore:
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
(VideoFullscreenControllerContext::~VideoFullscreenControllerContext):
- platform/ios/wak/WebCoreThread.mm:
(WebThreadRunOnMainThread):
Source/WebKit:
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::writeFile):
(WebKit::CacheStorage::Engine::readFile):
- NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::retrieveOriginFromDirectory):
- NetworkProcess/cache/NetworkCacheIOChannel.h:
- NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:
(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::write):
- NetworkProcess/cache/NetworkCacheIOChannelCurl.cpp:
(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::write):
- NetworkProcess/cache/NetworkCacheIOChannelGLib.cpp:
(WebKit::NetworkCache::inputStreamReadReadyCallback):
(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::readSyncInThread):
(WebKit::NetworkCache::outputStreamWriteReadyCallback):
(WebKit::NetworkCache::IOChannel::write):
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::dispatchReadOperation):
(WebKit::NetworkCache::Storage::dispatchWriteOperation):
(WebKit::NetworkCache::Storage::traverse):
- Shared/Cocoa/WebKit2InitializeCocoa.mm:
(WebKit::InitializeWebKit2):
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
(WebKit::XPCServiceEventHandler):
- UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(+[WKBrowsingContextController registerSchemeForCustomProtocol:]):
(+[WKBrowsingContextController unregisterSchemeForCustomProtocol:]):
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::scheduleActivityStateUpdate):
- UIProcess/PDF/WKPDFHUDView.mm:
(-[WKPDFHUDView initWithFrame:pluginIdentifier:page:]):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::fetchDataAndApply):
- UIProcess/WebsiteData/WebsiteDataStore.h:
- UIProcess/ios/ProcessAssertionIOS.mm:
(-[WKProcessAssertionBackgroundTaskManager _scheduleReleaseTask]):
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView requestRectsToEvadeForSelectionCommandsWithCompletionHandler:]):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::willOpenAppLink):
- UIProcess/mac/ServicesController.mm:
(WebKit::ServicesController::refreshExistingServices):
Source/WebKitLegacy/mac:
- Misc/WebDownload.mm:
(callOnDelegateThreadAndWait):
Source/WTF:
- wtf/WorkQueue.cpp:
(WTF::WorkQueue::main):
- wtf/WorkQueue.h:
- wtf/cocoa/WorkQueueCocoa.cpp:
(WTF::WorkQueue::constructMainWorkQueue):
(WTF::WorkQueue::WorkQueue):
- wtf/generic/WorkQueueGeneric.cpp:
(WorkQueue::constructMainWorkQueue):
(WorkQueue::WorkQueue):
Tools:
- DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::doAsyncTask):
- DumpRenderTree/mac/DumpRenderTree.mm:
(-[DumpRenderTree _webThreadInvoked]):
- DumpRenderTree/mac/UIScriptControllerMac.mm:
(WTR::UIScriptControllerMac::doAsyncTask):
(WTR::UIScriptControllerMac::activateDataListSuggestion):
(WTR::UIScriptControllerMac::removeViewFromWindow):
(WTR::UIScriptControllerMac::addViewToWindow):
- WebKitTestRunner/mac/UIScriptControllerMac.mm:
(WTR::UIScriptControllerMac::activateDataListSuggestion):
(WTR::UIScriptControllerMac::chooseMenuAction):
(WTR::UIScriptControllerMac::activateAtPoint):
- 3:59 PM Changeset in webkit [274306] by
-
- 9 edits in trunk/Source
Use CallOnMainThreadAndWait() instead of CallAndMainThread() + BinarySemaphore
https://bugs.webkit.org/show_bug.cgi?id=223093
Reviewed by Geoffrey Garen.
Source/WebCore:
- Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::process):
- fileapi/ThreadableBlobRegistry.cpp:
(WebCore::ThreadableBlobRegistry::blobSize):
- platform/glib/FileMonitorGLib.cpp:
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:
- platform/mock/MockAudioDestinationCocoa.cpp:
Source/WebKit:
- NetworkProcess/WebStorage/StorageManagerSet.cpp:
- UIProcess/API/glib/IconDatabase.cpp:
- 3:55 PM Changeset in webkit [274305] by
-
- 3 edits in trunk/Source/WebCore
[macOS] Selecting text via mouse drag in image documents shouldn't trigger click events
https://bugs.webkit.org/show_bug.cgi?id=223075
Reviewed by Tim Horton.
Improve image overlay support in image documents, by setting
-webkit-user-select: text;on the image overlay
container andcursor: text;on each of the text children. Additionally, make it so that text selection in
image overlays doesn't trigger a click event, so that attempting to select text doesn't trigger click events.
- html/HTMLElement.cpp:
(WebCore::HTMLElement::updateWithImageExtractionResult):
- page/EventHandler.cpp:
(WebCore::EventHandler::updateSelectionForMouseDrag):
- 3:54 PM Changeset in webkit [274304] by
-
- 2 edits in trunk/Source/WTF
Use BinarySemaphore in callOnMainAndWait()
https://bugs.webkit.org/show_bug.cgi?id=223092
Reviewed by Geoffrey Garen.
Use BinarySemaphore in callOnMainAndWait() instead of a Condition, this simplifies the code
a bit. Also templatize the function to make sure we avoid any runtime checks for the
the "mainStyle".
- wtf/MainThread.cpp:
(WTF::callOnMainAndWait):
(WTF::callOnMainRunLoopAndWait):
(WTF::callOnMainThreadAndWait):
- 3:11 PM Changeset in webkit [274303] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector:
WI.Object.singleFireEventListenershould not keep a strong reference tothisObject
https://bugs.webkit.org/show_bug.cgi?id=223090
Reviewed by BJ Burg.
- UserInterface/Base/Object.js:
(WI.Object.addEventListener):
(WI.Object.singleFireEventListener):
- 3:06 PM Changeset in webkit [274302] by
-
- 3 edits in trunk/Source/WebKit
Adopt WKSeparatedModelView for <model>
https://bugs.webkit.org/show_bug.cgi?id=223085
<rdar://problem/75330603>
Reviewed by Sam Weinig.
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::makeNode):
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h:
Make a WKSeparatedModelView for <model>'s UI-side view if available.
- 2:41 PM Changeset in webkit [274301] by
-
- 10 edits in trunk
[iOS][FCR] Update disabled state for button-like controls
https://bugs.webkit.org/show_bug.cgi?id=222318
<rdar://problem/74645980>
Reviewed by Wenson Hsieh.
Source/WebCore:
Update the disabled state for all button-like controls to match the
latest specification. The default disabled state is dark gray text
on a light gray background.
- css/html.css:
(input:matches([type="button"], [type="submit"], [type="reset"]):disabled,):
(input[type="checkbox"]:indeterminate:disabled):
(input:matches([type="checkbox"], [type="radio"]):disabled):
(input:matches([type="checkbox"], [type="radio"]):checked:disabled):
- css/legacyFormControlsIOS.css:
(input[type="checkbox"]:indeterminate:disabled,):
(input:matches([type="button"], [type="submit"], [type="reset"]):disabled,):
(input[type="file"]:disabled):
(input:matches([type="date"], [type="time"], [type="datetime-local"], [type="month"], [type="week"]):disabled):
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::paintCheckbox):
(WebCore::RenderThemeIOS::paintRadio):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorationsWithFormControlRefresh):
LayoutTests:
Rebaslined tests to account for the new disabled appearance.
- platform/ios/fast/forms/basic-inputs-expected.txt:
- platform/ios/fast/forms/basic-selects-expected.txt:
- platform/ios/fast/forms/disabled-select-change-index-expected.txt:
- platform/ios/fast/forms/file/file-input-disabled-expected.txt:
- platform/ios/fast/forms/select-disabled-appearance-expected.txt:
- 2:40 PM Changeset in webkit [274300] by
-
- 2 edits in trunk/Source/WebCore
Use BinarySemaphore in SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously()
https://bugs.webkit.org/show_bug.cgi?id=223089
Reviewed by Geoffrey Garen.
Use BinarySemaphore in SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously() instead of a
Condition. This simplifies the code a bit. Also use callOnMainThread() instead of a main RunLoop
dispatch. We're in WebCore and it seems safer with regards to iOS WK1 (WebThread).
- bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously):
- 1:48 PM WebKitGTK/2.32.x edited by
- (diff)
- 1:48 PM WebKitGTK/2.32.x edited by
- (diff)
- 1:36 PM Changeset in webkit [274299] by
-
- 11 edits3 copies8 moves2 adds1 delete in trunk
[macCatalyst] media controls should have macOS styling and behavior
https://bugs.webkit.org/show_bug.cgi?id=223078
<rdar://problem/71857091>
Reviewed by Eric Carlson.
Source/WebCore:
- Modules/mediacontrols/MediaControlsHost.idl:
- Modules/mediacontrols/MediaControlsHost.h:
(WebCore::MediaControlsHost::setSimulateCompactMode): Deleted.
- Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::platform const): Added.
(WebCore::MediaControlsHost::compactMode const): Deleted.
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::mediaControlsScript):
CombinecompactModeandwindow.isIOSFamily = true;intoMediaControlsHost::platform
and add support forPLATFORM(MACCATALYST).
- Modules/modern-media-controls/controls/layout-item.js:
- Modules/modern-media-controls/controls/icon-service.js:
(IconService.prototype._fileNameAndPlatformForIconAndLayoutTraits):
- Modules/modern-media-controls/media/media-controller.js:
(MediaController.prototype.get layoutTraits):
(MediaController.prototype._supportingObjectClasses):
(MediaController.prototype._controlsClassForLayoutTraits):
(MediaController.prototype._shouldControlsBeAvailable):
Treat"maccatalyst"asLayoutTraits.macOS.
ReplaceLayoutTraits.CompactwithLayoutTraits.watchOS.
- Modules/modern-media-controls/controls/watchos-activity-indicator.js: Renamed from Modules/modern-media-controls/controls/compact-activity-indicator.js.
- Modules/modern-media-controls/controls/watchos-activity-indicator.css: Renamed from Modules/modern-media-controls/controls/compact-activity-indicator.css.
- Modules/modern-media-controls/controls/watchos-media-controls.js: Renamed from Modules/modern-media-controls/controls/compact-media-controls.js.
- Modules/modern-media-controls/controls/watchos-media-controls.css: Renamed from Modules/modern-media-controls/controls/compact-media-controls.css.
- Modules/modern-media-controls/media/watchos-media-controls-support.js: Renamed from Modules/modern-media-controls/media/compact-media-controls-support.js.
- Modules/modern-media-controls/images/watchOS/InvalidCircle.pdf: Renamed from Modules/modern-media-controls/images/watchOS/InvalidCompact.pdf.
- Modules/modern-media-controls/images/watchOS/PlayCircle.pdf: Renamed from Modules/modern-media-controls/images/watchOS/PlayCompact.pdf.
- Modules/modern-media-controls/images/watchOS/SpinnerSprite@2x.png: Renamed from Modules/modern-media-controls/images/watchOS/ActivityIndicatorSpriteCompact@2x.png.
Rename
Compact*/.compact*toWatchOS*/.watchos*.
- Modules/modern-media-controls/js-files:
- WebCore.xcodeproj/project.pbxproj:
Drive-by: Add missing JS/CSS files.
LayoutTests:
- media/modern-media-controls/watchos-media-controls/watchos-media-controls-constructor.html: Renamed from media/modern-media-controls/compact-media-controls/compact-media-controls-constructor.html.
- media/modern-media-controls/watchos-media-controls/watchos-media-controls-constructor-expected.txt: Renamed from media/modern-media-controls/compact-media-controls/compact-media-controls-constructor-expected.txt.
- media/modern-media-controls/watchos-media-controls/watchos-media-controls-layout.html: Renamed from media/modern-media-controls/compact-media-controls/compact-media-controls-layout.html.
- media/modern-media-controls/watchos-media-controls/watchos-media-controls-layout-expected.txt: Renamed from media/modern-media-controls/compact-media-controls/compact-media-controls-layout-expected.txt.
- 1:14 PM Changeset in webkit [274298] by
-
- 2 edits in branches/safari-611.1.21.1-branch/Source/WebKit
Cherry-pick r274295. rdar://problem/75290553
[macOS] Add additional telemetry to WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=223080
Reviewed by Brent Fulgham.
Add additional telemetry to WebContent sandbox on macOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274295 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:59 PM Changeset in webkit [274297] by
-
- 5 edits in trunk
Revert r260302
https://bugs.webkit.org/show_bug.cgi?id=223048
Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-11
Reviewed by Geoffrey Garen.
Source/WebKit:
r260302 was based on the faulty assumption that if we receive bytes from a server after a client certificate challenge,
it must've accepted the client certificate we provided and we should always provide this certificate to this server.
This assumption is faulty because there are servers that request a client certificate but provide a response if you do
not provide a certificate that it accepts. I'm removing this code because as part of my investigation of rdar://73974226
I found that it did not help anything, and since then I committed r269162 which did help solve that problem.
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(WebKit::NetworkSessionCocoa::clientCertificateSuggestedForHost): Deleted.
(WebKit::NetworkSessionCocoa::taskServerConnectionSucceeded): Deleted.
(WebKit::NetworkSessionCocoa::taskFailed): Deleted.
(WebKit::NetworkSessionCocoa::successfulClientCertificateForHost const): Deleted.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
(TestWebKitAPI::clientCertServer): Deleted.
(TestWebKitAPI::BlockPtr<void): Deleted.
(TestWebKitAPI::countClientCertChallenges): Deleted.
- 12:47 PM Changeset in webkit [274296] by
-
- 15 edits in trunk/Source
Replace some usage of dispatch_queue with WorkQueue now that it supports sync dispatching
https://bugs.webkit.org/show_bug.cgi?id=223073
Reviewed by Darin Adler.
Replace some usage of dispatch_queue with WorkQueue now that it supports sync dispatching
since r274286.
- Shared/Cocoa/DefaultWebBrowserChecks.mm:
(WebKit::itpQueue):
(WebKit::determineITPState):
(WebKit::doesAppHaveITPEnabled):
- 12:43 PM Changeset in webkit [274295] by
-
- 3 edits in trunk/Source/WebKit
[macOS] Add additional telemetry to WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=223080
Reviewed by Brent Fulgham.
Add additional telemetry to WebContent sandbox on macOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
- 12:37 PM Changeset in webkit [274294] by
-
- 3 edits in trunk/Source/WebKit
[WPE] WebKitMediaKeySystemPermissionRequest.h missing in top-level header
https://bugs.webkit.org/show_bug.cgi?id=223076
Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-11
Reviewed by Adrian Perez de Castro.
- UIProcess/API/wpe/WebKitMediaKeySystemPermissionRequest.h: Fix copy/paste mistake from GTK version of this
header.
- UIProcess/API/wpe/webkit.h: The WebKitMediaKeySystemPermissionRequest header has to be
included here so apps can consume this new API.
- 12:33 PM Changeset in webkit [274293] by
-
- 6 edits in trunk
Video controls stay on screen indefinitely after interacting with time scrubber
https://bugs.webkit.org/show_bug.cgi?id=223081
<rdar://problem/73935705>
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading.html
- Modules/modern-media-controls/controls/auto-hide-controller.js:
(AutoHideController):
(AutoHideController.prototype.set fadesWhileIdle):
(AutoHideController.prototype.get hasSecondaryUIAttached): Added.
(AutoHideController.prototype.set hasSecondaryUIAttached): Added.
(AutoHideController.prototype.handleEvent):
(AutoHideController.prototype.mediaControlsFadedStateDidChange):
(AutoHideController.prototype.mediaControlsBecameInvisible):
(AutoHideController.prototype.get _canFadeControls): Added.
(AutoHideController.prototype._resetAutoHideTimer):
(AutoHideController.prototype._autoHideTimerFired):
(AutoHideController.prototype._cancelNonEnforcedAutoHideTimer): Deleted.
Simplify the logic ofAutoHideControllerto always listen for"pointer*"events instead
of adding/removing them depending onset fadesWhileIdle. This was problematic because when
the media is paused,ControlsVisibilitySupportwill disablefadesWhileIdle, removing all
"pointer*"event listeners, only to re-add them as soon as the media is resumed (this is
especially bad when clicking on the time scrubber track to seek, as this will pause and then
resume the media in rapid succession). Remove_enforceAutoHideTimeras there's no case
where we wouldn't want to be able to delay/cancel the auto-hide based on user interaction.
- Modules/modern-media-controls/controls/media-controls.js:
(MediaControls.prototype.hideTracksPanel):
Now thatset hasSecondaryUIAttachedalso calls_resetAutoHideTimer, don't manually set
this.fadedand instead use the logic/timing inAutoHideController.
LayoutTests:
- media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading.html:
- media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading-expected.txt:
- 12:17 PM Changeset in webkit [274292] by
-
- 4 edits in trunk/LayoutTests
[Mac] http/tests/media/video-play-stall.html is flakey
https://bugs.webkit.org/show_bug.cgi?id=148597
<rdar://problem/22484300>
Reviewed by Jer Noble.
- http/tests/media/video-play-stall.html: Increase the amount of data loaded before
stalling because the test assumes that playback begins before the 'stalled' event
is fired, and AVFoundation has become much more conservative about predicting when
is is possible to begin playing without running out of data.
- platform/mac/TestExpectations:
- platform/wk2/TestExpectations:
- 11:27 AM Changeset in webkit [274291] by
-
- 7 edits in trunk
Use tagged pointers in more places in the MetaAllocator code.
https://bugs.webkit.org/show_bug.cgi?id=223055
rdar://69971224
Reviewed by Saam Barati.
Source/WTF:
- Made the MetaAllocatorPtr constructor that takes a raw pointer private, and only call it from a static factory method, MetaAllocatorPtr::makeFromRawPointer() to make it clear that we're using an untagged pointer as a source.
- Added a MetaAllocatorPtr constructor that retags a pointer. This allows minimizes the window of working with an untagged pointer.
- Assert that MetaAllocator::addFreshFreeSpace() is only called at system initialization time.
- Removed an unused MetaAllocator::FreeSpaceNode constructor.
- wtf/MetaAllocator.cpp:
(WTF::MetaAllocator::release):
(WTF::MetaAllocatorHandle::MetaAllocatorHandle):
(WTF::MetaAllocatorHandle::shrink):
(WTF::MetaAllocator::allocate):
(WTF::MetaAllocator::addFreshFreeSpace):
- wtf/MetaAllocator.h:
(WTF::MetaAllocator::FreeSpaceNode::FreeSpaceNode): Deleted.
- wtf/MetaAllocatorHandle.h:
- wtf/MetaAllocatorPtr.h:
(WTF::MetaAllocatorPtr::makeFromRawPointer):
(WTF::MetaAllocatorPtr::MetaAllocatorPtr):
Tools:
- TestWebKitAPI/Tests/WTF/MetaAllocator.cpp:
- 11:25 AM Changeset in webkit [274290] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r274270): Broke WebKitSecurityOrigin docs
https://bugs.webkit.org/show_bug.cgi?id=223077
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-11
Reviewed by Darin Adler.
- UIProcess/API/glib/WebKitSecurityOrigin.cpp:
- 11:04 AM Changeset in webkit [274289] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Add message filtering check in sandbox
https://bugs.webkit.org/show_bug.cgi?id=223072
<rdar://75314821>
Reviewed by Brent Fulgham.
Message filters cannot be applied unconditionally; their presence needs to be checked first.
- WebProcess/com.apple.WebProcess.sb.in:
- 10:52 AM Changeset in webkit [274288] by
-
- 2 edits in trunk/Source/JavaScriptCore
Web Inspector: Occasional crash under RemoteConnectionToTargetCocoa::close()
https://bugs.webkit.org/show_bug.cgi?id=223038
<rdar://74920246>
Reviewed by Alex Christensen.
- inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm:
(Inspector::RemoteConnectionToTarget::setup):
(Inspector::RemoteConnectionToTarget::close):
Don't use a capture default, and copy the targetIdentifier.
- 10:17 AM WebKitGTK/2.32.x edited by
- (diff)
- 10:10 AM Changeset in webkit [274287] by
-
- 8 edits in trunk
Apply transferred min/max sizes for intrinsic sizing
https://bugs.webkit.org/show_bug.cgi?id=222557
Patch by Rob Buis <rbuis@igalia.com> on 2021-03-11
Reviewed by Alex Christensen.
Source/WebCore:
Apply transferred min/max sizes for intrinsic sizing [1].
Rename RenderObject::hasAspectRatio to hasIntrinsicAspectRatio
to not be confused with RenderStyle::hasAspectRatio.
Behavior matches Firefox and Chrome.
[1] https://drafts.csswg.org/css-sizing-4/#aspect-ratio-size-transfers
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::dirtyForLayoutFromPercentageHeightDescendants):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::needsPreferredWidthsRecalculation const):
(WebCore::RenderBox::computePreferredLogicalWidths):
- rendering/RenderFlexibleBox.cpp:
(WebCore::childHasAspectRatio):
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
- rendering/RenderObject.h:
(WebCore::RenderObject::hasIntrinsicAspectRatio const):
(WebCore::RenderObject::hasAspectRatio const): Deleted.
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeIntrinsicRatioInformation const):
LayoutTests:
Enable tests that pass now.
- 10:00 AM Changeset in webkit [274286] by
-
- 14 edits in trunk
Introduce WorkQueue::dispatchSync()
https://bugs.webkit.org/show_bug.cgi?id=223049
Reviewed by Alex Christensen.
Source/WebCore:
Adopt WorkQueue::dispatchSync().
- platform/glib/FileMonitorGLib.cpp:
(WebCore::FileMonitor::FileMonitor):
(WebCore::FileMonitor::~FileMonitor):
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:
(WebCore::LocalSampleBufferDisplayLayer::~LocalSampleBufferDisplayLayer):
Source/WebKit:
Adopt WorkQueue::dispatchSync().
- NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::waitUntilTasksFinished):
(WebKit::StorageManagerSet::waitUntilSyncingLocalStorageFinished):
- UIProcess/API/glib/IconDatabase.cpp:
(WebKit::IconDatabase::IconDatabase):
(WebKit::IconDatabase::~IconDatabase):
Source/WTF:
Introduce WorkQueue::dispatchSync(), which relies on GCD's dispatch_sync() internally on Cocoa
ports. For other ports, it relies on a BinarySemaphore for synchronization.
- wtf/WorkQueue.cpp:
(WTF::WorkQueue::dispatchSync):
- wtf/WorkQueue.h:
- wtf/cocoa/WorkQueueCocoa.cpp:
(WTF::WorkQueue::dispatchSync):
Tools:
Add API test coverage.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/WorkQueue.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp:
(WebKitTestServer::run):
- 9:58 AM Changeset in webkit [274285] by
-
- 2 edits in branches/safari-611.1.21.1-branch/Source/WebKit
"Revert r274266. rdar://problem/75290553"
This reverts commit b476dd75db068cab654d25c9eb895bbd5cc60526.
- 9:57 AM Changeset in webkit [274284] by
-
- 2 edits in trunk/Source/WebCore
Cleanup RenderFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=222976
Patch by Rob Buis <rbuis@igalia.com> on 2021-03-11
Reviewed by Sergio Villar Senin.
Various RenderFlexibleBox cleanups.
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
(WebCore::RenderFlexibleBox::childHasIntrinsicMainAxisSize const):
(WebCore::RenderFlexibleBox::alignChildren):
- 9:37 AM Changeset in webkit [274283] by
-
- 4 edits in trunk
REGRESSION(r272293) WebArchives originally loaded over HTTP fail to load subresources that would be upgraded to HTTPS
https://bugs.webkit.org/show_bug.cgi?id=223044
<rdar://75228599>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-11
Reviewed by Chris Dumez.
Source/WebCore:
Existing WebArchive content has keys that are URLs that have the "http" scheme.
To continue to successfully load these WebArchives, if we can't find a resource and we tried an HTTPS URL,
also try the HTTP URL because it may have been upgraded from HTTP to HTTPS in the loader.
We aren't going to the network anyways, so there is no advantage in pretending to use HTTPS.
- loader/archive/ArchiveResourceCollection.cpp:
(WebCore::ArchiveResourceCollection::archiveResourceForURL):
Tools:
- TestWebKitAPI/Tests/mac/LoadWebArchive.mm:
(TestWebKitAPI::TEST):
- 9:31 AM Changeset in webkit [274282] by
-
- 4 edits in trunk
Text manipulation: ignore leading and trailing spaces when comparing content for all tokens
https://bugs.webkit.org/show_bug.cgi?id=223057
<rdar://73706436>
Reviewed by Ryosuke Niwa.
Source/WebCore:
In r265361, we started to ignore leading and trailing spaces for first and last tokens in a paragraph. That's
not enough because one paragraph can also contain multiple nodes. Space between two nodes may be collapsed when
two nodes become separated by a new line. In the added test: the space after 'and' is collapsed when div's width
is changed, because TextManipulationController ignores collapsed space, it would compare ' and' with ' and ',
and returns ContentChanged error.
API test: TextManipulation.CompleteTextManipulationParagraphContainsCollapsedSpaces
- editing/TextManipulationController.cpp:
(WebCore::TextManipulationController::replace):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
(TestWebKitAPI::TEST):
- 9:12 AM Changeset in webkit [274281] by
-
- 7 edits in trunk/LayoutTests
[GPUP] Some modern-media-controls tests are flaky when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221685
Reviewed by Eric Carlson.
Fix two flaky tests related to video fullscreen by:
1) Enable "MockVideoPresentationMode".
2) Wait for a video presentation mode change to complete before moving to the next step in the test.
3) Request the video to exit fullscreen before finish the test (to avoid interference with other tests).
- media/modern-media-controls/controls-visibility-support/controls-visibility-support-fullscreen-on-video-expected.txt:
- media/modern-media-controls/controls-visibility-support/controls-visibility-support-fullscreen-on-video.html:
- media/modern-media-controls/media-controller/media-controller-fade-controls-when-entering-fullscreen-expected.txt:
- media/modern-media-controls/media-controller/media-controller-fade-controls-when-entering-fullscreen.html:
- platform/mac/TestExpectations:
- platform/wk2/TestExpectations:
- 9:03 AM Changeset in webkit [274280] by
-
- 2 edits in branches/safari-611.1.21.1-branch/Source/ThirdParty/libwebrtc
Cherry-pick r274237. rdar://problem/75316929
CRASH in MergeUVRow_AVX2
https://bugs.webkit.org/show_bug.cgi?id=222996
<rdar://75183835>
Reviewed by Geoff Garen.
Crash logging shows occasional crashes in MergeUVRow_AVX2. These crashes all occur when
calling -[AVAssetImageGenerator copyCGImageAtTime:actualTime:error:]. This path is only used
when there was no prior image generated, and a new image is not available from
AVPlayerItemVideoOutput, which is a scenario which only occurs when doing a software-paint
immedately after a <video> element begins loading. While we should probably stop using
AVAssetImageGenerator, that would be a much riskier change, and wouldn't address the
underlying cause of the crash. Instead, bailing out early when in this state would cause
decoding to fail, but since this scenario only appears to occur for the
AVAssetImageGenerator path, painting would quickly recover as soon as
AVPlayerItemVideoOutput begins emitting frames.
The explanation for these crashes seems to be a mismatch between the size of the libvpx
output frame and the size of the CVPixelBuffer where the converted frame data is being
stored. Add a pre-flight check that will bail out early in this scenario.
- Source/webrtc/sdk/WebKit/WebKitUtilities.mm: (webrtc::CopyVideoFrameToPixelBuffer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274237 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:25 AM Changeset in webkit [274279] by
-
- 8 edits in trunk/Source/WebKit
Add camera-related sandbox extensions to GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=223059
Reviewed by Eric Carlson.
Align GPU process sandbox with WebProcess one, including additional camera related sandboxes.
Allow reading preferences for "com.apple.cmio"like done for coremedia.
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::initializeGPUProcess):
- GPUProcess/GPUProcessCreationParameters.cpp:
(WebKit::GPUProcessCreationParameters::encode const):
(WebKit::GPUProcessCreationParameters::decode):
- GPUProcess/GPUProcessCreationParameters.h:
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::shouldCreateAppleCameraServiceSandboxExtension):
(WebKit::GPUProcessProxy::GPUProcessProxy):
- UIProcess/UserMediaProcessManager.cpp:
- WebProcess/com.apple.WebProcess.sb.in:
- 7:32 AM Changeset in webkit [274278] by
-
- 3 edits2 adds in trunk
Cleanup references to float and out-of-flow renderers before destroying them.
https://bugs.webkit.org/show_bug.cgi?id=223041
<rdar://72990740>
Reviewed by Antti Koivisto.
Source/WebCore:
This patch takes care of removing float/positioned references when the renderer gets destroyed during the cleanup phase.
(e.g. we initiate renderer (A) removal and it triggers collapsing other, anonymous renderers as well)
Test: fast/block/crash-when-anonymous-float-box-is-removed.html
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers):
LayoutTests:
- fast/block/crash-when-anonymous-float-box-is-removed-expected.txt: Added.
- fast/block/crash-when-anonymous-float-box-is-removed.html: Added.
- 6:31 AM WebKitGTK/2.32.x edited by
- (diff)
- 6:31 AM WebKitGTK/2.32.x edited by
- (diff)
- 5:48 AM Changeset in webkit [274277] by
-
- 2 edits in trunk/Tools/buildstream
[Flatpak SDK] Update libsoup3
https://bugs.webkit.org/show_bug.cgi?id=223066
Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-11
Reviewed by Carlos Garcia Campos.
- elements/sdk/libsoup3.bst: Bump to version 2.99.2.
- 4:41 AM Changeset in webkit [274276] by
-
- 2 edits in trunk/Tools
Fix contributors file canonical format issue.
Unreviewed.
- Scripts/webkitpy/common/config/contributors.json: Fix canonical format issue.
- 4:30 AM Changeset in webkit [274275] by
-
- 8 edits in trunk
Unreviewed. [GTK][WPE] Bump libsoup3 version to 2.99.3
.:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
Source/WebCore:
Bring back support for logging body data.
- platform/network/soup/SoupNetworkSession.cpp:
(WebCore::SoupNetworkSession::setupLogger):
Source/WTF:
- wtf/Platform.h:
- wtf/URL.h:
- 3:48 AM Changeset in webkit [274274] by
-
- 3 edits1 delete in trunk
Unreviewed, reverting r274263.
https://bugs.webkit.org/show_bug.cgi?id=223064
Added few broken tests
Reverted changeset:
"AI validator patchpoint should read heap top"
https://bugs.webkit.org/show_bug.cgi?id=223052
https://trac.webkit.org/changeset/274263
- 2:57 AM Changeset in webkit [274273] by
-
- 14 edits1 add in trunk
[WPE][GTK] Add support for ICC color management
https://bugs.webkit.org/show_bug.cgi?id=177185
Reviewed by Adrian Perez de Castro.
.:
Add optional lcms2 dependency.
- Source/cmake/FindLCMS2.cmake: Added.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
Source/WebCore:
Add support for ICC color profiles to JPEG and PNG decoders using lcms2 if available.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- platform/graphics/PlatformDisplay.cpp:
(WebCore::PlatformDisplay::~PlatformDisplay):
(WebCore::PlatformDisplay::colorProfile const):
- platform/graphics/PlatformDisplay.h:
- platform/graphics/x11/PlatformDisplayX11.cpp:
(WebCore::PlatformDisplayX11::colorProfile const):
- platform/graphics/x11/PlatformDisplayX11.h:
- platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::isICCMarker):
(WebCore::readICCProfile):
(WebCore::JPEGImageReader::JPEGImageReader):
(WebCore::JPEGImageReader::decode):
(WebCore::JPEGImageDecoder::~JPEGImageDecoder):
(WebCore::JPEGImageDecoder::clear):
(WebCore::JPEGImageDecoder::setFailed):
(WebCore::JPEGImageDecoder::outputScanlines):
(WebCore::JPEGImageDecoder::decode):
(WebCore::JPEGImageDecoder::setICCProfile):
- platform/image-decoders/jpeg/JPEGImageDecoder.h:
- platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::~PNGImageDecoder):
(WebCore::PNGImageDecoder::clear):
(WebCore::PNGImageDecoder::setFailed):
(WebCore::PNGImageDecoder::headerAvailable):
(WebCore::PNGImageDecoder::rowAvailable):
(WebCore::PNGImageDecoder::decode):
(WebCore::PNGImageDecoder::frameComplete):
- platform/image-decoders/png/PNGImageDecoder.h:
- 2:07 AM Changeset in webkit [274272] by
-
- 2 edits in trunk/Tools
Add myself as committer to the contributors file.
Unreviewed.
- Scripts/webkitpy/common/config/contributors.json: Added myself as a committer.
- 1:10 AM Changeset in webkit [274271] by
-
- 2 edits in trunk/Source/WebCore
[ macOS debug arm64 ]fast/dom/Range/compareBoundaryPoints-compareHow-exception.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=223050
<rdar://problem/75284949>
Reviewed by Ryosuke Niwa.
Casting a negative double to an unsigned integer type is undefined behavior.
We need to make sure the double value is positive before casting.
No new tests, covered by existing test.
- bindings/js/JSDOMConvertNumbers.cpp:
(WebCore::toSmallerUInt):
- 1:09 AM Changeset in webkit [274270] by
-
- 9 edits in trunk
REGRESSION(r272469): [WPE][GTK] Epiphany UI process crashes when downloading PDFs, WebKitSecurityOrigin should use SecurityOriginData
https://bugs.webkit.org/show_bug.cgi?id=222943
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-11
Reviewed by Alex Christensen.
Source/WebKit:
Since r272469, WebCore::SecurityOrigin no longer accepts custom protocols except those
registered with LegacySchemeRegistry. WebPage registers all custom protocols, but
WebPageProxy does not, so WebCore::SecurityOrigin now only supports custom protocols in the
web process, not the UI process. This causes Epiphany to crash when the protocol of its
WebKitSecurityOrigin is unexpectedly NULL.
Alex wants to reduce usage of WebCore::SecurityOrigin outside the web process, so instead of
registering custom protocols with LegacySchemeRegistry in the UI process -- making it harder
to eventually get rid of LegacySchemeRegistry -- we will transition WebKitSecurityOrigin
from WebCore::SecurityOrigin to WebCore::SecurityOriginData, which is a simple data store
for <protocol, host, port>. This is mostly sufficient to implement WebKitSecurityOrigin,
except for webkit_security_origin_is_opaque(). I considered multiple ways to handle this,
but ultimately decided to just deprecate it. Epiphany is the only client using this function
in order to implement a WebKitSecurityOrigin equality operation, and it does so using
origins that should never be opaque, so there are no compatibility concerns here.
- UIProcess/API/glib/WebKitAuthenticationRequest.cpp:
(webkit_authentication_request_get_security_origin):
- UIProcess/API/glib/WebKitSecurityOrigin.cpp:
(_WebKitSecurityOrigin::_WebKitSecurityOrigin):
(webkitSecurityOriginCreate):
(webkitSecurityOriginGetSecurityOriginData):
(webkit_security_origin_new):
(webkit_security_origin_new_for_uri):
(webkit_security_origin_get_protocol):
(webkit_security_origin_get_host):
(webkit_security_origin_get_port):
(webkit_security_origin_is_opaque):
(webkit_security_origin_to_string):
(webkitSecurityOriginGetSecurityOrigin): Deleted.
- UIProcess/API/glib/WebKitSecurityOriginPrivate.h:
- UIProcess/API/glib/WebKitWebContext.cpp:
(addOriginToMap):
- UIProcess/API/gtk/WebKitSecurityOrigin.h:
- UIProcess/API/wpe/WebKitSecurityOrigin.h:
Tools:
Add a test to ensure security origins can be successfully created for custom protocols.
Also, update the tests to accomodate the deprecation of webkit_security_origin_is_opaque().
Notably, origins for data:// URIs are no longer special.
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp:
(testSecurityOriginBasicConstructor):
(testSecurityOriginURIConstructor):
(testSecurityOriginDefaultPort):
(testSecurityOriginFileURI):
(testSecurityOriginDataURI):
(testCustomProtocolOrigin):
(beforeAll):
(testOpaqueSecurityOrigin): Deleted.
- 12:41 AM Changeset in webkit [274269] by
-
- 8 edits2 adds in trunk
Indexed DB transactions outdated immediately after it just created
https://bugs.webkit.org/show_bug.cgi?id=216769
<rdar://problem/69321075>
Reviewed by Ryosuke Niwa.
Source/WebCore:
Test: storage/indexeddb/transaction-state-active-after-creation.html
Set transaction inactive in microtask checkpoint according to spec:
https://html.spec.whatwg.org/#perform-a-microtask-checkpoint
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::IDBTransaction):
- dom/EventLoop.cpp:
(WebCore::EventLoopTaskGroup::runAtEndOfMicrotaskCheckpoint):
- dom/EventLoop.h:
- dom/Microtasks.cpp:
(WebCore::MicrotaskQueue::performMicrotaskCheckpoint):
(WebCore::MicrotaskQueue::addCheckpointTask):
- dom/Microtasks.h:
- dom/TaskSource.h:
LayoutTests:
- storage/indexeddb/transaction-state-active-after-creation-expected.txt: Added.
- storage/indexeddb/transaction-state-active-after-creation.html: Added.