GVKun编程网logo

Win10系统上的Chromium将获得“零拷贝捕获”支持(windows零拷贝技术)

34

如果您想了解Win10系统上的Chromium将获得“零拷贝捕获”支持的相关知识,那么本文是一篇不可错过的文章,我们将对windows零拷贝技术进行全面详尽的解释,并且为您提供关于Brave浏览器更换

如果您想了解Win10系统上的Chromium将获得“零拷贝捕获”支持的相关知识,那么本文是一篇不可错过的文章,我们将对windows零拷贝技术进行全面详尽的解释,并且为您提供关于Brave 浏览器更换 Chromium 内核,支持 Chrome 扩展、Chrome/Chromium的实验性功能+扩展推荐,让你的Chrome/Chromium起飞!、chromium 浏览器开发系列第三篇:chromium 源码目录结构、Chromium 组件DotNetBrowser V1.12发布 | Chromium引擎升级到版本60的有价值的信息。

本文目录一览:

Win10系统上的Chromium将获得“零拷贝捕获”支持(windows零拷贝技术)

Win10系统上的Chromium将获得“零拷贝捕获”支持(windows零拷贝技术)

Win10系统上的Chromium将获得“零拷贝捕获”支持

自微软的EdgeHTML渲染引擎停止使用以来已经快两年了,这家科技巨头宣布将Edge转移到无处不在的Google开源Chromium上,这让所有人感到惊讶。微软表示,通过改用Chromium,可以更好地为Web做出贡献并支持不断发展的Web标准。

这一转变确保了Win10系统用户在使用Microsoft Edge时不会遇到偶然的故障。此外,微软还开始通过新功能和错误修复为Chromium Gerrit做出积极贡献。

传统Microsoft Edge中的基础多媒体技术是Media Foundation(在Vista中引入),而Chromium平台目前缺少该基础。幸运的是,微软已经确认正在为开源项目“ Media Foundation ” 开展工作,并且支持将很快获得。

Win10系统上的Chromium将获得“零拷贝捕获”支持

作为Media Foundation开发的一部分,Microsoft现在正在研究“零复制视频捕获”实施,该实施将利用Win10系统上的GPU内存缓冲区来减少过多的功耗。

Chromium中Windows的相机捕获路径是WebRTC视频会议方案中电源使用的重要因素,并且电源使用过多的主要原因是复制和转换操作。

在Win10系统上,NV12是YUV 4:2:0视频帧的首选格式。此外,对于大多数硬件上最新的相机驱动程序,这些帧最初都填充有GPU纹理(D3D11纹理)。

Chromium中的当前实现导致视频帧被多次复制/转换,当您使用Chrome浏览器流式传输视频时,这会导致过多的电源和性能问题。

微软声称可以利用GPU内存缓冲区在Windows上实现零拷贝视频捕获。

微软表示:“通过利用Chromium中现有的GPU内存缓冲区基础架构,可以将副本数量减至最少。”

使用此方法,可以将NV12 D3D11纹理复制到VideoCaptureBufferPool NV12纹理,从而减少了过多的资源使用。

Brave 浏览器更换 Chromium 内核,支持 Chrome 扩展

Brave 浏览器更换 Chromium 内核,支持 Chrome 扩展

以保护个人隐私为中心的 Brave 浏览器目前已经完成了最后一个阶段的工作,将用户使用的浏览器迁移到 Chromium 内核,与 Chrome、Vivaldi、Opera 和 Edge 相同。

在更换完成后,Brave 浏览器的运行速度将提升 22%。

用户在更新 Brave 0.57 版本后,就可以直接在 Google 网上商店上下载 Google Chrome 的相关扩展程序,扩展程序和 Brave 完全兼容。

Brave 浏览器之前并没有完全使用 Chromium 内核,自 2016 年以来,Brave 仅使用了 Chromium 中的页面渲染引擎,其他部分均是团队开发的自定义组件。这个组件被称为 Muon。Muon 被团队内部称为是更安全的 Electron 分支。他允许使用自定义的 HTML、CSS、JavaScript 来定义用户界面。

但缺点也显而易见:由于团队规模和资金的限制,Muon 的开发是相当耗时的,Muon 并没有达到团队的预期效果。

早在 2018 年 3 月,Brave 团队就宣布放弃使用 Muon,选择使用 Chromium 项目提供的技术标准作为 Brave 浏览器的标准。

上周五发布的 Brave 0.57 版本完成了 Muon 接口向 Chromium 接口的过渡。

在替换为 Chromium 之后,Brave 浏览器可以更好的支持 WebExtensions API,现在所有的可扩展 API 以及在 Muon 上从未实现过的 API。

虽然使用了 Chromium 作为 Brave 浏览器的内核,但并不会向浏览器中添加任何 Google 的功能。Brave 团队目前已经禁用了 Google 账户同步功能,并且删除了 Google 用于搜索建议相关的代码和信息上报代码。以此来保证 Brave 浏览器是一款 "以保护个人隐私为中心" 的浏览器。

Chrome/Chromium的实验性功能+扩展推荐,让你的Chrome/Chromium起飞!

Chrome/Chromium的实验性功能+扩展推荐,让你的Chrome/Chromium起飞!

[TOC]

1 实验性功能

Chrome/Chromium内置了一些很酷的实验性功能,打开

chrome://flags

即可访问.打开这些实验性功能后,浏览器的使用体验会更好,这里Chrome的版本为80.0.3987.132, Chromium的版本为82.0.4080.0,不同的版本中有不同的实验性功能,具体每一项请打开上面的访问地址进行查看.

1.1 平滑滚动

在这里插入图片描述

1.2 悬停标签

在这里插入图片描述 鼠标悬停标签显示网址与网页缩略图.

1.4 并行下载

在这里插入图片描述

1.5 强制黑暗模式

在这里插入图片描述 对所有内容使用黑暗模式.

1.6 阅读模式

在这里插入图片描述 开启之后会在某些页面的地址栏的在最右边的收藏五角星符号旁边多一个阅读视图的符号。

1.7 扩展菜单栏

在这里插入图片描述 这样就不用每次都打开"更多工具"了. 在这里插入图片描述

1.8 渲染级别数据优化

在这里插入图片描述

2 扩展推荐

先来一张图,这是笔者自用的扩展: 在这里插入图片描述 扩展不在多而在精,原本是有20多个的,然后不断精简,优化,替换,就剩下了13个扩展。

2.1 AdGuard/uBlock

去广告的扩展,原本用的是什么广告终结者,AdBlock,后来就改成了这两个。

2.2 better-onetab

原本用的是onetab,onetab其实做的不错了,只是UI确实比better-onetab差。。。 这个扩展是用于标签管理的,最常见的功能是,需要关闭浏览器,但是目前开了很多个标签,想在下一次打开浏览器时恢复这些标签,但是又不想一个一个加进收藏夹,因为完全没必要而且大部分都是一次性使用,此时better-onetab便派上了用场,单击扩展存储全部标签即可。 在这里插入图片描述 由于这个可能经常使用,建议打开

chrome://extensions/shortcuts

增加快捷键。 在这里插入图片描述 笔者这里加了两个,一个是显示扩展页面的,一个是存储所有标签的。

2.3 Dark Reader

这个嘛,看名字就知道了,黑暗模式,支持一键切换,支持不同站点,也支持亮度,对比度等的调节,非常实用,也建议加上快捷键。 在这里插入图片描述 在这里插入图片描述 比如这里加的快捷键为alt+q,然后按一下就可以切换黑暗/正常模式了。

2.4 Extensions Manager

扩展管理器,可以管理所有的扩展,一键开启/关闭,同时也支持不同环境下的快速切换扩展,常见的场景是一般浏览使用默认配置,然后开发环境使用另一套扩展,切换非常的简单,首先在设置里添加。 在这里插入图片描述 然后单击该扩展就可以进行切换了: 在这里插入图片描述

2.5 Imagus

这个扩展主要用于预览图片,鼠标悬停可以放大预览图片,还可以对临时的预览图片进行缩放,旋转等功能。 在这里插入图片描述 在这里插入图片描述 可以打开设置修改默认的快捷键,默认q垂直翻转,w水平翻转,e逆时针旋转,r顺时针旋转,剩下的就不说了,按需要自定义。

2.6 Infinity Pro

一个非常漂亮的新标签页扩展,建议注册一个账号去开启Pro功能,开启Pro后可以支持文件夹的创建,还可以把数据备份到云端,然后切换浏览器可以一键恢复数据。 在这里插入图片描述 可以自定义的设置非常丰富,包括布局行列数,行宽,列宽,图标大小,阴影,圆角,透明度,字体大小,阴影,颜色,自定义/随机壁纸,搜索栏显隐等,自行体会。

2.7 Minimal Scrollbar

最小化滚动条,这个没啥好说的,自己对比一下安装扩展后的变化就好了。

2.8 Similar Sites

可以发现类似的网站,比如,打开csdn时,显示了github,stackoverflow,博客园等网站。 在这里插入图片描述

2.9 Tampermonkey

这个很出名啊,油猴,有一个类似的,叫暴力猴。油猴这个扩展主要是用来管理脚本的,也就是说,单单安装这个扩展啥用也没有,需要安装脚本,这里推荐这个网站:Greasy Fork. 具体就不多说了,有些奥秘需要自己去探个究竟。

2.10 Vimuim

这个压轴登场的扩展,是vim与chromium的结合体,换句话说,在浏览器中集成vim的操作。 比如hjkl是最常见的vim操作,对应页面的滚动,分别是左/下/上/右滚,f是页面跳转功能,比如一个页面按f前: 在这里插入图片描述 按了f后: 在这里插入图片描述 可以看到多了很多字母对吧,如果此时再输入对应的字母,便会在当前页面跳转到目标页面,比如此时再输入le,便会跳转到“这份Android Studio快捷键大全....”这个页面,大写F实现的功能类似,不过是在新标签页打开。 另一个非常实用的功能是搜索框,按下o/O即可出现: 在这里插入图片描述 这个框可以直接输入链接跳转,或者输入字符进去搜索,可以在vimuim的设置里设置默认的搜索引擎: 在这里插入图片描述 这里默认的搜索引擎是百度,下面的设置可以自定义搜索引擎,比如第一行为

g : https://www......

冒号前面的g表示关键字,后面的搜索关键字用

%s

代替,然后在搜索框中输入关键字+空格+字符就可以用该关键字对应的搜索引擎进去搜索了。 这里演示一下添加搜索引擎的方法,以github为例,打开github随便搜索123: 在这里插入图片描述 复制这个地址,加上关键字与替换123: 在这里插入图片描述 在这里插入图片描述 别忘了底部的保存按钮。 在这里插入图片描述 然后输入关键字+空格+搜索字符进行搜索即可。 在这里插入图片描述 再说一下书签功能,输入b/B可以直接访问书签(强大吧),比如笔者这里的书签有四个文件夹: 在这里插入图片描述 输入的标签以斜杠符号开始,后面加对应的文件夹以及对应的网站,这里不用担心输错,因为有自动显示的功能,输错的话下面没有书签显示: 在这里插入图片描述 还有很多功能就不逐一介绍了,可以输入?查看帮助: 在这里插入图片描述

3 最后

现在主流的Chrome已经很强大了,加上这些实验性功能与推荐的扩展,希望你们能有一个更舒服的上网冲浪的环境。

chromium 浏览器开发系列第三篇:chromium 源码目录结构

chromium 浏览器开发系列第三篇:chromium 源码目录结构

上两篇介绍了下载源码和编译源码,这次主要介绍 chromium 的源码目录结构,我也是通过源码和官网结合来跟大家说,如果有说的不准确的,欢迎交流。

另外,官网的不一定准确,他们其实也很懒,所以最主要还是靠自己。官网只能作为一个参考。

Chromium 结构相对两年前变化很大。目录结构依然很清晰,主要有三个部分(不包括其他的库):浏览器,渲染器,webkit。浏览器是主要的进程,代表所有的 UI I / O。渲染通常是每个 tab 页的子过程,是由浏览器驱动。Webkit 做布局和渲染。

简单介绍解决方案文件:

解决方案文件是 src/chrome/chrome.sln

  • 启动代码是在 chrome/chrome_initial 项目。

  • 常见的共享库的代码是在 base 项目。此代码是所有项目之间共享,chromium 团队试着让它尽可能的小。

  • 常见的浏览器特定的代码在 chrome/common 项目,它由浏览器和渲染器之间共享。

  • Webkit 内核代码是在项目 third_party/WebKit(只读)。之前的 src/webkit 下 chromium webkit 的一个封装,现在已经删除 webkit_glue 项目,把一些测试文件移植到 content/ 下,一些文件已经删除。

  • chrome/browser 项目提供了用户界面,存储,网络请求等

顶级项目:

下载 chromium 源码后,进入 src 目录,你会发现一些目录 ,如下:

 

下面着重讲一下一些比较重要的目录:

  • android_webview提供适合集成到 Android 平台的 src /content 的封装接口。

注意:

  • appschrome 应用相关

  • base:所有子项目之间共享的通用代码。它包含像字符串操作,通用程序等。只有当超过一个顶级项目之间共享的代码才能放到这里。 

  • breakpad:谷歌的开源崩溃报告的项目。直接从谷歌代码版本库拉取。

  • build:构建相关的配置,由所有项目共享。

  • ccchromium 合成器实现。

  • chromechromium 浏览器主程序模块实现代码,核心代码

  • chrome/test/data:运行某些测试的数据文件。

  • components:浏览器依赖的组件目录。

  • content一个多进程沙箱浏览器渲染页面的核心代码。

  • net:为 chromium 开发的网络功能库。

  • sandbox:沙箱项目,阻止渲染器修改系统。

  • Skia:为 Android 开发谷歌的 Skia 的图形库。这是 Android 的树副本。

  • SQL sqlite 的封装。

  • testing:用来单元测试的代码。

  • third_party:第三方库,如图像解码器和压缩库等。

  • UI/GFX:共享图形类。这些是 Chromium 的图形用户界面的基础。

  • UI/viewUI 开发的简单框架,提供渲染,布局和事件处理一个简单的框架。大部分的浏览器的用户界面的在该系统中实现。该目录包含了基本对象。

  • url:谷歌的开源 URL 解析和标准化库。

  • V8V8 JavaScript 库。

  • webkit(小写):现在只有一小部分留在这里了。common/gpu/


依赖关系图:

一个低层模块不能直接 include 更高的模块的代码(例如:content 不能 include chrome 中的头文件),但可以使用嵌入的 API 和它通信。

 

今天就先写到这里,希望大家能一块学习。

讲了源码下载,编译,目录结构,那么接下来会讲一下如何在 windows 下调试 chromium。希望大家继续关注。

另外附上官网地址:

http://dev.chromium.org/developers/how-tos/getting-around-the-chrome-source-code


如果大家对本系列文章有疑问,可以直接在公众号留言,小编第一时间联系原创作者帮你耐心解答。

技术人员都有自己的情怀,深陷其中而不被理解,欢迎关注个人微信公众平台:程序员互动联盟 (coder_online),一个开发人员的家,来诉说自己的故事。

Chromium 组件DotNetBrowser V1.12发布 | Chromium引擎升级到版本60

Chromium 组件DotNetBrowser V1.12发布 | Chromium引擎升级到版本60

DotNetBrowser 1.12 更新

Chromium 60

  • Chromium引擎升级到版本60.0.3112.113。 这意味着WebGL 2.0的支持自动启用

新功能

  • 能够在运行时修改特定浏览器实例的User-Agent字符串
  • 能够在运行时更改特定浏览器实例的Accept-Language
  • 能够将JSObject转换为JSON字符串

改进

  • Windows 10中的屏幕键盘支持
  • 支持自定义游标(WPF,轻量级),当工作目录为只读时,这种行为可能会导致异常
  • 启动错误处理,在启动过程中可能会抛出的异常会包含有关错误根本原因的更多信息
  • 显示PDF文件后加载Flash内容时的稳定性
  • 显示弹出窗口后加载Flash内容时的稳定性

修复

  • WPFBrowserView.PreviewMouseWheel事件现在正确地提供了滚动变量(WPF,Heavyweight)
  • 自定义PopupHandler实现被忽略的问题,当WPFBrowserView控件托管在WinForms应用程序中时使用的默认实例
  • 收到StartLoadingFrameEvent事件时,不必要的焦点抓取(WPF,Heavyweight)
  • 当不可能通过JS-.NET桥接API访问注入到JavaScript中的IDictionary对象的某些属性时出现问题

点击下载DotNetBrowser 1.12

我们今天的关于Win10系统上的Chromium将获得“零拷贝捕获”支持windows零拷贝技术的分享已经告一段落,感谢您的关注,如果您想了解更多关于Brave 浏览器更换 Chromium 内核,支持 Chrome 扩展、Chrome/Chromium的实验性功能+扩展推荐,让你的Chrome/Chromium起飞!、chromium 浏览器开发系列第三篇:chromium 源码目录结构、Chromium 组件DotNetBrowser V1.12发布 | Chromium引擎升级到版本60的相关信息,请在本站查询。

本文标签: