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

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

Issue 2880913002: Revert of DevTools: render product badges behind the setting. (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
deleted file mode 100644
index bacfad79353f590a3faca7bfa19994017d09b332..0000000000000000000000000000000000000000
--- a/third_party/WebKit/Source/devtools/front_end/product_registry/BadgePool.js
+++ /dev/null
@@ -1,156 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-ProductRegistry.BadgePool = class {
- constructor() {
- this._setting = Common.settings.moduleSetting('product_registry.badges-visible');
- this._setting.addChangeListener(this._settingUpdated.bind(this));
- /** @type {!Map<!Element, function():!Promise<!Common.ParsedURL>>}*/
- this._badgeElements = new Map();
- }
-
- /**
- * @param {!SDK.ResourceTreeFrame} frame
- * @return {!Element}
- */
- badgeForFrame(frame) {
- return this._badgeForFrameOrUrl(this._resolveUrl.bind(this, frame));
- }
-
- /**
- * @param {!Common.ParsedURL} parsedUrl
- * @return {!Element}
- */
- badgeForURL(parsedUrl) {
- return this._badgeForFrameOrUrl(() => Promise.resolve(parsedUrl));
- }
-
- reset() {
- this._badgeElements.clear();
- }
-
- /**
- * @param {function():!Promise<!Common.ParsedURL>} urlResolver
- * @return {!Element}
- */
- _badgeForFrameOrUrl(urlResolver) {
- var element = createElement('span');
- var root = UI.createShadowRootWithCoreStyles(element, 'product_registry/badge.css');
- var badgeElement = root.createChild('span', 'product-registry-badge monospace hidden');
- badgeElement.textContent = ' ';
- 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);
- return element;
- }
-
- /**
- * @param {?SDK.ResourceTreeFrame} frame
- * @return {!Promise<!Common.ParsedURL>}
- */
- async _resolveUrl(frame) {
- var registry = await ProductRegistry.instance();
- var parsedUrl = new Common.ParsedURL(frame.url);
- var entry = registry.entryForUrl(parsedUrl);
- if (!entry) {
- frame.findCreationCallFrame(callFrame => {
- if (!callFrame.url)
- return false;
- parsedUrl = new Common.ParsedURL(callFrame.url);
- return !!registry.entryForUrl(parsedUrl);
- });
- }
- return parsedUrl;
- }
-
- /**
- * @param {!Element} badgeElement
- */
- async _renderBadge(badgeElement) {
- if (!this._badgeElements.has(badgeElement))
- return;
-
- var registry = await ProductRegistry.instance();
- var parsedUrl = await this._badgeElements.get(badgeElement)();
- var entryName = registry.nameForUrl(parsedUrl);
-
- if (!entryName) {
- badgeElement.textContent = ' ';
- badgeElement.style.removeProperty('background-color');
- 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;
-
- badgeElement.textContent = label.substring(0, 2).toUpperCase();
- badgeElement.style.backgroundColor = ProductRegistry.BadgePool.colorForEntryName(entryName);
- badgeElement.classList.toggle('hidden', !this._setting.get());
- }
-
- _settingUpdated() {
- var enabled = this._setting.get();
- if (!enabled) {
- for (var badgeElement of this._badgeElements.keys())
- badgeElement.classList.add('hidden');
- return;
- }
- for (var badgeElement of this._badgeElements.keys())
- this._renderBadge(badgeElement);
- }
-
- /**
- * @param {!Element} badgeElement
- */
- async _showPopup(badgeElement) {
- if (!this._badgeElements.has(badgeElement))
- return;
-
- var registry = await ProductRegistry.instance();
- var parsedUrl = await this._badgeElements.get(badgeElement)();
- var entryName = registry.nameForUrl(parsedUrl);
-
- var element = createElement('div');
- var root = UI.createShadowRootWithCoreStyles(element, 'product_registry/popup.css');
- var popupElement = root.createChild('div', 'product-registry-popup');
- var domainElement = popupElement.createChild('div', 'product-registry-domain');
- domainElement.textContent = parsedUrl.domain();
- var entryNameElement = popupElement.createChild('div', 'product-registry-name');
- entryNameElement.textContent = entryName;
- var reportLink =
- 'https://docs.google.com/forms/d/e/1FAIpQLSchz2FdcQ-rRllzl8BbhWaTRRY-12BpPjW6Hr9e1-BpCA083w/viewform' +
- '?entry_1425918171=' + encodeURIComponent((parsedUrl.domain() + parsedUrl.path).substr(0, 100));
- popupElement.appendChild(UI.createExternalLink(reportLink, 'Report mismatch', 'product-registry-link'));
-
- var dialog = new UI.Dialog();
- dialog.setContentAnchorBox(badgeElement.boxInWindow());
- dialog.contentElement.appendChild(element);
- dialog.setSizeBehavior(UI.GlassPane.SizeBehavior.MeasureContent);
- dialog.setAnchorBehavior(UI.GlassPane.AnchorBehavior.PreferTop);
- dialog.addCloseButton();
- dialog.show(/** @type {!Document} */ (badgeElement.ownerDocument));
- }
-
- /**
- * @param {string} entryName
- * @return {string}
- */
- static colorForEntryName(entryName) {
- if (!ProductRegistry.BadgePool._colorGenerator) {
- ProductRegistry.BadgePool._colorGenerator =
- new Common.Color.Generator({min: 30, max: 330}, {min: 50, max: 80, count: 3}, 85);
- }
- return ProductRegistry.BadgePool._colorGenerator.colorForID(entryName);
- }
-};

Powered by Google App Engine
This is Rietveld 408576698