Branch: refs/heads/webkitglib/2.52
  Home:   https://github.com/WebKit/WebKit
  Commit: d7ea5ce0b4875fd179ec6656a03e1443215f145a
      
https://github.com/WebKit/WebKit/commit/d7ea5ce0b4875fd179ec6656a03e1443215f145a
  Author: Chris Dumez <[email protected]>
  Date:   2026-04-09 (Thu, 09 Apr 2026)

  Changed paths:
    M Source/WTF/wtf/Deque.h

  Log Message:
  -----------
  Cherry-pick 310082@main (7e3461d08115). 
https://bugs.webkit.org/show_bug.cgi?id=310873

    Deque's implementation truncates `size_t` to `unsigned` in a few places
    https://bugs.webkit.org/show_bug.cgi?id=310873

    Reviewed by Darin Adler.

    * Source/WTF/wtf/Deque.h:

    Canonical link: https://commits.webkit.org/310082@main

Canonical link: https://commits.webkit.org/305877.387@webkitglib/2.52


  Commit: bb7b68b3067e2899ec61fd109dde900821c238e6
      
https://github.com/WebKit/WebKit/commit/bb7b68b3067e2899ec61fd109dde900821c238e6
  Author: Chris Dumez <[email protected]>
  Date:   2026-04-09 (Thu, 09 Apr 2026)

  Changed paths:
    M Source/WTF/wtf/Deque.h

  Log Message:
  -----------
  Cherry-pick 310084@main (5f5525e0e2ec). 
https://bugs.webkit.org/show_bug.cgi?id=310872

    Deque::swap() fails to invalidate `other`'s iterators
    https://bugs.webkit.org/show_bug.cgi?id=310872

    Reviewed by Darin Adler.

    After the swap, `other`'s existing iterators still have stale `m_index`
    values that corresponded to `other`'s old data layout, but other now holds
    `this`'s old data.

    * Source/WTF/wtf/Deque.h:
    (WTF::inlineCapacity>::swap):

    Canonical link: https://commits.webkit.org/310084@main

Canonical link: https://commits.webkit.org/305877.388@webkitglib/2.52


  Commit: afac7fcaf2a6f4bdc52b33dbbd607278035e792c
      
https://github.com/WebKit/WebKit/commit/afac7fcaf2a6f4bdc52b33dbbd607278035e792c
  Author: Basuke Suzuki <[email protected]>
  Date:   2026-04-09 (Thu, 09 Apr 2026)

  Changed paths:
    M 
LayoutTests/imported/w3c/web-platform-tests/scroll-to-text-fragment/scroll-to-text-fragment-security.sub-expected.txt
    M LayoutTests/platform/ios/TestExpectations
    M LayoutTests/platform/mac/TestExpectations
    M Source/WebCore/page/LocalFrameView.cpp

  Log Message:
  -----------
  Cherry-pick 301765.417@safari-7623-branch (75bcb9f43cbe). 
https://bugs.webkit.org/show_bug.cgi?id=310872

    Block text fragments in cross-origin window.open() popups.
    rdar://163804356

    Reviewed by Chris Dumez.

    This implements a security defense against timing side-channel attacks
    using Text Fragments in cross-origin popups.

    The exploit pattern:
    w = window.open("attacker.com");
    w.location = "victim.com";
    w.location = "victim.com#:~:text=secret";
    w.location = "about:blank";
    // Measure timing to detect if text was found

    Defense mechanism:
    - Add checkTextFragmentSecurity() in LocalFrameView.cpp
    - Block text fragments when opener origin ≠ current document origin
    - Allow text fragments in same-origin popups (legitimate use)
    - Allow text fragments in top-level navigation (no opener)

    This aligns with Chrome's 2019 defense (commit c0d3c4cca8b16),
    which uses RelatedPages().size() check. WebKit uses a simpler
    cross-origin check that achieves the same security goal.

    The fix does not affect about:blank origin inheritance or WPT tests,
    as those don't use text fragments.

    Tests: http/tests/security/text-fragment/popup-cross-origin-blocked.html
           http/tests/security/text-fragment/popup-same-origin-allowed.html
    * LayoutTests/http/tests/security/resources/page-with-text.html: Added.
    * 
LayoutTests/http/tests/security/text-fragment/popup-cross-origin-blocked-expected.txt:
 Added.
    * 
LayoutTests/http/tests/security/text-fragment/popup-cross-origin-blocked.html: 
Added.
    * 
LayoutTests/http/tests/security/text-fragment/popup-same-origin-allowed-expected.txt:
 Added.
    * 
LayoutTests/http/tests/security/text-fragment/popup-same-origin-allowed.html: 
Added.
    * Source/WebCore/page/LocalFrameView.cpp:
    (WebCore::checkTextFragmentSecurity):
    (WebCore::LocalFrameView::scrollToTextFragment):

    Identifier: 301765.417@safari-7623-branch

    Identifier: 305413.221@safari-7624-branch
    Canonical link: https://commits.webkit.org/310046@main

Canonical link: https://commits.webkit.org/305877.389@webkitglib/2.52


  Commit: a54a87820272a68ef2eec7604353d164e2c4048d
      
https://github.com/WebKit/WebKit/commit/a54a87820272a68ef2eec7604353d164e2c4048d
  Author: Karl Dubost <[email protected]>
  Date:   2026-04-09 (Thu, 09 Apr 2026)

  Changed paths:
    M Source/WebCore/page/Quirks.cpp
    M Source/WebCore/page/QuirksData.h

  Log Message:
  -----------
  Cherry-pick 310809@main (81b942bfeab5). 
https://bugs.webkit.org/show_bug.cgi?id=311602

    [Quirk] invideo.io: add a window.chrome object to bypass the code sniffing.
    https://bugs.webkit.org/show_bug.cgi?id=311602
    rdar://171741842

    Reviewed by Brent Fulgham.

    There is a double block on Safari:

    1. !!window.chrome (line 1798) — a property-based sniff that excludes
       all non-Chromium browsers
    2. ["safari"].includes(browserName) (line 1921) — an explicit UA-based
       Safari exclusion via dhe(), used to prevent Safari from passing even
       if it supports the required Web APIs

    Safari actually supports both WebGL2 and SharedArrayBuffer (with proper 
COOP/COEP headers). The site's playback engine likely depends on 
Chromium-specific behavior or simply never tested on Safari/WebKit. The block 
is browser-sniffing, not feature-detection — Safari is excluded by name and by 
the absence of window.chrome, not because it lacks the required capabilities.

    There is an outreach radar too. rdar://172352516
    If you are working for invideo.io, please contact us.

    The User-Agent override has been done on the side of the Safari code.
    This part is adding the window.chrome object faking.

    * Source/WebCore/page/Quirks.cpp:
    * Source/WebCore/page/QuirksData.h:

    Canonical link: https://commits.webkit.org/310809@main

Canonical link: https://commits.webkit.org/305877.390@webkitglib/2.52


  Commit: 9cd35f1a45e094f0e2121e95432074be7677447c
      
https://github.com/WebKit/WebKit/commit/9cd35f1a45e094f0e2121e95432074be7677447c
  Author: Fujii Hironori <[email protected]>
  Date:   2026-04-09 (Thu, 09 Apr 2026)

  Changed paths:
    M Source/WebCore/page/scrolling/coordinated/ScrollerCoordinated.cpp

  Log Message:
  -----------
  Cherry-pick 310829@main (a8b923f87381). 
https://bugs.webkit.org/show_bug.cgi?id=311789

    [GTK][WPE] ASSERTION FAILED: GLContextWrapper::currentContext() in 
WebCore::BitmapTexturePool::acquireTexture()
    https://bugs.webkit.org/show_bug.cgi?id=311789

    Reviewed by Carlos Garcia Campos.

    An assertion failed in WebCore::BitmapTexturePool::acquireTexture() since 
there
    was no current GL context in the scrolling thread.

    Make the GL context current before calling 
BitmapTexturePool::acquireTexture().

    * Source/WebCore/page/scrolling/coordinated/ScrollerCoordinated.cpp:
    (WebCore::ScrollerCoordinated::updateValues):

    Canonical link: https://commits.webkit.org/310829@main

Canonical link: https://commits.webkit.org/305877.391@webkitglib/2.52


Compare: https://github.com/WebKit/WebKit/compare/db006c1bed60...9cd35f1a45e0

To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to