
Chrome也是一个开源的浏览器,Chrome是由原先的“GoogleBrowser”项目发展而来,采用了Webkit的网页渲染引擎,还将包含Google的“GearsProject”。比较特别的就是这个内置的Gears引擎了,为我们创建离线版的浏览器应用提供了一种新的方案。让人没有猜到的是,Chrome并非基于那个Google一直大力推崇的老战友Firefox,而是基于苹果的WebKit引擎。尽管Safari除了在苹果自己的iMac和iPhone上运行外,没有太多的用户了,但WebKit却向它提供了一大优势:速度。这样对于那些对于Firefox难以忍受的用户来说,还是有这么点吸引力的。\x0d\\x0d\和当前几乎所有的浏览器不同的是,Chrome采用的是多进程的架构。将每个页面分离成单个的进程,可以通过ChromeProcessManager进行管理。这样我们在某一个页面崩溃的时候不会影响到整个浏览器的使用。Chrome的JavaScript采用的是来自丹麦的V8,在对Dojo和Ext的一些应用的简单试用,感觉到JavaScript的执行速度相对IE和Firefox有一定的优势。\x0d\\x0d\Google给Chrome提供了一个可以在线实时更新的恶意网站列表功能,第一时间反馈给用户所要访问的网页的危险性,避免可能的危害。这个和Google搜索提供的功能有些相似,不过基于浏览器的提醒会让用户更加注意上网的安全。\x0d\\x0d\总的来说,GoogleChrome秉承了Google的一贯特色,简洁。简洁的除了标签栏和地址栏,就再也找不到其他什么东西了,连状态栏都省掉了,连可以设置的东西也少的可怜
在项目中需要在桌面应用程序中内嵌浏览器, 尝试了几种解决方案,有:javafx, DJNativeSwing,CEF等。觉得CEF效果最好。本文目的是介绍如何编译和使用jCEF。
主要参考和翻译了这篇文章java-cef
背景说明
什么是CEF?
CEF是Chromium Embedded Framework的缩写,是个基于Google Chromium项目的开源Web browser控件,支持Windows, Linux, Max平台。除了提供C/C++接口外,也有其他语言的移植版。比如JCEF。
因为基于Chromium,所以CEF支持Webkit & Chrome中实现的HTML5的特性,并且在性能上面,也比较接近Chrome。
谁在用CEF?
各种浏览器
早期的双核浏览器(IE + Webkit),有些使用了CEF来作为Webkit内核浏览器控件。
不过对于浏览器来说,直接在Chrome上面扩展,其实才是王道,大家现在都这么做了(各种极速浏览器)。
Evernote Client (on Windows)
Evernote允许用户将网页粘贴到笔记中,还提供了插件用来将网页保存为笔记。
那肯定是需要在Client上面可以正确的渲染页面咯,这个任务就交给了CEF。
GitHub Client (on Windows)
GitHub也打包了libCEFdll,从表现上面看,用来展示项目的ReadMe页面的,肯定是CEF,其他地方的UI,可能部分也是用页面来实现的。
QQ很早之前就通过内嵌IE来实现一些功能和界面。从2013年开始,QQ引入了CEF,对一些之前用IE的地方进行了替换,这样就可以使用一些基于Webkit的新特性,同时也获得了速度、稳定性、兼容性方面的优势。
什么是JCEF?
简单来说,JCEF是对CEF进行了一层Java封装。使用JNI调用CEF的功能。目标是让java开发者能够使用CEF框架来开发web browser控件。
如编译和使用JCEF
目前JCEF保持了一个开发分支对CEF进行跟进,在不断的develop中。我们可以下载JCEF源码按照下面的步骤手动编译。
1 准备环境
需要编译JCEF需要你的电脑上有如下的开发环境:
CMake version 28122 or newer
Git
Java version 17 or newer
Python version 26 or newer
对于linux系统,下面几个发行版是支持的:
Debian Wheezy, Ubuntu Precise, and related
对于windows系统:
因为JCEF的开发者用Visual Studio 2013 作为开发工具,所以你得准备一个VS2013 来编译JCEF,否则用其他的编译器可能会出问题。
对于MAC系统:
需要Apache Ant
2 下载JCEF源码
使用git下载JCEF源码:
#The JCEF source code will exist at `/path/to/java-cef/src`
cd /path/to/java-cef
下载的ietab插件是crx格式,IEtab是chrome浏览器的一个插件,它的功能就是在Chrome浏览器中嵌入IE浏览器的内核,如果用户在用使用Chrome浏览过程中遇到只能兼容IE的网站,用户不需要从新在打开IE浏览器访问,直接使用Google Chrome浏览器同样可以打开访问。完美兼容了chrome的IE模式。
Google提供的Chrome Extensions API是开发Chrome扩展用到的最权威资料之一,里面详细介绍Chrome扩展所能够实现的各方面的功能和Chrome浏览器所提供的接口(比如怎么调用用户书签)。
使用步骤如下:
后台HTML里的JS在浏览器被打开时就开始执行了,当浏览器关闭时停止工作。你可以在这里写一些代码监视浏览器动作(比如在监视到用户创建了一个新标签页时邪恶的把它关闭,可以做定时任务(setInterval等),可以添加一段音乐。
用户点击扩展栏图标时可以d出一个页面,当用户点击网页部分时这个页面就被关闭了。
可以使用js获取用户当前网页的DOM数据,监听用户键盘、鼠标动作。这些代码是一个独立的JS文件(而不是像后台、d出窗等是一个HTML文件里的嵌入js代码),通过扩展配置注入到相应的网页。
读取用户计算机数据(NPAPI Plugins)。这个功能要用到dll(动态链接库)知识,可以启动用户电脑的程序,删除用户文件等功能。相当于一个小Windows程序。利用Chrome提供的方法可以让扩展的后台页面与你的dll通信。
谷歌chrome是可以设置成默认浏览器。
具体 *** 作步骤为:
①第一步就是打开电脑的控制面板。
②然后电脑就会出现在所有控制面板项——默认程序。
③接着进入默认程序界面,点击第一个“设置默认程序”进入下一步。
④需要你点击谷歌浏览器,设置谷歌为默认选项。
⑤然后再次打开浏览器即可发现谷歌浏览器被设置为默认浏览器。
扩展资料:
软件优点
不易崩溃
Chrome最大的亮点就是其多进程架构,保护浏览器不会因恶意网页和应用软件而崩溃。每个标签、窗口和插件都在各自的环境中运行,因此一个站点出了问题不会影响打开其它站点。通过将每个站点和应用软件限制在一个封闭的环境中这种架构,这进一步提高了系统的安全性。
速度快
使用WebKit引擎。WebKit简易小巧,并能有效率的运用存储器,对新开发者来说相当容易上手。Chrome具有DNS预先截取功能。当浏览网页时,“Google Chrome”可查询或预先截取网页上所有链接的IP地址。目标网页。Chrome具有GPU硬件加速:当激活GPU硬件加速时,使用“Google Chrome”浏览那些含有大量之网站时可以更快渲染完成并使页面滚动时不会出现图像破裂的问题。
几乎隐身
说Chrome的界面简洁不足以说明其简洁程度。Chrome几乎不像是一款应用软件,屏幕的绝大多数空间都被用于显示用户访问的站点,屏幕上不会显示Chrome的按钮和标志。Chrome的设计人员表示,他们希望用户忘记自己在使用一款浏览器软件,他们的目标基本上实现了。
搜索简单
Chrome的标志性功能之一是Omnibox--位于浏览器顶部的一款通用工具条。用户可 以在Omnibox中输入网站地址或搜索关键字,或者同时输入这两者,Chrome会自动执行用户希望的 *** 作。Omnibox能够了解用户的偏好。
例如, 如果一名用户喜欢使用PCWorld网站的搜索功能,一旦用户访问该站点,Chrome会记得PCWorld网站有自己的搜索框,并让用户选择是 否使用该站点的搜索功能。如果用户选择使用PCWorld网站的搜索功能,系统将自动执行搜索 *** 作。
标签灵活
Chrome为标签式浏览提供了新功能。用户可以“抓住”一个标签,并将它拖放到单独的窗口中。用户可以在一个窗口中整合多个标签。Chrome在启动时可以使用用户喜欢的某个标签的配置,其它浏览器需要第三方插件才能够提供这一功能。
更加安全
黑名单(Blacklists):“Google Chrome”会定期地更新防止网络钓鱼和恶意软件的黑名单,并在用户试图浏览可能造成电脑损害的网站时予以警告。这项服务也可通过使用其他的免费自由应用程序接口(API)“GoogleSafe Browsing API” 来取得。在更新维护这些黑名单的同时,Google也会通知被列入的网站,以避免网站持有者本身不知道网站存有恶意软件。
沙箱(Sandboxing):“Google Chrome”中的每一个标签页都是一个沙箱(sandbox),以防止“恶意软件破坏用户系统”或“利用标签页影响其他标签页”。遵守最小权限原则,每个动作的权限都会被限制,仅能运算而无法写入文件和从敏感区域读取文件(如我的文档、桌面)。
沙盒小组(Sandbox Team)是一种表示他们“使用了现有的运行程序限制,并让这些限制变成一座监狱”,例如在其中一个标签页运作的恶意软件,将无法窃取xyk号码、干扰鼠标运作,或告诉系统在启动时运行某个程序,并且恶意软件会在标签页关闭时立即中止。
插件(Plugins):插件通常并没有统一的标准,且无法像标签页般沙盒化。这些通常需要运行在浏览器本身的安全等级或更高的等级。为了降低被攻击的风险,插件是独立运行的。从50版本起,“Google Chrome”内置Adobe Flash Player以确保使用的为最新版本降低被攻击的风险。
其后在90版本将Flash播放器内置在沙盒中独立运行。这项技术是Chrome安全性进步的一座里程碑。对Windows XP用户特别重要,因为它是平台上唯一提供Flash嵌入沙盒运行的浏览器。从80版本起,“Google Chrome”内置在沙盒中独立运行的PDF阅读器。
多进程(Multiprocessing):能容许多个程序同时运行而互不影响,每个网页标签独立于窗口程序存在,当资源过高或崩溃时,不会因为一个停顿而整个程序当掉。
任务管理器(Task Manager):非常有特色的工具,用户可以查看哪些网站占用了最多的内存、下载流量和CPU资源,有利于管理各个标签页与插件,也便于用户终止恶意 *** 作。
诈骗和恶意程序保护:当“Google Chrome”侦测到浏览网站可能有害时,便会发出实时警告。浏览器会将造访网址的一部分传送给Google,以了解该网址是否列在诈骗与恶意网站清单中。(网络钓鱼及恶意软件的侦测功能)。
自动更新(Auto-updates):为确保受到最新版安全性更新的保护,“Google Chrome”会定期检查更新,以确保更新永远为最新版本。更新检查可确保会使用最新版的安全性功能与修正程序,浏览器自动更新新的版本,不需要用户采取任何动作,更新后会在下一次启动中自动使用。
参考资料:
Google Chrome_百度百科
以上就是关于如何只生成 chrome.sln 工程文件以便编译 chromium全部的内容,包括:如何只生成 chrome.sln 工程文件以便编译 chromium、谷歌浏览器怎么用、Chrome浏览器是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)