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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sources/ThreadsSidebarPane.js

Issue 2383743003: [DevTools] Auto-attach to cross-process subframes under experiment. (Closed)
Patch Set: some ui Created 4 years, 2 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
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/sources/NavigatorView.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @constructor 6 * @constructor
7 * @extends {WebInspector.VBox} 7 * @extends {WebInspector.VBox}
8 * @implements {WebInspector.TargetManager.Observer} 8 * @implements {WebInspector.TargetManager.Observer}
9 */ 9 */
10 WebInspector.ThreadsSidebarPane = function() 10 WebInspector.ThreadsSidebarPane = function()
11 { 11 {
12 WebInspector.VBox.call(this); 12 WebInspector.VBox.call(this);
13 13
14 /** @type {!Map.<!WebInspector.DebuggerModel, !WebInspector.UIList.Item>} */ 14 /** @type {!Map.<!WebInspector.DebuggerModel, !WebInspector.UIList.Item>} */
15 this._debuggerModelToListItems = new Map(); 15 this._debuggerModelToListItems = new Map();
16 /** @type {!Map.<!WebInspector.UIList.Item, !WebInspector.Target>} */ 16 /** @type {!Map.<!WebInspector.UIList.Item, !WebInspector.Target>} */
17 this._listItemsToTargets = new Map(); 17 this._listItemsToTargets = new Map();
18 /** @type {?WebInspector.UIList.Item} */ 18 /** @type {?WebInspector.UIList.Item} */
19 this._selectedListItem = null; 19 this._selectedListItem = null;
20 this.threadList = new WebInspector.UIList(); 20 this.threadList = new WebInspector.UIList();
21 this.threadList.show(this.element); 21 this.threadList.show(this.element);
22 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.DebuggerPaused, this._onDebuggerStateChanged, this ); 22 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.DebuggerPaused, this._onDebuggerStateChanged, this );
23 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.DebuggerResumed, this._onDebuggerStateChanged, thi s); 23 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.DebuggerResumed, this._onDebuggerStateChanged, thi s);
24 WebInspector.targetManager.addModelListener(WebInspector.RuntimeModel, WebIn spector.RuntimeModel.Events.ExecutionContextChanged, this._onExecutionContextCha nged, this); 24 WebInspector.targetManager.addModelListener(WebInspector.RuntimeModel, WebIn spector.RuntimeModel.Events.ExecutionContextChanged, this._onExecutionContextCha nged, this);
25 WebInspector.context.addFlavorChangeListener(WebInspector.Target, this._targ etChanged, this); 25 WebInspector.context.addFlavorChangeListener(WebInspector.Target, this._targ etChanged, this);
26 WebInspector.targetManager.addEventListener(WebInspector.TargetManager.Event s.NameChanged, this._targetNameChanged, this);
26 WebInspector.targetManager.observeTargets(this); 27 WebInspector.targetManager.observeTargets(this);
27 } 28 }
28 29
29 WebInspector.ThreadsSidebarPane.prototype = { 30 WebInspector.ThreadsSidebarPane.prototype = {
30 /** 31 /**
31 * @override 32 * @override
32 * @param {!WebInspector.Target} target 33 * @param {!WebInspector.Target} target
33 */ 34 */
34 targetAdded: function(target) 35 targetAdded: function(target)
35 { 36 {
36 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target) 37 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target);
37 if (!debuggerModel) 38 if (!debuggerModel)
38 return; 39 return;
39 40
40 var executionContext = target.runtimeModel.defaultExecutionContext(); 41 var listItem = new WebInspector.UIList.Item(this._titleForTarget(target) , "");
41 var label = executionContext && executionContext.label() ? executionCont ext.label() : target.name();
42 var listItem = new WebInspector.UIList.Item(label, "");
43 listItem.element.addEventListener("click", this._onListItemClick.bind(th is, listItem), false); 42 listItem.element.addEventListener("click", this._onListItemClick.bind(th is, listItem), false);
44 var currentTarget = WebInspector.context.flavor(WebInspector.Target); 43 var currentTarget = WebInspector.context.flavor(WebInspector.Target);
45 if (currentTarget === target) 44 if (currentTarget === target)
46 this._selectListItem(listItem); 45 this._selectListItem(listItem);
47 46
48 this._debuggerModelToListItems.set(debuggerModel, listItem); 47 this._debuggerModelToListItems.set(debuggerModel, listItem);
49 this._listItemsToTargets.set(listItem, target); 48 this._listItemsToTargets.set(listItem, target);
50 this.threadList.addItem(listItem); 49 this.threadList.addItem(listItem);
51 this._updateDebuggerState(debuggerModel); 50 this._updateDebuggerState(debuggerModel);
52 }, 51 },
53 52
54 /** 53 /**
55 * @override 54 * @override
56 * @param {!WebInspector.Target} target 55 * @param {!WebInspector.Target} target
57 */ 56 */
58 targetRemoved: function(target) 57 targetRemoved: function(target)
59 { 58 {
60 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target) 59 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target);
61 if (!debuggerModel) 60 if (!debuggerModel)
62 return; 61 return;
63 var listItem = this._debuggerModelToListItems.remove(debuggerModel); 62 var listItem = this._debuggerModelToListItems.remove(debuggerModel);
64 if (listItem) { 63 if (listItem) {
65 this._listItemsToTargets.remove(listItem); 64 this._listItemsToTargets.remove(listItem);
66 this.threadList.removeItem(listItem); 65 this.threadList.removeItem(listItem);
67 } 66 }
68 }, 67 },
69 68
70 /** 69 /**
71 * @param {!WebInspector.Event} event 70 * @param {!WebInspector.Event} event
72 */ 71 */
72 _targetNameChanged: function(event)
73 {
74 var target = /** @type {!WebInspector.Target} */ (event.data);
75 var listItem = this._listItemForTarget(target);
76 if (listItem)
77 listItem.setTitle(this._titleForTarget(target));
78 },
79
80 /**
81 * @param {!WebInspector.Event} event
82 */
73 _targetChanged: function(event) 83 _targetChanged: function(event)
74 { 84 {
75 var newTarget = /** @type {!WebInspector.Target} */(event.data); 85 var listItem = this._listItemForTarget(/** @type {!WebInspector.Target} */ (event.data));
76 var debuggerModel = WebInspector.DebuggerModel.fromTarget(newTarget) 86 if (listItem)
77 if (!debuggerModel) 87 this._selectListItem(listItem);
78 return;
79 var listItem = /** @type {!WebInspector.UIList.Item} */ (this._debugger ModelToListItems.get(debuggerModel));
80 this._selectListItem(listItem);
81 }, 88 },
82 89
83 /** 90 /**
91 * @param {!WebInspector.Target} target
92 * @return {?WebInspector.UIList.Item}
93 */
94 _listItemForTarget: function(target)
95 {
96 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target);
97 if (!debuggerModel)
98 return null;
99 return this._debuggerModelToListItems.get(debuggerModel) || null;
100 },
101
102 /**
103 * @param {!WebInspector.Target} target
104 * @return {string}
105 */
106 _titleForTarget: function(target)
107 {
108 var executionContext = target.runtimeModel.defaultExecutionContext();
109 return executionContext && executionContext.label() ? executionContext.l abel() : target.name();
110 },
111
112 /**
84 * @param {!WebInspector.Event} event 113 * @param {!WebInspector.Event} event
85 */ 114 */
86 _onDebuggerStateChanged: function(event) 115 _onDebuggerStateChanged: function(event)
87 { 116 {
88 var debuggerModel = /** @type {!WebInspector.DebuggerModel} */ (event.ta rget); 117 var debuggerModel = /** @type {!WebInspector.DebuggerModel} */ (event.ta rget);
89 this._updateDebuggerState(debuggerModel); 118 this._updateDebuggerState(debuggerModel);
90 }, 119 },
91 120
92 /** 121 /**
93 * @param {!WebInspector.Event} event 122 * @param {!WebInspector.Event} event
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 */ 161 */
133 _onListItemClick: function(listItem) 162 _onListItemClick: function(listItem)
134 { 163 {
135 WebInspector.context.setFlavor(WebInspector.Target, this._listItemsToTar gets.get(listItem)); 164 WebInspector.context.setFlavor(WebInspector.Target, this._listItemsToTar gets.get(listItem));
136 listItem.element.scrollIntoViewIfNeeded(); 165 listItem.element.scrollIntoViewIfNeeded();
137 }, 166 },
138 167
139 168
140 __proto__: WebInspector.VBox.prototype 169 __proto__: WebInspector.VBox.prototype
141 } 170 }
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/sources/NavigatorView.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698