adblockplus for chrome之manifest.json文件简单分析

由于adblock for chrome是chrome浏览器的一个插件,当然要遵循extension机制的规范,在编译生成文件中的manifest.json文件相当于是此插件的控制中心,其中配置了各种运行期的重要文件,此文件内容如下:

{
  "background": {
    "scripts": [
      "ext/common.js", 
      "ext/background.js", 
      "lib/compat.js", 
      "lib/info.js", 
      "lib/io.js", 
      "lib/adblockplus.js", 
      "lib/punycode.js", 
      "lib/publicSuffixList.js", 
      "lib/basedomain.js", 
      "lib/sha1.js", 
      "lib/jsbn.js", 
      "lib/rsa.js", 
      "webrequest.js", 
      "popupBlocker.js", 
      "iconAnimation.js", 
      "background.js"
    ]
  }, 
  "browser_action": {
    "default_icon": {
      "19": "icons/abp-19.png", 
      "38": "icons/abp-38.png"
    }, 
    "default_popup": "popup.html", 
    "default_title": "__MSG_name__"
  }, 
  "content_scripts": [
    {
      "all_frames": true, 
      "js": [
        "ext/common.js", 
        "ext/content.js", 
        "include.preload.js"
      ], 
      "match_about_blank": true, 
      "matches": [
        "http://*/*", 
        "https://*/*"
      ], 
      "run_at": "document_start"
    }, 
    {
      "all_frames": true, 
      "js": [
        "include.postload.js"
      ], 
      "match_about_blank": true, 
      "matches": [
        "http://*/*", 
        "https://*/*"
      ], 
      "run_at": "document_end"
    }
  ], 
  "default_locale": "en_US", 
  "description": "__MSG_description_chrome__", 
  "icons": {
    "128": "icons/abp-128.png", 
    "16": "icons/abp-16.png", 
    "32": "icons/abp-32.png", 
    "48": "icons/abp-48.png"
  }, 
  "manifest_version": 2, 
  "minimum_chrome_version": "28.0", 
  "name": "__MSG_name_devbuild__", 
  "options_page": "options.html", 
  "permissions": [
    "tabs", 
    "http://*/*", 
    "https://*/*", 
    "contextMenus", 
    "webRequest", 
    "webRequestBlocking", 
    "webNavigation", 
    "unlimitedStorage", 
    "notifications"
  ], 
  "version": "1.8.7.1271", 
  "web_accessible_resources": [
    "block.html"
  ]
}
简单来说,此文件是根据两个配置文件生成:metadata.common和metadata.chrome;下面是此文件中的几个重要属性:

1、“background”属性定义出了本插件运行期间的后台脚本,比如ext/common.js文件用于声明插件中用到的自定义接口或extensions接口;ext/background.js文件用于监控chrome浏览器的行为,如tab页创建以及网页请求等事件;lib/adblockplus.js文件用于规则文件的解析及匹配,需要重点关注;webrequest.js文件用于监听chrome浏览器的网络请求,是决定此资源文件是否需要被过滤的入口;background.js文件作用比较多,包括导入规则文件和其他js文件,消息处理等;

2、"browser_action"属性指定了此插件在浏览器扩展信息栏中的图标,以及选择此图标之后弹出的页面:


3、"content_scripts"属性描述了此插件的相关信息:如"all_frames": true指定了脚本可以在所有frame中运行,"js"指定的文件可以在"run_at"时间注入到"matches"指定规则的网页中,具体个字段的意义可以参照360的contentscript设计指导http://open.chrome.360.cn/html/dev_content_scripts.html;

4、"default_locale"属性指定了此插件的国际化支持情况("default_locale": "en_US");

5、“description"、"icons"、 "manifest_version"、"minimum_chrome_version"、"name"、"options_page"、"version"属性表明了此插件的相关描述性信息;

6、"permissions”及web_accessible_resources"属性指定了此插件运行期间所具有的权限信息:


可以看出,此文件符合一般插件类所遵循的规则,从这个文件的配置信息也可以清晰的看出此插件运行期间的大概逻辑。


接下来就要从adblock.js入手分析此插件运行的具体流程。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值