Timeline
Jun 24, 2022:
- 1:04 PM HackingWebInspector edited by
- Update for git, recommend minibrowser instead of Safari given … (diff)
- 8:10 AM WebKitGTK/2.36.x edited by
- (diff)
Jun 23, 2022:
- 9:44 AM Changeset in webkit [295779] by
-
- 3 edits in trunk/Source/WebCore/accessibility
AX: AXIsolatedTree::updateChildren sometimes fails to update isolated subtrees when the given live object is ignored
https://bugs.webkit.org/show_bug.cgi?id=241735
Reviewed by Andres Gonzalez.
Our current algorithm in AXIsolatedTree::updateChildren is:
- If the object we got an AXChildrenChanged notification for is in the isolated tree, update its isolated children
- Otherwise, ascend the ancestry to the nearest in-isolated-tree ancestor, and update the children of that object
This is not always adequate when the object passed to updateChildren
is ignored, as in some cases the ancestor has no children changes
but the subtrees of the ignored object do.
This patch fixes this by also checking the live-children of the ignored
object for any that have unitialized children. If so, we call
AXIsolatedTree::updateChildren on those too.
- Source/WebCore/accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::childrenInitialized const):
Move from private to public.
- Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateChildren):
Canonical link: https://commits.webkit.org/251784@main
- 9:16 AM Changeset in webkit [295778] by
-
- 12 edits in trunk
Ignore history items added by JS without user interaction when navigation back/forward via the WKWebView API
https://bugs.webkit.org/show_bug.cgi?id=241885
<rdar://94838657>
Reviewed by Geoffrey Garen.
Ignore history items added by JS without user interaction when navigation
back/forward via the WKWebView API. This is a behavior similar to the
intervention made in Chrome (https://bugs.chromium.org/p/chromium/issues/detail?id=907167)
to prevent websites from hijacking the back/forward list.
When an history item is added by JS via history.pushState() and without a user
gesture, we now set a flag on that HistoryItem to remember this. Later on, when
calling [WKWebView goBack] or [WKWebView goForward], we will skip the history
item that have this flag set. This behavior occurs behind a linked-on-after
check to reduce the compatibility risk.
Also, navigations via other means (e.g. via JavaScript) are not impacted and will
ignore this new flag.
- Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.h:
- Source/WebCore/history/HistoryItem.h:
(WebCore::HistoryItem::setWasCreatedByJSWithoutUserInteraction):
(WebCore::HistoryItem::wasCreatedByJSWithoutUserInteraction const):
- Source/WebCore/loader/HistoryController.cpp:
(WebCore::FrameLoader::HistoryController::pushState):
- Source/WebKit/Shared/SessionState.cpp:
(WebKit::PageState::encode const):
(WebKit::PageState::decode):
- Source/WebKit/Shared/SessionState.h:
- Source/WebKit/Shared/WebBackForwardListItem.h:
(WebKit::WebBackForwardListItem::wasCreatedByJSWithoutUserInteraction const):
- Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::itemSkippingBackForwardItemsAddedByJSWithoutUserGesture):
(WebKit::WebPageProxy::goForward):
(WebKit::WebPageProxy::goBack):
- Source/WebKit/WebProcess/WebCoreSupport/SessionStateConversion.cpp:
(WebKit::toBackForwardListItemState):
- Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- Tools/TestWebKitAPI/Tests/WebKit/WKBackForwardList.mm:
(TEST):
- Tools/TestWebKitAPI/cocoa/TestNavigationDelegate.h:
- Tools/TestWebKitAPI/cocoa/TestNavigationDelegate.mm:
(-[TestNavigationDelegate _webView:navigation:didSameDocumentNavigation:]):
(-[TestNavigationDelegate waitForDidFinishNavigationOrSameDocumentNavigation]):
(-[WKWebView _test_waitForDidFinishNavigationOrSameDocumentNavigation]):
Canonical link: https://commits.webkit.org/251783@main
- 9:14 AM Changeset in webkit [295777] by
-
- 4 edits in trunk/Tools/CISupport/ews-build
[Merge-Queue] Commit directly to GitHub
https://bugs.webkit.org/show_bug.cgi?id=241899
<rdar://93108587>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/factories.py:
(CommitQueueFactory.init): Remove git-svn steps.
(MergeQueueFactoryBase.init): Ditto.
(MergeQueueFactory.init): Update pull-request before pushing commit to main.
(UnsafeMergeQueueFactory.init): Ditto.
- Tools/CISupport/ews-build/factories_unittest.py:
(TestExpectedBuildSteps):
- Tools/CISupport/ews-build/steps.py:
(PushCommitToWebKitRepo):
(PushCommitToWebKitRepo.init):
(PushCommitToWebKitRepo.start): Push commit to 'origin'.
(PushCommitToWebKitRepo.evaluateCommand): Remove git-svn, replace revision with hash.
Pull requests are updated before landing instead of after.
(PushCommitToWebKitRepo.hash_from_commit_text): Extract hash from git command.
(DetermineLandedIdentifier.evaluateCommand): Use hash instead of revision.
(DetermineLandedIdentifier.url_for_hash_details): Ditto.
(DetermineLandedIdentifier.identifier_for_hash): Ditto.
(DetermineLandedIdentifier.comment_text_for_bug): Use hash instead of revision, use
identifier as the default commit format.
(Canonicalize.run): Delete identifiers.json to ensure canonicalization is correct,
reset the commit and author time.
(PushCommitToWebKitRepo.svn_revision_from_commit_text): Deleted.
(DetermineLandedIdentifier.url_for_revision_details): Deleted.
(DetermineLandedIdentifier.identifier_for_revision): Deleted.
(AddAuthorToCommitMessage): Deleted.
(GitSvnFetch): Deleted.
(ResetGitSvn): Deleted.
(DetermineAuthor): Deleted.
- Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/251782@main
- 5:43 AM Changeset in webkit [295776] by
-
- 3 edits4 adds in trunk
[ Mac EWS ] imported/w3c/web-platform-tests/workers/semantics/multiple-workers/004.html is a flaky text failure
https://bugs.webkit.org/show_bug.cgi?id=237095
rdar://problem/89367636
Patch by Youenn Fablet <youennf@gmail.com> on 2022-06-23
Reviewed by Chris Dumez.
As per https://html.spec.whatwg.org/multipage/workers.html#concept-WorkerGlobalScope-owner-set,
a WorkerGlobalScope owner set should preserve the insertion order.
imported/w3c/web-platform-tests/workers/semantics/multiple-workers/004.html might be flakky as we sometimes do not run the shared worker synchronously.
In that case, we will send the connect event on the shared worker set.
Before the patch, the shared worker set would not be ordered so it might happen that the first connect event is related to an iframe SharedWorker.
After the patch, we ensure that the first SharedWorker (NetworkProcess being the place where insertion happens) will be the first to trigger the connect event.
This is done by changing the SharedWorker object set from a Map to a ListHashSet.
Covered by added LayoutTests/http/wpt/service-workers/shared-workers/connect-event-ordering.html
- LayoutTests/http/wpt/service-workers/shared-workers: Added.
- LayoutTests/platform/mac-wk2/TestExpectations:
- Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorker.cpp:
- Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorker.h:
Canonical link: https://commits.webkit.org/251781@main
- 5:40 AM Changeset in webkit [295775] by
-
- 2 edits in trunk
REGRESSION (251257@main): [ macOS wk1 ] fast/replaced/encrypted-pdf-as-object-and-embed.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=241879
<rdar://95728601>
Reviewed by Antoine Quint.
- LayoutTests/platform/mac-wk1/TestExpectations:
- Source/WebCore/style/StyleScope.cpp:
(WebCore::Style::Scope::updateQueryContainerState):
Null test the view. It can be null on WK1.
Canonical link: https://commits.webkit.org/251780@main
- 4:58 AM Changeset in webkit [295774] by
-
- 2 edits in trunk/Source/WebCore/platform/audio/glib
[GLIB] MediaSessionGlib shows multiple players for a single video
https://bugs.webkit.org/show_bug.cgi?id=241857
Patch by Philippe Normand <philn@igalia.com> on 2022-06-23
Reviewed by Carlos Garcia Campos.
The MediaSession is now registered on DBus lazily, only if any of its properties changes.
- Source/WebCore/platform/audio/glib/MediaSessionGLib.cpp:
(WebCore::MediaSessionGLib::MediaSessionGLib):
(WebCore::MediaSessionGLib::~MediaSessionGLib):
(WebCore::MediaSessionGLib::ensureMprisSessionRegistered):
(WebCore::MediaSessionGLib::emitPositionChanged):
(WebCore::MediaSessionGLib::emitPropertiesChanged):
- Source/WebCore/platform/audio/glib/MediaSessionGLib.h:
Canonical link: https://commits.webkit.org/251779@main
- 3:01 AM Changeset in webkit [295773] by
-
- 3 edits in trunk
RTCInboundRtpStreamStats should have a framesDropped property
https://bugs.webkit.org/show_bug.cgi?id=241844
rdar://problem/95669239
Patch by Youenn Fablet <youennf@gmail.com> on 2022-06-23
Reviewed by Eric Carlson.
We should add framesDropped to RTCReceivedRtpStreamStats as per spec but our WebRC backend only supports it in RTCInboundRtpStreamStats.
Let's add this property there since this is used by some applications.
- LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-mandatory-getStats.https.html:
- LayoutTests/webrtc/video-stats.html:
- Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp:
(WebCore::fillReceivedRtpStreamStats):
(WebCore::fillInboundRtpStreamStats):
Canonical link: https://commits.webkit.org/251778@main
- 2:56 AM Changeset in webkit [295772] by
-
- 10 edits in trunk/Source
Use correct offsets type in multiDrawElements* functions
https://bugs.webkit.org/show_bug.cgi?id=241802
Patch by Alexey Knyazev <3479527+lexaknyazev@users.noreply.github.com> on 2022-06-23
Reviewed by Kimmo Kinnunen.
The spec defines
offsets
as arrays of GLsizei, not GLint.
Both types are aliases ofint
anyway.
Fixed a typo in multiDrawElementsInstancedWEBGL validation message.
Query for extension support on WebGL 2.0 contexts. No functional
changes implied because WebGL 2.0 is ANGLE-only.
- Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::getExtension):
- Source/WebCore/html/canvas/WebGLMultiDraw.cpp:
(WebCore::WebGLMultiDraw::multiDrawElementsInstancedWEBGL):
- Source/WebCore/platform/graphics/GraphicsContextGL.h:
- Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLANGLE::multiDrawElementsANGLE):
(WebCore::GraphicsContextGLANGLE::multiDrawElementsInstancedANGLE):
- Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h:
- Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
(WebCore::GraphicsContextGLOpenGL::multiDrawElementsANGLE):
(WebCore::GraphicsContextGLOpenGL::multiDrawElementsInstancedANGLE):
- Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::multiDrawElementsANGLE):
(WebKit::RemoteGraphicsContextGL::multiDrawElementsInstancedANGLE):
- Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::multiDrawElementsANGLE):
(WebKit::RemoteGraphicsContextGLProxy::multiDrawElementsInstancedANGLE):
- Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
Canonical link: https://commits.webkit.org/251777@main
- 1:23 AM Changeset in webkit [295771] by
-
- 6 edits in trunk
[WTF] Use CompactPtr in AtomStringTable if it is more efficient
https://bugs.webkit.org/show_bug.cgi?id=241883
Reviewed by Darin Adler.
- We add HashTable support for CompactPtr. Correctly setting up HashTraits and Hashers so that we can have HashSet<CompactPtr<T>>.
- Use CompactPtr in AtomStringTable if it is more efficient than PackedPtr<StringImpl>. Typically, this means we are in iOS.
- Source/WTF/wtf/CompactPtr.h:
(WTF::CompactPtr::CompactPtr):
(WTF::CompactPtr::encode):
(WTF::CompactPtr::decode):
(WTF::CompactPtr::isHashTableDeletedValue const):
(WTF::CompactPtrTraits::hashTableDeletedValue):
(WTF::CompactPtrTraits::isHashTableDeletedValue):
- Source/WTF/wtf/Forward.h:
- Source/WTF/wtf/HashTraits.h:
(WTF::HashTraits<CompactPtr<P>>::emptyValue):
(WTF::HashTraits<CompactPtr<P>>::isEmptyValue):
(WTF::HashTraits<CompactPtr<P>>::peek):
- Source/WTF/wtf/text/AtomStringImpl.cpp:
(WTF::UCharBufferTranslator::equal):
(WTF::UCharBufferTranslator::translate):
(WTF::HashAndUTF8CharactersTranslator::equal):
(WTF::HashAndUTF8CharactersTranslator::translate):
(WTF::SubstringTranslator::translate):
(WTF::SubstringTranslator8::equal):
(WTF::SubstringTranslator16::equal):
(WTF::LCharBufferTranslator::equal):
(WTF::LCharBufferTranslator::translate):
(WTF::BufferFromStaticDataTranslator::equal):
(WTF::BufferFromStaticDataTranslator::translate):
- Source/WTF/wtf/text/AtomStringTable.h:
- Tools/TestWebKitAPI/Tests/WTF/CompactPtr.cpp:
(TestWebKitAPI::TEST):
Canonical link: https://commits.webkit.org/251776@main
- 12:45 AM Changeset in webkit [295770] by
-
- 1 edit in trunk/Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp
[JSC] Set up wasm stack |this| first
https://bugs.webkit.org/show_bug.cgi?id=241907
rdar://problem/94397072
Reviewed by Mark Lam.
We should set up the stack's |thisValue| first.
- Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
Canonical link: https://commits.webkit.org/251775@main
Jun 22, 2022:
- 11:35 PM Changeset in webkit [295769] by
-
- 2 edits in trunk/LayoutTests/webrtc/datachannel
Make sure to close connections in webrtc/datachannel/mdns-ice-candidates.html
https://bugs.webkit.org/show_bug.cgi?id=241846
Patch by Youenn Fablet <youennf@gmail.com> on 2022-06-22
Reviewed by Eric Carlson.
Make sure to close connections by using await instead of return.
Add some logging to further check the failing test in bots.
Remove some unnecessary code.
- LayoutTests/webrtc/datachannel/mdns-ice-candidates-expected.txt:
- LayoutTests/webrtc/datachannel/mdns-ice-candidates.html:
Canonical link: https://commits.webkit.org/251774@main
- 8:45 PM Changeset in webkit [295768] by
-
- 1 edit in trunk/Source/WTF/wtf/PlatformHave.h
Partially revert r295530
https://bugs.webkit.org/show_bug.cgi?id=241900
Unreviewed, partially revert r295530 since the system part is not ready.
- Source/WTF/wtf/PlatformHave.h:
Canonical link: https://commits.webkit.org/251773@main
- 8:22 PM Changeset in webkit [295767] by
-
- 2 edits in trunk/Source/WebCore/rendering
RenderElement::addLayers should check for dialog content before inserting layers
https://bugs.webkit.org/show_bug.cgi?id=241874
Reviewed by Simon Fraser.
addLayers stops (recursive) descending in the render tree soon after it finds a root (R) with layer.
It says that if a subtree root (R) has a layer then all layers in this subtree must have already been inserted into the layer tree at an earlier time.
(it simply assumes that any layer in the subtree is a child of (R), or some other layers in the subtree)
<div id=container>
<div id=R>
<div id=child>
The insertion is bottom to top; we attach
1, (child) to (R) first
2, followed by (R) to (container)
addLayers assumes that when (R) is being inserted (#2), we don't have to descend into (R)'s subtree since any renderer's layer that was inserted before (at #1) must have already been parented.
However toplayer/backdrop content is an exception where the parent layer may be outside of the subtree but still accessible. In such cases subsequent insertions (and the recursive nature of finding layer parents) could lead to double parenting where we try to insert the same layer into the layer tree multiple times.
- Source/WebCore/rendering/RenderElement.cpp:
(WebCore::addLayers):
(WebCore::RenderElement::insertedIntoTree):
(WebCore::RenderElement::addLayers): Deleted.
- Source/WebCore/rendering/RenderElement.h:
Canonical link: https://commits.webkit.org/251772@main
- 7:56 PM Changeset in webkit [295766] by
-
- 1 edit in trunk/Source/JavaScriptCore/offlineasm/arm64.rb
Change offlineasm to emit more efficient LLInt code.
https://bugs.webkit.org/show_bug.cgi?id=241856
Reviewed by Yusuke Suzuki.
- Ruby treats numeric 0 as truthy. However, there's a test in arm64LowerMalformedLoadStoreAddresses which assumes a value of 0 would be false. As a result, we see offlineasm emit inefficient LLInt code like this:
".loc 3 821\n" "movz x16, #0 \n" LowLevelInterpreter64.asm:821
"add x13, x3, x16 \n"
"ldr x0, [x13] \n"
... instead of this:
".loc 3 821\n" "ldr x0, [x3] \n" LowLevelInterpreter64.asm:821
This patch fixes this.
- offlineasm's emitARM64MoveImmediate chooses to use
movn
instead ofmovz
based on whether a 64-bit value is negative or not. Instead, it should be making that decision based on the number of halfwords (16-bits) in the value that is 0xffff vs 0. As a result, offlineasm emits code like this:
".loc 1 1638\n" "movn x27, #1, lsl #48 \n" LowLevelInterpreter.asm:1638
"movk x27, #0, lsl #32 \n"
"movk x27, #0, lsl #16 \n"
"movk x27, #0 \n"
... instead of this:
".loc 1 1638\n" "movz x27, #65534, lsl #48 \n" LowLevelInterpreter.asm:1638
This patch fixes this.
- offlineasm is trivially assuming the range of immediate offsets for ldr/str instructions is [-255..4095]. However, that's only the range for byte sized load-stores. For 32-bit, the range is actually [-255..16380]. For 64-bit, the range is actually [-255..32760]. As a result,
offlineasm emits code like this:
".loc 1 633\n" "movn x16, #16383 \n" LowLevelInterpreter.asm:633
".loc 1 1518\n" "and x3, x3, x16 \n" LowLevelInterpreter.asm:1518
".loc 1 1519\n" "movz x16, #16088 \n" LowLevelInterpreter.asm:1519
"add x17, x3, x16 \n"
"ldr x3, [x17] \n"
... instead of this:
".loc 1 633\n" "movn x17, #16383 \n" LowLevelInterpreter.asm:633
".loc 1 1518\n" "and x3, x3, x17 \n" LowLevelInterpreter.asm:1518
".loc 1 1519\n" "ldr x3, [x3, #16088] \n" LowLevelInterpreter.asm:1519
This patch fixes this for 64-bit and 32-bit load-stores. 16-bit load-stores also has a wider
range, but for now, it will continue to use the conservative range.
This patch also introduces an
isMalformedArm64LoadAStoreAddress
so that this range check can be
done consistently in all the places that checks for it.
- offlineasm is eagerly emitting no-op arguments in instructions, e.g. "lsl #0", and adding 0. As a result, offlineasm emits code like this:
".loc 3 220\n" "movz x13, #51168, lsl #0 \n" LowLevelInterpreter64.asm:220
"add x17, x1, x13, lsl #0 \n"
"ldr w4, [x17, #0] \n"
... instead of this:
".loc 3 220\n" "movz x13, #51168 \n" LowLevelInterpreter64.asm:220
"add x17, x1, x13 \n"
"ldr w4, [x17] \n"
This unnecessary arguments are actually very common throughout the emitted LLIntAssembly.h.
This patch removes these unnecessary arguments, which makes the emitted LLInt code more human
readable due to less clutter.
This patch has passed the testapi and JSC stress tests with a Release build on an M1 Mac.
I also manually verified that the emitARM64MoveImmediate code is working properly by
hacking up LowLevelInterpreter64.asm to emit moves of constants of different values in
the ranges, and for load-store instructions of different sizes, and visually inspecting
the emitted code.
- Source/JavaScriptCore/offlineasm/arm64.rb:
Canonical link: https://commits.webkit.org/251771@main
- 7:54 PM Changeset in webkit [295765] by
-
- 2 edits2 adds in trunk
Adding padding on a horizontal scroller prevents last item from being fully viewable
https://bugs.webkit.org/show_bug.cgi?id=236142
<rdar://problem/88495053>
Reviewed by Simon Fraser.
Flex box's padding end should be taken into account when computing scrollable overflow.
- LayoutTests/fast/overflow/flex-box-overflow-with-padding-end-expected.html: Added.
- LayoutTests/fast/overflow/flex-box-overflow-with-padding-end.html: Added.
- Source/WebCore/rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeOverflow):
css3/flexbox/overflow-and-padding.html: matching Blink.
Canonical link: https://commits.webkit.org/251770@main
- 6:48 PM Changeset in webkit [295764] by
-
- 2 edits in trunk/Source/WebCore/editing
Null check parent node in InsertListCommand::unlistifyParagraph
https://bugs.webkit.org/show_bug.cgi?id=241889
Reviewed by Wenson Hsieh.
- Source/WebCore/editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApplyForSingleParagraph):
(WebCore::InsertListCommand::unlistifyParagraph):
- Source/WebCore/editing/InsertListCommand.h:
Canonical link: https://commits.webkit.org/251769@main
- 6:19 PM Changeset in webkit [295763] by
-
- 1 edit in trunk/.github/CODEOWNERS
Unreviewed, update .github/CODEOWNERS for TestWebKitAPI
https://bugs.webkit.org/show_bug.cgi?id=241897
Update .github/CODEOWNERS to more correctly add reviewer requests for TestWebKitAPI.
- .github/CODEOWNERS:
Canonical link: https://commits.webkit.org/251768@main
- 6:03 PM Changeset in webkit [295762] by
-
- 12 edits2 adds in trunk/Source
[Cocoa] Register Alternate WebM Player skeleton
https://bugs.webkit.org/show_bug.cgi?id=241769
<rdar://95542551>
Patch by Youssef Soliman <youssefdevelops@gmail.com> on 2022-06-22
Reviewed by Eric Carlson.
Added the alternate WebM player skeleton and registered it behind
the internal feature flag.
- Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml:
- Source/WebCore/PlatformMac.cmake:
- Source/WebCore/SourcesCocoa.txt:
- Source/WebCore/WebCore.xcodeproj/project.pbxproj:
- Source/WebCore/page/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::setAlternateWebMPlayerEnabled):
- Source/WebCore/page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::alternateWebMPlayerEnabled const):
- Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::setAlternateWebMPlayerEnabled):
(WebCore::PlatformMediaSessionManager::alternateWebMPlayerEnabled):
- Source/WebCore/platform/audio/PlatformMediaSessionManager.h:
- Source/WebCore/platform/graphics/MediaPlayer.cpp:
(WebCore::WTF_REQUIRES_LOCK):
- Source/WebCore/platform/graphics/MediaPlayerEnums.h:
- Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.h: Added.
- Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm: Added.
(WebCore::MediaPlayerPrivateWebM::MediaPlayerPrivateWebM):
(WebCore::MediaPlayerPrivateWebM::~MediaPlayerPrivateWebM):
(WebCore::mimeTypeCache):
(WebCore::MediaPlayerPrivateWebM::getSupportedTypes):
(WebCore::MediaPlayerPrivateWebM::supportsType):
(WebCore::MediaPlayerPrivateWebM::load):
(WebCore::MediaPlayerPrivateWebM::cancelLoad):
(WebCore::MediaPlayerPrivateWebM::platformLayer const):
(WebCore::MediaPlayerPrivateWebM::play):
(WebCore::MediaPlayerPrivateWebM::pause):
(WebCore::MediaPlayerPrivateWebM::setPageIsVisible):
(WebCore::MediaPlayerPrivateWebM::currentMediaTime const):
(WebCore::MediaPlayerPrivateWebM::buffered const):
(WebCore::MediaPlayerPrivateWebM::didLoadingProgress const):
(WebCore::MediaPlayerPrivateWebM::logChannel const):
(WebCore::MediaPlayerPrivateWebM::registerMediaEngine):
Changes were done to the GPUProcessPreferences object to consolidate
all changes when adding a new feature to just one file.
- Source/WebKit/GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::updateGPUProcessPreferences):
- Source/WebKit/GPUProcess/GPUProcessPreferences.cpp:
(WebKit::GPUProcessPreferences::GPUProcessPreferences):
(WebKit::GPUProcessPreferences::copyEnabledWebPreferences):
(WebKit::GPUProcessPreferences::encode const):
(WebKit::GPUProcessPreferences::decode):
- Source/WebKit/GPUProcess/GPUProcessPreferences.h:
- Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::updatePreferences):
- Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
- Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
Canonical link: https://commits.webkit.org/251767@main
- 6:02 PM Changeset in webkit [295761] by
-
- 11 edits in trunk/Tools/Scripts/libraries
git-webkit land should apply the merge-queue label
https://bugs.webkit.org/show_bug.cgi?id=240308
<rdar://problem/93501363>
Reviewed by Ryan Haddad.
- Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Tools/Scripts/libraries/webkitcorepy/webkitcorepy/arguments.py:
(NoAction.call): Support --un along with --no- to invert option.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py:
(Land.parser): Invoke PullRequest's parser.
(Land.merge_queue): Update (or create) pull-request and add merge-queue label to.
(Land.main): Support PullRequest options including automatic commit creation, squashing and PR creation.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:
(PullRequest): Add merge-queue and unsafe-merge-queue labels.
(PullRequest.parser): Add --no-squash option.
(PullRequest.create_pull_request): Remove merge-queue labels, allow caller to specify a callback.
(PullRequest.main): Create commit even when squashing.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/land_unittest.py:
(repository):
(TestLand.test_with_oops):
(TestLand.test_default):
(TestLand.test_canonicalize):
(TestLand.test_svn):
(TestLand.test_default_with_radar):
(TestLand.test_canonicalize_with_bugzilla):
(TestLand.test_svn_with_bugzilla):
(TestLandGitHub.webserver):
(TestLandGitHub):
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/revert_unittest.py:
(test_update):
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/squash_unittest.py:
(TestSquash.test_github_with_previous_history):
(TestSquash.test_github_without_previous_history):
Canonical link: https://commits.webkit.org/251766@main
- 5:51 PM Changeset in webkit [295760] by
-
- 4 edits in trunk
[PlayStation] Turn on WebP support
https://bugs.webkit.org/show_bug.cgi?id=241887
Reviewed by Ross Kirsling.
Turn USE_WEBP to ON. Load WebP as a shared library if applicable.
- Source/WebKit/WebProcess/EntryPoint/playstation/WebProcessMain.cpp:
- Source/cmake/OptionsPlayStation.cmake:
- Tools/MiniBrowser/playstation/main.cpp:
- Tools/TestWebKitAPI/playstation/main.cpp:
Canonical link: https://commits.webkit.org/251765@main
- 5:49 PM Changeset in webkit [295759] by
-
- 1 edit in trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in
Add mach_port_get_refs to the iOS WebContent sandbox on older iOS versions.
https://bugs.webkit.org/show_bug.cgi?id=241882
Reviewed by Per Arne Vollan.
- Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
Canonical link: https://commits.webkit.org/251764@main
- 5:16 PM Changeset in webkit [295758] by
-
- 1 edit in trunk/metadata/contributors.json
Change contributor status of Dan Glastonbury to committer
Patch by Dan Glastonbury <djg@apple.com> on 2022-06-22
Unreviewed change.
- metadata/contributors.json:
Canonical link: https://commits.webkit.org/251763@main
- 5:05 PM Changeset in webkit [295757] by
-
- 14 edits in trunk
Mute capture when disconnected from hardware console
rdar://87794804
Reviewed by Brent Fulgham
- Source/WebCore/PAL/pal/spi/cg/CoreGraphicsSPI.h
- Source/WebCore/page/ActivityState.cpp
- Source/WebCore/page/ActivityState.h
- Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h
- Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm
- Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm
- Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm
- Source/WebKit/UIProcess/WebPageProxy.cpp
- Source/WebKit/UIProcess/WebPageProxy.h
- Source/WebKit/UIProcess/WebProcessPool.h
- Source/WebKit/UIProcess/WebProcessProxy.h
- Source/WebKit/UIProcess/mac/WindowServerConnection.h
- Source/WebKit/UIProcess/mac/WindowServerConnection.mm
- Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm
Canonical link: https://commits.webkit.org/251761@main
- 5:04 PM Changeset in webkit [295756] by
-
- 14 edits in trunk/Source
Implement painting for MSE videos using -[AVSampleBufferDisplayLayer copyDisplayedPixelBuffer]
https://bugs.webkit.org/show_bug.cgi?id=241788
rdar://94325004
Reviewed by Eric Carlson.
In r292811, we enabled MSE inline painting on iOS 16 and macOS Ventura; this was intentionally
limited to these versions, since CoreMedia made refinements in these OS versions to prune the
AVSampleBufferVideoOutput
queue more frequently, in order to avoid a large increase in memory use
while playing MSE videos, due to accumulating excess video output frame data. However, this more
frequent pruning interval has led to significantly increased power use when playing MSE video, due
to the extra work done every time the pruning timer fires.
To ensure that Live Text in MSE video and MSE to canvas painting still work in iOS 16 and macOS
Ventura, we instead adopt new AVFoundation SPI that allows us to askAVSampleBufferDisplayLayer
directly for the currently displayed pixel buffer. As opposed to theAVSampleBufferVideoOutput
-
based approach, this will only kick in if MSE video inline painting is actually requested (either by
the page, or from within the engine, in the case of Live Text), which avoids both increased memory
use and power use.
On versions of macOS and iOS that don't have the new SPI, we simply fall back to the
AVSampleBufferVideoOutput
-based snapshotting approach that we currently use. We also fall back to
using the video output if the display layer is empty, in which case the backingCAImageQueue
won't
contain _any_ displayed surfaces (which means-copyDisplayedPixelBuffer
will always end up
returning null). By refactoring logic to create and setm_videoOutput
out into a helper method
(updateVideoOutput
) that's invoked after we've finished setting up the sample buffer display
layer, we can transition as needed between setting and unsetting the video output, based on whether
or not the display layer is actually displaying any content.
There should be no change in behavior, apart from less memory and power use due to not spinning up
theAVSampleBufferVideoOutput
queue whenever we play MSE videos. See below for more details.
- Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml:
Gate MSE inline painting on
HAVE(AVSAMPLEBUFFERDISPLAYLAYER_COPYDISPLAYEDPIXELBUFFER)
, instead of
HAVE(LOW_AV_SAMPLE_BUFFER_PRUNING_INTERVAL)
.
- Source/WTF/wtf/PlatformHave.h:
Add a new feature flag to guard the availability of the new AVFoundation SPI,
-[AVSampleBufferDisplayLayer copyDisplayedPixelBuffer]
.
- Source/WebCore/PAL/pal/spi/cocoa/AVFoundationSPI.h:
Add a staging declaration for
-copyDisplayedPixelBuffer
, so that we can maintain source
compatibility when building against older versions of the iOS 16 or macOS Ventura SDKs.
- Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::texImageSourceHelper):
- Source/WebCore/platform/graphics/MediaPlayer.cpp:
- Source/WebCore/platform/graphics/MediaPlayer.h:
- Source/WebCore/platform/graphics/MediaPlayerPrivate.h:
Replace more uses of
HAVE(LOW_AV_SAMPLE_BUFFER_PRUNING_INTERVAL)
with the new flag
HAVE(AVSAMPLEBUFFERDISPLAYLAYER_COPYDISPLAYEDPIXELBUFFER)
, which is now used to guard availability
of MSE inline painting. The purpose of guarding this logic behind
!HAVE(LOW_AV_SAMPLE_BUFFER_PRUNING_INTERVAL)
in the first place seems to have been to limit the
willBeAskedToPaintGL()
codepaths to versions of macOS and iOS, where we can't enable MSE inline
painting due to lack of system support. Since "system support" now depends on the availability of
-copyDisplayedPixelBuffer
, we should change to use that flag instead of one about pruning interval
frequency. This also allows us to remove theHAVE(LOW_AV_SAMPLE_BUFFER_PRUNING_INTERVAL)
flag
altogether, now that there isn't any code that needs to be guarded by it.
- Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastPixelBuffer):
Adjust this logic to ask
m_sampleBufferDisplayLayer
for a copy of the last displayed pixel buffer,
instead of grabbing it from the video output, if possible.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::shouldEnsureLayer const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::acceleratedRenderingStateChanged):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateVideoOutput):
Factor out logic for creating or destroying the video output into a separate helper method, that's
invoked after updating the display layer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::readbackMethod const):
Replace
isVideoOutputAvailable()
with another helper method, that returns a strongly typed enum
indicating which readback method to use.None
indicates that readback isn't supported,
CopyPixelBufferFromDisplayLayer
indicates that we'll use the new AVFoundation SPI method, and
UseVideoOutput
indicates that we'll fall back toAVSampleBufferVideoOutput
.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isVideoOutputAvailable const): Deleted.
- Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h:
- Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- Source/WebKit/GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:
- Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
- Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
Canonical link: https://commits.webkit.org/251761@main
- 4:33 PM Changeset in webkit [295755] by
-
- 1 edit in trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
Fix CodeSign error caused by Product Dependencies phase
https://bugs.webkit.org/show_bug.cgi?id=241713
Unreviewed build fix.
Product Dependencies phases must be set to the "Products Directory"
destination. Otherwise, they unintentionally embed the dependencies into
their target's build product. This one must have been a default setting
that got overlooked.
- Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
Canonical link: https://commits.webkit.org/251760@main
- 4:01 PM Changeset in webkit [295754] by
-
- 1 edit in trunk/Source/WebKit/Shared/cg/ShareableBitmapCG.cpp
Build is broken: bitwise operation between different enumeration types in ShareableBitmapCG.cpp
https://bugs.webkit.org/show_bug.cgi?id=241876
Unreviewed build fix.
- Source/WebKit/Shared/cg/ShareableBitmapCG.cpp:
(WebKit::bitmapInfo):
Add some casts.
Canonical link: https://commits.webkit.org/251759@main
- 3:48 PM Changeset in webkit [295753] by
-
- 1 edit in trunk/LayoutTests/platform/mac-wk1/TestExpectations
[Gardening]: REGRESSION (251257@main): [ macOS wk1 ] fast/replaced/encrypted-pdf-as-object-and-embed.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=241879
<rdar://95728601>
Unreviewed test gardening.
- LayoutTests/platform/mac-wk1/TestExpectations:
Canonical link: https://commits.webkit.org/251758@main
- 3:44 PM Changeset in webkit [295752] by
-
- 3 edits in trunk/Source
[XCBuild] Fix validation errors caused by copying to symlink framework bundle directories
Unreviewed build fix.
Prefix a few destination paths with $(WK_FRAMEWORK_VERSION_PREFIX). The
build system needs to know the real paths these items are copied to for
it to be able to schedule them ahead of tasks which depend on them.
- Source/WebCore/WebCore.xcodeproj/project.pbxproj:
- Source/WebKit/WebKit.xcodeproj/project.pbxproj:
- Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj: Remove "Copy Mig Files into Private Framework Headers" because it has no members. The files were removed in https://bugs.webkit.org/show_bug.cgi?id=232462.
Canonical link: https://commits.webkit.org/251757@main
- 3:42 PM Changeset in webkit [295751] by
-
- 5 edits in trunk
REGRESSION (iOS 16): System controls overlap website controls (affects SquareSpace, medium.com, and others)
https://bugs.webkit.org/show_bug.cgi?id=241837
rdar://95658478
Reviewed by Aditya Keerthi.
On iOS 16, the callout bar (which is now built on top of
UIEditMenuInteraction
) no longer respects
evasion rects, passed in through theUIWKInteractionViewProtocol
delegate method
-requestRectsToEvadeForSelectionCommandsWithCompletionHandler:
. This was previously used to avoid
overlapping interactable controls on the page when presenting the callout bar, which the layout
testediting/selection/ios/avoid-showing-callout-menu-over-controls.html
exercises.
To fix this, we're adding a replacement SPI in UIKit, allowing WebKit to vend a preferred
UIEditMenuArrowDirection
which will be consulted when presenting the edit menu interaction in
order to show the callout bar.
For more details, see: rdar://95652872.
- Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView requestPreferredArrowDirectionForEditMenuWithCompletionHandler:]):
In the case where there are clickable controls above the selection, use
UIEditMenuArrowDirectionUp
to make the callout bar present _below_ the selection instead of above; otherwise, simply go with
the default behavior, which puts the callout bar above the selection.
(-[WKContentView requestRectsToEvadeForSelectionCommandsWithCompletionHandler:]):
Pull out common logic for requesting a list of rects to evade into a separate internal helper
method, and use this common helper method to implement both the legacy delegate method (which no
longer works on iOS 16), as well as the new delegate method in iOS 16. For now, I opted to still
implement both methods, such that this test will pass on both iOS 15 and iOS 16 (but only with the
changes in rdar://95652872).
(-[WKContentView _requestEvasionRectsAboveSelectionIfNeeded:]):
- Tools/TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:
Also, adopt the new SPI in an API test that simulates callout bar appearance on iOS 16.
(TestWebKitAPI::simulateCalloutBarAppearance):
- Tools/TestWebKitAPI/cocoa/TestWKWebView.h:
- Tools/TestWebKitAPI/ios/UIKitSPI.h:
- Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::internalClassNamed):
(WTR::UIScriptControllerIOS::menuRect const):
(WTR::UIScriptControllerIOS::contextMenuRect const):
Additionally tweak a couple of script controller hooks, to work with the new
UIEditMenuInteraction
-based callout bars on iOS 16.
Canonical link: https://commits.webkit.org/251756@main
- 3:07 PM Changeset in webkit [295750] by
-
- 6 edits in trunk/Source/WebCore
Rename attributeContainsJavascriptURL to attributeContainsJavaScriptURL
https://bugs.webkit.org/show_bug.cgi?id=241872
Reviewed by Wenson Hsieh.
with a capital S
- Source/WebCore/dom/Element.cpp:
(WebCore::Element::attributeContainsJavaScriptURL const):
(WebCore::Element::stripScriptingAttributes const):
(WebCore::Element::attributeContainsJavascriptURL const): Deleted.
- Source/WebCore/dom/Element.h:
- Source/WebCore/editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::removeContentsWithSideEffects):
- Source/WebCore/editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::appendStartTag):
- Source/WebCore/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::attributeContainsJavaScriptURL const):
(WebCore::SVGAnimationElement::attributeContainsJavascriptURL const): Deleted.
- Source/WebCore/svg/SVGAnimationElement.h:
Canonical link: https://commits.webkit.org/251755@main
- 2:41 PM Changeset in webkit [295749] by
-
- 1 edit in trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxyGL.cpp
[GTK] Crash in WebCore::TextureMapperLayer::paintSelf
https://bugs.webkit.org/show_bug.cgi?id=240283
Reviewed by Carlos Garcia Campos.
There are 4 cases that can happen after there has been a layerFlush and
we're adopting the new state in the composition stage:
- The layer is removed from the tree and the proxy is not assigned to any other layer: the deletion of the layer causes an invalidation of the proxy and both are destroyed afterwards. This works fine.
- The layer is removed from the tree and the proxy is reassigned to a new layer: the deletion of the first layer causes the invalidation of the proxy, which is then activated on the second layer. As the first layer is destroyed, we don't have to worry about dangling references from it to the proxy's currentBuffer. This works fine.
- The layer is kept in the tree and the proxy gets disassociated from it and not used by any other layer: we detect that the proxy is not used anymore and call invalidate on it, but the layer keeps a reference to the proxy's currentBuffer, which has been deleted during invalidate, which leads to a crash when trying to render the layer.
- The layer is kept in the tree and the proxy gets associated to a new layer: as we detect that the proxy is still being used it's not invalidated, but it gets activated on the second layer. The first layer keeps a reference to the proxy's currentBuffer, which will be destroyed a bit later when swapBuffers is called on the proxy. This leads to a crash when trying to render the first layer.
This patch addresses cases 3. and 4. described above.
- Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxyGL.cpp:
(WebCore::TextureMapperPlatformLayerProxyGL::activateOnCompositingThread):
Ensure that the layer no longer keeps a reference to the current buffer if the
proxy is already active on a different layer.
(WebCore::TextureMapperPlatformLayerProxyGL::invalidate): Ensure that
the invalidated layer does not keep a reference to the current buffer.
Canonical link: https://commits.webkit.org/251754@main
- 2:01 PM Changeset in webkit [295748] by
-
- 24 edits in trunk
Don't install webpushd on catalyst
https://bugs.webkit.org/show_bug.cgi?id=241860
Reviewed by Alexey Proskuryakov.
- Source/JavaScriptCore/Configurations/SDKVariant.xcconfig:
- Source/ThirdParty/ANGLE/Configurations/SDKVariant.xcconfig:
- Source/ThirdParty/gtest/xcode/Config/SDKVariant.xcconfig:
- Source/ThirdParty/libwebrtc/Configurations/SDKVariant.xcconfig:
- Source/WTF/Configurations/SDKVariant.xcconfig:
- Source/WebCore/Configurations/SDKVariant.xcconfig:
- Source/WebCore/PAL/Configurations/SDKVariant.xcconfig:
- Source/WebGPU/Configurations/SDKVariant.xcconfig:
- Source/WebInspectorUI/Configurations/SDKVariant.xcconfig:
- Source/WebKit/Configurations/BaseTarget.xcconfig:
- Source/WebKit/Configurations/SDKVariant.xcconfig:
- Source/WebKitLegacy/mac/Configurations/SDKVariant.xcconfig:
- Source/bmalloc/Configurations/SDKVariant.xcconfig:
Canonical link: https://commits.webkit.org/251753@main
- 1:11 PM Changeset in webkit [295747] by
-
- 7 edits in trunk
Make SVGAnimateElement respect javascriptMarkupEnabled
https://bugs.webkit.org/show_bug.cgi?id=241820
<rdar://92834618 >
Reviewed by Said Abou-Hallawa.
from/to/values attributes should be stripped in presence of javascript URLs with the pref on.
- Source/WebCore/dom/Element.cpp:
(WebCore::Element::attributeContainsJavascriptURL const):
(WebCore::Element::stripScriptingAttributes const):
(WebCore::Element::isJavaScriptURLAttribute const): Deleted.
- Source/WebCore/dom/Element.h:
- Source/WebCore/editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::removeContentsWithSideEffects):
- Source/WebCore/editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::appendStartTag):
- Source/WebCore/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::attributeContainsJavascriptURL const):
- Source/WebCore/svg/SVGAnimationElement.h:
- Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm:
(TEST):
Canonical link: https://commits.webkit.org/251752@main
- 12:59 PM Changeset in webkit [295746] by
-
- 5 edits2 adds in trunk
REGRESSION(r294536): NativeImages copied from ImageBufferIOSurfaceBackend are mutated after copy
https://bugs.webkit.org/show_bug.cgi?id=241367
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-06-22
Reviewed by Said Abou-Hallawa.
With GPUP, ImageBuffer IOSurface modifications happen in the GPUP.
In r294536 it was changed that WP creates NativeImage instances with CGImage instances
created from IOSurfaces mapped in WP. These CGImages do not know that the underlying IOSurface changes
in the other process.
Detach the CGImages from the IOSurface before the first write to the ImageBuffer
is being sent to GPUP. This is done with the ensureNativeImagesHaveCopiedBackingStore() call.
- LayoutTests/fast/canvas/canvas-pattern-from-modified-canvas-expected.txt: Added.
- LayoutTests/fast/canvas/canvas-pattern-from-modified-canvas.html: Added.
- Source/WebCore/platform/graphics/ImageBuffer.h:
(WebCore::ImageBuffer::backingStoreWillChange):
(WebCore::ImageBuffer::setNeedsFlush): Deleted.
- Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::~ImageBufferIOSurfaceBackend):
(WebCore::ImageBufferIOSurfaceBackend::invalidateCachedNativeImage const):
(WebCore::ImageBufferIOSurfaceBackend::copyNativeImage const):
(WebCore::ImageBufferIOSurfaceBackend::ensureNativeImagesHaveCopiedBackingStore):
- Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
- Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
(WebKit::RemoteDisplayListRecorderProxy::send):
- Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
(WebKit::RemoteImageBufferProxy::setNeedsFlush):
(WebKit::RemoteImageBufferProxy::prepareForBackingStoreChange):
Canonical link: https://commits.webkit.org/251751@main
- 12:43 PM Changeset in webkit [295745] by
-
- 16 edits in trunk
[git-webkit] Redact certain bug details
https://bugs.webkit.org/show_bug.cgi?id=241833
<rdar://problem/95421487>
Reviewed by Ryan Haddad.
- Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py:
(Tracker.init): Pass redaction map to base class.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:
(Tracker.init): Ditto.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/issue.py:
(Issue.redacted): Check if the issue matches any redaction filters.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/radar.py:
(Tracker.init): Pass redaction map to base class.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/bugzilla_unittest.py:
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/github_unittest.py:
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/radar_unittest.py:
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tracker.py:
(Tracker.from_json): Pass redaction map if it's defined.
(Tracker.init): Populate redaction map with regexes.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/branch.py:
(Branch.main): Redact branch name if the issue is a redacted configuration.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/commit.py:
(Commit.main): Redact issue title if the issue is a redacted configuration.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:
- metadata/trackers.json: Redact all radars and security bugs.
Canonical link: https://commits.webkit.org/251750@main
- 12:25 PM Changeset in webkit [295744] by
-
- 4 adds in trunk/LayoutTests/resize-observer
Add more GC tests for ResizeObserver
https://bugs.webkit.org/show_bug.cgi?id=231260
<rdar://84168766>
Reviewed by Ryosuke Niwa.
Add more GC tests for ResizeObserver, matching the ones we have for IntersectionObserver.
- LayoutTests/resize-observer/observe-disconnected-target-crash-expected.txt: Added.
- LayoutTests/resize-observer/observe-disconnected-target-crash.html: Added.
- LayoutTests/resize-observer/observe-then-disconnect-target-expected.txt: Added.
- LayoutTests/resize-observer/observe-then-disconnect-target.html: Added.
Canonical link: https://commits.webkit.org/251748@main
- 12:25 PM Changeset in webkit [295743] by
-
- 238 edits24 moves269 adds6 deletes in trunk/JSTests/test262
Update test262 (2021.06.21)
https://bugs.webkit.org/show_bug.cgi?id=241840
Reviewed by Yusuke Suzuki.
- JSTests/test262/config.yaml:
- JSTests/test262/expectations.yaml:
- JSTests/test262/harness/temporalHelpers.js:
- JSTests/test262/latest-changes-summary.txt:
- JSTests/test262/test/:
- JSTests/test262/test262-Revision.txt:
Canonical link: https://commits.webkit.org/251748@main
- 11:49 AM Changeset in webkit [295742] by
-
- 1 edit in trunk/metadata/contributors.json
Add cathiechen GitHub account to contributors.json.
https://bugs.webkit.org/show_bug.cgi?id=241861
Unreviewed.
- metadata/contributors.json:
Add cathiechen GitHub account.
Canonical link: https://commits.webkit.org/251747@main
- 11:36 AM Changeset in webkit [295741] by
-
- 5 edits in trunk/Tools/Scripts/libraries/webkitscmpy
[git-webkit] Support ranges in find
https://bugs.webkit.org/show_bug.cgi?id=241806
<rdar://95601346>
Reviewed by Ryan Haddad.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.commits): Use '.. instead of '...'
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/find.py:
(Info.main): Support .. based range queries.
(Find): Add 'list' alias.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
Canonical link: https://commits.webkit.org/251746@main
- 11:35 AM Changeset in webkit [295740] by
-
- 2 edits in trunk/Source
Make sure return value of dispatch_source_create is memory managed correctly
https://bugs.webkit.org/show_bug.cgi?id=241836
rdar://95625990
Reviewed by Chris Dumez.
- Source/WTF/wtf/cocoa/MemoryPressureHandlerCocoa.mm:
(WTF::memoryPressureEventSource):
(WTF::timerEventSource):
(WTF::MemoryPressureHandler::install):
(WTF::MemoryPressureHandler::uninstall):
(WTF::MemoryPressureHandler::holdOff):
- Source/WTF/wtf/threads/Signals.cpp:
(WTF::startMachExceptionHandlerThread):
- Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:
(WebKit::setOSTransaction):
Canonical link: https://commits.webkit.org/251745@main
- 11:12 AM Changeset in webkit [295739] by
-
- 1 edit in trunk/Source/WebCore/platform/audio/glib/MediaSessionGLib.cpp
[GLIB] Fix invalid D-Bus name for MPRIS
https://bugs.webkit.org/show_bug.cgi?id=241807
Reviewed by Philippe Normand.
A mistake introduced in #1651 used a bus name where a segment started with
a number which is not allowed. Change this to.instance-$INSTANCE_ID
to fix that.
- Source/WebCore/platform/audio/glib/MediaSessionGLib.cpp:
(WebCore::MediaSessionGLib::MediaSessionGLib):
Canonical link: https://commits.webkit.org/251744@main
- 11:02 AM Changeset in webkit [295738] by
-
- 4 edits in trunk/Tools/CISupport/ews-build
[ews-build.webkit.org] Remove check-github-integrity (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=241859
<rdar://93108238>
Reviewed by Ryan Haddad.
- Tools/CISupport/ews-build/factories.py:
(CommitQueueFactory.init): Remove VerifyGitHubIntegrity.
(MergeQueueFactoryBase.init): Ditto.
- Tools/CISupport/ews-build/factories_unittest.py:
(TestExpectedBuildSteps):
- Tools/CISupport/ews-build/steps.py:
(VerifyGitHubIntegrity): Deleted.
- Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/251743@main
- 10:57 AM Changeset in webkit [295737] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r293506): [ iOS ][ macOS ] imported/w3c/web-platform-tests/service-workers/service-worker/registration-updateviacache.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=240074
rdar://problem/92742526
Patch by Youenn Fablet <youennf@gmail.com> on 2022-06-22
Reviewed by Chris Dumez.
Before r293506, we were refreshing the imported scripts from network process only.
We are now correctly refreshing them from the caller of update.
This makes it possible to load the same scripts from various processes (web process, service worker process), which have different memory caches.
The failure happened due to the fact that different subtests were importing the same subscript with various options.
This triggered storing the subscript in different memory caches.
Some tests expect cache to kick in and expect in that case to have the same resource.
If the cache kicks in, but on different memory caches, we end up with different resources.
To prevent this in the test, we simply append the test name to each subscript import.
- LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/update-max-aged-worker.py:
(main):
- LayoutTests/platform/mac/TestExpectations:
Canonical link: https://commits.webkit.org/251742@main
- 10:23 AM Changeset in webkit [295736] by
-
- 2 edits in trunk/LayoutTests
[ WK2 ] Layout Test http/wpt/service-workers/update-service-worker.https.html is a flaky Timeout
https://bugs.webkit.org/show_bug.cgi?id=187766
rdar://problem/59459120
Patch by Youenn Fablet <youennf@gmail.com> on 2022-06-22
Reviewed by Darin Adler.
Make sure scope is fine with script URL.
- LayoutTests/http/wpt/service-workers/update-service-worker.https.html:
- LayoutTests/platform/wk2/TestExpectations:
Canonical link: https://commits.webkit.org/251741@main
- 10:13 AM Changeset in webkit [295735] by
-
- 1 edit in trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp
[GPUP] Avoid race in GPUP teardown
https://bugs.webkit.org/show_bug.cgi?id=241770
Reviewed by Simon Fraser.
When there's a low memory warning, the GPU process runs GPUProcess::tryExitIfUnused(), which sends a message
to the UI process to kill the GPU process. The Web process notices this, and runs
RemoteRenderingBackendProxy::disconnectGPUProcess(), which doesn't destroy the RemoteRenderingBackendProxy,
but does set it's internal m_gpuProcessConnection to nullptr.
However, we may be in the middle of a rendering update in the web process. If there's a rendering update
pending, WebPage::finalizeRenderingUpdate() runs, which calls finalizeRenderingUpdate() on the
RemoteRenderingBackendProxy if it exists, which then immediately tries to send a stream message to the GPU
process. Sending a message to the GPU process of course runs ensureGPUProcessConnection() to lazily create
the GPU process.
Therefore, if the low memory warning happens in the middle of a rendering update, the GPU process is killed,
but then it is immediately respawned, just to do 0 work and live forever. This is contrary to the point of
killing the GPU process under memory pressure.
This patch changes the logic of RemoteRenderingBackendProxy::finalizeRenderingUpdate() to avoid restarting
the GPU Process if the connection to it is destroyed. Philosophically, it doesn't make much sense for the
_finalization_ routine of a rendering update to start up the whole GPU process. If we're in the middle of an
animation or something, the GPU process probably won't get killed (because it isn't idle), but even if it does,
the next frame of the animation will start up the GPU process again. This patch just modifies the behavior of
the finalization routine.
I hit this when working on https://github.com/WebKit/WebKit/pull/1464. With this patch applied, the failure
rate of GPUProcess.ExitsUnderMemoryPressureCanvasCase goes from 60% to 0%.
Test: GPUProcess.ExitsUnderMemoryPressureCanvasCase
- Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::finalizeRenderingUpdate):
Canonical link: https://commits.webkit.org/251740@main
- 10:11 AM Changeset in webkit [295734] by
-
- 1 edit in trunk/Source/WebCore/platform/graphics/cv/PixelBufferConformerCV.cpp
CVPixelBufferGetBytePointerCallback should check for CVPixelBufferGetBaseAddress returning nullptr
https://bugs.webkit.org/show_bug.cgi?id=241845
rdar://95622853
Patch by Youenn Fablet <youennf@gmail.com> on 2022-06-22
Reviewed by Eric Carlson.
CVPixelBufferGetBaseAddress may return nullptr in some cases.
In that case, return early.
- Source/WebCore/platform/graphics/cv/PixelBufferConformerCV.cpp:
(WebCore::CVPixelBufferGetBytePointerCallback):
Canonical link: https://commits.webkit.org/251739@main
- 9:33 AM Changeset in webkit [295733] by
-
- 1 edit2 adds in trunk
Web Inspector: Some CSS rules for Cocoa media controls defined in inline styles inside user agent shadow root are not correctly parsed
https://bugs.webkit.org/show_bug.cgi?id=241815
rdar://85053718
Reviewed by Devin Rousso.
New test case: inspector/css/getMatchedStylesForNodeUserAgentShadowRoot.html
CSSSelectorParser has an exception that allows it to parse the following rules when the parser is in UASheetMode:
video[controls]::-webkit-media-text-track-container.visible-controls-bar
video::-webkit-media-text-track-container b
video::-webkit-media-text-track-container u
video::-webkit-media-text-track-container i
video::-webkit-media-text-track-container .hidden
These are technically invalid CSS selectors because only user action pseudo classes should be allowed after pseudo
element selectors, however exceptions exist in CSSSelectorParser to explicitly allow these otherwise invalid selectors
when the pseudo element is a WebKit-specific selector and the parsing mode is UASheetMode.
Web Inspector's InspectorStyleSheet did not previously set any special parsing mode because in a majority of cases we
never need to do this parsing of UA styles text because we do not need to resolve the actual locations of rules in a
source file since they are uneditable. These rules, being declared in the shadow root, are actually editable. To support
these rules, we now check if the owner node of the style sheet is part of a user agent shadow root, and set the parsing
mode to UASheetMode if it is.
- Source/WebCore/inspector/InspectorStyleSheet.cpp:
(ParsedStyleSheet::isInUserAgentShadowTree const):
(ParsedStyleSheet::ParsedStyleSheet):
(WebCore::InspectorStyleSheet::InspectorStyleSheet):
(WebCore::InspectorStyleSheet::ensureSourceData):
- LayoutTests/inspector/css/getMatchedStylesForNodeUserAgentShadowRoot-expected.txt: Added.
- LayoutTests/inspector/css/getMatchedStylesForNodeUserAgentShadowRoot.html: Added.
Canonical link: https://commits.webkit.org/251738@main
- 9:07 AM Changeset in webkit [295732] by
-
- 8 edits2 adds in trunk
[ iOS ] editing/selection/ios/show-callout-bar-after-selecting-word.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=240544
rdar://93458507
Reviewed by Aditya Keerthi.
Currently, any LayoutTest that attempts to wait for (or interact with) the callout bar after
selecting text fails, due to the fact that on iOS 16, the callout bar is implemented using a
UIEditMenuInteraction
on the content view, which doesn't use the extant classes for managing and
observing callout bar UI -- i.e.UIMenuController
,UICalloutBar
and the associated global
notifications.
Unfortunately, when using iOS 16, there are no longer any global notifications that the test harness
can listen for to detect when the callout bar has been presented or dismissed. To keep these tests
passing on iOS 16, we introduce a mechanism to the test harness to intercept edit menu interaction
delegate method calls, and notifyTestController
when the edit menu has completed its presention
or dismissal animations.
Also, tweak a flaky layout test that exercises this logic to be more robust — see below for more
detail.
- LayoutTests/editing/selection/ios/show-callout-bar-after-selecting-word.html:
Additionally, adjust this layout test to explicitly wait for the 'Select' menu action before trying
to select that item -- this might mitigate potential flakiness on iOS 15, due to calling
UIHelper.chooseMenuAction()
too early.
- Source/WTF/wtf/PlatformHave.h:
Add a new build-time flag to guard the availability of
UIEditMenuInteraction
.
- Tools/WebKitTestRunner/TestController.h:
- Tools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
- Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
- Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
(-[TestRunnerWKWebView textEffectsWindow]):
Add a helper method to return the web view's associated text effects window. This is used below in
TestController
when recursively searching the view hierarchy for callout menu buttons with a given
label string (e.g. "Select", "Select All", "Copy", etc.), because these buttons and labels now exist
within the view hierarchy of theUITextEffectsWindow
on iOS 16, when using the edit menu
interaction.
(-[TestRunnerWKWebView currentEditMenuInteraction]):
Add a helper method to grab the edit menu interaction corresponding to text selection on the content
view.
(-[TestRunnerWKWebView didPresentEditMenuInteraction:]):
(-[TestRunnerWKWebView didDismissEditMenuInteraction:]):
Plumb into the existing
-_didHideMenu
and-_didShowMenu
methods, which we currently use to
observe callout bar presentation and dismissal. This allows the test harness to simultaneously
support iOS 15 and iOS 16, for layout tests that exercise the callout bar.
(-[TestRunnerWKWebView immediatelyDismissEditMenuInteractionIfNeeded]):
Add a hook to immediately dismiss the callout bar between layout tests, that is compatible with
UIEditMenuInteraction-backed callout bars.
- Tools/WebKitTestRunner/ios/EditMenuInteractionSwizzler.h: Added.
- Tools/WebKitTestRunner/ios/EditMenuInteractionSwizzler.mm: Added.
Add a helper class to swizzle
-[UIEditMenuInteraction initWithDelegate:]
, and call the original
method implementation with an object that wraps the givenUIEditMenuInteractionDelegate
in another
object (EditMenuInteractionDelegateWrapper
) that forwards all selector invocations to the original
delegate (in practice:_UIContextMenuInteractionBasedTextContextInteraction
), but additionally
implements the-willPresentMenuForConfiguration:
and-willDismissMenuForConfiguration:
delegate
hooks and adds animation completion blocks that call out to the globalTestController
.
This allows us to passively observe calls to
-editMenuInteraction:(will|did)PresentMenuForConfiguration:animator:
, without affecting the
internal UIKit implementation of the text interaction assistant's edit menu interaction.
(-[EditMenuInteractionDelegateWrapper initWithDelegate:]):
(-[EditMenuInteractionDelegateWrapper forwardInvocation:]):
(-[EditMenuInteractionDelegateWrapper respondsToSelector:]):
(-[EditMenuInteractionDelegateWrapper methodSignatureForSelector:]):
(-[EditMenuInteractionDelegateWrapper editMenuInteraction:willPresentMenuForConfiguration:animator:]):
(-[EditMenuInteractionDelegateWrapper editMenuInteraction:willDismissMenuForConfiguration:animator:]):
(-[UIEditMenuInteraction swizzled_initWithDelegate:]):
(WTR::EditMenuInteractionSwizzler::EditMenuInteractionSwizzler):
(WTR::EditMenuInteractionSwizzler::~EditMenuInteractionSwizzler):
- Tools/WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformInitialize):
Initialize the edit menu interaction swizzler.
(WTR::TestController::platformResetStateToConsistentValues):
(WTR::TestController::didPresentEditMenuInteraction):
(WTR::TestController::didDismissEditMenuInteraction):
- Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::rectForMenuAction const):
Canonical link: https://commits.webkit.org/251737@main
- 8:56 AM Changeset in webkit [295731] by
-
- 10 edits1 move in trunk
Downloading DMG using WKDownload errors with "You do not have permission"
https://bugs.webkit.org/show_bug.cgi?id=234249
Reviewed by Chris Dumez.
Applications downloaded from the sandboxed network process can't be opened
on macOS because they have QTN_FLAG_HARD set. The network process can't remove
this and shouldn't be given such permission. However, WKDownload may be used
by unsandboxed applications such as TestWebKitAPI that do have permission to
remove QTN_FLAG_HARD. If this is the case, we should try to make the application
able to be opened when finishing the download. I verified you still get the warning
"Application Name" is an app downloaded from the Internet. Are you sure you want to open it?
but you no longer get the warning that can't be bypassed.
- Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj:
- Source/WebCore/PAL/pal/spi/mac/QuarantineSPI.h: Renamed from Source/WebKit/Platform/spi/mac/QuarantineSPI.h.
(QuarantineFileDeleter::operator ()):
Added helper for std::unique_ptr use with qtn_file_t
- Source/WebKit/NetworkProcess/Downloads/Download.cpp:
(WebKit::Download::Download):
- Source/WebKit/NetworkProcess/Downloads/Download.h:
(WebKit::Download::sessionID const):
(WebKit::Download::suggestedName const): Deleted.
- Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm:
- Source/WebKit/UIProcess/Cocoa/WKShareSheet.mm:
- Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
- Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::updateQuarantinePropertiesIfPossible):
(WebKit::DownloadProxy::didFinish):
- Source/WebKit/UIProcess/Downloads/DownloadProxy.h:
- Source/WebKit/WebKit.xcodeproj/project.pbxproj:
- Tools/TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
(tempFileThatDoesNotExist):
Introduce a non-ASCII character to make sure file system representation code works as expected
Canonical link: https://commits.webkit.org/251736@main
- 8:16 AM Changeset in webkit [295730] by
-
- 1 edit in trunk/Source/WebCore/editing/cocoa/DataDetection.mm
Crash under WebCore::DataDetection::detectContentInRange()
https://bugs.webkit.org/show_bug.cgi?id=241823
<rdar://95110928>
Reviewed by Wenson Hsieh.
The crash occurs in the wild when calling TextIterator::range() and
TextIterator::m_positionNode is null. Do some hardening and early return before
calling TextIterator::range() and TextIterator::atEnd() returns true to avoid
the issue.
- Source/WebCore/editing/cocoa/DataDetection.mm:
(WebCore::DataDetection::detectContentInRange):
Canonical link: https://commits.webkit.org/251735@main
- 6:40 AM Changeset in webkit [295729] by
-
- 3 edits in trunk
[CSS Container Queries] rem units don't work in queries
https://bugs.webkit.org/show_bug.cgi?id=241852
Reviewed by Antoine Quint.
- LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/font-relative-units-dynamic-expected.txt:
- LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/font-relative-units-expected.txt:
- Source/WebCore/style/ContainerQueryEvaluator.cpp:
(WebCore::Style::ContainerQueryEvaluator::selectContainer const):
Correctly pass the document element style instead of the view style.
Canonical link: https://commits.webkit.org/251734@main
- 6:36 AM Changeset in webkit [295728] by
-
- 14 edits in trunk
[web-animations] support custom properties in @keyframes rules
https://bugs.webkit.org/show_bug.cgi?id=241843
Reviewed by Antti Koivisto.
We start work towards broad support of custom properties in animations by adding support
for custom properties in @keyframes rules.
The first thing required is to allow KeyframeList and KeyframeValue to track custom properties
on top of common properties (CSSPropertyID). To that end, we add HashSet<AtomString> members
to both those classes and ensure KeyframeList::insert() adds any new custom property found
on the inserted KeyframeValue to the KeyframeList. Dedicated methods, such as
KeyframeValue::addCustomProperty() allow setting what custom properties are found on the
KeyframeValue.
Then, we need to detect that we have custom properties set in @keyframes rules. We update
Style::Resolver::styleForKeyframe() to determine whether a property in a keyframe is a
CSSCustomPropertyValue, and if it is, we get its name and use KeyframeValue::addCustomProperty()
to add it to the keyframe.
Finally, we must actually blend custom properties. Since custom properties are only animated
discretely, the logic here is simple and we add a new CSSPropertyAnimation::blendCustomProperty()
method which simply gets the custom property from either the from or to style depending on what side
of the 0.5 boundary we are.
We call this new method from KeyframeEffect::setAnimatedPropertiesInStyle() where we must now not
only iterate through common properties (CSSPropertyID) but also custom properties. We now wrap much
of that function's logic into a lambda which takes in an std::variant<CSSPropertyID, AtomString> type
with some simple checks to deal with either type in the lambda body.
- LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-inner-at-rules-expected.txt:
- LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-longhand-animation-type-expected.txt:
- LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/at-property-animation-expected.txt:
- LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/font-size-animation-expected.txt:
- LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/registered-property-revert-expected.txt:
- LayoutTests/imported/w3c/web-platform-tests/css/css-variables/variable-animation-from-to-expected.txt:
- LayoutTests/imported/w3c/web-platform-tests/css/css-variables/variable-animation-over-transition-expected.txt:
- LayoutTests/imported/w3c/web-platform-tests/css/css-variables/variable-animation-to-only-expected.txt:
- Source/WebCore/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimation::blendProperties):
(WebCore::CSSPropertyAnimation::blendCustomProperty):
- Source/WebCore/animation/CSSPropertyAnimation.h:
- Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle):
- Source/WebCore/rendering/style/KeyframeList.cpp:
(WebCore::KeyframeList::insert):
(WebCore::KeyframeList::copyKeyframes):
(WebCore::KeyframeList::containsAnimatableProperty const): Any and all custom properties is considered animatable.
- Source/WebCore/rendering/style/KeyframeList.h:
(WebCore::KeyframeValue::addCustomProperty):
(WebCore::KeyframeValue::containsCustomProperty const):
(WebCore::KeyframeValue::customProperties const):
(WebCore::KeyframeList::addCustomProperty):
(WebCore::KeyframeList::containsCustomProperty const):
(WebCore::KeyframeList::customProperties const):
- Source/WebCore/style/StyleResolver.cpp:
(WebCore::Style::Resolver::styleForKeyframe):
Canonical link: https://commits.webkit.org/251733@main
- 5:41 AM Changeset in webkit [295727] by
-
- 4 edits in trunk
AX ITM: Update the target node of a ChildrenChanged notification in addition of updating its children.
https://bugs.webkit.org/show_bug.cgi?id=241834
Reviewed by Chris Fleizach.
Fixes several tests in isolated tree mode, including:
accessibility/mac/figure-element.html [ Failure ]
accessibility/mac/progress-with-label-element.html [ Failure ]
accessibility/mac/label-element-changing-children-string-value.html [ Timeout ]
accessibility/mac/label-element-changing-textcontent-string-value.html [ Timeout ]
accessibility/visible-elements.html [ Timeout ]
In updateChildren, replaced AXIsolatedTree::updateRelatedProperties with updateNodeAndDependetnProperties to replace the whole object instead of individual properties. This will update several properties that depend on the children of any given object such as those properties that compute textUnderElement. The added cost should be marginal given that updating the children is a lot more costly.
- LayoutTests/accessibility/mac/label-element-changing-children-string-value-expected.txt:
- LayoutTests/accessibility/mac/label-element-changing-children-string-value.html:
- Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateNodeAndDependentProperties):
(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::updateTableProperties): Deleted.
(WebCore::AXIsolatedTree::updateTreeItemProperties): Deleted.
(WebCore::AXIsolatedTree::updateRelatedProperties): Deleted.
- Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
Canonical link: https://commits.webkit.org/251732@main
- 5:20 AM Changeset in webkit [295726] by
-
- 1 edit2 adds in trunk
[CSS Container Queries] Improper style sharing with container queries
https://bugs.webkit.org/show_bug.cgi?id=241848
Reviewed by Antoine Quint.
Elements affected by container queries may get different style even though DOM is perfectly symmetric because containers have different sizes.
- LayoutTests/fast/css/container-query-style-sharing-expected.html: Added.
- LayoutTests/fast/css/container-query-style-sharing.html: Added.
- Source/WebCore/style/StyleSharingResolver.cpp:
(WebCore::Style::SharingResolver::canShareStyleWithElement const):
Canonical link: https://commits.webkit.org/251731@main
- 2:20 AM Changeset in webkit [295725] by
-
- 2 edits in trunk/Source
[GLIB] Change MPRIS bus name to be sandbox friendly
https://bugs.webkit.org/show_bug.cgi?id=241807
Reviewed by Philippe Normand.
When an application has an ID this changes the name to be
org.mpris.MediaPlayer2.$APP_ID.$INSTANCE_ID which is permitted
by default with flatpak and now with our bubblewrap sandbox.
Instead of the previous org.mpris.MediaPlayer2.$APP_ID-$INSTANCE_ID
which would be blocked by sandboxes unless they allowed an
overly broad org.mpris.MediaPlayer2.* permission.
- Source/WebCore/platform/audio/glib/MediaSessionGLib.cpp:
(WebCore::MediaSessionGLib::MediaSessionGLib):
Canonical link: https://commits.webkit.org/251730@main
- 1:31 AM Changeset in webkit [295724] by
-
- 1 edit in trunk/Source/WebInspectorUI/UserInterface/Base/BrowserInspectorFrontendHost.js
[GTK][WPE] Timeline recording not working properly on new HTTP inspector
https://bugs.webkit.org/show_bug.cgi?id=240792
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2022-06-22
Reviewed by Michael Catanzaro.
The remote inspector calls setIsVisible on frontendLoaded. In case of
HTTP server we should do the same when the frontend is loaded.
- Source/WebInspectorUI/UserInterface/Base/BrowserInspectorFrontendHost.js:
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.loaded):
Canonical link: https://commits.webkit.org/251729@main