google又要改变世界,chromium地址栏省略掉http://。

Google通过其Chromium项目宣布将省略地址栏中的'http://'部分,此改动旨在提升用户体验。用户可以尝试下载开发者版本进行体验。

google又要改变世界,chromium地址栏省略掉http://。

诸君可下载dev版本用用!

其实只是一个小动作,但是却体现了人性化的一面。

-The End-

修改 Chromium 源码以替换地址栏中 `chrome://` 前缀为自定义名称(如 `xiaozhi://`)涉及多个模块的调整,包括资源标识符、内部页面路由机制以及 UI 层面的显示逻辑。由于 Chromium 是一个高度模块化的项目,相关代码分布在多个子系统中,因此需要对以下关键部分进行修改。 ### 修改资源协议前缀 Chromium 使用 `chrome:` 作为内部页面的 URL 协议前缀,并通过 `content::ContentClient` 和 `extensions::Extension` 系统处理这些资源。要将所有出现 `chrome://` 的地方替换为 `xiaozhi://`,首先需要修改协议注册和资源映射逻辑。 在源码中找到与协议相关的初始化函数,例如: ```cpp // content/public/browser/content_browser_client.cc void ContentBrowserClient::RegisterInMemoryURLs() { std::vector<base::StringPiece> resources = { "chrome://resources/", "chrome://theme/", // 添加新的协议映射 "xiaozhi://resources/", "xiaozhi://theme/" }; } ``` 该部分负责浏览器内嵌资源路径的解析,若需完全替换协议前缀,则应在此处统一修改资源路径的注册方式[^2]。 ### 替换 UI 中的 URL 显示逻辑 地址栏中显示的 URL 来自 `LocationBarView` 或 `OmniboxView` 等组件。为了确保 `chrome://settings`、`chrome://history` 等页面在地址栏中显示为 `xiaozhi://settings` 和 `xiaozhi://history`,需要修改 UI 层对 URL 的格式化输出。 在 `chrome/browser/ui/views/location_bar/omnibox_view_views.cc` 文件中找到 URL 显示逻辑并添加替换规则: ```cpp std::u16string OmniboxViewViews::GetTextForDisplay() const { GURL url(text_); if (url.SchemeIs("chrome")) { GURL::Replacements replacements; replacements.SetSchemeStr("xiaozhi"); url = url.ReplaceComponents(replacements); } return base::UTF8ToUTF16(url.spec()); } ``` 此段代码用于在地址栏中渲染 URL 时动态替换协议前缀,从而实现用户可见的地址变更[^3]。 ### 调整内部页面的路由机制 Chromium 使用 `ChromeContentBrowserClient` 类来处理 `chrome://` 页面的加载请求。为支持新协议,需在 `chrome/browser/chrome_content_browser_client.cc` 中添加新的协议处理器: ```cpp bool ChromeContentBrowserClient::HandleExternalProtocol( const GURL& url, content::ResourceRequestInfo::WebContentsGetter web_contents_getter, bool is_favicon, network::mojom::URLLoaderFactory** factory) { if (url.SchemeIs("xiaozhi")) { GURL chrome_url("chrome" + url.parsed_for_possibly_invalid_spec().path); return HandleExternalProtocol(chrome_url, web_contents_getter, is_favicon, factory); } return false; } ``` 该方法允许将 `xiaozhi://` 请求转发至原有的 `chrome://` 处理流程,确保功能不受影响的同时实现协议替换[^4]。 ### 安全与兼容性注意事项 由于 `chrome://` 页面属于浏览器特权界面,其访问受到安全策略限制。引入新的协议前缀可能会导致某些内置页面无法正常加载,特别是在扩展程序或 Web 应用尝试访问此类资源时。建议在开发过程中启用调试日志并测试不同场景下的行为一致性。 此外,若计划将更改提交至官方构建流程或打包发布,还需考虑与上游版本的兼容性问题。可使用条件编译控制是否启用协议替换功能,以便在不同版本间灵活切换。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值