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 * @return {?Promise} | |
| 11 */ | 12 */ |
| 12 WebInspector.InspectorBackendHostedMode.loadFromJSONIfNeeded = function(jsonUrl) | 13 WebInspector.InspectorBackendHostedMode.loadFromJSONIfNeeded = function(urls) |
| 13 { | 14 { |
| 14 if (InspectorBackend.isInitialized()) | 15 if (InspectorBackend.isInitialized()) |
| 15 return; | 16 return null; |
| 16 | 17 |
| 17 var xhr = new XMLHttpRequest(); | 18 var promises = urls.map(url => loadURL(url)); |
| 18 xhr.open("GET", jsonUrl, false); | 19 return Promise.all(promises); |
| 19 xhr.send(null); | |
| 20 | 20 |
| 21 var schema = JSON.parse(xhr.responseText); | 21 /** |
| 22 var code = WebInspector.InspectorBackendHostedMode.generateCommands(schema); | 22 * @param {string} url |
| 23 eval(code); | 23 * @return {!Promise} |
| 24 */ | |
| 25 function loadURL(url) | |
| 26 { | |
| 27 return fetch(url) | |
| 28 .then(response => response.text()) | |
|
pfeldman
2016/07/07 23:25:44
I consider this an anti-pattern. Sync code should
| |
| 29 .then(schema => WebInspector.InspectorBackendHostedMode.generateComm ands(JSON.parse(schema))) | |
| 30 .then(code => eval(code)); | |
| 31 } | |
| 24 } | 32 } |
| 25 | 33 |
| 26 /** | 34 /** |
| 27 * @param {*} schema | 35 * @param {*} schema |
| 28 * @return {string} | 36 * @return {string} |
| 29 */ | 37 */ |
| 30 WebInspector.InspectorBackendHostedMode.generateCommands = function(schema) | 38 WebInspector.InspectorBackendHostedMode.generateCommands = function(schema) |
| 31 { | 39 { |
| 32 var jsTypes = { integer: "number", array: "object" }; | 40 var jsTypes = { integer: "number", array: "object" }; |
| 33 var rawTypes = {}; | 41 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 ) { | 123 for (var k = 0; event.parameters && k < event.parameters.length; ++k ) { |
| 116 var parameter = event.parameters[k]; | 124 var parameter = event.parameters[k]; |
| 117 paramsText.push("\"" + parameter.name + "\""); | 125 paramsText.push("\"" + parameter.name + "\""); |
| 118 } | 126 } |
| 119 result.push("InspectorBackend.registerEvent(\"" + domain.domain + ". " + event.name + "\", [" + paramsText.join(", ") + "]);"); | 127 result.push("InspectorBackend.registerEvent(\"" + domain.domain + ". " + event.name + "\", [" + paramsText.join(", ") + "]);"); |
| 120 } | 128 } |
| 121 } | 129 } |
| 122 return result.join("\n"); | 130 return result.join("\n"); |
| 123 } | 131 } |
| 124 | 132 |
| 125 WebInspector.InspectorBackendHostedMode.loadFromJSONIfNeeded("../inspector.json" ); | 133 WebInspector.InspectorBackendHostedMode.loadFromJSONIfNeeded([ |
| 134 "../sdk/protocol/browser_protocol.json", | |
| 135 "../sdk/protocol/js_protocol.json" | |
| 136 ]); | |
| OLD | NEW |