Chrome插件开发一(配置文件)

 

配置文件manifest.json

(0)每个插件都必须要有nameversion

 name不超过45个字符 version介于065535之间,description不超过132个字符

 

1"chrome_url_overrides": {

    "newtab": "newtab.html"

  },

新建Tab时的默认页面,用newtab.html覆盖默认的页面

2

{

  "name": "My extension",

  ...

  "browser_action": {

    "default_icon": "images/icon19.png", // required

    "default_title": "Google Mail",      // optional; shown in tooltip

    "popup": "popup.html"                // optional

  },

  ...

}

浏览器行为,默认icon,默认title,默认弹出页面。

3

{

                "theme":

                {

                                "images":

                                {

                                                "theme_toolbar": "i\/agxjaHJvbWV0aGVtZXNyDAsSBEZpbGUY34MEDA",

                                                "theme_ntp_attribution": "i\/agxjaHJvbWV0aGVtZXNyDAsSBEZpbGUYqpMEDA",

                                                "theme_frame": "i\/agxjaHJvbWV0aGVtZXNyDAsSBEZpbGUYqJMEDA",

                                                "theme_tab_background": "i\/agxjaHJvbWV0aGVtZXNyDAsSBEZpbGUY4YMEDA",

                                                "theme_ntp_background": "i\/agxjaHJvbWV0aGVtZXNyDAsSBEZpbGUY-KcFDA"

                                },

                                "colors":

                                {

                                                "ntp_section_text": [255, 255, 255],

                                                "tab_text": [0, 0, 0],

                                                "frame": [0, 0, 0],

                                                "ntp_background": [0, 0, 0],

                                                "ntp_link": [255, 255, 255],

                                                "tab_background_text": [0, 0, 0],

                                                "ntp_text": [255, 255, 255],

                                                "ntp_section": [255, 255, 255, 0.6],

                                                "ntp_section_link": [6, 45, 117],

                                                "ntp_header": [150, 150, 150, 1],

                                                "toolbar": [250, 250, 250],

                                                "bookmark_text": [0, 0, 0]

                                },

                                "tints":

                                {

                                                "buttons": [0.589, 0, 0.5]

                                },

                                "properties":

                                {

                                                "ntp_background_repeat": "no-repeat",

                                                "ntp_logo_alternate": 1,

                                                "ntp_background_alignment": "top"

                                }

                },

                "version": "3",

                "name": "AT_Rampage_v2"

}

 

Chrome的源代码中关于theme的一部分

const int kThemeableImages[] = {

 

  IDR_THEME_FRAME,

 

  IDR_THEME_FRAME_INACTIVE,

 

  IDR_THEME_FRAME_INCOGNITO,

 

  IDR_THEME_FRAME_INCOGNITO_INACTIVE,

 

  IDR_THEME_TOOLBAR,

 

  IDR_THEME_TAB_BACKGROUND,

 

  IDR_THEME_TAB_BACKGROUND_INCOGNITO,

 

  IDR_THEME_TAB_BACKGROUND_V,

 

  IDR_THEME_NTP_BACKGROUND,

 

  IDR_THEME_FRAME_OVERLAY,

 

  IDR_THEME_FRAME_OVERLAY_INACTIVE,

 

  IDR_THEME_BUTTON_BACKGROUND,

 

  IDR_THEME_NTP_ATTRIBUTION,

 

  IDR_THEME_WINDOW_CONTROL_BACKGROUND

};

所有的图片在Chrome里的定义列表

theme_toolbar:(对应IDR_THEME_TOOLBAR)工具栏图片

theme_ntp_attribution:(对应IDR_THEME_NTP_ATTRIBUTION

theme_frame:IDR_THEME_FRAME)边框图片

 

 

(4)

{

  "name": "My extension",

  ...

  "permissions": [

    "bookmarks"

  ],

  ...

}

Permissions:要想使用某些功能需要加在permissions里使其获得权限

要想使用BookMark APIs需要先声明bookmarks

5permissions:

 

"permissions": [

  "tabs",

  "bookmarks",

  "http://www.blogger.com/",

  "http://*.google.com/"

],

 

可以是已定义的应用(例如tabs  bookmarks等),也可以是一个或多个符合规范的主机地址,若要想使用XMLHttpRequest异步获取数据需要在permissions里加http://*/*以获得跨域访问的权限例如:

"permissions": ["tabs","http://*/*"]

 

 

6background_page:用来在后台处理数据,长时间运行的脚本,管理状态和任务,程序向background_page查询状态,background_page收到状态更改就通知程序更改状态

原文地址:https://www.cnblogs.com/Jonas/p/1643591.html