sysdzw
小狐狸
小狐狸
  • UID32438
  • 注册日期2010-03-31
  • 最后登录2017-04-21
  • 发帖数50
  • 经验18枚
  • 威望0点
  • 贡献值8点
  • 好评度0点
阅读:2153回复:11

我的扩展提交检测,提示:警告: Extensions should not alter preferences in the `general.useragent.` preference branc

楼主#
更多 发布于:2014-01-18 16:37

具体相关代码:
警告: Extensions should not alter preferences in the `general.useragent.` preference branch

content/lib.js

789
var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);var sLocale = prefs.getCharPref("general.useragent.locale");
if (sLocale !="zh-CN" && sLocale !="zh-TW")

不让用general.useragent,那用什么方法替代呢?在早期的版本上是可以的。
我将general.useragent改成'gene' + 'ral.useragent'这样可以避开自动检测工具,但是在人工审查的时候还是被发现了。


检测结果页面:
https://addons.mozilla.org/zh-CN/developers/upload/12a3b7ad06c5468c99a97e5d60cd515e
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
1楼#
发布于:2014-01-18 17:38
说的是不应该更改(alter),而不是不让用
看你的代码片段只是取值,并没有更改

检测结果页面看不了
可能是只有你自己可见
sysdzw
小狐狸
小狐狸
  • UID32438
  • 注册日期2010-03-31
  • 最后登录2017-04-21
  • 发帖数50
  • 经验18枚
  • 威望0点
  • 贡献值8点
  • 好评度0点
2楼#
发布于:2014-01-18 20:01

图片:89090.jpg



谢谢楼上的回答,您帮我再看看呢。
sysdzw
小狐狸
小狐狸
  • UID32438
  • 注册日期2010-03-31
  • 最后登录2017-04-21
  • 发帖数50
  • 经验18枚
  • 威望0点
  • 贡献值8点
  • 好评度0点
3楼#
发布于:2014-01-18 20:33

图片:QQ截图20140118203201.jpg



我其实就是想获取下当前浏览器的语言,不知道是否有其他方法
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
4楼#
发布于:2014-01-18 20:37
这不是一样嘛
再说这个也只是警告
具体看你的扩展要这个值做什么
可能能用其他方式实现
一定要用这个方式的话,直接和审核的沟通看看?
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
5楼#
发布于:2014-01-18 21:25
发现多了一个3楼……
取locale的目的是为了多国语言界面的话
https://developer.mozilla.org/en/docs/Building_an_Extension#Localization
https://developer.mozilla.org/en/docs/Localizing_an_extension
https://developer.mozilla.org/en/docs/Mozilla/Localization/Localizing_extension_descriptions
The current app locale will be searched for and then there will be a fallback search for en-US.
sysdzw
小狐狸
小狐狸
  • UID32438
  • 注册日期2010-03-31
  • 最后登录2017-04-21
  • 发帖数50
  • 经验18枚
  • 威望0点
  • 贡献值8点
  • 好评度0点
6楼#
发布于:2014-01-18 23:18
aaaa007cn:发现多了一个3楼……
取locale的目的是为了多国语言界面的话
https://developer.mozilla.org/en/docs/Building_an_Extension#Localization
https://develo...
回到原帖
上面的这些我知道的,是否有可通过代码来获取这个值呢。

var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
var sLocale = prefs.getCharPref("general.useragent.locale");
这是我知道的一种方法。可以取得zh-CN和n-US这样的值。
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
7楼#
发布于:2014-01-19 00:13
不明白你为什么执着于通过代码获取……
prefs中只有general.useragent.locale保存locale信息
翻了下,addon sdk也是查询这个值的
https://github.com/mozilla/addon-sdk/blob/master/lib/sdk/l10n/locale.js
sysdzw
小狐狸
小狐狸
  • UID32438
  • 注册日期2010-03-31
  • 最后登录2017-04-21
  • 发帖数50
  • 经验18枚
  • 威望0点
  • 贡献值8点
  • 好评度0点
8楼#
发布于:2014-01-19 09:07
aaaa007cn:不明白你为什么执着于通过代码获取……
prefs中只有general.useragent.locale保存locale信息
翻了下,addon sdk也是查询这个值的
https://github.com/mozilla/addon-sdk...
回到原帖
我在alert里面弹出消息的,要根据浏览器语言来显示中文还是英文,还是其他什么的。

不是直接xul固定模式那样的。
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
9楼#
发布于:2014-01-19 16:30
sysdzw
小狐狸
小狐狸
  • UID32438
  • 注册日期2010-03-31
  • 最后登录2017-04-21
  • 发帖数50
  • 经验18枚
  • 威望0点
  • 贡献值8点
  • 好评度0点
10楼#
发布于:2014-01-19 19:14
aaaa007cn:看来你没有仔细看5楼第2个链接
https://developer.mozilla.org/en/docs/Localizing_an_extension#Localizing_strings_in_JavaScript_code
回到原帖
懂了,原来还是利用xul,让系统启动时自动加载跟浏览器一致的语言文字,然后直接调用。  这样的话跟用到这个变量再去获取的方法相比会一直占着内存,怪不得火狐占用内存大呢。
SoIN
小狐狸
小狐狸
  • UID35408
  • 注册日期2011-03-08
  • 最后登录2014-02-14
  • 发帖数82
  • 经验12枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
11楼#
发布于:2014-02-13 23:08
理論上你能獲取,就能修改,即便你確實只是拿來作為判斷,但檢測器無法判定那麼詳細,同樣審核者也不一定會看到那麼詳細,所以得到的結論就是只要企圖呼叫比較關鍵的物件,就先默認擋下來吧…
游客

返回顶部