Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d8576e6cceeb0595321ad30fb85d0b861377ce9d
https://github.com/WebKit/WebKit/commit/d8576e6cceeb0595321ad30fb85d0b861377ce9d
Author: Charlie Wolfe <[email protected]>
Date: 2026-06-30 (Tue, 30 Jun 2026)
Changed paths:
A
LayoutTests/http/tests/storageAccess/request-storage-access-rejected-without-gesture-should-not-activate-expected.txt
A
LayoutTests/http/tests/storageAccess/request-storage-access-rejected-without-gesture-should-not-activate.html
A
LayoutTests/http/tests/storageAccess/resources/request-storage-access-without-gesture-check-activation-iframe.html
M Source/WebCore/dom/DocumentStorageAccess.cpp
M Source/WebCore/dom/DocumentStorageAccess.h
M Source/WebCore/page/ChromeClient.h
M Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp
M Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h
M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp
M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h
M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in
M Source/WebKit/Scripts/webkit/messages.py
M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
Log Message:
-----------
Reject requestStorageAccess() without gesture should not synthesize user
activation
https://bugs.webkit.org/show_bug.cgi?id=313478
rdar://174964081
Reviewed by Matthew Finkel.
The completion handler for requestStorageAccess() preserved the user gesture
whenever the prompt was
not shown, including on the no-gesture fast-reject path. This synthesized a
UserGestureIndicator
from nothing, allowing the .catch handler to call gesture-gated APIs from a
cross-site iframe with
zero user interaction.
Gate gesture preservation on a real gesture having existed at call time.
Test:
http/tests/storageAccess/request-storage-access-rejected-without-gesture-should-not-activate.html
*
LayoutTests/http/tests/storageAccess/request-storage-access-rejected-without-gesture-should-not-activate-expected.txt:
Added.
*
LayoutTests/http/tests/storageAccess/request-storage-access-rejected-without-gesture-should-not-activate.html:
Added.
*
LayoutTests/http/tests/storageAccess/resources/request-storage-access-without-gesture-check-activation-iframe.html:
Added.
* Source/WebCore/dom/DocumentStorageAccess.cpp:
(WebCore::DocumentStorageAccess::requestStorageAccess):
(WebCore::DocumentStorageAccess::requestStorageAccessQuirk):
* Source/WebCore/dom/DocumentStorageAccess.h:
* Source/WebCore/page/ChromeClient.h:
(WebCore::ChromeClient::requestStorageAccess):
* Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccess):
* Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::requestStorageAccess):
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h:
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* Source/WebKit/Scripts/webkit/messages.py:
(headers_for_type):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::requestStorageAccess):
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::requestStorageAccess):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
Originally-landed-as: 305413.854@safari-7624-branch (6fae18f756d2).
rdar://180436613
Canonical link: https://commits.webkit.org/316120@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications