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

Unified Diff: third_party/WebKit/Source/devtools/front_end/profiler/ProfilesPanel.js

Issue 2335983002: [DevTools] Remove SidebarTreeElement from ProfilesPanel. (Closed)
Patch Set: rebased Created 4 years, 3 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 | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/devtools/front_end/profiler/ProfilesPanel.js
diff --git a/third_party/WebKit/Source/devtools/front_end/profiler/ProfilesPanel.js b/third_party/WebKit/Source/devtools/front_end/profiler/ProfilesPanel.js
index 13d942d5d5da8dbf1370bb1471f3fff521330d4d..45d1e31ab4fd19a5ad415c83a39fc3f6947b13bc 100644
--- a/third_party/WebKit/Source/devtools/front_end/profiler/ProfilesPanel.js
+++ b/third_party/WebKit/Source/devtools/front_end/profiler/ProfilesPanel.js
@@ -936,16 +936,19 @@ WebInspector.ProfilesPanel.prototype = {
/**
* @constructor
- * @extends {WebInspector.SidebarSectionTreeElement}
+ * @extends {TreeElement}
* @param {!WebInspector.ProfileType.DataDisplayDelegate} dataDisplayDelegate
* @param {!WebInspector.ProfileType} profileType
*/
WebInspector.ProfileTypeSidebarSection = function(dataDisplayDelegate, profileType)
{
- WebInspector.SidebarSectionTreeElement.call(this, profileType.treeItemTitle);
+ TreeElement.call(this, profileType.treeItemTitle.escapeHTML(), true);
this._dataDisplayDelegate = dataDisplayDelegate;
+ /** @type {!Array<!WebInspector.ProfileSidebarTreeElement>} */
this._profileTreeElements = [];
+ /** @type {!Object<string, !WebInspector.ProfileTypeSidebarSection.ProfileGroup>} */
this._profileGroups = {};
+ this.expand();
this.hidden = true;
}
@@ -954,7 +957,9 @@ WebInspector.ProfileTypeSidebarSection = function(dataDisplayDelegate, profileTy
*/
WebInspector.ProfileTypeSidebarSection.ProfileGroup = function()
{
+ /** @type {!Array<!WebInspector.ProfileSidebarTreeElement>} */
this.profileSidebarTreeElements = [];
+ /** @type {?WebInspector.ProfileGroupSidebarTreeElement} */
this.sidebarTreeElement = null;
}
@@ -996,16 +1001,16 @@ WebInspector.ProfileTypeSidebarSection.prototype = {
if (selected)
firstProfileTreeElement.revealAndSelect();
- firstProfileTreeElement.small = true;
- firstProfileTreeElement.mainTitle = WebInspector.UIString("Run %d", 1);
+ firstProfileTreeElement.setSmall(true);
+ firstProfileTreeElement.setMainTitle(WebInspector.UIString("Run %d", 1));
this.treeOutline.element.classList.add("some-expandable");
}
if (groupSize >= 2) {
sidebarParent = group.sidebarTreeElement;
- profileTreeElement.small = true;
- profileTreeElement.mainTitle = WebInspector.UIString("Run %d", groupSize);
+ profileTreeElement.setSmall(true);
+ profileTreeElement.setMainTitle(WebInspector.UIString("Run %d", groupSize));
}
}
@@ -1031,11 +1036,11 @@ WebInspector.ProfileTypeSidebarSection.prototype = {
groupElements.splice(groupElements.indexOf(profileTreeElement), 1);
if (groupElements.length === 1) {
// Move the last profile out of its group and remove the group.
- var pos = sidebarParent.children().indexOf(group.sidebarTreeElement);
+ var pos = sidebarParent.children().indexOf(/** @type {!WebInspector.ProfileGroupSidebarTreeElement} */ (group.sidebarTreeElement));
group.sidebarTreeElement.removeChild(groupElements[0]);
this.insertChild(groupElements[0], pos);
- groupElements[0].small = false;
- groupElements[0].mainTitle = group.sidebarTreeElement.title;
+ groupElements[0].setSmall(false);
+ groupElements[0].setMainTitle(profile.title);
this.removeChild(group.sidebarTreeElement);
}
if (groupElements.length !== 0)
@@ -1074,7 +1079,15 @@ WebInspector.ProfileTypeSidebarSection.prototype = {
return -1;
},
- __proto__: WebInspector.SidebarSectionTreeElement.prototype
+ /**
+ * @override
+ */
+ onattach: function()
+ {
+ this.listItemElement.classList.add("sidebar-tree-section");
+ },
+
+ __proto__: TreeElement.prototype
}
@@ -1101,17 +1114,25 @@ WebInspector.ProfilesPanel.ContextMenuProvider.prototype = {
/**
* @constructor
- * @extends {WebInspector.SidebarTreeElement}
+ * @extends {TreeElement}
* @param {!WebInspector.ProfileType.DataDisplayDelegate} dataDisplayDelegate
* @param {!WebInspector.ProfileHeader} profile
* @param {string} className
*/
WebInspector.ProfileSidebarTreeElement = function(dataDisplayDelegate, profile, className)
{
+ TreeElement.call(this, "", false);
+ this._iconElement = createElementWithClass("div", "icon");
+ this._titlesElement = createElementWithClass("div", "titles no-subtitle");
+ this._titleContainer = this._titlesElement.createChild("span", "title-container");
+ this._titleElement = this._titleContainer.createChild("span", "title");
+ this._subtitleElement = this._titlesElement.createChild("span", "subtitle");
+
+ this._titleElement.textContent = profile.title;
+ this._className = className;
+ this._small = false;
this._dataDisplayDelegate = dataDisplayDelegate;
this.profile = profile;
- WebInspector.SidebarTreeElement.call(this, className, profile.title);
- this.refreshTitles();
profile.addEventListener(WebInspector.ProfileHeader.Events.UpdateStatus, this._updateStatus, this);
if (profile.canSaveToFile())
this._createSaveLink();
@@ -1122,7 +1143,7 @@ WebInspector.ProfileSidebarTreeElement = function(dataDisplayDelegate, profile,
WebInspector.ProfileSidebarTreeElement.prototype = {
_createSaveLink: function()
{
- this._saveLinkElement = this.titleContainer.createChild("span", "save-link");
+ this._saveLinkElement = this._titleContainer.createChild("span", "save-link");
this._saveLinkElement.textContent = WebInspector.UIString("Save");
this._saveLinkElement.addEventListener("click", this._saveProfile.bind(this), false);
},
@@ -1138,11 +1159,12 @@ WebInspector.ProfileSidebarTreeElement.prototype = {
_updateStatus: function(event)
{
var statusUpdate = event.data;
- if (statusUpdate.subtitle !== null)
- this.subtitle = statusUpdate.subtitle;
- if (typeof statusUpdate.wait === "boolean")
- this.wait = statusUpdate.wait;
- this.refreshTitles();
+ if (statusUpdate.subtitle !== null) {
+ this._subtitleElement.textContent = statusUpdate.subtitle || "";
+ this._titlesElement.classList.toggle("no-subtitle", !statusUpdate.subtitle);
+ }
+ if (typeof statusUpdate.wait === "boolean" && this.listItemElement)
+ this.listItemElement.classList.toggle("wait", statusUpdate.wait);
},
dispose: function()
@@ -1172,6 +1194,19 @@ WebInspector.ProfileSidebarTreeElement.prototype = {
},
/**
+ * @override
+ */
+ onattach: function()
+ {
+ this.listItemElement.classList.add("sidebar-tree-item");
+ if (this._className)
+ this.listItemElement.classList.add(this._className);
+ if (this._small)
+ this.listItemElement.classList.add("small");
+ this.listItemElement.appendChildren(this._iconElement, this._titlesElement);
+ },
+
+ /**
* @param {!Event} event
* @param {!WebInspector.ProfilesPanel} panel
*/
@@ -1192,20 +1227,39 @@ WebInspector.ProfileSidebarTreeElement.prototype = {
this.profile.saveToFile();
},
- __proto__: WebInspector.SidebarTreeElement.prototype
+ /**
+ * @param {boolean} small
+ */
+ setSmall: function(small)
+ {
+ this._small = small;
+ if (this.listItemElement)
+ this.listItemElement.classList.toggle("small", this._small);
+ },
+
+ /**
+ * @param {string} title
+ */
+ setMainTitle: function(title)
+ {
+ this._titleElement.textContent = title;
+ },
+
+ __proto__: TreeElement.prototype
}
/**
* @constructor
- * @extends {WebInspector.SidebarTreeElement}
+ * @extends {TreeElement}
* @param {!WebInspector.ProfileType.DataDisplayDelegate} dataDisplayDelegate
* @param {string} title
- * @param {string=} subtitle
*/
-WebInspector.ProfileGroupSidebarTreeElement = function(dataDisplayDelegate, title, subtitle)
+WebInspector.ProfileGroupSidebarTreeElement = function(dataDisplayDelegate, title)
{
- WebInspector.SidebarTreeElement.call(this, "profile-group-sidebar-tree-item", title, subtitle, true);
+ TreeElement.call(this, "", true);
+ this.selectable = false;
this._dataDisplayDelegate = dataDisplayDelegate;
+ this._title = title;
}
WebInspector.ProfileGroupSidebarTreeElement.prototype = {
@@ -1221,20 +1275,40 @@ WebInspector.ProfileGroupSidebarTreeElement.prototype = {
return hasChildren;
},
- __proto__: WebInspector.SidebarTreeElement.prototype
+ /**
+ * @override
+ */
+ onattach: function()
+ {
+ this.listItemElement.classList.add("sidebar-tree-item", "profile-group-sidebar-tree-item");
+ this._disclosureButton = this.listItemElement.createChild("button", "disclosure-button");
+ this.listItemElement.createChild("div", "icon");
+ this.listItemElement.createChild("div", "titles no-subtitle").createChild("span", "title-container").createChild("span", "title").textContent = this._title;
+ },
+
+ /**
+ * @override
+ * @param {!Event} event
+ * @return {boolean}
+ */
+ isEventWithinDisclosureTriangle: function(event)
+ {
+ return event.target === this._disclosureButton;
+ },
+
+ __proto__: TreeElement.prototype
}
/**
* @constructor
- * @extends {WebInspector.SidebarTreeElement}
+ * @extends {TreeElement}
* @param {!WebInspector.ProfilesPanel} panel
*/
WebInspector.ProfilesSidebarTreeElement = function(panel)
{
+ TreeElement.call(this, "", false);
+ this.selectable = true;
this._panel = panel;
- this.small = false;
-
- WebInspector.SidebarTreeElement.call(this, "profile-launcher-view-tree-item", WebInspector.UIString("Profiles"));
}
WebInspector.ProfilesSidebarTreeElement.prototype = {
@@ -1248,12 +1322,17 @@ WebInspector.ProfilesSidebarTreeElement.prototype = {
return true;
},
- get selectable()
+ /**
+ * @override
+ */
+ onattach: function()
{
- return true;
+ this.listItemElement.classList.add("sidebar-tree-item", "profile-launcher-view-tree-item");
+ this.listItemElement.createChild("div", "icon");
+ this.listItemElement.createChild("div", "titles no-subtitle").createChild("span", "title-container").createChild("span", "title").textContent = WebInspector.UIString("Profiles");
},
- __proto__: WebInspector.SidebarTreeElement.prototype
+ __proto__: TreeElement.prototype
}
WebInspector.ProfilesPanel.show = function()
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698