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

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

Issue 2886393003: DevTools: Use badges to render products in timeline details. (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 133d8dff23c3ea4deb40f433c8d4cf438ed092ae..2b44e6f8038aa4987e7900f62403afcd19d319bb 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
@@ -12,18 +12,20 @@ ProductRegistry.BadgePool = class {
/**
* @param {!SDK.ResourceTreeFrame} frame
+ * @param {boolean=} showName
* @return {!Element}
*/
- badgeForFrame(frame) {
- return this._badgeForFrameOrUrl(this._resolveUrl.bind(this, frame));
+ badgeForFrame(frame, showName) {
+ return this._badgeForFrameOrUrl(this._resolveUrl.bind(this, frame), showName);
}
/**
* @param {!Common.ParsedURL} parsedUrl
+ * @param {boolean=} showName
* @return {!Element}
*/
- badgeForURL(parsedUrl) {
- return this._badgeForFrameOrUrl(() => Promise.resolve(parsedUrl));
+ badgeForURL(parsedUrl, showName) {
+ return this._badgeForFrameOrUrl(() => Promise.resolve(parsedUrl), showName);
}
reset() {
@@ -32,20 +34,19 @@ ProductRegistry.BadgePool = class {
/**
* @param {function():!Promise<!Common.ParsedURL>} urlResolver
+ * @param {boolean=} showName
* @return {!Element}
*/
- _badgeForFrameOrUrl(urlResolver) {
+ _badgeForFrameOrUrl(urlResolver, showName) {
var element = createElement('span');
var root = UI.createShadowRootWithCoreStyles(element, 'product_registry/badge.css');
- var badgeElement = root.createChild('span', 'product-registry-badge monospace hidden');
- badgeElement.setAttribute('data-initial', ' ');
- badgeElement.title = '';
+ var badgeElement = root.createChild('span');
+ badgeElement.classList.toggle('hide-badge-title', !showName);
pfeldman 2017/05/18 20:18:33 'hide'
alph 2017/05/18 22:56:02 Done.
badgeElement.addEventListener('mousedown', event => event.consume());
badgeElement.addEventListener('click', event => {
this._showPopup(badgeElement);
event.consume();
}, false);
-
this._badgeElements.set(badgeElement, urlResolver);
if (this._setting.get())
this._renderBadge(badgeElement);
@@ -72,33 +73,30 @@ ProductRegistry.BadgePool = class {
}
/**
- * @param {!Element} badgeElement
+ * @param {!Element} element
*/
- async _renderBadge(badgeElement) {
+ async _renderBadge(element) {
pfeldman 2017/05/18 20:18:33 I thought you could do it in one line.
alph 2017/05/18 22:56:02 I can't
var registry = await ProductRegistry.instance();
- if (!this._badgeElements.has(badgeElement))
+ if (!this._badgeElements.has(element))
return;
- var parsedUrl = await this._badgeElements.get(badgeElement)();
- var entryName = registry.nameForUrl(parsedUrl);
+ element.removeChildren();
+ element.classList.add('hidden');
- if (!entryName) {
- badgeElement.setAttribute('data-initial', ' ');
- badgeElement.title = '';
- badgeElement.style.removeProperty('background-color');
+ var parsedUrl = await this._badgeElements.get(element)();
+ var entryName = registry.nameForUrl(parsedUrl);
+ if (!entryName)
return;
- }
- var label;
var tokens = entryName.replace(/[a-z]*/g, '').split(' ');
- if (tokens.length > 1)
- label = tokens[0][0] + tokens[1][0];
- else
- label = entryName;
+ var label = tokens.length > 1 ? tokens[0][0] + tokens[1][0] : entryName;
+ var badgeElement = element.createChild('span', 'product-registry-badge monospace');
badgeElement.setAttribute('data-initial', label.substring(0, 2).toUpperCase());
badgeElement.title = entryName;
badgeElement.style.backgroundColor = ProductRegistry.BadgePool.colorForEntryName(entryName);
- badgeElement.classList.toggle('hidden', !this._setting.get());
+
+ element.createChild('span', 'badge-title').textContent = entryName;
+ element.classList.toggle('hidden', !this._setting.get());
}
_settingUpdated() {

Powered by Google App Engine
This is Rietveld 408576698