Branch: refs/heads/safari-7622.2.11.12-branch
Home: https://github.com/WebKit/WebKit
Commit: adc5169a9121a1ddf984f8c54bcd2a7a68fbd659
https://github.com/WebKit/WebKit/commit/adc5169a9121a1ddf984f8c54bcd2a7a68fbd659
Author: Mohsin Qureshi <[email protected]>
Date: 2025-10-08 (Wed, 08 Oct 2025)
Changed paths:
M Configurations/Version.xcconfig
Log Message:
-----------
Versioning.
WebKit-7
Canonical link: https://commits.webkit.org/[email protected]
Commit: 53eaa4ba4f509d57ee3505c4e36e99ada142ad5d
https://github.com/WebKit/WebKit/commit/53eaa4ba4f509d57ee3505c4e36e99ada142ad5d
Author: Dana Estra <[email protected]>
Date: 2025-10-08 (Wed, 08 Oct 2025)
Changed paths:
M Source/WebCore/Modules/mediasession/MediaSession.h
M Source/WebCore/page/Quirks.cpp
M Source/WebCore/page/Quirks.h
M Source/WebCore/page/QuirksData.h
M Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm
Log Message:
-----------
Cherry-pick 12c053fe9372. rdar://160307005
Cherry-pick 902a75fcfd40. rdar://158430821
HBO Max videos are labeled as ads in PiP
https://bugs.webkit.org/show_bug.cgi?id=298611
rdar://158430821
Reviewed by Ryan Reno.
HBO sets the skipAd action handler to an empty function, presumably
to attempt to say that the user cannot skip ads in pip. Until they
remove this, we should quirk HBO to not allow ad skipping on the site.
* Source/WebCore/Modules/mediasession/MediaSession.h:
* Source/WebCore/page/Quirks.cpp:
(WebCore::Quirks::shouldDisableAdSkippingInPip const):
(WebCore::handleHBOMaxQuirks):
* Source/WebCore/page/Quirks.h:
* Source/WebCore/page/QuirksData.h:
* Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm:
(WebKit::PlaybackSessionManager::actionHandlersChanged):
Canonical link: https://commits.webkit.org/299784@main
Update MediaSession.h
(cherry picked from commit e069374fbd3348481aa0d18989fd763cdcf3c9ed)
Canonical link:
https://commits.webkit.org/[email protected]
Canonical link: https://commits.webkit.org/[email protected]
Commit: 798078991289b644d6f02274217b0ef3b6f3a11b
https://github.com/WebKit/WebKit/commit/798078991289b644d6f02274217b0ef3b6f3a11b
Author: Wenson Hsieh <[email protected]>
Date: 2025-10-08 (Wed, 08 Oct 2025)
Changed paths:
M Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm
Log Message:
-----------
Cherry-pick 9b69ee2add84. rdar://160307005
Cherry-pick 9546eecd7fc7. rdar://160307005
Unreviewed, fix the build after 299784@main
Change:
```
if (RefPtr page = m_page.get() && !skipAdIsDisabledQuirk)
```
to:
```
if (RefPtr page = m_page.get(); page && !skipAdIsDisabledQuirk)
```
* Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm:
(WebKit::PlaybackSessionManager::actionHandlersChanged):
Canonical link: https://commits.webkit.org/299789@main
(cherry picked from commit 9546eecd7fc75470284d37f6a62f544724a8eb46)
Canonical link:
https://commits.webkit.org/[email protected]
Canonical link: https://commits.webkit.org/[email protected]
Commit: 7c152050cc881280caa11a34a68cca12c58ba255
https://github.com/WebKit/WebKit/commit/7c152050cc881280caa11a34a68cca12c58ba255
Author: Lily Spiniolas <[email protected]>
Date: 2025-10-09 (Thu, 09 Oct 2025)
Changed paths:
A
LayoutTests/editing/selection/ios/scrolling-after-caret-selection-inside-contenteditable-div-expected.txt
A
LayoutTests/editing/selection/ios/scrolling-after-caret-selection-inside-contenteditable-div.html
M LayoutTests/resources/ui-helper.js
M Source/WebKit/UIProcess/ios/WKTextInteractionWrapper.mm
M Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl
M Tools/TestRunnerShared/UIScriptContext/UIScriptController.h
M Tools/WebKitTestRunner/ios/UIScriptControllerIOS.h
M Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm
Log Message:
-----------
Cherry-pick 081f5360d06e. rdar://162144018
[iOS] Cannot scroll on gemini.google.com after sending message
https://bugs.webkit.org/show_bug.cgi?id=300153
rdar://157042896
Reviewed by Wenson Hsieh.
When selection honors overflow scrolling is enabled (specifically after
285350@main,
in which we switched from tracking scroll containers for the selection to
tracking
the graphics layer for the selection), scrolling does not work as expected
on
gemini.google.com. After typing a message and hitting the send button, it
is not
possible to scroll in the conversation log until the log is tapped. This is
the
result of views related to text selection impacting the results of
`hitTest:` in
`WKScrollView`. To prevent this from happening, there is existing logic
which calls
`makeTextSelectionViewsNonInteractiveForScope` which ensures that user
interaction
is disabled for all views in `[_textInteractionWrapper
managedTextSelectionViews]`.
However, `managedTextSelectionViews` may be empty even when views related
to text
selection are present in the view hierarchy (this is the case on
gemini.google.com).
In this scenario, `makeTextSelectionViewsNonInteractiveForScope` fails to
disable
user interaction on the text selection views, causing them to impact hit
test results.
The emptiness of `managedTextSelectionViews` is the result of the following:
After the page loads but before user interaction:
1. gemini.google.com programmatically focuses a contenteditable div on page
load (the
message field), causing a selection to be made.
2. `prepareToMoveSelectionContainer:(UIView *)newContainer` is called as a
result
of the selection. `newContainer` is not yet the `superview` of the
display interaction's
highlight view, so `[displayInteraction willMoveToView:_view]` &
`[displayInteraction didMoveToView:_view]` are called to move the views
related to
text selection.
3. To determine which views are related to text selection, we compare the
descendants
of newContainer before calling `willMoveToView` and `didMoveToView` as
mentioned above
to the descendants afterwards. These views are stored in
_managedTextSelectionViews.
4. Critically, UIKit does not actually install any views because the
interaction is not
in the activated state (the focus which got us here was programmatic).
There is no
difference between the before and after state, so
_managedTextSelectionViews remains
empty.
After activating and typing in the message field:
5. The selection/highlight views are installed by UIKit as expected.
`prepareToMoveSelectionContainer:(UIView *)newContainer` is called
afterwards, but the
highlight/selection views have already been appended to the new
container.
_managedTextSelectionViews is thus not updated, and remains empty.
After the send button is pressed:
6. The selection is not cleared despite editing ending. This is because the
message field
is a contenteditable div rather than a text input or textarea (see
webkit.org/b/38696).
The highlight views remain installed as a result.
After attempting to scroll:
7. To prevent the selection/highlight views from interfering with the
scroll view's hit test,
we temporarily disable user interaction for all of the
selection/highlight views stored in
_managedTextSelectionViews. In this case, _managedTextSelectionViews is
empty despite the
presence of the views. The hit test breaks, and scrolling does not work
as a result.
To fix this, we simply activate the display interaction before calling
`willMoveToView` and
`didMoveToView`.
Added new UIHelper method `setFocusStartsInputSessionPolicy` to change the
input session policy
during a test. This is important for the newly added layout test because to
mimic the behavior
of a physical device without a hardware keyboard, we must start the test
with the policy set
to `disallow`, and then later restore it to "auto". This is required so
that we can avoid showing
keyboard UI on the initial programmatic focus (which would have started an
actual editing session)
and then later show the keyboard UI after activating the input field, just
like a physical device
without a hardware keyboard attached.
Test:
editing/selection/ios/scrolling-after-caret-selection-inside-contenteditable-div.html
*
LayoutTests/editing/selection/ios/scrolling-after-caret-selection-inside-contenteditable-div-expected.txt:
Added.
*
LayoutTests/editing/selection/ios/scrolling-after-caret-selection-inside-contenteditable-div.html:
Added.
* LayoutTests/resources/ui-helper.js:
(window.UIHelper.setFocusStartsInputSessionPolicy):
* Source/WebKit/UIProcess/ios/WKTextInteractionWrapper.mm:
(-[WKTextInteractionWrapper prepareToMoveSelectionContainer:]):
* Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
* Tools/TestRunnerShared/UIScriptContext/UIScriptController.h:
(WTR::UIScriptController::setFocusStartsInputSessionPolicy):
* Tools/WebKitTestRunner/ios/UIScriptControllerIOS.h:
* Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::setFocusStartsInputSessionPolicy):
Canonical link: https://commits.webkit.org/301162@main
Canonical link: https://commits.webkit.org/[email protected]
Commit: 8425d83398e8c10d7e6e94ade2fa6a755ace7cfb
https://github.com/WebKit/WebKit/commit/8425d83398e8c10d7e6e94ade2fa6a755ace7cfb
Author: Mohsin Qureshi <[email protected]>
Date: 2025-10-10 (Fri, 10 Oct 2025)
Changed paths:
M Configurations/Version.xcconfig
Log Message:
-----------
Versioning.
WebKit-7
Canonical link: https://commits.webkit.org/[email protected]
Commit: 37992cb68b35104e3e62d3de622c1d60e194d3fb
https://github.com/WebKit/WebKit/commit/37992cb68b35104e3e62d3de622c1d60e194d3fb
Author: Mohsin Qureshi <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M Configurations/Version.xcconfig
Log Message:
-----------
Versioning.
WebKit-7
Canonical link: https://commits.webkit.org/[email protected]
Commit: c2dba2819ba7db70fefe24aae2b270080f8d17e3
https://github.com/WebKit/WebKit/commit/c2dba2819ba7db70fefe24aae2b270080f8d17e3
Author: Matthew Finkel <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
R
LayoutTests/http/tests/cookies/block-cookies-when-loading-document-in-sandboxed-iframe.https-expected.txt
R
LayoutTests/http/tests/cookies/block-cookies-when-loading-document-in-sandboxed-iframe.https.html
M LayoutTests/http/tests/cookies/resources/cookie-utilities.js
R
LayoutTests/http/tests/websocket/tests/hybi/resources/set-cookie-with-websocket-and-echo.https.html
R
LayoutTests/http/tests/websocket/tests/hybi/websocket-in-sandboxed-iframe.https-expected.txt
R
LayoutTests/http/tests/websocket/tests/hybi/websocket-in-sandboxed-iframe.https.html
M LayoutTests/platform/mac-wk1/TestExpectations
M Source/WebCore/loader/DocumentLoader.cpp
Log Message:
-----------
Cherry-pick f31ea22e0275. rdar://163218886
Cherry-pick 740fdbc5ab49. rdar://163218886
REGRESSION (CheerB/LuckB): iCloud webmail attachments fail to download
(cookies not forwarding to iframe request)
rdar://163218886
Blocking all cookies in the initial request from a sandboxed iframe is
too
restrictive. This causes website breakage in some limited cases where
the
server expects that SameSite={Lax,None} cookies are included, such as
on iCloud
web mail.
Reverted change:
Sandboxed iframe without same-origin flag should not have access to
its site's cookies
https://bugs.webkit.org/show_bug.cgi?id=286769
rdar://143051787
499@safari-7622-branch (25ef58bd202a)
(cherry picked from commit 740fdbc5ab49a8d00e582fa79aadf88327e93f7c)
Canonical link:
https://commits.webkit.org/[email protected]
Canonical link: https://commits.webkit.org/[email protected]
Compare: https://github.com/WebKit/WebKit/compare/adc5169a9121%5E...c2dba2819ba7
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications