browser(webkit): introduce screencastFinished event on Context (#3611)
This commit is contained in:
parent
06dcf967ba
commit
db7bec36c5
|
|
@ -1,2 +1,2 @@
|
||||||
1330
|
1331
|
||||||
Changed: yurys@chromium.org Mon Aug 24 10:36:25 PDT 2020
|
Changed: yurys@chromium.org Mon Aug 24 19:56:43 PDT 2020
|
||||||
|
|
|
||||||
|
|
@ -969,10 +969,10 @@ index 3b8fa18bd7e8d95d7e8f95b442afc63e550ce63a..a72174146a85d0db01b11fda3a120712
|
||||||
}
|
}
|
||||||
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..dd4c318ec4b9b49ce937266ba899e54f8e6fa932
|
index 0000000000000000000000000000000000000000..d5d6ac78429a46cd46901c7eb760e594bf7ee510
|
||||||
--- /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,251 @@
|
||||||
+{
|
+{
|
||||||
+ "domain": "Playwright",
|
+ "domain": "Playwright",
|
||||||
+ "availability": ["web"],
|
+ "availability": ["web"],
|
||||||
|
|
@ -1214,31 +1214,48 @@ index 0000000000000000000000000000000000000000..dd4c318ec4b9b49ce937266ba899e54f
|
||||||
+ { "name": "uuid", "type": "string" },
|
+ { "name": "uuid", "type": "string" },
|
||||||
+ { "name": "error", "type": "string" }
|
+ { "name": "error", "type": "string" }
|
||||||
+ ]
|
+ ]
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ "name": "screencastFinished",
|
||||||
|
+ "parameters": [
|
||||||
|
+ { "name": "browserContextId", "$ref": "ContextID", "description": "Unique identifier of the context." },
|
||||||
|
+ { "name": "screencastId", "$ref": "Screencast.ScreencastId", "description": "Unique identifier of the screencast." }
|
||||||
|
+ ]
|
||||||
+ }
|
+ }
|
||||||
+ ]
|
+ ]
|
||||||
+}
|
+}
|
||||||
diff --git a/Source/JavaScriptCore/inspector/protocol/Screencast.json b/Source/JavaScriptCore/inspector/protocol/Screencast.json
|
diff --git a/Source/JavaScriptCore/inspector/protocol/Screencast.json b/Source/JavaScriptCore/inspector/protocol/Screencast.json
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..d0759ea0a9803c13e4f161b87179ba4890ac5c7b
|
index 0000000000000000000000000000000000000000..a51b42b2a2b575927509e11dc7241ab6f203c104
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Source/JavaScriptCore/inspector/protocol/Screencast.json
|
+++ b/Source/JavaScriptCore/inspector/protocol/Screencast.json
|
||||||
@@ -0,0 +1,21 @@
|
@@ -0,0 +1,31 @@
|
||||||
+{
|
+{
|
||||||
+ "domain": "Screencast",
|
+ "domain": "Screencast",
|
||||||
+ "availability": ["web"],
|
+ "availability": ["web"],
|
||||||
|
+ "types": [
|
||||||
|
+ {
|
||||||
|
+ "id": "ScreencastId",
|
||||||
|
+ "type": "string",
|
||||||
|
+ "description": "Unique identifier of the screencast."
|
||||||
|
+ }
|
||||||
|
+ ],
|
||||||
+ "commands": [
|
+ "commands": [
|
||||||
+ {
|
+ {
|
||||||
+ "name": "startVideoRecording",
|
+ "name": "start",
|
||||||
+ "description": "Starts recoring video to speified file.",
|
+ "description": "Starts recoring video to speified file.",
|
||||||
+ "parameters": [
|
+ "parameters": [
|
||||||
+ { "name": "file", "type": "string", "description": "Output file location." },
|
+ { "name": "file", "type": "string", "description": "Output file location." },
|
||||||
+ { "name": "width", "type": "integer" },
|
+ { "name": "width", "type": "integer" },
|
||||||
+ { "name": "height", "type": "integer" },
|
+ { "name": "height", "type": "integer" },
|
||||||
+ { "name": "scale", "type": "number", "optional": true }
|
+ { "name": "scale", "type": "number", "optional": true }
|
||||||
|
+ ],
|
||||||
|
+ "returns": [
|
||||||
|
+ { "name": "screencastId", "$ref": "ScreencastId", "description": "Unique identifier of the screencast." }
|
||||||
+ ]
|
+ ]
|
||||||
+ },
|
+ },
|
||||||
+ {
|
+ {
|
||||||
+ "name": "stopVideoRecording",
|
+ "name": "stop",
|
||||||
+ "async": true,
|
+ "async": true,
|
||||||
+ "description": "Stops recoding video. Returns after the file has been closed."
|
+ "description": "Stops recoding video. Returns after the file has been closed."
|
||||||
+ }
|
+ }
|
||||||
|
|
@ -8340,10 +8357,10 @@ index 59cdfdafab1d85ea3a5aecb3cd2293e6dfb1eb8d..52fe7990b1c18b964ee3cfa9f324e3c2
|
||||||
// The timeout we use when waiting for a DidUpdateGeometry message.
|
// The timeout we use when waiting for a DidUpdateGeometry message.
|
||||||
diff --git a/Source/WebKit/UIProcess/Inspector/Agents/InspectorScreencastAgent.cpp b/Source/WebKit/UIProcess/Inspector/Agents/InspectorScreencastAgent.cpp
|
diff --git a/Source/WebKit/UIProcess/Inspector/Agents/InspectorScreencastAgent.cpp b/Source/WebKit/UIProcess/Inspector/Agents/InspectorScreencastAgent.cpp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..54f5897a8812b5654629e9cecdd003b2e5027be5
|
index 0000000000000000000000000000000000000000..7c786378903b69e6eb9c44915b57e70dee4adaea
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Source/WebKit/UIProcess/Inspector/Agents/InspectorScreencastAgent.cpp
|
+++ b/Source/WebKit/UIProcess/Inspector/Agents/InspectorScreencastAgent.cpp
|
||||||
@@ -0,0 +1,157 @@
|
@@ -0,0 +1,170 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2020 Microsoft Corporation.
|
+ * Copyright (C) 2020 Microsoft Corporation.
|
||||||
+ *
|
+ *
|
||||||
|
|
@ -8379,6 +8396,7 @@ index 0000000000000000000000000000000000000000..54f5897a8812b5654629e9cecdd003b2
|
||||||
+#include <JavaScriptCore/InspectorFrontendRouter.h>
|
+#include <JavaScriptCore/InspectorFrontendRouter.h>
|
||||||
+#include <WebCore/NotImplemented.h>
|
+#include <WebCore/NotImplemented.h>
|
||||||
+#include <wtf/RunLoop.h>
|
+#include <wtf/RunLoop.h>
|
||||||
|
+#include <wtf/UUID.h>
|
||||||
+
|
+
|
||||||
+#if USE(CAIRO)
|
+#if USE(CAIRO)
|
||||||
+#include "DrawingAreaProxyCoordinatedGraphics.h"
|
+#include "DrawingAreaProxyCoordinatedGraphics.h"
|
||||||
|
|
@ -8409,7 +8427,12 @@ index 0000000000000000000000000000000000000000..54f5897a8812b5654629e9cecdd003b2
|
||||||
+ if (!m_encoder)
|
+ if (!m_encoder)
|
||||||
+ return;
|
+ return;
|
||||||
+
|
+
|
||||||
+ m_encoder->finish([] { });
|
+ // The agent may be destroyed when the callback is invoked.
|
||||||
|
+ m_encoder->finish([sessionID = m_page.websiteDataStore().sessionID(), screencastID = WTFMove(m_currentScreencastID)] {
|
||||||
|
+ if (WebPageInspectorController::observer())
|
||||||
|
+ WebPageInspectorController::observer()->didFinishScreencast(sessionID, screencastID);
|
||||||
|
+ });
|
||||||
|
+
|
||||||
+ m_encoder = nullptr;
|
+ m_encoder = nullptr;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
|
@ -8421,7 +8444,7 @@ index 0000000000000000000000000000000000000000..54f5897a8812b5654629e9cecdd003b2
|
||||||
+}
|
+}
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
+void InspectorScreencastAgent::startVideoRecording(Inspector::ErrorString& errorString, const String& file, int width, int height, const double* scale)
|
+void InspectorScreencastAgent::start(Inspector::ErrorString& errorString, const String& file, int width, int height, const double* scale, String* screencastID)
|
||||||
+{
|
+{
|
||||||
+ if (m_encoder) {
|
+ if (m_encoder) {
|
||||||
+ errorString = "Already recording"_s;
|
+ errorString = "Already recording"_s;
|
||||||
|
|
@ -8445,6 +8468,9 @@ index 0000000000000000000000000000000000000000..54f5897a8812b5654629e9cecdd003b2
|
||||||
+ if (!m_encoder)
|
+ if (!m_encoder)
|
||||||
+ return;
|
+ return;
|
||||||
+
|
+
|
||||||
|
+ m_currentScreencastID = createCanonicalUUIDString();
|
||||||
|
+ *screencastID = m_currentScreencastID;
|
||||||
|
+
|
||||||
+#if PLATFORM(MAC)
|
+#if PLATFORM(MAC)
|
||||||
+ m_encoder->setOffsetTop(m_page.pageClient().browserToolbarHeight());
|
+ m_encoder->setOffsetTop(m_page.pageClient().browserToolbarHeight());
|
||||||
+#endif
|
+#endif
|
||||||
|
|
@ -8453,13 +8479,17 @@ index 0000000000000000000000000000000000000000..54f5897a8812b5654629e9cecdd003b2
|
||||||
+#endif
|
+#endif
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+void InspectorScreencastAgent::stopVideoRecording(Ref<StopVideoRecordingCallback>&& callback)
|
+void InspectorScreencastAgent::stop(Ref<StopCallback>&& callback)
|
||||||
+{
|
+{
|
||||||
+ if (!m_encoder) {
|
+ if (!m_encoder) {
|
||||||
+ callback->sendFailure("Not recording"_s);
|
+ callback->sendFailure("Not recording"_s);
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
+ m_encoder->finish([callback = WTFMove(callback)] {
|
+
|
||||||
|
+ // The agent may be destroyed when the callback is invoked.
|
||||||
|
+ m_encoder->finish([sessionID = m_page.websiteDataStore().sessionID(), screencastID = WTFMove(m_currentScreencastID), callback = WTFMove(callback)] {
|
||||||
|
+ if (WebPageInspectorController::observer())
|
||||||
|
+ WebPageInspectorController::observer()->didFinishScreencast(sessionID, screencastID);
|
||||||
+ callback->sendSuccess();
|
+ callback->sendSuccess();
|
||||||
+ });
|
+ });
|
||||||
+ m_encoder = nullptr;
|
+ m_encoder = nullptr;
|
||||||
|
|
@ -8503,10 +8533,10 @@ index 0000000000000000000000000000000000000000..54f5897a8812b5654629e9cecdd003b2
|
||||||
+} // namespace WebKit
|
+} // namespace WebKit
|
||||||
diff --git a/Source/WebKit/UIProcess/Inspector/Agents/InspectorScreencastAgent.h b/Source/WebKit/UIProcess/Inspector/Agents/InspectorScreencastAgent.h
|
diff --git a/Source/WebKit/UIProcess/Inspector/Agents/InspectorScreencastAgent.h b/Source/WebKit/UIProcess/Inspector/Agents/InspectorScreencastAgent.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..1ff1e813de838a60f4ab030e31b248913260d3b4
|
index 0000000000000000000000000000000000000000..31a922667462de1a1edc24a10f25c0640dc034e3
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Source/WebKit/UIProcess/Inspector/Agents/InspectorScreencastAgent.h
|
+++ b/Source/WebKit/UIProcess/Inspector/Agents/InspectorScreencastAgent.h
|
||||||
@@ -0,0 +1,76 @@
|
@@ -0,0 +1,77 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2020 Microsoft Corporation.
|
+ * Copyright (C) 2020 Microsoft Corporation.
|
||||||
+ *
|
+ *
|
||||||
|
|
@ -8567,8 +8597,8 @@ index 0000000000000000000000000000000000000000..1ff1e813de838a60f4ab030e31b24891
|
||||||
+ void didPaint(cairo_surface_t*);
|
+ void didPaint(cairo_surface_t*);
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
+ void startVideoRecording(Inspector::ErrorString&, const String& file, int width, int height, const double* scale) override;
|
+ void start(Inspector::ErrorString&, const String& file, int width, int height, const double* scale, String* screencastID) override;
|
||||||
+ void stopVideoRecording(Ref<StopVideoRecordingCallback>&&) override;
|
+ void stop(Ref<StopCallback>&&) override;
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
+private:
|
+private:
|
||||||
|
|
@ -8580,6 +8610,7 @@ index 0000000000000000000000000000000000000000..1ff1e813de838a60f4ab030e31b24891
|
||||||
+ Ref<Inspector::ScreencastBackendDispatcher> m_backendDispatcher;
|
+ Ref<Inspector::ScreencastBackendDispatcher> m_backendDispatcher;
|
||||||
+ WebPageProxy& m_page;
|
+ WebPageProxy& m_page;
|
||||||
+ RefPtr<ScreencastEncoder> m_encoder;
|
+ RefPtr<ScreencastEncoder> m_encoder;
|
||||||
|
+ String m_currentScreencastID;
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+} // namespace WebKit
|
+} // namespace WebKit
|
||||||
|
|
@ -9302,7 +9333,7 @@ index a2239cec8e18850f35f7f88a9c4ebadc62bf4023..79f3ff84327dc075ec96983e04db4b10
|
||||||
|
|
||||||
} // namespace WebKit
|
} // namespace WebKit
|
||||||
diff --git a/Source/WebKit/UIProcess/Inspector/WebPageInspectorController.cpp b/Source/WebKit/UIProcess/Inspector/WebPageInspectorController.cpp
|
diff --git a/Source/WebKit/UIProcess/Inspector/WebPageInspectorController.cpp b/Source/WebKit/UIProcess/Inspector/WebPageInspectorController.cpp
|
||||||
index 1861cff806131196ea49b4f8aca6665beebbf6e8..6017f0336eae1717a2a595e735cace19301f1b35 100644
|
index 1861cff806131196ea49b4f8aca6665beebbf6e8..76aae0165617d0540ffe5404d58bd341f568bc70 100644
|
||||||
--- a/Source/WebKit/UIProcess/Inspector/WebPageInspectorController.cpp
|
--- a/Source/WebKit/UIProcess/Inspector/WebPageInspectorController.cpp
|
||||||
+++ b/Source/WebKit/UIProcess/Inspector/WebPageInspectorController.cpp
|
+++ b/Source/WebKit/UIProcess/Inspector/WebPageInspectorController.cpp
|
||||||
@@ -26,12 +26,20 @@
|
@@ -26,12 +26,20 @@
|
||||||
|
|
@ -9326,7 +9357,7 @@ index 1861cff806131196ea49b4f8aca6665beebbf6e8..6017f0336eae1717a2a595e735cace19
|
||||||
#include <JavaScriptCore/InspectorAgentBase.h>
|
#include <JavaScriptCore/InspectorAgentBase.h>
|
||||||
#include <JavaScriptCore/InspectorBackendDispatcher.h>
|
#include <JavaScriptCore/InspectorBackendDispatcher.h>
|
||||||
#include <JavaScriptCore/InspectorBackendDispatchers.h>
|
#include <JavaScriptCore/InspectorBackendDispatchers.h>
|
||||||
@@ -48,27 +56,104 @@ static String getTargetID(const ProvisionalPageProxy& provisionalPage)
|
@@ -48,27 +56,108 @@ static String getTargetID(const ProvisionalPageProxy& provisionalPage)
|
||||||
return WebPageInspectorTarget::toTargetID(provisionalPage.webPageID());
|
return WebPageInspectorTarget::toTargetID(provisionalPage.webPageID());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -9336,6 +9367,10 @@ index 1861cff806131196ea49b4f8aca6665beebbf6e8..6017f0336eae1717a2a595e735cace19
|
||||||
+{
|
+{
|
||||||
+ s_observer = observer;
|
+ s_observer = observer;
|
||||||
+}
|
+}
|
||||||
|
+
|
||||||
|
+WebPageInspectorControllerObserver* WebPageInspectorController::observer() {
|
||||||
|
+ return s_observer;
|
||||||
|
+}
|
||||||
+
|
+
|
||||||
WebPageInspectorController::WebPageInspectorController(WebPageProxy& page)
|
WebPageInspectorController::WebPageInspectorController(WebPageProxy& page)
|
||||||
: m_frontendRouter(FrontendRouter::create())
|
: m_frontendRouter(FrontendRouter::create())
|
||||||
|
|
@ -9434,7 +9469,7 @@ index 1861cff806131196ea49b4f8aca6665beebbf6e8..6017f0336eae1717a2a595e735cace19
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WebPageInspectorController::hasLocalFrontend() const
|
bool WebPageInspectorController::hasLocalFrontend() const
|
||||||
@@ -82,6 +167,17 @@ void WebPageInspectorController::connectFrontend(Inspector::FrontendChannel& fro
|
@@ -82,6 +171,17 @@ void WebPageInspectorController::connectFrontend(Inspector::FrontendChannel& fro
|
||||||
|
|
||||||
bool connectingFirstFrontend = !m_frontendRouter->hasFrontends();
|
bool connectingFirstFrontend = !m_frontendRouter->hasFrontends();
|
||||||
|
|
||||||
|
|
@ -9452,7 +9487,7 @@ index 1861cff806131196ea49b4f8aca6665beebbf6e8..6017f0336eae1717a2a595e735cace19
|
||||||
m_frontendRouter->connectFrontend(frontendChannel);
|
m_frontendRouter->connectFrontend(frontendChannel);
|
||||||
|
|
||||||
if (connectingFirstFrontend)
|
if (connectingFirstFrontend)
|
||||||
@@ -100,8 +196,10 @@ void WebPageInspectorController::disconnectFrontend(FrontendChannel& frontendCha
|
@@ -100,8 +200,10 @@ void WebPageInspectorController::disconnectFrontend(FrontendChannel& frontendCha
|
||||||
m_frontendRouter->disconnectFrontend(frontendChannel);
|
m_frontendRouter->disconnectFrontend(frontendChannel);
|
||||||
|
|
||||||
bool disconnectingLastFrontend = !m_frontendRouter->hasFrontends();
|
bool disconnectingLastFrontend = !m_frontendRouter->hasFrontends();
|
||||||
|
|
@ -9464,7 +9499,7 @@ index 1861cff806131196ea49b4f8aca6665beebbf6e8..6017f0336eae1717a2a595e735cace19
|
||||||
|
|
||||||
m_page.didChangeInspectorFrontendCount(m_frontendRouter->frontendCount());
|
m_page.didChangeInspectorFrontendCount(m_frontendRouter->frontendCount());
|
||||||
|
|
||||||
@@ -124,6 +222,8 @@ void WebPageInspectorController::disconnectAllFrontends()
|
@@ -124,6 +226,8 @@ void WebPageInspectorController::disconnectAllFrontends()
|
||||||
// Disconnect any remaining remote frontends.
|
// Disconnect any remaining remote frontends.
|
||||||
m_frontendRouter->disconnectAllFrontends();
|
m_frontendRouter->disconnectAllFrontends();
|
||||||
|
|
||||||
|
|
@ -9473,7 +9508,7 @@ index 1861cff806131196ea49b4f8aca6665beebbf6e8..6017f0336eae1717a2a595e735cace19
|
||||||
m_page.didChangeInspectorFrontendCount(m_frontendRouter->frontendCount());
|
m_page.didChangeInspectorFrontendCount(m_frontendRouter->frontendCount());
|
||||||
|
|
||||||
#if ENABLE(REMOTE_INSPECTOR)
|
#if ENABLE(REMOTE_INSPECTOR)
|
||||||
@@ -150,6 +250,66 @@ void WebPageInspectorController::setIndicating(bool indicating)
|
@@ -150,6 +254,66 @@ void WebPageInspectorController::setIndicating(bool indicating)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -9540,7 +9575,7 @@ index 1861cff806131196ea49b4f8aca6665beebbf6e8..6017f0336eae1717a2a595e735cace19
|
||||||
void WebPageInspectorController::createInspectorTarget(const String& targetId, Inspector::InspectorTargetType type)
|
void WebPageInspectorController::createInspectorTarget(const String& targetId, Inspector::InspectorTargetType type)
|
||||||
{
|
{
|
||||||
addTarget(InspectorTargetProxy::create(m_page, targetId, type));
|
addTarget(InspectorTargetProxy::create(m_page, targetId, type));
|
||||||
@@ -169,6 +329,33 @@ void WebPageInspectorController::sendMessageToInspectorFrontend(const String& ta
|
@@ -169,6 +333,33 @@ void WebPageInspectorController::sendMessageToInspectorFrontend(const String& ta
|
||||||
m_targetAgent->sendMessageFromTargetToFrontend(targetId, message);
|
m_targetAgent->sendMessageFromTargetToFrontend(targetId, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -9574,7 +9609,7 @@ index 1861cff806131196ea49b4f8aca6665beebbf6e8..6017f0336eae1717a2a595e735cace19
|
||||||
bool WebPageInspectorController::shouldPauseLoading(const ProvisionalPageProxy& provisionalPage) const
|
bool WebPageInspectorController::shouldPauseLoading(const ProvisionalPageProxy& provisionalPage) const
|
||||||
{
|
{
|
||||||
if (!m_frontendRouter->hasFrontends())
|
if (!m_frontendRouter->hasFrontends())
|
||||||
@@ -188,7 +375,7 @@ void WebPageInspectorController::setContinueLoadingCallback(const ProvisionalPag
|
@@ -188,7 +379,7 @@ void WebPageInspectorController::setContinueLoadingCallback(const ProvisionalPag
|
||||||
|
|
||||||
void WebPageInspectorController::didCreateProvisionalPage(ProvisionalPageProxy& provisionalPage)
|
void WebPageInspectorController::didCreateProvisionalPage(ProvisionalPageProxy& provisionalPage)
|
||||||
{
|
{
|
||||||
|
|
@ -9583,7 +9618,7 @@ index 1861cff806131196ea49b4f8aca6665beebbf6e8..6017f0336eae1717a2a595e735cace19
|
||||||
}
|
}
|
||||||
|
|
||||||
void WebPageInspectorController::willDestroyProvisionalPage(const ProvisionalPageProxy& provisionalPage)
|
void WebPageInspectorController::willDestroyProvisionalPage(const ProvisionalPageProxy& provisionalPage)
|
||||||
@@ -241,4 +428,20 @@ void WebPageInspectorController::addTarget(std::unique_ptr<InspectorTargetProxy>
|
@@ -241,4 +432,20 @@ void WebPageInspectorController::addTarget(std::unique_ptr<InspectorTargetProxy>
|
||||||
m_targets.set(target->identifier(), WTFMove(target));
|
m_targets.set(target->identifier(), WTFMove(target));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -9605,10 +9640,10 @@ index 1861cff806131196ea49b4f8aca6665beebbf6e8..6017f0336eae1717a2a595e735cace19
|
||||||
+
|
+
|
||||||
} // namespace WebKit
|
} // namespace WebKit
|
||||||
diff --git a/Source/WebKit/UIProcess/Inspector/WebPageInspectorController.h b/Source/WebKit/UIProcess/Inspector/WebPageInspectorController.h
|
diff --git a/Source/WebKit/UIProcess/Inspector/WebPageInspectorController.h b/Source/WebKit/UIProcess/Inspector/WebPageInspectorController.h
|
||||||
index f9c26832d3e91e8d747c5c1e0f0d76c34f4c3096..0cdf93cfe090b9be742a9c670b3372d2b3862d8f 100644
|
index f9c26832d3e91e8d747c5c1e0f0d76c34f4c3096..8b73efbba93362d8eebcc3a52158d8b0f6e4c59d 100644
|
||||||
--- a/Source/WebKit/UIProcess/Inspector/WebPageInspectorController.h
|
--- a/Source/WebKit/UIProcess/Inspector/WebPageInspectorController.h
|
||||||
+++ b/Source/WebKit/UIProcess/Inspector/WebPageInspectorController.h
|
+++ b/Source/WebKit/UIProcess/Inspector/WebPageInspectorController.h
|
||||||
@@ -26,17 +26,31 @@
|
@@ -26,17 +26,35 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "InspectorTargetProxy.h"
|
#include "InspectorTargetProxy.h"
|
||||||
|
|
@ -9637,10 +9672,14 @@ index f9c26832d3e91e8d747c5c1e0f0d76c34f4c3096..0cdf93cfe090b9be742a9c670b3372d2
|
||||||
+class ResourceRequest;
|
+class ResourceRequest;
|
||||||
+enum class PolicyAction : uint8_t;
|
+enum class PolicyAction : uint8_t;
|
||||||
+struct WindowFeatures;
|
+struct WindowFeatures;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+namespace PAL {
|
||||||
|
+class SessionID;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace WebKit {
|
namespace WebKit {
|
||||||
@@ -44,6 +58,22 @@ namespace WebKit {
|
@@ -44,6 +62,23 @@ namespace WebKit {
|
||||||
class InspectorBrowserAgent;
|
class InspectorBrowserAgent;
|
||||||
struct WebPageAgentContext;
|
struct WebPageAgentContext;
|
||||||
|
|
||||||
|
|
@ -9655,6 +9694,7 @@ index f9c26832d3e91e8d747c5c1e0f0d76c34f4c3096..0cdf93cfe090b9be742a9c670b3372d2
|
||||||
+ virtual void willDestroyInspectorController(WebPageProxy&) = 0;
|
+ virtual void willDestroyInspectorController(WebPageProxy&) = 0;
|
||||||
+ virtual void didFailProvisionalLoad(WebPageProxy&, uint64_t navigationID, const String& error) = 0;
|
+ virtual void didFailProvisionalLoad(WebPageProxy&, uint64_t navigationID, const String& error) = 0;
|
||||||
+ virtual void willCreateNewPage(WebPageProxy&, const WebCore::WindowFeatures&, const URL&) = 0;
|
+ virtual void willCreateNewPage(WebPageProxy&, const WebCore::WindowFeatures&, const URL&) = 0;
|
||||||
|
+ virtual void didFinishScreencast(const PAL::SessionID& sessionID, const String& screencastID) = 0;
|
||||||
+
|
+
|
||||||
+protected:
|
+protected:
|
||||||
+ virtual ~WebPageInspectorControllerObserver() = default;
|
+ virtual ~WebPageInspectorControllerObserver() = default;
|
||||||
|
|
@ -9663,13 +9703,14 @@ index f9c26832d3e91e8d747c5c1e0f0d76c34f4c3096..0cdf93cfe090b9be742a9c670b3372d2
|
||||||
class WebPageInspectorController {
|
class WebPageInspectorController {
|
||||||
WTF_MAKE_NONCOPYABLE(WebPageInspectorController);
|
WTF_MAKE_NONCOPYABLE(WebPageInspectorController);
|
||||||
WTF_MAKE_FAST_ALLOCATED;
|
WTF_MAKE_FAST_ALLOCATED;
|
||||||
@@ -51,7 +81,19 @@ public:
|
@@ -51,7 +86,20 @@ public:
|
||||||
WebPageInspectorController(WebPageProxy&);
|
WebPageInspectorController(WebPageProxy&);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
+ void didFinishAttachingToWebProcess();
|
+ void didFinishAttachingToWebProcess();
|
||||||
+
|
+
|
||||||
+ static void setObserver(WebPageInspectorControllerObserver*);
|
+ static void setObserver(WebPageInspectorControllerObserver*);
|
||||||
|
+ static WebPageInspectorControllerObserver* observer();
|
||||||
+
|
+
|
||||||
void pageClosed();
|
void pageClosed();
|
||||||
+ bool pageCrashed(ProcessTerminationReason);
|
+ bool pageCrashed(ProcessTerminationReason);
|
||||||
|
|
@ -9683,7 +9724,7 @@ index f9c26832d3e91e8d747c5c1e0f0d76c34f4c3096..0cdf93cfe090b9be742a9c670b3372d2
|
||||||
|
|
||||||
bool hasLocalFrontend() const;
|
bool hasLocalFrontend() const;
|
||||||
|
|
||||||
@@ -64,11 +106,25 @@ public:
|
@@ -64,11 +112,25 @@ public:
|
||||||
#if ENABLE(REMOTE_INSPECTOR)
|
#if ENABLE(REMOTE_INSPECTOR)
|
||||||
void setIndicating(bool);
|
void setIndicating(bool);
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -9709,7 +9750,7 @@ index f9c26832d3e91e8d747c5c1e0f0d76c34f4c3096..0cdf93cfe090b9be742a9c670b3372d2
|
||||||
bool shouldPauseLoading(const ProvisionalPageProxy&) const;
|
bool shouldPauseLoading(const ProvisionalPageProxy&) const;
|
||||||
void setContinueLoadingCallback(const ProvisionalPageProxy&, WTF::Function<void()>&&);
|
void setContinueLoadingCallback(const ProvisionalPageProxy&, WTF::Function<void()>&&);
|
||||||
|
|
||||||
@@ -84,6 +140,7 @@ private:
|
@@ -84,6 +146,7 @@ private:
|
||||||
void createLazyAgents();
|
void createLazyAgents();
|
||||||
|
|
||||||
void addTarget(std::unique_ptr<InspectorTargetProxy>&&);
|
void addTarget(std::unique_ptr<InspectorTargetProxy>&&);
|
||||||
|
|
@ -9717,7 +9758,7 @@ index f9c26832d3e91e8d747c5c1e0f0d76c34f4c3096..0cdf93cfe090b9be742a9c670b3372d2
|
||||||
|
|
||||||
Ref<Inspector::FrontendRouter> m_frontendRouter;
|
Ref<Inspector::FrontendRouter> m_frontendRouter;
|
||||||
Ref<Inspector::BackendDispatcher> m_backendDispatcher;
|
Ref<Inspector::BackendDispatcher> m_backendDispatcher;
|
||||||
@@ -92,11 +149,17 @@ private:
|
@@ -92,11 +155,17 @@ private:
|
||||||
WebPageProxy& m_page;
|
WebPageProxy& m_page;
|
||||||
|
|
||||||
Inspector::InspectorTargetAgent* m_targetAgent { nullptr };
|
Inspector::InspectorTargetAgent* m_targetAgent { nullptr };
|
||||||
|
|
@ -9964,10 +10005,10 @@ index 0000000000000000000000000000000000000000..f356c613945fd263889bc74166bef2b2
|
||||||
+} // 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..f04fb719428349b23164648fc402c8a1d96f649a
|
index 0000000000000000000000000000000000000000..bf364bf4ba770597db2a56574d5135b4a5447f5d
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp
|
+++ b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp
|
||||||
@@ -0,0 +1,850 @@
|
@@ -0,0 +1,857 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2019 Microsoft Corporation.
|
+ * Copyright (C) 2019 Microsoft Corporation.
|
||||||
+ *
|
+ *
|
||||||
|
|
@ -10363,6 +10404,14 @@ index 0000000000000000000000000000000000000000..f04fb719428349b23164648fc402c8a1
|
||||||
+ getEnabledWindowFeatures(features));
|
+ getEnabledWindowFeatures(features));
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
+void InspectorPlaywrightAgent::didFinishScreencast(const PAL::SessionID& sessionID, const String& screencastID)
|
||||||
|
+{
|
||||||
|
+ if (!m_isEnabled)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ m_frontendDispatcher->screencastFinished(toBrowserContextIDProtocolString(sessionID), screencastID);
|
||||||
|
+}
|
||||||
|
+
|
||||||
+void InspectorPlaywrightAgent::enable(ErrorString&)
|
+void InspectorPlaywrightAgent::enable(ErrorString&)
|
||||||
+{
|
+{
|
||||||
+ if (m_isEnabled)
|
+ if (m_isEnabled)
|
||||||
|
|
@ -10802,7 +10851,6 @@ index 0000000000000000000000000000000000000000..f04fb719428349b23164648fc402c8a1
|
||||||
+
|
+
|
||||||
+BrowserContext* InspectorPlaywrightAgent::lookupBrowserContext(ErrorString& errorString, const String* browserContextID)
|
+BrowserContext* InspectorPlaywrightAgent::lookupBrowserContext(ErrorString& errorString, const String* browserContextID)
|
||||||
+{
|
+{
|
||||||
+ // XXX
|
|
||||||
+ if (!browserContextID) {
|
+ if (!browserContextID) {
|
||||||
+ if (!m_defaultContext)
|
+ if (!m_defaultContext)
|
||||||
+ errorString = "Browser started with no default context"_s;
|
+ errorString = "Browser started with no default context"_s;
|
||||||
|
|
@ -10820,10 +10868,10 @@ index 0000000000000000000000000000000000000000..f04fb719428349b23164648fc402c8a1
|
||||||
+#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..65768f26cb5e3c44197b9226a07d67364cb9f1fc
|
index 0000000000000000000000000000000000000000..d361ca89fff47877a67fdf3c4baacae0f72902ca
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.h
|
+++ b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.h
|
||||||
@@ -0,0 +1,121 @@
|
@@ -0,0 +1,122 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2019 Microsoft Corporation.
|
+ * Copyright (C) 2019 Microsoft Corporation.
|
||||||
+ *
|
+ *
|
||||||
|
|
@ -10901,6 +10949,7 @@ index 0000000000000000000000000000000000000000..65768f26cb5e3c44197b9226a07d6736
|
||||||
+ void willDestroyInspectorController(WebPageProxy&) override;
|
+ void willDestroyInspectorController(WebPageProxy&) override;
|
||||||
+ void didFailProvisionalLoad(WebPageProxy&, uint64_t navigationID, const String& error) override;
|
+ void didFailProvisionalLoad(WebPageProxy&, uint64_t navigationID, const String& error) override;
|
||||||
+ void willCreateNewPage(WebPageProxy&, const WebCore::WindowFeatures&, const URL&) override;
|
+ void willCreateNewPage(WebPageProxy&, const WebCore::WindowFeatures&, const URL&) override;
|
||||||
|
+ void didFinishScreencast(const PAL::SessionID& sessionID, const String& screencastID) override;
|
||||||
+
|
+
|
||||||
+ // PlaywrightDispatcherHandler
|
+ // PlaywrightDispatcherHandler
|
||||||
+ void enable(Inspector::ErrorString&) override;
|
+ void enable(Inspector::ErrorString&) override;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue