OLD | NEW |
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 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 } | 95 } |
96 | 96 |
97 WebInspector.NetworkProject._networkProjectSymbol = Symbol("networkProject"); | 97 WebInspector.NetworkProject._networkProjectSymbol = Symbol("networkProject"); |
98 WebInspector.NetworkProject._resourceSymbol = Symbol("resource"); | 98 WebInspector.NetworkProject._resourceSymbol = Symbol("resource"); |
99 WebInspector.NetworkProject._scriptSymbol = Symbol("script"); | 99 WebInspector.NetworkProject._scriptSymbol = Symbol("script"); |
100 WebInspector.NetworkProject._styleSheetSymbol = Symbol("styleSheet"); | 100 WebInspector.NetworkProject._styleSheetSymbol = Symbol("styleSheet"); |
101 WebInspector.NetworkProject._targetSymbol = Symbol("target"); | 101 WebInspector.NetworkProject._targetSymbol = Symbol("target"); |
102 | 102 |
103 /** | 103 /** |
104 * @param {!WebInspector.Target} target | 104 * @param {!WebInspector.Target} target |
105 * @param {string} projectURL | |
106 * @param {boolean} isContentScripts | 105 * @param {boolean} isContentScripts |
107 * @return {string} | 106 * @return {string} |
108 */ | 107 */ |
109 WebInspector.NetworkProject.projectId = function(target, projectURL, isContentSc
ripts) | 108 WebInspector.NetworkProject.projectId = function(target, isContentScripts) |
110 { | 109 { |
111 return target.id() + ":" + (isContentScripts ? "contentscripts:" : "") + pro
jectURL; | 110 return target.id() + ":" + (isContentScripts ? "contentscripts:" : ""); |
112 } | 111 } |
113 | 112 |
114 /** | 113 /** |
115 * @param {!WebInspector.Target} target | 114 * @param {!WebInspector.Target} target |
116 * @return {!WebInspector.NetworkProject} | 115 * @return {!WebInspector.NetworkProject} |
117 */ | 116 */ |
118 WebInspector.NetworkProject.forTarget = function(target) | 117 WebInspector.NetworkProject.forTarget = function(target) |
119 { | 118 { |
120 return target[WebInspector.NetworkProject._networkProjectSymbol]; | 119 return target[WebInspector.NetworkProject._networkProjectSymbol]; |
121 } | 120 } |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
175 var resource = uiSourceCode[WebInspector.NetworkProject._resourceSymbol]
; | 174 var resource = uiSourceCode[WebInspector.NetworkProject._resourceSymbol]
; |
176 if (resource) | 175 if (resource) |
177 frameId = resource.frameId; | 176 frameId = resource.frameId; |
178 } | 177 } |
179 | 178 |
180 return frameId ? target.resourceTreeModel.frameForId(frameId) : null; | 179 return frameId ? target.resourceTreeModel.frameForId(frameId) : null; |
181 } | 180 } |
182 | 181 |
183 WebInspector.NetworkProject.prototype = { | 182 WebInspector.NetworkProject.prototype = { |
184 /** | 183 /** |
185 * @param {string} projectURL | |
186 * @param {boolean} isContentScripts | 184 * @param {boolean} isContentScripts |
187 * @return {!WebInspector.ContentProviderBasedProject} | 185 * @return {!WebInspector.ContentProviderBasedProject} |
188 */ | 186 */ |
189 _workspaceProject: function(projectURL, isContentScripts) | 187 _workspaceProject: function(isContentScripts) |
190 { | 188 { |
191 var projectId = WebInspector.NetworkProject.projectId(this.target(), pro
jectURL, isContentScripts); | 189 var projectId = WebInspector.NetworkProject.projectId(this.target(), isC
ontentScripts); |
192 var projectType = isContentScripts ? WebInspector.projectTypes.ContentSc
ripts : WebInspector.projectTypes.Network; | 190 var projectType = isContentScripts ? WebInspector.projectTypes.ContentSc
ripts : WebInspector.projectTypes.Network; |
193 | 191 |
194 var project = this._workspaceProjects.get(projectId); | 192 var project = this._workspaceProjects.get(projectId); |
195 if (project) | 193 if (project) |
196 return project; | 194 return project; |
197 | 195 |
198 project = new WebInspector.ContentProviderBasedProject(this._workspace,
projectId, projectType, projectURL, this._computeDisplayName(projectURL)); | 196 project = new WebInspector.ContentProviderBasedProject(this._workspace,
projectId, projectType, ""); |
199 this._workspaceProjects.set(projectId, project); | 197 this._workspaceProjects.set(projectId, project); |
200 return project; | 198 return project; |
201 }, | 199 }, |
202 | 200 |
203 /** | 201 /** |
204 * @param {string} url | 202 * @param {string} url |
205 * @return {string} | |
206 */ | |
207 _computeDisplayName: function(url) | |
208 { | |
209 for (var context of this.target().runtimeModel.executionContexts()) { | |
210 if (context.name && context.origin && url.startsWith(context.origin)
) | |
211 return context.name; | |
212 } | |
213 | |
214 var targetSuffix = this.target().isPage() ? "" : " \u2014 " + this.targe
t().name(); | |
215 if (!url) | |
216 return WebInspector.UIString("(no domain)") + targetSuffix; | |
217 var parsedURL = new WebInspector.ParsedURL(url); | |
218 var prettyURL = parsedURL.isValid ? parsedURL.host + (parsedURL.port ? (
":" + parsedURL.port) : "") : ""; | |
219 return (prettyURL || url) + targetSuffix; | |
220 }, | |
221 | |
222 /** | |
223 * @param {string} url | |
224 * @param {!WebInspector.ContentProvider} contentProvider | 203 * @param {!WebInspector.ContentProvider} contentProvider |
225 * @param {boolean=} isContentScript | 204 * @param {boolean=} isContentScript |
226 * @return {?WebInspector.UISourceCode} | 205 * @return {?WebInspector.UISourceCode} |
227 */ | 206 */ |
228 addFileForURL: function(url, contentProvider, isContentScript) | 207 addFileForURL: function(url, contentProvider, isContentScript) |
229 { | 208 { |
230 return this._createFile(url, contentProvider, isContentScript || false,
true); | 209 return this._createFile(url, contentProvider, isContentScript || false,
true); |
231 }, | 210 }, |
232 | 211 |
233 /** | 212 /** |
234 * @param {string} url | 213 * @param {string} url |
235 */ | 214 */ |
236 _removeFileForURL: function(url) | 215 _removeFileForURL: function(url) |
237 { | 216 { |
238 var splitURL = WebInspector.ParsedURL.splitURLIntoPathComponents(url); | 217 var project = this._workspaceProjects.get(WebInspector.NetworkProject.pr
ojectId(this.target(), false)); |
239 var projectURL = splitURL[0]; | |
240 var path = splitURL.slice(1).join("/"); | |
241 var project = this._workspaceProjects.get(WebInspector.NetworkProject.pr
ojectId(this.target(), projectURL, false)); | |
242 if (!project) | 218 if (!project) |
243 return; | 219 return; |
244 project.removeFile(path); | 220 project.removeFile(url); |
245 }, | 221 }, |
246 | 222 |
247 _populate: function() | 223 _populate: function() |
248 { | 224 { |
249 /** | 225 /** |
250 * @param {!WebInspector.ResourceTreeFrame} frame | 226 * @param {!WebInspector.ResourceTreeFrame} frame |
251 * @this {WebInspector.NetworkProject} | 227 * @this {WebInspector.NetworkProject} |
252 */ | 228 */ |
253 function populateFrame(frame) | 229 function populateFrame(frame) |
254 { | 230 { |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
351 if (resourceType === WebInspector.resourceTypes.Font && resource.mimeTyp
e && !resource.mimeType.includes("font")) | 327 if (resourceType === WebInspector.resourceTypes.Font && resource.mimeTyp
e && !resource.mimeType.includes("font")) |
352 return; | 328 return; |
353 if ((resourceType === WebInspector.resourceTypes.Image || resourceType =
== WebInspector.resourceTypes.Font) && resource.contentURL().startsWith("data:")
) | 329 if ((resourceType === WebInspector.resourceTypes.Image || resourceType =
== WebInspector.resourceTypes.Font) && resource.contentURL().startsWith("data:")
) |
354 return; | 330 return; |
355 | 331 |
356 // Never load document twice. | 332 // Never load document twice. |
357 if (this._workspace.uiSourceCodeForOriginURL(resource.url)) | 333 if (this._workspace.uiSourceCodeForOriginURL(resource.url)) |
358 return; | 334 return; |
359 | 335 |
360 var uiSourceCode = this._createFile(resource.url, resource, false, false
); | 336 var uiSourceCode = this._createFile(resource.url, resource, false, false
); |
361 uiSourceCode[WebInspector.NetworkProject._resourceSymbol] = resource; | 337 if (uiSourceCode) { |
362 this._addUISourceCodeWithProvider(uiSourceCode, resource); | 338 uiSourceCode[WebInspector.NetworkProject._resourceSymbol] = resource
; |
| 339 this._addUISourceCodeWithProvider(uiSourceCode, resource); |
| 340 } |
363 }, | 341 }, |
364 | 342 |
365 /** | 343 /** |
366 * @param {!WebInspector.Event} event | 344 * @param {!WebInspector.Event} event |
367 */ | 345 */ |
368 _mainFrameNavigated: function(event) | 346 _mainFrameNavigated: function(event) |
369 { | 347 { |
370 this._reset(); | 348 this._reset(); |
371 this._populate(); | 349 this._populate(); |
372 }, | 350 }, |
(...skipping 11 matching lines...) Expand all Loading... |
384 * @param {!WebInspector.ContentProvider} contentProvider | 362 * @param {!WebInspector.ContentProvider} contentProvider |
385 * @param {boolean} isContentScript | 363 * @param {boolean} isContentScript |
386 * @param {boolean} addIntoProject | 364 * @param {boolean} addIntoProject |
387 * @return {?WebInspector.UISourceCode} | 365 * @return {?WebInspector.UISourceCode} |
388 */ | 366 */ |
389 _createFile: function(url, contentProvider, isContentScript, addIntoProject) | 367 _createFile: function(url, contentProvider, isContentScript, addIntoProject) |
390 { | 368 { |
391 if (this._networkMapping.hasMappingForURL(url)) | 369 if (this._networkMapping.hasMappingForURL(url)) |
392 return null; | 370 return null; |
393 | 371 |
394 var splitURL = WebInspector.ParsedURL.splitURLIntoPathComponents(url); | 372 var project = this._workspaceProject(isContentScript); |
395 var projectURL = splitURL[0]; | 373 var uiSourceCode = project.createUISourceCode(url, contentProvider.conte
ntType()); |
396 var parentPath = splitURL.slice(1, -1).join("/"); | |
397 var name = splitURL.peekLast() || ""; | |
398 var project = this._workspaceProject(projectURL, isContentScript); | |
399 var uiSourceCode = project.createUISourceCode(parentPath, name, url, con
tentProvider.contentType()); | |
400 uiSourceCode[WebInspector.NetworkProject._targetSymbol] = this.target(); | 374 uiSourceCode[WebInspector.NetworkProject._targetSymbol] = this.target(); |
401 if (addIntoProject) | 375 if (addIntoProject) |
402 project.addUISourceCodeWithProvider(uiSourceCode, contentProvider); | 376 project.addUISourceCodeWithProvider(uiSourceCode, contentProvider); |
403 return uiSourceCode; | 377 return uiSourceCode; |
404 }, | 378 }, |
405 | 379 |
406 _dispose: function() | 380 _dispose: function() |
407 { | 381 { |
408 this._reset(); | 382 this._reset(); |
409 var target = this.target(); | 383 var target = this.target(); |
(...skipping 14 matching lines...) Expand all Loading... |
424 | 398 |
425 _reset: function() | 399 _reset: function() |
426 { | 400 { |
427 for (var project of this._workspaceProjects.values()) | 401 for (var project of this._workspaceProjects.values()) |
428 project.reset(); | 402 project.reset(); |
429 this._workspaceProjects.clear(); | 403 this._workspaceProjects.clear(); |
430 }, | 404 }, |
431 | 405 |
432 __proto__: WebInspector.SDKObject.prototype | 406 __proto__: WebInspector.SDKObject.prototype |
433 } | 407 } |
OLD | NEW |