如何在Firefox的新标签“热门网站”中显示大图标?


13

在最新的稳定版Firefox(版本57)(称为Quantum)中,用户控制的新标签上的“热门网站”功能已更改。以前,无论网站如何,仅显示部分屏幕截图的粗略缩略图,并且无法控制。现在,某些网站带有一个大图标,而其他网站仅显示为上述缩略图,并且其图标被覆盖在角落。获得大图标处理的示例站点:Amazon,TechCrunch,Slack和GitHub。通过网站图标处理获得缩略图的示例站点:Slashdot,Steam,Kongregate,Gizmodo。

据我所知,这没有什么特别的押韵或原因。我还没有在“热门站点”功能的任何地方找到任何文档。


深入研究Firefox源代码一段时间后,我发现browser\extensions\activity-stream\lib\TopSitesFeed.jsm,其中包含以下代码部分:

/**
 * Get an image for the link preferring tippy top, rich favicon, screenshots.
 */
async _fetchIcon(link) {
  // Check for tippy top icon and rich icon.
  this._tippyTopProvider.processSite(link);
  let hasTippyTop = !!link.tippyTopIcon;
  let hasRichIcon = link.favicon && link.faviconSize >= MIN_FAVICON_SIZE;

  if (!hasTippyTop && !hasRichIcon) {
    this._requestRichIcon(link.url);
  }

  // Request a screenshot if needed.
  if (!hasTippyTop && !hasRichIcon && !link.screenshot) {
    const {url} = link;
    await Screenshots.maybeCacheScreenshot(link, url, "screenshot",
      screenshot => this.store.dispatch(ac.BroadcastToContent({
        data: {screenshot, url},
        type: at.SCREENSHOT_UPDATED
      })));
  }
}

先前MIN_FAVICON_SIZE定义为96,我假设以像素为单位。

看一下TippyTop,我看到对Amazon,Reddit,Twitter,Facebook和其他一些网站(resource://activity-stream/data/content/tippytop/在Firefox内部访问相关的JSON文件和图像)进行了一些优惠,我想这意味着Firefox包含带有最终二进制文件的特殊图标,特定网站,但不是我提到的所有网站。

例如,TechCrunch不在TippyTop列表中,仅具有16x16的图标。但是,Firefox显示图标而不是屏幕截图。TechCrunch网站上的Apple触摸图标超过了96像素。因此,也许其中之一正在被使用。我通常认为网站图标是与Apple特定的触摸图标元标记分开的实体。这意味着网站管理员可以(以某种方式)覆盖屏幕截图获取机制,并仅在“热门网站”列表中显示一个漂亮的图标。因此,问题仍然在于如何实现这一目标?此时的图标图标逻辑仍然有些神秘。


Opera的快速拨号可能与此相同。
安德鲁·洛特

Answers:


7

经过大量测试,我能够在我的网站上使用大型图标(在Firefox 57.0.4中)。

我认为使用大(> 100px)图标并指定大小非常重要:

<link rel="icon" type='image/png' sizes='256x256' href="/webmasters//applogo_256.png"/>

另外,Firefox似乎非常积极地缓存预览,因此我需要使用新的Profile来立即查看更改。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.