chromium高级编程
文章平均质量分 79
chromium浏览器开发过程中一些研发实例,以及需求修改案例。
三雷科技
国产操作系统下的QT项目实战,密码算法应用研发,网络安全应用研发。
coco2dx4.0游戏开发,塔防游戏开发实战。
展开
-
在UOS系统中编译CEF源码
默认2G修改为4G。由于chromium的代码很大,至少需要准备大概80G的硬盘!将chromium/chromium/_gclient_src_XXX目录修改为chromium/chromium/src目录,然后继续执行以下命令确保分批次下载好chromium的源码。--branch=5938 :选择cef的分支为5938,建议使用固定分支,不推荐使用master因为chromium的版本会固定下来。第一步:先将最新的一次提交clone下载(如果没有git才执行该代码,有了直接跳过这个步骤!原创 2023-11-20 14:46:16 · 314 阅读 · 0 评论 -
华为荣耀终端机试真题
字符展开(200分)原创 2024-03-05 21:59:27 · 717 阅读 · 0 评论 -
chromium+clangd快速代码跳转
在开发chromium的时候我们使用vscode工具进行开发,如果使用C++插件发现很容就卡死计算机了。所以我们使用clangd工具来查看chromium的代码。原创 2024-01-16 14:02:45 · 261 阅读 · 0 评论 -
OpenCloudOS 安装google浏览器
【代码】OpenCloudOS 安装google浏览器。原创 2024-01-12 10:15:18 · 158 阅读 · 0 评论 -
交叉编译ARM64架构electron问题汇总
本文主要参考Electron官方文档中和在amd64环境内构建arm64的electron包。如果是arm64环境请查看文章。原创 2024-01-09 17:07:00 · 1013 阅读 · 0 评论 -
chromium浏览器静默截图
chromium浏览器静默截图原创 2024-01-09 15:22:51 · 332 阅读 · 0 评论 -
arm64架构编译electron长征路
在arm64下需要构建对应架构的gn文件。源代码下载,并且切换到对应的版本。将gn源码放在src/tools/gn目录下,内容如下图。原创 2024-01-08 21:13:37 · 1265 阅读 · 0 评论 -
统信专业版编译electron问题总结
在执行 gn gen out/Release --args=“import(”//electron/build/args/release.gn")"过程中出现的问题。执行ninja -C out/Release electro命令时出的错误。原创 2024-01-07 19:17:40 · 1500 阅读 · 0 评论 -
arm64操作系统LLVM源码编译
编译electron需要对应版本的LLVM编译器,因此需要构建arm64版本的LLVM。构建过程如下。原创 2024-01-04 09:52:16 · 429 阅读 · 0 评论 -
ca-certificates.crt解析加载到nssdb中
获取证书以后使用PK11_ImportDERCert将证书导入到nssdb中。ca-certificates.crt为操作系统根证书列表。原创 2023-12-11 14:52:28 · 539 阅读 · 0 评论 -
交叉编译LoongArch架构下的Electron
本文打算从环境配置,获取源代码,编译,测试,使用五个方面初步描述了 LoongArch 架构下 Electron 的交叉编译。由于chromium版本更新速度极快,且对C++新特性的应用较激进,本文档使用的 clang/llvm 落后于官方所提供的版本,存在部分编译参数不兼容的问题。本文主要参考Electron官方文档中和。原创 2023-12-28 10:32:46 · 1198 阅读 · 0 评论 -
gn入门(Chromium)
Chromium是用gn和ninja进行编译的,即gn把.gn文件转换成.ninja文件,然后ninja根据.ninja文件将源码生成目标程序。gn和ninja的关系就与cmake和make的关系差不多。原创 2023-12-27 14:23:08 · 1025 阅读 · 0 评论 -
chromium代码下载技巧记录
【代码】chromium代码下载技巧记录。原创 2023-12-27 11:24:04 · 455 阅读 · 0 评论 -
ERR_CERT_COMMON_NAME_INVALID出错处理办法
如果网站的SSL证书是由不被浏览器信任的、或者是自签名的CA签发的,浏览器就会提示这个错误。SSL证书通常是以证书链(Certificate Chain)的形式存在的,其中包含了网站证书、中间证书和根证书。如果你使用的是HTTPS协议,浏览器会验证网站的SSL证书,确保它的通用名称与你访问的域名匹配。如果你使用的是多域名证书(通常称为通配符证书或者Subject Alternative Name证书),确保证书上列出了你正在访问的确切域名。确保SSL证书链是完整的,包含了网站证书、中间证书和根证书。原创 2023-12-01 10:30:01 · 1195 阅读 · 0 评论 -
国密自签名证书生成
OpenSSL 1.1.1n 版本已经支持了国密算法。SM2、SM3、SM4所以我们使用openssl生成国密证书的时候需要先查看版本中是否已经支持了国密算法。openssl升级下载opensslwget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1n.tar.gz解压tar -zxvf openssl-1.1.1n.tar.gz编译cd openssl-1.1.1n./conf.原创 2022-05-02 20:14:03 · 4992 阅读 · 3 评论 -
chromium证书校验流程SM2WithSM3(C++源码说明)
证书链是一种用于验证数字证书有效性的机制,通常用于构建安全的通信通道。数字证书是一种包含公钥和相关身份信息的数据结构,由权威机构(证书颁发机构,CA)签发。证书通常用于身份验证和安全通信。证书链是由一系列数字证书构成的链条,包括终端用户的证书、中间CA的证书和根CA的证书。证书链的目的是将终端用户的证书与信任的根CA关联起来。根证书是证书链的根节点,它是由受信任的CA签发的。根证书通常预置在操作系统或浏览器中,并被视为信任的起点。中间CA证书是介于终端用户证书和根证书之间的证书。原创 2023-11-23 07:00:00 · 591 阅读 · 0 评论 -
chromium114添加新的语言国际化支持
需要chromium114支持新语言体系,例如藏语,蒙古语,苗语等,本文解决如何给chromium添加新的语言体系。原创 2023-11-22 07:00:00 · 540 阅读 · 0 评论 -
FIDO2+WebAuthn认证详解
指定可用的公钥凭证参数,包括 type("public-key" 表示使用公钥凭证)、alg(指定签名算法的数字值,例如 -7 表示 ECDSA with SHA-256)。问题参考:https://docs.djangoproject.com/en/4.0/howto/static-files/修改.包含用户的信息,包括 id(用户的唯一标识符)、name(用户名)、displayName(显示的用户名)。包含 Relying Party(RP)的信息,比如 name 表示 RP 的名称。原创 2023-11-05 07:00:00 · 415 阅读 · 0 评论 -
Chromium浏览器启动参数
Chromium浏览器是一个开源项目,它继承了很多Chrome浏览器的特性。您可以在启动Chromium浏览器时使用各种命令行参数来配置其行为。这只是一些示例参数,您可以根据需求选择不同的参数组合。禁用弹出窗口拦截器。忽略SSL证书错误。原创 2023-10-25 07:00:00 · 542 阅读 · 0 评论 -
统信浏览器kerberos配置方案
本文介绍了Kerberos配置的目录结构和文件格式。Kerberos配置分为两个主要目录:/etc/browser/policies/managed/ 和 /etc/browser/policies/recommended/。managed/目录包含强制执行、不可更改的配置文件,而recommended/目录包含建议的配置文件,只会在设置界面中提供建议。配置文件采用JSON格式,且必须严格遵循JSON语法。文章提供了一个配置实例,详细说明了AuthServerAllowlist的用法,并指导用户如何创建和放原创 2023-10-20 07:00:00 · 422 阅读 · 0 评论 -
统信系统CEF项目研发环境构建
Chromium Embedded Framework (CEF). 用于将基于 Chromium 的浏览器嵌入其他应用程序的简单框架。CEF是一个BSD许可的开源项目,由Marshall Greenblatt于2008年创立,基于Google Chromium项目。与 Chromium 项目本身主要专注于 Google Chrome 应用程序开发不同,CEF 专注于促进第三方应用程序中的嵌入式浏览器用例。原创 2023-10-10 17:44:40 · 131 阅读 · 0 评论 -
开发chromium你要知道的几个网站
我们在开发chromium的时候需要使用到各种各样的工具和网站,下面给小伙伴们介绍一些我常用的网站地址。原创 2023-10-07 10:06:35 · 359 阅读 · 1 评论 -
chromium窗口布局说明
【代码】chromium窗口布局说明。原创 2023-07-05 15:52:37 · 321 阅读 · 0 评论 -
浏览器本地通信(Native Messaging)
扩展和应用程序可以使用与其他消息传递API类似的API与本机应用程序交换消息。支持此功能的本机应用程序必须注册知道如何与扩展通信的本机消息传递主机。Chrome在一个单独的进程中启动主机,并使用标准输入和标准输出流与主机通信。Native messaging host为了注册本机消息传递主机,应用程序必须安装定义本机消息传递主机配置的清单文件。下面是清单文件的示例:{ "name": "com.my_company.my_application", "description": "My原创 2023-07-04 11:44:39 · 1033 阅读 · 0 评论 -
Chromium的dmp文件信息分析
浏览器在奔溃的时候往往无法直接在客户现场调试为了帮助分析。我们可以获取dmp文件分析浏览器奔溃的堆栈。原创 2023-05-24 19:03:28 · 560 阅读 · 0 评论 -
URLRequest的生存期 ( chromium 网络二)
HTTP CacheHttpCache::Transaction位于URLRequestHttpJob和HttpNetworkTransaction之间,并实现HttpTransaction接口,就像HttpNetworkTransaction一样。事务检查请求是否可以从缓存中提供。如果请求需要重新验证,它将处理通过网络发送有条件的重新验证请求。它还可以将一个范围请求分为多个缓存和非缓存的连续块,并可以为单个范围URLRequest发出多个网络请求。HttpCache::Transaction使用三翻译 2022-05-30 16:16:35 · 280 阅读 · 0 评论 -
chromium中WebUI编译配置(内含配置实例)
它将与作为输入传递的每个 TS 文件对应的 JS 文件输出到指定的输出目录,并在目标生成目录中生成一个清单,列出它输出的所有名为 $target_name.manifest 的文件。WebUI 构建是使用 BUILD.gn 文件配置的,这些文件位于 WebUI 的顶级目录中。此UI只有一个签入的TypeScript文件my_debug_page.ts和一个签出的HTML文件my_debug _page_index.HTML,该文件使用带有“src=”my_debug-page.JS“如有必要,进行预处理。原创 2023-02-01 08:00:00 · 234 阅读 · 0 评论 -
chromium新增内置页面(代码实例)
本文介绍在chromium源码中添加一个新的内置页面,内置页面是chromium的特殊网站,当浏览器匹配到内置页面的url地址时就不会跳转到网络地址.而是直接显示指定的UI界面.本文模仿历史页面以及书签页面添加新的指定义的内置页面(chrome://arv-manager)历史页面是由C++(后端)和TS(前端)组成。后端通过加载html资源显示历史页面。原创 2023-01-18 09:45:22 · 640 阅读 · 0 评论 -
chromium中mojom通信开发实例(render进程->brower进程)
本文介绍如何在chromium编写mojom通信实例,使得在chromium中跨进程通信。原创 2023-01-13 09:36:32 · 699 阅读 · 0 评论 -
chromium93版本policys浏览器策略修改与定制
首先,需要在中定义(以下暂时用C++风格来进行注释){ //4360行'name': 'ShowHomeButton', //policy名称'owners': ['file://components/policy/resources/OWNERS'], //作者名称(可以是邮箱、文件等形式)'type': 'main', //数据类型'schema': { 'type': 'boolean' }, //属性介绍。原创 2023-01-04 10:55:29 · 1921 阅读 · 0 评论 -
chromium中webui开发说明(内置页面)
WebUI被授予超级权限,以便他们可以管理Chrome本身。例如,如果无法访问许多不同的隐私和安全敏感服务,则很难实现设置UI。默认情况下,不会授予对这些服务的访问权限。有时我们需要使用C++处理一些问题,将见过返回给js,因此我们在js中添加监听,当C++处理完成后自动调用监听函数。“WebUI”是一个术语,用于地描述部分Chrome UI使用的web技术。不是所有web基础UIs 都是chrome://URLS。只有特殊的URL通过子安全进程被授予WebUI“绑定”。文档将介绍webUI是如何工作的。原创 2022-09-13 13:52:09 · 473 阅读 · 0 评论 -
chromium添加、修改“国际化”字符串
chromium国际化是方便我们在切换不同语言的时候,对应的词条也能反应成对应的语言词条。chromium的国际化是框架是已经封装好了。我们只需要按照对应的位置添加即可。原创 2022-12-12 07:00:00 · 810 阅读 · 0 评论 -
chromium中单例类的构建和使用
schromium提供了一个类似WTF的基础库。本文针对chromium的base库中的单例模式给出实际的demo。(base::Singleton)本文包含以下几个内容:1. 在chromium中添加新的模块。2. 编写新的单例类。3. 使用该单例类。本文为了测试因此在chromium主目录下直接创建了uos/目录用于存放测试代码。二、添加源码文件新建文件uos.cc、uos.hSKFManage为最终用户使用的类。SKFManageImpl实现SKFManage具体功能的类。设置单例模式时需要原创 2022-12-08 13:51:02 · 385 阅读 · 0 评论 -
Mojom接口编写规范(chromium)
本文介绍关于mojom文件编写的规范,以及mojom中的类型定义等。Mojom是Mojo接口的IDL。给出一个文件,绑定生成器可以输出任何受支持语言的绑定:C++、JavaScript或Java。对于一个简单的示例,请考虑以下假设的Mojom文件 :这里定义了一个接口名为Frobinator的接口在模块名为widget.mojom的模块中,注意,单个Mojom文件中可能包含许多接口和/或其他类型的定义(结构、枚举等)。If we add a corresponding GN target to:an原创 2022-12-07 10:17:51 · 498 阅读 · 0 评论 -
定制chromium中window对象添加函数
目录一、修改idl文件二、修改cpp和h文件 三、编译四、运行测试在js开发的时候我们有时会用到window这个对象。我们如何在chromium中的window对象添加函数呢?chromium版本请看文章:统信UOS编译chromium过程_三雷科技的博客-CSDN博客idl文件是浏览器js接口定义文件,通过这个文件js端知道可以调用那些函数,C++端知道实现那些函数,idl文件的定义是不依赖语言的。找到关于window对象的idl文件。文件路径:third_party/blink/renderer/cor原创 2022-12-06 15:47:28 · 480 阅读 · 0 评论 -
统信UOS编译chromium过程
1.1 操作系统:统信UOS专业版1050(64位) AMD1.2 浏览器版本:chromium-110.0.5415.01.3 下载地址:chrome源码离线下载 由于源码下载比较大因此我们可以使用这样的方式下载。 1.4 配置科学上网,因为我们需要下载和更新一些东西因此需要科学上网才行。2.1 chromium的编译是借助编译工具进行这样可以方便。2.2 配置环境变量三、安装编译环境3.1 编译llvm 修改版本信息。3.2 安装python33.3 下载node原创 2022-12-06 09:50:22 · 1360 阅读 · 2 评论 -
Checking out and building Chromium on Linux
page.原创 2022-11-29 20:45:44 · 192 阅读 · 0 评论 -
openssl中SM2、SM3、SM4使用实例
SM4:(原名SMS4.0)是中华人民共和国政府采用的一种分组密码标准,由国家密码管理局于2012年3月21日发布。相关标准为“GM/T 0002-2012《是中华人民共和国政府采用的一种密码散列函数标准,由国家密码管理局于2010年12月17日发布。相关标准为“GM/T 0004-2012 《分组密码算法》(原SMS4分组密码算法)”。sm2keypair.pem:带签名私钥。msg.dat : 代签名数据。原创 2022-11-19 22:32:06 · 3908 阅读 · 0 评论 -
linux系统如何将根证书预置到chromium浏览器中
最近接到一个需求就是将根证书预置到浏览器中,也就是当用户直接安装浏览器访问https服务器的时候不会出现不信任的情况。下面文章将帮助你解决这个问题。1.准备// hg命令// 获取源码。原创 2020-11-09 13:32:24 · 1621 阅读 · 7 评论 -
预置吊销信息至chromium83---判断服务器访问的证书是否被吊销
测试:“嘿嘿,我又发现了一个BUG,这个证书明明已经被吊销了为啥没有吊销提示!” “好吧,我看看”,心里想证书吊销不是自动判读的吗?难道还会和证书有关,自己测试了一把,我去还真是认为是没有被吊销的。 经过查看,发现如果是正常的判断,也就是我们目前使用的证书技术的确是自动判断的,只要能上网就能通过证书序列号判断这个证书的吊销状态。 但是,chromium浏览器默认使用了自己的吊销判断也就是crlset,刚开始接触chromium证书吊销的时候在代码中看到了crlset还是以为用...原创 2020-11-12 14:47:09 · 463 阅读 · 0 评论