Diff
Modified: branches/safari-608.2.11.1-branch/Source/WebCore/ChangeLog (249773 => 249774)
--- branches/safari-608.2.11.1-branch/Source/WebCore/ChangeLog 2019-09-11 20:11:59 UTC (rev 249773)
+++ branches/safari-608.2.11.1-branch/Source/WebCore/ChangeLog 2019-09-11 20:12:03 UTC (rev 249774)
@@ -1,54 +1,3 @@
-2019-09-11 Kocsen Chung <kocsen_ch...@apple.com>
-
- Cherry-pick r249359. rdar://problem/55240886
-
- DocumentStorageAccess::hasStorageAccess() / requestStorageAccess() don't need to know about pageID / frameID
- https://bugs.webkit.org/show_bug.cgi?id=201364
-
- Reviewed by John Wilander.
-
- Source/WebCore:
-
- DocumentStorageAccess::hasStorageAccess() / requestStorageAccess() don't need to know about pageID / frameID. pageID is
- redundant since it is being ignored by the callee. For the frame, simply pass the frame object in.
-
- * dom/DocumentStorageAccess.cpp:
- (WebCore::DocumentStorageAccess::hasStorageAccess):
- (WebCore::DocumentStorageAccess::requestStorageAccess):
- * page/ChromeClient.h:
- (WebCore::ChromeClient::hasStorageAccess):
- (WebCore::ChromeClient::requestStorageAccess):
-
- Source/WebKit:
-
- * WebProcess/WebCoreSupport/WebChromeClient.cpp:
- (WebKit::WebChromeClient::hasStorageAccess):
- (WebKit::WebChromeClient::requestStorageAccess):
- * WebProcess/WebCoreSupport/WebChromeClient.h:
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::hasStorageAccess):
- (WebKit::WebPage::requestStorageAccess):
- * WebProcess/WebPage/WebPage.h:
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249359 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2019-08-31 Chris Dumez <cdu...@apple.com>
-
- DocumentStorageAccess::hasStorageAccess() / requestStorageAccess() don't need to know about pageID / frameID
- https://bugs.webkit.org/show_bug.cgi?id=201364
-
- Reviewed by John Wilander.
-
- DocumentStorageAccess::hasStorageAccess() / requestStorageAccess() don't need to know about pageID / frameID. pageID is
- redundant since it is being ignored by the callee. For the frame, simply pass the frame object in.
-
- * dom/DocumentStorageAccess.cpp:
- (WebCore::DocumentStorageAccess::hasStorageAccess):
- (WebCore::DocumentStorageAccess::requestStorageAccess):
- * page/ChromeClient.h:
- (WebCore::ChromeClient::hasStorageAccess):
- (WebCore::ChromeClient::requestStorageAccess):
-
2019-09-05 Kocsen Chung <kocsen_ch...@apple.com>
Cherry-pick r249534. rdar://problem/55084674
Modified: branches/safari-608.2.11.1-branch/Source/WebCore/dom/DocumentStorageAccess.cpp (249773 => 249774)
--- branches/safari-608.2.11.1-branch/Source/WebCore/dom/DocumentStorageAccess.cpp 2019-09-11 20:11:59 UTC (rev 249773)
+++ branches/safari-608.2.11.1-branch/Source/WebCore/dom/DocumentStorageAccess.cpp 2019-09-11 20:12:03 UTC (rev 249774)
@@ -74,18 +74,17 @@
{
ASSERT(m_document.settings().storageAccessAPIEnabled());
- auto* frame = m_document.frame();
- if (frame && hasFrameSpecificStorageAccess()) {
+ if (m_document.frame() && hasFrameSpecificStorageAccess()) {
promise->resolve<IDLBoolean>(true);
return;
}
- if (!frame || m_document.securityOrigin().isUnique()) {
+ if (!m_document.frame() || m_document.securityOrigin().isUnique()) {
promise->resolve<IDLBoolean>(false);
return;
}
- if (frame->isMainFrame()) {
+ if (m_document.frame()->isMainFrame()) {
promise->resolve<IDLBoolean>(true);
return;
}
@@ -97,20 +96,27 @@
return;
}
- auto* page = frame->page();
- if (!page) {
+ auto frameID = m_document.frame()->loader().client().frameID();
+ auto pageID = m_document.frame()->loader().client().pageID();
+ if (!frameID || !pageID) {
promise->reject();
return;
}
- auto subFrameDomain = RegistrableDomain::uncheckedCreateFromHost(securityOrigin.host());
- auto topFrameDomain = RegistrableDomain::uncheckedCreateFromHost(topSecurityOrigin.host());
- page->chrome().client().hasStorageAccess(WTFMove(subFrameDomain), WTFMove(topFrameDomain), *frame, [weakThis = makeWeakPtr(*this), promise = WTFMove(promise)] (bool hasAccess) {
- if (!weakThis)
- return;
-
- promise->resolve<IDLBoolean>(hasAccess);
- });
+ if (Page* page = m_document.page()) {
+ auto subFrameDomain = RegistrableDomain::uncheckedCreateFromHost(securityOrigin.host());
+ auto topFrameDomain = RegistrableDomain::uncheckedCreateFromHost(topSecurityOrigin.host());
+ page->chrome().client().hasStorageAccess(WTFMove(subFrameDomain), WTFMove(topFrameDomain), frameID.value(), pageID.value(), [weakThis = makeWeakPtr(*this), promise = WTFMove(promise)] (bool hasAccess) {
+ DocumentStorageAccess* document = weakThis.get();
+ if (!document)
+ return;
+
+ promise->resolve<IDLBoolean>(hasAccess);
+ });
+ return;
+ }
+
+ promise->reject();
}
void DocumentStorageAccess::requestStorageAccess(Ref<DeferredPromise>&& promise)
@@ -117,18 +123,17 @@
{
ASSERT(m_document.settings().storageAccessAPIEnabled());
- auto* frame = m_document.frame();
- if (frame && hasFrameSpecificStorageAccess()) {
+ if (m_document.frame() && hasFrameSpecificStorageAccess()) {
promise->resolve();
return;
}
- if (!frame || m_document.securityOrigin().isUnique() || !isAllowedToRequestFrameSpecificStorageAccess()) {
+ if (!m_document.frame() || m_document.securityOrigin().isUnique() || !isAllowedToRequestFrameSpecificStorageAccess()) {
promise->reject();
return;
}
- if (frame->isMainFrame()) {
+ if (m_document.frame()->isMainFrame()) {
promise->resolve();
return;
}
@@ -158,8 +163,10 @@
return;
}
- auto* page = frame->page();
- if (!page) {
+ Page* page = m_document.page();
+ auto frameID = m_document.frame()->loader().client().frameID();
+ auto pageID = m_document.frame()->loader().client().pageID();
+ if (!page || !frameID || !pageID) {
promise->reject();
return;
}
@@ -167,8 +174,9 @@
auto subFrameDomain = RegistrableDomain::uncheckedCreateFromHost(securityOrigin.host());
auto topFrameDomain = RegistrableDomain::uncheckedCreateFromHost(topSecurityOrigin.host());
- page->chrome().client().requestStorageAccess(WTFMove(subFrameDomain), WTFMove(topFrameDomain), *frame, [this, weakThis = makeWeakPtr(*this), promise = WTFMove(promise)] (StorageAccessWasGranted wasGranted, StorageAccessPromptWasShown promptWasShown) mutable {
- if (!weakThis)
+ page->chrome().client().requestStorageAccess(WTFMove(subFrameDomain), WTFMove(topFrameDomain), frameID.value(), pageID.value(), [documentReference = makeWeakPtr(*this), promise = WTFMove(promise)] (StorageAccessWasGranted wasGranted, StorageAccessPromptWasShown promptWasShown) mutable {
+ DocumentStorageAccess* document = documentReference.get();
+ if (!document)
return;
// Consume the user gesture only if the user explicitly denied access.
@@ -175,25 +183,25 @@
bool shouldPreserveUserGesture = wasGranted == StorageAccessWasGranted::Yes || promptWasShown == StorageAccessPromptWasShown::No;
if (shouldPreserveUserGesture) {
- MicrotaskQueue::mainThreadQueue().append(std::make_unique<VoidMicrotask>([this, weakThis] () {
- if (weakThis)
- enableTemporaryTimeUserGesture();
+ MicrotaskQueue::mainThreadQueue().append(std::make_unique<VoidMicrotask>([documentReference = makeWeakPtr(*document)] () {
+ if (auto* document = documentReference.get())
+ document->enableTemporaryTimeUserGesture();
}));
}
if (wasGranted == StorageAccessWasGranted::Yes) {
- setHasFrameSpecificStorageAccess(true);
+ document->setHasFrameSpecificStorageAccess(true);
promise->resolve();
} else {
if (promptWasShown == StorageAccessPromptWasShown::Yes)
- setWasExplicitlyDeniedFrameSpecificStorageAccess();
+ document->setWasExplicitlyDeniedFrameSpecificStorageAccess();
promise->reject();
}
if (shouldPreserveUserGesture) {
- MicrotaskQueue::mainThreadQueue().append(std::make_unique<VoidMicrotask>([this, weakThis = WTFMove(weakThis)] () {
- if (weakThis)
- consumeTemporaryTimeUserGesture();
+ MicrotaskQueue::mainThreadQueue().append(std::make_unique<VoidMicrotask>([documentReference = WTFMove(documentReference)] () {
+ if (auto* document = documentReference.get())
+ document->consumeTemporaryTimeUserGesture();
}));
}
});
Modified: branches/safari-608.2.11.1-branch/Source/WebCore/page/ChromeClient.h (249773 => 249774)
--- branches/safari-608.2.11.1-branch/Source/WebCore/page/ChromeClient.h 2019-09-11 20:11:59 UTC (rev 249773)
+++ branches/safari-608.2.11.1-branch/Source/WebCore/page/ChromeClient.h 2019-09-11 20:12:03 UTC (rev 249774)
@@ -488,8 +488,8 @@
virtual RefPtr<Icon> createIconForFiles(const Vector<String>& /* filenames */) = 0;
#if ENABLE(RESOURCE_LOAD_STATISTICS)
- virtual void hasStorageAccess(RegistrableDomain&& /*subFrameDomain*/, RegistrableDomain&& /*topFrameDomain*/, Frame&, WTF::CompletionHandler<void(bool)>&& completionHandler) { completionHandler(false); }
- virtual void requestStorageAccess(RegistrableDomain&& /*subFrameDomain*/, RegistrableDomain&& /*topFrameDomain*/, Frame&, WTF::CompletionHandler<void(StorageAccessWasGranted, StorageAccessPromptWasShown)>&& completionHandler) { completionHandler(StorageAccessWasGranted::No, StorageAccessPromptWasShown::No); }
+ virtual void hasStorageAccess(RegistrableDomain&& /*subFrameDomain*/, RegistrableDomain&& /*topFrameDomain*/, uint64_t /*frameID*/, PageIdentifier, WTF::CompletionHandler<void(bool)>&& completionHandler) { completionHandler(false); }
+ virtual void requestStorageAccess(RegistrableDomain&& /*subFrameDomain*/, RegistrableDomain&& /*topFrameDomain*/, uint64_t /*frameID*/, PageIdentifier, WTF::CompletionHandler<void(StorageAccessWasGranted, StorageAccessPromptWasShown)>&& completionHandler) { completionHandler(StorageAccessWasGranted::No, StorageAccessPromptWasShown::No); }
#endif
#if ENABLE(DEVICE_ORIENTATION)
Modified: branches/safari-608.2.11.1-branch/Source/WebKit/ChangeLog (249773 => 249774)
--- branches/safari-608.2.11.1-branch/Source/WebKit/ChangeLog 2019-09-11 20:11:59 UTC (rev 249773)
+++ branches/safari-608.2.11.1-branch/Source/WebKit/ChangeLog 2019-09-11 20:12:03 UTC (rev 249774)
@@ -1,53 +1,3 @@
-2019-09-11 Kocsen Chung <kocsen_ch...@apple.com>
-
- Cherry-pick r249359. rdar://problem/55240886
-
- DocumentStorageAccess::hasStorageAccess() / requestStorageAccess() don't need to know about pageID / frameID
- https://bugs.webkit.org/show_bug.cgi?id=201364
-
- Reviewed by John Wilander.
-
- Source/WebCore:
-
- DocumentStorageAccess::hasStorageAccess() / requestStorageAccess() don't need to know about pageID / frameID. pageID is
- redundant since it is being ignored by the callee. For the frame, simply pass the frame object in.
-
- * dom/DocumentStorageAccess.cpp:
- (WebCore::DocumentStorageAccess::hasStorageAccess):
- (WebCore::DocumentStorageAccess::requestStorageAccess):
- * page/ChromeClient.h:
- (WebCore::ChromeClient::hasStorageAccess):
- (WebCore::ChromeClient::requestStorageAccess):
-
- Source/WebKit:
-
- * WebProcess/WebCoreSupport/WebChromeClient.cpp:
- (WebKit::WebChromeClient::hasStorageAccess):
- (WebKit::WebChromeClient::requestStorageAccess):
- * WebProcess/WebCoreSupport/WebChromeClient.h:
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::hasStorageAccess):
- (WebKit::WebPage::requestStorageAccess):
- * WebProcess/WebPage/WebPage.h:
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249359 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2019-08-31 Chris Dumez <cdu...@apple.com>
-
- DocumentStorageAccess::hasStorageAccess() / requestStorageAccess() don't need to know about pageID / frameID
- https://bugs.webkit.org/show_bug.cgi?id=201364
-
- Reviewed by John Wilander.
-
- * WebProcess/WebCoreSupport/WebChromeClient.cpp:
- (WebKit::WebChromeClient::hasStorageAccess):
- (WebKit::WebChromeClient::requestStorageAccess):
- * WebProcess/WebCoreSupport/WebChromeClient.h:
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::hasStorageAccess):
- (WebKit::WebPage::requestStorageAccess):
- * WebProcess/WebPage/WebPage.h:
-
2019-09-09 Alan Coon <alanc...@apple.com>
Cherry-pick r249649. rdar://problem/55198064
Modified: branches/safari-608.2.11.1-branch/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp (249773 => 249774)
--- branches/safari-608.2.11.1-branch/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp 2019-09-11 20:11:59 UTC (rev 249773)
+++ branches/safari-608.2.11.1-branch/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp 2019-09-11 20:12:03 UTC (rev 249774)
@@ -1327,18 +1327,14 @@
}
#if ENABLE(RESOURCE_LOAD_STATISTICS)
-void WebChromeClient::hasStorageAccess(RegistrableDomain&& subFrameDomain, RegistrableDomain&& topFrameDomain, Frame& frame, CompletionHandler<void(bool)>&& completionHandler)
+void WebChromeClient::hasStorageAccess(RegistrableDomain&& subFrameDomain, RegistrableDomain&& topFrameDomain, uint64_t frameID, PageIdentifier, CompletionHandler<void(bool)>&& completionHandler)
{
- auto* webFrame = WebFrame::fromCoreFrame(frame);
- ASSERT(webFrame);
- m_page.hasStorageAccess(WTFMove(subFrameDomain), WTFMove(topFrameDomain), *webFrame, WTFMove(completionHandler));
+ m_page.hasStorageAccess(WTFMove(subFrameDomain), WTFMove(topFrameDomain), frameID, WTFMove(completionHandler));
}
-void WebChromeClient::requestStorageAccess(RegistrableDomain&& subFrameDomain, RegistrableDomain&& topFrameDomain, Frame& frame, CompletionHandler<void(StorageAccessWasGranted, StorageAccessPromptWasShown)>&& completionHandler)
+void WebChromeClient::requestStorageAccess(RegistrableDomain&& subFrameDomain, RegistrableDomain&& topFrameDomain, uint64_t frameID, PageIdentifier, CompletionHandler<void(StorageAccessWasGranted, StorageAccessPromptWasShown)>&& completionHandler)
{
- auto* webFrame = WebFrame::fromCoreFrame(frame);
- ASSERT(webFrame);
- m_page.requestStorageAccess(WTFMove(subFrameDomain), WTFMove(topFrameDomain), *webFrame, WTFMove(completionHandler));
+ m_page.requestStorageAccess(WTFMove(subFrameDomain), WTFMove(topFrameDomain), frameID, WTFMove(completionHandler));
}
#endif
Modified: branches/safari-608.2.11.1-branch/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h (249773 => 249774)
--- branches/safari-608.2.11.1-branch/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h 2019-09-11 20:11:59 UTC (rev 249773)
+++ branches/safari-608.2.11.1-branch/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h 2019-09-11 20:12:03 UTC (rev 249774)
@@ -370,8 +370,8 @@
void didInvalidateDocumentMarkerRects() final;
#if ENABLE(RESOURCE_LOAD_STATISTICS)
- void hasStorageAccess(WebCore::RegistrableDomain&& subFrameDomain, WebCore::RegistrableDomain&& topFrameDomain, WebCore::Frame&, WTF::CompletionHandler<void(bool)>&&) final;
- void requestStorageAccess(WebCore::RegistrableDomain&& subFrameDomain, WebCore::RegistrableDomain&& topFrameDomain, WebCore::Frame&, WTF::CompletionHandler<void(WebCore::StorageAccessWasGranted, WebCore::StorageAccessPromptWasShown)>&&) final;
+ void hasStorageAccess(WebCore::RegistrableDomain&& subFrameDomain, WebCore::RegistrableDomain&& topFrameDomain, uint64_t frameID, WebCore::PageIdentifier, WTF::CompletionHandler<void(bool)>&&) final;
+ void requestStorageAccess(WebCore::RegistrableDomain&& subFrameDomain, WebCore::RegistrableDomain&& topFrameDomain, uint64_t frameID, WebCore::PageIdentifier, WTF::CompletionHandler<void(WebCore::StorageAccessWasGranted, WebCore::StorageAccessPromptWasShown)>&&) final;
#endif
#if ENABLE(DEVICE_ORIENTATION)
Modified: branches/safari-608.2.11.1-branch/Source/WebKit/WebProcess/WebPage/WebPage.cpp (249773 => 249774)
--- branches/safari-608.2.11.1-branch/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2019-09-11 20:11:59 UTC (rev 249773)
+++ branches/safari-608.2.11.1-branch/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2019-09-11 20:12:03 UTC (rev 249774)
@@ -6538,14 +6538,14 @@
}
#if ENABLE(RESOURCE_LOAD_STATISTICS)
-void WebPage::hasStorageAccess(RegistrableDomain&& subFrameDomain, RegistrableDomain&& topFrameDomain, WebFrame& frame, CompletionHandler<void(bool)>&& completionHandler)
+void WebPage::hasStorageAccess(RegistrableDomain&& subFrameDomain, RegistrableDomain&& topFrameDomain, uint64_t frameID, CompletionHandler<void(bool)>&& completionHandler)
{
- WebProcess::singleton().ensureNetworkProcessConnection().connection().sendWithAsyncReply(Messages::NetworkConnectionToWebProcess::HasStorageAccess(sessionID(), WTFMove(subFrameDomain), WTFMove(topFrameDomain), frame.frameID(), m_pageID), WTFMove(completionHandler));
+ WebProcess::singleton().ensureNetworkProcessConnection().connection().sendWithAsyncReply(Messages::NetworkConnectionToWebProcess::HasStorageAccess(sessionID(), WTFMove(subFrameDomain), WTFMove(topFrameDomain), frameID, m_pageID), WTFMove(completionHandler));
}
-void WebPage::requestStorageAccess(RegistrableDomain&& subFrameDomain, RegistrableDomain&& topFrameDomain, WebFrame& frame, CompletionHandler<void(WebCore::StorageAccessWasGranted, WebCore::StorageAccessPromptWasShown)>&& completionHandler)
+void WebPage::requestStorageAccess(RegistrableDomain&& subFrameDomain, RegistrableDomain&& topFrameDomain, uint64_t frameID, CompletionHandler<void(WebCore::StorageAccessWasGranted, WebCore::StorageAccessPromptWasShown)>&& completionHandler)
{
- WebProcess::singleton().ensureNetworkProcessConnection().connection().sendWithAsyncReply(Messages::NetworkConnectionToWebProcess::RequestStorageAccess(sessionID(), WTFMove(subFrameDomain), WTFMove(topFrameDomain), frame.frameID(), m_pageID), WTFMove(completionHandler));
+ WebProcess::singleton().ensureNetworkProcessConnection().connection().sendWithAsyncReply(Messages::NetworkConnectionToWebProcess::RequestStorageAccess(sessionID(), WTFMove(subFrameDomain), WTFMove(topFrameDomain), frameID, m_pageID), WTFMove(completionHandler));
}
void WebPage::wasLoadedWithDataTransferFromPrevalentResource()
Modified: branches/safari-608.2.11.1-branch/Source/WebKit/WebProcess/WebPage/WebPage.h (249773 => 249774)
--- branches/safari-608.2.11.1-branch/Source/WebKit/WebProcess/WebPage/WebPage.h 2019-09-11 20:11:59 UTC (rev 249773)
+++ branches/safari-608.2.11.1-branch/Source/WebKit/WebProcess/WebPage/WebPage.h 2019-09-11 20:12:03 UTC (rev 249774)
@@ -1132,8 +1132,8 @@
void flushPendingEditorStateUpdate();
#if ENABLE(RESOURCE_LOAD_STATISTICS)
- void hasStorageAccess(WebCore::RegistrableDomain&& subFrameDomain, WebCore::RegistrableDomain&& topFrameDomain, WebFrame&, CompletionHandler<void(bool)>&&);
- void requestStorageAccess(WebCore::RegistrableDomain&& subFrameDomain, WebCore::RegistrableDomain&& topFrameDomain, WebFrame&, CompletionHandler<void(WebCore::StorageAccessWasGranted, WebCore::StorageAccessPromptWasShown)>&&);
+ void hasStorageAccess(WebCore::RegistrableDomain&& subFrameDomain, WebCore::RegistrableDomain&& topFrameDomain, uint64_t frameID, CompletionHandler<void(bool)>&&);
+ void requestStorageAccess(WebCore::RegistrableDomain&& subFrameDomain, WebCore::RegistrableDomain&& topFrameDomain, uint64_t frameID, CompletionHandler<void(WebCore::StorageAccessWasGranted, WebCore::StorageAccessPromptWasShown)>&&);
void wasLoadedWithDataTransferFromPrevalentResource();
#endif