Chromium_doc_zh icon indicating copy to clipboard operation
Chromium_doc_zh copied to clipboard

Chromium中文文档,学习google家的架构

Chromium_doc_zh

Chromium中文文档 for https://www.chromium.org/developers/design-documents

翻译之加强对android webview理解,同时作为架构设计的学习。

还未完全完成,不断更新ing,欢迎star

gitbook地址:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh/ 适合阅读,可以导出pdf

github地址: https://github.com/ahangchen/Chromium_doc_zh

翻译了一段时间感觉内容真的好多,欢迎志同道合的朋友一起翻译。

设计文档

  • Start Here: 背景阅读: 描述Chromium的宏观架构
    • 多进程架构

      Note: 设计文档的大部分剩余部分都认为你对上面这个文档里的内容非常熟悉。

    • Chromium如何展示web界面: 自底向上概述WebKit是如何嵌入到Chromium中的

See Also: 源代码中的设计文档

https://chromium.googlesource.com/chromium/src/+/master/docs/
  • ###整体架构
    • 跨平台开发的约定与模式
    • 扩展安全架构: 扩展系统是如何降低扩展脆弱性的严重程度的
    • 硬件视频加速
    • 跨进程通信: 浏览进程,绘制器,插件进程是如何交流的
    • 多进程资源加载: 页面和图像是如何从网络加载到绘制器中的
    • 插件架构
    • 进程模型: 创建新绘制进程的策略
    • Profile架构
    • 安全浏览
    • 沙箱
      • 沙箱FAQ
      • OSX中的沙箱设计
    • 安全架构: Chromium沙箱绘制引擎是如何保护免受恶意软件侵害的
    • 启动
    • 线程: 在chromium中如何使用线程

也可以看看 V8的文档, 这是Chromium使用的Javascript引擎

  • UI Framework

    • UI开发实践: 在Chrome的content区域内外开发的最佳实践
    • Views framework: Windows和Chrome OS上使用的UI layout 层级
    • views Windowing系统: 如何用view构建对话框盒子和其他windowUI
    • Aura: Chrome下一代硬件加速UI框架,新的ChromeOS 系统由它构建而成
    • Native控制: 在view中使用平台原生widget
    • 用View和Aura实现聚焦与激活
  • Graphics

    • 概述
    • Chrome中使用的GPU加速
    • GPU特性状态仪表盘
    • 绘制架构图
    • Graphics和Skia
    • 绘制文本以及Chrome UI 文本绘制
    • GPU命令缓冲区
    • GPU程序缓冲区
    • Blink/WebCore中的组合
    • 排版线程架构
    • 绘制标准
    • 实现层绘制
    • 视频回放与排版
    • ANGLE架构表示
  • 网络栈
    • 概述
    • 网络栈的目标
    • Crypto
    • 磁盘缓存
    • HTTP缓存
    • 进程外代理解决草案[unimplemented]
    • 代理设置与回退
    • 调试网络代理问题
    • HTTP授权
    • 查看网络内部情况的工具
    • 用SPDY页面使得网络更快
    • 用OUIC页面使得网络更快
    • Cookie存储与获取
  • 安全
    • 概述
    • 保护缓存用户数据
    • 系统强化
    • Chaps技术设计
    • TPM使用
    • 每个页面的子源
    • 加密分割恢复
  • Input
    • 看这个文档chromium input(关于设计文档以及一些其他资源)
  • 绘制
    • 多列布局
    • 刷新时重置Style
    • 刷新与空间的协调
  • 构建
    • IDL构建
    • IDL编译器
    • 也可以看这个文档,GYP, the build script generation tool.
  • 测试
    • Layout测试结果面板
    • Test shell中的真实主题
    • 完全回退移除layout测试
  • 特性相关
    • 关于冲突
    • 可用性: 当前(以及将来)可用性支持的轮廓。
    • 自适应屏幕截图与镜像
    • 浏览器window
    • Chromium打印代理: 为保留打印机与未来的云服务打印机使能云打印服务
    • 强制弹出窗口
    • 桌面通知
    • Chrome on Windows的直写式Cache
    • DNS预拉取: 通过在用户打开链接前,预先解析域名,来减少延迟
    • 在浏览器窗口中,嵌入式Flash的全屏
    • 拓展: 设计文档与推荐的api : Design documents and proposed APIs.
    • 查找栏
    • 表单自动填充: 一个用合适的数据自动填充html表单的特性
    • 地理信息: 添加对W3C Geolocation API的支持,使用native WebKit bindings.
    • IDN in Google Chrome
    • 索引式DB(早期草稿)
    • 信息栏
    • 安装: 注册入口与快捷方式
    • 即时
    • 独立网站
    • Linux资源与本地化字符串: Linux资源与本地化字符串的加载
    • 媒体路由 & Web Presentation API
    • 内存使用统计后端: 我们在Chromium中如何测量内存的一些api
    • 鼠标锁定
    • 地址栏自动完成: 在地址栏中打字时,Chromium搜索并建议可能的结果
      • 快速提供历史: 由用户历史访问网站提供建议
    • 搜索栏/IME协作
    • Ozone移植抽象
    • 密码生成
    • Pepper插件实现
    • 插件能力保存
    • 选项
    • 预渲染
    • 打印预览
    • 打印
    • view中基于矩形的事件目标: 使得触摸激发view元素更加容易
    • 替换语义cookie提示
    • 安全搜索
    • Sane Time: 在Chrome中决定一个精确的时间
    • 安全web代理
    • 服务进程
    • 站点隔离: 进程内的一些工作,提高Chromium在网站安全方面的进程模型
    • 软件更新: Courgette
    • 同步
    • Tab助手
    • Tab搜索: 如果让地址栏自动提供标签来搜索你的网站
    • Tabtastic2需求
    • 临时下载
    • 时间资源: 在一个Chrome OS设备上决定时间
    • 时钟: 我们单一的时钟是如何在不同系统上工作的
    • UI镜像基础设施: 描述ChromeViews中的UI框架,允许在希伯来与或阿拉伯语这样的RTL语言环境中镜像浏览器UI
    • UI定位: 描述如何定位要加入chromium的字符串
    • 用户脚本: Chrome对于用户脚本的一些支持信息
    • 视频
    • WebSocket: 允许web应用程序与服务端进程维护一个双向的交流
    • Web MIDI
    • Web导航 API内部实现
  • OS-相关
    • Android
      • Android上的Java资源
      • JNI绑定
      • WebView代码组织
    • Chrome OS
      • 查看Chrome OS设计文档相关章节
    • Mac OS X
      • Apple脚本Support
      • BrowserWindowController对象所有权
      • 确认退出
      • Mac App模式(草案)
      • Mac全屏模式(草案)
      • Mac NPAPI插件托管
      • Mac上UI定位的相关记录
      • 菜单,快捷键和命令调度
      • IOSurface使用与语义相关会议的一些记录
      • OS X跨进程通信(已过时)
      • 密码管理/密码链集成
      • 沙箱设计
      • Tab切换设计(包括标签布局与标签拖动)
      • 扳手状菜单按钮
  • Other
    • 64位支持
    • 浏览器组件/层级组件
    • 闭合编译Chrome代码
    • 内容模块/内容API
    • 正在编写的设计文档(wiki)
    • 可移植性:进程内重构关键浏览器进程架构
    • 网络实验
    • 将float的inlinebox转为layout单元

如果觉得我的文章对您有帮助的话,不妨点个star