可以修改硬编码的 Firefox JavaScript Ctrl-Tab 面板行为吗?

可以修改硬编码的 Firefox JavaScript Ctrl-Tab 面板行为吗?

在里面源代码对于 Firefox Ctrl+Tab行为,有一个 6 个选项卡的硬编码限制:

/**
 * Ctrl-Tab panel
 */
var ctrlTab = {
  maxTabPreviews: 6,
  //...
    for (let i = 0; i < this.maxTabPreviews; i++) {
      previewsContainer.appendChild(this.makePreview(false));
    }
  //...

这不是很多。除了从源代码进行完整构建外,还有其他方法可以改变此行为吗?

例如,我并不是在寻找一种可以提供替代选项卡列表的解决方法或插件,我真正想找到的是一种本质上与放置相同的效果maxTabPreviews = 10但又不必编译自定义版本的 Firefox 的方法。例如,userchrom.css 可以覆盖某些样式元素,但随后又允许覆盖此代码片段。

答案1

警告据我所知,下面介绍的解决方案对我来说没有任何缺陷,但 YMMV,所以请自行尝试风险。

感谢 harrymc 为我指点迷津。你说 Firefox 中没有这个字符串,这让我想到,源代码中的所有 .js 文件都不可能都在 firefox.exe 中,因为它太小了。所以我去应用程序目录中寻找它们的位置,发现它们被压缩在一个单独的文件中omn​​i.ja 文件. 使用解压文件

unzip omni.ja -d omni

给出一个包含所有 JavaScript/HTML/CSS 等的目录结构,其中包括omni/chrome/browser/content/browser/browser-ctrlTab.js。耶!所以我编辑了文件以使用 8 而不是 6,然后按照说明再次压缩使用

cd omni
zip -qr9XD omni.ja *

9但是,生成的文件比原始文件小 2.5 倍左右,因此我认为 Firefox现在不再使用此压缩级别0。确实

zip -qr0XD omni.ja *

生成的文件大小几乎与原始文件大小相同。使用 7zip 测试原始 omni.ja 时,确实显示“警告:有效载荷数据结束后还有一些数据”,因此这可能是罪魁祸首。

无论如何,用新的 omni.ja 替换原来的,使用firefox -p新的配置文件启动以确保安全,我很高兴看到现在确实有 8 个选项卡。再次使用 12 个选项卡重复相同的操作,截图:

在此处输入图片描述

缺点很明显:每次更新后可能需要重复此过程。但除非附加组件可以访问所有内部组件(这是下一步要研究的事情),否则这可能是唯一的方法。改进方法是呈现多行而不是一行。

答案2

这是三年前在错误报告中提出的: 使用 Ctrl+Tab 时需要六个以上的缩略图,并且最近被降为低优先级。

您需要尝试使用插件来解决问题。下面是可用的插件列表。我还没有尝试过,所以无法判断哪一个可以帮助解决问题:

相关内容