[webkit-changes] [WebKit/WebKit] 4c8817: Cherry-pick 284719 at main (9635c3817243). https://bu...

Basuke Suzuki noreply at github.com
Mon Oct 7 06:41:44 PDT 2024


  Branch: refs/heads/webkitglib/2.46
  Home:   https://github.com/WebKit/WebKit
  Commit: 4c881791dfe8582c6e23854bced6ebcbefa84bf1
      https://github.com/WebKit/WebKit/commit/4c881791dfe8582c6e23854bced6ebcbefa84bf1
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2024-10-07 (Mon, 07 Oct 2024)

  Changed paths:
    M Source/WebKit/UIProcess/WebPageProxy.cpp

  Log Message:
  -----------
  Cherry-pick 284719 at main (9635c3817243). https://bugs.webkit.org/show_bug.cgi?id=280888

    REGRESSION(282394 at 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 <basuke.suzuki at sony.com>
  Date:   2024-10-07 (Mon, 07 Oct 2024)

  Changed paths:
    M Source/WebCore/html/HTMLMediaElement.cpp

  Log Message:
  -----------
  Cherry-pick 284711 at main (5f8c88f5cf2b). https://bugs.webkit.org/show_bug.cgi?id=280903

    REGRESSION (279761 at 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


More information about the webkit-changes mailing list