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

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

Issue 2851913002: [DevTools] Do not expose agents on Target
Patch Set: storage and tests.js Created 3 years, 7 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 2014 The Chromium Authors. All rights reserved. 2 * Copyright 2014 The Chromium Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be 3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file. 4 * found in the LICENSE file.
5 */ 5 */
6 6
7 /** 7 /**
8 * @unrestricted 8 * @unrestricted
9 */ 9 */
10 SDK.Target = class extends Protocol.TargetBase { 10 SDK.Target = class {
11 /** 11 /**
12 * @param {!SDK.TargetManager} targetManager 12 * @param {!SDK.TargetManager} targetManager
13 * @param {string} id 13 * @param {string} id
14 * @param {string} name 14 * @param {string} name
15 * @param {number} capabilitiesMask 15 * @param {number} capabilitiesMask
16 * @param {!Protocol.InspectorBackend.Connection.Factory} connectionFactory 16 * @param {!Protocol.Dispatcher} dispatcher
17 * @param {?SDK.Target} parentTarget 17 * @param {?SDK.Target} parentTarget
18 */ 18 */
19 constructor(targetManager, id, name, capabilitiesMask, connectionFactory, pare ntTarget) { 19 constructor(targetManager, id, name, capabilitiesMask, dispatcher, parentTarge t) {
20 super(connectionFactory);
21 this._targetManager = targetManager; 20 this._targetManager = targetManager;
22 this._name = name; 21 this._name = name;
23 this._inspectedURL = ''; 22 this._inspectedURL = '';
24 this._capabilitiesMask = capabilitiesMask; 23 this._capabilitiesMask = capabilitiesMask;
24 this._dispatcher = dispatcher;
25 this._parentTarget = parentTarget; 25 this._parentTarget = parentTarget;
26 this._id = id; 26 this._id = id;
27 this._modelByConstructor = new Map(); 27 this._modelByConstructor = new Map();
28 this._dispatcher.setDisposeCallback(this._dispose.bind(this));
28 } 29 }
29 30
30 createModels(required) { 31 createModels(required) {
31 this._creatingModels = true; 32 this._creatingModels = true;
32 // TODO(dgozman): fix this in bindings layer. 33 // TODO(dgozman): fix this in bindings layer.
33 this.model(SDK.ResourceTreeModel); 34 this.model(SDK.ResourceTreeModel);
34 var registered = Array.from(SDK.SDKModel._registeredModels.keys()); 35 var registered = Array.from(SDK.SDKModel._registeredModels.keys());
35 for (var modelClass of registered) { 36 for (var modelClass of registered) {
36 var info = SDK.SDKModel._registeredModels.get(modelClass); 37 var info = SDK.SDKModel._registeredModels.get(modelClass);
37 if (info.autostart || required.has(modelClass)) 38 if (info.autostart || required.has(modelClass))
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 return this.hasAllCapabilities(SDK.Target.Capability.DOM); 132 return this.hasAllCapabilities(SDK.Target.Capability.DOM);
132 } 133 }
133 134
134 /** 135 /**
135 * @return {?SDK.Target} 136 * @return {?SDK.Target}
136 */ 137 */
137 parentTarget() { 138 parentTarget() {
138 return this._parentTarget; 139 return this._parentTarget;
139 } 140 }
140 141
141 /** 142 _dispose() {
142 * @override
143 */
144 dispose() {
145 this._targetManager.removeTarget(this); 143 this._targetManager.removeTarget(this);
146 for (var model of this._modelByConstructor.valuesArray()) 144 for (var model of this._modelByConstructor.valuesArray())
147 model.dispose(); 145 model.dispose();
148 } 146 }
149 147
150 /** 148 /**
151 * @param {function(new:T, !SDK.Target)} modelClass 149 * @return {boolean}
150 */
151 isDisposed() {
152 return this._dispatcher.isDisposed();
153 }
154
155 /**
156 * @param {function(new:T, !SDK.Target, !Protocol.Dispatcher)} modelClass
152 * @return {?T} 157 * @return {?T}
153 * @template T 158 * @template T
154 */ 159 */
155 model(modelClass) { 160 model(modelClass) {
156 if (!this._modelByConstructor.get(modelClass)) { 161 if (!this._modelByConstructor.get(modelClass)) {
157 var info = SDK.SDKModel._registeredModels.get(modelClass); 162 var info = SDK.SDKModel._registeredModels.get(modelClass);
158 if (info === undefined) 163 if (info === undefined)
159 throw 'Model class is not registered @' + new Error().stack; 164 throw 'Model class is not registered @' + new Error().stack;
160 if ((this._capabilitiesMask & info.capabilities) === info.capabilities) { 165 if ((this._capabilitiesMask & info.capabilities) === info.capabilities) {
161 var model = new modelClass(this); 166 var model = new modelClass(this, this._dispatcher);
162 this._modelByConstructor.set(modelClass, model); 167 this._modelByConstructor.set(modelClass, model);
163 if (!this._creatingModels) 168 if (!this._creatingModels)
164 this._targetManager.modelAdded(this, modelClass, model); 169 this._targetManager.modelAdded(this, modelClass, model);
165 } 170 }
166 } 171 }
167 return this._modelByConstructor.get(modelClass) || null; 172 return this._modelByConstructor.get(modelClass) || null;
168 } 173 }
169 174
170 /** 175 /**
171 * @return {!Map<function(new:SDK.SDKModel, !SDK.Target), !SDK.SDKModel>} 176 * @return {!Map<function(new:SDK.SDKModel, !SDK.Target, !Protocol.Dispatcher) , !SDK.SDKModel>}
172 */ 177 */
173 models() { 178 models() {
174 return this._modelByConstructor; 179 return this._modelByConstructor;
175 } 180 }
176 181
177 /** 182 /**
178 * @return {string} 183 * @return {string}
179 */ 184 */
180 inspectedURL() { 185 inspectedURL() {
181 return this._inspectedURL; 186 return this._inspectedURL;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 223
219 AllForTests: (1 << 13) - 1 224 AllForTests: (1 << 13) - 1
220 }; 225 };
221 226
222 /** 227 /**
223 * @unrestricted 228 * @unrestricted
224 */ 229 */
225 SDK.SDKModel = class extends Common.Object { 230 SDK.SDKModel = class extends Common.Object {
226 /** 231 /**
227 * @param {!SDK.Target} target 232 * @param {!SDK.Target} target
233 * @param {!Protocol.Dispatcher} dispatcher
228 */ 234 */
229 constructor(target) { 235 constructor(target, dispatcher) {
230 super(); 236 super();
231 this._target = target; 237 this._target = target;
232 } 238 }
233 239
234 /** 240 /**
235 * @return {!SDK.Target} 241 * @return {!SDK.Target}
236 */ 242 */
237 target() { 243 target() {
238 return this._target; 244 return this._target;
239 } 245 }
(...skipping 11 matching lines...) Expand all
251 resumeModel() { 257 resumeModel() {
252 return Promise.resolve(); 258 return Promise.resolve();
253 } 259 }
254 260
255 dispose() { 261 dispose() {
256 } 262 }
257 }; 263 };
258 264
259 265
260 /** 266 /**
261 * @param {function(new:SDK.SDKModel, !SDK.Target)} modelClass 267 * @param {function(new:SDK.SDKModel, !SDK.Target, !Protocol.Dispatcher)} modelC lass
262 * @param {number} capabilities 268 * @param {number} capabilities
263 * @param {boolean} autostart 269 * @param {boolean} autostart
264 */ 270 */
265 SDK.SDKModel.register = function(modelClass, capabilities, autostart) { 271 SDK.SDKModel.register = function(modelClass, capabilities, autostart) {
266 if (!SDK.SDKModel._registeredModels) 272 if (!SDK.SDKModel._registeredModels)
267 SDK.SDKModel._registeredModels = new Map(); 273 SDK.SDKModel._registeredModels = new Map();
268 SDK.SDKModel._registeredModels.set(modelClass, {capabilities: capabilities, au tostart: autostart}); 274 SDK.SDKModel._registeredModels.set(modelClass, {capabilities: capabilities, au tostart: autostart});
269 }; 275 };
270 276
271 /** @type {!Map<function(new:SDK.SDKModel, !SDK.Target), !{capabilities: number, autostart: boolean}>} */ 277 /** @type {!Map<function(new:SDK.SDKModel, !SDK.Target, !Protocol.Dispatcher), ! {capabilities: number, autostart: boolean}>} */
272 SDK.SDKModel._registeredModels; 278 SDK.SDKModel._registeredModels;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698