chrome窗口

news2024/11/18 14:00:53

chrome 窗口的层次:

父窗口类名:Chrome_WidgetWin_1

有两个子窗口:

  • Chrome_RenderWidgetHostHWND
  • Intermediate D3D Window

// 用于匹配 Chrome 窗口的窗口类的前缀。

onst wchar_t kChromeWindowClassPrefix[] = L"Chrome_WidgetWin_";

const wchar_t kLegacyRenderWidgetHostHwnd[] = L"Chrome_RenderWidgetHostHWND";

Chrome_RenderWidgetHostHWND 窗口的作用:

content/browser/renderer_host/legacy_render_widget_host_win.h

// Reasons for the existence of this class outlined below:-
// 1. Some screen readers expect every tab / every unique web content container
//    to be in its own HWND with class name Chrome_RenderWidgetHostHWND.
//    With Aura there is one main HWND which comprises the whole browser window
//    or the whole desktop. So, we need a fake HWND with the window class as
//    Chrome_RenderWidgetHostHWND as the root of the accessibility tree for
//    each tab.
// 2. There are legacy drivers for trackpads/trackpoints which have special
//    code for sending mouse wheel and scroll events to the
//    Chrome_RenderWidgetHostHWND window.
// 3. Windowless NPAPI plugins like Flash and Silverlight which expect the
//    container window to have the same bounds as the web page. In Aura, the
//    default container window is the whole window which includes the web page
//    WebContents, etc. This causes the plugin mouse event calculations to
//    fail.
//    We should look to get rid of this code when all of the above are fixed.

// This class implements a child HWND with the same size as the content area,
// that delegates its accessibility implementation to the root of the
// BrowserAccessibilityManager tree. This HWND is hooked up as the parent of
// the root object in the BrowserAccessibilityManager tree, so when any
// accessibility client calls ::WindowFromAccessibleObject, they get this
// HWND instead of the DesktopWindowTreeHostWin.

此类存在的原因概述如下:-
1. 一些屏幕阅读器期望每个选项卡/每个唯一的 Web 内容容器位于其自己的 HWND 中,类名为 Chrome_RenderWidgetHostHWND。 对于 Aura,有一个主要的 HWND,它包含整个浏览器窗口
或整个桌面。 所以,我们需要一个假的 HWND,其窗口类为Chrome_RenderWidgetHostHWND 作为可访问性树的根每个选项卡。
2. 触控板/轨迹点有一些遗留驱动程序,它们具有特殊的功能发送鼠标滚轮和滚动事件的代码
Chrome_RenderWidgetHostHWND 窗口。
3. Flash 和 Silverlight 等无窗口 NPAPI 插件需要容器窗口与网页具有相同的边界。 在奥拉中,
默认容器窗口是包含网页的整个窗口WebContents 等。这会导致插件鼠标事件计算 失败。
当上述所有问题都解决后,我们应该考虑删除这段代码。

        这个类实现了一个与内容区域大小相同的子HWND, 将其可访问性实现委托给根
BrowserAccessibilityManager 树。 该 HWND 作为父级连接 BrowserAccessibilityManager 树中的根对象,因此当任何可访问性客户端调用::WindowFromAccessibleObject,他们得到这个HWND 而不是 DesktopWindowTreeHostWin。

ui/gl/child_window_win.h

DirectComposition 渲染到的窗口需要由进程拥有当前正在进行渲染。 该类创建并拥有一个窗口
浏览器将其重新设置为其窗口的子窗口。

// This runs on the window owner thread.
void InitializeWindowClass() {
  if (g_window_class)
    return;

  WNDCLASSEX intermediate_class;
  base::win::InitializeWindowClass(
      L"Intermediate D3D Window",
      &base::win::WrappedWindowProc<::DefWindowProc>, CS_OWNDC, 0, 0, nullptr,
      reinterpret_cast<HBRUSH>(GetStockObject(BLACK_BRUSH)), nullptr, nullptr,
      nullptr, &intermediate_class);
  g_window_class = RegisterClassEx(&intermediate_class);
  if (!g_window_class) {
    LOG(ERROR) << "RegisterClass failed.";
    return;
  }
}

 Intermediate D3D Window 窗口对应的进程id 是 十进制:4340;

这个窗口是gpu进程创建的,作为一个子窗口嵌入到父窗口 Chrome_WidgetWin_1 中,chrome在使用gpu渲染时,网页的渲染最后会在GPU中渲染,即 Intermediate D3D Window 窗口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1066377.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Node-RED系列教程-26node-red操作mqtt代理节点

安装节点&#xff1a;node-red-contrib-aedes 节点图标如下&#xff1a; 流程节点如下&#xff1a; 节点配置&#xff1a;

测试工程师思维学习

一、测试工程师应具备什么思维&#xff1f; 透过现象看本质&#xff0c;拒绝“一叶障目” 01、质疑和系统思维 02、创新思维 03、全局思维 04、风险驱动和组合思维 05、用户为中心和比较思维 06、BT思维和架构扩展性思维 二、测试工程师应避免的思维 01、同化现象 02、定位效…

零基础转行网络工程师,过来人给的一些建议

最近收到好多同学的一些提问&#xff0c;零基础没经验&#xff0c;能不能转行到网络工程师&#xff1f;薪资能有多少&#xff1f;发展前景怎么样&#xff1f; 应该有不少朋友都有这个疑问&#xff0c;那么&#xff0c;今天我尽量给大家做出一个详细的解答&#xff0c;希望能有…

怎么把图片压缩小一点?4个简单的压缩办法

怎么把图片压缩小一点&#xff1f;因为图片太大而带来的不良影响可说是非常的多&#xff0c;例如因为图片体积太大导致电脑中的存储空间越来越小&#xff0c;使得电脑使用起来越来越慢&#xff1b;当我们打开一张体积非常大的图片时无法开&#xff0c;甚至一度让电脑卡死&#…

[SWPUCTF 2021 新生赛]easy_sql - 联合注入||报错注入||sqlmap

这题可以直接参考&#xff1a;[NISACTF 2022]join-us - 报错注入&无列名注入 网站标题提示&#xff0c;参数是wllm ?wllm1   得到&#xff1a;Your Login name:xxx Your Password:yyy 解法一&#xff1a;手注 1、先尝试普通注入?wllm-1union select 1,2,3--   得…

RabbitMQ 安装 示例 全面了解有这一篇就够了

目录 一、基础知识 1. 什么是RabbitMQ 2.什么是消息和队列 3.什么是消息队列 4.什么地方使用RabbitMQ 5.RabbitMQ组成概念 二、如何落地RabbitMQ 1.RabbitMQ环境安装 2.创建系统业务 三、Exchange交换机及实例分析 1.Fanout Exchange (扇形交换机) 2.Direct Exchang…

【拿完年终奖后】想要转行网络安全,一定不要错过这个时间段。

网络安全&#xff0c;作为当下互联网行业中较为热门的岗位&#xff0c;薪资可观、人才需求量大&#xff0c;作为转行必考虑。 在这里奉劝所有零基础想转行&#xff08;入门&#xff09; 网络安全的朋友们 在转行之前&#xff0c;一定要对网络安全行业做一个大概了解&#xf…

2023-10-7 看C++八股的一些困惑

1、编译器常量和运行期常量有什么不同 编译期常量和运行期常量是两种不同的常量类型&#xff0c;它们在常量的定义和使用时具有不同的特点。 编译期常量&#xff08;Compile-time Constant&#xff09;&#xff1a; 编译期常量是在编译阶段就能确定其值的常量。编译器在编译代码…

SpringBatch适配不同数据库的两种方法

一、配置JobRepository Configuration EnableBatchProcessing public class TaskArrangeConfig extends DefaultBatchConfigurer {Autowiredprivate DataSource dataSource;Autowiredprivate JobLauncher jobLauncher;Autowiredprivate JobExplorer jobExplorer;Autowiredpriv…

预测性人工智能会彻底改变SIEM行业吗?

网络安全行业具有高度的活力&#xff0c;始终能够将最新和最优秀的技术融入其系统中。这背后有两个主要原因&#xff1a;首先&#xff0c;网络攻击不断演化&#xff0c;因此组织需要拥有先进技术以便检测复杂的攻击&#xff1b;其次&#xff0c;许多组织的网络架构非常复杂。 …

Unity2D创建帧动画片段

文章目录 概述为角色创建动画Animator组件创建动画片段状态转移 其他文章 概述 动画是游戏中一种使对象表现出运动或变换的方式。当涉及到动画时&#xff0c;我们通常就会用到Animator组件。它允许我们在Unity编辑器中创建、管理和控制这些动画&#xff0c;并将其应用于游戏对…

png图片给背景添加阴影

原图 效果图 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><styl…

从互联网报告中得出5个关于ITSM的结论

IT服务管理即ITSM正在进入云端&#xff0c;并不断发展以支持移动员工&#xff0c;随着IT服务管理(ITSM)进入云端并发展为支持移动员工&#xff0c;它将迎来一个有趣的时代。ManageEngine的市场分析师表示&#xff0c;随着终端用户对ITSM解决方案的期望开始反映消费者应用程序的…

TikTok体育精彩瞬间:全球体育迷的天堂

体育是连接世界的一种语言&#xff0c;它能够跨越文化和国界&#xff0c;将人们汇聚在一起&#xff0c;共同感受比赛的激情和荣誉。 而在现代社交媒体的时代&#xff0c;TikTok已经成为了全球体育迷的天堂&#xff0c;为他们提供了前所未有的方式来分享和体验体育精彩瞬间。 T…

认识接口自动化测试

目录 1. 什么是接口测试 2. 基本流程 3. 需求分析 4. 用例设计 5. 脚本开发 6. 结果分析 7. 完整脚本 1. 什么是接口测试 顾名思义&#xff0c;接口测试是对系统或组件之间的接口进行测试&#xff0c;主要是校验数据的交换&#xff0c;传递和控制管理过程&#xff0c;以…

企业想过等保,其中2FA双因素认证手段必不可少

随着信息技术的飞速发展&#xff0c;网络安全问题日益凸显。等保2.0时代的到来&#xff0c;意味着企业和组织需要更加严格地保护自身的信息安全。而在这个过程中&#xff0c;双因素认证的重要性逐渐得到广泛认可。本文将探讨 2FA 双因素认证的重要性。 在了解 2FA 双因素认证的…

FRM-10102 错误解决办法

去服务器此路径 /u01/test/app/fs2/EBSapps/appl/au/12.0.0/resource 把缺失的文件拿到本地库即可

电压放大器在心电图中的作用是什么

心电图是一种常用的临床检测方法&#xff0c;用于评估心脏的电活动。在进行心电图检测时&#xff0c;为了保证测量结果的准确性和可靠性&#xff0c;需要使用一种特殊的电压放大器&#xff0c;即心电放大器&#xff0c;来增强心电信号并抑制噪音和干扰。 心电图信号具有微弱的幅…

“传统文化宣传片+虚拟人动捕设备”前景如何?

在数字化时代的发展下&#xff0c;动捕设备的加入&#xff0c;让传播传统文化的虚拟人更具生动表现&#xff0c;拉近人们与传统文化的距离&#xff0c;通过虚拟人动作捕捉动画宣传片&#xff0c;引起更多人对传统文化的关注与传承。 *图片源于网络 深圳文博会创意短片《嗨ICIF…