Chromium Code Reviews| 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 // This should be executed immediately after InspectorBackend and InspectorBacke ndCommands | 5 // This should be executed immediately after InspectorBackend and InspectorBacke ndCommands |
| 6 | 6 |
| 7 WebInspector.InspectorBackendHostedMode = {}; | 7 WebInspector.InspectorBackendHostedMode = {}; |
| 8 | 8 |
| 9 /** | 9 /** |
| 10 * @param {string} jsonUrl | 10 * @param {!Array<string>} urls |
| 11 */ | 11 */ |
| 12 WebInspector.InspectorBackendHostedMode.loadFromJSONIfNeeded = function(jsonUrl) | 12 WebInspector.InspectorBackendHostedMode.loadFromJSONIfNeeded = function(urls) |
| 13 { | 13 { |
| 14 if (InspectorBackend.isInitialized()) | 14 if (InspectorBackend.isInitialized()) |
| 15 return; | 15 return; |
| 16 | 16 |
| 17 var xhr = new XMLHttpRequest(); | 17 var promises = urls.map(url => loadURL(url)); |
| 18 xhr.open("GET", jsonUrl, false); | 18 self.runtime.onAsyncEvalCompletion = Promise.all(promises); |
|
pfeldman
2016/07/07 04:13:34
return Promise.all(promises);
dgozman
2016/07/07 19:39:24
Can we fetch the json even before calling Runtime.
lushnikov
2016/07/07 21:26:22
Done.
| |
| 19 xhr.send(null); | |
| 20 | 19 |
| 21 var schema = JSON.parse(xhr.responseText); | 20 function loadURL(url) |
|
pfeldman
2016/07/07 04:13:34
Annotate the url.
lushnikov
2016/07/07 21:26:22
Done.
| |
| 22 var code = WebInspector.InspectorBackendHostedMode.generateCommands(schema); | 21 { |
| 23 eval(code); | 22 return fetch(url) |
| 23 .then(response => response.text()) | |
|
pfeldman
2016/07/07 04:13:34
response => eval(WebInspector.InspectorBackendHost
lushnikov
2016/07/07 21:26:22
response.text() is a promise
I'd like to leave th
| |
| 24 .then(schema => WebInspector.InspectorBackendHostedMode.generateComm ands(schema)) | |
| 25 .then(code => eval(code)); | |
| 26 } | |
| 24 } | 27 } |
| 25 | 28 |
| 26 /** | 29 /** |
| 27 * @param {*} schema | 30 * @param {*} schema |
| 28 * @return {string} | 31 * @return {string} |
| 29 */ | 32 */ |
| 30 WebInspector.InspectorBackendHostedMode.generateCommands = function(schema) | 33 WebInspector.InspectorBackendHostedMode.generateCommands = function(schema) |
| 31 { | 34 { |
| 32 var jsTypes = { integer: "number", array: "object" }; | 35 var jsTypes = { integer: "number", array: "object" }; |
| 33 var rawTypes = {}; | 36 var rawTypes = {}; |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 115 for (var k = 0; event.parameters && k < event.parameters.length; ++k ) { | 118 for (var k = 0; event.parameters && k < event.parameters.length; ++k ) { |
| 116 var parameter = event.parameters[k]; | 119 var parameter = event.parameters[k]; |
| 117 paramsText.push("\"" + parameter.name + "\""); | 120 paramsText.push("\"" + parameter.name + "\""); |
| 118 } | 121 } |
| 119 result.push("InspectorBackend.registerEvent(\"" + domain.domain + ". " + event.name + "\", [" + paramsText.join(", ") + "]);"); | 122 result.push("InspectorBackend.registerEvent(\"" + domain.domain + ". " + event.name + "\", [" + paramsText.join(", ") + "]);"); |
| 120 } | 123 } |
| 121 } | 124 } |
| 122 return result.join("\n"); | 125 return result.join("\n"); |
| 123 } | 126 } |
| 124 | 127 |
| 125 WebInspector.InspectorBackendHostedMode.loadFromJSONIfNeeded("../inspector.json" ); | 128 WebInspector.InspectorBackendHostedMode.loadFromJSONIfNeeded([ |
| 129 "../protocol/browser_protocol.json", | |
| 130 "../protocol/js_protocol.json" | |
| 131 ]); | |
| OLD | NEW |