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"