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

Unified Diff: third_party/WebKit/Source/devtools/front_end/product_registry/BadgePool.js

Issue 2892333002: DevTools: Render third-party badges in timeline tree view (Closed)
Patch Set: 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/front_end/product_registry/BadgePool.js
diff --git a/third_party/WebKit/Source/devtools/front_end/product_registry/BadgePool.js b/third_party/WebKit/Source/devtools/front_end/product_registry/BadgePool.js
index ca7734595de226b34934886d422e344850f2756a..8b861a8ccb84950aa60165e82ab996f039858846 100644
--- a/third_party/WebKit/Source/devtools/front_end/product_registry/BadgePool.js
+++ b/third_party/WebKit/Source/devtools/front_end/product_registry/BadgePool.js
@@ -22,10 +22,11 @@ ProductRegistry.BadgePool = class {
/**
* @param {!Common.ParsedURL} parsedUrl
* @param {boolean=} showTitle
+ * @param {boolean=} ignoreSetting
* @return {!Element}
*/
- badgeForURL(parsedUrl, showTitle) {
- return this._badgeForFrameOrUrl(() => Promise.resolve(parsedUrl), showTitle);
+ badgeForURL(parsedUrl, showTitle, ignoreSetting) {
+ return this._badgeForFrameOrUrl(() => Promise.resolve(parsedUrl), showTitle, ignoreSetting);
}
reset() {
@@ -35,9 +36,10 @@ ProductRegistry.BadgePool = class {
/**
* @param {function():!Promise<!Common.ParsedURL>} urlResolver
* @param {boolean=} showTitle
+ * @param {boolean=} ignoreSetting
* @return {!Element}
*/
- _badgeForFrameOrUrl(urlResolver, showTitle) {
+ _badgeForFrameOrUrl(urlResolver, showTitle, ignoreSetting) {
var element = createElementWithClass('span', 'hidden');
var root = UI.createShadowRootWithCoreStyles(element, 'product_registry/badge.css');
var badgeElement = root.createChild('span');
@@ -47,9 +49,9 @@ ProductRegistry.BadgePool = class {
this._showPopup(badgeElement);
event.consume();
}, false);
+ badgeElement[ProductRegistry.BadgePool._ignoreSettingSymbol] = !!ignoreSetting;
this._badgeElements.set(badgeElement, urlResolver);
- if (this._setting.get())
- this._renderBadge(badgeElement);
+ this._renderBadge(badgeElement);
return element;
}
@@ -78,14 +80,14 @@ ProductRegistry.BadgePool = class {
async _renderBadge(badgeElement) {
if (!this._badgeElements.has(badgeElement))
return;
- if (badgeElement.children.length) {
- this._setBadgeElementHidden(badgeElement, false);
+ if (badgeElement.children.length || !this._isVisible(badgeElement)) {
+ this._setBadgeElementVisibility(badgeElement);
return;
}
var parsedUrl = await this._badgeElements.get(badgeElement)();
var registry = await ProductRegistry.instance();
- var entryName = registry.nameForUrl(parsedUrl);
+ var entryName = parsedUrl && registry.nameForUrl(parsedUrl);
if (!entryName)
return;
@@ -102,26 +104,28 @@ ProductRegistry.BadgePool = class {
iconElement.style.backgroundColor = ProductRegistry.BadgePool.colorForEntryName(entryName);
badgeElement.createChild('span', 'product-registry-badge-title').textContent = entryName;
- this._setBadgeElementHidden(badgeElement, !this._setting.get());
+ this._setBadgeElementVisibility(badgeElement);
}
_settingUpdated() {
- var enabled = this._setting.get();
- if (!enabled) {
- for (var badgeElement of this._badgeElements.keys())
- this._setBadgeElementHidden(badgeElement, true);
- return;
- }
for (var badgeElement of this._badgeElements.keys())
this._renderBadge(badgeElement);
}
/**
* @param {!Element} badgeElement
- * @param {boolean} hide
+ * @return {boolean}
+ */
+ _isVisible(badgeElement) {
+ return badgeElement[ProductRegistry.BadgePool._ignoreSettingSymbol] || this._setting.get();
+ }
+
+ /**
+ * @param {!Element} badgeElement
*/
- _setBadgeElementHidden(badgeElement, hide) {
- badgeElement.parentNodeOrShadowHost().parentNodeOrShadowHost().classList.toggle('hidden', hide);
+ _setBadgeElementVisibility(badgeElement) {
+ badgeElement.parentNodeOrShadowHost().parentNodeOrShadowHost().classList.toggle(
+ 'hidden', !this._isVisible(badgeElement));
}
/**
@@ -168,3 +172,5 @@ ProductRegistry.BadgePool = class {
return ProductRegistry.BadgePool._colorGenerator.colorForID(entryName);
}
};
+
+ProductRegistry.BadgePool._ignoreSettingSymbol = Symbol('IgnoreSettingSymbol');

Powered by Google App Engine
This is Rietveld 408576698