Google Chrome的实现技术

谷歌页面实现技术简介 谷歌页面实现技术简介,利用CSS和DIV如何实现google主页面的排版布置,对于初学者来说是个容易上手的例子 立即下载

1 尝鲜

Hey,想来你也知道互联网流行先锋google最近又折腾出了个chrome frame 了, 号称可以让你在IE中享受一下google的渲染引擎和V8 的非凡速度。

使用方法有两种,对于内容发布者而言,要做的是在页面中加入一句:

  • <meta http-equiv="X-UA-Compatible" content="chrome=1">

我们大众用户在使用上简单一些,只要在正常输入的网址前加打三个字符 "cf:",这里的cf当然就是Chrome Frame的缩写了。

以上是本周内被无数知名门户网站和个体户Blog都说到烂的内容^_^ 。区区作 为程序员,今天补充一下Chrome Frame的实现原理说明,和八卦(惯例)。

2 浏览器开发架构

在上世纪90年代的浏览器混战中,Mozilla和IE扬名天下,并最终以IE捆绑 windows的全面胜出结束战局。这场大战中出现的软件、设计、平台、标准都影 响深远,可以说直接完成了当下互联网平台的根基(如果没有Mozilla,我们也 难见到现在的Webkit)。

与其它小众浏览器产品不同,IE和Mozilla(网景)都以推动整个互联网世界为己 任(当然都不排除各自的私心)。两个巨头都不约而同地选用C++作为开发语 言,并且分别建立了组件架构和扩展重用机制。IE使用COM , Mozilla使用 XPCOM , 这种开放性的架构给后来的互联网应用带来了无限可能。

COM和XPCOM的扩展能力是等价的。所以当你看不到迅雷看看、网银插件、 QZone的Firefox版,其实并不是因为火狐的功能设计有问题,而是这些公司开发插件太懒~

3 插件开发者的转移

由于IE使用COM的方式扩展,使得许多OLE技术人员能利用手头熟悉的工具迅速 转型,加上无敌的MSDN。可以说IE最先吸引的大量的扩展应用,比如著名的 3721就是在这个时期出现的。

IE扩展的一个主要缺点,是使用本地代码,在没有安全防护的情况下,IE几乎 成了木马病毒的温床,咳,比如著名的*721就是在这个时期出现的^_^ 。

转机出现在IE6发布之后,IE6确定胜局之后,MS几乎完全停止了与浏览器相关 的推进工作。如果你是程序员,你会发现,MSDN中关于浏览器的文档,在IE6之 后就没有什么改进了。MS似乎以为Mozilla已经完灭,转而专心对抗Java了(真 累!)

Mozilla Firefox就在此时横空出世。继承自XPCOM,FF为熟悉javascript的开 发者和爱好者提供了一个便捷、安全、快速扩展浏览器的方案。FF变聪明了, 在完全开源的同时,还不断完善文档服务-MDC -。很快,FF就成为最受开发人员 欢迎的浏览器,要知道,得到开发人员,就等于得到市场(看看例子:Java、 MSDN、 Linux、 PHP)。当然,有一些复杂的扩展如IE tab ,光用js是完成不 了的,但是IE tab和FF都有源码,又天天更新,我们就不细谈了。

4 Chrome Frame的扩展方式实现

如果我们要做一个Firefox Frame(ff: ^_^)。要怎么做呢,MSDN上的IE扩展帮 助虽然很旧,但还是非常有用的。 现在就开说说这些过时得很的技术吧: 用regedit打开注册表项:

  • /HKEYCLASSES ROOT/PROTOCOLS/Handler/

在这里你能看到许多邪恶和善良的IE扩展,其中的mailto和ftp大家都认识吧,cf和 它们几乎一样,就是有点不老实,把所有内容都骗IE,说它们不是htm不是gif 不是jpeg,而是"application/chromepage"! 那IE并不认识chromepage对吧,所以IE会查注册表

  • /HKEYCLASSES ROOT/MIME/Database/Content Type/application/chromepage

这里告诉IE说,让{3E1D0E7F-F5E3-44CC-AA6A-C0A637619AB8}COM对象来帮你 吧,它知道怎么做。喔,所以IE又去问{3E…}咯,这个{3E…}是谁?查查注 册表发现原来是HKEYCLASSES ROOT/ChromeTab .ChromeActiveDocument。 Google的程序是优秀的,命名一目了然,告诉了我们使用的是ActiveDocument 技术。

以上是cf:的实现方式。那那个叫meta的tag呢,抱歉在注册表中线索不多,提 示一下,在HKEYCLASSES ROOT/ChromeTab .ChromeActiveDocument附近有个类叫 HKEYCLASSES ROOT/ChromeFrame .Bho的,作为开发者没听过BHO,不可能吧。 好了,回去翻翻MSDN中关于Binary Behaviors的文档吧。

方法总结:

  • 先用Asynchronous Pluggable Protocols骗过IE的页面引擎
  • 再用ActiveDocument显示chrome的渲染内容
  • 或者直接用Binary Behaviors

都是非常Old School的技术,在Google手中,却如此惊艳。我们是不是应该不 要那么浮澡,专门做好手中的活,别问什么技术过不过时的话呢?

Author: Joyer Huang <collger@sina.com>

Date: 2009-09-26 01:41:43

HTML generated by org-mode 6.21b in emacs 23

深入解析Mifare Classic Crypto1认证流程与密钥交换机制 本文深入解析Mifare Classic Crypto1认证流程与密钥交换机制,详细介绍了Crypto1加密算法的工作原理、认证初始化阶段、随机数交换与密钥流生成过程,以及双向验证步骤。文章还分析了Mifare Classic的安全漏洞,包括随机数生成缺陷和密钥流恢复攻击,并提供了Proxmark3实战演示和防护建议。 阅读详情

相关推荐

STM32F103 实例应用(10)——I2C读写24C32

一、应用简介 本文介绍24C32的读写,基于野火的软件I2C程序。 board_i2c.h /**=========================================================================== @file board_i2c.h @brief 本文件是用于I2C驱动 @author 青梅煮久 @version r0.1 @date 2021/01/13 -------------------------.

qq_34118600的博客 3447

谷歌chrome浏览器的源码分析(一)

随着网络技术的发展,越来越多应用都已经离不开网络,特别像人类大脑一样的知识库的搜索引擎,更加是离不开功能强大的云计算。不过,即便云计算非常强大,但它还不能直接地把结果呈现给用户,这样就需要一个客户端来呈现出来,这个客户端就是浏览器。现在越来越多人上网,他们每一次上网,都离不开浏览的使用,这已经是一个不可缺少的软件了。这里介绍和分析谷歌推出有创新的浏览器,它的速度比其它浏览器快很多,那么它是怎么实现

GarfieldEr007的专栏 1万+

香橙派5b 移植 imx415

修改设备树,以为例,关闭ov13855,添加imx4151;0;1;0;1;0;1;0;1;0;1;0;1;0;以此类推,修改三个dtsi。

ChenYX的博客 4531

Chrome开发流程

熟悉Chrome插件的工作原理,包括其使用的技术栈(HTML、CSS、JavaScript)和插件与浏览器的交互方式。:Chrome提供了丰富的API,允许插件与浏览器的各种功能进行交互,如标签页操作、书签创建、历史记录访问等。:这是配置插件的基础,定义了插件的名称、版本、权限、后台脚本等关键信息。:在不同的浏览器版本和操作系统上测试你的插件,确保其兼容性和稳定性。:优化你的代码和资源,确保插件运行高效,不会影响浏览器的性能。:为你的插件编写清晰的文档,说明其功能、安装和使用方法。

MUKAMO的博客 612

一文梳理金融风控建模全流程(Python)

。借助A卡模型,银行或金融机构能够根据申请人的个人信息和历史数据,对其进行风险评估。这种评估能够帮助金融机构判断借款人是否具备偿还贷款的能力和意愿。

weixin_43420291的博客 4776

AES-GCM加密认证模式:原理、优势与实战应用

在数据安全领域,加密与认证是保障信息机密性和完整性的两大基石。加密确保数据内容不被窃取,而认证则验证数据来源的真实性和传输过程中是否被篡改。传统的加密后认证方案如AES-CBC+HMAC需要串行处理,性能开销较大。GCM(伽罗瓦/计数器模式)作为一种认证加密(AEAD)方案,巧妙地将AES-CTR加密与基于伽罗瓦域的GHASH认证并行结合,实现了单次数据遍历即可同时完成加密和认证,大幅提升了处理效率。其核心价值在于高性能、支持附加认证数据(AAD)以及标准化程度高,广泛应用于TLS协议、无线网络安全和云存储

weixin_28622215的博客 311

用谷歌浏览器检查功能实现精灵图

精灵图也称雪碧图,前端开发时设计师可能会把用到的很多小图放在一起,组成一张图,开发人员在使用的时候自己去取想要的内容。 (图源网络,侵删) 这张图中有很多小图片,比如我想取第二行第三个图片,分为四步 首先,设置图片为背景图,用一个盒子将图片框起来,最好设置一下边框,将图片位置显示的更清楚 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta

qq_45523980的博客 359

从零到一,打造你的无人机侦察兵!树莓派+Python+MQTT,实时目标检测全攻略

物联网、人工智能与计算机视觉三大前沿技术的深度融合。

u013558123的博客 1473

谷歌浏览器实现登录及开启同步功能

谷歌浏览器实现登录及开启同步功能 平常使用谷歌浏览器后有许多链接及书签在换电脑的时候就无法同步了,我刚刚为了弄这个办法也是上网搜了一下 ,找到了具体的办法,我这里来说明如何使用。 链接:https://pan.baidu.com/s/1GKYHfuNoozzb-ktggg4yfA 提取码:kd6o 下载压缩包到电脑,解压缩 打开谷歌浏览器扩展中心 右上角会出现一个这个按钮,点击保存设置,这样就...

小hu同学 2万+

sap资产post记录查询时候 报错 如图

SAP资产过账查询报错AA653解决方案摘要 错误原因:系统无法计算会计年度期间的最后一天,导致资产折旧/过账失败。常见原因包括:1)未创建2025年期间版本;2)期间日期映射不完整;3)依赖日历但未生成2025年日历。 解决方法: 通过OB37维护2025年12/13个完整期间 补充缺失期间或修正结束日期 使用SCAL生成2025年工厂日历 验证步骤: 检查T009R表2025年记录完整性 测试AFAB折旧运行 重新查询资产过账 提示:建议财务团队统一维护跨年度期间数据,并在测试系统验证变更。

金牌架构师 834

电脑硬件:电脑主板上的接口介绍,看完你就懂了

它们主要用于连接老式的键盘和鼠标,虽然速度和兼容性不如USB接口,但在某些特定场合依然发挥着重要作用。PCIe接口是主板上的扩展能力象征,可以连接各种扩展卡,如显卡、声卡、网卡等。电脑主板作为电脑硬件组成关键的部分,今天给大家分享一下电脑主板上有哪些接口,具体每一个接口的特点、使用场景,有需要的朋友可以来了解一下!它们不仅能连接鼠标、键盘、U盘、打印机,还能连接各种外设,如移动硬盘、游戏手柄等。:虽然现在用得越来越少,但在一些特定场合,如工业控制、老旧设备上,仍然需要使用PS/2接口。

IT技术分享社区 2786

解决Chrome插件chrome.tabs无效的Bug

今天想用chrome插件获取当前tab的url地址,但是弄了一上午也没搞出来,最后查了很多资料之后也没查出个所以然。 最终莫名其妙的可以使用了,我怀疑出问题的原因是我创建的记事本默认不是使用的UTF-8编码,导致解析异常? 如果遇到类似问题的人可以使用这个线索尝试。 源码:http://download.youkuaiyun.com/detail/h3c4lenovo/4362447...

java开发指南博客 【转载】 1074

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Google ARC可在Chrome OS、Windows、Mac及Linux上运行Android应用

去年9月份,Google推出了ARC(即App Runtime for Chrome,一个允许Android应用运行于Chrome OS上的项目)。推出不久后,一个黑客揭示了该项目的全部潜力:ARC可用于Chrome的每个桌面版本,这意味着你能够非正式的在Chrome OS、Windows、Mac OS X和Linux上运行Android应用。ARC让Android应用几乎可以在所有计算平台上

tianyu的专栏 - Linux site:blog.youkuaiyun.com/wishfly 2372

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【亲测免费】 探索Google Chrome的历史版本:一个便捷的下载指南

探索Google Chrome的历史版本:一个便捷的下载指南 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在数字时代,浏览器是我们与互联网交互的窗口。Google Chrome,作为全球最受欢迎的浏览器之一,不断推出新版本以提升用户体验。然而,有时我们需要特定版本或历史版本的Chrome浏览器来满足特定的开发或兼容性需求。为了帮助用户轻松获取这些版本,我们创建了这个...

gitblog_06609的博客 910

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【亲测免费】 Chromewhip:将Google Chrome™作为HTTP服务的开源项目

Chromewhip:将Google Chrome™作为HTTP服务的开源项目 Chromewhip是一个开源项目,它允许用户将Google Chrome浏览器作为一个HTTP服务运行,并通过异步IO(asyncio)驱动进行操作。该项目主要使用Python编程语言实现。 项目基础介绍 Chromewhip旨在提供一个易于部署的服务,它运行一个无头(headless)的Chrome进程,并通过HT...

gitblog_00308的博客 859

利用Google Chrome开发插件,在网页中植入js代码

https://www.cnblogs.com/kkrimen/p/3866521.html

couragehope的博客 5895

Google 替代 Cookies 的技术

本文介绍了在Chrome浏览器中管理第三方Cookie的方法,以及Google提供的Cookie自定义配置机制。主要内容包括:1)在Chrome设置中允许或阻止第三方Cookie;2)Google代码默认在最高级网域设置Cookie;3)通过参数修改Cookie网域、名称、有效期等配置;4)针对Google Analytics、Google Ads、Universal Analytics等不同代码的特定设置方法。文章为开发者提供了详细的Cookie管理技术指导,帮助实现符合隐私要求的Cookie配置。

RR1335 之代码才是动力源 769

Google Chrome Privacy Sandbox项目解析:FLoC技术详解

FLoC(Federated Learning of Cohorts)是Google Chrome Privacy Sandbox项目中的一项关键技术,旨在通过隐私保护的方式实现基于兴趣的内容展示。这项技术通过将用户分配到具有相似浏览历史的"兴趣群体"中,既保护了用户隐私,又为内容提供商提供了有效的定向投放能力。 ## 技术实现现状 - 初始的原型试验阶段已经结束 - 已有相关技术演示可供参考...

gitblog_01124的博客 573

Google Chrome 4.0书签同步功能抢先看

<!--google_ad_client = "pub-4382955739270299";/* 468x15, 创建于 08-9-5 */google_ad_slot = "2818501739";google_ad_width = 468;google_ad_height = 15;// -->Google已经发布了Chrome 4.X版本,Chrome

Gavin luo 我们共同努力 1267

Google Chrome的云计算和SaaS

  Google Chrome浏览器和云计算以及SaaS,看似毫不相关的东西,其实是有关联的,Keso在理解Chrome中说, Chrome意在云计算,说的就是这个意思,Google通过Chrome这个浏览器将原有服务器端的工作转移到客户端来实现,将用户的电脑加入到“云”中,实现计算能力的大幅提高。 <!--google_ad_client = "pub-438295573927029

Gavin luo 我们共同努力 1317

Google Chrome隐私沙盒中的信任令牌技术解析

信任令牌(Trust Tokens)是Google Chrome隐私沙盒计划中的一项关键技术,它提供了一种在不进行被动追踪的前提下,帮助网站区分真实用户与自动化程序的新型API机制。这项技术通过加密令牌的方式,在不同网站间传递用户可信度信息,同时保护用户隐私不被泄露。 ## 技术背景与需求 在当今网络环境中,网站面临着两大核心挑战: 1. **欺诈防范**:需要有效识别自动化流量和异常行为 2...

gitblog_00428的博客 445

Google Chrome开发者指南:User-Agent Client Hints技术解析

在Web开发领域,User-Agent字符串已经存在了超过25年。这个最初设计用于简单标识浏览器类型的机制,如今已经演变成一个包含过多信息的庞然大物。现代User-Agent字符串不仅包含浏览器名称和版本,还包含了操作系统、设备型号等大量细节信息,这些信息组合起来足以构成独特的设备指纹,对用户隐私构成威胁。 ## User-Agent Client Hints的核心设计理念 User-Agen...

gitblog_00586的博客 869

CR-Cast:Google Chrome的Chromecast模拟器

CR-Cast:Google Chrome的Chromecast模拟器 项目介绍 CR-Cast 是一个为 Google Chrome 浏览器设计的 Chromecast 模拟器。它允许开发者在本地环境中模拟 Chromecast 设备,以便测试和开发与 Chromecast 相关的应用程序。尽管 CR-Cast 目前不支持最新的 Google Cast SDK,但它仍然是一个有价值的工具,特别是...

gitblog_00853的博客 595

Google Chrome Source Code 源码下载

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34240657的博客 113

IE兼容性解决方案:Google Chrome Frame技术解析

浏览器兼容性一直是Web开发中的核心挑战,特别是在需要支持老旧IE内核的企业级应用中。Google Chrome Frame(GCF)作为一种创新的兼容性解决方案,通过在IE浏览器中嵌入Chrome渲染引擎,实现了现代Web标准的支持。其技术原理基于进程隔离和API映射,将IE的DOM调用转换为Chromium等效实现,从而显著提升HTML5、CSS3等特性的运行效率。在企业应用场景中,GCF尤其适用于银行系统、政府网站等需要兼顾IE兼容性和现代功能的场合。通过合理的元标签配置和组策略部署,开发者可以构建渐

weixin_33714884的博客 366

Google Chrome中的chrome:// plugins发生了什么?

Google has made yet another change to Chrome’s “under the hood” settings with the removal of the chrome://plugins page in version 57, so how do you access the settings for plugins now? Today’s SuperUs...

culintai3473的博客 2701
上一篇: 让windows的GNU emacs默认shell启动cygwin bash
下一篇: C Array Dumper(一个将任意文件转成C语言数组文本的东西)
JoyerHuang_悦
博客等级 码龄23年 101粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值