Diff
Modified: trunk/Source/WebKit/ChangeLog (258913 => 258914)
--- trunk/Source/WebKit/ChangeLog 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Source/WebKit/ChangeLog 2020-03-24 17:07:05 UTC (rev 258914)
@@ -1,3 +1,15 @@
+2020-03-24 Alex Christensen <[email protected]>
+
+ Unreviewed, reverting r258862.
+
+ SPI was not what was needed
+
+ Reverted changeset:
+
+ "Add SPI to move localStorage to a different domain"
+ https://bugs.webkit.org/show_bug.cgi?id=209260
+ https://trac.webkit.org/changeset/258862
+
2020-03-23 David Kilzer <[email protected]>
IPC::Decoder::decodeFixedLengthData() should be marked WARN_UNUSED_RETURN
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (258913 => 258914)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2020-03-24 17:07:05 UTC (rev 258914)
@@ -2447,16 +2447,6 @@
completionHandler();
}
-void NetworkProcess::renameDomainInWebsiteData(PAL::SessionID sessionID, const String& oldName, const String& newName, OptionSet<WebsiteDataType> dataTypes, CompletionHandler<void()>&& completionHandler)
-{
- auto aggregator = CallbackAggregator::create(WTFMove(completionHandler));
-
- if (dataTypes.contains(WebsiteDataType::LocalStorage)) {
- if (m_storageManagerSet->contains(sessionID))
- m_storageManagerSet->renameDomain(sessionID, oldName, newName, [aggregator = aggregator.copyRef()] { });
- }
-}
-
#if ENABLE(SERVICE_WORKER)
void NetworkProcess::forEachSWServer(const Function<void(SWServer&)>& callback)
{
@@ -2643,11 +2633,12 @@
{
if (!m_storageManagerSet->contains(sessionID)) {
LOG_ERROR("Cannot get local storage information for an unknown session");
- completionHandler({ });
return;
}
- m_storageManagerSet->getLocalStorageOriginDetails(sessionID, WTFMove(completionHandler));
+ m_storageManagerSet->getLocalStorageOriginDetails(sessionID, [completionHandler = WTFMove(completionHandler)](auto&& details) mutable {
+ completionHandler(WTFMove(details));
+ });
}
void NetworkProcess::connectionToWebProcessClosed(IPC::Connection& connection, PAL::SessionID sessionID)
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.h (258913 => 258914)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2020-03-24 17:07:05 UTC (rev 258914)
@@ -291,7 +291,6 @@
void clearLegacyPrivateBrowsingLocalStorage();
void resetQuota(PAL::SessionID, CompletionHandler<void()>&&);
- void renameDomainInWebsiteData(PAL::SessionID, const String&, const String&, OptionSet<WebsiteDataType>, CompletionHandler<void()>&&);
#if ENABLE(SERVICE_WORKER)
WebCore::SWServer* swServerForSessionIfExists(PAL::SessionID sessionID) { return m_swServers.get(sessionID); }
@@ -529,7 +528,7 @@
HashMap<PAL::SessionID, std::unique_ptr<WebCore::NetworkStorageSession>> m_networkStorageSessions;
mutable std::unique_ptr<WebCore::NetworkStorageSession> m_defaultNetworkStorageSession;
- Ref<StorageManagerSet> m_storageManagerSet;
+ RefPtr<StorageManagerSet> m_storageManagerSet;
#if PLATFORM(COCOA)
void platformInitializeNetworkProcessCocoa(const NetworkProcessCreationParameters&);
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in (258913 => 258914)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in 2020-03-24 17:07:05 UTC (rev 258914)
@@ -46,7 +46,6 @@
FetchWebsiteData(PAL::SessionID sessionID, OptionSet<WebKit::WebsiteDataType> websiteDataTypes, OptionSet<WebKit::WebsiteDataFetchOption> fetchOptions, uint64_t callbackID)
DeleteWebsiteData(PAL::SessionID sessionID, OptionSet<WebKit::WebsiteDataType> websiteDataTypes, WallTime modifiedSince, uint64_t callbackID)
DeleteWebsiteDataForOrigins(PAL::SessionID sessionID, OptionSet<WebKit::WebsiteDataType> websiteDataTypes, Vector<WebCore::SecurityOriginData> origins, Vector<String> cookieHostNames, Vector<String> HSTSCacheHostNames, uint64_t callbackID)
- RenameDomainInWebsiteData(PAL::SessionID sessionID, String oldName, String newName, OptionSet<WebKit::WebsiteDataType> websiteDataTypes) -> () Async
DownloadRequest(PAL::SessionID sessionID, WebKit::DownloadID downloadID, WebCore::ResourceRequest request, enum:bool WebKit::NavigatingToAppBoundDomain isNavigatingToAppBoundDomain, String suggestedFilename)
ResumeDownload(PAL::SessionID sessionID, WebKit::DownloadID downloadID, IPC::DataReference resumeData, String path, WebKit::SandboxExtension::Handle sandboxExtensionHandle)
Modified: trunk/Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.cpp (258913 => 258914)
--- trunk/Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.cpp 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.cpp 2020-03-24 17:07:05 UTC (rev 258914)
@@ -70,34 +70,6 @@
storageArea->clear();
}
-void LocalStorageNamespace::renameDomain(const String& oldName, const String& newName, LocalStorageDatabaseTracker* tracker)
-{
- ASSERT(!RunLoop::isMain());
-
- struct MoveRecord {
- SecurityOriginData fromOrigin;
- SecurityOriginData toOrigin;
- };
-
- Vector<MoveRecord> moveRecords;
- for (const auto& pair : m_storageAreaMap) {
- const auto& fromOrigin = pair.key;
- if (fromOrigin.host == oldName) {
- pair.value->syncToDatabase();
- pair.value->close();
- SecurityOriginData toOrigin = fromOrigin;
- toOrigin.host = newName;
- moveRecords.append({ fromOrigin, toOrigin });
- }
- }
-
- for (const auto& record : moveRecords) {
- if (tracker)
- FileSystem::moveFile(tracker->databasePath(record.fromOrigin), tracker->databasePath(record.toOrigin));
- m_storageAreaMap.take(record.fromOrigin)->clear();
- }
-}
-
Vector<SecurityOriginData> LocalStorageNamespace::ephemeralOrigins() const
{
ASSERT(!RunLoop::isMain());
Modified: trunk/Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.h (258913 => 258914)
--- trunk/Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.h 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.h 2020-03-24 17:07:05 UTC (rev 258914)
@@ -52,7 +52,6 @@
void clearStorageAreasMatchingOrigin(const WebCore::SecurityOriginData&);
void clearAllStorageAreas();
- void renameDomain(const String&, const String&, LocalStorageDatabaseTracker*);
Vector<WebCore::SecurityOriginData> ephemeralOrigins() const;
Modified: trunk/Source/WebKit/NetworkProcess/WebStorage/StorageArea.cpp (258913 => 258914)
--- trunk/Source/WebKit/NetworkProcess/WebStorage/StorageArea.cpp 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Source/WebKit/NetworkProcess/WebStorage/StorageArea.cpp 2020-03-24 17:07:05 UTC (rev 258914)
@@ -210,12 +210,4 @@
m_localStorageDatabase->updateDatabase();
}
-void StorageArea::close()
-{
- if (!m_localStorageDatabase)
- return;
-
- m_localStorageDatabase->close();
-}
-
} // namespace WebKit
Modified: trunk/Source/WebKit/NetworkProcess/WebStorage/StorageArea.h (258913 => 258914)
--- trunk/Source/WebKit/NetworkProcess/WebStorage/StorageArea.h 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Source/WebKit/NetworkProcess/WebStorage/StorageArea.h 2020-03-24 17:07:05 UTC (rev 258914)
@@ -71,7 +71,6 @@
void openDatabaseAndImportItemsIfNeeded() const;
void syncToDatabase();
- void close();
private:
void dispatchEvents(IPC::Connection::UniqueID sourceConnection, StorageAreaImplIdentifier, const String& key, const String& oldValue, const String& newValue, const String& urlString) const;
Modified: trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManager.cpp (258913 => 258914)
--- trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManager.cpp 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManager.cpp 2020-03-24 17:07:05 UTC (rev 258914)
@@ -155,13 +155,6 @@
return { };
}
-void StorageManager::renameDomain(const String& oldName, const String& newName)
-{
- ASSERT(!RunLoop::isMain());
- for (auto& localStorageNamespace : m_localStorageNamespaces.values())
- localStorageNamespace->renameDomain(oldName, newName, m_localStorageDatabaseTracker.get());
-}
-
void StorageManager::deleteLocalStorageOriginsModifiedSince(WallTime time)
{
ASSERT(!RunLoop::isMain());
Modified: trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManager.h (258913 => 258914)
--- trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManager.h 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManager.h 2020-03-24 17:07:05 UTC (rev 258914)
@@ -69,7 +69,6 @@
void deleteLocalStorageOriginsModifiedSince(WallTime);
void deleteLocalStorageEntriesForOrigins(const Vector<WebCore::SecurityOriginData>&);
Vector<LocalStorageDatabaseTracker::OriginDetails> getLocalStorageOriginDetailsCrossThreadCopy() const;
- void renameDomain(const String&, const String&);
void clearStorageNamespaces();
Modified: trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.cpp (258913 => 258914)
--- trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.cpp 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.cpp 2020-03-24 17:07:05 UTC (rev 258914)
@@ -293,18 +293,6 @@
});
}
-void StorageManagerSet::renameDomain(PAL::SessionID sessionID, const String& oldName, const String& newName, CompletionHandler<void()>&& completionHandler)
-{
- ASSERT(RunLoop::isMain());
-
- m_queue->dispatch([this, protectedThis = makeRef(*this), sessionID, oldName = oldName.isolatedCopy(), newName = newName.isolatedCopy(), completionHandler = WTFMove(completionHandler)]() mutable {
- auto* storageManager = m_storageManagers.get(sessionID);
- ASSERT(storageManager);
- storageManager->renameDomain(oldName, newName);
- RunLoop::main().dispatch(WTFMove(completionHandler));
- });
-}
-
void StorageManagerSet::connectToLocalStorageArea(IPC::Connection& connection, PAL::SessionID sessionID, StorageNamespaceIdentifier storageNamespaceID, SecurityOriginData&& originData, ConnectToStorageAreaCallback&& completionHandler)
{
ASSERT(!RunLoop::isMain());
Modified: trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.h (258913 => 258914)
--- trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.h 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.h 2020-03-24 17:07:05 UTC (rev 258914)
@@ -69,7 +69,6 @@
void deleteLocalStorageModifiedSince(PAL::SessionID, WallTime, DeleteCallback&&);
void deleteLocalStorageForOrigins(PAL::SessionID, const Vector<WebCore::SecurityOriginData>&, DeleteCallback&&);
void getLocalStorageOriginDetails(PAL::SessionID, GetOriginDetailsCallback&&);
- void renameDomain(PAL::SessionID, const String&, const String&, CompletionHandler<void()>&&);
void didReceiveMessage(IPC::Connection&, IPC::Decoder&);
void didReceiveSyncMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>& replyEncoder);
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm (258913 => 258914)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm 2020-03-24 17:07:05 UTC (rev 258914)
@@ -595,17 +595,6 @@
#endif
}
-- (void)_renameDomain:(NSString *)domainName to:(NSString *)newDomainName forDataOfTypes:(NSSet<NSString *> *)dataTypes completionHandler:(void (^)(void))completionHandler
-{
- if (!dataTypes.count)
- return completionHandler();
- if (dataTypes.count > 1 || ![dataTypes containsObject:WKWebsiteDataTypeLocalStorage])
- [NSException raise:NSInvalidArgumentException format:@"_renameDomain can only be called with WKWebsiteDataTypeLocalStorage right now."];
- _websiteDataStore->renameDomainInWebsiteData(domainName, newDomainName, WebKit::toWebsiteDataTypes(dataTypes), [completionHandler = makeBlockPtr(completionHandler)] {
- completionHandler();
- });
-}
-
- (id <_WKWebsiteDataStoreDelegate>)_delegate
{
return _delegate.get().get();
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h (258913 => 258914)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h 2020-03-24 17:07:05 UTC (rev 258914)
@@ -80,8 +80,6 @@
- (void)_processStatisticsAndDataRecords:(void (^)(void))completionHandler WK_API_AVAILABLE(macos(10.15), ios(13.0));
- (void)_appBoundDomains:(void (^)(NSArray<NSString *> *))completionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
-- (void)_renameDomain:(NSString *)domainName to:(NSString *)newDomainName forDataOfTypes:(NSSet<NSString *> *)dataTypes completionHandler:(void (^)(void))completionHandler;
-
@property (nullable, nonatomic, weak) id <_WKWebsiteDataStoreDelegate> _delegate WK_API_AVAILABLE(macos(10.15), ios(13.0));
@property (nonatomic, readonly, copy) _WKWebsiteDataStoreConfiguration *_configuration;
Modified: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp (258913 => 258914)
--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp 2020-03-24 17:07:05 UTC (rev 258914)
@@ -244,11 +244,6 @@
send(Messages::NetworkProcess::DeleteWebsiteDataForOrigins(sessionID, dataTypes, origins, cookieHostNames, HSTSCacheHostNames, callbackID), 0);
}
-void NetworkProcessProxy::renameDomainInWebsiteData(PAL::SessionID sessionID, const String& oldName, const String& newName, OptionSet<WebsiteDataType> dataTypes, CompletionHandler<void()>&& completionHandler)
-{
- sendWithAsyncReply(Messages::NetworkProcess::RenameDomainInWebsiteData(sessionID, oldName, newName, dataTypes), WTFMove(completionHandler));
-}
-
void NetworkProcessProxy::networkProcessCrashed()
{
clearCallbackStates();
Modified: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h (258913 => 258914)
--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h 2020-03-24 17:07:05 UTC (rev 258914)
@@ -107,7 +107,6 @@
void fetchWebsiteData(PAL::SessionID, OptionSet<WebsiteDataType>, OptionSet<WebsiteDataFetchOption>, CompletionHandler<void(WebsiteData)>&&);
void deleteWebsiteData(PAL::SessionID, OptionSet<WebsiteDataType>, WallTime modifiedSince, CompletionHandler<void()>&& completionHandler);
void deleteWebsiteDataForOrigins(PAL::SessionID, OptionSet<WebKit::WebsiteDataType>, const Vector<WebCore::SecurityOriginData>& origins, const Vector<String>& cookieHostNames, const Vector<String>& HSTSCacheHostNames, CompletionHandler<void()>&&);
- void renameDomainInWebsiteData(PAL::SessionID, const String&, const String&, OptionSet<WebsiteDataType>, CompletionHandler<void()>&&);
void getLocalStorageDetails(PAL::SessionID, CompletionHandler<void(Vector<LocalStorageDatabaseTracker::OriginDetails>&&)>&&);
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (258913 => 258914)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2020-03-24 17:07:05 UTC (rev 258914)
@@ -2311,13 +2311,4 @@
}
}
-void WebsiteDataStore::renameDomainInWebsiteData(String&& oldName, String&& newName, OptionSet<WebsiteDataType> dataTypes, CompletionHandler<void()>&& completionHandler)
-{
- auto callbackAggregator = CallbackAggregator::create(WTFMove(completionHandler));
- for (auto& processPool : processPools()) {
- if (auto* networkProcess = processPool->networkProcess())
- networkProcess->renameDomainInWebsiteData(m_sessionID, oldName, newName, dataTypes, [callbackAggregator = callbackAggregator.copyRef()] { });
- }
}
-
-}
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h (258913 => 258914)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h 2020-03-24 17:07:05 UTC (rev 258914)
@@ -255,8 +255,6 @@
API::HTTPCookieStore& cookieStore();
- void renameDomainInWebsiteData(String&&, String&&, OptionSet<WebsiteDataType>, CompletionHandler<void()>&&);
-
#if ENABLE(DEVICE_ORIENTATION)
WebDeviceOrientationAndMotionAccessController& deviceOrientationAndMotionAccessController() { return m_deviceOrientationAndMotionAccessController; }
#endif
Modified: trunk/Tools/ChangeLog (258913 => 258914)
--- trunk/Tools/ChangeLog 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Tools/ChangeLog 2020-03-24 17:07:05 UTC (rev 258914)
@@ -1,3 +1,15 @@
+2020-03-24 Alex Christensen <[email protected]>
+
+ Unreviewed, reverting r258862.
+
+ SPI was not what was needed
+
+ Reverted changeset:
+
+ "Add SPI to move localStorage to a different domain"
+ https://bugs.webkit.org/show_bug.cgi?id=209260
+ https://trac.webkit.org/changeset/258862
+
2020-03-24 Chris Lord <[email protected]>
[GTK][WPE] WEB_PROCESS_CMD_PREFIX and others have stopped working
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm (258913 => 258914)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm 2020-03-24 16:47:07 UTC (rev 258913)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm 2020-03-24 17:07:05 UTC (rev 258914)
@@ -517,33 +517,6 @@
EXPECT_TRUE(dataStore._configuration.persistent);
}
-TEST(WebKit, WebsiteDataStoreRenameDomain)
-{
- TestWKWebView *webView = [[[TestWKWebView alloc] init] autorelease];
- [webView synchronouslyLoadHTMLString:@"<script>localStorage.setItem('testkey', 'testvalue')</script>" baseURL:[NSURL URLWithString:@"https://example.com/"]];
-
- __block bool done = false;
- WKWebsiteDataStore *dataStore = webView.configuration.websiteDataStore;
- NSSet *localStorageSet = [NSSet setWithObject:WKWebsiteDataTypeLocalStorage];
- [dataStore _renameDomain:@"example.com" to:@"webkit.org" forDataOfTypes:localStorageSet completionHandler:^{
- done = true;
- }];
- TestWebKitAPI::Util::run(&done);
-
- [webView synchronouslyLoadHTMLString:@"hello" baseURL:[NSURL URLWithString:@"https://webkit.org/"]];
- EXPECT_WK_STREQ([webView objectByEvaluatingJavaScript:@"localStorage.getItem('testkey')"], "testvalue");
- [webView synchronouslyLoadHTMLString:@"hello" baseURL:[NSURL URLWithString:@"https://example.com/"]];
- EXPECT_TRUE([[webView objectByEvaluatingJavaScript:@"localStorage.getItem('testkey')"] isKindOfClass:[NSNull class]]);
-
- done = false;
- [dataStore fetchDataRecordsOfTypes:localStorageSet completionHandler:^(NSArray<WKWebsiteDataRecord *> *records) {
- [dataStore removeDataOfTypes:localStorageSet forDataRecords:records completionHandler:^{
- done = true;
- }];
- }];
- TestWebKitAPI::Util::run(&done);
-}
-
TEST(WebKit, NetworkCacheDirectory)
{
using namespace TestWebKitAPI;