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

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: [DevTools] No RTM for non-browser targets 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 if (resourceTreeModel) {
dgozman 2016/08/19 20:23:37 Let's make sure we have service worker script in t
eostroukhov 2016/08/20 01:22:30 I see the service worker in the view. It is added
82 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Eve ntTypes.FrameWillNavigate, this._frameWillNavigate, this); 84 resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventT ypes.ResourceAdded, this._resourceAdded, this);
83 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Eve ntTypes.MainFrameNavigated, this._mainFrameNavigated, this); 85 resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventT ypes.FrameWillNavigate, this._frameWillNavigate, this);
86 resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventT ypes.MainFrameNavigated, this._mainFrameNavigated, this);
87 }
84 88
85 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); 89 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target);
86 if (debuggerModel) { 90 if (debuggerModel) {
87 debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ParsedS criptSource, this._parsedScriptSource, this); 91 debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ParsedS criptSource, this._parsedScriptSource, this);
88 debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.FailedT oParseScriptSource, this._parsedScriptSource, this); 92 debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.FailedT oParseScriptSource, this._parsedScriptSource, this);
89 } 93 }
90 var cssModel = WebInspector.CSSModel.fromTarget(target); 94 var cssModel = WebInspector.CSSModel.fromTarget(target);
91 if (cssModel) { 95 if (cssModel) {
92 cssModel.addEventListener(WebInspector.CSSModel.Events.StyleSheetAdded, this._styleSheetAdded, this); 96 cssModel.addEventListener(WebInspector.CSSModel.Events.StyleSheetAdded, this._styleSheetAdded, this);
93 cssModel.addEventListener(WebInspector.CSSModel.Events.StyleSheetRemoved , this._styleSheetRemoved, this); 97 cssModel.addEventListener(WebInspector.CSSModel.Events.StyleSheetRemoved , this._styleSheetRemoved, this);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 uiSourceCode[WebInspector.NetworkProject._styleSheetSymbol]) { 163 uiSourceCode[WebInspector.NetworkProject._styleSheetSymbol]) {
160 return uiSourceCode.contentType().canonicalMimeType(); 164 return uiSourceCode.contentType().canonicalMimeType();
161 } 165 }
162 var resource = uiSourceCode[WebInspector.NetworkProject._resourceSymbol]; 166 var resource = uiSourceCode[WebInspector.NetworkProject._resourceSymbol];
163 if (resource) 167 if (resource)
164 return resource.mimeType; 168 return resource.mimeType;
165 var mimeType = WebInspector.ResourceType.mimeFromURL(uiSourceCode.url()); 169 var mimeType = WebInspector.ResourceType.mimeFromURL(uiSourceCode.url());
166 return mimeType || uiSourceCode.contentType().canonicalMimeType(); 170 return mimeType || uiSourceCode.contentType().canonicalMimeType();
167 } 171 }
168 172
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 = { 173 WebInspector.NetworkProject.prototype = {
204 /** 174 /**
205 * @param {?WebInspector.ResourceTreeFrame} frame 175 * @param {?WebInspector.ResourceTreeFrame} frame
206 * @param {boolean} isContentScripts 176 * @param {boolean} isContentScripts
207 * @return {!WebInspector.ContentProviderBasedProject} 177 * @return {!WebInspector.ContentProviderBasedProject}
208 */ 178 */
209 _workspaceProject: function(frame, isContentScripts) 179 _workspaceProject: function(frame, isContentScripts)
210 { 180 {
211 var projectId = WebInspector.NetworkProject.projectId(this.target(), fra me, isContentScripts); 181 var projectId = WebInspector.NetworkProject.projectId(this.target(), fra me, isContentScripts);
212 var projectType = isContentScripts ? WebInspector.projectTypes.ContentSc ripts : WebInspector.projectTypes.Network; 182 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) 227 function populateFrame(frame)
258 { 228 {
259 for (var i = 0; i < frame.childFrames.length; ++i) 229 for (var i = 0; i < frame.childFrames.length; ++i)
260 populateFrame.call(this, frame.childFrames[i]); 230 populateFrame.call(this, frame.childFrames[i]);
261 231
262 var resources = frame.resources(); 232 var resources = frame.resources();
263 for (var i = 0; i < resources.length; ++i) 233 for (var i = 0; i < resources.length; ++i)
264 this._addResource(resources[i]); 234 this._addResource(resources[i]);
265 } 235 }
266 236
267 var mainFrame = this.target().resourceTreeModel.mainFrame; 237 var resourceTreeModel = this._resourceTreeModel;
238 var mainFrame = resourceTreeModel && resourceTreeModel.mainFrame;
268 if (mainFrame) 239 if (mainFrame)
269 populateFrame.call(this, mainFrame); 240 populateFrame.call(this, mainFrame);
270 }, 241 },
271 242
272 /** 243 /**
273 * @param {!WebInspector.UISourceCode} uiSourceCode 244 * @param {!WebInspector.UISourceCode} uiSourceCode
274 * @param {!WebInspector.ContentProvider} contentProvider 245 * @param {!WebInspector.ContentProvider} contentProvider
275 */ 246 */
276 _addUISourceCodeWithProvider: function(uiSourceCode, contentProvider) 247 _addUISourceCodeWithProvider: function(uiSourceCode, contentProvider)
277 { 248 {
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 386
416 var project = this._workspaceProject(frame, isContentScript); 387 var project = this._workspaceProject(frame, isContentScript);
417 var uiSourceCode = project.createUISourceCode(url, contentProvider.conte ntType()); 388 var uiSourceCode = project.createUISourceCode(url, contentProvider.conte ntType());
418 uiSourceCode[WebInspector.NetworkProject._targetSymbol] = this.target(); 389 uiSourceCode[WebInspector.NetworkProject._targetSymbol] = this.target();
419 return uiSourceCode; 390 return uiSourceCode;
420 }, 391 },
421 392
422 _dispose: function() 393 _dispose: function()
423 { 394 {
424 this._reset(); 395 this._reset();
396 if (this._resourceTreeModel) {
397 this._resourceTreeModel.removeEventListener(WebInspector.ResourceTre eModel.EventTypes.ResourceAdded, this._resourceAdded, this);
dgozman 2016/08/19 20:23:37 nit: while you are here, let's migrate to WebInspe
eostroukhov 2016/08/20 01:22:30 Done.
398 this._resourceTreeModel.removeEventListener(WebInspector.ResourceTre eModel.EventTypes.FrameWillNavigate, this._frameWillNavigate, this);
399 this._resourceTreeModel.removeEventListener(WebInspector.ResourceTre eModel.EventTypes.MainFrameNavigated, this._mainFrameNavigated, this);
400 }
425 var target = this.target(); 401 var target = this.target();
426 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeMo del.EventTypes.ResourceAdded, this._resourceAdded, this);
427 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeMo del.EventTypes.MainFrameNavigated, this._mainFrameNavigated, this);
428 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); 402 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target);
429 if (debuggerModel) { 403 if (debuggerModel) {
430 debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events. ParsedScriptSource, this._parsedScriptSource, this); 404 debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events. ParsedScriptSource, this._parsedScriptSource, this);
431 debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events. FailedToParseScriptSource, this._parsedScriptSource, this); 405 debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events. FailedToParseScriptSource, this._parsedScriptSource, this);
432 } 406 }
433 var cssModel = WebInspector.CSSModel.fromTarget(target); 407 var cssModel = WebInspector.CSSModel.fromTarget(target);
434 if (cssModel) { 408 if (cssModel) {
435 cssModel.removeEventListener(WebInspector.CSSModel.Events.StyleSheet Added, this._styleSheetAdded, this); 409 cssModel.removeEventListener(WebInspector.CSSModel.Events.StyleSheet Added, this._styleSheetAdded, this);
436 cssModel.removeEventListener(WebInspector.CSSModel.Events.StyleSheet Removed, this._styleSheetRemoved, this); 410 cssModel.removeEventListener(WebInspector.CSSModel.Events.StyleSheet Removed, this._styleSheetRemoved, this);
437 } 411 }
438 delete target[WebInspector.NetworkProject._networkProjectSymbol]; 412 delete target[WebInspector.NetworkProject._networkProjectSymbol];
439 }, 413 },
440 414
441 _reset: function() 415 _reset: function()
442 { 416 {
443 for (var project of this._workspaceProjects.values()) 417 for (var project of this._workspaceProjects.values())
444 project.reset(); 418 project.reset();
445 this._workspaceProjects.clear(); 419 this._workspaceProjects.clear();
446 }, 420 },
447 421
448 __proto__: WebInspector.SDKObject.prototype 422 __proto__: WebInspector.SDKObject.prototype
449 } 423 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698