Chrome Market是否接受使用缩小和/或混淆源代码的扩展程序?

时间:2016-06-06 04:37:57

标签: google-chrome-extension obfuscation minify chrome-web-store

我目前正在开发Chrome扩展程序,并计划在Chrome市场上发布它。我知道开源社区的好处,但是,不想分享源代码并且有点担心版权问题。目前,该计划是在发布之前缩小和混淆源代码。所以问题是:

Chrome Market是否接受使用缩小和/或混淆的源代码的扩展程序?

提前致谢! :)

4 个答案:

答案 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扩展程序,其中包含混淆/缩小的源代码。

例如,我发布扩展程序(LBTimer)与Google Closure之前的代码,然后再发布。{/ p>

答案 2 :(得分:2)

2019年1月1日,术语更改使上述任何现有答案都已过时。此更改was announced on October 1st, 2018

总结:

  • Google允许使用精简代码。
  • Google禁止混淆代码。

https://developer.chrome.com/webstore/program_policies处可用的特定策略如下:

  

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

     
      
  • 删除空格,换行符,代码注释和块定界符
  •   
  • 缩短变量和函数名称
  •   
  • 一起压缩文件
  •   

答案 3 :(得分:1)

以自己的经验更新

我无法提交使用this javascript-obfuscator进行模糊处理的版本(更具体地说,在我的情况下是gulp版本)他们抱怨"您的代码是可疑的"所以我猜他们的系统会触发警报。

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

原始回答:

总而言之,似乎 Chrome扩展程序可以缩小和混淆

有关详细信息,请继续阅读。

首先,有两个不同的术语 - chrome extensionchrome 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。