如何生成解压后的扩展程序的Chrome扩展程序ID?

mritz_p

我想与我的同事共享一个未打包的扩展名。chrome.runtime.sendMessage(string extensionId, any message, object options, function responseCallback)在注入的脚本中使用该方法为此,我需要提前知道扩展名。

在不同系统上,解压后的扩展程序的扩展程序ID是否会有所不同,或者我可以对在扩展程序菜单中找到的扩展程序进行硬编码吗?

可汗

虽然我链接到该问题该问题解释了如何“固定”未打包扩展名的ID,这将解决OP面临的实际问题,但问题本身(如标题中所述)很有趣。

如果我们查看Chromium源,我们将看到ID只是扩展的绝对路径(可能是规范化的,无论什么意思)的SHA哈希。代码亮点:

// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// chromium/src/chrome/browser/extensions/unpacked_installer.cc
int UnpackedInstaller::GetFlags() {
  std::string id = crx_file::id_util::GenerateIdForPath(extension_path_);
  /* ... */
}

// chromium/src/components/crx_file/id_util.cc
std::string GenerateIdForPath(const base::FilePath& path) {
  base::FilePath new_path = MaybeNormalizePath(path);
  std::string path_bytes =
      std::string(reinterpret_cast<const char*>(new_path.value().data()),
                  new_path.value().size() * sizeof(base::FilePath::CharType));
  return GenerateId(path_bytes);
}

std::string GenerateId(const std::string& input) {
  uint8 hash[kIdSize];
  crypto::SHA256HashString(input, hash, sizeof(hash));
  std::string output =
      base::StringToLowerASCII(base::HexEncode(hash, sizeof(hash)));
  ConvertHexadecimalToIDAlphabet(&output);

  return output;
}

因此,它仅应取决于扩展文件夹的绝对文件系统路径。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Chrome扩展程序:结帐后,蜂蜜扩展程序如何下拉?

来自分类Dev

如何使用解压缩的扩展程序启动Chrome?

来自分类Dev

铬解压后的扩展程序同步

来自分类Dev

Chrome解压缩的扩展程序消失

来自分类Dev

如何从扩展程序获取Chrome应用的ID

来自分类Dev

无法使用Selenium Webdriver将解压后的扩展程序加载到Chrome中

来自分类Dev

无法使用Selenium Webdriver将解压后的扩展程序加载到chrome中

来自分类Dev

如何通过Chrome应用了解Chrome扩展程序ID

来自分类Dev

更改Chrome扩展程序的现有“扩展程序ID”

来自分类Dev

如何跟踪哪个chrome扩展程序会生成弹出框?

来自分类Dev

以编程方式加载解压缩的Chrome扩展程序

来自分类Dev

哪些政策禁止加载解压的Chrome扩展程序?

来自分类Dev

以编程方式加载解压缩的Chrome扩展程序

来自分类Dev

如何从Chrome扩展程序启动Chrome应用?

来自分类Dev

Chrome扩展程序的指标

来自分类Dev

Chrome扩展程序设置

来自分类Dev

Chrome扩展程序的指标

来自分类Dev

Chrome扩展程序-通知

来自分类Dev

Chrome扩展程序选项

来自分类Dev

如何自动重新加载chrome扩展程序?

来自分类Dev

Chrome扩展程序如何与系统进程通信?

来自分类Dev

如何缩小Chrome扩展程序的弹出窗口

来自分类Dev

Chrome扩展程序如何更改语言?

来自分类Dev

如何从Chrome扩展程序访问主机

来自分类Dev

Chrome扩展程序:如何拦截请求的网址?

来自分类Dev

如何使用Chrome扩展程序影响网站

来自分类Dev

如何卸载此Google Chrome扩展程序?

来自分类Dev

如何摆脱Stayfocused chrome扩展程序?

来自分类Dev

如何自动重新加载chrome扩展程序?

Related 相关文章

热门标签

归档