| 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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 if (resourceTreeModel) { | 80 if (resourceTreeModel) { |
| 81 this._eventListeners.push( | 81 this._eventListeners.push( |
| 82 resourceTreeModel.addEventListener(SDK.ResourceTreeModel.Events.Resour
ceAdded, this._resourceAdded, this), | 82 resourceTreeModel.addEventListener(SDK.ResourceTreeModel.Events.Resour
ceAdded, this._resourceAdded, this), |
| 83 resourceTreeModel.addEventListener( | 83 resourceTreeModel.addEventListener( |
| 84 SDK.ResourceTreeModel.Events.FrameWillNavigate, this._frameWillNav
igate, this), | 84 SDK.ResourceTreeModel.Events.FrameWillNavigate, this._frameWillNav
igate, this), |
| 85 resourceTreeModel.addEventListener( | 85 resourceTreeModel.addEventListener( |
| 86 SDK.ResourceTreeModel.Events.MainFrameNavigated, this._mainFrameNa
vigated, this), | 86 SDK.ResourceTreeModel.Events.MainFrameNavigated, this._mainFrameNa
vigated, this), |
| 87 resourceTreeModel.addEventListener(SDK.ResourceTreeModel.Events.FrameD
etached, this._frameDetached, this)); | 87 resourceTreeModel.addEventListener(SDK.ResourceTreeModel.Events.FrameD
etached, this._frameDetached, this)); |
| 88 } | 88 } |
| 89 | 89 |
| 90 var debuggerModel = target.model(SDK.DebuggerModel); | 90 this._debuggerModel = target.model(SDK.DebuggerModel); |
| 91 if (debuggerModel) { | 91 if (this._debuggerModel) { |
| 92 var runtimeModel = this._debuggerModel.runtimeModel(); |
| 92 this._eventListeners.push( | 93 this._eventListeners.push( |
| 93 debuggerModel.addEventListener(SDK.DebuggerModel.Events.ParsedScriptSo
urce, this._parsedScriptSource, this), | 94 runtimeModel.addEventListener( |
| 94 debuggerModel.addEventListener( | 95 SDK.RuntimeModel.Events.ExecutionContextDestroyed, this._execution
ContextDestroyed, this), |
| 96 this._debuggerModel.addEventListener( |
| 97 SDK.DebuggerModel.Events.ParsedScriptSource, this._parsedScriptSou
rce, this), |
| 98 this._debuggerModel.addEventListener( |
| 95 SDK.DebuggerModel.Events.FailedToParseScriptSource, this._parsedSc
riptSource, this)); | 99 SDK.DebuggerModel.Events.FailedToParseScriptSource, this._parsedSc
riptSource, this)); |
| 96 } | 100 } |
| 97 var cssModel = target.model(SDK.CSSModel); | 101 var cssModel = target.model(SDK.CSSModel); |
| 98 if (cssModel) { | 102 if (cssModel) { |
| 99 this._eventListeners.push( | 103 this._eventListeners.push( |
| 100 cssModel.addEventListener(SDK.CSSModel.Events.StyleSheetAdded, this._s
tyleSheetAdded, this), | 104 cssModel.addEventListener(SDK.CSSModel.Events.StyleSheetAdded, this._s
tyleSheetAdded, this), |
| 101 cssModel.addEventListener(SDK.CSSModel.Events.StyleSheetRemoved, this.
_styleSheetRemoved, this)); | 105 cssModel.addEventListener(SDK.CSSModel.Events.StyleSheetRemoved, this.
_styleSheetRemoved, this)); |
| 102 } | 106 } |
| 103 this._eventListeners.push(target.targetManager().addEventListener( | 107 this._eventListeners.push(target.targetManager().addEventListener( |
| 104 SDK.TargetManager.Events.SuspendStateChanged, this._suspendStateChanged,
this)); | 108 SDK.TargetManager.Events.SuspendStateChanged, this._suspendStateChanged,
this)); |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 * @param {!Workspace.UISourceCode} uiSourceCode | 247 * @param {!Workspace.UISourceCode} uiSourceCode |
| 244 * @param {!Common.ContentProvider} contentProvider | 248 * @param {!Common.ContentProvider} contentProvider |
| 245 * @param {?Workspace.UISourceCodeMetadata} metadata | 249 * @param {?Workspace.UISourceCodeMetadata} metadata |
| 246 */ | 250 */ |
| 247 _addUISourceCodeWithProvider(uiSourceCode, contentProvider, metadata) { | 251 _addUISourceCodeWithProvider(uiSourceCode, contentProvider, metadata) { |
| 248 /** @type {!Bindings.ContentProviderBasedProject} */ (uiSourceCode.project()
) | 252 /** @type {!Bindings.ContentProviderBasedProject} */ (uiSourceCode.project()
) |
| 249 .addUISourceCodeWithProvider(uiSourceCode, contentProvider, metadata); | 253 .addUISourceCodeWithProvider(uiSourceCode, contentProvider, metadata); |
| 250 } | 254 } |
| 251 | 255 |
| 252 /** | 256 /** |
| 257 * @param {!SDK.Script} script |
| 258 * @return {boolean} |
| 259 */ |
| 260 _acceptsScript(script) { |
| 261 if (!script.sourceURL || script.isLiveEdit() || (script.isInlineScript() &&
!script.hasSourceURL)) |
| 262 return false; |
| 263 // Filter out embedder injected content scripts. |
| 264 if (script.isContentScript() && !script.hasSourceURL) { |
| 265 var parsedURL = new Common.ParsedURL(script.sourceURL); |
| 266 if (!parsedURL.isValid) |
| 267 return false; |
| 268 } |
| 269 return true; |
| 270 } |
| 271 |
| 272 /** |
| 253 * @param {!Common.Event} event | 273 * @param {!Common.Event} event |
| 254 */ | 274 */ |
| 255 _parsedScriptSource(event) { | 275 _parsedScriptSource(event) { |
| 256 var script = /** @type {!SDK.Script} */ (event.data); | 276 var script = /** @type {!SDK.Script} */ (event.data); |
| 257 if (!script.sourceURL || script.isLiveEdit() || (script.isInlineScript() &&
!script.hasSourceURL)) | 277 if (!this._acceptsScript(script)) |
| 258 return; | 278 return; |
| 259 // Filter out embedder injected content scripts. | |
| 260 if (script.isContentScript() && !script.hasSourceURL) { | |
| 261 var parsedURL = new Common.ParsedURL(script.sourceURL); | |
| 262 if (!parsedURL.isValid) | |
| 263 return; | |
| 264 } | |
| 265 var originalContentProvider = script.originalContentProvider(); | 279 var originalContentProvider = script.originalContentProvider(); |
| 266 var executionContext = script.executionContext(); | 280 var executionContext = script.executionContext(); |
| 267 var frameId = executionContext ? executionContext.frameId || '' : ''; | 281 var frameId = executionContext ? executionContext.frameId || '' : ''; |
| 282 script[Bindings.NetworkProject._frameIdSymbol] = frameId; |
| 268 var uiSourceCode = this._createFile(originalContentProvider, frameId, script
.isContentScript()); | 283 var uiSourceCode = this._createFile(originalContentProvider, frameId, script
.isContentScript()); |
| 269 uiSourceCode[Bindings.NetworkProject._scriptSymbol] = script; | 284 uiSourceCode[Bindings.NetworkProject._scriptSymbol] = script; |
| 270 var resource = SDK.ResourceTreeModel.resourceForURL(uiSourceCode.url()); | 285 var resource = SDK.ResourceTreeModel.resourceForURL(uiSourceCode.url()); |
| 271 this._addUISourceCodeWithProvider(uiSourceCode, originalContentProvider, thi
s._resourceMetadata(resource)); | 286 this._addUISourceCodeWithProvider(uiSourceCode, originalContentProvider, thi
s._resourceMetadata(resource)); |
| 272 } | 287 } |
| 273 | 288 |
| 274 /** | 289 /** |
| 275 * @param {!Common.Event} event | 290 * @param {!Common.Event} event |
| 276 */ | 291 */ |
| 292 _executionContextDestroyed(event) { |
| 293 var executionContext = /** @type {!SDK.ExecutionContext} */ (event.data); |
| 294 var scripts = this._debuggerModel.scriptsForExecutionContext(executionContex
t); |
| 295 for (var script of scripts) { |
| 296 if (!this._acceptsScript(script)) |
| 297 continue; |
| 298 var frameId = script[Bindings.NetworkProject._frameIdSymbol]; |
| 299 this._removeFileForURL(script.contentURL(), frameId, script.isContentScrip
t()); |
| 300 } |
| 301 } |
| 302 |
| 303 /** |
| 304 * @param {!SDK.CSSStyleSheetHeader} header |
| 305 */ |
| 306 _acceptsHeader(header) { |
| 307 if (header.isInline && !header.hasSourceURL && header.origin !== 'inspector'
) |
| 308 return false; |
| 309 if (!header.resourceURL()) |
| 310 return false; |
| 311 return true; |
| 312 } |
| 313 |
| 314 /** |
| 315 * @param {!Common.Event} event |
| 316 */ |
| 277 _styleSheetAdded(event) { | 317 _styleSheetAdded(event) { |
| 278 var header = /** @type {!SDK.CSSStyleSheetHeader} */ (event.data); | 318 var header = /** @type {!SDK.CSSStyleSheetHeader} */ (event.data); |
| 279 if (header.isInline && !header.hasSourceURL && header.origin !== 'inspector'
) | 319 if (!this._acceptsHeader(header)) |
| 280 return; | |
| 281 if (!header.resourceURL()) | |
| 282 return; | 320 return; |
| 283 | 321 |
| 284 var originalContentProvider = header.originalContentProvider(); | 322 var originalContentProvider = header.originalContentProvider(); |
| 285 var uiSourceCode = this._createFile(originalContentProvider, header.frameId,
false); | 323 var uiSourceCode = this._createFile(originalContentProvider, header.frameId,
false); |
| 286 uiSourceCode[Bindings.NetworkProject._styleSheetSymbol] = header; | 324 uiSourceCode[Bindings.NetworkProject._styleSheetSymbol] = header; |
| 287 var resource = SDK.ResourceTreeModel.resourceForURL(uiSourceCode.url()); | 325 var resource = SDK.ResourceTreeModel.resourceForURL(uiSourceCode.url()); |
| 288 this._addUISourceCodeWithProvider(uiSourceCode, originalContentProvider, thi
s._resourceMetadata(resource)); | 326 this._addUISourceCodeWithProvider(uiSourceCode, originalContentProvider, thi
s._resourceMetadata(resource)); |
| 289 } | 327 } |
| 290 | 328 |
| 291 /** | 329 /** |
| 292 * @param {!Common.Event} event | 330 * @param {!Common.Event} event |
| 293 */ | 331 */ |
| 294 _styleSheetRemoved(event) { | 332 _styleSheetRemoved(event) { |
| 295 var header = /** @type {!SDK.CSSStyleSheetHeader} */ (event.data); | 333 var header = /** @type {!SDK.CSSStyleSheetHeader} */ (event.data); |
| 296 if (header.isInline && !header.hasSourceURL && header.origin !== 'inspector'
) | 334 if (!this._acceptsHeader(header)) |
| 297 return; | 335 return; |
| 298 | |
| 299 this._removeFileForURL(header.resourceURL(), header.frameId, false); | 336 this._removeFileForURL(header.resourceURL(), header.frameId, false); |
| 300 } | 337 } |
| 301 | 338 |
| 302 /** | 339 /** |
| 303 * @param {!Common.Event} event | 340 * @param {!Common.Event} event |
| 304 */ | 341 */ |
| 305 _resourceAdded(event) { | 342 _resourceAdded(event) { |
| 306 var resource = /** @type {!SDK.Resource} */ (event.data); | 343 var resource = /** @type {!SDK.Resource} */ (event.data); |
| 307 this._addResource(resource); | 344 this._addResource(resource); |
| 308 } | 345 } |
| 309 | 346 |
| 310 /** | 347 /** |
| 311 * @param {!SDK.Resource} resource | 348 * @param {!SDK.Resource} resource |
| 312 */ | 349 */ |
| 313 _addResource(resource) { | 350 _addResource(resource) { |
| 314 var resourceType = resource.resourceType(); | 351 var resourceType = resource.resourceType(); |
| 315 // Only load selected resource types from resources. | 352 // Only load selected resource types from resources. |
| 316 if (resourceType !== Common.resourceTypes.Image && resourceType !== Common.r
esourceTypes.Font && | 353 if (resourceType !== Common.resourceTypes.Image && resourceType !== Common.r
esourceTypes.Font && |
| 317 resourceType !== Common.resourceTypes.Document && resourceType !== Commo
n.resourceTypes.Manifest) | 354 resourceType !== Common.resourceTypes.Document && resourceType !== Commo
n.resourceTypes.Manifest) |
| 318 return; | 355 return; |
| 319 | 356 |
| 320 | |
| 321 // Ignore non-images and non-fonts. | 357 // Ignore non-images and non-fonts. |
| 322 if (resourceType === Common.resourceTypes.Image && resource.mimeType && !res
ource.mimeType.startsWith('image')) | 358 if (resourceType === Common.resourceTypes.Image && resource.mimeType && !res
ource.mimeType.startsWith('image')) |
| 323 return; | 359 return; |
| 324 if (resourceType === Common.resourceTypes.Font && resource.mimeType && !reso
urce.mimeType.includes('font')) | 360 if (resourceType === Common.resourceTypes.Font && resource.mimeType && !reso
urce.mimeType.includes('font')) |
| 325 return; | 361 return; |
| 326 if ((resourceType === Common.resourceTypes.Image || resourceType === Common.
resourceTypes.Font) && | 362 if ((resourceType === Common.resourceTypes.Image || resourceType === Common.
resourceTypes.Font) && |
| 327 resource.contentURL().startsWith('data:')) | 363 resource.contentURL().startsWith('data:')) |
| 328 return; | 364 return; |
| 329 | 365 |
| 330 // Never load document twice. | 366 // Never load document twice. |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 441 Bindings.NetworkProject.projectId(header.cssModel().target(), header.fra
meId, false), url); | 477 Bindings.NetworkProject.projectId(header.cssModel().target(), header.fra
meId, false), url); |
| 442 } | 478 } |
| 443 }; | 479 }; |
| 444 | 480 |
| 445 Bindings.NetworkProject._networkProjectSymbol = Symbol('networkProject'); | 481 Bindings.NetworkProject._networkProjectSymbol = Symbol('networkProject'); |
| 446 Bindings.NetworkProject._resourceSymbol = Symbol('resource'); | 482 Bindings.NetworkProject._resourceSymbol = Symbol('resource'); |
| 447 Bindings.NetworkProject._scriptSymbol = Symbol('script'); | 483 Bindings.NetworkProject._scriptSymbol = Symbol('script'); |
| 448 Bindings.NetworkProject._styleSheetSymbol = Symbol('styleSheet'); | 484 Bindings.NetworkProject._styleSheetSymbol = Symbol('styleSheet'); |
| 449 Bindings.NetworkProject._targetSymbol = Symbol('target'); | 485 Bindings.NetworkProject._targetSymbol = Symbol('target'); |
| 450 Bindings.NetworkProject._frameSymbol = Symbol('frame'); | 486 Bindings.NetworkProject._frameSymbol = Symbol('frame'); |
| 487 Bindings.NetworkProject._frameIdSymbol = Symbol('frameid'); |
| OLD | NEW |