Branch: refs/heads/webkitglib/2.46
Home: https://github.com/WebKit/WebKit
Commit: 4c881791dfe8582c6e23854bced6ebcbefa84bf1
https://github.com/WebKit/WebKit/commit/4c881791dfe8582c6e23854bced6ebcbefa84bf1
Author: Alex Christensen <[email protected]>
Date: 2024-10-07 (Mon, 07 Oct 2024)
Changed paths:
M Source/WebKit/UIProcess/WebPageProxy.cpp
Log Message:
-----------
Cherry-pick 284719@main (9635c3817243).
https://bugs.webkit.org/show_bug.cgi?id=280888
REGRESSION(282394@main): Flaky ASSERTION FAILED: !users.contains(pageID) on
TestWebKitAPI.ProcessSwap.ConcurrentHistoryNavigations
https://bugs.webkit.org/show_bug.cgi?id=280888
rdar://136716513
Reviewed by Chris Dumez.
The assertion happens when registering a pageID as a VisitedLinkStore
client and the crash
happens if the pageID is already registered. Normally, when we construct a
ProvisionalPageProxy
(for a process swap), we will register the pageID as a VisitedLinkStore
client for the new
WebProcess used for the navigation. However, due to a race, the
ProvisionalPageProxy sometimes
ends up using the same WebProcess as the WebPageProxy's current WebProcess.
This doesn't make
sense since ProvisionalPageProxy is only supposed to be used in case of
process-swap.
The race is in WebPageProxy::receivedNavigationActionPolicyDecision(),
where the lambda may
sometimes run after the frame has been detached from the frame tree (the
frame has been replaced).
To address the issue, we now early return in the lambda if the frame has
been detached so that
we don't attempt to do a process swap in this case.
This case is hit by the API test WKNavigation.HTTPSOnlyWithHTTPRedirect
which rapidly redirects
back and forth until the maximum number of redirects is hit. The early
return is registering
one fewer callback now, which is fine. The exact number of callbacks isn't
what that test was
testing, but rather that didFailNavigation happens after it is hit.
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::receivedNavigationActionPolicyDecision):
Canonical link: https://commits.webkit.org/284719@main
Canonical link: https://commits.webkit.org/282416.195@webkitglib/2.46
Commit: a9013872315792c1e94554f7776268e636be5f5d
https://github.com/WebKit/WebKit/commit/a9013872315792c1e94554f7776268e636be5f5d
Author: Basuke Suzuki <[email protected]>
Date: 2024-10-07 (Mon, 07 Oct 2024)
Changed paths:
M Source/WebCore/html/HTMLMediaElement.cpp
Log Message:
-----------
Cherry-pick 284711@main (5f8c88f5cf2b).
https://bugs.webkit.org/show_bug.cgi?id=280903
REGRESSION (279761@main): Returning to inline playback from fullscreen
shows only the play/pause button instead of the full controls
https://bugs.webkit.org/show_bug.cgi?id=280903
rdar://134924988
Reviewed by Andy Estes.
Full control should be displayed when switching back from fullscreen mode,
but play/pause button is displayed.
Steps to reproduce:
1. Open https://developer.apple.com/videos/play/wwdc2023/10279/ in Safari
on macOS
2. Start video playback
3. Enter fullscreen
4. Exit fullscreen
At this point you’ll notice that the only media control available is the
play/pause button instead of the full media controls.
The issue is introduced with the following commit:
https://commits.webkit.org/279761@main
The logic added to HTMLMediaElement::shouldForceControlsDisplay() is for
tvOS and no reason to apply it to other platform.
Wrapping the logic with PLATFORM(APPLETV) should fix the issue.
* Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::shouldForceControlsDisplay const):
Canonical link: https://commits.webkit.org/284711@main
Canonical link: https://commits.webkit.org/282416.196@webkitglib/2.46
Compare: https://github.com/WebKit/WebKit/compare/6f211be22cef...a90138723157
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes