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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/bindings/NetworkProject.js

Issue 2122353002: [DevTools] Make resource tree model optional (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comments Created 4 years, 4 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) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 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 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 targetManager.observeTargets(this); 42 targetManager.observeTargets(this);
43 } 43 }
44 44
45 WebInspector.NetworkProjectManager.prototype = { 45 WebInspector.NetworkProjectManager.prototype = {
46 /** 46 /**
47 * @override 47 * @override
48 * @param {!WebInspector.Target} target 48 * @param {!WebInspector.Target} target
49 */ 49 */
50 targetAdded: function(target) 50 targetAdded: function(target)
51 { 51 {
52 new WebInspector.NetworkProject(target, this._workspace, this._networkMa pping); 52 new WebInspector.NetworkProject(target, this._workspace, this._networkMa pping, WebInspector.ResourceTreeModel.fromTarget(target));
53 }, 53 },
54 54
55 /** 55 /**
56 * @override 56 * @override
57 * @param {!WebInspector.Target} target 57 * @param {!WebInspector.Target} target
58 */ 58 */
59 targetRemoved: function(target) 59 targetRemoved: function(target)
60 { 60 {
61 WebInspector.NetworkProject.forTarget(target)._dispose(); 61 WebInspector.NetworkProject.forTarget(target)._dispose();
62 } 62 }
63 } 63 }
64 64
65 /** 65 /**
66 * @constructor 66 * @constructor
67 * @extends {WebInspector.SDKObject} 67 * @extends {WebInspector.SDKObject}
68 * @param {!WebInspector.Target} target 68 * @param {!WebInspector.Target} target
69 * @param {!WebInspector.Workspace} workspace 69 * @param {!WebInspector.Workspace} workspace
70 * @param {!WebInspector.NetworkMapping} networkMapping 70 * @param {!WebInspector.NetworkMapping} networkMapping
71 * @param {?WebInspector.ResourceTreeModel} resourceTreeModel
71 */ 72 */
72 WebInspector.NetworkProject = function(target, workspace, networkMapping) 73 WebInspector.NetworkProject = function(target, workspace, networkMapping, resour ceTreeModel)
73 { 74 {
74 WebInspector.SDKObject.call(this, target); 75 WebInspector.SDKObject.call(this, target);
75 this._workspace = workspace; 76 this._workspace = workspace;
76 this._networkMapping = networkMapping; 77 this._networkMapping = networkMapping;
77 /** @type {!Map<string, !WebInspector.ContentProviderBasedProject>} */ 78 /** @type {!Map<string, !WebInspector.ContentProviderBasedProject>} */
78 this._workspaceProjects = new Map(); 79 this._workspaceProjects = new Map();
80 this._resourceTreeModel = resourceTreeModel;
79 target[WebInspector.NetworkProject._networkProjectSymbol] = this; 81 target[WebInspector.NetworkProject._networkProjectSymbol] = this;
80 82
81 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Eve ntTypes.ResourceAdded, this._resourceAdded, this); 83 this._eventListeners = [];
82 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Eve ntTypes.FrameWillNavigate, this._frameWillNavigate, this); 84
83 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Eve ntTypes.MainFrameNavigated, this._mainFrameNavigated, this); 85 if (resourceTreeModel) {
86 this._eventListeners.push(
87 resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Ev entTypes.ResourceAdded, this._resourceAdded, this),
88 resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Ev entTypes.FrameWillNavigate, this._frameWillNavigate, this),
89 resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Ev entTypes.MainFrameNavigated, this._mainFrameNavigated, this))
90 }
84 91
85 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); 92 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target);
86 if (debuggerModel) { 93 if (debuggerModel) {
87 debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ParsedS criptSource, this._parsedScriptSource, this); 94 this._eventListeners.push(
88 debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.FailedT oParseScriptSource, this._parsedScriptSource, this); 95 debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.Par sedScriptSource, this._parsedScriptSource, this),
96 debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.Fai ledToParseScriptSource, this._parsedScriptSource, this));
89 } 97 }
90 var cssModel = WebInspector.CSSModel.fromTarget(target); 98 var cssModel = WebInspector.CSSModel.fromTarget(target);
91 if (cssModel) { 99 if (cssModel) {
92 cssModel.addEventListener(WebInspector.CSSModel.Events.StyleSheetAdded, this._styleSheetAdded, this); 100 this._eventListeners.push(
93 cssModel.addEventListener(WebInspector.CSSModel.Events.StyleSheetRemoved , this._styleSheetRemoved, this); 101 cssModel.addEventListener(WebInspector.CSSModel.Events.StyleSheetAdd ed, this._styleSheetAdded, this),
102 cssModel.addEventListener(WebInspector.CSSModel.Events.StyleSheetRem oved, this._styleSheetRemoved, this));
94 } 103 }
95 target.targetManager().addEventListener(WebInspector.TargetManager.Events.Su spendStateChanged, this._suspendStateChanged, this); 104 this._eventListeners.push(
105 target.targetManager().addEventListener(WebInspector.TargetManager.Event s.SuspendStateChanged, this._suspendStateChanged, this));
96 } 106 }
97 107
98 WebInspector.NetworkProject._networkProjectSymbol = Symbol("networkProject"); 108 WebInspector.NetworkProject._networkProjectSymbol = Symbol("networkProject");
99 WebInspector.NetworkProject._resourceSymbol = Symbol("resource"); 109 WebInspector.NetworkProject._resourceSymbol = Symbol("resource");
100 WebInspector.NetworkProject._scriptSymbol = Symbol("script"); 110 WebInspector.NetworkProject._scriptSymbol = Symbol("script");
101 WebInspector.NetworkProject._styleSheetSymbol = Symbol("styleSheet"); 111 WebInspector.NetworkProject._styleSheetSymbol = Symbol("styleSheet");
102 WebInspector.NetworkProject._targetSymbol = Symbol("target"); 112 WebInspector.NetworkProject._targetSymbol = Symbol("target");
103 WebInspector.NetworkProject._frameSymbol = Symbol("frame"); 113 WebInspector.NetworkProject._frameSymbol = Symbol("frame");
104 114
105 /** 115 /**
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 uiSourceCode[WebInspector.NetworkProject._styleSheetSymbol]) { 169 uiSourceCode[WebInspector.NetworkProject._styleSheetSymbol]) {
160 return uiSourceCode.contentType().canonicalMimeType(); 170 return uiSourceCode.contentType().canonicalMimeType();
161 } 171 }
162 var resource = uiSourceCode[WebInspector.NetworkProject._resourceSymbol]; 172 var resource = uiSourceCode[WebInspector.NetworkProject._resourceSymbol];
163 if (resource) 173 if (resource)
164 return resource.mimeType; 174 return resource.mimeType;
165 var mimeType = WebInspector.ResourceType.mimeFromURL(uiSourceCode.url()); 175 var mimeType = WebInspector.ResourceType.mimeFromURL(uiSourceCode.url());
166 return mimeType || uiSourceCode.contentType().canonicalMimeType(); 176 return mimeType || uiSourceCode.contentType().canonicalMimeType();
167 } 177 }
168 178
169 /**
170 * @param {!WebInspector.UISourceCode} uiSourceCode
171 * @return {?WebInspector.ResourceTreeFrame}
172 */
173 WebInspector.NetworkProject.uiSourceCodeFrame = function(uiSourceCode)
174 {
175 var target = uiSourceCode[WebInspector.NetworkProject._targetSymbol];
176 if (!target)
177 return null;
178
179 var frameId;
180
181 var script = uiSourceCode[WebInspector.NetworkProject._scriptSymbol];
182 if (script) {
183 var executionContext = script.executionContext();
184 if (executionContext)
185 frameId = executionContext.frameId;
186 }
187
188 if (!frameId) {
189 var header = uiSourceCode[WebInspector.NetworkProject._styleSheetSymbol] ;
190 if (header)
191 frameId = header.frameId;
192 }
193
194 if (!frameId) {
195 var resource = uiSourceCode[WebInspector.NetworkProject._resourceSymbol] ;
196 if (resource)
197 frameId = resource.frameId;
198 }
199
200 return frameId ? target.resourceTreeModel.frameForId(frameId) : null;
201 }
202
203 WebInspector.NetworkProject.prototype = { 179 WebInspector.NetworkProject.prototype = {
204 /** 180 /**
205 * @param {?WebInspector.ResourceTreeFrame} frame 181 * @param {?WebInspector.ResourceTreeFrame} frame
206 * @param {boolean} isContentScripts 182 * @param {boolean} isContentScripts
207 * @return {!WebInspector.ContentProviderBasedProject} 183 * @return {!WebInspector.ContentProviderBasedProject}
208 */ 184 */
209 _workspaceProject: function(frame, isContentScripts) 185 _workspaceProject: function(frame, isContentScripts)
210 { 186 {
211 var projectId = WebInspector.NetworkProject.projectId(this.target(), fra me, isContentScripts); 187 var projectId = WebInspector.NetworkProject.projectId(this.target(), fra me, isContentScripts);
212 var projectType = isContentScripts ? WebInspector.projectTypes.ContentSc ripts : WebInspector.projectTypes.Network; 188 var projectType = isContentScripts ? WebInspector.projectTypes.ContentSc ripts : WebInspector.projectTypes.Network;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 function populateFrame(frame) 233 function populateFrame(frame)
258 { 234 {
259 for (var i = 0; i < frame.childFrames.length; ++i) 235 for (var i = 0; i < frame.childFrames.length; ++i)
260 populateFrame.call(this, frame.childFrames[i]); 236 populateFrame.call(this, frame.childFrames[i]);
261 237
262 var resources = frame.resources(); 238 var resources = frame.resources();
263 for (var i = 0; i < resources.length; ++i) 239 for (var i = 0; i < resources.length; ++i)
264 this._addResource(resources[i]); 240 this._addResource(resources[i]);
265 } 241 }
266 242
267 var mainFrame = this.target().resourceTreeModel.mainFrame; 243 var resourceTreeModel = this._resourceTreeModel;
244 var mainFrame = resourceTreeModel && resourceTreeModel.mainFrame;
268 if (mainFrame) 245 if (mainFrame)
269 populateFrame.call(this, mainFrame); 246 populateFrame.call(this, mainFrame);
270 }, 247 },
271 248
272 /** 249 /**
273 * @param {!WebInspector.UISourceCode} uiSourceCode 250 * @param {!WebInspector.UISourceCode} uiSourceCode
274 * @param {!WebInspector.ContentProvider} contentProvider 251 * @param {!WebInspector.ContentProvider} contentProvider
275 */ 252 */
276 _addUISourceCodeWithProvider: function(uiSourceCode, contentProvider) 253 _addUISourceCodeWithProvider: function(uiSourceCode, contentProvider)
277 { 254 {
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 392
416 var project = this._workspaceProject(frame, isContentScript); 393 var project = this._workspaceProject(frame, isContentScript);
417 var uiSourceCode = project.createUISourceCode(url, contentProvider.conte ntType()); 394 var uiSourceCode = project.createUISourceCode(url, contentProvider.conte ntType());
418 uiSourceCode[WebInspector.NetworkProject._targetSymbol] = this.target(); 395 uiSourceCode[WebInspector.NetworkProject._targetSymbol] = this.target();
419 return uiSourceCode; 396 return uiSourceCode;
420 }, 397 },
421 398
422 _dispose: function() 399 _dispose: function()
423 { 400 {
424 this._reset(); 401 this._reset();
425 var target = this.target(); 402 WebInspector.EventTarget.removeEventListeners(this._eventListeners);
426 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeMo del.EventTypes.ResourceAdded, this._resourceAdded, this); 403 this._eventListeners = [];
427 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeMo del.EventTypes.MainFrameNavigated, this._mainFrameNavigated, this); 404 delete this.target()[WebInspector.NetworkProject._networkProjectSymbol];
428 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target);
429 if (debuggerModel) {
430 debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events. ParsedScriptSource, this._parsedScriptSource, this);
431 debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events. FailedToParseScriptSource, this._parsedScriptSource, this);
432 }
433 var cssModel = WebInspector.CSSModel.fromTarget(target);
434 if (cssModel) {
435 cssModel.removeEventListener(WebInspector.CSSModel.Events.StyleSheet Added, this._styleSheetAdded, this);
436 cssModel.removeEventListener(WebInspector.CSSModel.Events.StyleSheet Removed, this._styleSheetRemoved, this);
437 }
438 delete target[WebInspector.NetworkProject._networkProjectSymbol];
439 }, 405 },
440 406
441 _reset: function() 407 _reset: function()
442 { 408 {
443 for (var project of this._workspaceProjects.values()) 409 for (var project of this._workspaceProjects.values())
444 project.reset(); 410 project.reset();
445 this._workspaceProjects.clear(); 411 this._workspaceProjects.clear();
446 }, 412 },
447 413
448 __proto__: WebInspector.SDKObject.prototype 414 __proto__: WebInspector.SDKObject.prototype
449 } 415 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698