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

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

Issue 1238103002: [DevTools] Do not report edited resources via Page.getResourceContent. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fixed comment Created 5 years, 5 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 | Annotate | Revision Log
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 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 */ 149 */
150 WebInspector.NetworkProject = function(target, workspace, networkMapping) 150 WebInspector.NetworkProject = function(target, workspace, networkMapping)
151 { 151 {
152 WebInspector.SDKObject.call(this, target); 152 WebInspector.SDKObject.call(this, target);
153 this._workspace = workspace; 153 this._workspace = workspace;
154 this._networkMapping = networkMapping; 154 this._networkMapping = networkMapping;
155 this._projectDelegates = {}; 155 this._projectDelegates = {};
156 this._processedURLs = {}; 156 this._processedURLs = {};
157 target[WebInspector.NetworkProject._networkProjectSymbol] = this; 157 target[WebInspector.NetworkProject._networkProjectSymbol] = this;
158 158
159 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Eve ntTypes.ResourceAdded, this._resourceAdded, this);
160 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Eve ntTypes.MainFrameNavigated, this._mainFrameNavigated, this); 159 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Eve ntTypes.MainFrameNavigated, this._mainFrameNavigated, this);
161 160
162 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); 161 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target);
163 if (debuggerModel) { 162 if (debuggerModel) {
164 debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ParsedS criptSource, this._parsedScriptSource, this); 163 debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ParsedS criptSource, this._parsedScriptSource, this);
165 debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.FailedT oParseScriptSource, this._parsedScriptSource, this); 164 debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.FailedT oParseScriptSource, this._parsedScriptSource, this);
166 } 165 }
167 var cssModel = WebInspector.CSSStyleModel.fromTarget(target); 166 var cssModel = WebInspector.CSSStyleModel.fromTarget(target);
168 if (cssModel) { 167 if (cssModel) {
169 cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetAd ded, this._styleSheetAdded, this); 168 cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetAd ded, this._styleSheetAdded, this);
170 cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetRe moved, this._styleSheetRemoved, this); 169 cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetRe moved, this._styleSheetRemoved, this);
171 } 170 }
171
172 if (debuggerModel && !debuggerModel.debuggerEnabled())
pfeldman 2015/07/24 16:50:51 Alright, so what you are doing here is you start l
173 debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.Debugge rWasEnabled, this._debuggerEnabled, this);
174 else
175 this._debuggerEnabled();
172 } 176 }
173 177
174 WebInspector.NetworkProject._networkProjectSymbol = Symbol("networkProject"); 178 WebInspector.NetworkProject._networkProjectSymbol = Symbol("networkProject");
175 WebInspector.NetworkProject._contentTypeSymbol = Symbol("networkContentType"); 179 WebInspector.NetworkProject._contentTypeSymbol = Symbol("networkContentType");
176 180
177 /** 181 /**
178 * @param {!WebInspector.Target} target 182 * @param {!WebInspector.Target} target
179 * @param {string} projectURL 183 * @param {string} projectURL
180 * @param {boolean} isContentScripts 184 * @param {boolean} isContentScripts
181 * @return {string} 185 * @return {string}
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 */ 271 */
268 _removeFileForURL: function(url) 272 _removeFileForURL: function(url)
269 { 273 {
270 var splitURL = WebInspector.ParsedURL.splitURLIntoPathComponents(url); 274 var splitURL = WebInspector.ParsedURL.splitURLIntoPathComponents(url);
271 var projectURL = splitURL[0]; 275 var projectURL = splitURL[0];
272 var path = splitURL.slice(1).join("/"); 276 var path = splitURL.slice(1).join("/");
273 var projectDelegate = this._projectDelegates[WebInspector.NetworkProject .projectId(this.target(), projectURL, false)]; 277 var projectDelegate = this._projectDelegates[WebInspector.NetworkProject .projectId(this.target(), projectURL, false)];
274 projectDelegate.removeFile(path); 278 projectDelegate.removeFile(path);
275 }, 279 },
276 280
281 _debuggerEnabled: function()
282 {
283 var debuggerModel = WebInspector.DebuggerModel.fromTarget(this.target()) ;
284 if (debuggerModel)
285 debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events. DebuggerWasEnabled, this._debuggerEnabled, this);
286 this._populate();
287 this.target().resourceTreeModel.addEventListener(WebInspector.ResourceTr eeModel.EventTypes.ResourceAdded, this._resourceAdded, this);
288 },
289
277 _populate: function() 290 _populate: function()
278 { 291 {
279 /** 292 /**
280 * @param {!WebInspector.ResourceTreeFrame} frame 293 * @param {!WebInspector.ResourceTreeFrame} frame
281 * @this {WebInspector.NetworkProject} 294 * @this {WebInspector.NetworkProject}
282 */ 295 */
283 function populateFrame(frame) 296 function populateFrame(frame)
284 { 297 {
285 for (var i = 0; i < frame.childFrames.length; ++i) 298 for (var i = 0; i < frame.childFrames.length; ++i)
286 populateFrame.call(this, frame.childFrames[i]); 299 populateFrame.call(this, frame.childFrames[i]);
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 }, 399 },
387 400
388 _dispose: function() 401 _dispose: function()
389 { 402 {
390 this._reset(); 403 this._reset();
391 var target = this.target(); 404 var target = this.target();
392 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeMo del.EventTypes.ResourceAdded, this._resourceAdded, this); 405 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeMo del.EventTypes.ResourceAdded, this._resourceAdded, this);
393 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeMo del.EventTypes.MainFrameNavigated, this._mainFrameNavigated, this); 406 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeMo del.EventTypes.MainFrameNavigated, this._mainFrameNavigated, this);
394 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); 407 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target);
395 if (debuggerModel) { 408 if (debuggerModel) {
409 debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events. DebuggerWasEnabled, this._debuggerEnabled, this);
396 debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events. ParsedScriptSource, this._parsedScriptSource, this); 410 debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events. ParsedScriptSource, this._parsedScriptSource, this);
397 debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events. FailedToParseScriptSource, this._parsedScriptSource, this); 411 debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events. FailedToParseScriptSource, this._parsedScriptSource, this);
398 } 412 }
399 var cssModel = WebInspector.CSSStyleModel.fromTarget(target); 413 var cssModel = WebInspector.CSSStyleModel.fromTarget(target);
400 if (cssModel) { 414 if (cssModel) {
401 cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.Style SheetAdded, this._styleSheetAdded, this); 415 cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.Style SheetAdded, this._styleSheetAdded, this);
402 cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.Style SheetRemoved, this._styleSheetRemoved, this); 416 cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.Style SheetRemoved, this._styleSheetRemoved, this);
403 } 417 }
404 }, 418 },
405 419
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 return this._resource.resourceType(); 458 return this._resource.resourceType();
445 }, 459 },
446 460
447 /** 461 /**
448 * @override 462 * @override
449 * @param {function(?string)} callback 463 * @param {function(?string)} callback
450 */ 464 */
451 requestContent: function(callback) 465 requestContent: function(callback)
452 { 466 {
453 /** 467 /**
454 * @this {WebInspector.NetworkProject.FallbackResource} 468 * @param {!WebInspector.Target} target
469 * @param {string} url
470 * @return {!Array.<!WebInspector.Script>}
455 */ 471 */
456 function loadFallbackContent() 472 function findScripts(target, url)
457 { 473 {
458 var debuggerModel = WebInspector.DebuggerModel.fromTarget(this._reso urce.target()); 474 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target);
459 if (!debuggerModel) { 475 return debuggerModel ? debuggerModel.scriptsForSourceURL(url) : [];
460 callback(null);
461 return;
462 }
463 var scripts = debuggerModel.scriptsForSourceURL(this._resource.url);
464 if (!scripts.length) {
465 callback(null);
466 return;
467 }
468
469 var contentProvider;
470 var type = this._resource.resourceType();
471 if (type === WebInspector.resourceTypes.Document)
472 contentProvider = new WebInspector.ConcatenatedScriptsContentPro vider(scripts);
473 else if (type === WebInspector.resourceTypes.Script)
474 contentProvider = scripts[0];
475
476 console.assert(contentProvider, "Resource content request failed. " + this._resource.url);
477
478 contentProvider.requestContent(callback);
479 } 476 }
480 477
481 /** 478 /**
482 * @param {?string} content 479 * @param {?string} content
483 * @this {WebInspector.NetworkProject.FallbackResource} 480 * @this {WebInspector.NetworkProject.FallbackResource}
484 */ 481 */
485 function requestContentLoaded(content) 482 function loadFallbackContent(content)
486 { 483 {
487 if (content) 484 if (content) {
488 callback(content) 485 callback(content);
sergeyv 2015/07/20 08:40:58 Looks like you are going to have a stale content f
sergeyv 2015/07/20 08:45:55 Sorry, I mixed up brackets. That's not correct
486 return;
487 }
488
489 if (this._resource.resourceType() !== WebInspector.resourceTypes.Doc ument) {
490 callback(null);
491 return;
492 }
493
494 var scripts = findScripts(this._resource.target(), this._resource.ur l);
495 if (scripts.length)
496 new WebInspector.ConcatenatedScriptsContentProvider(scripts).req uestContent(callback);
489 else 497 else
490 loadFallbackContent.call(this); 498 callback(null);
491 } 499 }
492 500
493 this._resource.requestContent(requestContentLoaded.bind(this)); 501 if (this._resource.resourceType() === WebInspector.resourceTypes.Script) {
502 var scripts = findScripts(this._resource.target(), this._resource.ur l);
503 if (scripts.length) {
504 scripts[0].requestContent(callback);
505 return;
506 }
507 }
508
509 this._resource.requestContent(loadFallbackContent.bind(this));
494 }, 510 },
495 511
496 /** 512 /**
497 * @override 513 * @override
498 * @param {string} query 514 * @param {string} query
499 * @param {boolean} caseSensitive 515 * @param {boolean} caseSensitive
500 * @param {boolean} isRegex 516 * @param {boolean} isRegex
501 * @param {function(!Array.<!WebInspector.ContentProvider.SearchMatch>)} cal lback 517 * @param {function(!Array.<!WebInspector.ContentProvider.SearchMatch>)} cal lback
502 */ 518 */
503 searchInContent: function(query, caseSensitive, isRegex, callback) 519 searchInContent: function(query, caseSensitive, isRegex, callback)
(...skipping 13 matching lines...) Expand all
517 } 533 }
518 534
519 if (this.contentType() === WebInspector.resourceTypes.Document) { 535 if (this.contentType() === WebInspector.resourceTypes.Document) {
520 this.requestContent(documentContentLoaded); 536 this.requestContent(documentContentLoaded);
521 return; 537 return;
522 } 538 }
523 539
524 this._resource.searchInContent(query, caseSensitive, isRegex, callback); 540 this._resource.searchInContent(query, caseSensitive, isRegex, callback);
525 } 541 }
526 } 542 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698