重构 components/ 目录下的 allow_unsafe pragma 指令

提交: 4413f7f9 | 2025-07-23 11:54:43+00:00

← 返回列表

重构 components/ 目录下的 allow_unsafe pragma 指令

Minor
提交哈希: 4413f7f927f8ddf9bfbee128b7c0161691b38913
提交时间: 2025-07-23 11:54:43+00:00
影响等级: Minor
生成工具: webview2-upstream-sentry
上游审核链接: 查看上游审核 🔗

📋 摘要

本次提交是一个全自动化的重构,通过 tools/clang/unsafe_pragma_rewriter/ 脚本对 components/ 目录下的 180 个文件进行了统一的 unsafe pragma 指令重构。主要变更包括:1) 移除了文件顶部的 UNSAFE_BUFFERS_BUILD 宏定义块和相关的 pragma 指令(如 allow_unsafe_buffers、allow_unsafe_libc_calls);2) 在需要的地方添加了 #include "base/compiler_specific.h";3) 将原本的不安全代码段用新的 UNSAFE_TODO() 宏包装,以便进行临时豁免并标记为需要后续修复的代码。这是 Chromium 安全缓冲区使用检查项目的一部分,旨在逐步消除不安全的缓冲区操作。

🎯 影响分析

此次变更对 终端用户 和 开发者 主要产生以下影响:1) 对终端用户:无直接功能影响,这是一个纯代码重构,不会改变任何用户可见的功能或性能;2) 对开发者:这是一个重要的安全性改进,通过标准化不安全代码的标记方式,提高了代码的安全审查能力。开发者现在可以更容易地识别和追踪需要安全审查的代码段,UNSAFE_TODO() 宏的使用也明确表明这些代码段需要在未来进行安全性改进。这个变更是 Chromium 持续推进代码安全性的重要一步,有助于减少潜在的缓冲区溢出等安全漏洞。虽然短期内不会直接影响开发者的日常工作,但长期来看将促进更安全的编码实践。

受影响的类:

FieldClassificationModelExecutor IPv4ComponentToNumber TitledUrlIndex StreamConsumer PartialCircularBuffer BitmapImage VulkanInProcessContextProvider TestGLES2Interface TestRasterInterface