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 |