OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 /** | 5 /** |
6 * ADB Device representation. This class has static methods for querying for | 6 * ADB Device representation. This class has static methods for querying for |
7 * devices as well as instance methods for device manipulation. | 7 * devices as well as instance methods for device manipulation. |
8 * @param {string} deviceLine Raw device descriprion line. | 8 * @param {string} deviceLine Raw device descriprion line. |
9 * @constructor | 9 * @constructor |
10 */ | 10 */ |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 } catch (e) { | 97 } catch (e) { |
98 } | 98 } |
99 return null; | 99 return null; |
100 }; | 100 }; |
101 | 101 |
102 /** | 102 /** |
103 * Discovers ADB devices. | 103 * Discovers ADB devices. |
104 * @return {?Object} ADB query result. | 104 * @return {?Object} ADB query result. |
105 * @private | 105 * @private |
106 */ | 106 */ |
107 AdbDevice.adbDevices_ = function() { | 107 AdbDevice.adbPages_ = function() { |
108 var xhr = new XMLHttpRequest(); | 108 var xhr = new XMLHttpRequest(); |
109 xhr.open('GET', 'adb-devices', false); | 109 xhr.open('GET', 'adb-pages', false); |
110 xhr.send(null); | 110 xhr.send(null); |
111 if (xhr.status !== 200) | 111 if (xhr.status !== 200) |
112 return null; | 112 return null; |
113 | 113 |
114 try { | 114 try { |
115 var result = JSON.parse(xhr.responseText); | 115 return JSON.parse(xhr.responseText); |
116 return result[0] ? null : result[1]; | |
117 } catch (e) { | 116 } catch (e) { |
118 } | 117 } |
119 return null; | 118 return null; |
120 }; | 119 }; |
121 | 120 |
122 /** | 121 /** |
123 * Returns next available (unmapped) port to use in forwarding. | 122 * Returns next available (unmapped) port to use in forwarding. |
124 * @param {Object<string,string>} forwards Forwards map. | 123 * @param {Object<string,string>} forwards Forwards map. |
125 * @return {number} Next available port. | 124 * @return {number} Next available port. |
126 * @private | 125 * @private |
(...skipping 30 matching lines...) Expand all Loading... |
157 AdbDevice.prototype.targets = function() { | 156 AdbDevice.prototype.targets = function() { |
158 var pages = this.queryJson_('list'); | 157 var pages = this.queryJson_('list'); |
159 var targets = []; | 158 var targets = []; |
160 for (var j = 0; pages && j < pages.length; j++) { | 159 for (var j = 0; pages && j < pages.length; j++) { |
161 var json = pages[j]; | 160 var json = pages[j]; |
162 var target = {}; | 161 var target = {}; |
163 target['type'] = 'mobile'; | 162 target['type'] = 'mobile'; |
164 target['name'] = json['title']; | 163 target['name'] = json['title']; |
165 target['url'] = json['url']; | 164 target['url'] = json['url']; |
166 target['attached'] = !json['webSocketDebuggerUrl']; | 165 target['attached'] = !json['webSocketDebuggerUrl']; |
167 target['favicon_url'] = json['faviconUrl']; | 166 target['faviconUrl'] = json['faviconUrl']; |
168 target['inspect_url'] = json['devtoolsFrontendUrl']; | 167 target['inspectUrl'] = json['devtoolsFrontendUrl']; |
169 targets.push(target); | 168 targets.push(target); |
170 } | 169 } |
171 return targets; | 170 return targets; |
172 }; | 171 }; |
173 | 172 |
174 /** | 173 /** |
175 * Issues synchronous json request against target device. | 174 * Issues synchronous json request against target device. |
176 * @param {string} query DevTools protocol /json query. | 175 * @param {string} query DevTools protocol /json query. |
177 * @return {?Object} Result object. | 176 * @return {?Object} Result object. |
178 * @private | 177 * @private |
(...skipping 19 matching lines...) Expand all Loading... |
198 function requestData() { | 197 function requestData() { |
199 var xhr = new XMLHttpRequest(); | 198 var xhr = new XMLHttpRequest(); |
200 xhr.open('GET', 'targets-data.json', false); | 199 xhr.open('GET', 'targets-data.json', false); |
201 xhr.send(null); | 200 xhr.send(null); |
202 if (xhr.status === 200) | 201 if (xhr.status === 200) |
203 return JSON.parse(xhr.responseText); | 202 return JSON.parse(xhr.responseText); |
204 return []; | 203 return []; |
205 } | 204 } |
206 | 205 |
207 function inspect(data) { | 206 function inspect(data) { |
208 if (data['inspect_url']) { | 207 if (data['inspectUrl']) { |
209 window.open(data['inspect_url'], undefined, | 208 window.open(data['inspectUrl'], undefined, |
210 'location=0,width=800,height=600'); | 209 'location=0,width=800,height=600'); |
211 return; | 210 return; |
212 } | 211 } |
213 chrome.send('inspect', | 212 chrome.send('inspect', |
214 [String(data.processId), String(data.routeId)]); | 213 [String(data.processId), String(data.routeId)]); |
215 } | 214 } |
216 | 215 |
217 function terminate(data) { | 216 function terminate(data) { |
218 chrome.send('terminate', | 217 chrome.send('terminate', |
219 [String(data.processId), String(data.routeId)]); | 218 [String(data.processId), String(data.routeId)]); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 var details = version['Browser'] || version['User-Agent']; | 270 var details = version['Browser'] || version['User-Agent']; |
272 sectionElement.textContent = device.model + ' (' + details + ')'; | 271 sectionElement.textContent = device.model + ' (' + details + ')'; |
273 var listElement = document.createElement('div'); | 272 var listElement = document.createElement('div'); |
274 listElement.id = 'device-' + device.serial; | 273 listElement.id = 'device-' + device.serial; |
275 listElement.className = 'list device'; | 274 listElement.className = 'list device'; |
276 document.body.appendChild(sectionElement); | 275 document.body.appendChild(sectionElement); |
277 document.body.appendChild(listElement); | 276 document.body.appendChild(listElement); |
278 | 277 |
279 for (var j = 0; j < targets.length; j++) { | 278 for (var j = 0; j < targets.length; j++) { |
280 addTargetToList(targets[j], 'device-' + device.serial, | 279 addTargetToList(targets[j], 'device-' + device.serial, |
281 ['favicon_url', 'name', 'url']); | 280 ['faviconUrl', 'name', 'url']); |
282 } | 281 } |
283 } | 282 } |
284 setTimeout(populateDeviceLists, 1000); | 283 setTimeout(populateDeviceLists, 1000); |
285 } | 284 } |
286 | 285 |
287 function addToPagesList(data) { | 286 function addToPagesList(data) { |
288 addTargetToList(data, 'pages', ['favicon_url', 'name', 'url']); | 287 addTargetToList(data, 'pages', ['faviconUrl', 'name', 'url']); |
289 } | 288 } |
290 | 289 |
291 function addToExtensionsList(data) { | 290 function addToExtensionsList(data) { |
292 addTargetToList(data, 'extensions', ['name', 'url']); | 291 addTargetToList(data, 'extensions', ['name', 'url']); |
293 } | 292 } |
294 | 293 |
295 function addToWorkersList(data) { | 294 function addToWorkersList(data) { |
296 addTargetToList(data, | 295 addTargetToList(data, |
297 'workers', | 296 'workers', |
298 ['name', 'url', 'pid'], | 297 ['name', 'url', 'pid'], |
299 true); | 298 true); |
300 } | 299 } |
301 | 300 |
302 function addToOthersList(data) { | 301 function addToOthersList(data) { |
303 addTargetToList(data, 'others', ['url']); | 302 addTargetToList(data, 'others', ['url']); |
304 } | 303 } |
305 | 304 |
306 function formatValue(data, property) { | 305 function formatValue(data, property) { |
307 var value = data[property]; | 306 var value = data[property]; |
308 | 307 |
309 if (property == 'favicon_url') { | 308 if (property == 'faviconUrl') { |
310 var faviconElement = document.createElement('img'); | 309 var faviconElement = document.createElement('img'); |
311 if (value) | 310 if (value) |
312 faviconElement.src = value; | 311 faviconElement.src = value; |
313 return faviconElement; | 312 return faviconElement; |
314 } | 313 } |
315 | 314 |
316 var text = value ? String(value) : ''; | 315 var text = value ? String(value) : ''; |
317 if (text.length > 100) | 316 if (text.length > 100) |
318 text = text.substring(0, 100) + '\u2026'; | 317 text = text.substring(0, 100) + '\u2026'; |
319 | 318 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
362 link.setAttribute('href', '#'); | 361 link.setAttribute('href', '#'); |
363 link.textContent = ' terminate '; | 362 link.textContent = ' terminate '; |
364 link.addEventListener( | 363 link.addEventListener( |
365 'click', | 364 'click', |
366 terminate.bind(this, data), | 365 terminate.bind(this, data), |
367 true); | 366 true); |
368 return link; | 367 return link; |
369 } | 368 } |
370 | 369 |
371 document.addEventListener('DOMContentLoaded', onload); | 370 document.addEventListener('DOMContentLoaded', onload); |
OLD | NEW |