CHROME扩展开发揭秘精品PPT课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– 生命周期管理
扩展和原生的关系
• 对于重要功能浏览器原生支持
– 新标签页 – 广告过滤 – 书签同步
猎豹原生广告过滤
完美支持扩展
• IE核支持扩展
扩展进程
IE Render JS引擎
Content Script
写在最后
经常不断地学习,你就什么都知道。你知道得越多,你就越有力量 Study Constantly, And You Will Know Everything. The More
CHROME Extension
• 最小权限分级
– 执行任意代码 – 访问网站 – 扩展API
API 分类
权限分割
• Content Script
– 利用标准DOM API – 给扩展进程发送JSON消息
• Extension Core
• Native Binary
– NPAPI Library
UI Page
• Popup page • Chrome.tabs.create() • Window.open() • Override Page: Bookmark manager,History , New Tab
Content Script
实例分析
ABP 深入剖析
Background Page
请求规则
ContentScript2:过 滤规则匹配
页面加载通知
配置
页面
Option Page
规则下载
Subscription 规则保存
FilterStorage
Manifest文件
初始化,得到数据
Background页面的消息处理
回调中处理广告过滤
Block广告元素
wenku.baidu.com 过滤函数
规则下载,保存
Isolated Mechanism
• Origin
– Run the extension core in a unique origin designated by a public key
• Process Isolation
– Cross –origin JS capability leaks
支持的API
设定定时器 书签相关操作 浏览器工具栏上面的展现 清除浏览数据 操作上下文菜单 操作Cookie 操作历史 代理相关设置 存储(大小受限) 操作标签页 最近访问网站
Navigate回调 截获网络请求
可用的其他API
• 标准 JavaScript APIs 核心JavaScript and Document Object Model (DOM) APIs • XMLHttpRequest
Use XMLHttpRequest to request data from one or more servers. The permissions field of the manifest specifies which hosts the extension can send requests
猎豹浏览器对于扩展的支持
跟随CHROME的优化
• 为了解决Background Page长期占用内存 • Event Page按需装载
– 加载时机 • 第一次安装 • 监听事件到达 • Content Script发送消息 • 其他页面调用 chrome.runtime.getBackgroundPage()
You Know, The More Powerful You Will Be
谢谢大家
荣幸这一路,与你同行
It'S An Honor To Walk With You All The Way
演讲人:XXXXXX 时 间:XX年XX月XX日
• HTML5 API
– audio – application cache – Canvas – geolocation – local storage – Notifications – Video – web database
• WebKit APIs • V8 APIs, such as JSON • APIs in bundled libraries jQuery
• Isolated Worlds
– Content script accesses the DOM with its “own” JS object
Content Script 和页面JS的隔离
CHROME Extension架构
Background页面
CHROME.* API
• 大部分是异步API
CHROME扩展开发揭秘
金山网络 张志和
CHROME扩展历史
Aaron Boodman/Greasemoney
设计思想
• 最小权限(Least Privilege) • 权限分割( Privilege Separation) • 强隔离( Strong Isolation)
安全性
FireFox Extension安全性问题
• alarms: • bookmarks: • browserAction: • browsingData • contextMenu • Cookies • History • Proxy • Storage • Tabs • topSites • webNavigation • webRequest
• 跨站脚本Cross-Site Scripting – eval document.write() – evalInSandbox
• 替换Native APIs • JavaScript Capability Leaks
– 每个网页可以使用XMLHttpRequest • 内容混合(HTTP和HTTPS)
相关文档
最新文档