Google chrome extension Chrome Market是否接受源代码精简和/或模糊的扩展?

Google chrome extension Chrome Market是否接受源代码精简和/或模糊的扩展?,google-chrome-extension,obfuscation,minify,chrome-web-store,Google Chrome Extension,Obfuscation,Minify,Chrome Web Store,我目前正在开发一个Chrome扩展,并计划在Chrome市场上发布它。我知道开源社区的好处,但是,我不想分享源代码,而且有点担心版权问题。目前,计划是在发布之前缩小和模糊源代码。因此,问题是: Chrome Market是否接受源代码精简和/或模糊的扩展? 提前感谢!:) 看起来他们不批准缩小和模糊的代码。从4月16日开始,你可以查看Chromium Google组的线程 不,你不能。这是我从谷歌Chrome团队收到的电子邮件:全部 项的包中包含的文件和代码的个数 包中的所有代码都是可读的(

我目前正在开发一个Chrome扩展,并计划在Chrome市场上发布它。我知道开源社区的好处,但是,我不想分享源代码,而且有点担心版权问题。目前,计划是在发布之前缩小和模糊源代码。因此,问题是:

Chrome Market是否接受源代码精简和/或模糊的扩展?


提前感谢!:)

看起来他们不批准缩小和模糊的代码。从4月16日开始,你可以查看Chromium Google组的线程

不,你不能。这是我从谷歌Chrome团队收到的电子邮件:全部 项的包中包含的文件和代码的个数

  • 包中的所有代码都是可读的(没有模糊或缩小的代码)
  • 避免请求或执行远程托管代码(包括通过引用远程javascript文件或执行通过XHR请求获得的代码)

如果您联系Google Chrome团队,您可以得到更具体的答案。

2019更新:

谷歌允许缩小代码,但不允许模糊代码。看

原始答案:

是的,您可以在发布扩展之前使用模糊处理工具(如jscrambler)。我不知道这是否会延迟发布时间,但我可以肯定的是,有些已发布的Chrome扩展具有模糊/缩小的源代码


一、 例如,在发布我的扩展名()之前,先用谷歌的代码缩小它。

用自己的经验更新它。

我无法提交一个模糊的构建(更具体地说,在我的例子中是gulp版本),他们抱怨“你的代码可疑”,所以我猜他们的系统中触发了警报

然而,我仍然需要找到一种方法来重命名所有的原型函数,因为uglify似乎没有这样做(或者至少我没有找到一种方法)


原始答案:

总而言之,chrome扩展似乎可以被缩小和模糊化

更多细节,请继续阅读

首先,有两个不同的术语-
chrome extension
chrome app
,基于这两个术语适用不同的规则。Chrome应用程序有更严格的要求,McAsilloy2K的答案似乎适用于Chrome应用程序(至少看起来它是基于两者的可用策略)

关于以下谷歌的回答:

  • 避免请求或执行远程托管代码(包括 引用远程javascript文件或执行XHR获得的代码 请求)
如果是针对
chrome扩展
而不是
chrome应用
,这似乎很奇怪,因为谷歌明确表示,该扩展允许发出外部请求以执行自定义API,也称为“远程托管代码”:

功能

扩展能否发出跨域Ajax请求?

对。扩展可以发出跨域请求。查看更多信息 信息

扩展能否使用第三方web服务?

对。扩展能够发出跨域Ajax请求,因此 他们可以直接调用远程API。以JSON格式提供数据的API 格式特别容易使用

扩展能否使用OAuth?

是的,有些扩展使用OAuth访问远程数据API。 大多数开发人员发现使用JavaScriptOAuth库很方便 为了简化签署OAuth请求的过程

中的另一个讨论表明,拒绝可能根本与混淆无关:

最终,我需要做这些事情来获得我的扩展 通过(但我祈求好运,以防其他验证 测试仍需进行):

  • 我创建了一个隐私政策,并在谷歌Chrome开发者面板上添加了一个链接
  • 我更详细地解释了我的扩展正在做什么。谷歌似乎需要这一点来更好地理解扩展
  • 在描述中,我明确说明了扩展如何处理个人或敏感用户数据
最终,这就足够得到扩展了 即使代码缩小和模糊,也要通过检查 祝我好运)


此外,人们可以随时检查现有的扩展,例如Grammarly,谁有模糊的代码(至少在某种程度上)以及谁使用外部API。

2019年1月1日的术语更改使上述任何现有答案都变得过时。这个变化

总之:

  • 谷歌允许缩小代码
  • 谷歌不允许模糊代码
具体政策可从以下网址获得:

开发人员不得混淆代码或隐藏其应用程序的功能 分机。这也适用于获取的任何外部代码或资源 通过扩展包。允许缩小,包括 以下表格:

  • 删除空格、换行符、代码注释和块分隔符
  • 缩短变量名和函数名
  • 将文件折叠在一起

伊万的回答是正确的。这一个不是-我只是检查了LBTimer的源代码,它确实是小型化的。声明的术语表明:
包中的所有代码都是人类可读的(没有模糊或小型化的代码)。
他们保留做出例外的权利,但这并不是预料之中的。从我目前的发现来看,这是一个相当有争议的问题,而且答案似乎并不完全正确。至少“无效”请求或执行远程托管cod