| OLD | NEW |
| (Empty) | |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 /** |
| 6 * @implements {Protocol.PageDispatcher} |
| 7 */ |
| 8 SDK.ScreenCaptureModel = class extends SDK.SDKModel { |
| 9 /** |
| 10 * @param {!SDK.Target} target |
| 11 */ |
| 12 constructor(target) { |
| 13 super(target); |
| 14 this._agent = target.pageAgent(); |
| 15 /** @type {?function(string, !Protocol.Page.ScreencastFrameMetadata)} */ |
| 16 this._onScreencastFrame = null; |
| 17 /** @type {?function(boolean)} */ |
| 18 this._onScreencastVisibilityChanged = null; |
| 19 target.registerPageDispatcher(this); |
| 20 } |
| 21 |
| 22 /** |
| 23 * @param {string} format |
| 24 * @param {number} quality |
| 25 * @param {number|undefined} width |
| 26 * @param {number|undefined} height |
| 27 * @param {number|undefined} everyNthFrame |
| 28 * @param {function(string, !Protocol.Page.ScreencastFrameMetadata)} onFrame |
| 29 * @param {function(boolean)} onVisibilityChanged |
| 30 */ |
| 31 startScreencast(format, quality, width, height, everyNthFrame, onFrame, onVisi
bilityChanged) { |
| 32 this._onScreencastFrame = onFrame; |
| 33 this._onScreencastVisibilityChanged = onVisibilityChanged; |
| 34 this._agent.startScreencast(format, quality, width, height, everyNthFrame); |
| 35 } |
| 36 |
| 37 stopScreencast() { |
| 38 this._onScreencastFrame = null; |
| 39 this._onScreencastVisibilityChanged = null; |
| 40 this._agent.stopScreencast(); |
| 41 } |
| 42 |
| 43 /** |
| 44 * @param {string} format |
| 45 * @param {number} quality |
| 46 * @return {!Promise<?string>} |
| 47 */ |
| 48 captureScreenshot(format, quality) { |
| 49 var fulfill; |
| 50 var promise = new Promise(callback => fulfill = callback); |
| 51 this._agent.captureScreenshot(format, quality, (error, content) => { |
| 52 if (error) |
| 53 console.error(error); |
| 54 fulfill(error ? null : content); |
| 55 }); |
| 56 return promise; |
| 57 } |
| 58 |
| 59 /** |
| 60 * @override |
| 61 * @param {string} data |
| 62 * @param {!Protocol.Page.ScreencastFrameMetadata} metadata |
| 63 * @param {number} sessionId |
| 64 */ |
| 65 screencastFrame(data, metadata, sessionId) { |
| 66 this._agent.screencastFrameAck(sessionId); |
| 67 if (this._onScreencastFrame) |
| 68 this._onScreencastFrame.call(null, data, metadata); |
| 69 } |
| 70 |
| 71 /** |
| 72 * @override |
| 73 * @param {boolean} visible |
| 74 */ |
| 75 screencastVisibilityChanged(visible) { |
| 76 if (this._onScreencastVisibilityChanged) |
| 77 this._onScreencastVisibilityChanged.call(null, visible); |
| 78 } |
| 79 |
| 80 /** |
| 81 * @override |
| 82 * @param {number} time |
| 83 */ |
| 84 domContentEventFired(time) { |
| 85 } |
| 86 |
| 87 /** |
| 88 * @override |
| 89 * @param {number} time |
| 90 */ |
| 91 loadEventFired(time) { |
| 92 } |
| 93 |
| 94 /** |
| 95 * @override |
| 96 * @param {!Protocol.Page.FrameId} frameId |
| 97 * @param {!Protocol.Page.FrameId} parentFrameId |
| 98 */ |
| 99 frameAttached(frameId, parentFrameId) { |
| 100 } |
| 101 |
| 102 /** |
| 103 * @override |
| 104 * @param {!Protocol.Page.Frame} frame |
| 105 */ |
| 106 frameNavigated(frame) { |
| 107 } |
| 108 |
| 109 /** |
| 110 * @override |
| 111 * @param {!Protocol.Page.FrameId} frameId |
| 112 */ |
| 113 frameDetached(frameId) { |
| 114 } |
| 115 |
| 116 /** |
| 117 * @override |
| 118 * @param {!Protocol.Page.FrameId} frameId |
| 119 */ |
| 120 frameStartedLoading(frameId) { |
| 121 } |
| 122 |
| 123 /** |
| 124 * @override |
| 125 * @param {!Protocol.Page.FrameId} frameId |
| 126 */ |
| 127 frameStoppedLoading(frameId) { |
| 128 } |
| 129 |
| 130 /** |
| 131 * @override |
| 132 * @param {!Protocol.Page.FrameId} frameId |
| 133 * @param {number} delay |
| 134 */ |
| 135 frameScheduledNavigation(frameId, delay) { |
| 136 } |
| 137 |
| 138 /** |
| 139 * @override |
| 140 * @param {!Protocol.Page.FrameId} frameId |
| 141 */ |
| 142 frameClearedScheduledNavigation(frameId) { |
| 143 } |
| 144 |
| 145 /** |
| 146 * @override |
| 147 */ |
| 148 frameResized() { |
| 149 } |
| 150 |
| 151 /** |
| 152 * @override |
| 153 * @param {string} message |
| 154 * @param {string} dialogType |
| 155 */ |
| 156 javascriptDialogOpening(message, dialogType) { |
| 157 } |
| 158 |
| 159 /** |
| 160 * @override |
| 161 * @param {boolean} result |
| 162 */ |
| 163 javascriptDialogClosed(result) { |
| 164 } |
| 165 |
| 166 /** |
| 167 * @override |
| 168 * @param {!Protocol.DOM.RGBA} color |
| 169 */ |
| 170 colorPicked(color) { |
| 171 } |
| 172 |
| 173 /** |
| 174 * @override |
| 175 */ |
| 176 interstitialShown() { |
| 177 } |
| 178 |
| 179 /** |
| 180 * @override |
| 181 */ |
| 182 interstitialHidden() { |
| 183 } |
| 184 |
| 185 /** |
| 186 * @override |
| 187 */ |
| 188 navigationRequested() { |
| 189 } |
| 190 }; |
| 191 |
| 192 SDK.SDKModel.register(SDK.ScreenCaptureModel, SDK.Target.Capability.ScreenCaptur
e); |
| OLD | NEW |