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

Reply via email to