Dimole
文章8
标签8
分类5
关于 Chromium 的部分研究-2022年2月

关于 Chromium 的部分研究-2022年2月

本文为 Dimole 在2022年2月更新迪莫乐浏览器时对 Chromium 的部分研究

前情

这个月搞的内容这些其实在之前的版本就已经做了,但是买到的黑片固态不给力导致数据丢失,现在从头来过。(

在非谷歌搜索引擎时启用新标签页的搜索框

通过调试及 Chromium Code Search 易知, Chromium 新标签页的谷歌版和非谷歌版在“chrome/browser/search/search.cc”中的

const GURL local_url(DefaultSearchProviderIsGoogle(profile)
                         ? chrome::kChromeUINewTabPageURL
                         : chrome::kChromeUINewTabPageThirdPartyURL);

对其进行判断( kChromeUINewTabPageURL 为谷歌版)
事实上,只需要让 DefaultSearchProviderIsGoogle 永远返回 true 来“欺骗” Chromium 就可以做到永远显示谷歌版的带搜索框的新标签页了。也许会有 Bug ,不管了,又不是不能用.jpg
而 DefaultSearchProviderIsGoogle 的最终定义在“components/search/search.cc”中

bool DefaultSearchProviderIsGoogle(
    const TemplateURLService* template_url_service) {
  if (!template_url_service)
    return false;
  const TemplateURL* default_provider =
      template_url_service->GetDefaultSearchProvider();
  if (!default_provider)
    return false;
  return default_provider->GetEngineType(
             template_url_service->search_terms_data()) ==
         SearchEngineType::SEARCH_ENGINE_GOOGLE;
}

把这里的代码改掉即可。
为了防止没有搜索引擎等特殊情况时产生更多 Bug ,我只把最后对谷歌的判断改了,即

bool DefaultSearchProviderIsGoogle(
    const TemplateURLService* template_url_service) {
  if (!template_url_service)
    return false;
  const TemplateURL* default_provider =
      template_url_service->GetDefaultSearchProvider();
  if (!default_provider)
    return false;
  return true;
}

未完待续,咕咕咕(

咕咕咕

最后宣传下我的浏览器不过分吧(

下载地址:https://llq.dml.ink

本文作者:Dimole
本文链接:https://blog.dml.ink/2022/02/04/chromium-202202/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可