Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(650)

Unified Diff: third_party/WebKit/Source/devtools/front_end/sdk/ScreenCaptureModel.js

Issue 2672983002: [DevTools] Separate ScreenCaptureModel out of ResourceTreeModel. (Closed)
Patch Set: rebased Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/front_end/sdk/ScreenCaptureModel.js
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/ScreenCaptureModel.js b/third_party/WebKit/Source/devtools/front_end/sdk/ScreenCaptureModel.js
new file mode 100644
index 0000000000000000000000000000000000000000..9657b65c6257555dcbc6f2bc15774535ad197791
--- /dev/null
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/ScreenCaptureModel.js
@@ -0,0 +1,192 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @implements {Protocol.PageDispatcher}
+ */
+SDK.ScreenCaptureModel = class extends SDK.SDKModel {
+ /**
+ * @param {!SDK.Target} target
+ */
+ constructor(target) {
+ super(target);
+ this._agent = target.pageAgent();
+ /** @type {?function(string, !Protocol.Page.ScreencastFrameMetadata)} */
+ this._onScreencastFrame = null;
+ /** @type {?function(boolean)} */
+ this._onScreencastVisibilityChanged = null;
+ target.registerPageDispatcher(this);
+ }
+
+ /**
+ * @param {string} format
+ * @param {number} quality
+ * @param {number|undefined} width
+ * @param {number|undefined} height
+ * @param {number|undefined} everyNthFrame
+ * @param {function(string, !Protocol.Page.ScreencastFrameMetadata)} onFrame
+ * @param {function(boolean)} onVisibilityChanged
+ */
+ startScreencast(format, quality, width, height, everyNthFrame, onFrame, onVisibilityChanged) {
+ this._onScreencastFrame = onFrame;
+ this._onScreencastVisibilityChanged = onVisibilityChanged;
+ this._agent.startScreencast(format, quality, width, height, everyNthFrame);
+ }
+
+ stopScreencast() {
+ this._onScreencastFrame = null;
+ this._onScreencastVisibilityChanged = null;
+ this._agent.stopScreencast();
+ }
+
+ /**
+ * @param {string} format
+ * @param {number} quality
+ * @return {!Promise<?string>}
+ */
+ captureScreenshot(format, quality) {
+ var fulfill;
+ var promise = new Promise(callback => fulfill = callback);
+ this._agent.captureScreenshot(format, quality, (error, content) => {
+ if (error)
+ console.error(error);
+ fulfill(error ? null : content);
+ });
+ return promise;
+ }
+
+ /**
+ * @override
+ * @param {string} data
+ * @param {!Protocol.Page.ScreencastFrameMetadata} metadata
+ * @param {number} sessionId
+ */
+ screencastFrame(data, metadata, sessionId) {
+ this._agent.screencastFrameAck(sessionId);
+ if (this._onScreencastFrame)
+ this._onScreencastFrame.call(null, data, metadata);
+ }
+
+ /**
+ * @override
+ * @param {boolean} visible
+ */
+ screencastVisibilityChanged(visible) {
+ if (this._onScreencastVisibilityChanged)
+ this._onScreencastVisibilityChanged.call(null, visible);
+ }
+
+ /**
+ * @override
+ * @param {number} time
+ */
+ domContentEventFired(time) {
+ }
+
+ /**
+ * @override
+ * @param {number} time
+ */
+ loadEventFired(time) {
+ }
+
+ /**
+ * @override
+ * @param {!Protocol.Page.FrameId} frameId
+ * @param {!Protocol.Page.FrameId} parentFrameId
+ */
+ frameAttached(frameId, parentFrameId) {
+ }
+
+ /**
+ * @override
+ * @param {!Protocol.Page.Frame} frame
+ */
+ frameNavigated(frame) {
+ }
+
+ /**
+ * @override
+ * @param {!Protocol.Page.FrameId} frameId
+ */
+ frameDetached(frameId) {
+ }
+
+ /**
+ * @override
+ * @param {!Protocol.Page.FrameId} frameId
+ */
+ frameStartedLoading(frameId) {
+ }
+
+ /**
+ * @override
+ * @param {!Protocol.Page.FrameId} frameId
+ */
+ frameStoppedLoading(frameId) {
+ }
+
+ /**
+ * @override
+ * @param {!Protocol.Page.FrameId} frameId
+ * @param {number} delay
+ */
+ frameScheduledNavigation(frameId, delay) {
+ }
+
+ /**
+ * @override
+ * @param {!Protocol.Page.FrameId} frameId
+ */
+ frameClearedScheduledNavigation(frameId) {
+ }
+
+ /**
+ * @override
+ */
+ frameResized() {
+ }
+
+ /**
+ * @override
+ * @param {string} message
+ * @param {string} dialogType
+ */
+ javascriptDialogOpening(message, dialogType) {
+ }
+
+ /**
+ * @override
+ * @param {boolean} result
+ */
+ javascriptDialogClosed(result) {
+ }
+
+ /**
+ * @override
+ * @param {!Protocol.DOM.RGBA} color
+ */
+ colorPicked(color) {
+ }
+
+ /**
+ * @override
+ */
+ interstitialShown() {
+ }
+
+ /**
+ * @override
+ */
+ interstitialHidden() {
+ }
+
+ /**
+ * @override
+ */
+ navigationRequested() {
+ }
+};
+
+SDK.SDKModel.register(SDK.ScreenCaptureModel, SDK.Target.Capability.ScreenCapture);

Powered by Google App Engine
This is Rietveld 408576698