我目前正在开发Chrome扩展程序,并计划在Chrome市场上发布它。我知道开源社区的好处,但是,不想分享源代码并且有点担心版权问题。目前,该计划是在发布之前缩小和混淆源代码。所以问题是:
Chrome Market是否接受使用缩小和/或混淆的源代码的扩展程序?
提前致谢! :)
答案 0 :(得分:5)
看起来他们并不赞成缩小和混淆的代码。您可以在4月16日之前查看Chromium Google Group上的帖子。
https://groups.google.com/a/chromium.org/forum/#!topic/chromium-extensions/1Jsoo9BPWuM
不,你不能。这是我从Google Chrome小组收到的电子邮件:全部 文件和代码包含在项目的包中。
- 包内的所有代码都是人类可读的(没有混淆或缩小的代码)。
- 避免请求或执行远程托管代码(包括引用远程javascript文件或执行XHR请求获取的代码)。
如果您与Google Chrome小组联系,可以获得更具体的答案。
答案 1 :(得分:5)
2019更新:
Google允许缩小代码,但不会混淆代码。见Brian's answer
原始回答:
是的,您可以在发布扩展程序之前使用混淆工具(例如jscrambler)。我不知道这是否会延迟发布时间,但我确信这是一些已发布的Chrome扩展程序,其中包含混淆/缩小的源代码。
答案 2 :(得分:2)
2019年1月1日,术语更改使上述任何现有答案都已过时。此更改was announced on October 1st, 2018。
总结:
在https://developer.chrome.com/webstore/program_policies处可用的特定策略如下:
开发人员不得混淆代码或隐藏其功能 延期。这也适用于获取的任何外部代码或资源 通过扩展包。允许缩小,包括 以下形式:
- 删除空格,换行符,代码注释和块定界符
- 缩短变量和函数名称
- 一起压缩文件
答案 3 :(得分:1)
以自己的经验更新:
我无法提交使用this javascript-obfuscator进行模糊处理的版本(更具体地说,在我的情况下是gulp版本)他们抱怨"您的代码是可疑的"所以我猜他们的系统会触发警报。
然而uglyfy为此工作 - 我仍然需要找到一种重命名所有原型函数的方法,因为uglify似乎没有这样做(或者至少我不能找到一种方法来做到这一点)
原始回答:
总而言之,似乎 Chrome扩展程序可以缩小和混淆。
有关详细信息,请继续阅读。
首先,有两个不同的术语 - chrome extension
和chrome app
,并且基于此适用不同的规则。 Chrome应用程序有更严格的要求,似乎mcastilloy2k的答案适用于Chrome应用程序(至少看起来它基于两者的可用策略)。
关于以下谷歌的答案:
- 避免请求或执行远程托管代码(包括 引用远程javascript文件或执行XHR获取的代码 请求)。
如果chrome extension
而不是chrome app
,那么来自Google的the extension FAQ似乎很奇怪,它明确指出允许扩展程序执行自定义API的外部请求又名远程托管代码':
<强>功能强>
扩展程序可以进行跨域Ajax请求吗?
是。扩展可以进行跨域请求。有关详情,请参阅this page 信息。
扩展程序可以使用第三方网络服务吗?
是。扩展能够发出跨域Ajax请求,所以 他们可以直接调用远程API。以JSON格式提供数据的API 格式特别容易使用。
扩展程序可以使用OAuth吗?
是的,有一些扩展使用OAuth来访问远程数据API。 大多数开发人员发现使用JavaScript OAuth库很方便 为了简化签署OAuth请求的过程。
this google groups thread中的另一个讨论表明拒绝可能与模糊处理无关:
最终,这些是我需要做的事情才能获得我的扩展 通过(但我保持手指交叉,以防其他一些验证 仍然必须进行测试):
- 我创建了一项隐私权政策,并在Google Chrome开发人员信息中心上添加了一个链接。
- 我更详细地解释了我的扩展程序正在做什么。似乎Google需要这样才能更好地理解扩展。
- 在说明中,我明确说明了扩展如何处理个人或敏感用户数据。
最终这足以获得扩展 通过检查即使是缩小和&amp;混淆代码(但请记住我 保持我的手指交叉。)
此外,人们可以随时检查现有的扩展,例如Grammarly,谁已经混淆了代码(至少在某种程度上)以及谁使用外部API。