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

Unified Diff: third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js

Issue 2715663005: [DevTools] Add header for OOPIF's elements trees. (Closed)
Patch Set: Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Source/devtools/front_end/elements/elementsPanel.css » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js
diff --git a/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js b/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js
index 124e5b44322a49d12e91e46811030ce480ffb56d..668c593e256b506e39b3e2f74895a3f64d25dc63 100644
--- a/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js
+++ b/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js
@@ -79,7 +79,12 @@ Elements.ElementsPanel = class extends UI.Panel {
/** @type {!Array.<!Elements.ElementsTreeOutline>} */
this._treeOutlines = [];
+ /** @type {!Map<!Elements.ElementsTreeOutline, !Element>} */
+ this._treeOutlineHeaders = new Map();
pfeldman 2017/02/23 23:49:41 Why you no use symbols?
SDK.targetManager.observeTargets(this);
+ SDK.targetManager.addEventListener(
+ SDK.TargetManager.Events.NameChanged,
pfeldman 2017/02/23 23:49:41 What is TargetManager name?
+ event => this._targetNameChanged(/** @type {!SDK.Target} */ (event.data)));
Common.moduleSetting('showUAShadowDOM').addChangeListener(this._showUAShadowDOMChanged.bind(this));
SDK.targetManager.addModelListener(
SDK.DOMModel, SDK.DOMModel.Events.DocumentUpdated, this._documentUpdatedEvent, this);
@@ -217,6 +222,10 @@ Elements.ElementsPanel = class extends UI.Panel {
Elements.ElementsTreeOutline.Events.ElementsTreeUpdated, this._updateBreadcrumbIfNeeded, this);
new Elements.ElementsTreeElementHighlighter(treeOutline);
this._treeOutlines.push(treeOutline);
+ if (target.parentTarget()) {
+ this._treeOutlineHeaders.set(treeOutline, createElementWithClass('div', 'elements-tree-header'));
+ this._targetNameChanged(target);
+ }
// Perform attach if necessary.
if (this.isShowing())
@@ -234,9 +243,31 @@ Elements.ElementsPanel = class extends UI.Panel {
var treeOutline = Elements.ElementsTreeOutline.forDOMModel(domModel);
treeOutline.unwireFromDOMModel();
this._treeOutlines.remove(treeOutline);
+ var header = this._treeOutlineHeaders.get(treeOutline);
+ if (header)
+ header.remove();
+ this._treeOutlineHeaders.delete(treeOutline);
treeOutline.element.remove();
}
+ /**
+ * @param {!SDK.Target} target
+ */
+ _targetNameChanged(target) {
+ var domModel = SDK.DOMModel.fromTarget(target);
+ if (!domModel)
+ return;
+ var treeOutline = Elements.ElementsTreeOutline.forDOMModel(domModel);
+ if (!treeOutline)
+ return;
+ var header = this._treeOutlineHeaders.get(treeOutline);
+ if (!header)
+ return;
+ header.removeChildren();
+ header.createChild('div', 'elements-tree-header-frame').textContent = Common.UIString('Frame');
pfeldman 2017/02/24 19:39:38 You can use .formatLocalized.
+ header.appendChild(Components.Linkifier.linkifyURL(target.inspectedURL(), target.name()));
+ }
+
_updateTreeOutlineVisibleWidth() {
if (!this._treeOutlines.length)
return;
@@ -275,8 +306,12 @@ Elements.ElementsPanel = class extends UI.Panel {
for (var i = 0; i < this._treeOutlines.length; ++i) {
var treeOutline = this._treeOutlines[i];
// Attach heavy component lazily
- if (treeOutline.element.parentElement !== this._contentElement)
+ if (treeOutline.element.parentElement !== this._contentElement) {
+ var header = this._treeOutlineHeaders.get(treeOutline);
+ if (header)
+ this._contentElement.appendChild(header);
this._contentElement.appendChild(treeOutline.element);
+ }
}
super.wasShown();
this._breadcrumbs.update();
@@ -307,6 +342,9 @@ Elements.ElementsPanel = class extends UI.Panel {
treeOutline.setVisible(false);
// Detach heavy component on hide
this._contentElement.removeChild(treeOutline.element);
+ var header = this._treeOutlineHeaders.get(treeOutline);
+ if (header)
+ this._contentElement.removeChild(header);
}
if (this._popoverHelper)
this._popoverHelper.hidePopover();
« no previous file with comments | « no previous file | third_party/WebKit/Source/devtools/front_end/elements/elementsPanel.css » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698