Web开发须知的浏览器内幕 缓存与存储篇(2)

本文禁止转载,由UC浏览器内部出品。3. HTTP Cache综述HTTP Cache是完全按照IETF规范实现的,最新的RFC规范地址是 https://tools.ietf.org/html/rfc7234。它的作用就是保存可缓存的响应以备重新使用,在下次请求时可减少响应时间和网络带宽。只有GET和HEAD method会缓存。浏览器的优化浏览器是过滤了部分没有意义进行缓存的响应头才保存到磁盘...
阅读(2276) 评论(0)

Web开发须知的浏览器内幕 缓存与存储篇(1)

本文禁止转载,由UC浏览器内部出品。0.前言大纲浏览器缓存和存储相关的功能分为四类: 加载流程 Memory Cache Application Cache(简称AppCache) HTTP Cache Cookie Storage Javascript API Web Storage Indexed Database File API Cache Storage(Service Worker的...
阅读(2568) 评论(0)

Chromium项目文化(续)

文化 文化一词,涵盖的是设计思想/理念、工作原则等精神领域的追求,也可以说是技术情怀,它是如此大型的Chromium项目能良好运作的基石,所以单独做一个总结。 1.竖立宗旨 把开源项目也运作得一家公司,对应于企业文化,Chromium提出了自己的宗旨:为用户创造更安全、更快速和更稳定的上网体验。阅读后面的章节你会发现...
阅读(3038) 评论(1)

网页浏览器发展方向总结

经过国内厂商的几轮营销轰炸,不少人都知道了浏览器有内核的概念,那么相对地,就有外壳/应用层(Shell)。十年前,用户就只对外壳有认知,直到今天这几个东西仍是标配:在HTML5/CSS3的时代,内核向Web OS发展,用户感受到在浏览器里能体验的东西越来越多。W3C被开源项目推进而制定出了很多新标准,浏览器渐渐演绎成操作系统虚拟机,模拟系统SDK提供各种API给Javascript访问系统设备。开...
阅读(4833) 评论(3)

Chromium的沙盒Sandbox

代码位置:http://src.chromium.org/viewvc/chrome/trunk/src/sandbox/Android使用和Linux一样的代码。http://src.chromium.org/viewvc/chrome/trunk/src/sandbox/linux/1.设计目的/目标纯粹地为了安全。sandbox本身就意味着程序要使用多进程架构。做到安全的方法就是让可能不安全...
阅读(4658) 评论(0)

Chromium的智能指针/引用计数/Callback/Bind

本文算是个笔记整理,不解释基本概念,有做相关工作的人才看懂哦。一、自动释放指针智能指针分两类,对有和没有引用计数实现的类做区分。没有引用计数的类,使用scoped_ptr。这个模板类中的D是指Deleter,代表如何删除T。引入Deleter最简单的原因就是对数组需要使用delete[]操作符,实际上有4个默认的Deleter。3个Deleter都是通过重载括号运算符来执行实际的delete操作,...
阅读(4282) 评论(0)

Android4.4系统浏览器Chromium实现的加载模块与流程

本文只描述Http网络请求相关的信息,Https、Spdy、file、ftp、websocket等的类型只提及在哪里出现关系分支。 下面是加载流程的xmind导出图,最好另存为到本地用看图软件看。看图提示:从上往下是根据堆栈倒置过来画的流程“..."表示省略IPC机制的代码图中有一些地方省略了Callback机制的代码同一父节点表示在此父函数内按顺序执行大部分类名和函数名已代表了其功能和意义,还可...
阅读(6990) 评论(1)

Chromium项目文化

Chromium是一个开源的浏览器项目,官方网站列出了许多文档。 官网最值得学习的地方:许多指引写得非常细致,能以老师教导学生的态度去叙述如何工作,而不是为了写文档而写文档,例如“不要害怕问问题,总有人会在IRC上帮到你”。多数文章写得很好很凝练,没法抽取主要信息,全文翻译又太耗时,不如直接看原文。所以只需要筛选出有用的信息,而不用自己总结什么。虽然一些文档会偏旧,但胜在齐全,特别是工作规范类的文...
阅读(5100) 评论(1)

SPDY、HTTP/2、QUIC协议

1 SPDY协议 1.1 概述 SPDY为speedy(单词原意:快速的)的缩写,读音也就是speedy。 SPDY协议已发布过4个草案,分别为版本1、2、3、3.1。目前版本4已在试验阶段,但未发布,Chromium里已有一些针对版本4的代码。 SPDY对比HTTP的优势: 复用连接,可在一个TCP连接上传送多个资源。应对了TCP慢启动的特性。请求分优先级,重要的资源优先传送。 H...
阅读(48207) 评论(7)

使用支持SPDY协议的Wireshark截包(含spdyshark插件)

本文基于前三篇文章,请先阅读: Linux Mint + Apache2.2搭建SSL/HTTPS/SPDY服务器Wireshark+Apache2.4解密SSLv3Linux Mint下编译安装支持SPDY协议的Wireshark...
阅读(6004) 评论(1)

Linux Mint + Apache2.2搭建SSL/HTTPS/SPDY服务器

1、安装apache sudo apt-get install apache2 2、配置SSL,支持HTTPS 这步的作用是启用SSL模块和令网站支持SSL协议。 cd到 /etc/apache2/sites-enabled ,然后执行 sudo ln -s ../sites-available/default-ssl . cd到 /etc/apache2/mods-enabled ,...
阅读(4438) 评论(0)

识别浏览器的JavaScript引擎的方法

答案来自StackOverflow,打开这个网页http://jsbin.com/opuvas即可,这个网页也是答题者自己写的。 二维码是这个网址。网页内有统计访问量,作者想知道对多少人有用,建议尊重原创,不要复制这个网页。 对PC浏览器和移动浏览器都可用。 其原理是这段js: window.onload = function() { var v8string = 'fun...
阅读(2975) 评论(0)

利用javascript和canvas获取UIWebView网页里的图片(不用再下载)

在UIWebView网页里要获取img标签的图片,网上的方法都是通过获取到URL然后自己再下载一遍,耗流量、耗时间、不能通过验证。 这里是利用UIWebView的stringByEvaluatingJavaScriptFromString函数,执行一段js,返回图片数据。 具体的方式有两种:...
阅读(12056) 评论(40)

Linux Mint 15下编译Chromium for Android

首先得看官方文档,大部分操作步骤就是那样,我就不翻译了,只做补充。https://code.google.com/p/chromium/wiki/AndroidBuildInstructions 1. 在执行这步sudo ./install-build-deps-android.sh前,修改这个脚本,把if /usr/bin/lsb_release -r -s | grep -q "12...
阅读(2872) 评论(1)

网页在Safari快速滚动和回弹的原理: -webkit-overflow-scrolling : touch;的实现

现在很多for Mobile的H5网页内都有快速滚动和回弹的效果,看上去和原生app的效率都有得一拼。 要实现这个效果很简单,只需要加一行css代码即可: -webkit-overflow-scrolling : touch;可用以下网页测试: scroll .container {...
阅读(75316) 评论(3)

Mac10.9和iOS7新公开的框架JavaScriptCore.framework

官网的介绍: The JavaScript Core framework (JavaScriptCore.framework) provides Objective-C wrapper classes for many standard JavaScript objects. Use this framework to evaluate JavaScript code and p...
阅读(5385) 评论(3)

iOS WebCore的WebEvent和EventHandler

WebEvent是iOS专有的类,负责封装和携带从UIKit得到的系统事件信息,并由WebKit层的WAKResponder子类传递到WebCore的EventHandler。 UIKit层的逻辑可参考《iOS私有API(三) UIWebView下的手势识别器gestureRecognizer》,WebKit层的相关类可参考《WebCore::Widget浅探》。 开源码中WebEvent的声...
阅读(2919) 评论(0)

查找MobileSafari WebKit revision number的方法

Mobile Safari是开源的Mac Safari的iOS版本,然而iOS WebKit并不完全开源,只公开了部分的WebCore和JavaScriptCore。有时需要知道iOS Safari的WebKit revision number是对应www.webkit.org上的哪个,可以这么看。 用Mobile Safari打开http://www.whatsmyuseragent....
阅读(2890) 评论(0)

iOS调用WebView私有API的方法

WebView的私有API请查看《UIWebView体系结构(七)WebView》。 先上代码吧 - (void)modifyUA { id webView = [uiWebViewInstance valueForKeyPath:@"_internal.browserView._webView"]; [webView performSelector:@selector(set...
阅读(7870) 评论(8)

UIWebView体系结构(八)各个Client综述

各种Clients会有些共性: 1.WebCore会声明抽象基类,各Controller持有基类类型的指针 2.由第三方创建Client并传递指针给Controller,Controller析构时会通知Client,Client此时删除自身。例如 void WebChromeClient::chromeDestroyed() { delete this; } 3.自身脱离W...
阅读(3271) 评论(0)
41条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:963912次
    • 积分:9355
    • 等级:
    • 排名:第1928名
    • 原创:126篇
    • 转载:0篇
    • 译文:0篇
    • 评论:430条
    联系方式
    博客专栏
    最新评论