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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sdk/ResourceTreeModel.js

Issue 2773583002: [DevTools] Introduce a sidebar with a drop-down
Patch Set: [DevTools] Introduce a sidebar with a drop-down Created 3 years, 7 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) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 this._fetchResourceTree(); 52 this._fetchResourceTree();
53 53
54 target.registerPageDispatcher(new SDK.PageDispatcher(this)); 54 target.registerPageDispatcher(new SDK.PageDispatcher(this));
55 55
56 this._pendingReloadOptions = null; 56 this._pendingReloadOptions = null;
57 this._reloadSuspensionCount = 0; 57 this._reloadSuspensionCount = 0;
58 this._isInterstitialShowing = false; 58 this._isInterstitialShowing = false;
59 } 59 }
60 60
61 /** 61 /**
62 * @param {!SDK.ResourceTreeFrame} frame
63 * @return {?SDK.ResourceTreeFrame}
64 */
65 static _parentFrameAcrossTargets(frame) {
66 var parentFrame = frame.parentFrame;
67 if (parentFrame)
68 return parentFrame;
69 var parentTarget = frame.resourceTreeModel().target().parentTarget();
70 var otherModel = parentTarget && parentTarget.model(SDK.ResourceTreeModel);
71 if (!otherModel)
72 return null;
73 return otherModel.mainFrame;
74 }
75
76 /**
77 * @param {!SDK.ResourceTreeFrame} frame
78 * @return {!Array<!SDK.ResourceTreeFrame>}
79 */
80 static framePath(frame) {
81 var path = [];
82 var currentFrame = frame;
83 while (currentFrame) {
84 path.push(currentFrame);
85 currentFrame = SDK.ResourceTreeModel._parentFrameAcrossTargets(currentFram e);
86 }
87 return path.reverse();
88 }
89
90 /**
91 * @param {?SDK.ResourceTreeFrame} a
92 * @param {?SDK.ResourceTreeFrame} b
93 * @return {number}
94 */
95 static _frameComparator(a, b) {
96 var framesA = a ? SDK.ResourceTreeModel.framePath(a) : [];
97 var framesB = b ? SDK.ResourceTreeModel.framePath(b) : [];
98 var frameA;
99 var frameB;
100 for (var i = 0;; i++) {
101 if (!framesA[i] || !framesB[i] || (framesA[i] !== framesB[i])) {
102 frameA = framesA[i];
103 frameB = framesB[i];
104 break;
105 }
106 }
107 if (!frameA && frameB)
108 return -1;
109
110 if (!frameB && frameA)
111 return 1;
112
113 if (frameA && frameB)
114 return frameA.id.localeCompare(frameB.id);
115
116 return 0;
117 }
118
119 /**
62 * @return {!Array.<!SDK.ResourceTreeFrame>} 120 * @return {!Array.<!SDK.ResourceTreeFrame>}
63 */ 121 */
64 static frames() { 122 static frames() {
65 var result = []; 123 var result = [];
66 for (var resourceTreeModel of SDK.targetManager.models(SDK.ResourceTreeModel )) 124 for (var resourceTreeModel of SDK.targetManager.models(SDK.ResourceTreeModel ))
67 result = result.concat(resourceTreeModel._frames.valuesArray()); 125 result = result.concat(resourceTreeModel._frames.valuesArray());
126 result.sort(SDK.ResourceTreeModel._frameComparator);
68 return result; 127 return result;
69 } 128 }
70 129
71 /** 130 /**
72 * @param {string} url 131 * @param {string} url
73 * @return {?SDK.Resource} 132 * @return {?SDK.Resource}
74 */ 133 */
75 static resourceForURL(url) { 134 static resourceForURL(url) {
76 for (var resourceTreeModel of SDK.targetManager.models(SDK.ResourceTreeModel )) { 135 for (var resourceTreeModel of SDK.targetManager.models(SDK.ResourceTreeModel )) {
77 var mainFrame = resourceTreeModel.mainFrame; 136 var mainFrame = resourceTreeModel.mainFrame;
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 * @param {string=} data 472 * @param {string=} data
414 */ 473 */
415 function myCallback(protocolError, url, errors, data) { 474 function myCallback(protocolError, url, errors, data) {
416 if (protocolError) { 475 if (protocolError) {
417 callback(url, null, []); 476 callback(url, null, []);
418 return; 477 return;
419 } 478 }
420 callback(url, data || null, errors); 479 callback(url, data || null, errors);
421 } 480 }
422 } 481 }
482
423 /** 483 /**
424 * @param {!SDK.ExecutionContext} a 484 * @param {!SDK.ExecutionContext} a
425 * @param {!SDK.ExecutionContext} b 485 * @param {!SDK.ExecutionContext} b
426 * @return {number} 486 * @return {number}
427 */ 487 */
428 _executionContextComparator(a, b) { 488 _executionContextComparator(a, b) {
429 /**
430 * @param {!SDK.ResourceTreeFrame} frame
431 */
432 function framePath(frame) {
433 var currentFrame = frame;
434 var parents = [];
435 while (currentFrame) {
436 parents.push(currentFrame);
437 currentFrame = currentFrame.parentFrame;
438 }
439 return parents.reverse();
440 }
441
442 if (a.target() !== b.target()) 489 if (a.target() !== b.target())
443 return SDK.ExecutionContext.comparator(a, b); 490 return SDK.ExecutionContext.comparator(a, b);
444 491
445 var framesA = a.frameId ? framePath(this.frameForId(a.frameId)) : []; 492 var frameA = a.frameId ? this.frameForId(a.frameId) : null;
446 var framesB = b.frameId ? framePath(this.frameForId(b.frameId)) : []; 493 var frameB = b.frameId ? this.frameForId(b.frameId) : null;
447 var frameA;
448 var frameB;
449 for (var i = 0;; i++) {
450 if (!framesA[i] || !framesB[i] || (framesA[i] !== framesB[i])) {
451 frameA = framesA[i];
452 frameB = framesB[i];
453 break;
454 }
455 }
456 if (!frameA && frameB)
457 return -1;
458 494
459 if (!frameB && frameA) 495 if (!frameA && !frameB)
460 return 1; 496 return SDK.ExecutionContext.comparator(a, b);
461 497
462 if (frameA && frameB) 498 return SDK.ResourceTreeModel._frameComparator(frameA, frameB);
463 return frameA.id.localeCompare(frameB.id);
464
465 return SDK.ExecutionContext.comparator(a, b);
466 } 499 }
467 500
468 _updateSecurityOrigins() { 501 _updateSecurityOrigins() {
469 var securityOrigins = new Set(); 502 var securityOrigins = new Set();
470 var mainSecurityOrigin = null; 503 var mainSecurityOrigin = null;
471 for (var frame of this._frames.values()) { 504 for (var frame of this._frames.values()) {
472 var origin = frame.securityOrigin; 505 var origin = frame.securityOrigin;
473 if (!origin) 506 if (!origin)
474 continue; 507 continue;
475 securityOrigins.add(origin); 508 securityOrigins.add(origin);
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
884 this._resourceTreeModel.dispatchEventToListeners(SDK.ResourceTreeModel.Event s.InterstitialHidden); 917 this._resourceTreeModel.dispatchEventToListeners(SDK.ResourceTreeModel.Event s.InterstitialHidden);
885 } 918 }
886 919
887 /** 920 /**
888 * @override 921 * @override
889 */ 922 */
890 navigationRequested() { 923 navigationRequested() {
891 // Frontend is not interested in when navigations are requested. 924 // Frontend is not interested in when navigations are requested.
892 } 925 }
893 }; 926 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698