编辑内置Chrome书签管理器文件夹/子文件夹自动扩展?

Dav*_*key 8 javascript api bookmarks google-chrome google-chrome-extension

在Chrome中使用内置书签管理器时,左侧有一个导航窗格,其中包含所有包含书签的文件夹/子文件夹.当拖放文件夹/书签时一个鼠标移动文件夹时,它会在x段时间(400毫秒)后自动展开文件夹(例如显示所有子文件夹).

我想制作一个变量来控制Chrome在自动展开自定义文件夹之前等待的时间.

我发现Chromium中的代码确定了在拖放时自动扩展文件夹之前要等待多长时间:

// src/chrome/browsers/resources/bookmark_manager/js/dnd.js

相关的代码行是:

/** * Delay for expanding folder when pointer hovers on folder in tree view in * milliseconds. * @type {number} * @const */ // TODO(yosin): EXPAND_FOLDER_DELAY should follow system settings. 400ms is // taken from Windows default settings. var EXPAND_FOLDER_DELAY = 400;

我不知道怎么做是通过扩展来覆盖这个?

使用案例:我有很多文件夹和嵌套文件夹以及嵌套嵌套文件夹.我经常尝试导航到顶级文件夹,但谷歌在开始自动扩展之前的悬停时间非常短,很多时候文件夹我并不意味着扩展最终扩展.

Noa*_*ker 4

很好地找到了相关代码。

不幸的是,我不相信 Chrome 扩展程序可以访问这些文件。这将需要这些变量的 API(并且在更改任何设置时必须重建应用程序)。

通过一些研究,我能够提出两种选择。


选项1

与扩展相比(特别是如果这只是一次性覆盖)更好的解决方案是分叉该项目并为您自己的自定义版本的 Chromium 编辑该代码。是代码入门以及构建/运行您自己的 Chromium 版本的指南。也许如果你想出了一个很好的解决方案来解决这个问题,你甚至可以提交一个补丁:)更好的是为这些文件构建一个 API,然后你可以创建一个扩展。

优点:您只需更改代码中的一个数字即可。缺点:你必须维护 Chromium 的分叉版本。


选项2

创建覆盖页面

覆盖页面是一种用扩展程序中的 HTML 文件替换 Google Chrome 通常提供的页面的方法。除了 HTML 之外,覆盖页面通常还包含 CSS 和 JavaScript 代码。

扩展程序可以取代书签管理器:当用户从 Chrome 菜单中选择“书签管理器”菜单项或在 Mac 上从“书签”菜单中选择“书签管理器”项时显示的页面。您还可以通过输入 URL chrome://bookmarks 访问此页面。

然后,您可以使用chrome.bookmarks构建自定义书签页面。

优点:解决方案只需要扩展!缺点:您必须从头开始构建页面或找到其他一些复制技术。

许多扩展程序已经实现了这种方法,也许通过谷歌搜索(关键字“自定义”和“管理器”很有帮助),您也可能找到您喜欢或可以贡献的解决方案。