This repository has been archived by the owner on Nov 8, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 299
Manifest Introductions of heX (Simplified Chinese)
Lu Yuan edited this page Apr 8, 2014
·
3 revisions
一些配置参数需要在浏览器环境创建之前进行处理,或者是需要传给浏览器对象进行初始化。所以参考 Chrome 扩展的模式,heX 中也引入了清单文件。清单文件为一个名为 manifest.json
的 JSON 格式文本文件,里面包含了众多配置项。
heX 的主程序 - hexclient 在启动时读入并解析清单文件,若读取或解析出错,主程序都将退出。
{
"first_page": "chrome://version", // 首页,可以是 URL 或者一个本地文件路径
"application_title": "Hello heX!", // 程序默认标题,alert 等窗口使用
"version": "1.0", // 程序版本信息
"locale": "zh-CN", // 浏览器区域设置
"multiple_process": false, // 是否为多进程模式
"launch_node_in_all_pages": false, // 在打开的所有页面中使用 Node.JS
"load_node_manually": false, // 是否手动加载 Node.js
"disable_async_node_apis": false, // 是否禁用 Node.JS 异步 API
"remote_debugging_port": 65432, // 远程调试端口
"disable_debug_log": true, // 是否禁止生成 Chromium 调试信息
"quit_after_main_window_closed": false, // 是否在主窗口关闭后退出
"cache_path": "data", // 缓存路径
"npapi_plugin_directory": "", // NPAPI 插件路径
"disable_ime_composition": false, // 禁用 IME composition
"form": {
"style": "captionless", // 窗口类型:标准、无标题、桌面 Widget
"plain": false, // 是否为扁平窗口
"system_buttons": true, // 是否显示默认的系统控制按钮
"transmission_color": "none", // 穿透颜色
"transparent_browser": true, // 是否为透明浏览器
"fixed": false, // 窗体是否可以调整大小
"disable_form_apis": false, // 是否禁用所有窗口相关 API
"opacity": "none", // 窗口透明度
"hook_system_command": false, // 是否拦截窗口的系统命令
"launch_state": "normal", // 启动初始状态
"launch_width": 800, // 启动初始宽度
"launch_height": 600, // 启动初始高度
"launch_x": "screen_centered", // 启动初始 X 轴位置
"launch_y": "screen_centered", // 启动初始 Y 轴位置
"min_width": 0, // 最小宽度
"min_height": 0, // 最小高度
"max_width": 0, // 最大宽度
"max_height": 0, // 最大高度
"border_width": 5 // 模拟边框区域宽度
},
"browser": {
"no_proxy_server": false,
"winhttp-proxy-resolver": false,
"disable_gpu": true,
"disable_3d_apis": false,
"disable_databases": false,
"disable_experimental_webgl": false,
"disable_file_system": false,
"disable_geolocation": false,
"disable_gpu_process_prelaunch": true,
"disable_java": false,
"disable_javascript": false,
"disable_javascript_i18n_api": false,
"disable_local_storage": false,
"disable_logging": false,
"disable_plugins": false,
"disable_renderer_accessibility": false,
"disable_session_storage": false,
"disable_speech_input": false,
"disable_web_sockets": false,
"in_process_gpu": false,
"in_process_plugins": false,
"web_security_disabled": true,
"file_access_from_file_urls_allowed": true,
"universal_access_from_file_urls_allowed": true
}
}
-
first_page:
$(AppDir)
代表当前程序路径(包含“/”),也可以是 file 协议 URL 或者本地路径。 -
launch_node_in_pages:默认情况下,通过
window.open()
弹出的子窗口中将不会启动 Node.js,开启此配置项后则始终在弹出的子窗口中启动 Node.js。 -
load_node_manually:当需要自定义 Node.js 启动时机的时候开启此配置项,这时需要在页面中通过加入
<script></script>
标签或者用 JavaScript 动态插入node.js
文件。 - disable_async_node_apis:此时 Node.js 的 event loop 将停止运行。
-
disable_debug_log:此时将不会再生成
debug.log
文件。 - quit_after_main_window_closed:默认情况下,只有所有的浏览器窗口都关闭后,程序才会退出。
- npapi_plugin_directory:当此项为空时会默认使用当前工作路径作为 NPAPI 插件加载路径。
- disable_ime_composition:开启后将禁用输入法输入时的 Composition String,参见:http://msdn.microsoft.com/en-us/library/windows/desktop/dd317765(v=vs.85).aspx。
- form
-
style:有三种取值,不区分大小写:
-
standard
:标准窗口,与系统主题一致。 -
captionless
:无标题栏的窗口,可以自绘标题栏。 -
desktop_widget
:桌面 Widget 窗口,将会固定在桌面上,不会随着显示桌面而最小化。
-
- plain:开启此配置后窗口将以扁平化状态呈现,此配置只针对非标准型窗口。对于 Windows XP,则不会显示窗口阴影;对于 Windows Vista 及更新的系统,则不会显示 Aero 效果(再系统支持及开启 Aero 的情况下)。
-
system_button:对于支持 Aero 的 Windows,开启此配置项后,将会始终显示 Aero 框架所带的最小化、最大化、关闭控制按钮。此配置项仅在支持 Aero 的 Windows、开启了 transparent_browser 及 style 不为
standard
的情况下可以看到效果。 -
transmission_color:穿透颜色可能有两类取值,
none
表示关闭,#RRGGBB
表示一个 HTML 的颜色值,如#0000FF
,也支持简写#666
,属性值不区分大小写。浏览器窗口中遇到穿透颜色所指的颜色值时将不再响应鼠标事件,直接穿透到其下方的窗口,并且在视觉上可以直接看到下方的窗口。此配置项可以制作不规则窗口。 - transparent_browser:对于支持并且开启了 Aero 的 Windows 系统,开启此配置项后,整个浏览器区域将变为透明。但需要 HTML 元素的背景色为透明时才能看到效果。
- fixed:开启此配置项后窗口将不能被调整大小。
-
opacity:透明度可能有两类取值,
none
表示关闭,0-255
的整数值表示 透明 到 不透明。 -
launch_state:启动的初始状态可能有下面几种取值:
-
normal
表示默认 -
minimized
表示最小化状态 -
maximized
表示最大化状态 -
hidden
表示隐藏状态 -
fullscreen
表示全屏状态
-
-
launch_width:启动的初始宽度值可能有下面两种取值:
-
system_default
表示采用系统默认的宽度 - 整数值 表示像素为单位的宽度值
-
-
launch_height:启动的初始高度值可能有下面两种取值:
-
system_default
表示采用系统默认的高度 - 整数值 表示像素为单位的高度值
-
-
launch_x:启动的初始 X 轴位置可能有下面几种取值:
-
system_default
表示采用系统默认的 X 轴位置 -
parent_centered
表示相对父窗口水平居中 -
screen_centered
表示相对屏幕水平居中 - 整数值 表示像素为单位的 X 轴位置
-
-
launch_y:启动的初始 Y 轴位置可能有下面几种取值:
-
system_default
表示采用系统默认的 Y 轴位置 -
parent_centered
表示相对父窗口垂直居中 -
screen_centered
表示相对屏幕垂直居中 - 整数值 表示像素为单位的 Y 轴位置
-
- min_width:窗口的最小宽度,单位为像素,0 代表无限制
- min_height:窗口的最小高度,单位为像素,0 代表无限制
- max_width:窗口的最大宽度,单位为像素,0 代表无限制
- max_height:窗口的最大高度,单位为像素,0 代表无限制
- border_width:在为标准窗口模式下,模拟出来的边框区域宽度,在此宽度之内可以调整窗口的大小
-
style:有三种取值,不区分大小写:
- browser
- browser 对象中的各项与 Chromium 以及 Blink 的开关保持一致,true 表示使用开关。请参见:http://peter.sh/experiments/chromium-command-line-switches/。