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

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

Issue 2516563003: [DevTools] Remove InspectorBackendHostedMode. (Closed)
Patch Set: 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
(Empty)
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
3 // found in the LICENSE file.
4 // This should be executed immediately after InspectorBackend and InspectorBacke ndCommands
5
6 SDK.InspectorBackendHostedMode = {};
7
8 SDK.InspectorBackendHostedMode.loadFromJSONIfNeeded = function() {
9 if (InspectorBackend.isInitialized())
10 return;
11
12 for (var url of Object.keys(Runtime.cachedResources)) {
13 if (url.indexOf('protocol.json') !== -1) {
14 var protocol = Runtime.cachedResources[url];
15 var code = SDK.InspectorBackendHostedMode.generateCommands(JSON.parse(prot ocol));
16 eval(code);
17 }
18 }
19 };
20
21 /**
22 * @param {*} schema
23 * @return {string}
24 */
25 SDK.InspectorBackendHostedMode.generateCommands = function(schema) {
26 var jsTypes = {integer: 'number', array: 'object'};
27 var rawTypes = {};
28 var result = [];
29
30 var domains = schema['domains'] || [];
31 for (var i = 0; i < domains.length; ++i) {
32 var domain = domains[i];
33 for (var j = 0; domain.types && j < domain.types.length; ++j) {
34 var type = domain.types[j];
35 rawTypes[domain.domain + '.' + type.id] = jsTypes[type.type] || type.type;
36 }
37 }
38
39 function toUpperCase(groupIndex, group0, group1) {
40 return [group0, group1][groupIndex].toUpperCase();
41 }
42 function generateEnum(enumName, items) {
43 var members = [];
44 for (var m = 0; m < items.length; ++m) {
45 var value = items[m];
46 var name = value;
47 var prefix = '';
48 if (name[0] === '-') {
49 prefix = 'Negative';
50 name = name.substring(1);
51 }
52 name = name.replace(/-(\w)/g, toUpperCase.bind(null, 1)).toTitleCase();
53 name = name.replace(/HTML|XML|WML|API/ig, toUpperCase.bind(null, 0));
54 members.push(prefix + name + ': "' + value + '"');
55 }
56 return 'InspectorBackend.registerEnum("' + enumName + '", {' + members.join( ', ') + '});';
57 }
58
59 for (var i = 0; i < domains.length; ++i) {
60 var domain = domains[i];
61
62 var types = domain['types'] || [];
63 for (var j = 0; j < types.length; ++j) {
64 var type = types[j];
65 if ((type['type'] === 'string') && type['enum']) {
66 result.push(generateEnum(domain.domain + '.' + type.id, type['enum']));
67 } else if (type['type'] === 'object') {
68 var properties = type['properties'] || [];
69 for (var k = 0; k < properties.length; ++k) {
70 var property = properties[k];
71 if ((property['type'] === 'string') && property['enum'])
72 result.push(generateEnum(domain.domain + '.' + type.id + property['n ame'].toTitleCase(), property['enum']));
73 }
74 }
75 }
76
77 var commands = domain['commands'] || [];
78 for (var j = 0; j < commands.length; ++j) {
79 var command = commands[j];
80 var parameters = command['parameters'];
81 var paramsText = [];
82 for (var k = 0; parameters && k < parameters.length; ++k) {
83 var parameter = parameters[k];
84
85 var type;
86 if (parameter.type) {
87 type = jsTypes[parameter.type] || parameter.type;
88 } else {
89 var ref = parameter['$ref'];
90 if (ref.indexOf('.') !== -1)
91 type = rawTypes[ref];
92 else
93 type = rawTypes[domain.domain + '.' + ref];
94 }
95
96 var text = '{"name": "' + parameter.name + '", "type": "' + type + '", " optional": ' +
97 (parameter.optional ? 'true' : 'false') + '}';
98 paramsText.push(text);
99 }
100
101 var returnsText = [];
102 var returns = command['returns'] || [];
103 for (var k = 0; k < returns.length; ++k) {
104 var parameter = returns[k];
105 returnsText.push('"' + parameter.name + '"');
106 }
107 var hasErrorData = String(Boolean(command.error));
108 result.push(
109 'InspectorBackend.registerCommand("' + domain.domain + '.' + command.n ame + '", [' + paramsText.join(', ') +
110 '], [' + returnsText.join(', ') + '], ' + hasErrorData + ');');
111 }
112
113 for (var j = 0; domain.events && j < domain.events.length; ++j) {
114 var event = domain.events[j];
115 var paramsText = [];
116 for (var k = 0; event.parameters && k < event.parameters.length; ++k) {
117 var parameter = event.parameters[k];
118 paramsText.push('"' + parameter.name + '"');
119 }
120 result.push(
121 'InspectorBackend.registerEvent("' + domain.domain + '.' + event.name + '", [' + paramsText.join(', ') +
122 ']);');
123 }
124 }
125 return result.join('\n');
126 };
127
128 SDK.InspectorBackendHostedMode.loadFromJSONIfNeeded();
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/Runtime.js ('k') | third_party/WebKit/Source/devtools/front_end/sdk/module.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698