| 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()
|
|
|