@@ -9803,10 +9803,10 @@ index 0000000000000000000000000000000000000000..f356c613945fd263889bc74166bef2b2
9803
9803
+} // namespace WebKit
9804
9804
diff --git a/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp
9805
9805
new file mode 100644
9806
- index 0000000000000000000000000000000000000000..cea80a8f37fe56b3dc6eb3b36744c70c43a74282
9806
+ index 0000000000000000000000000000000000000000..012629e3d4e4b892a8c23c3984ab30409b9c2b1a
9807
9807
--- /dev/null
9808
9808
+++ b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp
9809
- @@ -0,0 +1,819 @@
9809
+ @@ -0,0 +1,821 @@
9810
9810
+/*
9811
9811
+ * Copyright (C) 2019 Microsoft Corporation.
9812
9812
+ *
@@ -10242,11 +10242,13 @@ index 0000000000000000000000000000000000000000..cea80a8f37fe56b3dc6eb3b36744c70c
10242
10242
+void InspectorPlaywrightAgent::close(Ref<CloseCallback>&& callback)
10243
10243
+{
10244
10244
+ Vector<WebPageProxy*> pages;
10245
- + for (auto& pool : WebProcessPool::allProcessPools()) {
10246
- + for (auto& process : pool->processes()) {
10247
- + for (auto* page : process->pages())
10248
- + pages.append(page);
10249
- + }
10245
+ + // If Web Process crashed it will be disconnected from its pool until
10246
+ + // the page reloads. So we cannot discover such processes and the pages
10247
+ + // by traversing all process pools and their processes. Instead we look at
10248
+ + // all existing Web Processes wether in a pool or not.
10249
+ + for (auto* process : WebProcessProxy::allProcessesForInspector()) {
10250
+ + for (auto* page : process->pages())
10251
+ + pages.append(page);
10250
10252
+ }
10251
10253
+ for (auto* page : pages)
10252
10254
+ page->closePage();
@@ -12285,6 +12287,34 @@ index 7a10eab7a8637b7c35471fe71098f4bc83298171..b3ba8f5734d9ec539e8ecf5756ee4e1b
12285
12287
#endif
12286
12288
12287
12289
bool m_memoryCacheDisabled { false };
12290
+ diff --git a/Source/WebKit/UIProcess/WebProcessProxy.cpp b/Source/WebKit/UIProcess/WebProcessProxy.cpp
12291
+ index ab1e837ddb4042cb9c2c969d6a2a918ab2cc0817..f04d862c4f703c4bc4c3b892878b4d4daf378559 100644
12292
+ --- a/Source/WebKit/UIProcess/WebProcessProxy.cpp
12293
+ +++ b/Source/WebKit/UIProcess/WebProcessProxy.cpp
12294
+ @@ -115,6 +115,11 @@ static HashMap<ProcessIdentifier, WebProcessProxy*>& allProcesses()
12295
+ return map;
12296
+ }
12297
+
12298
+ +Vector<WebProcessProxy*> WebProcessProxy::allProcessesForInspector()
12299
+ +{
12300
+ + return copyToVector(allProcesses().values());
12301
+ +}
12302
+ +
12303
+ WebProcessProxy* WebProcessProxy::processForIdentifier(ProcessIdentifier identifier)
12304
+ {
12305
+ return allProcesses().get(identifier);
12306
+ diff --git a/Source/WebKit/UIProcess/WebProcessProxy.h b/Source/WebKit/UIProcess/WebProcessProxy.h
12307
+ index b1fb0ffb2ebed809af665955d16b5546b6f05fef..87e24456952e58846c6bbc3fe76466b7222b2e5d 100644
12308
+ --- a/Source/WebKit/UIProcess/WebProcessProxy.h
12309
+ +++ b/Source/WebKit/UIProcess/WebProcessProxy.h
12310
+ @@ -131,6 +131,7 @@ public:
12311
+ ~WebProcessProxy();
12312
+
12313
+ static void forWebPagesWithOrigin(PAL::SessionID, const WebCore::SecurityOriginData&, const Function<void(WebPageProxy&)>&);
12314
+ + static Vector<WebProcessProxy*> allProcessesForInspector();
12315
+
12316
+ WebConnection* webConnection() const { return m_webConnection.get(); }
12317
+
12288
12318
diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
12289
12319
index ce9bd7f8b84119d90a838b5afee04b8bf79e2dd2..add34235c20d4b20f001baa4a977496b2e4eb661 100644
12290
12320
--- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
0 commit comments