Title: [284292] branches/safari-612-branch/Source

Diff

Modified: branches/safari-612-branch/Source/WebCore/Modules/storage/StorageManager.cpp (284291 => 284292)


--- branches/safari-612-branch/Source/WebCore/Modules/storage/StorageManager.cpp	2021-10-15 23:45:42 UTC (rev 284291)
+++ branches/safari-612-branch/Source/WebCore/Modules/storage/StorageManager.cpp	2021-10-15 23:46:16 UTC (rev 284292)
@@ -42,44 +42,52 @@
 }
 
 StorageManager::StorageManager(NavigatorBase& navigator)
-    : m_navigator(navigator)
+    : m_navigator(makeWeakPtr(navigator))
 {
 }
 
-static ClientOrigin clientOrigin(ScriptExecutionContext& context)
+void StorageManager::persisted(DOMPromiseDeferred<IDLBoolean>&& promise)
 {
-    auto* origin = context.securityOrigin();
-    return { context.topOrigin().data(), origin ? origin->data() : SecurityOriginData { } };
-}
+    if (!m_navigator)
+        return promise.reject(Exception { InvalidStateError, "Navigator does not exist"_s });
 
-void StorageManager::persisted(DOMPromiseDeferred<IDLBoolean>&& promise)
-{
-    auto context = m_navigator.scriptExecutionContext();
+    auto context = m_navigator->scriptExecutionContext();
     if (!context)
         return promise.reject(Exception { InvalidStateError, "The context is invalid"_s });
 
-    if (auto connection = context->storageConnection()) {
-        return connection->persisted(clientOrigin(*context), [promise = WTFMove(promise)](bool persisted) mutable {
-            promise.resolve(persisted);
-        });
-    }
+    auto connection = context->storageConnection();
+    if (!connection)
+        return promise.reject(Exception { InvalidStateError, "The connection is invalid"_s });
 
-    return promise.reject(Exception { InvalidStateError, "The connection is invalid"_s });
+    auto* origin = context->securityOrigin();
+    if (!origin)
+        return promise.reject(Exception { InvalidStateError, "Origin is invalid"_s });
+
+    return connection->persisted({ context->topOrigin().data(), origin->data() }, [promise = WTFMove(promise)](bool persisted) mutable {
+        promise.resolve(persisted);
+    });
 }
 
 void StorageManager::persist(DOMPromiseDeferred<IDLBoolean>&& promise)
 {
-    auto context = m_navigator.scriptExecutionContext();
+    if (!m_navigator)
+        return promise.reject(Exception { InvalidStateError, "Navigator does not exist"_s });
+
+    auto context = m_navigator->scriptExecutionContext();
     if (!context)
         return promise.reject(Exception { InvalidStateError, "The context is invalid"_s });
 
-    if (auto connection = context->storageConnection()) {
-        return connection->persist(clientOrigin(*context), [promise = WTFMove(promise)](bool persisted) mutable {
-            promise.resolve(persisted);
-        });
-    }
+    auto connection = context->storageConnection();
+    if (!connection)
+        return promise.reject(Exception { InvalidStateError, "The connection is invalid"_s });
 
-    return promise.reject(Exception { InvalidStateError, "The connection is invalid"_s });
+    auto* origin = context->securityOrigin();
+    if (!origin)
+        return promise.reject(Exception { InvalidStateError, "Origin is invalid"_s });
+
+    return connection->persist({ context->topOrigin().data(), origin->data() }, [promise = WTFMove(promise)](bool persisted) mutable {
+        promise.resolve(persisted);
+    });
 }
 
 } // namespace WebCore

Modified: branches/safari-612-branch/Source/WebCore/Modules/storage/StorageManager.h (284291 => 284292)


--- branches/safari-612-branch/Source/WebCore/Modules/storage/StorageManager.h	2021-10-15 23:45:42 UTC (rev 284291)
+++ branches/safari-612-branch/Source/WebCore/Modules/storage/StorageManager.h	2021-10-15 23:46:16 UTC (rev 284292)
@@ -27,6 +27,7 @@
 
 #include "IDLTypes.h"
 #include <wtf/IsoMalloc.h>
+#include <wtf/WeakPtr.h>
 
 namespace WebCore {
 
@@ -43,7 +44,7 @@
 private:
     explicit StorageManager(NavigatorBase&);
 
-    NavigatorBase& m_navigator;
+    WeakPtr<NavigatorBase> m_navigator;
 };
 
 } // namespace WebCore

Modified: branches/safari-612-branch/Source/WebCore/dom/Document.cpp (284291 => 284292)


--- branches/safari-612-branch/Source/WebCore/dom/Document.cpp	2021-10-15 23:45:42 UTC (rev 284291)
+++ branches/safari-612-branch/Source/WebCore/dom/Document.cpp	2021-10-15 23:46:16 UTC (rev 284292)
@@ -3559,7 +3559,7 @@
     return m_idbConnectionProxy.get();
 }
 
-RefPtr<StorageConnection> Document::storageConnection()
+StorageConnection* Document::storageConnection()
 {
     return page() ? &page()->storageConnection() : nullptr;
 }

Modified: branches/safari-612-branch/Source/WebCore/dom/Document.h (284291 => 284292)


--- branches/safari-612-branch/Source/WebCore/dom/Document.h	2021-10-15 23:45:42 UTC (rev 284291)
+++ branches/safari-612-branch/Source/WebCore/dom/Document.h	2021-10-15 23:46:16 UTC (rev 284292)
@@ -701,7 +701,7 @@
     void disableWebAssembly(const String& errorMessage) final;
 
     IDBClient::IDBConnectionProxy* idbConnectionProxy() final;
-    RefPtr<StorageConnection> storageConnection() final;
+    StorageConnection* storageConnection() final;
     SocketProvider* socketProvider() final;
     RefPtr<RTCDataChannelRemoteHandlerConnection> createRTCDataChannelRemoteHandlerConnection() final;
 

Modified: branches/safari-612-branch/Source/WebCore/dom/ScriptExecutionContext.h (284291 => 284292)


--- branches/safari-612-branch/Source/WebCore/dom/ScriptExecutionContext.h	2021-10-15 23:45:42 UTC (rev 284291)
+++ branches/safari-612-branch/Source/WebCore/dom/ScriptExecutionContext.h	2021-10-15 23:46:16 UTC (rev 284292)
@@ -116,7 +116,7 @@
     virtual void disableWebAssembly(const String& errorMessage) = 0;
 
     virtual IDBClient::IDBConnectionProxy* idbConnectionProxy() = 0;
-    virtual RefPtr<StorageConnection> storageConnection() { return nullptr; }
+    virtual StorageConnection* storageConnection() { return nullptr; }
 
     virtual SocketProvider* socketProvider() = 0;
 

Modified: branches/safari-612-branch/Source/WebCore/page/NavigatorBase.cpp (284291 => 284292)


--- branches/safari-612-branch/Source/WebCore/page/NavigatorBase.cpp	2021-10-15 23:45:42 UTC (rev 284291)
+++ branches/safari-612-branch/Source/WebCore/page/NavigatorBase.cpp	2021-10-15 23:46:16 UTC (rev 284292)
@@ -140,7 +140,7 @@
     return { defaultLanguage() };
 }
 
-ExceptionOr<StorageManager&> NavigatorBase::storage()
+StorageManager& NavigatorBase::storage()
 {
     if (!m_storageManager)
         m_storageManager = StorageManager::create(*this);

Modified: branches/safari-612-branch/Source/WebCore/page/NavigatorBase.h (284291 => 284292)


--- branches/safari-612-branch/Source/WebCore/page/NavigatorBase.h	2021-10-15 23:45:42 UTC (rev 284291)
+++ branches/safari-612-branch/Source/WebCore/page/NavigatorBase.h	2021-10-15 23:46:16 UTC (rev 284292)
@@ -59,7 +59,7 @@
     static String language();
     static Vector<String> languages();
 
-    ExceptionOr<StorageManager&> storage();
+    StorageManager& storage();
 
 protected:
     explicit NavigatorBase(ScriptExecutionContext*);

Modified: branches/safari-612-branch/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp (284291 => 284292)


--- branches/safari-612-branch/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp	2021-10-15 23:45:42 UTC (rev 284291)
+++ branches/safari-612-branch/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp	2021-10-15 23:46:16 UTC (rev 284292)
@@ -91,8 +91,8 @@
 {
     ASSERT(!RunLoop::isMain());
 
-    return *m_localOriginStorageManagers.ensure(origin, [path = m_path, origin, salt = m_salt] {
-        return makeUnique<OriginStorageManager>(originPath(path, origin, salt));
+    return *m_localOriginStorageManagers.ensure(origin, [&] {
+        return makeUnique<OriginStorageManager>(originPath(m_path, origin, m_salt));
     }).iterator->value;
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to