Chrome DevTools中的第三方徽章:颜色

时间:2017-10-16 14:23:09

标签: google-chrome google-chrome-devtools

想知道是否有人对DevTools中第三方徽章的重要性有所了解,特别是他们的颜色?它们各不相同,很好奇这是如何决定的以及原因。

1 个答案:

答案 0 :(得分:0)

根据产品名称生成颜色(因此它们在重新加载之间保持一致)。它们没有任何特殊含义。

来自BadgePool.js(其中entryName可能类似于“Google Analytics”):

  static colorForEntryName(entryName) {
    if (!ProductRegistry.BadgePool._colorGenerator) {
      ProductRegistry.BadgePool._colorGenerator =
          new Common.Color.Generator({min: 30, max: 330}, {min: 50, max: 80, count: 3}, 80);
    }
    return ProductRegistry.BadgePool._colorGenerator.colorForID(entryName);
  }

来自Common.Color.Generator:

  /**
   * @param {string} id
   * @return {string}
   */
  colorForID(id) {
    var color = this._colors.get(id);
    if (!color) {
      color = this._generateColorForID(id);
      this._colors.set(id, color);
    }
    return color;
  }

  /**
   * @param {string} id
   * @return {string}
   */
  _generateColorForID(id) {
    var hash = String.hashCode(id);
    var h = this._indexToValueInSpace(hash, this._hueSpace);
    var s = this._indexToValueInSpace(hash >> 8, this._satSpace);
    var l = this._indexToValueInSpace(hash >> 16, this._lightnessSpace);
    var a = this._indexToValueInSpace(hash >> 24, this._alphaSpace);
    return `hsla(${h}, ${s}%, ${l}%, ${a})`;
  }