如何禁用 Chrome 扩展程序而不在多个同步设备上禁用它们

如何禁用 Chrome 扩展程序而不在多个同步设备上禁用它们

我在 4 个不同的工作站上使用 Chrome,并将我的扩展程序在所有工作站上同步。

我遇到的问题是,其中一个扩展(Chrome 手势) 如果您有真正的鼠标,它会很好地工作,但在 Ubuntu 上的触控板上,它只会妨碍操作。

如果我在 Ubuntu 机器上禁用它,它会在所有 Chrome 安装中被禁用,因为它的内部同步机制

问:我可以选择性地在一台机器上禁用扩展吗?

答案1

基于安全考虑,Chrome 不会同步任何包含 NPAPI 插件的扩展。

来源

什么是 NPAPI 插件?

NPAPI 插件中运行的代码拥有当前用户的全部权限,并且不会以任何方式被 Google Chrome 沙盒化或屏蔽恶意输入。处理来自不受信任来源的输入时(例如使用内容脚本或 XMLHttpRequest 时),您应该特别小心。

来源

理论

如果我们以某种方式修改您的扩展程序,使 Chrome 能够使用 NPAPI 识别该扩展程序,那么就没问题了。

如何

  1. 首先,你需要一个虚拟的 .dll任何 NPAPI 扩展喜欢屏幕截图(由 Google 提供)。该扩展程序已从 Google Play 商店中移除,原因是Google 决定放弃对 NPAPI 的支持。但这对我们的场景来说并不重要。幸运的是官方屏幕捕获 wiki仍然包含源代码。我们不需要完整的扩展,只需要 NPAPI .dll screen_capture.dll直接下载

  2. 其次,转到不应同步的扩展文件夹。对于你的情况Chrome 手势
    ..\profile\Default\Extensions\jpkfjicglakibpenojifdiepckckakgk\1.12.1_0

  3. 修改清单.json文件并添加 NPAPI 插件为Stackoverflow 上描述或者更好的是开发者.chrome.com

    {
      "name": "My extension",
      ...
      "plugins": [
        { "path": "screen_capture.dll" }
      ],
      ...
    }
    
  4. 修改背景.html您不想同步的扩展文件,上面的 Stackoverflow 答案中也有描述。

    <embed type="application/x-my-extension" id="pluginId">
    <script>
      var plugin = document.getElementById("pluginId");
      var result = plugin.myPluginMethod();  // call a method in your plugin
      console.log("my plugin returned: " + result);
    </script>
    
  5. 可能是必要的重新启用 NPAPI 支持将来通过chrome://flags/#enable-npapi

从现在开始你就得靠自己了。我对扩展编码了解不够多。
所以这只是一个理论 :)

答案2

这可能不是您想要的,但您可以尝试一下。打开设置点击右上角的三线/扳手图标,打开 Chrome 菜单。现在打开高级同步设置..

在此处输入图片描述

在此处输入图片描述

现在选择选项选择要同步的内容然后取消标记扩展选项。现在您的扩展程序将不会与其他 PC 同步。

答案3

您可以将所需的扩展安装为本地扩展。

  1. chrome://extensions使用以下方式查找所需扩展的 ID:已启用开发者模式

  2. 导航到您的 Google 安装目录。Windows: %localappdata%\Google\Chrome\User Data\Default\Extensions\{扩展名_ID}\{版本号}

  3. 将其保存在某处..可能是用户目录?

  4. 返回chrome://extensions已启用开发者模式并按Load unpacked extension。然后导航至扩展的新副本。

  5. 您现在应该看到扩展名有两次了。禁用真正的那个。

我说禁用因为这种方法有一个不好的一面,那就是您会失去自动更新,并且每次更新时您都需要一遍又一遍地重复上述步骤。

如果你不确定哪个是正品,哪个是新副本,请查看 ID 标签下的加载自:{Path_To_Your_Copy}

答案4

对我来说,一个可行的方法是每次 Chrome 启动时使用 Chrome 任务管理器手动终止插件进程。这可以按如下方式实现:

  • (在 Mac 上)菜单 > 更多工具 > 任务管理器
  • (在 PC 上)右键单击菜单栏 > 任务管理器或Shift+Esc

然后只需单击您不想运行的扩展,然后单击“结束进程”。

我在公司有两台电脑,我不希望 Google Hangouts 出现在两台电脑上。唯一的缺点是每次启动 Chrome 时你都必须这样做。

相关内容