Chromium周边了解:content_shell和cef

Chromium周边了解:content_shell和cef

简介

众所周知chromium项目无比巨大,想去快速的了解,调试并添加自己想要的功能,先初步的了解一下content_shell 和 cef 是个不错的选择!

1.从content shell开始

多数人首次接触chromium都感觉这个项目太过于庞大,总是有无从下手的感脚;
如果我们想抛开它原有的界面单纯的去了解一下它怎么显示网页的?那么通过content api来了解chromium是一个不错的选择。

项目解决方案生成成功以后,我们可以从src\content\content_shell_and_tests.sln开始,设置content_shell项目为“启动项目”开始编译调试,具体打开content_shell_lib项目了解;界面很简单,界面上的简单布局我们可以从src\content\shell\browser\shell_views.cc了解到。
我们可以自己去改一下看看效果,比如改一下初始的窗口位置大小:
修改PlatformCreateWindow方法中的params.bounds

params.bounds = gfx::Rect(40, 40, width, height);

找到src\content\shell\browser\shell.cc修改一下:

const int Shell::kDefaultTestWindowWidthDip = GetSystemMetrics(SM_CXSCREEN) - 160;
const int Shell::kDefaultTestWindowHeightDip = GetSystemMetrics(SM_CYSCREEN) - 160;

编译完成后看看是不是顺眼多了?首次启动要显示的网页我们也可以从src\content\shell\browser\shell_browser_main_parts.cc
GetStartupURL方法做个修改,默认没有参数的时候打开的网页:

  if (args.empty())
    return GURL("http://www.baidu.com/");

再或者我们修改一下用户数据的位置src\content\shell\browser\shell_browser_context.ccInitWhileIOAllowed方法中:

CHECK(PathService::Get(base::DIR_MODULE, &path_));

将用户数据直接保存在程序目录等等;当然这些都不是重点,说这么多只是让你对content shell有一个初步的了解。

补充几点:
1.为了方便查看生成后的文件可以单独设置生成目录为src\out_content_shell

python  src\build\gyp_chromium -Goutput_dir=out_content_shell

2.基本的依赖文件就只有“content_shell.exe”,“content_shell.pak”和“icudtl.dat”。
当然你如果把原有的views\controls以及开发者工具等用到的资源等去掉的话content_shell.pak也可以进一步干掉;如果要保留对一些HTML5特性的支持的话d3dcompiler_46.dll,ffmpegsumo.dll,libEGL.dll ,libGLESv2.dll 也是可以保留的!

content_shell.exe


2.CEF是个好东西


很早以前就曾共享过一份CEF的代码,这份源码原本是群里的兄弟上传的!我下载之后修改了一下做了几个测试!源码在这里
这里写图片描述

1.CEF源码

这里面2.18G大小的就是包含了chromium的cef源码了,可以直接找到 2062\chromium\src\cef 下的cef_create_projects.bat生成项目解决方案,然后就可以打开cef.sln开始调试了!

2.CEF程序包

共享里面最下边那个17.2M大小的包就是cef编译之后的文件了,cefclient.exe是一个简单的浏览导航以及一些测试的demo,另外一个cefsimple.exe则是单纯的一个网页的显示,那么对于想使用cef作客户端开发的话,对用到的离屏渲染,异性窗口等等的研究可以多看看这个!

3.CEF测试Demo

共享里面最后的这个24.2M大小的包是我添加的几个测试,一个是测试3D效果的,两个是测试HTML5游戏的;看看下边的这个超级玛丽的例子是不是很经典?
这里写图片描述
待续……

猜你喜欢

转载自blog.csdn.net/Kuerjinjin/article/details/43937345
CEF
今日推荐