-
Notifications
You must be signed in to change notification settings - Fork 77
chrome带有whitelist的API browser_tests测试
启动白名单的web app
命令行参数:chrome.exe --whitelisted-extension-id=XXX
。
extension_id查看方法,load进chromium后在extension页面查看
manifestion.json
文件key
域,官方文档解释:
"key" : public key. This value can be used to control the unique ID of an extension, app, or theme when it is loaded during development.
To get a suitable key value, first install your extension from a .crx file (you may need to upload your extension or package it manually). Then, in your user data directory, look in the file Default/Extensions///manifest.json. You will see the key value filled in there.
key
域一般不需要用到,用途是保证安装在chrome上时,ID是唯一的并且不变,不管load多少次。一般用在chromium的browser_tests测试中。
获得“public key”方法:使用chromium的package功能把extension源码打包成crx安装文件,然后安装。生成Default/Extensions/<extensionId>/<versionString>/manifest.json
文件,文件中就有key的值,记录下来复制到源码的manifestion
文件中即可。
Chromium限制性API的browser_test测试
- 测试的extension代码需要使用whitelist启动,启动参数需要指定extension id到whitelist中。
- manifest中
key
域,保证每次加载进来的extension的id保持不变,与1对应。 - manifest中要有相关的
permission
域, 如permission: ["systemInfo.storage"]
。
chrome extension api权限控制相关C++代码
chrome/common/extensions/permissions/api_permission.h
chrome/common/extensions/permissions/chrome_api_permissions.cc
-
chrome/common/extensions/api/_permission_features.json
// 控制API能够被哪种类型web app使用(extension, packaged_app, hosted_app, platform_app) -
chrome/common/extensions/api/_api_features.json
// API feature, 匹配manifest文件的permission field
LLVM/Clang
C/C++
- Get lower 32 bits from uint64
- How to unpack a std::tuple to a function with multiple arguments?
- {}-list Initialization
- Empty macro arguments
- 为什么能在函数中以by value方式返回unique_ptr?
- c++unsigned类型提升
- extern "C"
Linux
- ubuntu获取源码方法
- gcc/g++常用命令
- 浏览器导入安全证书
- ubuntu下宏包latex安装
- Bash Shell常用快捷键
- ubuntu把/tmp目录挂载到内存
- tar命令
- voyager12.04 apt-get install无法安装解决方法
- terminal shows git branch
- 编译GTK API源程序(附带pkg-config用法)
- ldconfig检查库是否存在
- Googletest Setup&Install
- Centos设置service开机自动启动
- CentOS create admin user
- 设置时区
- MySQL修改root密码
- MySQL常用命令
- Screen使用
- 环境变量
- Unity桌面环境的desktop文件
- zip和gzip文件区别
- Linux安全设置
Vim
- vim列编辑
- vim编辑二进制文件
- vim quickfix窗口
- Vim 批量操作
- Vim对多行重复操作
- mac下vim编译安装
- mac下vim taglist无效解决方法
- Vim 配置vim-airline
Tools
- gdb cgdb命令
- Source Insight添加.cc文件
- Source Insight快捷键
- GPT分区转MBR分区
- IRC工具Pidgin使用
- iTerm2 shortcuts
- MacOS shortcuts
- Compile/Run JUnitTest in Command Line
- Install Python2.7 on CentOS 6.4
- Install vmware tool on ubuntu server 12.04
- node-gyp Usage
- zsh中文乱码解决方法
- tmux快捷键
- 使用aria2突破百度云盘限速
- 配置 scheme编写环境
- How to list all available targets in ninja
Others
- CRLF换行符
- Git autocrlf设置
- Git reflog数据恢复命令
- how to migrate from SVN repo to Git repo
- Git submodule使用
- Git Pull强制更新
Chromium-Dev tips