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

Side by Side Diff: Source/devtools/front_end/sdk/InspectorBackend.js

Issue 1355423003: Devtools: initialize protocol enums synchronously (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: removed WebInspector._connectionForTests Created 5 years, 3 months 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
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 15 matching lines...) Expand all
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 /** 31 /**
32 * @constructor 32 * @constructor
33 */ 33 */
34 function InspectorBackendClass() 34 function InspectorBackendClass()
35 { 35 {
36 this._connection = null;
37 this._agentPrototypes = {}; 36 this._agentPrototypes = {};
38 this._dispatcherPrototypes = {}; 37 this._dispatcherPrototypes = {};
39 this._initialized = false; 38 this._initialized = false;
40 this._enums = {};
41 this._initProtocolAgentsConstructor(); 39 this._initProtocolAgentsConstructor();
42 } 40 }
43 41
44 InspectorBackendClass._DevToolsErrorCode = -32000; 42 InspectorBackendClass._DevToolsErrorCode = -32000;
45 43
46 /** 44 /**
47 * @param {string} error 45 * @param {string} error
48 * @param {!Object} messageObject 46 * @param {!Object} messageObject
49 */ 47 */
50 InspectorBackendClass.reportProtocolError = function(error, messageObject) 48 InspectorBackendClass.reportProtocolError = function(error, messageObject)
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 */ 91 */
94 function registerDispatcher(dispatcher) 92 function registerDispatcher(dispatcher)
95 { 93 {
96 this.registerDispatcher(domain, dispatcher) 94 this.registerDispatcher(domain, dispatcher)
97 } 95 }
98 96
99 window.Protocol.Agents.prototype["register" + domain + "Dispatcher"] = r egisterDispatcher; 97 window.Protocol.Agents.prototype["register" + domain + "Dispatcher"] = r egisterDispatcher;
100 }, 98 },
101 99
102 /** 100 /**
103 * @return {!InspectorBackendClass.Connection}
104 */
105 connection: function()
106 {
107 if (!this._connection)
108 throw "Main connection was not initialized";
109 return this._connection;
110 },
111
112 /**
113 * @param {!InspectorBackendClass.MainConnection} connection
114 */
115 setConnection: function(connection)
116 {
117 this._connection = connection;
118
119 this._connection.registerAgentsOn(window);
120 for (var type in this._enums) {
121 var domainAndMethod = type.split(".");
122 window[domainAndMethod[0] + "Agent"][domainAndMethod[1]] = this._enu ms[type];
123 }
124 },
125
126 /**
127 * @param {string} domain 101 * @param {string} domain
128 * @return {!InspectorBackendClass.AgentPrototype} 102 * @return {!InspectorBackendClass.AgentPrototype}
129 */ 103 */
130 _agentPrototype: function(domain) 104 _agentPrototype: function(domain)
131 { 105 {
132 if (!this._agentPrototypes[domain]) { 106 if (!this._agentPrototypes[domain]) {
133 this._agentPrototypes[domain] = new InspectorBackendClass.AgentProto type(domain); 107 this._agentPrototypes[domain] = new InspectorBackendClass.AgentProto type(domain);
134 this._addAgentGetterMethodToProtocolAgentsPrototype(domain); 108 this._addAgentGetterMethodToProtocolAgentsPrototype(domain);
135 } 109 }
136 110
(...skipping 23 matching lines...) Expand all
160 this._agentPrototype(domainAndMethod[0]).registerCommand(domainAndMethod [1], signature, replyArgs, hasErrorData); 134 this._agentPrototype(domainAndMethod[0]).registerCommand(domainAndMethod [1], signature, replyArgs, hasErrorData);
161 this._initialized = true; 135 this._initialized = true;
162 }, 136 },
163 137
164 /** 138 /**
165 * @param {string} type 139 * @param {string} type
166 * @param {!Object} values 140 * @param {!Object} values
167 */ 141 */
168 registerEnum: function(type, values) 142 registerEnum: function(type, values)
169 { 143 {
170 this._enums[type] = values; 144 var domainAndMethod = type.split(".");
145 var agentName = domainAndMethod[0] + "Agent";
146 if (!window[agentName])
147 window[agentName] = {};
148
149 window[agentName][domainAndMethod[1]] = values;
171 this._initialized = true; 150 this._initialized = true;
172 }, 151 },
173 152
174 /** 153 /**
175 * @param {string} eventName 154 * @param {string} eventName
176 * @param {!Object} params 155 * @param {!Object} params
177 */ 156 */
178 registerEvent: function(eventName, params) 157 registerEvent: function(eventName, params)
179 { 158 {
180 var domain = eventName.split(".")[0]; 159 var domain = eventName.split(".")[0];
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 this._agents[domain] = Object.create(agentPrototypes[domain]); 338 this._agents[domain] = Object.create(agentPrototypes[domain]);
360 this._agents[domain].setConnection(this); 339 this._agents[domain].setConnection(this);
361 } 340 }
362 341
363 for (var domain in dispatcherPrototypes) 342 for (var domain in dispatcherPrototypes)
364 this._dispatchers[domain] = Object.create(dispatcherPrototypes[domai n]); 343 this._dispatchers[domain] = Object.create(dispatcherPrototypes[domai n]);
365 344
366 }, 345 },
367 346
368 /** 347 /**
369 * @param {!Object} object
370 */
371 registerAgentsOn: function(object)
372 {
373 for (var domain in this._agents)
374 object[domain + "Agent"] = {};
375 },
376
377 /**
378 * @return {number} 348 * @return {number}
379 */ 349 */
380 nextMessageId: function() 350 nextMessageId: function()
381 { 351 {
382 return this._lastMessageId++; 352 return this._lastMessageId++;
383 }, 353 },
384 354
385 /** 355 /**
386 * @param {string} domain 356 * @param {string} domain
387 * @return {!InspectorBackendClass.AgentPrototype} 357 * @return {!InspectorBackendClass.AgentPrototype}
(...skipping 661 matching lines...) Expand 10 before | Expand all | Expand 10 after
1049 } 1019 }
1050 } 1020 }
1051 1021
1052 InspectorBackendClass.Options = { 1022 InspectorBackendClass.Options = {
1053 dumpInspectorTimeStats: false, 1023 dumpInspectorTimeStats: false,
1054 dumpInspectorProtocolMessages: false, 1024 dumpInspectorProtocolMessages: false,
1055 suppressRequestErrors: false 1025 suppressRequestErrors: false
1056 } 1026 }
1057 1027
1058 InspectorBackend = new InspectorBackendClass(); 1028 InspectorBackend = new InspectorBackendClass();
OLDNEW
« no previous file with comments | « Source/devtools/front_end/main/module.json ('k') | Source/devtools/scripts/generate_protocol_externs.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698