Diff
Modified: trunk/Source/WebCore/ChangeLog (249353 => 249354)
--- trunk/Source/WebCore/ChangeLog 2019-08-31 00:34:07 UTC (rev 249353)
+++ trunk/Source/WebCore/ChangeLog 2019-08-31 00:45:17 UTC (rev 249354)
@@ -1,5 +1,15 @@
2019-08-30 Chris Dumez <cdu...@apple.com>
+ WebPage::fromCorePage() to take and return a C++ reference
+ https://bugs.webkit.org/show_bug.cgi?id=201367
+
+ Reviewed by Antti Koivisto.
+
+ * page/Chrome.cpp:
+ (WebCore::Chrome::createWindow const):
+
+2019-08-30 Chris Dumez <cdu...@apple.com>
+
Add support for postMessage buffering between the service worker and window
https://bugs.webkit.org/show_bug.cgi?id=201169
Modified: trunk/Source/WebCore/loader/EmptyClients.cpp (249353 => 249354)
--- trunk/Source/WebCore/loader/EmptyClients.cpp 2019-08-31 00:34:07 UTC (rev 249353)
+++ trunk/Source/WebCore/loader/EmptyClients.cpp 2019-08-31 00:45:17 UTC (rev 249354)
@@ -399,7 +399,7 @@
}
private:
Ref<StorageArea> storageArea(const SecurityOriginData&) final { return adoptRef(*new EmptyStorageArea); }
- Ref<StorageNamespace> copy(Page*) final { return adoptRef(*new EmptyStorageNamespace { m_sessionID }); }
+ Ref<StorageNamespace> copy(Page&) final { return adoptRef(*new EmptyStorageNamespace { m_sessionID }); }
PAL::SessionID sessionID() const final { return m_sessionID; }
void setSessionIDForTesting(PAL::SessionID sessionID) final { m_sessionID = sessionID; };
Modified: trunk/Source/WebCore/page/Chrome.cpp (249353 => 249354)
--- trunk/Source/WebCore/page/Chrome.cpp 2019-08-31 00:34:07 UTC (rev 249353)
+++ trunk/Source/WebCore/page/Chrome.cpp 2019-08-31 00:45:17 UTC (rev 249354)
@@ -188,7 +188,7 @@
return nullptr;
if (auto* oldSessionStorage = m_page.sessionStorage(false))
- newPage->setSessionStorage(oldSessionStorage->copy(newPage));
+ newPage->setSessionStorage(oldSessionStorage->copy(*newPage));
return newPage;
}
Modified: trunk/Source/WebCore/storage/StorageNamespace.h (249353 => 249354)
--- trunk/Source/WebCore/storage/StorageNamespace.h 2019-08-31 00:34:07 UTC (rev 249353)
+++ trunk/Source/WebCore/storage/StorageNamespace.h 2019-08-31 00:45:17 UTC (rev 249354)
@@ -44,7 +44,7 @@
virtual Ref<StorageArea> storageArea(const SecurityOriginData&) = 0;
// FIXME: This is only valid for session storage and should probably be moved to a subclass.
- virtual Ref<StorageNamespace> copy(Page* newPage) = 0;
+ virtual Ref<StorageNamespace> copy(Page& newPage) = 0;
virtual PAL::SessionID sessionID() const = 0;
virtual void setSessionIDForTesting(PAL::SessionID) = 0;
Modified: trunk/Source/WebKit/ChangeLog (249353 => 249354)
--- trunk/Source/WebKit/ChangeLog 2019-08-31 00:34:07 UTC (rev 249353)
+++ trunk/Source/WebKit/ChangeLog 2019-08-31 00:45:17 UTC (rev 249354)
@@ -1,5 +1,30 @@
2019-08-30 Chris Dumez <cdu...@apple.com>
+ WebPage::fromCorePage() to take and return a C++ reference
+ https://bugs.webkit.org/show_bug.cgi?id=201367
+
+ Reviewed by Antti Koivisto.
+
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
+ * WebProcess/WebPage/VisitedLinkTableController.cpp:
+ (WebKit::VisitedLinkTableController::addVisitedLink):
+ * WebProcess/WebPage/WebFrame.cpp:
+ (WebKit::WebFrame::page const):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::fromCorePage):
+ * WebProcess/WebPage/WebPage.h:
+ * WebProcess/WebPage/WebPageOverlay.cpp:
+ (WebKit::WebPageOverlay::willMoveToPage):
+ (WebKit::WebPageOverlay::didMoveToPage):
+ * WebProcess/WebStorage/StorageNamespaceImpl.cpp:
+ (WebKit::StorageNamespaceImpl::copy):
+ * WebProcess/WebStorage/StorageNamespaceImpl.h:
+ * WebProcess/WebStorage/WebStorageNamespaceProvider.cpp:
+ (WebKit::WebStorageNamespaceProvider::createSessionStorageNamespace):
+
+2019-08-30 Chris Dumez <cdu...@apple.com>
+
[PSON] We no longer need to throw away suspended pages in a process before using it for a navigation
https://bugs.webkit.org/show_bug.cgi?id=201344
Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp (249353 => 249354)
--- trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp 2019-08-31 00:34:07 UTC (rev 249353)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp 2019-08-31 00:45:17 UTC (rev 249354)
@@ -157,25 +157,25 @@
if (preference == "WebKitTabToLinksPreferenceKey") {
WebPreferencesStore::overrideBoolValueForKey(WebPreferencesKey::tabsToLinksKey(), enabled);
for (auto* page : pages)
- WebPage::fromCorePage(page)->setTabToLinksEnabled(enabled);
+ WebPage::fromCorePage(*page).setTabToLinksEnabled(enabled);
}
if (preference == "WebKit2AsynchronousPluginInitializationEnabled") {
WebPreferencesStore::overrideBoolValueForKey(WebPreferencesKey::asynchronousPluginInitializationEnabledKey(), enabled);
for (auto* page : pages)
- WebPage::fromCorePage(page)->setAsynchronousPluginInitializationEnabled(enabled);
+ WebPage::fromCorePage(*page).setAsynchronousPluginInitializationEnabled(enabled);
}
if (preference == "WebKit2AsynchronousPluginInitializationEnabledForAllPlugins") {
WebPreferencesStore::overrideBoolValueForKey(WebPreferencesKey::asynchronousPluginInitializationEnabledForAllPluginsKey(), enabled);
for (auto* page : pages)
- WebPage::fromCorePage(page)->setAsynchronousPluginInitializationEnabledForAllPlugins(enabled);
+ WebPage::fromCorePage(*page).setAsynchronousPluginInitializationEnabledForAllPlugins(enabled);
}
if (preference == "WebKit2ArtificialPluginInitializationDelayEnabled") {
WebPreferencesStore::overrideBoolValueForKey(WebPreferencesKey::artificialPluginInitializationDelayEnabledKey(), enabled);
for (auto* page : pages)
- WebPage::fromCorePage(page)->setArtificialPluginInitializationDelayEnabled(enabled);
+ WebPage::fromCorePage(*page).setArtificialPluginInitializationDelayEnabled(enabled);
}
#if ENABLE(SERVICE_CONTROLS)
Modified: trunk/Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.cpp (249353 => 249354)
--- trunk/Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.cpp 2019-08-31 00:34:07 UTC (rev 249353)
+++ trunk/Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.cpp 2019-08-31 00:45:17 UTC (rev 249354)
@@ -80,11 +80,8 @@
if (m_visitedLinkTable.contains(linkHash))
return;
- WebPage* webPage = WebPage::fromCorePage(&page);
- if (!webPage)
- return;
-
- WebProcess::singleton().parentProcessConnection()->send(Messages::VisitedLinkStore::AddVisitedLinkHashFromPage(webPage->webPageProxyIdentifier(), linkHash), m_identifier);
+ auto& webPage = WebPage::fromCorePage(page);
+ WebProcess::singleton().parentProcessConnection()->send(Messages::VisitedLinkStore::AddVisitedLinkHashFromPage(webPage.webPageProxyIdentifier(), linkHash), m_identifier);
}
void VisitedLinkTableController::setVisitedLinkTable(const SharedMemory::Handle& handle)
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp (249353 => 249354)
--- trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp 2019-08-31 00:34:07 UTC (rev 249353)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp 2019-08-31 00:45:17 UTC (rev 249354)
@@ -170,8 +170,8 @@
if (!m_coreFrame)
return nullptr;
- if (Page* page = m_coreFrame->page())
- return WebPage::fromCorePage(page);
+ if (auto* page = m_coreFrame->page())
+ return &WebPage::fromCorePage(*page);
return nullptr;
}
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (249353 => 249354)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2019-08-31 00:34:07 UTC (rev 249353)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2019-08-31 00:45:17 UTC (rev 249354)
@@ -1680,9 +1680,9 @@
m_page->mainFrame().loader().history().restoreScrollPositionAndViewState();
}
-WebPage* WebPage::fromCorePage(Page* page)
+WebPage& WebPage::fromCorePage(Page& page)
{
- return &static_cast<WebChromeClient&>(page->chrome().client()).page();
+ return static_cast<WebChromeClient&>(page.chrome().client()).page();
}
void WebPage::setSize(const WebCore::IntSize& viewSize)
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.h (249353 => 249354)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.h 2019-08-31 00:34:07 UTC (rev 249353)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.h 2019-08-31 00:45:17 UTC (rev 249354)
@@ -288,7 +288,7 @@
void close();
- static WebPage* fromCorePage(WebCore::Page*);
+ static WebPage& fromCorePage(WebCore::Page&);
WebCore::Page* corePage() const { return m_page.get(); }
WebCore::PageIdentifier pageID() const { return m_pageID; }
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPageOverlay.cpp (249353 => 249354)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPageOverlay.cpp 2019-08-31 00:34:07 UTC (rev 249353)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPageOverlay.cpp 2019-08-31 00:45:17 UTC (rev 249354)
@@ -85,12 +85,12 @@
void WebPageOverlay::willMoveToPage(PageOverlay&, Page* page)
{
- m_client->willMoveToPage(*this, page ? WebPage::fromCorePage(page) : nullptr);
+ m_client->willMoveToPage(*this, page ? &WebPage::fromCorePage(*page) : nullptr);
}
void WebPageOverlay::didMoveToPage(PageOverlay&, Page* page)
{
- m_client->didMoveToPage(*this, page ? WebPage::fromCorePage(page) : nullptr);
+ m_client->didMoveToPage(*this, page ? &WebPage::fromCorePage(*page) : nullptr);
}
void WebPageOverlay::drawRect(PageOverlay&, GraphicsContext& context, const IntRect& dirtyRect)
Modified: trunk/Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.cpp (249353 => 249354)
--- trunk/Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.cpp 2019-08-31 00:34:07 UTC (rev 249353)
+++ trunk/Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.cpp 2019-08-31 00:45:17 UTC (rev 249354)
@@ -111,15 +111,15 @@
return StorageAreaImpl::create(map.releaseNonNull());
}
-Ref<StorageNamespace> StorageNamespaceImpl::copy(Page* newPage)
+Ref<StorageNamespace> StorageNamespaceImpl::copy(Page& newPage)
{
ASSERT(m_storageNamespaceID);
ASSERT(m_storageType == StorageType::Session);
if (auto networkProcessConnection = WebProcess::singleton().existingNetworkProcessConnection())
- networkProcessConnection->connection().send(Messages::StorageManagerSet::CloneSessionStorageNamespace(newPage->sessionID(), m_storageNamespaceID, WebPage::fromCorePage(newPage)->sessionStorageNamespaceIdentifier()), 0);
+ networkProcessConnection->connection().send(Messages::StorageManagerSet::CloneSessionStorageNamespace(newPage.sessionID(), m_storageNamespaceID, WebPage::fromCorePage(newPage).sessionStorageNamespaceIdentifier()), 0);
- return adoptRef(*new StorageNamespaceImpl(m_storageType, WebPage::fromCorePage(newPage)->sessionStorageNamespaceIdentifier(), WebPage::fromCorePage(newPage)->pageID(), m_topLevelOrigin.get(), m_quotaInBytes, newPage->sessionID()));
+ return adoptRef(*new StorageNamespaceImpl(m_storageType, WebPage::fromCorePage(newPage).sessionStorageNamespaceIdentifier(), WebPage::fromCorePage(newPage).pageID(), m_topLevelOrigin.get(), m_quotaInBytes, newPage.sessionID()));
}
void StorageNamespaceImpl::setSessionIDForTesting(PAL::SessionID sessionID)
Modified: trunk/Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.h (249353 => 249354)
--- trunk/Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.h 2019-08-31 00:34:07 UTC (rev 249353)
+++ trunk/Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.h 2019-08-31 00:45:17 UTC (rev 249354)
@@ -68,7 +68,7 @@
Ref<WebCore::StorageArea> storageArea(const WebCore::SecurityOriginData&) override;
// FIXME: This is only valid for session storage and should probably be moved to a subclass.
- Ref<WebCore::StorageNamespace> copy(WebCore::Page*) override;
+ Ref<WebCore::StorageNamespace> copy(WebCore::Page&) override;
const WebCore::StorageType m_storageType;
const Identifier m_storageNamespaceID;
Modified: trunk/Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.cpp (249353 => 249354)
--- trunk/Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.cpp 2019-08-31 00:34:07 UTC (rev 249353)
+++ trunk/Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.cpp 2019-08-31 00:45:17 UTC (rev 249354)
@@ -66,8 +66,8 @@
Ref<WebCore::StorageNamespace> WebStorageNamespaceProvider::createSessionStorageNamespace(Page& page, unsigned quota)
{
- auto* webPage = WebPage::fromCorePage(&page);
- return StorageNamespaceImpl::createSessionStorageNamespace(webPage->sessionStorageNamespaceIdentifier(), webPage->pageID(), quota, page.sessionID());
+ auto& webPage = WebPage::fromCorePage(page);
+ return StorageNamespaceImpl::createSessionStorageNamespace(webPage.sessionStorageNamespaceIdentifier(), webPage.pageID(), quota, page.sessionID());
}
Ref<WebCore::StorageNamespace> WebStorageNamespaceProvider::createLocalStorageNamespace(unsigned quota, PAL::SessionID sessionID)
Modified: trunk/Source/WebKitLegacy/Storage/StorageNamespaceImpl.cpp (249353 => 249354)
--- trunk/Source/WebKitLegacy/Storage/StorageNamespaceImpl.cpp 2019-08-31 00:34:07 UTC (rev 249353)
+++ trunk/Source/WebKitLegacy/Storage/StorageNamespaceImpl.cpp 2019-08-31 00:45:17 UTC (rev 249354)
@@ -89,7 +89,7 @@
close();
}
-Ref<StorageNamespace> StorageNamespaceImpl::copy(Page*)
+Ref<StorageNamespace> StorageNamespaceImpl::copy(Page&)
{
ASSERT(isMainThread());
ASSERT(!m_isShutdown);
Modified: trunk/Source/WebKitLegacy/Storage/StorageNamespaceImpl.h (249353 => 249354)
--- trunk/Source/WebKitLegacy/Storage/StorageNamespaceImpl.h 2019-08-31 00:34:07 UTC (rev 249353)
+++ trunk/Source/WebKitLegacy/Storage/StorageNamespaceImpl.h 2019-08-31 00:45:17 UTC (rev 249354)
@@ -61,7 +61,7 @@
StorageNamespaceImpl(WebCore::StorageType, const String& path, unsigned quota, PAL::SessionID);
Ref<WebCore::StorageArea> storageArea(const WebCore::SecurityOriginData&) override;
- Ref<StorageNamespace> copy(WebCore::Page* newPage) override;
+ Ref<StorageNamespace> copy(WebCore::Page& newPage) override;
typedef HashMap<WebCore::SecurityOriginData, RefPtr<StorageAreaImpl>> StorageAreaMap;
StorageAreaMap m_storageAreaMap;