浏览器内核引擎开发工作的主要关注点

浏览器内核引擎开发工作的主要关注点

跳转至: 导航搜索

目录

稳定性

  1. 对Android浏览器这种既有Java代码又有C++代码来说,稳定性意味着:

    1. Java代码不应该有NPE(空指针异常)
    2. C++代码不能出现内存错误,包括:
      1. null deref
      2. 指针越界访问
      3. 重复delete、free后use、循环引用、不对齐访问 等等
  2. 在某些情况下,空指针来自于有线程安全问题的代码(存在竞争条件),这类问题无法稳定再现,必须做好设计、review、编码规范,以小心避免
  3. 空指针也有可能来自于外部模块的错误(如硬件驱动),导致某个输入不应该为空的却在某种情况下变空了
    1. 如果可能的话,对所有外部输入做仔细的校验检查!

性能

  1. 加载速度 主要考虑网络IO的优化,挖掘潜在的并行度(如Chromium引入的多线程html解析)

    1. 通过云服务器转换目标网站数据来压缩流量(称为‘云加速’?)
    2. 在某些可能的情况下,考虑先展示部分加载的数据?
    3. js加载会阻塞html解析,css应用又可能阻塞js加载,<script>可加async,前端应用可考虑优化页面结构
  2. 渲染速度
    1. js引擎(jsc/v8):增量GC、Trace JIT(优化最热执行路径)、类型提示(asm.js)
    2. layout、图形引擎(compositor)等模块的进一步性能改进(总觉得chromium应该做得很好了,而且这个也有难度)
      1. 需要了解GPU的基本原理、CPU+GPU架构的内在瓶颈
      2. Canvas/SVG的硬件加速
    3. Tiling/滚动
  3. 视频播放*
    1. 如何保证在不稳定的3G网络下流畅播放视频?
  4. 内存占用
    1. 浏览器应做到在长时间运行(一个月?)的情况下内存占用稳定,无内存泄漏
    2. 寻找WebKit核心仍然存在的一些可以优化的数据结构

功能

  1. 如果要修改浏览器内核,如何做好源代码管理,使得rebase到更高版本的upstream后,不需要做太多工作?
  2. 修改内核以增加功能的要点:
    1. 遵循W3C规范?
    2. 熟悉通过js binding增加API的方法
    3. webcore模块化?
  3. 有没有可能以插件(plugin/addon)的方式开发对应的功能,不需要修改内核?
    1. ad blocker(广告拦截)
    2. PDF.js
  4. 以user script hack-in的方式解决网站兼容性问题

其他因素

  1. 提高UI交互可用性:Accessbility、手势、语音输入、基于区域的touch事件
  2. 其他:‘夜间模式’ WebRTC WebGL
时间: 2024-08-29 12:54:25

浏览器内核引擎开发工作的主要关注点的相关文章

各种主流浏览器内核引擎的对比分析

要搞清楚浏览器内核是什么,首先应该先搞清楚浏览器的构成.简单来说浏览器可以分为 两部分,shell+内核.其中shell的种类相对比较多,内核则比较少.Shell是指浏览器的外壳:例如菜单,工具栏等.主要是提供给用户界面操 作,参数设置等等.它是调用内核来实现各种功能的.内核才是浏览器的核心.内核是基于标记语言显示内容的程序或模块.也有一些浏览器并不区分外壳和内核. 从Mozilla将Gecko独立出来后,才有了外壳和内核的明确划分.目前主流的浏览器有IE6.IE8.Mozilla.FireFo

浏览器渲染引擎介绍(备忘)

Trident.Gecko.Presto.WebKit --是4种常见的浏览器内核(1)Trident 是微软的Windows搭载的网页浏览器--Internet Explorer浏览器使用的内核(俗称IE内核)(2)Gecko Gecko是开放源代码.以C++编写的网页排版引擎,目前被Mozilla家族网页浏览器以及Netscape 6以后版本浏览器所使用. 也就是现在的Firefox(3)Presto Presto是一个由Opera Software开发的浏览器排版引擎,目前Opera 7.

浏览器内核Trident/Gecko/WebKit/Presto

原文网址链接http://tools.yesky.com/19/34456519.shtml "浏览器内核"主要指渲染引擎(Rendering Engine),负责解析网页语法(如HTML.JavaScript)并渲染.展示网页.因此,所谓的浏览器内核通常也就是指浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息.不同的浏览器内核对网页编写语法的解析也有所不同,因此同一网页在不同的内核浏览器里的渲染.展示效果也可能不同. 浏览器内核种类繁多,商用的加上非商

目前主流的四大浏览器内核Trident、Gecko、WebKit以及Presto

“浏览器内核”主要指渲染引擎(Rendering Engine),负责解析网页语法(如HTML.JavaScript)并渲染.展示网页.因此,所谓的浏览器内核通常也就是指浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息.不同的浏览器内核对网页编写语法的解析也有所不同,因此同一网页在不同的内核浏览器里的渲染.展示效果也可能不同.     一.Trident内核(代表:Internet Explorer) .      Trident(又称为MSHTML),是微软开发

浏览器内核、引擎、页面呈现原理及其优化

浏览器内核.引擎.页面呈现原理及其优化 介绍浏览器内核.JavaScript 引擎以及页面呈现原理等基础知识,同时根据原理提出页面呈现优化方案. 浏览器内核 浏览器内核又叫渲染引擎,主要负责 HTML.CSS 的解析,页面布局.渲染与复合层合成.浏览器内核的不同带来的主要问题是对 CSS 的支持度与属性表现差异. 现在主流的内核有:Blink.Webkit.Gecko.EdgeHTML.Trident,这里面有几个需要注意的地方: Blink 是在 Webkit 的基础上的改进,是现在对新特性支

主流浏览器内核介绍(前端开发值得了解的浏览器内核历史)

内核 首先得搞懂浏览器内核究竟指的是什么. 浏览器内核又可以分成两部分:渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎.它负责取得网页的内容(HTML.XML.图像等等).整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显示器或打印机.浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同.所有网页浏览器.电子邮件客户端以及其它需要编辑.显示网络内容的应用程序都需要内核.JS 引擎则是解析 Javascript

Rendering Engine 主流的浏览器内核(排版引擎、渲染引擎、解释引擎)有哪几种,分别的特点

一.A web browser engine A rendering engine is software that draws text and images on the screen. The engine draws structured text from a document (often HTML), and formats it properly based on the given style declarations (often given in CSS). Example

关于主流浏览器内核(排版引擎)(渲染引擎) 的整理介绍

 前情提要: 众多的浏览器,主流的内核就几个,那么各种浏览器究竟使用的哪种内核,各种内核又有什么优劣,使用浏览器的我们应有适当了解,选择自己喜欢的浏览器. 注 :内容多为查阅网络资料整理,少量个人主观意见,如有错误,谢谢指正. 一.什么是 浏览器内核 谷歌浏览器,火狐浏览器,360浏览器,Safari浏览器,欧朋浏览器,qq,uc,傲游,世界之窗...没错他们是浏览器.什么是浏览器内核呢 ,叫做“内核”基本上可以定义为浏览器最为重要的一部分,那么它的重要在哪里?它的作用是什么? 维基百科上这样解

浏览器内核、排版引擎、js引擎

[定义] 浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“渲染引擎”,不过我们一般习惯将之称为“浏览器内核”.负责对网页语法的解释(如标准通用标记语 言下的一个应用HTML.JavaScript)并渲染(显示)网页. 所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及 页面的格式信息.不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不