Title: [290074] branches/safari-613.1.17.0-branch

Diff

Modified: branches/safari-613.1.17.0-branch/Source/WebKit/NetworkProcess/NetworkProcess.cpp (290073 => 290074)


--- branches/safari-613.1.17.0-branch/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2022-02-17 22:19:41 UTC (rev 290073)
+++ branches/safari-613.1.17.0-branch/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2022-02-17 22:20:03 UTC (rev 290074)
@@ -2309,7 +2309,7 @@
 
     auto* session = networkSession(sessionID);
     if (auto* manager = session ? session->storageManager() : nullptr)
-        manager->moveData(oldOrigin, newOrigin, [aggregator] { });
+        manager->moveData(dataTypes, oldOrigin, newOrigin, [aggregator] { });
 
     if (dataTypes.contains(WebsiteDataType::IndexedDBDatabases) && session && session->hasIDBDatabasePath())
         session->ensureWebIDBServer().renameOrigin(oldOrigin, newOrigin, [aggregator] { });

Modified: branches/safari-613.1.17.0-branch/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp (290073 => 290074)


--- branches/safari-613.1.17.0-branch/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp	2022-02-17 22:19:41 UTC (rev 290073)
+++ branches/safari-613.1.17.0-branch/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp	2022-02-17 22:20:03 UTC (rev 290074)
@@ -566,22 +566,25 @@
     });
 }
 
-void NetworkStorageManager::moveData(const WebCore::SecurityOriginData& source, const WebCore::SecurityOriginData& target, CompletionHandler<void()>&& completionHandler)
+void NetworkStorageManager::moveData(OptionSet<WebsiteDataType> types, const WebCore::SecurityOriginData& source, const WebCore::SecurityOriginData& target, CompletionHandler<void()>&& completionHandler)
 {
     ASSERT(RunLoop::isMain());
     ASSERT(!m_closed);
 
-    m_queue->dispatch([this, protectedThis = Ref { *this }, source = crossThreadCopy(source), target = crossThreadCopy(target), completionHandler = WTFMove(completionHandler)]() mutable {
+    m_queue->dispatch([this, protectedThis = Ref { *this }, types, source = crossThreadCopy(source), target = crossThreadCopy(target), completionHandler = WTFMove(completionHandler)]() mutable {
+        if (!types.contains(WebsiteDataType::LocalStorage))
+            return RunLoop::main().dispatch(WTFMove(completionHandler));
+
         auto sourceOrigin = WebCore::ClientOrigin { source, source };
         auto targetOrigin = WebCore::ClientOrigin { target, target };
-        
+    
         // Clear existing data of target origin.
-        OptionSet<WebsiteDataType> types = { WebsiteDataType::FileSystem, WebsiteDataType::LocalStorage, WebsiteDataType::SessionStorage  };
-        localOriginStorageManager(targetOrigin).deleteData(types, -WallTime::infinity());
+        OptionSet<WebsiteDataType> localStorageType = { WebsiteDataType::LocalStorage };
+        localOriginStorageManager(targetOrigin).deleteData(localStorageType, -WallTime::infinity());
         removeOriginStorageManagerIfPossible(targetOrigin);
 
         // Move data from source origin to target origin.
-        localOriginStorageManager(sourceOrigin).moveData(originDirectoryPath(m_path, targetOrigin, m_salt), LocalStorageManager::localStorageFilePath(m_customLocalStoragePath, targetOrigin));
+        localOriginStorageManager(sourceOrigin).moveData(localStorageType, originDirectoryPath(m_path, targetOrigin, m_salt), LocalStorageManager::localStorageFilePath(m_customLocalStoragePath, targetOrigin));
         removeOriginStorageManagerIfPossible(sourceOrigin);
 
         RunLoop::main().dispatch(WTFMove(completionHandler));

Modified: branches/safari-613.1.17.0-branch/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h (290073 => 290074)


--- branches/safari-613.1.17.0-branch/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h	2022-02-17 22:19:41 UTC (rev 290073)
+++ branches/safari-613.1.17.0-branch/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h	2022-02-17 22:20:03 UTC (rev 290074)
@@ -66,7 +66,7 @@
     void deleteData(OptionSet<WebsiteDataType>, const Vector<WebCore::SecurityOriginData>&, CompletionHandler<void()>&&);
     void deleteDataModifiedSince(OptionSet<WebsiteDataType>, WallTime, CompletionHandler<void()>&&);
     void deleteDataForRegistrableDomains(OptionSet<WebsiteDataType>, const Vector<WebCore::RegistrableDomain>&, CompletionHandler<void(HashSet<WebCore::RegistrableDomain>&&)>&&);
-    void moveData(const WebCore::SecurityOriginData& source, const WebCore::SecurityOriginData& target, CompletionHandler<void()>&&);
+    void moveData(OptionSet<WebsiteDataType>, const WebCore::SecurityOriginData& source, const WebCore::SecurityOriginData& target, CompletionHandler<void()>&&);
     void suspend(CompletionHandler<void()>&&);
     void resume();
     void handleLowMemoryWarning();

Modified: branches/safari-613.1.17.0-branch/Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp (290073 => 290074)


--- branches/safari-613.1.17.0-branch/Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp	2022-02-17 22:19:41 UTC (rev 290073)
+++ branches/safari-613.1.17.0-branch/Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp	2022-02-17 22:20:03 UTC (rev 290074)
@@ -178,18 +178,17 @@
             deleteSessionStorageData();
     }
 
-    void moveData(const String& path, const String& localStoragePath)
+    void moveData(OptionSet<WebsiteDataType> types, const String&, const String& localStoragePath)
     {
-        m_fileSystemStorageManager = nullptr;
-        if (m_localStorageManager)
-            m_localStorageManager->close();
+        // This is only supported for LocalStorage now.
+        if (types.contains(WebsiteDataType::LocalStorage) && !localStoragePath.isEmpty()) {
+            if (m_localStorageManager)
+                m_localStorageManager->close();
 
-        FileSystem::makeAllDirectories(FileSystem::parentPath(path));
-        FileSystem::moveFile(m_rootPath, path);
-
-        if (!m_localStoragePath.isEmpty() && !localStoragePath.isEmpty()) {
-            FileSystem::makeAllDirectories(FileSystem::parentPath(localStoragePath));
-            WebCore::SQLiteFileSystem::moveDatabaseFile(m_localStoragePath, localStoragePath);
+            if (!m_localStoragePath.isEmpty()) {
+                FileSystem::makeAllDirectories(FileSystem::parentPath(localStoragePath));
+                WebCore::SQLiteFileSystem::moveDatabaseFile(m_localStoragePath, localStoragePath);
+            }
         }
     }
 
@@ -349,11 +348,11 @@
     defaultBucket().deleteData(types, modifiedSince);
 }
 
-void OriginStorageManager::moveData(const String& newPath, const String& localStoragePath)
+void OriginStorageManager::moveData(OptionSet<WebsiteDataType> types, const String& newPath, const String& localStoragePath)
 {
     ASSERT(!RunLoop::isMain());
 
-    defaultBucket().moveData(newPath, localStoragePath);
+    defaultBucket().moveData(types, newPath, localStoragePath);
 }
 
 } // namespace WebKit

Modified: branches/safari-613.1.17.0-branch/Source/WebKit/NetworkProcess/storage/OriginStorageManager.h (290073 => 290074)


--- branches/safari-613.1.17.0-branch/Source/WebKit/NetworkProcess/storage/OriginStorageManager.h	2022-02-17 22:19:41 UTC (rev 290073)
+++ branches/safari-613.1.17.0-branch/Source/WebKit/NetworkProcess/storage/OriginStorageManager.h	2022-02-17 22:20:03 UTC (rev 290074)
@@ -59,7 +59,7 @@
     bool isEmpty();
     OptionSet<WebsiteDataType> fetchDataTypesInList(OptionSet<WebsiteDataType>);
     void deleteData(OptionSet<WebsiteDataType>, WallTime);
-    void moveData(const String& newPath, const String& localStoragePath);
+    void moveData(OptionSet<WebsiteDataType>, const String& newPath, const String& localStoragePath);
 
 private:
     enum class StorageBucketMode : bool;

Modified: branches/safari-613.1.17.0-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/SessionStorage.mm (290073 => 290074)


--- branches/safari-613.1.17.0-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/SessionStorage.mm	2022-02-17 22:19:41 UTC (rev 290073)
+++ branches/safari-613.1.17.0-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/SessionStorage.mm	2022-02-17 22:20:03 UTC (rev 290074)
@@ -25,6 +25,7 @@
 
 #import "config.h"
 
+#import "DeprecatedGlobalValues.h"
 #import "PlatformUtilities.h"
 #import "TestUIDelegate.h"
 #import "TestWKWebView.h"
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to