browser(webkit): getLocalStorageData command (#6858)
This commit is contained in:
parent
c5e1c8b90c
commit
4fa792ee89
|
|
@ -1,2 +1,2 @@
|
||||||
1490
|
1491
|
||||||
Changed: yurys@chromium.org Tue 01 Jun 2021 03:20:32 PM PDT
|
Changed: yurys@chromium.org Wed 02 Jun 2021 03:34:29 PM PDT
|
||||||
|
|
|
||||||
|
|
@ -1216,10 +1216,10 @@ index db52479a72d459be23d4d8d080c0ed15ea9fc4c0..5f7add78fefc2bf8718ff8af7c49c169
|
||||||
}
|
}
|
||||||
diff --git a/Source/JavaScriptCore/inspector/protocol/Playwright.json b/Source/JavaScriptCore/inspector/protocol/Playwright.json
|
diff --git a/Source/JavaScriptCore/inspector/protocol/Playwright.json b/Source/JavaScriptCore/inspector/protocol/Playwright.json
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..ce69bc6a10b49460c73110e54b2936afe5dd4ebf
|
index 0000000000000000000000000000000000000000..2946ae9cf1ce56078cbbed524f8345275f2adca1
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Source/JavaScriptCore/inspector/protocol/Playwright.json
|
+++ b/Source/JavaScriptCore/inspector/protocol/Playwright.json
|
||||||
@@ -0,0 +1,244 @@
|
@@ -0,0 +1,273 @@
|
||||||
+{
|
+{
|
||||||
+ "domain": "Playwright",
|
+ "domain": "Playwright",
|
||||||
+ "availability": ["web"],
|
+ "availability": ["web"],
|
||||||
|
|
@ -1273,6 +1273,24 @@ index 0000000000000000000000000000000000000000..ce69bc6a10b49460c73110e54b2936af
|
||||||
+ ]
|
+ ]
|
||||||
+ },
|
+ },
|
||||||
+ {
|
+ {
|
||||||
|
+ "id": "NameValue",
|
||||||
|
+ "type": "object",
|
||||||
|
+ "description": "Name-value pair",
|
||||||
|
+ "properties": [
|
||||||
|
+ { "name": "name", "type": "string" },
|
||||||
|
+ { "name": "value", "type": "string" }
|
||||||
|
+ ]
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ "id": "OriginStorage",
|
||||||
|
+ "type": "object",
|
||||||
|
+ "description": "Origin object",
|
||||||
|
+ "properties": [
|
||||||
|
+ { "name": "origin", "type": "string", "description": "Origin." },
|
||||||
|
+ { "name": "items", "type": "array", "items": { "$ref": "NameValue" }, "description": "Storage entries." }
|
||||||
|
+ ]
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
+ "id": "Geolocation",
|
+ "id": "Geolocation",
|
||||||
+ "type": "object",
|
+ "type": "object",
|
||||||
+ "description": "Geolocation",
|
+ "description": "Geolocation",
|
||||||
|
|
@ -1375,6 +1393,17 @@ index 0000000000000000000000000000000000000000..ce69bc6a10b49460c73110e54b2936af
|
||||||
+ ]
|
+ ]
|
||||||
+ },
|
+ },
|
||||||
+ {
|
+ {
|
||||||
|
+ "name": "getLocalStorageData",
|
||||||
|
+ "description": "Returns all local storage data in the given browser context.",
|
||||||
|
+ "async": true,
|
||||||
|
+ "parameters": [
|
||||||
|
+ { "name": "browserContextId", "$ref": "ContextID", "optional": true, "description": "Browser context id." }
|
||||||
|
+ ],
|
||||||
|
+ "returns": [
|
||||||
|
+ { "name": "origins", "type": "array", "items": { "$ref": "OriginStorage" }, "description": "Local storage data." }
|
||||||
|
+ ]
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
+ "name": "setGeolocationOverride",
|
+ "name": "setGeolocationOverride",
|
||||||
+ "parameters": [
|
+ "parameters": [
|
||||||
+ { "name": "browserContextId", "$ref": "ContextID", "optional": true, "description": "Browser context id." },
|
+ { "name": "browserContextId", "$ref": "ContextID", "optional": true, "description": "Browser context id." },
|
||||||
|
|
@ -8599,7 +8628,7 @@ index c63a6ba71fae430b9d2a326ecfb86a14ddd31993..739672cfcd5d7d803b5fa32466e66481
|
||||||
RemoveStorageAccessForFrame(WebCore::FrameIdentifier frameID, WebCore::PageIdentifier pageID);
|
RemoveStorageAccessForFrame(WebCore::FrameIdentifier frameID, WebCore::PageIdentifier pageID);
|
||||||
LogUserInteraction(WebCore::RegistrableDomain domain)
|
LogUserInteraction(WebCore::RegistrableDomain domain)
|
||||||
diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.cpp b/Source/WebKit/NetworkProcess/NetworkProcess.cpp
|
diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.cpp b/Source/WebKit/NetworkProcess/NetworkProcess.cpp
|
||||||
index 364c23618b3ce25e0c43b54bf538582adab83192..450d6c435cd14caf0302384a945204ff2b891bdc 100644
|
index 364c23618b3ce25e0c43b54bf538582adab83192..cdf9a6f823865608b10c3e65f13d32f5082f05a8 100644
|
||||||
--- a/Source/WebKit/NetworkProcess/NetworkProcess.cpp
|
--- a/Source/WebKit/NetworkProcess/NetworkProcess.cpp
|
||||||
+++ b/Source/WebKit/NetworkProcess/NetworkProcess.cpp
|
+++ b/Source/WebKit/NetworkProcess/NetworkProcess.cpp
|
||||||
@@ -26,7 +26,6 @@
|
@@ -26,7 +26,6 @@
|
||||||
|
|
@ -8610,7 +8639,7 @@ index 364c23618b3ce25e0c43b54bf538582adab83192..450d6c435cd14caf0302384a945204ff
|
||||||
#include "ArgumentCoders.h"
|
#include "ArgumentCoders.h"
|
||||||
#include "Attachment.h"
|
#include "Attachment.h"
|
||||||
#include "AuthenticationManager.h"
|
#include "AuthenticationManager.h"
|
||||||
@@ -555,6 +554,41 @@ void NetworkProcess::destroySession(PAL::SessionID sessionID)
|
@@ -555,6 +554,50 @@ void NetworkProcess::destroySession(PAL::SessionID sessionID)
|
||||||
m_storageManagerSet->remove(sessionID);
|
m_storageManagerSet->remove(sessionID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -8643,6 +8672,15 @@ index 364c23618b3ce25e0c43b54bf538582adab83192..450d6c435cd14caf0302384a945204ff
|
||||||
+ completionHandler(false);
|
+ completionHandler(false);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
+void NetworkProcess::getLocalStorageData(PAL::SessionID sessionID, CompletionHandler<void(Vector<std::pair<WebCore::SecurityOriginData, HashMap<String, String>>>&&)>&& completionHandler)
|
||||||
|
+{
|
||||||
|
+ if (m_storageManagerSet->contains(sessionID)) {
|
||||||
|
+ m_storageManagerSet->getLocalStorageData(sessionID, WTFMove(completionHandler));
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ completionHandler(Vector<std::pair<WebCore::SecurityOriginData, HashMap<String, String>>>());
|
||||||
|
+}
|
||||||
|
+
|
||||||
+void NetworkProcess::setIgnoreCertificateErrors(PAL::SessionID sessionID, bool ignore)
|
+void NetworkProcess::setIgnoreCertificateErrors(PAL::SessionID sessionID, bool ignore)
|
||||||
+{
|
+{
|
||||||
+ if (auto* networkSession = this->networkSession(sessionID))
|
+ if (auto* networkSession = this->networkSession(sessionID))
|
||||||
|
|
@ -8653,7 +8691,7 @@ index 364c23618b3ce25e0c43b54bf538582adab83192..450d6c435cd14caf0302384a945204ff
|
||||||
void NetworkProcess::dumpResourceLoadStatistics(PAL::SessionID sessionID, CompletionHandler<void(String)>&& completionHandler)
|
void NetworkProcess::dumpResourceLoadStatistics(PAL::SessionID sessionID, CompletionHandler<void(String)>&& completionHandler)
|
||||||
{
|
{
|
||||||
diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.h b/Source/WebKit/NetworkProcess/NetworkProcess.h
|
diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.h b/Source/WebKit/NetworkProcess/NetworkProcess.h
|
||||||
index 083382c99a07b26fd58921c5c87e2a61b210761c..0ed80000724204f2fef7dbd3137726c40eaf5a33 100644
|
index 083382c99a07b26fd58921c5c87e2a61b210761c..af15a73973ed9207fa65765982813a975d17194d 100644
|
||||||
--- a/Source/WebKit/NetworkProcess/NetworkProcess.h
|
--- a/Source/WebKit/NetworkProcess/NetworkProcess.h
|
||||||
+++ b/Source/WebKit/NetworkProcess/NetworkProcess.h
|
+++ b/Source/WebKit/NetworkProcess/NetworkProcess.h
|
||||||
@@ -79,6 +79,7 @@ class SessionID;
|
@@ -79,6 +79,7 @@ class SessionID;
|
||||||
|
|
@ -8664,7 +8702,7 @@ index 083382c99a07b26fd58921c5c87e2a61b210761c..0ed80000724204f2fef7dbd3137726c4
|
||||||
class CurlProxySettings;
|
class CurlProxySettings;
|
||||||
class ProtectionSpace;
|
class ProtectionSpace;
|
||||||
class StorageQuotaManager;
|
class StorageQuotaManager;
|
||||||
@@ -207,6 +208,11 @@ public:
|
@@ -207,6 +208,13 @@ public:
|
||||||
|
|
||||||
void addWebsiteDataStore(WebsiteDataStoreParameters&&);
|
void addWebsiteDataStore(WebsiteDataStoreParameters&&);
|
||||||
|
|
||||||
|
|
@ -8672,15 +8710,17 @@ index 083382c99a07b26fd58921c5c87e2a61b210761c..0ed80000724204f2fef7dbd3137726c4
|
||||||
+ void setCookies(PAL::SessionID, Vector<WebCore::Cookie>, CompletionHandler<void(bool)>&&);
|
+ void setCookies(PAL::SessionID, Vector<WebCore::Cookie>, CompletionHandler<void(bool)>&&);
|
||||||
+ void deleteAllCookies(PAL::SessionID, CompletionHandler<void(bool)>&&);
|
+ void deleteAllCookies(PAL::SessionID, CompletionHandler<void(bool)>&&);
|
||||||
+ void setIgnoreCertificateErrors(PAL::SessionID, bool);
|
+ void setIgnoreCertificateErrors(PAL::SessionID, bool);
|
||||||
|
+
|
||||||
|
+ void getLocalStorageData(PAL::SessionID sessionID, CompletionHandler<void(Vector<std::pair<WebCore::SecurityOriginData, HashMap<String, String>>>&&)>&&);
|
||||||
+
|
+
|
||||||
#if ENABLE(RESOURCE_LOAD_STATISTICS)
|
#if ENABLE(RESOURCE_LOAD_STATISTICS)
|
||||||
void clearPrevalentResource(PAL::SessionID, const RegistrableDomain&, CompletionHandler<void()>&&);
|
void clearPrevalentResource(PAL::SessionID, const RegistrableDomain&, CompletionHandler<void()>&&);
|
||||||
void clearUserInteraction(PAL::SessionID, const RegistrableDomain&, CompletionHandler<void()>&&);
|
void clearUserInteraction(PAL::SessionID, const RegistrableDomain&, CompletionHandler<void()>&&);
|
||||||
diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.messages.in b/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
|
diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.messages.in b/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
|
||||||
index 40ea12a0d44aeda21492e852479d6a8dc22d83c8..2147d9ef376525346db7cdbe303a0d8fd8fa5174 100644
|
index 40ea12a0d44aeda21492e852479d6a8dc22d83c8..e74c749360b916d61c02816c6960f777ede7ada9 100644
|
||||||
--- a/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
|
--- a/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
|
||||||
+++ b/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
|
+++ b/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
|
||||||
@@ -79,6 +79,11 @@ messages -> NetworkProcess LegacyReceiver {
|
@@ -79,6 +79,13 @@ messages -> NetworkProcess LegacyReceiver {
|
||||||
|
|
||||||
PreconnectTo(PAL::SessionID sessionID, WebKit::WebPageProxyIdentifier webPageProxyID, WebCore::PageIdentifier webPageID, URL url, String userAgent, enum:uint8_t WebCore::StoredCredentialsPolicy storedCredentialsPolicy, enum:bool Optional<WebKit::NavigatingToAppBoundDomain> isNavigatingToAppBoundDomain, enum:bool WebKit::LastNavigationWasAppBound lastNavigationWasAppBound);
|
PreconnectTo(PAL::SessionID sessionID, WebKit::WebPageProxyIdentifier webPageProxyID, WebCore::PageIdentifier webPageID, URL url, String userAgent, enum:uint8_t WebCore::StoredCredentialsPolicy storedCredentialsPolicy, enum:bool Optional<WebKit::NavigatingToAppBoundDomain> isNavigatingToAppBoundDomain, enum:bool WebKit::LastNavigationWasAppBound lastNavigationWasAppBound);
|
||||||
|
|
||||||
|
|
@ -8688,6 +8728,8 @@ index 40ea12a0d44aeda21492e852479d6a8dc22d83c8..2147d9ef376525346db7cdbe303a0d8f
|
||||||
+ SetCookies(PAL::SessionID sessionID, Vector<WebCore::Cookie> cookies) -> (bool success) Async
|
+ SetCookies(PAL::SessionID sessionID, Vector<WebCore::Cookie> cookies) -> (bool success) Async
|
||||||
+ DeleteAllCookies(PAL::SessionID sessionID) -> (bool success) Async
|
+ DeleteAllCookies(PAL::SessionID sessionID) -> (bool success) Async
|
||||||
+ SetIgnoreCertificateErrors(PAL::SessionID sessionID, bool ignoreTLSErrors)
|
+ SetIgnoreCertificateErrors(PAL::SessionID sessionID, bool ignoreTLSErrors)
|
||||||
|
+
|
||||||
|
+ GetLocalStorageData(PAL::SessionID sessionID) -> (Vector<std::pair<WebCore::SecurityOriginData, HashMap<String, String>>> origins) Async
|
||||||
+
|
+
|
||||||
#if ENABLE(RESOURCE_LOAD_STATISTICS)
|
#if ENABLE(RESOURCE_LOAD_STATISTICS)
|
||||||
ClearPrevalentResource(PAL::SessionID sessionID, WebCore::RegistrableDomain resourceDomain) -> () Async
|
ClearPrevalentResource(PAL::SessionID sessionID, WebCore::RegistrableDomain resourceDomain) -> () Async
|
||||||
|
|
@ -8727,6 +8769,134 @@ index 48c883bfc0fc7d501c8a4a4e7684ccc33e38c14d..20dedbbaf4b1a713c8be41e21425c307
|
||||||
, m_delayFailTimer(*this, &NetworkSocketStream::sendDelayedFailMessage)
|
, m_delayFailTimer(*this, &NetworkSocketStream::sendDelayedFailMessage)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
diff --git a/Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.cpp b/Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.cpp
|
||||||
|
index 60153bf7d6b07f58e0ea1595a14fc8c81353c149..5c0907b31551b576aeed1e9d26f4f5bcce055ec2 100644
|
||||||
|
--- a/Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.cpp
|
||||||
|
+++ b/Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.cpp
|
||||||
|
@@ -29,6 +29,7 @@
|
||||||
|
#include "StorageArea.h"
|
||||||
|
#include "StorageManager.h"
|
||||||
|
#include <WebCore/SecurityOriginData.h>
|
||||||
|
+#include <wtf/Forward.h>
|
||||||
|
|
||||||
|
namespace WebKit {
|
||||||
|
|
||||||
|
@@ -103,4 +104,11 @@ Vector<StorageAreaIdentifier> LocalStorageNamespace::storageAreaIdentifiers() co
|
||||||
|
return identifiers;
|
||||||
|
}
|
||||||
|
|
||||||
|
+void LocalStorageNamespace::forEachStorageArea(Function<void(const StorageArea&)> callback) const
|
||||||
|
+{
|
||||||
|
+ ASSERT(!RunLoop::isMain());
|
||||||
|
+ for (auto& storageArea : m_storageAreaMap.values())
|
||||||
|
+ callback(*storageArea);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
} // namespace WebKit
|
||||||
|
diff --git a/Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.h b/Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.h
|
||||||
|
index adca9f4a255f58e2106dd6a4eceaddfff2451ac3..81f6c0bde82ea58ed5abc5e3653bb64a3377f531 100644
|
||||||
|
--- a/Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.h
|
||||||
|
+++ b/Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.h
|
||||||
|
@@ -28,7 +28,7 @@
|
||||||
|
#include "StorageAreaIdentifier.h"
|
||||||
|
#include "StorageNamespaceIdentifier.h"
|
||||||
|
#include <WebCore/SecurityOriginData.h>
|
||||||
|
-#include <wtf/Forward.h>
|
||||||
|
+#include <wtf/Function.h>
|
||||||
|
#include <wtf/HashMap.h>
|
||||||
|
#include <wtf/WeakPtr.h>
|
||||||
|
#include <wtf/WorkQueue.h>
|
||||||
|
@@ -59,6 +59,8 @@ public:
|
||||||
|
|
||||||
|
Vector<StorageAreaIdentifier> storageAreaIdentifiers() const;
|
||||||
|
|
||||||
|
+ void forEachStorageArea(Function<void(const StorageArea&)>) const;
|
||||||
|
+
|
||||||
|
private:
|
||||||
|
StorageManager& m_storageManager;
|
||||||
|
unsigned m_quotaInBytes { 0 };
|
||||||
|
diff --git a/Source/WebKit/NetworkProcess/WebStorage/StorageManager.cpp b/Source/WebKit/NetworkProcess/WebStorage/StorageManager.cpp
|
||||||
|
index 5bcca299ba415e39c02845997e5806b2846da93c..a7526a2adbd93ecb3e16a9b8b8f754152c79f2d4 100644
|
||||||
|
--- a/Source/WebKit/NetworkProcess/WebStorage/StorageManager.cpp
|
||||||
|
+++ b/Source/WebKit/NetworkProcess/WebStorage/StorageManager.cpp
|
||||||
|
@@ -147,6 +147,19 @@ HashSet<SecurityOriginData> StorageManager::getLocalStorageOriginsCrossThreadCop
|
||||||
|
return origins;
|
||||||
|
}
|
||||||
|
|
||||||
|
+Vector<std::pair<WebCore::SecurityOriginData, HashMap<String, String>>> StorageManager::getLocalStorageDataCrossThreadCopy() const
|
||||||
|
+{
|
||||||
|
+ ASSERT(!RunLoop::isMain());
|
||||||
|
+
|
||||||
|
+ Vector<std::pair<WebCore::SecurityOriginData, HashMap<String, String>>> result;
|
||||||
|
+ for (const auto& localStorageNameSpace : m_localStorageNamespaces.values()) {
|
||||||
|
+ localStorageNameSpace->forEachStorageArea([&] (const StorageArea& area) {
|
||||||
|
+ result.append({ area.securityOrigin().isolatedCopy(), area.items() });
|
||||||
|
+ });
|
||||||
|
+ }
|
||||||
|
+ return result;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
Vector<LocalStorageDatabaseTracker::OriginDetails> StorageManager::getLocalStorageOriginDetailsCrossThreadCopy() const
|
||||||
|
{
|
||||||
|
ASSERT(!RunLoop::isMain());
|
||||||
|
diff --git a/Source/WebKit/NetworkProcess/WebStorage/StorageManager.h b/Source/WebKit/NetworkProcess/WebStorage/StorageManager.h
|
||||||
|
index 0d6e7aedff68227bf7dc8ab7184abc6fd3321c54..67b616d818aa42f8cae33f0535c888cd4c5ec07e 100644
|
||||||
|
--- a/Source/WebKit/NetworkProcess/WebStorage/StorageManager.h
|
||||||
|
+++ b/Source/WebKit/NetworkProcess/WebStorage/StorageManager.h
|
||||||
|
@@ -66,6 +66,7 @@ public:
|
||||||
|
void deleteSessionStorageEntriesForOrigins(const Vector<WebCore::SecurityOriginData>&);
|
||||||
|
|
||||||
|
HashSet<WebCore::SecurityOriginData> getLocalStorageOriginsCrossThreadCopy() const;
|
||||||
|
+ Vector<std::pair<WebCore::SecurityOriginData, HashMap<String, String>>> getLocalStorageDataCrossThreadCopy() const;
|
||||||
|
void deleteLocalStorageOriginsModifiedSince(WallTime);
|
||||||
|
void deleteLocalStorageEntriesForOrigins(const Vector<WebCore::SecurityOriginData>&);
|
||||||
|
Vector<LocalStorageDatabaseTracker::OriginDetails> getLocalStorageOriginDetailsCrossThreadCopy() const;
|
||||||
|
diff --git a/Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.cpp b/Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.cpp
|
||||||
|
index f9e843de37319dd6c5c1063a3cdcf5c1d4bba195..f1ad21127d562ab469443cafa332abec6d9840c5 100644
|
||||||
|
--- a/Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.cpp
|
||||||
|
+++ b/Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.cpp
|
||||||
|
@@ -253,6 +253,21 @@ void StorageManagerSet::getLocalStorageOrigins(PAL::SessionID sessionID, GetOrig
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
+void StorageManagerSet::getLocalStorageData(PAL::SessionID sessionID, GetLocalStorageDataCallback&& completionHandler)
|
||||||
|
+{
|
||||||
|
+ ASSERT(RunLoop::isMain());
|
||||||
|
+
|
||||||
|
+ m_queue->dispatch([this, protectedThis = makeRef(*this), sessionID, completionHandler = WTFMove(completionHandler)]() mutable {
|
||||||
|
+ auto* storageManager = m_storageManagers.get(sessionID);
|
||||||
|
+ ASSERT(storageManager);
|
||||||
|
+
|
||||||
|
+ auto origins = storageManager->getLocalStorageDataCrossThreadCopy();
|
||||||
|
+ RunLoop::main().dispatch([completionHandler = WTFMove(completionHandler), origins = WTFMove(origins)]() mutable {
|
||||||
|
+ completionHandler(WTFMove(origins));
|
||||||
|
+ });
|
||||||
|
+ });
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void StorageManagerSet::deleteLocalStorageModifiedSince(PAL::SessionID sessionID, WallTime time, DeleteCallback&& completionHandler)
|
||||||
|
{
|
||||||
|
ASSERT(RunLoop::isMain());
|
||||||
|
diff --git a/Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.h b/Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.h
|
||||||
|
index 70a65a4ba68f7725b90f52f4d7a9c55fd96bcfed..81dd1d49f98ecefcb2e63670aa08eac617e48bcf 100644
|
||||||
|
--- a/Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.h
|
||||||
|
+++ b/Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.h
|
||||||
|
@@ -45,6 +45,7 @@ using ConnectToStorageAreaCallback = CompletionHandler<void(const Optional<Stora
|
||||||
|
using GetValuesCallback = CompletionHandler<void(const HashMap<String, String>&)>;
|
||||||
|
using GetOriginsCallback = CompletionHandler<void(HashSet<WebCore::SecurityOriginData>&&)>;
|
||||||
|
using GetOriginDetailsCallback = CompletionHandler<void(Vector<LocalStorageDatabaseTracker::OriginDetails>&&)>;
|
||||||
|
+using GetLocalStorageDataCallback = CompletionHandler<void(Vector<std::pair<WebCore::SecurityOriginData, HashMap<String, String>>>&&)>;
|
||||||
|
using DeleteCallback = CompletionHandler<void()>;
|
||||||
|
|
||||||
|
class StorageManagerSet : public IPC::Connection::WorkQueueMessageReceiver {
|
||||||
|
@@ -72,6 +73,7 @@ public:
|
||||||
|
void deleteLocalStorageModifiedSince(PAL::SessionID, WallTime, DeleteCallback&&);
|
||||||
|
void deleteLocalStorageForOrigins(PAL::SessionID, const Vector<WebCore::SecurityOriginData>&, DeleteCallback&&);
|
||||||
|
void getLocalStorageOriginDetails(PAL::SessionID, GetOriginDetailsCallback&&);
|
||||||
|
+ void getLocalStorageData(PAL::SessionID, GetLocalStorageDataCallback&&);
|
||||||
|
void renameOrigin(PAL::SessionID, const URL&, const URL&, CompletionHandler<void()>&&);
|
||||||
|
|
||||||
|
void didReceiveMessage(IPC::Connection&, IPC::Decoder&);
|
||||||
diff --git a/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h b/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h
|
diff --git a/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h b/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h
|
||||||
index d91819fc14c3d65f993917a4a3e88bd36b09c6c1..dccc51729796babfcc3c6e81251404f61b3e40e1 100644
|
index d91819fc14c3d65f993917a4a3e88bd36b09c6c1..dccc51729796babfcc3c6e81251404f61b3e40e1 100644
|
||||||
--- a/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h
|
--- a/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h
|
||||||
|
|
@ -13990,10 +14160,10 @@ index 0000000000000000000000000000000000000000..d0e11ed81a6257c011df23d5870da740
|
||||||
+} // namespace WebKit
|
+} // namespace WebKit
|
||||||
diff --git a/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp
|
diff --git a/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..f55fb6443a7478fb8532c73e3ec7ae8f0f3e8380
|
index 0000000000000000000000000000000000000000..6e510ec9b7625a3298e71ad24a33ad018cc55eb0
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp
|
+++ b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp
|
||||||
@@ -0,0 +1,888 @@
|
@@ -0,0 +1,921 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2019 Microsoft Corporation.
|
+ * Copyright (C) 2019 Microsoft Corporation.
|
||||||
+ *
|
+ *
|
||||||
|
|
@ -14040,6 +14210,7 @@ index 0000000000000000000000000000000000000000..f55fb6443a7478fb8532c73e3ec7ae8f
|
||||||
+#include "WebPageProxy.h"
|
+#include "WebPageProxy.h"
|
||||||
+#include "WebProcessPool.h"
|
+#include "WebProcessPool.h"
|
||||||
+#include "WebProcessProxy.h"
|
+#include "WebProcessProxy.h"
|
||||||
|
+#include "WebsiteDataRecord.h"
|
||||||
+#include <WebCore/FrameIdentifier.h>
|
+#include <WebCore/FrameIdentifier.h>
|
||||||
+#include <WebCore/GeolocationPositionData.h>
|
+#include <WebCore/GeolocationPositionData.h>
|
||||||
+#include <WebCore/InspectorPageAgent.h>
|
+#include <WebCore/InspectorPageAgent.h>
|
||||||
|
|
@ -14553,6 +14724,38 @@ index 0000000000000000000000000000000000000000..f55fb6443a7478fb8532c73e3ec7ae8f
|
||||||
+ m_client->deleteBrowserContext(errorString, sessionID);
|
+ m_client->deleteBrowserContext(errorString, sessionID);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
+void InspectorPlaywrightAgent::getLocalStorageData(const String& browserContextID, Ref<GetLocalStorageDataCallback>&& callback)
|
||||||
|
+{
|
||||||
|
+ String errorString;
|
||||||
|
+ BrowserContext* browserContext = lookupBrowserContext(errorString, browserContextID);
|
||||||
|
+ if (!lookupBrowserContext(errorString, browserContextID)) {
|
||||||
|
+ callback->sendFailure(errorString);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ PAL::SessionID sessionID = browserContext->dataStore->sessionID();
|
||||||
|
+ NetworkProcessProxy& networkProcess = browserContext->dataStore->networkProcess();
|
||||||
|
+ networkProcess.sendWithAsyncReply(Messages::NetworkProcess::GetLocalStorageData(sessionID),
|
||||||
|
+ [callback = WTFMove(callback)](Vector<std::pair<WebCore::SecurityOriginData, HashMap<String, String>>>&& data) {
|
||||||
|
+ if (!callback->isActive())
|
||||||
|
+ return;
|
||||||
|
+ auto origins = JSON::ArrayOf<Inspector::Protocol::Playwright::OriginStorage>::create();
|
||||||
|
+ for (const auto& originData : data) {
|
||||||
|
+ auto items = JSON::ArrayOf<Protocol::Playwright::NameValue>::create();
|
||||||
|
+ for (const auto& entry : originData.second) {
|
||||||
|
+ items->addItem(Protocol::Playwright::NameValue::create()
|
||||||
|
+ .setName(entry.key)
|
||||||
|
+ .setValue(entry.value)
|
||||||
|
+ .release());
|
||||||
|
+ }
|
||||||
|
+ origins->addItem(Protocol::Playwright::OriginStorage::create()
|
||||||
|
+ .setOrigin(originData.first.toString())
|
||||||
|
+ .setItems(WTFMove(items))
|
||||||
|
+ .release());
|
||||||
|
+ }
|
||||||
|
+ callback->sendSuccess(WTFMove(origins));
|
||||||
|
+ }, 0);
|
||||||
|
+}
|
||||||
|
+
|
||||||
+Inspector::Protocol::ErrorStringOr<String /* pageProxyID */> InspectorPlaywrightAgent::createPage(const String& browserContextID)
|
+Inspector::Protocol::ErrorStringOr<String /* pageProxyID */> InspectorPlaywrightAgent::createPage(const String& browserContextID)
|
||||||
+{
|
+{
|
||||||
+ String errorString;
|
+ String errorString;
|
||||||
|
|
@ -14884,10 +15087,10 @@ index 0000000000000000000000000000000000000000..f55fb6443a7478fb8532c73e3ec7ae8f
|
||||||
+#endif // ENABLE(REMOTE_INSPECTOR)
|
+#endif // ENABLE(REMOTE_INSPECTOR)
|
||||||
diff --git a/Source/WebKit/UIProcess/InspectorPlaywrightAgent.h b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.h
|
diff --git a/Source/WebKit/UIProcess/InspectorPlaywrightAgent.h b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..f5eecb22827ecd3b002cb1dd9e9938a1db0cb36e
|
index 0000000000000000000000000000000000000000..bbd82de8a82efc37c2d63beb58b6e2c443224698
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.h
|
+++ b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.h
|
||||||
@@ -0,0 +1,123 @@
|
@@ -0,0 +1,125 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2019 Microsoft Corporation.
|
+ * Copyright (C) 2019 Microsoft Corporation.
|
||||||
+ *
|
+ *
|
||||||
|
|
@ -14981,6 +15184,8 @@ index 0000000000000000000000000000000000000000..f5eecb22827ecd3b002cb1dd9e9938a1
|
||||||
+ void setCookies(const String& browserContextID, Ref<JSON::Array>&& in_cookies, Ref<SetCookiesCallback>&&) override;
|
+ void setCookies(const String& browserContextID, Ref<JSON::Array>&& in_cookies, Ref<SetCookiesCallback>&&) override;
|
||||||
+ void deleteAllCookies(const String& browserContextID, Ref<DeleteAllCookiesCallback>&&) override;
|
+ void deleteAllCookies(const String& browserContextID, Ref<DeleteAllCookiesCallback>&&) override;
|
||||||
+
|
+
|
||||||
|
+ void getLocalStorageData(const String& browserContextID, Ref<GetLocalStorageDataCallback>&&) override;
|
||||||
|
+
|
||||||
+ Inspector::Protocol::ErrorStringOr<void> setGeolocationOverride(const String& browserContextID, RefPtr<JSON::Object>&& geolocation) override;
|
+ Inspector::Protocol::ErrorStringOr<void> setGeolocationOverride(const String& browserContextID, RefPtr<JSON::Object>&& geolocation) override;
|
||||||
+ Inspector::Protocol::ErrorStringOr<void> setLanguages(Ref<JSON::Array>&& languages, const String& browserContextID) override;
|
+ Inspector::Protocol::ErrorStringOr<void> setLanguages(Ref<JSON::Array>&& languages, const String& browserContextID) override;
|
||||||
+ Inspector::Protocol::ErrorStringOr<void> setDownloadBehavior(const String& behavior, const String& downloadPath, const String& browserContextID) override;
|
+ Inspector::Protocol::ErrorStringOr<void> setDownloadBehavior(const String& behavior, const String& downloadPath, const String& browserContextID) override;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue