chromium之MessagePump.h】的更多相关文章

上代码,注释已经写得很详细了. 粗看一下,这是个纯虚类,用于跨平台的通用接口. MessagePump,Pump的意思是泵,,MessagePump也就是消息泵,输送消息 namespace base { class Time; class MessagePump : public RefCountedThreadSafe<MessagePump> { public: // Please see the comments above the Run method for an illustra…
histogram不知道是干啥的 // Histogram is an object that aggregates statistics, and can summarize them in // various forms, including ASCII graphical, HTML, and numerically (as a // vector of numbers corresponding to each of the aggregating buckets). google翻译…
多进程架构 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//Start_Here_Background_Reading/Multi-process_Architecture.html 有github账号的话,不妨随手star一个 https://github.com/ahangchen/Chromium_doc_zh 这个文档描述了Chromium的高层架构 问题 构建一个从不会挂起或崩溃的渲染引擎几乎是不可能的…
Chromium多进程架构 多进程架构 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//Start_Here_Background_Reading/Multi-process_Architecture.html 有github账号的话,不妨随手star一个 https://github.com/ahangchen/Chromium_doc_zh 这个文档描述了Chromium的高层架构 问题 构建一个从不会挂起或…
对chromium的MessageLoop非常感兴趣,接下来会详细分析Windows平台的具体实现. 代码版本:chromium-4.0.210.0_p26329 先看一下依赖的文件 message_loop.cc #include "base/message_loop.h" #include <algorithm> #include "base/compiler_specific.h" #include "base/lazy_instance…
首先,本文所有 代码已经提交到github,需要的可以直接从github获取:https://github.com/starts2000/CefSharp,希望可以帮助到有需要的朋友们. CEF 简介 CEF is a BSD-licensed open source project founded by Marshall Greenblatt in 2008 and based on the Google Chromium project. Unlike the Chromium projec…
错误一:javap未指向有效的java版本 Traceback (most recent call last): File "../../base/android/jni_generator/jni_generator.py", line 1065, in <module> sys.exit(main(sys.argv)) File "../../base/android/jni_generator/jni_generator.py", line 106…
总结:刚开始接触一个Chromium on Android时间.很好奇Chromium主消息循环是如何整合Android应用. 为Android计划,一旦启动,主线程将具有Java消息层循环处理系统事件,如用户输入事件,而Chromium为,己还有一套消息循环的实现,这个实现有哪些特点.又将怎样无缝整合到Android Java层的消息循环中去,正是本文所要讨论的话题. 原创文章系列.转载请注明原始出处为http://blog.csdn.net/hongbomin/article/details…
最近在研读chromium源码,经过一段懵懂期,查阅了官网和网上的技术文章,是时候自己总结一下了,首先IPC message loop开始吧,这是每个主线程必须有的一个IPC消息轮训主体,类似之前的quagga里thread. 首先来看看chromium的多进程模型: 图1  多进程模型 图1描述了chromium里 browser进程,(隐含了zygote进程),render进程以及 WebKit的关系,Webkit是网页渲染引擎,这里我就不发散开了. 浏览器进程有 browser进程,ren…
上一篇总结了chromium进程的启动,接下来就看线程的消息处理,这里的线程包含进程的主进程. 消息处理是由base::MessageLoop中实现,消息中的任务和定时器都是异步事件的. 主要如下几点: 1.消息的类型分类 2.延时处理的消息是如何实现 一.消息分类 chromium主要将消息类型如下定义:(chromium//src/base/message_loop/message_loop.h  112行) enum Type { TYPE_DEFAULT, TYPE_UI, TYPE_C…
这篇研究两个问题:chromium对线程的封装和进程通信.主要参考chromium的官方技术文档:Treading和Inter-process Communication (IPC). chrome速度快的优点,主要得益于线程模型的设计,这也是chrome最值得研究的技术点.       一.线程模型       chromium中的线程分为很多种类型,每个线程中有一个MessageLoop处理线程消息,对应实现:     Thread - base/threading/thread.h    …
类别 类 说明 演示样例 线程机制 Thread (參考:线程模型及应用指南)   MessagePump   MessageQueue   SequencedWorkerPool 它是一个线程池,用于运行须要串行运行的任务请求,这些请求根据不同的Token分组,仅仅在同样组内保证运行顺序. 这样多个组能够并行运行,而单个组则是串行运行.比方:不同实例所相应的分组不同.或者不同的功能相应不同的分组. 它同一时候同意指定当退出时未运行的任务怎样处理,包含:继续运行,忽略,阻止退出. 參考:The…
Chromium除了远近闻名的多进程架构之外,它的多线程模型也相当引人注目的.Chromium的多进程架构是为了解决网页的稳定性问题,而多线程模型则是为了解决网页的卡顿问题.为了达到这个目的,Chromium的多线程模型是基于异步通信的. 也就是说,一个线程请求另外一个线程运行一个任务的时候,不须要等待该任务完毕就能够去做其他事情.从而避免了卡顿.本文就分析Chromium的多线程模型的设计和实现. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注. <And…
Google的优秀C++开源项目繁多,其中的Chromium浏览器项目可以说是很具有代表性的,此外还包括其第三开发开源库或是自己的优秀开源库,可以根据需要抽取自己感兴趣的部分.在研究.学习该项目前的时先获取到需要获取一份谷歌的Chromium源码,可参考:http://blog.csdn.net/kuerjinjin/article/details/23563059,若无法获取且打算使用VS IDE的可从此处下载:http://blog.csdn.net/kuerjinjin/article/d…
时隔一年,再次编译cef3,独一无二的目的仍为加入mp3支持.新版本的编译环境和注意事项都已经发生了变化,于是再记录一下. 一.编译版本 cef版本号格式为X.YYYY.A.gHHHHHHH X为主版本号,当前只有3 YYYY为chromium分支号 A为递增的svn提交版本号 HHHHHHH为7位git提交hash 此次编译cef版本为3.2704.1434.gec3e9ed 二.编译条件 快速稳定的VPN,下载chromium源码必需,推荐nydus 60G磁盘空间 64位操作系统,Win…
一.什么是CEF CEF即Chromium Embeded Framework,由谷歌的开源浏览器项目Chromium扩展而来,可方便地嵌入其它程序中以得到浏览器功能. CEF包括CEF1和CEF3两个版本,CEF1已停止更新.由于CEF只支持C.C++,所以出现了很多第三方项目来提供其它语言的支持. .NET 的包装类库有chromiumfx.cefglue.cefsharp,其它语言参看https://bitbucket.org/chromiumembedded/cef#markdown-h…
上次提到Chromium浏览器中base公共通用库中的内存分配器allocator,其中用到了三方库tcmalloc.jemalloc:对于这两个内存分配器,个人建议,对于内存,最好是自己维护内存池:此外在windows下使用可使用其自带的内存分配方式:具体的第三方库可以参阅:http://www.360doc.com/content/13/0915/09/8363527_314549128.shtml:目前我们主要的精力尽可能在Chromium浏览器中base公共通用库的主要内容上,所以不再详…
转自:http://121.199.54.6/wordpress/?p=1156 原始地址:http://www.chromium.org/developers/how-tos/build-instructions-windows#TOC-Building-Chromium This page has detailed information on building Chromium on Windows, including tips for troubleshooting and for s…
Chromium 的多线程机制 概述 每个进程都有很多的线程; 多线程主要是为了保证UI线程(chrome 线程,主线程)不会被任何其它费时的操作阻碍而影响对用户的响应; 为了解决多线程通信和同步问题,Chromium的机制是绝大多数的场景使用事件和一种chromium新创建的任务传递机制,仅在非用不可的情况下使用锁或者线程安全对象,这有严格的要求; Chromium在每个线程内部通过MessageLoop如何处理事件和任务; 几个重要和诡异的线程: chrome线程:进程的主线程,browse…
http://blog.csdn.net/lllllllllluoyi/article/details/8540054 首先向360说句sorry,在2011年360极速浏览器出现的时候我去他们论坛里骂过.为什么要到歉呢,因为2012年我把我们公司使用IE WebBrowser改为Chrome控件了,中间遇到的辛酸使我明白360公司能做成产品确实不容易.言归正转,公司的壳程序是C#编写的WinForm程序,刚开始我只找到delphi的Chromium项目,然后在delphi2010中安装好控件后…
转自:http://guiquanz.me/2014/07/28/a_intro_to_Ninja/ Ninja - chromium核心构建工具Jul 28, 2014 [在线编辑] 缘由 经过上次对chromium核心代码的初步了解之后,我转头去研究了一番ninja,并对其进行了一些改造(爱折腾的,都是小NB).今天就来简单介绍一下ninja及其使用.(BTW: 细节的内容,大家阅读ninja 的手册就好了,我这里不会关注.) ninja是一个专注于速度的小型构建系统(Ninja is a…
转自:http://blog.csdn.net/kuerjinjin/article/details/43937345 简介 众所周知chromium项目无比巨大,想去快速的了解,调试并添加自己想要的功能,学会使用chromium中的LOG可以使你省很多事儿! 1.从content shell开始 多数人首次接触chromium都感觉这个项目太过于庞大,总是有无从下手的感脚: 如果我们想抛开它原有的界面单纯的去了解一下它怎么显示网页的?那么通过content api来了解chromium是一个不…
转自:http://blog.csdn.net/kuerjinjin/article/details/23563059 从12年那会儿开始获取源码和构建chromium项目都是按照那时候的官方要求用win7+vs2010,相对来说也比较简单,按照步骤来也很快能编译出来. 1.官网的编译配置介绍:http://www.chromium.org/developers/how-tos/build-instructions-windows 2.编译需要的工具:vs2010/sp1,win8sdk,DXS…
转自:http://www.cnblogs.com/think/archive/2011/10/06/CEF-Introduce.html 简介 Chromium Embedded Framework (CEF)是由 Marshall Greenblatt 在2008年创办的开源项目,致力于基于Google Chromium项目开发一个Web控件. CEF目前已支持多种编程语言和操作系统,能方便地集成到现有或者新的应用程序中,设计上,它追求高性能的同时,也追求易于使用,它的基本框架通过原生库提供…
推荐使用Windows 7及以后系统,最少8G内存,预留出50G磁盘空间 搭建Visual Studio 2010开发环境 1.安装Visual Studio 2010专业版或者旗舰版 2.安装VS2010 SP1补丁包 3.安装Windows 8 SDK 设置环境变量GYP_DEFINES=windows_sdk_path="path to sdk" 例如: 环境变量 GYP_DEFINES和windows_sdk_path都设为C:\Program Files (x86)\Wind…
接触chromium已有一段时间,写点东西学习一下吧. 首先说一下用法,如何利用chromium封装好的thread类来开一个线程.在base里有一个封装该类的头文件thread.h,include它之后可以这样写一段代码(仅范例而已,具体用的时候要放在类里边儿的) //a sample to use base::thread of chromium //by zhouyoulie //2014.03 int Fun( int para1,int para2 ); //creat a threa…
     Chromium在加载一个网页之前,需要在Browser进程创建一个Frame Tree.Browser进程为网页创建了Frame Tree之后,再请求Render进程加载其内容.Frame Tree将网页抽象为Render Frame.Render Frame是为实现Out-of-Process iframes设计的.本文接下来就分析Frame Tree的创建过程,为后面分析网页加载过程打基础.老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注!  …
转载自:http://www.chromium.org/developers/webui Chrome的WebUI是那种,在Chrome中输入 "chrome://xxxx"就能打开一个URL页面的对象. 创建一个Chrome WebUI接口非常的简单,只需要改动数个文件. 创建WebUI页面 webui的资源,放在资源目录下:src/chrome/browser/resources. 当创建WebUI资源时,参考Web Development Style Guide.例如,我们创建一…
CEF中文教程(google chrome浏览器控件) -- CEF简介 2013-04-10 16:48 42928人阅读 评论(4) 收藏 举报  分类: CEF(2)    目录(?)[+]   官方主页:  点击打开链接   CEF简介: 嵌入式Chromium框架(简称CEF) 是一个由Marshall Greenblatt在2008建立的开源项目,它主要目的是开发一个基于Google Chromium的Webbrowser控件.CEF支持一系列的编程语言和操作系统,并且能很容易地整合…
线程 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_Architecture/Threading.html 全书地址 Chromium中文文档 for https://www.chromium.org/developers/design-documents 持续更新ing,欢迎star gitbook地址:https://ahangchen.gitbooks.io/chromium_doc_zh…