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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sdk/Connections.js

Issue 2466123002: DevTools: reformat front-end code to match chromium style. (Closed)
Patch Set: all done Created 4 years, 1 month 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 unified diff | Download patch
OLDNEW
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
5 /** 4 /**
6 * @constructor
7 * @implements {InspectorBackendClass.Connection} 5 * @implements {InspectorBackendClass.Connection}
8 * @param {!InspectorBackendClass.Connection.Params} params 6 * @unrestricted
9 */ 7 */
10 WebInspector.MainConnection = function(params) 8 WebInspector.MainConnection = class {
11 { 9 /**
10 * @param {!InspectorBackendClass.Connection.Params} params
11 */
12 constructor(params) {
12 this._onMessage = params.onMessage; 13 this._onMessage = params.onMessage;
13 this._onDisconnect = params.onDisconnect; 14 this._onDisconnect = params.onDisconnect;
14 this._disconnected = false; 15 this._disconnected = false;
15 this._eventListeners = [ 16 this._eventListeners = [
16 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.E vents.DispatchMessage, this._dispatchMessage, this), 17 InspectorFrontendHost.events.addEventListener(
17 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.E vents.DispatchMessageChunk, this._dispatchMessageChunk, this), 18 InspectorFrontendHostAPI.Events.DispatchMessage, this._dispatchMessage , this),
18 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.E vents.EvaluateForTestInFrontend, this._evaluateForTestInFrontend, this), 19 InspectorFrontendHost.events.addEventListener(
20 InspectorFrontendHostAPI.Events.DispatchMessageChunk, this._dispatchMe ssageChunk, this),
21 InspectorFrontendHost.events.addEventListener(
22 InspectorFrontendHostAPI.Events.EvaluateForTestInFrontend, this._evalu ateForTestInFrontend, this),
19 ]; 23 ];
20 }; 24 }
21 25
22 WebInspector.MainConnection.prototype = { 26 /**
27 * @override
28 * @param {string} message
29 */
30 sendMessage(message) {
31 if (!this._disconnected)
32 InspectorFrontendHost.sendMessageToBackend(message);
33 }
34
35 /**
36 * @param {!WebInspector.Event} event
37 */
38 _dispatchMessage(event) {
39 this._onMessage.call(null, /** @type {string} */ (event.data));
40 }
41
42 /**
43 * @param {!WebInspector.Event} event
44 */
45 _dispatchMessageChunk(event) {
46 var messageChunk = /** @type {string} */ (event.data['messageChunk']);
47 var messageSize = /** @type {number} */ (event.data['messageSize']);
48 if (messageSize) {
49 this._messageBuffer = '';
50 this._messageSize = messageSize;
51 }
52 this._messageBuffer += messageChunk;
53 if (this._messageBuffer.length === this._messageSize) {
54 this._onMessage.call(null, this._messageBuffer);
55 this._messageBuffer = '';
56 this._messageSize = 0;
57 }
58 }
59
60 /**
61 * @param {!WebInspector.Event} event
62 */
63 _evaluateForTestInFrontend(event) {
64 if (!InspectorFrontendHost.isUnderTest())
65 return;
66
67 var callId = /** @type {number} */ (event.data['callId']);
68 var script = /** @type {number} */ (event.data['script']);
23 69
24 /** 70 /**
25 * @override 71 * @suppressGlobalPropertiesCheck
26 * @param {string} message
27 */ 72 */
28 sendMessage: function(message) 73 function invokeMethod() {
29 { 74 try {
30 if (!this._disconnected) 75 script = script + '//# sourceURL=evaluateInWebInspector' + callId + '.js ';
31 InspectorFrontendHost.sendMessageToBackend(message); 76 window.eval(script);
32 }, 77 } catch (e) {
78 console.error(e.stack);
79 }
80 }
33 81
34 /** 82 InspectorBackendClass.deprecatedRunAfterPendingDispatches(invokeMethod);
35 * @param {!WebInspector.Event} event 83 }
36 */
37 _dispatchMessage: function(event)
38 {
39 this._onMessage.call(null, /** @type {string} */ (event.data));
40 },
41 84
42 /** 85 /**
43 * @param {!WebInspector.Event} event 86 * @override
44 */ 87 * @return {!Promise}
45 _dispatchMessageChunk: function(event) 88 */
46 { 89 disconnect() {
47 var messageChunk = /** @type {string} */ (event.data["messageChunk"]); 90 var onDisconnect = this._onDisconnect;
48 var messageSize = /** @type {number} */ (event.data["messageSize"]); 91 WebInspector.EventTarget.removeEventListeners(this._eventListeners);
49 if (messageSize) { 92 this._onDisconnect = null;
50 this._messageBuffer = ""; 93 this._onMessage = null;
51 this._messageSize = messageSize; 94 this._disconnected = true;
52 }
53 this._messageBuffer += messageChunk;
54 if (this._messageBuffer.length === this._messageSize) {
55 this._onMessage.call(null, this._messageBuffer);
56 this._messageBuffer = "";
57 this._messageSize = 0;
58 }
59 },
60 95
61 /** 96 var fulfill;
62 * @param {!WebInspector.Event} event 97 var promise = new Promise(f => fulfill = f);
63 */ 98 InspectorFrontendHost.reattach(() => {
64 _evaluateForTestInFrontend: function(event) 99 onDisconnect.call(null, 'force disconnect');
65 { 100 fulfill();
66 if (!InspectorFrontendHost.isUnderTest()) 101 });
67 return; 102 return promise;
68 103 }
69 var callId = /** @type {number} */ (event.data["callId"]);
70 var script = /** @type {number} */ (event.data["script"]);
71
72 /**
73 * @suppressGlobalPropertiesCheck
74 */
75 function invokeMethod()
76 {
77 try {
78 script = script + "//# sourceURL=evaluateInWebInspector" + callI d + ".js";
79 window.eval(script);
80 } catch (e) {
81 console.error(e.stack);
82 }
83 }
84
85 InspectorBackendClass.deprecatedRunAfterPendingDispatches(invokeMethod);
86 },
87
88 /**
89 * @override
90 * @return {!Promise}
91 */
92 disconnect: function()
93 {
94 var onDisconnect = this._onDisconnect;
95 WebInspector.EventTarget.removeEventListeners(this._eventListeners);
96 this._onDisconnect = null;
97 this._onMessage = null;
98 this._disconnected = true;
99
100 var fulfill;
101 var promise = new Promise(f => fulfill = f);
102 InspectorFrontendHost.reattach(() => {
103 onDisconnect.call(null, "force disconnect");
104 fulfill();
105 });
106 return promise;
107 },
108 }; 104 };
109 105
110 /** 106 /**
111 * @constructor
112 * @implements {InspectorBackendClass.Connection} 107 * @implements {InspectorBackendClass.Connection}
113 * @param {string} url 108 * @unrestricted
114 * @param {function()} onWebSocketDisconnect
115 * @param {!InspectorBackendClass.Connection.Params} params
116 */ 109 */
117 WebInspector.WebSocketConnection = function(url, onWebSocketDisconnect, params) 110 WebInspector.WebSocketConnection = class {
118 { 111 /**
112 * @param {string} url
113 * @param {function()} onWebSocketDisconnect
114 * @param {!InspectorBackendClass.Connection.Params} params
115 */
116 constructor(url, onWebSocketDisconnect, params) {
119 this._socket = new WebSocket(url); 117 this._socket = new WebSocket(url);
120 this._socket.onerror = this._onError.bind(this); 118 this._socket.onerror = this._onError.bind(this);
121 this._socket.onopen = this._onOpen.bind(this); 119 this._socket.onopen = this._onOpen.bind(this);
122 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));
123 this._socket.onclose = this._onClose.bind(this); 121 this._socket.onclose = this._onClose.bind(this);
124 122
125 this._onDisconnect = params.onDisconnect; 123 this._onDisconnect = params.onDisconnect;
126 this._onWebSocketDisconnect = onWebSocketDisconnect; 124 this._onWebSocketDisconnect = onWebSocketDisconnect;
127 this._connected = false; 125 this._connected = false;
128 this._messages = []; 126 this._messages = [];
129 }; 127 }
130 128
131 WebInspector.WebSocketConnection.prototype = { 129 _onError() {
132 _onError: function() 130 this._onWebSocketDisconnect.call(null);
133 { 131 // This is called if error occurred while connecting.
134 this._onWebSocketDisconnect.call(null); 132 this._onDisconnect.call(null, 'connection failed');
135 // This is called if error occurred while connecting. 133 this._close();
136 this._onDisconnect.call(null, "connection failed"); 134 }
137 this._close();
138 },
139 135
140 _onOpen: function() 136 _onOpen() {
141 { 137 this._socket.onerror = console.error;
142 this._socket.onerror = console.error; 138 this._connected = true;
143 this._connected = true; 139 for (var message of this._messages)
144 for (var message of this._messages) 140 this._socket.send(message);
145 this._socket.send(message); 141 this._messages = [];
146 this._messages = []; 142 }
147 },
148 143
149 _onClose: function() 144 _onClose() {
150 { 145 this._onWebSocketDisconnect.call(null);
151 this._onWebSocketDisconnect.call(null); 146 this._onDisconnect.call(null, 'websocket closed');
152 this._onDisconnect.call(null, "websocket closed"); 147 this._close();
153 this._close(); 148 }
154 },
155 149
156 /** 150 /**
157 * @param {function()=} callback 151 * @param {function()=} callback
158 */ 152 */
159 _close: function(callback) 153 _close(callback) {
160 { 154 this._socket.onerror = null;
161 this._socket.onerror = null; 155 this._socket.onopen = null;
162 this._socket.onopen = null; 156 this._socket.onclose = callback || null;
163 this._socket.onclose = callback || null; 157 this._socket.onmessage = null;
164 this._socket.onmessage = null; 158 this._socket.close();
165 this._socket.close(); 159 this._socket = null;
166 this._socket = null; 160 this._onWebSocketDisconnect = null;
167 this._onWebSocketDisconnect = null; 161 }
168 },
169 162
170 /** 163 /**
171 * @override 164 * @override
172 * @param {string} message 165 * @param {string} message
173 */ 166 */
174 sendMessage: function(message) 167 sendMessage(message) {
175 { 168 if (this._connected)
176 if (this._connected) 169 this._socket.send(message);
177 this._socket.send(message); 170 else
178 else 171 this._messages.push(message);
179 this._messages.push(message); 172 }
180 },
181 173
182 /** 174 /**
183 * @override 175 * @override
184 * @return {!Promise} 176 * @return {!Promise}
185 */ 177 */
186 disconnect: function() 178 disconnect() {
187 { 179 var fulfill;
188 var fulfill; 180 var promise = new Promise(f => fulfill = f);
189 var promise = new Promise(f => fulfill = f); 181 this._close(() => {
190 this._close(() => { 182 this._onDisconnect.call(null, 'force disconnect');
191 this._onDisconnect.call(null, "force disconnect"); 183 fulfill();
192 fulfill(); 184 });
193 }); 185 return promise;
194 return promise; 186 }
195 }
196 }; 187 };
197 188
198 /** 189 /**
199 * @constructor
200 * @implements {InspectorBackendClass.Connection} 190 * @implements {InspectorBackendClass.Connection}
201 * @param {!InspectorBackendClass.Connection.Params} params 191 * @unrestricted
202 */ 192 */
203 WebInspector.StubConnection = function(params) 193 WebInspector.StubConnection = class {
204 { 194 /**
195 * @param {!InspectorBackendClass.Connection.Params} params
196 */
197 constructor(params) {
205 this._onMessage = params.onMessage; 198 this._onMessage = params.onMessage;
206 this._onDisconnect = params.onDisconnect; 199 this._onDisconnect = params.onDisconnect;
200 }
201
202 /**
203 * @override
204 * @param {string} message
205 */
206 sendMessage(message) {
207 setTimeout(this._respondWithError.bind(this, message), 0);
208 }
209
210 /**
211 * @param {string} message
212 */
213 _respondWithError(message) {
214 var messageObject = JSON.parse(message);
215 var error = {
216 message: 'This is a stub connection, can\'t dispatch message.',
217 code: InspectorBackendClass.DevToolsStubErrorCode,
218 data: messageObject
219 };
220 this._onMessage.call(null, {id: messageObject.id, error: error});
221 }
222
223 /**
224 * @override
225 * @return {!Promise}
226 */
227 disconnect() {
228 this._onDisconnect.call(null, 'force disconnect');
229 this._onDisconnect = null;
230 this._onMessage = null;
231 return Promise.resolve();
232 }
207 }; 233 };
208
209 WebInspector.StubConnection.prototype = {
210 /**
211 * @override
212 * @param {string} message
213 */
214 sendMessage: function(message)
215 {
216 setTimeout(this._respondWithError.bind(this, message), 0);
217 },
218
219 /**
220 * @param {string} message
221 */
222 _respondWithError: function(message)
223 {
224 var messageObject = JSON.parse(message);
225 var error = { message: "This is a stub connection, can't dispatch messag e.", code: InspectorBackendClass.DevToolsStubErrorCode, data: messageObject };
226 this._onMessage.call(null, { id: messageObject.id, error: error });
227 },
228
229 /**
230 * @override
231 * @return {!Promise}
232 */
233 disconnect: function()
234 {
235 this._onDisconnect.call(null, "force disconnect");
236 this._onDisconnect = null;
237 this._onMessage = null;
238 return Promise.resolve();
239 },
240 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698