定制chromium

您所在的位置:网站首页 chrome如何设置首页 定制chromium

定制chromium

#定制chromium| 来源: 网络整理| 查看: 265

chromium定制启动首页

chromium中想要定制首页有很多种方法,接下来我将一一介绍,也欢迎大家补充。

1. 最简单的方式-启动带参数

启动带参数,是最简单的让chromium,一启动就打开某个url的方式。在启动chrome.exe的时候,使用命令行的方式启动

chrome.exe http://www.baidu.com

这样打开的chromium,直接就默认打开百度首页了。

2.修改源码实现默认打开某个url

首先先找到chrome_browser_main.cc这个文件。这个文件的所在地是src/chrome/browser/chrome_browser_main.cc目录中。chromium的启动,一开始必然会先进入PreMainMessageLoopRunImpl函数中,所以我们的代码在这里面进行添加。 chromium里面很灵活的使用了配置文件profile来定制chromium的一些功能,具体可以通过配置profile实现那些功能可以打开pref_names.cc来查看。具体目录是src/chrome/common/pref_names.cc,我们这里利用的就是kRestoreOnStartup和kURLsToRestoreOnStartup这两个key来达到设置启动页的目的。我们来看看,代码里面对于这两个key的描述

// An integer pref. Holds one of several values: // 0: (deprecated) open the homepage on startup. // 1: restore the last session. // 2: this was used to indicate a specific session should be restored. It is // no longer used, but saved to avoid conflict with old preferences. // 3: unused, previously indicated the user wants to restore a saved session. // 4: restore the URLs defined in kURLsToRestoreOnStartup. // 5: open the New Tab Page on startup. const char kRestoreOnStartup[] = "session.restore_on_startup"; // The URLs to restore on startup or when the home button is pressed. The URLs // are only restored on startup if kRestoreOnStartup is 4. const char kURLsToRestoreOnStartup[] = "session.startup_urls";

通过注释,我们很清楚的知道。当kRestoreOnStartup的值是4的时候,会打开kURLsToRestoreOnStartup中设置的url,所以代码我们可以利用这点来写。

(1)代码写死的方法

代码插入的地方在chrome_browser_main.cc 1239行之后。因为,我们在设置profile的时候,一定要在profile初始化完成之后即

profile_ = CreatePrimaryProfile(parameters(), user_data_dir_, parsed_command_line());

这段代码后面

插入以下代码,即可实现打开chromium默认显示指定网站

std::string gameUrl = "http://blog.csdn.net/jianglong0156" PrefService* prefs = profile_->GetPrefs(); prefs->SetInteger(prefs::kRestoreOnStartup, 4); base::ListValue* url_pref_list = new base::ListValue; base::StringValue *urlStr = new base::StringValue(gameUrl); url_pref_list->Set(0, urlStr); prefs->SetDefaultPrefValue(prefs::kURLsToRestoreOnStartup, url_pref_list); (2)命令行传入参数的方式

上面那种代码中写死的方式太不智能了。我们选着另外一种使用方式,那就是从命令行传入参数,将我们的gameUrl从命令行传入即可,代码如下

const CommandLine& command_line = parsed_command_line(); if (command_line.HasSwitch("game-url")) { std::string gameUrl = command_line.GetSwitchValueASCII("game-url"); PrefService* prefs = profile_->GetPrefs(); prefs->SetInteger(prefs::kRestoreOnStartup, 4); base::ListValue* url_pref_list = new base::ListValue; base::StringValue *urlStr = new base::StringValue(gameUrl); url_pref_list->Set(0, urlStr); prefs->SetDefaultPrefValue(prefs::kURLsToRestoreOnStartup, url_pref_list); LOG(INFO)


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3