CEF

2024/4/12 9:53:16

Windows下从源码编译Skia

在PPAPI里面绘图,可以结合第三方的图形库,比如Cairo、Skia。Google Chrome、Chromium和Android都使用Skia作为绘图引擎,我也来试试Skia,先过编译关。 foruok原创,如需转载请关注foruok的微信订阅号“程序视界”联系for…

CEF 之 Render进程 与 Browser进程通信

目录 一、进程通信 1、两进程通信消息名 2、Browser给Render进程发消息 1)SendProcessMessage 2)CefProcessMessage

CEF内核和高级爬虫知识

(转)关于MFC中如何使用CEF内核(CEF初解析) Python GUI: cefpython3的简单分析和应用 cefpython3:一款强大的Python库 开始大多数抓取尝试可以从几乎一行代码开始: fun main() PulsarContexts.createSession().scrapeOutPages(&q…

在PPAPI插件中创建本地窗口

实验了一个比较奇特的东西,在PPAPI插件里创建一个本地窗口,叠加在插件在网页的位置上。 CEF3默认是多进程架构,PPAPI插件在一个单独进程里跑,这个进程没启动Windows的消息循环,所以,要创建插件的话&#x…

在PPAPI插件中使用Skia绘图

Windows下从源码编译Skia一文介绍了Skia的编译,现在我们可以尝试在PPAPI插件中来使用Skia了。 foruok原创,如需转载请关注foruok的微信订阅号“程序视界”联系foruok。 Skia的关键类库 官网https://skia.org/上有文档,可以看。然后下载的源码…

CEF中访问修改HTML DOM元素

有时你可能想在C代码中直接操作HTML中的某个元素,比如改变某个按钮的状态(文字、颜色)等,此时可以使用CEF提供的CefDomVisitor、CefDOMDocument、CefDomNode这三个类,包含cef_dom.h即可。 我们可以用它们完成下列任务…

让一个PPAPI插件充满网页

想让PPAPI插件充满整个网页&#xff0c;像这样就好了&#xff1a; <!DOCTYPE html> <html><!--欢迎关注foruok的订阅号“程序视界”。--> <head><style type"text/css">html, body {width: 100%;height: 100%;padding: 0;margin: 0;o…

CEF Windows开发环境搭建

CEF&#xff0c;Chromium Embedded Framework的缩写。CEF 的官网介绍的很简洁&#xff1a;A simple framework for embedding chromium browser windows in other applications。具体地说就是一个可以将浏览器功能&#xff08;页面渲染&#xff0c;JS 执行&#xff09;嵌入到其…

Windows 编译CEF源码详细记录

背景 默认的CEF不支持音视频功能&#xff0c;需要下载源码将ffmpeg开关打开&#xff0c;再进行编译。 Linux编译参考&#xff1a; 《Linux CEF源码下载编译详细记录》 创建目录结构 code/automate/automate-git.py <-- CEF build scriptchromium_git/cef/ …

在指定的CEF线程上执行任务

CEF有几种线程&#xff0c;比如TID_UI、比如TID_RENDER&#xff0c;每种都有特定的含义&#xff0c;具体类别定义在cef_types.h中&#xff0c;摘录如下&#xff1a; typedef enum { // BROWSER PROCESS THREADS -- Only available in the browser process.///// The main thre…

Alpha叠加

学习过程中的记录&#xff0c;供参考。 foruok原创&#xff0c;转载请保留出处。欢迎关注微信订阅号“程序视界”。 Alpha值的含义 对于 RGBA&#xff08;或 BGRA &#xff09;数据&#xff0c; Alpha 通道中存储的 Alpha 值&#xff0c;实际上应该是 Opaque 值&#xff0c;即…

VS2013编译最简单的PPAPI插件

我想在CEF里使用PPAPI&#xff0c;CEF使用VS 2013 Update 4编译。因此我尝试了使用VS 2013来编译PPAPI插件。 PPAPI的代码在这里&#xff1a;https://chromium.googlesource.com/chromium/src/ppapi/&#xff0c;可以用下列命令check出来&#xff1a; git clone https://chro…

PPAPI插件与浏览器的交互过程

上一篇理解了一下PPAPI的设计&#xff0c;并从代码角度理解了一下相关主题&#xff0c;这篇文章关注下面几点&#xff1a; 插件实例对象的创建与使用流程实例大小的确认渲染&#xff08;绘图&#xff09;处理输入事件 foruok原创&#xff0c;如需转载请关注foruok的微信订阅号…

Skia构建系统与编译脚本分析

分析下Skia的构建系统&#xff0c;具体编译过程参看Windows下从源码编译Skia。这里以ninja为例来分析。执行下面三条命令就可以完成编译&#xff1a; SET "GYP_GENERATORSninja" python bin/sync-and-gyp ninja -C out\Release“python bin/sync-and-gyp”会生成ni…

QCefView 简介

什么是QCefView QCefView 是为 Qt 开发的一个封装集成了CEF(Chromium Embedded Framework)库的Wdiget UI组件。使用QCefView可以充分发挥CEF丰富强大的Web能力&#xff0c;快速开发混合架构的应用程序。它不需要开发者理解CEF的细节&#xff0c;能够在Qt中更容易的使用CEF&…

PPAPI插件的动态创建、修改、删除

一旦你完成了PPAPI插件的开发&#xff0c;实际使用时可能会有下列需求&#xff1a; 动态创建PPAPI插件删除PPAPI插件改变PPAPI插件的尺寸 实现起来很简单&#xff0c;从JS里直接访问DOM&#xff08;BOM&#xff09;即可。下面是一个示例HTML文件&#xff1a; <!DOCTYPE h…

加载DLL中的图片资源生成Skia中的SkBitmap对象

PPAPI Plugin在Windows下是DLL&#xff0c;可以嵌入图片文件&#xff0c;使用Skia绘图时需要根据DLL里的图片文件生成SkBitmap对象。下面是代码&#xff1a; #include "utils.h" #include "SkStream.h" #include "SkImageDecoder.h" #include &…

PPAPI与Browser间使用AsyncIPC通信

采用AsyncIpc这个项目&#xff08;https://github.com/hicdre/AsyncIpc&#xff09;&#xff0c;来完成PPAPI Plugin进程与Browser进程的通信。 foruok原创&#xff0c;如需转载请关注foruok的微信订阅号“程序视界”联系foruok。 AsyncIpc的IPC实现基于管道&#xff0c;是参考…

CEF中禁止弹出浏览器窗口

使用CEF时&#xff0c;加载的网页&#xff0c;如果里面有链接&#xff0c;指定target”_blank”&#xff0c;则会弹出一个新的浏览窗口。如果想禁掉&#xff0c;让新页面在当前浏览窗口中显示&#xff0c;可以在browser进程的handler里重写CefLifeSpanHandler的OnBeforePopup方…

编译PPAPI的media_stream_video示例

Windows下从源码编译CEF一文编译了CEF和PPAPI的C接口对应的静态库&#xff0c;现在来编译media_stream_video示例了。 使用VS 2013来编译。 foruok原创&#xff0c;如需转载请关注foruok的微信订阅号“程序视界”联系foruok。 VS项目的创建 新建一个名为media_stream_video的…

pywebview 通过 JSBridge 调用 TTS

pip install pywin32 ; pip install pywebview ; 通过 JSBridge 调用本机 TTS pip install cefpython3 cefpython3-66.1-py2.py3-none-win_amd64.whl (69.0 MB) Successfully installed cefpython3-66.1 编写 pywebview_tts.py 如下 # -*- coding: utf-8 -*- ""&…

CEF的了解

(14 封私信 / 80 条消息) CEF和Electron的区别是什么&#xff1f; - 知乎 (zhihu.com) Electron面向的开发者&#xff1a;会用JavaScript,HTML,CSS&#xff0c;不会C CEF面向的开发者&#xff1a;会用JavaScript,HTML,CSS&#xff0c;会C (14 封私信 / 80 条消息) liulun - …

Chromium内核浏览器编译记(四)Linux版本CEF编译

转载请注明出处&#xff1a;https://blog.csdn.net/kong_gu_you_lan/article/details/136508294 本文出自 容华谢后的博客 0.写在前面 本篇文章是用来记录编译Linux版本CEF的步骤和踩过的坑&#xff0c;以防止后续再用到的时候忘记&#xff0c;同时也希望能够帮助到遇到同样问…

使用CEF类库处理HTTP请求

当我们基于CEF开发应用时&#xff0c;可能会有URL请求处理的需求&#xff0c;比如HTTP下载或上传&#xff0c;此时可以利用CEF提供的类库来完成&#xff0c;而不必自己实现或引入其它第三方的类库。 在CEF里为URL Request设计了两组类&#xff0c;一组用于执行网络请求&#x…

Chromium与CEF的多进程模型及相关参数

CEF基于Chromium&#xff0c;也是多进程模型。关于进程模型&#xff0c;参考这里&#xff1a;https://www.chromium.org/developers/design-documents/process-models。我还看到一篇韩国人写的renderer process的文章&#xff0c;也很不错&#xff0c;在这里&#xff1a;http:/…

Windows下从源码编译CEF

PPAPI提供了C和C两种插件开发接口。要使用C版本的接口&#xff0c;需要ppapi_cpp.lib和ppapi_cpp_objects.lib这两个静态库&#xff0c;然而CEF的SDK里没有这两个库&#xff0c;只能编译CEF的源码来得到。所以&#xff0c;我就编译了CEF的源码。 花了几天时间&#xff0c;反复…

PPAPI中使用OpenGL ES绘图

在PPAPI中使用Chromium的3D图形接口一文中我们介绍了怎么使用PPB_Graphics3D接口&#xff0c;提供了一个简单示例&#xff0c;单机鼠标可以变换插件颜色。 foruok原创&#xff0c;如需转载请关注foruok的微信订阅号“程序视界”联系foruok。 PPB_Graphics3D是Chromium暴露给PPA…

让基于CEF的应用支持自定义协议

基于CEF开发浏览器或Native与Web混合的富客户端&#xff0c;可以支持自定义协议&#xff0c;当点击网页上的自定义协议链接时&#xff0c;调用系统注册的协议处理程序。 实现分两部分&#xff1a; 修改注册表注册自定义协议基于CEF的代码 修改注册表注册自定义协议 假定我们…

Linux 编译CEF源码详细记录

Linux CEF&#xff08;Chromium Embedded Framework&#xff09;源码下载编译 背景 由于CEF默认的二进制分发包不支持音视频播放&#xff0c;需要自行编译源码&#xff0c;将ffmpeg开关打开才能支持。这里介绍的是Linux平台下的CEF源码下载编译过程。 Windows平台参考&#…

在HTML中给PPAPI插件配置参数

foruok原创&#xff0c;如需转载请关注foruok的微信订阅号“程序视界”联系foruok。 在HTML中&#xff0c;可以通过embed或object标签来配置插件。使用embed类似下面这样&#xff1a; <embed id"myplugin" type"application/x-ppapi-myplugin" width&q…

PPAPI中使用Chromium的3D图形接口

使用PPAPI的Graphics 3D接口做了一个小示例&#xff0c;鼠标点击插件区域&#xff0c;绘制颜色&#xff0c;效果与ppapi_simple类似。 foruok原创&#xff0c;如需转载请关注foruok的微信订阅号“程序视界”联系foruok。 项目 项目与VS2013编译最简单的PPAPI插件这篇文章里说的…

理解PPAPI的设计

要理解PPAPI插件的设计&#xff0c;先仔细阅读下面这些文章&#xff1a; Chromium的Process ModelsChromium的Multi-process ArchitectureChromium的Plugin ArchitecturePepper plugin implementation 理解了架构设计&#xff0c;再看代码层面的文档&#xff1a; Important …

技术债务可能是这样来的

看我技术博客的朋友可能有注意到&#xff0c;最近更新了一系列与CEF、PPAPI、Skia相关的文章。在研究它们的过程中&#xff0c;有一些有意思的经历&#xff0c;非常典型&#xff0c;可以从一个方面解释“技术债务”的由来。 接下来我会讲讲这次经历&#xff0c;并从此展开&…

使用CEF 获得某头条请求,并生成本地文件的方法

目录 一、获得网站请求响应信息 1、响应过滤 2、匹配过滤URL的函数 3、获得请求响应后的处理

CEF启动时注册多个ppapi插件

基于CEF开发时&#xff0c;“–register-pepper-plugins”这个参数可以用来注册ppapi插件&#xff0c;注册一个插件的命令可能如下&#xff1a; cefsimple.exe --ppapi-out-of-process --register-pepper-plugins"D:\projects\CEFSample\Release\ppapi_simple.dll;applic…

PPAPI插件的绘图与输入事件处理

在PPAPI插件与浏览器的交互过程一文中学习了PPAPI插件与浏览器的交互流程、渲染逻辑、输入事件的处理逻辑&#xff0c;这次我们改造一下graphics_2d_example示例&#xff0c;加入处理鼠标事件的逻辑&#xff0c;演示一下PPAPI插件想要处理输入事件时的代码流程。 foruok原创&am…

CEF框架中的一些宏定义(二):CEF_CURRENTLY_ON

CEF_CURRENTLY_ON 前面有一篇分析进程和线程的文章提到过&#xff1a; CEF线程模型与初始化过程详解 在Browser进程中在CEF框架中&#xff0c;很多代码都需要由这个browser的主线程来执行&#xff0c;宏定义CEF_CURRENTLY_ON就是用于这个判断的。 这个宏定义及其相关的宏定义…

给libcef_dll_wrapper生成VS工程

要在Windows下使用CEF开发&#xff0c;C接口比较方便&#xff08;libcef.dll导出的是c接口的api&#xff09;&#xff0c;对应的静态库文件是libcef_dll_wrapper.lib&#xff0c;但从cefbuilds.com下载的cef_binary中没有带这个库&#xff0c;需要自己手动编译。 可惜cef_bina…

cef3 源码包 结构目录探究

要使用cef3&#xff0c;我们第一步就是要下载cef的源码包。 地址是&#xff1a;http://opensource.spotify.com/cefbuilds/index.html 下载完后&#xff0c;我们才能进行下一步编译。不过很多刚入门的小伙伴不太理解&#xff0c;这个下载的包里都包含那些东西&#xff0c;都是…

CEF CEF3 常见问题(FAQ)

1. CEF1和CEF3有什么区别&#xff1f; CEF1使用单进程架构&#xff0c;CEF3使用多进程架构。CEF3的架构与Chrome浏览器非常相似&#xff0c;因此往往具有更好的性能&#xff0c;稳定性和新功能。 2. CEF1需要支持多长时间&#xff1f; 不再支持CEF1。 3. 支持CEF的[某个号码]发…

CEF中Browser进程与Render进程间通信

https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage提到了CEF提供的Browser与Browser进程通信的几种机制&#xff0c;我实验了Process Runtime Messages这种方式&#xff0c;用到了CefProcessMessage和CefBrowser::SendProcessMessage()。 我是在CEF中JS与C交互一…

CEF JS与browser进程间的异步通信

基于CEF开发时经常需要在JS和C代码间通信&#xff0c;我们在CEF中JavaScript与C交互中讨论了常见的交互方式&#xff0c;不过都是在Renderer进程中&#xff0c;这次来看看如何在JS和Browser进程间通信&#xff0c;基本介绍可以看这里&#xff1a; https://bitbucket.org/chrom…

Skia图片解码模块流程分析

我在在PPAPI插件中使用Skia绘图中说可以在PPAPI插件内使用Skia来绘图。这里面会有一个与色彩空间&#xff08;像素格式&#xff09;相关的问题。在那篇文章里我们在PPAPI中使用PPB_ImageData创建2D图像缓冲区时使用了PP_IMAGEDATAFORMAT_BGRA_PREMUL这种图像格式。Skia在Intel …

使用CEF的JSON解析功能

Cef提供了JSON解析功能&#xff0c;在cef_parser.h文件内有三个JSON相关的方法&#xff1a; CefParseJSONCefParseJSONAndReturnErrorCefWriteJSON 以最简单的CefParseJSON方法来搞个小示例演示下用法。函数原型如下&#xff1a; CefRefPtr<CefValue> CefParseJSON(co…

PPAPI插件与浏览器的通信

PPAPI的插件&#xff0c;原本是可以使用JS与浏览器交互的&#xff0c;https://code.google.com/p/ppapi/wiki/InterfacingWithJavaScript&#xff0c;这里还提供了一个JS与plugin交互的文档&#xff0c;但现在说不支持了&#xff0c;现在应该通过PPB_Messaging接口来完成Plugin…

PPAPI插件的全屏切换处理

有时你会想让PPAPI插件全屏&#xff08;比如播放视频时&#xff09;&#xff0c;这次来看看怎么做。 PPAPI和CEF App两侧都要处理。 foruok原创&#xff0c;转载请注明出处。欢迎关注foruok的订阅号“程序视界”(programmer_sight)。 PPAPI插件中的处理 要支持全屏切换&#…

CEF生成JSON数据

在“使用CEF的JSON解析功能”中介绍了使用CefParseJson方法&#xff0c;与之对应的还有一个CefWriteJson方法&#xff0c;可以用来生成JSON串&#xff08;或二进制&#xff09;&#xff0c;其函数原型如下&#xff1a; // Generates a JSON string from the specified root |n…

将SM2根证书预置到chromium中

最近花了很多精力在做chromium的GmSSL适配&#xff0c;协议和算法都已经完成&#xff0c;这篇文章是关于将SM2根证书预置到chromium中 我的开发测试环境是macos12.4&#xff0c;从chromium的代码和文档中得知证书获取和校验都是通过操作系统以及native api接口完成&#xff0c…

CEF JS与c++能够交互的原理 以及 JS 调用C++的流程分析

相关章节:CEF 之 Render进程 与 Browser进程通信 目录 一、JS与c++能够交互的原理 二、JS调用C++ 流程梳理

在UOS系统中编译CEF源码

一、下载cef代码 git clone gitbitbucket.org:chromiumembedded/cef.git 二、执行自动下载代码 由于chromium的代码很大&#xff0c;至少需要准备大概80G的硬盘&#xff01;&#xff01;&#xff01;整个代码量太大还是多准备一些空间吧&#xff08;强烈建议使用固态硬盘保存否…

C++ Qt 学习(五):Qt Web 编程

1. Chrome 技术介绍 大多数 web 技术都是基于 chrome&#xff0c;例如 CEF、QCefView 以及 QWebEngineView&#xff0c;这些都是在 native 界面里用来显示 html 网页&#xff0c;并且可以与 web 交互 例如常见的登录窗口、优酷的视频区域、WPS 的稻壳商城等&#xff0c;这些都…

QCefView初步使用

QCefView的简介 QCefView是使用Qt对cef3的简单包装&#xff0c;以使用Qt的开发。具体的参考见: https://cefview.github.io/QCefView/zh/docs/intros/buiding https://blog.csdn.net/m0_37251750/article/details/126508912 编译过成依赖Cef的包&#xff0c;Cef有二进制发行包…

CEF 二进制分发包目录结构分析

基于cef_binary_111.2.7gebf5d6achromium-111.0.5563.148_windows64此版本进行分析&#xff0c;版本差异太大会有所差异。 基本文件结构 ├─cmake ├─Debug ├─include │ ├─base │ │ └─internal │ ├─capi │ │ ├─test │ │ └─views │ ├─inter…

CEF3 获取(失去)焦点focus 并通知C++界面

这次遇到的问题是这样的&#xff0c;我们使用C(QT) 做的客户端&#xff0c;里面是嵌入CEF的界面&#xff08;web页面&#xff09;。也就是外层是C界面&#xff0c;里面是cef界面。在外层有使用C做的搜索框&#xff0c;输入搜索内容&#xff0c;会自动将搜索结果实时的以类似弹窗…

PPAPI+Skia实现的涂鸦板

在PPAPI插件中使用Skia绘图介绍了如何在PPAPI中使用Skia&#xff0c;文末说回头要提供一个简单的涂鸦板插件&#xff0c;这次我来兑现承诺了。 foruok原创&#xff0c;关注微信订阅号“程序视界”可联系foruok。 示例很简单&#xff0c;先看看效果&#xff1a; 涂鸦插件功能说明…

构建cef基本框架及构建过程中的参数说明

文章目录 准备源码版本编译版本结构编译过程写了好多CEF的内容了,发现一个最初的CEF helloworld的过程都没有写,也就是如何搭建这个CEF框架。今天把这个过程记录一下。 准备源码版本 在度娘上搜cef源码,一般得到的是https://bitbucket.org/chromiumembedded/cef/这个网址,…

python: pywin32 + cef 模仿 mdict 界面

pip install pywin32 ; pip install cefpython3 cefpython3-66.1-py2.py3-none-win_amd64.whl (69.0 MB) Successfully installed cefpython3-66.1 cd \Python37\Lib\site-packages\cefpython3\examples copy pywin32.py win_cef.py 用的图片在 \Python37\Lib\site-packages…

CEF C++端判断前端是否注册了某个JS函数

目录 一、判断前端是否注册某个JS函数的,扩展方法 1、前端注册的JS函数 1)、前端注

wxpython + cef 是优秀的 WebView 组件

CEF 即 (Chromium Embedded Framework)&#xff1b;cef 是优秀的 WebView 组件。 pip install wxpython4.2 wxPython-4.2.0-cp37-cp37m-win_amd64.whl (18.0 MB) Successfully installed wxpython-4.2.0 pip install cefpython3 cefpython3-66.1-py2.py3-none-win_amd64.whl …

CEF 缓存处理:清理缓存、禁用缓存、忽略缓存

目录 一、CEF缓存处理 1、指定缓存路径 2、清理缓存 3、禁用缓存 1)、原理分析

CEF消息传递实战(实测可用,新鲜出炉)

文章目录 JS 调用 C++本地方法:消息C++数据传递 JSRender 进程中绑定 JS 变量:思路一Render 进程中绑定 JS 变量:思路二Render 进程中绑定方法C++发送端Browser 端直接调用CEF框架中,主要的消息传递方向,从消息产生的源头,我觉得可以分成两种: 由JS发起,也就是界面有一…

Cef笔记:进程间通信

原文出处&#xff1a;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 process…

CEF 窗口全屏

有时候需要全屏播放视频,这时候就需要将CEF所在的窗口全屏,这样,就可以全屏显示CEF网页了 。 相关文章: 从 chromium源码中 去除CEF对requestFullscreen()限制 目录 一、窗口全屏 1、全屏前保存原先的位置

CEF CEF3支持flash 解决黑框

在我们使用cef的时候&#xff0c;有些网页需要flash来播放&#xff0c;这时候如果我们计算机如果没有安装flashplayerpp 的时候&#xff0c;会出现“该插件不受支持”。 这时候我们有两种选择可以解决&#xff1a; 1.可以去官网下载安装包https://www.flash.cn/ &#xff0c;安…

Windows 10 下使用Visual Studio 2017 编译CEF SDK

1.下载CEF SDK 由于需要跑在32位的机器&#xff0c;所以选择下载32位的SDKCEF Automated Builds 选择 Current Stable Build (Preferred) &#xff0c;这是当前稳定版本&#xff0c;CEF版本118 下载成功解压 2.下载编译工具 CMake 下载地址&#xff1a;CMake 配置CMake指向…

QCefView 的 编译

CEF QCefView编译 学习QT加载网页时了解到CEF与QCefView, QCefView是一个与Chromium Embedded Framework集成的Qt第三方开源库&#xff0c;LGPL许可&#xff0c;可以在项目中免费使用&#xff0c;功能类似CEF、QWebEngineView&#xff0c;提供C和web交互的能力。 官方网址&a…