WebKit Bugzilla
Attachment 370080 Details for
Bug 197967
: Storage Access API: Call completion handlers in NetworkConnectionToWebProcess::hasStorageAccess() and NetworkConnectionToWebProcess::requestStorageAccess() when feature is off
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-197967-20190516154822.patch (text/plain), 6.41 KB, created by
John Wilander
on 2019-05-16 15:48:23 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
John Wilander
Created:
2019-05-16 15:48:23 PDT
Size:
6.41 KB
patch
obsolete
>Subversion Revision: 245402 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 59b43702791264817ced2ae131dafdb1976afaa3..3308900a149b23d1d4a67af21e2c16c477813f6e 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,22 @@ >+2019-05-16 John Wilander <wilander@apple.com> >+ >+ Storage Access API: Call completion handlers in NetworkConnectionToWebProcess::hasStorageAccess() and NetworkConnectionToWebProcess::requestStorageAccess() when feature is off >+ https://bugs.webkit.org/show_bug.cgi?id=197967 >+ <rdar://problem/50753129> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ NetworkConnectionToWebProcess::hasStorageAccess() and NetworkConnectionToWebProcess::requestStorageAccess() >+ should call their completion handlers when there is no Resource Load Statistics object, i.e. when Resource >+ Load Statistics is off. This happens for ephemeral sessions which made code for federated login providers >+ hang, waiting for the result to document.hasStorageAccess(). >+ >+ The existing layout test case was augmented to use an ephemeral session. >+ >+ * NetworkProcess/NetworkConnectionToWebProcess.cpp: >+ (WebKit::NetworkConnectionToWebProcess::hasStorageAccess): >+ (WebKit::NetworkConnectionToWebProcess::requestStorageAccess): >+ > 2019-05-16 Alex Christensen <achristensen@webkit.org> > > Add SPI to set a list of hosts to which to send custom header fields cross-origin >diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp >index e9c98f2e2227fe1c5251770d060d2ed2e3ccde5b..36acb17db1a105b66f237a49f7a9cf22fc24c8d5 100644 >--- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp >+++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp >@@ -682,17 +682,25 @@ void NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated(Vector<WebCore > void NetworkConnectionToWebProcess::hasStorageAccess(PAL::SessionID sessionID, const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, uint64_t frameID, uint64_t pageID, CompletionHandler<void(bool)>&& completionHandler) > { > if (auto networkSession = networkProcess().networkSession(sessionID)) { >- if (auto* resourceLoadStatistics = networkSession->resourceLoadStatistics()) >+ if (auto* resourceLoadStatistics = networkSession->resourceLoadStatistics()) { > resourceLoadStatistics->hasStorageAccess(subFrameDomain, topFrameDomain, frameID, pageID, WTFMove(completionHandler)); >+ return; >+ } > } >+ >+ completionHandler(true); > } > > void NetworkConnectionToWebProcess::requestStorageAccess(PAL::SessionID sessionID, const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, uint64_t frameID, uint64_t pageID, CompletionHandler<void(WebCore::StorageAccessWasGranted wasGranted, WebCore::StorageAccessPromptWasShown promptWasShown)>&& completionHandler) > { > if (auto networkSession = networkProcess().networkSession(sessionID)) { >- if (auto* resourceLoadStatistics = networkSession->resourceLoadStatistics()) >+ if (auto* resourceLoadStatistics = networkSession->resourceLoadStatistics()) { > resourceLoadStatistics->requestStorageAccess(subFrameDomain, topFrameDomain, frameID, pageID, WTFMove(completionHandler)); >+ return; >+ } > } >+ >+ completionHandler(WebCore::StorageAccessWasGranted::Yes, WebCore::StorageAccessPromptWasShown::No); > } > > void NetworkConnectionToWebProcess::requestStorageAccessUnderOpener(PAL::SessionID sessionID, WebCore::RegistrableDomain&& domainInNeedOfStorageAccess, uint64_t openerPageID, WebCore::RegistrableDomain&& openerDomain) >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 0b6abe65dfa4b72305fdb7751e819598a0c0ab63..90c1420544ad11fbe9c77667b14bbd942a85ef64 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,15 @@ >+2019-05-16 John Wilander <wilander@apple.com> >+ >+ Storage Access API: Call completion handlers in NetworkConnectionToWebProcess::hasStorageAccess() and NetworkConnectionToWebProcess::requestStorageAccess() when feature is off >+ https://bugs.webkit.org/show_bug.cgi?id=197967 >+ <rdar://problem/50753129> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * http/tests/storageAccess/has-storage-access-true-if-feature-off.html: >+ * platform/mac-wk2/TestExpectations: >+ Test case marked as [ Pass ]. >+ > 2019-05-16 Youenn Fablet <youenn@apple.com> > > Layout Test http/wpt/cache-storage/cache-quota-add.any.html is a flaky failure >diff --git a/LayoutTests/http/tests/storageAccess/has-storage-access-true-if-feature-off.html b/LayoutTests/http/tests/storageAccess/has-storage-access-true-if-feature-off.html >index d3fcb52d1044c792f276167d0617efebba95b281..acaf0528b61d994ace63325ae350a5eff4f012da 100644 >--- a/LayoutTests/http/tests/storageAccess/has-storage-access-true-if-feature-off.html >+++ b/LayoutTests/http/tests/storageAccess/has-storage-access-true-if-feature-off.html >@@ -8,6 +8,9 @@ > description("Tests that document.hasStorageAccess() returns true for a 3rd-party iframe if there is no way to request access (feature off)."); > jsTestIsAsync = true; > >+ if (window.testRunner) >+ testRunner.setPrivateBrowsingEnabled(true); >+ > window.addEventListener("message", receiveMessage, false); > > function receiveMessage(event) { >diff --git a/LayoutTests/platform/mac-wk2/TestExpectations b/LayoutTests/platform/mac-wk2/TestExpectations >index 82a6890555f7534c1923eecd5a0b0aeff80e1a92..24e66d32da5baac3cc415e6647b20c7d55fe9bd6 100644 >--- a/LayoutTests/platform/mac-wk2/TestExpectations >+++ b/LayoutTests/platform/mac-wk2/TestExpectations >@@ -731,6 +731,7 @@ http/tests/resourceLoadStatistics/user-interaction-reported-after-website-data-r > [ HighSierra+ ] http/tests/storageAccess/grant-with-prompt-preserves-gesture.html [ Pass ] > [ HighSierra+ ] http/tests/storageAccess/deny-with-prompt-does-not-preserve-gesture.html [ Skip ] > [ HighSierra+ ] http/tests/storageAccess/deny-without-prompt-preserves-gesture.html [ Pass ] >+[ HighSierra+ ] http/tests/storageAccess/has-storage-access-true-if-feature-off.html [ Pass ] > > # As of https://trac.webkit.org/changeset/227762 the timestampResolution is just 5 seconds which makes this test flaky > http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time.html [ Skip ]
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 197967
: 370080