Modified: trunk/Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp (241837 => 241838)
--- trunk/Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp 2019-02-20 22:22:07 UTC (rev 241837)
+++ trunk/Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp 2019-02-20 22:22:17 UTC (rev 241838)
@@ -40,7 +40,7 @@
HTTPCookieStore::HTTPCookieStore(WebKit::WebsiteDataStore& websiteDataStore)
: m_owningDataStore(websiteDataStore)
{
- if (!m_owningDataStore->processPoolForCookieStorageOperations())
+ if (!m_owningDataStore.processPoolForCookieStorageOperations())
registerForNewProcessPoolNotifications();
}
@@ -55,12 +55,12 @@
void HTTPCookieStore::cookies(CompletionHandler<void(const Vector<WebCore::Cookie>&)>&& completionHandler)
{
- auto* pool = m_owningDataStore->processPoolForCookieStorageOperations();
+ auto* pool = m_owningDataStore.processPoolForCookieStorageOperations();
if (!pool) {
Vector<WebCore::Cookie> allCookies;
- if (m_owningDataStore->sessionID() == PAL::SessionID::defaultSessionID())
+ if (m_owningDataStore.sessionID() == PAL::SessionID::defaultSessionID())
allCookies = getAllDefaultUIProcessCookieStoreCookies();
- allCookies.appendVector(m_owningDataStore->pendingCookies());
+ allCookies.appendVector(m_owningDataStore.pendingCookies());
callOnMainThread([completionHandler = WTFMove(completionHandler), allCookies] () mutable {
completionHandler(allCookies);
@@ -69,7 +69,7 @@
}
auto* cookieManager = pool->supplement<WebKit::WebCookieManagerProxy>();
- cookieManager->getAllCookies(m_owningDataStore->sessionID(), [pool = WTFMove(pool), completionHandler = WTFMove(completionHandler)] (const Vector<WebCore::Cookie>& cookies, CallbackBase::Error error) mutable {
+ cookieManager->getAllCookies(m_owningDataStore.sessionID(), [pool = WTFMove(pool), completionHandler = WTFMove(completionHandler)] (const Vector<WebCore::Cookie>& cookies, CallbackBase::Error error) mutable {
completionHandler(cookies);
});
}
@@ -76,13 +76,13 @@
void HTTPCookieStore::setCookie(const WebCore::Cookie& cookie, CompletionHandler<void()>&& completionHandler)
{
- auto* pool = m_owningDataStore->processPoolForCookieStorageOperations();
+ auto* pool = m_owningDataStore.processPoolForCookieStorageOperations();
if (!pool) {
// FIXME: pendingCookies used for defaultSession because session cookies cannot be propagated to Network Process with uiProcessCookieStorageIdentifier.
- if (m_owningDataStore->sessionID() == PAL::SessionID::defaultSessionID() && !cookie.session)
+ if (m_owningDataStore.sessionID() == PAL::SessionID::defaultSessionID() && !cookie.session)
setCookieInDefaultUIProcessCookieStore(cookie);
else
- m_owningDataStore->addPendingCookie(cookie);
+ m_owningDataStore.addPendingCookie(cookie);
callOnMainThread([completionHandler = WTFMove(completionHandler)] () mutable {
completionHandler();
@@ -91,7 +91,7 @@
}
auto* cookieManager = pool->supplement<WebKit::WebCookieManagerProxy>();
- cookieManager->setCookie(m_owningDataStore->sessionID(), cookie, [pool = WTFMove(pool), completionHandler = WTFMove(completionHandler)] (CallbackBase::Error error) mutable {
+ cookieManager->setCookie(m_owningDataStore.sessionID(), cookie, [pool = WTFMove(pool), completionHandler = WTFMove(completionHandler)] (CallbackBase::Error error) mutable {
completionHandler();
});
}
@@ -98,12 +98,12 @@
void HTTPCookieStore::deleteCookie(const WebCore::Cookie& cookie, CompletionHandler<void()>&& completionHandler)
{
- auto* pool = m_owningDataStore->processPoolForCookieStorageOperations();
+ auto* pool = m_owningDataStore.processPoolForCookieStorageOperations();
if (!pool) {
- if (m_owningDataStore->sessionID() == PAL::SessionID::defaultSessionID() && !cookie.session)
+ if (m_owningDataStore.sessionID() == PAL::SessionID::defaultSessionID() && !cookie.session)
deleteCookieFromDefaultUIProcessCookieStore(cookie);
else
- m_owningDataStore->removePendingCookie(cookie);
+ m_owningDataStore.removePendingCookie(cookie);
callOnMainThread([completionHandler = WTFMove(completionHandler)] () mutable {
completionHandler();
@@ -112,7 +112,7 @@
}
auto* cookieManager = pool->supplement<WebKit::WebCookieManagerProxy>();
- cookieManager->deleteCookie(m_owningDataStore->sessionID(), cookie, [pool = WTFMove(pool), completionHandler = WTFMove(completionHandler)](CallbackBase::Error error) mutable {
+ cookieManager->deleteCookie(m_owningDataStore.sessionID(), cookie, [pool = WTFMove(pool), completionHandler = WTFMove(completionHandler)](CallbackBase::Error error) mutable {
completionHandler();
});
}
@@ -150,7 +150,7 @@
m_cookieManagerProxyObserver = std::make_unique<APIWebCookieManagerProxyObserver>(*this);
- auto* pool = m_owningDataStore->processPoolForCookieStorageOperations();
+ auto* pool = m_owningDataStore.processPoolForCookieStorageOperations();
if (!pool) {
ASSERT(!m_observingUIProcessCookies);
@@ -165,7 +165,7 @@
}
m_observedCookieManagerProxy = pool->supplement<WebKit::WebCookieManagerProxy>();
- m_observedCookieManagerProxy->registerObserver(m_owningDataStore->sessionID(), *m_cookieManagerProxyObserver);
+ m_observedCookieManagerProxy->registerObserver(m_owningDataStore.sessionID(), *m_cookieManagerProxyObserver);
}
void HTTPCookieStore::unregisterObserver(Observer& observer)
@@ -176,7 +176,7 @@
return;
if (m_observedCookieManagerProxy)
- m_observedCookieManagerProxy->unregisterObserver(m_owningDataStore->sessionID(), *m_cookieManagerProxyObserver);
+ m_observedCookieManagerProxy->unregisterObserver(m_owningDataStore.sessionID(), *m_cookieManagerProxyObserver);
if (m_observingUIProcessCookies)
stopObservingChangesToDefaultUIProcessCookieStore();
@@ -198,16 +198,16 @@
void HTTPCookieStore::cookieManagerDestroyed()
{
- m_observedCookieManagerProxy->unregisterObserver(m_owningDataStore->sessionID(), *m_cookieManagerProxyObserver);
+ m_observedCookieManagerProxy->unregisterObserver(m_owningDataStore.sessionID(), *m_cookieManagerProxyObserver);
m_observedCookieManagerProxy = nullptr;
- auto* pool = m_owningDataStore->processPoolForCookieStorageOperations();
+ auto* pool = m_owningDataStore.processPoolForCookieStorageOperations();
if (!pool)
return;
m_observedCookieManagerProxy = pool->supplement<WebKit::WebCookieManagerProxy>();
- m_observedCookieManagerProxy->registerObserver(m_owningDataStore->sessionID(), *m_cookieManagerProxyObserver);
+ m_observedCookieManagerProxy->registerObserver(m_owningDataStore.sessionID(), *m_cookieManagerProxyObserver);
}
void HTTPCookieStore::registerForNewProcessPoolNotifications()
@@ -215,7 +215,7 @@
ASSERT(!m_processPoolCreationListenerIdentifier);
m_processPoolCreationListenerIdentifier = WebProcessPool::registerProcessPoolCreationListener([this](WebProcessPool& newProcessPool) {
- if (!m_owningDataStore->isAssociatedProcessPool(newProcessPool))
+ if (!m_owningDataStore.isAssociatedProcessPool(newProcessPool))
return;
// Now that an associated process pool exists, we need to flush the UI process cookie store
@@ -225,7 +225,7 @@
if (m_cookieManagerProxyObserver) {
m_observedCookieManagerProxy = newProcessPool.supplement<WebKit::WebCookieManagerProxy>();
- m_observedCookieManagerProxy->registerObserver(m_owningDataStore->sessionID(), *m_cookieManagerProxyObserver);
+ m_observedCookieManagerProxy->registerObserver(m_owningDataStore.sessionID(), *m_cookieManagerProxyObserver);
}
unregisterForNewProcessPoolNotifications();
});
@@ -239,6 +239,16 @@
m_processPoolCreationListenerIdentifier = 0;
}
+void HTTPCookieStore::ref() const
+{
+ m_owningDataStore.ref();
+}
+
+void HTTPCookieStore::deref() const
+{
+ m_owningDataStore.deref();
+}
+
#if !PLATFORM(COCOA)
void HTTPCookieStore::flushDefaultUIProcessCookieStore() { }
Vector<WebCore::Cookie> HTTPCookieStore::getAllDefaultUIProcessCookieStoreCookies() { return { }; }
Modified: trunk/Source/WebKit/UIProcess/API/APIHTTPCookieStore.h (241837 => 241838)
--- trunk/Source/WebKit/UIProcess/API/APIHTTPCookieStore.h 2019-02-20 22:22:07 UTC (rev 241837)
+++ trunk/Source/WebKit/UIProcess/API/APIHTTPCookieStore.h 2019-02-20 22:22:17 UTC (rev 241838)
@@ -74,6 +74,9 @@
void cookiesDidChange();
void cookieManagerDestroyed();
+ void ref() const;
+ void deref() const;
+
private:
HTTPCookieStore(WebKit::WebsiteDataStore&);
@@ -87,8 +90,7 @@
void startObservingChangesToDefaultUIProcessCookieStore(Function<void()>&&);
void stopObservingChangesToDefaultUIProcessCookieStore();
- // FIXME: This is a reference cycle.
- Ref<WebKit::WebsiteDataStore> m_owningDataStore;
+ WebKit::WebsiteDataStore& m_owningDataStore;
HashSet<Observer*> m_observers;
WebKit::WebCookieManagerProxy* m_observedCookieManagerProxy { nullptr };