| OLD | NEW |
| 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 /** | 4 /** |
| 5 * @implements {InspectorBackendClass.Connection} | 5 * @implements {InspectorBackendClass.Connection} |
| 6 * @unrestricted | 6 * @unrestricted |
| 7 */ | 7 */ |
| 8 WebInspector.MainConnection = class { | 8 SDK.MainConnection = class { |
| 9 /** | 9 /** |
| 10 * @param {!InspectorBackendClass.Connection.Params} params | 10 * @param {!InspectorBackendClass.Connection.Params} params |
| 11 */ | 11 */ |
| 12 constructor(params) { | 12 constructor(params) { |
| 13 this._onMessage = params.onMessage; | 13 this._onMessage = params.onMessage; |
| 14 this._onDisconnect = params.onDisconnect; | 14 this._onDisconnect = params.onDisconnect; |
| 15 this._disconnected = false; | 15 this._disconnected = false; |
| 16 this._eventListeners = [ | 16 this._eventListeners = [ |
| 17 InspectorFrontendHost.events.addEventListener( | 17 InspectorFrontendHost.events.addEventListener( |
| 18 InspectorFrontendHostAPI.Events.DispatchMessage, this._dispatchMessage
, this), | 18 InspectorFrontendHostAPI.Events.DispatchMessage, this._dispatchMessage
, this), |
| 19 InspectorFrontendHost.events.addEventListener( | 19 InspectorFrontendHost.events.addEventListener( |
| 20 InspectorFrontendHostAPI.Events.DispatchMessageChunk, this._dispatchMe
ssageChunk, this), | 20 InspectorFrontendHostAPI.Events.DispatchMessageChunk, this._dispatchMe
ssageChunk, this), |
| 21 InspectorFrontendHost.events.addEventListener( | 21 InspectorFrontendHost.events.addEventListener( |
| 22 InspectorFrontendHostAPI.Events.EvaluateForTestInFrontend, this._evalu
ateForTestInFrontend, this), | 22 InspectorFrontendHostAPI.Events.EvaluateForTestInFrontend, this._evalu
ateForTestInFrontend, this), |
| 23 ]; | 23 ]; |
| 24 } | 24 } |
| 25 | 25 |
| 26 /** | 26 /** |
| 27 * @override | 27 * @override |
| 28 * @param {string} message | 28 * @param {string} message |
| 29 */ | 29 */ |
| 30 sendMessage(message) { | 30 sendMessage(message) { |
| 31 if (!this._disconnected) | 31 if (!this._disconnected) |
| 32 InspectorFrontendHost.sendMessageToBackend(message); | 32 InspectorFrontendHost.sendMessageToBackend(message); |
| 33 } | 33 } |
| 34 | 34 |
| 35 /** | 35 /** |
| 36 * @param {!WebInspector.Event} event | 36 * @param {!Common.Event} event |
| 37 */ | 37 */ |
| 38 _dispatchMessage(event) { | 38 _dispatchMessage(event) { |
| 39 this._onMessage.call(null, /** @type {string} */ (event.data)); | 39 this._onMessage.call(null, /** @type {string} */ (event.data)); |
| 40 } | 40 } |
| 41 | 41 |
| 42 /** | 42 /** |
| 43 * @param {!WebInspector.Event} event | 43 * @param {!Common.Event} event |
| 44 */ | 44 */ |
| 45 _dispatchMessageChunk(event) { | 45 _dispatchMessageChunk(event) { |
| 46 var messageChunk = /** @type {string} */ (event.data['messageChunk']); | 46 var messageChunk = /** @type {string} */ (event.data['messageChunk']); |
| 47 var messageSize = /** @type {number} */ (event.data['messageSize']); | 47 var messageSize = /** @type {number} */ (event.data['messageSize']); |
| 48 if (messageSize) { | 48 if (messageSize) { |
| 49 this._messageBuffer = ''; | 49 this._messageBuffer = ''; |
| 50 this._messageSize = messageSize; | 50 this._messageSize = messageSize; |
| 51 } | 51 } |
| 52 this._messageBuffer += messageChunk; | 52 this._messageBuffer += messageChunk; |
| 53 if (this._messageBuffer.length === this._messageSize) { | 53 if (this._messageBuffer.length === this._messageSize) { |
| 54 this._onMessage.call(null, this._messageBuffer); | 54 this._onMessage.call(null, this._messageBuffer); |
| 55 this._messageBuffer = ''; | 55 this._messageBuffer = ''; |
| 56 this._messageSize = 0; | 56 this._messageSize = 0; |
| 57 } | 57 } |
| 58 } | 58 } |
| 59 | 59 |
| 60 /** | 60 /** |
| 61 * @param {!WebInspector.Event} event | 61 * @param {!Common.Event} event |
| 62 */ | 62 */ |
| 63 _evaluateForTestInFrontend(event) { | 63 _evaluateForTestInFrontend(event) { |
| 64 if (!InspectorFrontendHost.isUnderTest()) | 64 if (!InspectorFrontendHost.isUnderTest()) |
| 65 return; | 65 return; |
| 66 | 66 |
| 67 var callId = /** @type {number} */ (event.data['callId']); | 67 var callId = /** @type {number} */ (event.data['callId']); |
| 68 var script = /** @type {number} */ (event.data['script']); | 68 var script = /** @type {number} */ (event.data['script']); |
| 69 | 69 |
| 70 /** | 70 /** |
| 71 * @suppressGlobalPropertiesCheck | 71 * @suppressGlobalPropertiesCheck |
| 72 */ | 72 */ |
| 73 function invokeMethod() { | 73 function invokeMethod() { |
| 74 try { | 74 try { |
| 75 script = script + '//# sourceURL=evaluateInWebInspector' + callId + '.js
'; | 75 script = script + '//# sourceURL=evaluateInWebInspector' + callId + '.js
'; |
| 76 window.eval(script); | 76 window.eval(script); |
| 77 } catch (e) { | 77 } catch (e) { |
| 78 console.error(e.stack); | 78 console.error(e.stack); |
| 79 } | 79 } |
| 80 } | 80 } |
| 81 | 81 |
| 82 InspectorBackendClass.deprecatedRunAfterPendingDispatches(invokeMethod); | 82 InspectorBackendClass.deprecatedRunAfterPendingDispatches(invokeMethod); |
| 83 } | 83 } |
| 84 | 84 |
| 85 /** | 85 /** |
| 86 * @override | 86 * @override |
| 87 * @return {!Promise} | 87 * @return {!Promise} |
| 88 */ | 88 */ |
| 89 disconnect() { | 89 disconnect() { |
| 90 var onDisconnect = this._onDisconnect; | 90 var onDisconnect = this._onDisconnect; |
| 91 WebInspector.EventTarget.removeEventListeners(this._eventListeners); | 91 Common.EventTarget.removeEventListeners(this._eventListeners); |
| 92 this._onDisconnect = null; | 92 this._onDisconnect = null; |
| 93 this._onMessage = null; | 93 this._onMessage = null; |
| 94 this._disconnected = true; | 94 this._disconnected = true; |
| 95 | 95 |
| 96 var fulfill; | 96 var fulfill; |
| 97 var promise = new Promise(f => fulfill = f); | 97 var promise = new Promise(f => fulfill = f); |
| 98 InspectorFrontendHost.reattach(() => { | 98 InspectorFrontendHost.reattach(() => { |
| 99 onDisconnect.call(null, 'force disconnect'); | 99 onDisconnect.call(null, 'force disconnect'); |
| 100 fulfill(); | 100 fulfill(); |
| 101 }); | 101 }); |
| 102 return promise; | 102 return promise; |
| 103 } | 103 } |
| 104 }; | 104 }; |
| 105 | 105 |
| 106 /** | 106 /** |
| 107 * @implements {InspectorBackendClass.Connection} | 107 * @implements {InspectorBackendClass.Connection} |
| 108 * @unrestricted | 108 * @unrestricted |
| 109 */ | 109 */ |
| 110 WebInspector.WebSocketConnection = class { | 110 SDK.WebSocketConnection = class { |
| 111 /** | 111 /** |
| 112 * @param {string} url | 112 * @param {string} url |
| 113 * @param {function()} onWebSocketDisconnect | 113 * @param {function()} onWebSocketDisconnect |
| 114 * @param {!InspectorBackendClass.Connection.Params} params | 114 * @param {!InspectorBackendClass.Connection.Params} params |
| 115 */ | 115 */ |
| 116 constructor(url, onWebSocketDisconnect, params) { | 116 constructor(url, onWebSocketDisconnect, params) { |
| 117 this._socket = new WebSocket(url); | 117 this._socket = new WebSocket(url); |
| 118 this._socket.onerror = this._onError.bind(this); | 118 this._socket.onerror = this._onError.bind(this); |
| 119 this._socket.onopen = this._onOpen.bind(this); | 119 this._socket.onopen = this._onOpen.bind(this); |
| 120 this._socket.onmessage = (messageEvent) => params.onMessage.call(null, /** @
type {string} */ (messageEvent.data)); | 120 this._socket.onmessage = (messageEvent) => params.onMessage.call(null, /** @
type {string} */ (messageEvent.data)); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 fulfill(); | 183 fulfill(); |
| 184 }); | 184 }); |
| 185 return promise; | 185 return promise; |
| 186 } | 186 } |
| 187 }; | 187 }; |
| 188 | 188 |
| 189 /** | 189 /** |
| 190 * @implements {InspectorBackendClass.Connection} | 190 * @implements {InspectorBackendClass.Connection} |
| 191 * @unrestricted | 191 * @unrestricted |
| 192 */ | 192 */ |
| 193 WebInspector.StubConnection = class { | 193 SDK.StubConnection = class { |
| 194 /** | 194 /** |
| 195 * @param {!InspectorBackendClass.Connection.Params} params | 195 * @param {!InspectorBackendClass.Connection.Params} params |
| 196 */ | 196 */ |
| 197 constructor(params) { | 197 constructor(params) { |
| 198 this._onMessage = params.onMessage; | 198 this._onMessage = params.onMessage; |
| 199 this._onDisconnect = params.onDisconnect; | 199 this._onDisconnect = params.onDisconnect; |
| 200 } | 200 } |
| 201 | 201 |
| 202 /** | 202 /** |
| 203 * @override | 203 * @override |
| (...skipping 20 matching lines...) Expand all Loading... |
| 224 * @override | 224 * @override |
| 225 * @return {!Promise} | 225 * @return {!Promise} |
| 226 */ | 226 */ |
| 227 disconnect() { | 227 disconnect() { |
| 228 this._onDisconnect.call(null, 'force disconnect'); | 228 this._onDisconnect.call(null, 'force disconnect'); |
| 229 this._onDisconnect = null; | 229 this._onDisconnect = null; |
| 230 this._onMessage = null; | 230 this._onMessage = null; |
| 231 return Promise.resolve(); | 231 return Promise.resolve(); |
| 232 } | 232 } |
| 233 }; | 233 }; |
| OLD | NEW |