首页 > 系统相关 >Cef笔记:进程间通信

Cef笔记:进程间通信

时间:2023-10-18 12:32:28浏览次数:38  
标签:Cef process 笔记 间通信 CefRefPtr CefBrowser will message browser


原文出处:https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage#markdown-header-threads

Inter-Process Communication (IPC)

Since CEF3 runs in multiple processes it is necessary to provide mechanisms for communicating between those processes. CefBrowser and CefFrame objects exist in both the browser and render processes which helps to facilitate this process. Each CefBrowser and CefFrame object also has a unique ID value associated with it that will match on both sides of the process boundary.

Process Startup Messages

Startup data can be associated with a specific CefBrowser instance at creation time via the CefRefPtr extra_info parameter to CefBrowserHost::CreateBrowser. That extra_info data will be delivered to every renderer process associated with that CefBrowser via the CefRenderProcessHandler::OnBrowserCreated callback. See the “Processes” section for more information about when and how a new renderer process will be spawned.

Process Runtime Messages

Messages can be passed between processes at runtime using the CefProcessMessage class. These messages are associated with a specific CefBrowser and CefFrame instance and sent using the CefFrame::SendProcessMessage() method. The process message should contain whatever state information is required via CefProcessMessage::GetArgumentList().

// Create the message object.
 CefRefPtr msg= CefProcessMessage::Create(“my_message”);// Retrieve the argument list object.
 CefRefPtr args = msg>GetArgumentList();// Populate the argument values.
 args->SetString(0, “my string”);
 args->SetInt(0, 10);// Send the process message to the main frame in the render process.
 // Use PID_BROWSER instead when sending a message to the browser process.
 browser->GetMainFrame()->SendProcessMessage(PID_RENDERER, msg);
 A message sent from the browser process to the render process will arrive in CefRenderProcessHandler::OnProcessMessageReceived(). A message sent from the render process to the browser process will arrive in CefClient::OnProcessMessageReceived().bool MyHandler::OnProcessMessageReceived(
 CefRefPtr browser,
 CefRefPtr frame,
 CefProcessId source_process,
 CefRefPtr message) {
 // Check the message name.
 const std::string& message_name = message->GetName();
 if (message_name == “my_message”) {
 // Handle the message here…
 return true;
 }
 return false;
 }


标签:Cef,process,笔记,间通信,CefRefPtr,CefBrowser,will,message,browser
From: https://blog.51cto.com/u_15905375/7916409

相关文章

  • 【学习笔记】高等代数 2023
    本质上是杂题乱写。最大公约数的辗转相除法首先需要知道良序定理。Well-orderingprinciple(良序定理)我们可以获得一个由自然数组成的集合的最小值来看看良序定理在我们熟知的话题上是怎么应用的如何使用WOP证明\(\sqrt5\)是irrationalnumber?设\(a^2=5b^2\),假设......
  • 3D Math for Graphics and Game笔记
    这个机器人的原点在世界坐标系下的(4.5,1.5),而她右肩膀上的那个灯的模型坐标系为(-1,5),怎样计算这个灯的世界坐标呢?开始:获取原点,这个原点为(4.5,1.5)向右移动一个位置,机器人的"左边"是[0.87,0.50],这样得到的位置为(4,5,1.5)+(-1)X[0.87,0.50]=(3.63,1)向上移动5个位......
  • 代码大全读书笔记
    程序员职业素养本部分强调了程序员的职业素养,包括忠诚、负责任、独立思考和团队合作等方面。具有良好的职业素养不仅可以提高自己的职业水平,还可以为整个软件行业树立标杆。抽象能力抽象能力是软件开发中最基本的技能之一。通过将复杂问题转化为简单的抽象构建块,可以提高代......
  • HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
    HTML中列表的作用HTML中的列表(List)用于呈现按照一定逻辑关系组织的信息,以便用户更好地理解和识别。列表可以分为有序列表、无序列表和定义列表三种类型。有序列表(OrderedList):用于表示按照一定顺序排列的项目,每个项目都有对应的标记。常见的例子包括步骤、流程等。无序列表(Unordere......
  • HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
    HTML中列表的作用HTML中的列表(List)用于呈现按照一定逻辑关系组织的信息,以便用户更好地理解和识别。列表可以分为有序列表、无序列表和定义列表三种类型。有序列表(OrderedList):用于表示按照一定顺序排列的项目,每个项目都有对应的标记。常见的例子包括步骤、流程等。无序列表(Unordere......
  • 阅读笔记
    架构漫谈读后感架构漫谈是由一个架构师王概凯写的一个专题,是以他的实际架构经验为基础,讨论是什么是架构,怎样做好架构,怎么写好程序等一些问题。共分为九个部分:1) 什么是架构?首先把架构的概念讨论明白,然后在对架构进行分析才显得清晰有意义。架构这个词在软件工程很早之前就已......
  • C#学习笔记--数据结构、泛型、委托事件等进阶知识点
    C#进阶简单数据结构类ArrayList元素类型以Object类型存储,支持增删查改的数组容器。因而存在装箱拆箱操作,谨慎使用。//ArrayListArrayListarray=newArrayList();//增=================array.Add("Hello");array.Add(true);array.Add("Tony");//添加单个元素array.Add(......
  • 菜鸡go后端开发学习笔记1
        首先了解项目内容及对应的人员:重要的是产品以及前端。1、了解项目,理清逻辑,有什么不通顺的地方不清楚的地方及时的与产品进行沟通。2、在写请求时,主要是前端发送请求给到后端,后端通过逻辑处理获取数据库里面对应的数据,并返回数据。所以请求字段和前端是有交互......
  • PHP课程笔记(第一课)
    1.第一课PHP代码标记:在PHP历史发展中,可以使用多种标记来区分PHP脚本ASP标记:<%php代码%>短标记:<?php代码?>脚本标记:<scriptlanguage="php">php代码</script>标准标记(常用):<?phpphp代码?>1.Web技术——B/S架构B/S(Browser/Server)架构:指的是浏览器/服务器端的......
  • 信息安全系统设计与实现第三章学习笔记
    一、知识点归纳1.多任务处理多任务处理是计算机系统中的重要概念,它允许系统同时执行多个任务,提高了系统资源的利用率和响应速度。在多任务处理中,有几个重要的概念和技术需要进一步了解:并发(Concurrency):并发是指多个任务在时间上重叠执行的能力。虽然在单处理器系统中一次只能......