启动页的配置选项如图所示:
启动页的默认配置由src\chrome\browser\prefs\session_startup_pref.cc生成
在RegisterProfilePrefs函数中,可以看到配置的选项。
registry->RegisterIntegerPref(
prefs::kRestoreOnStartup,
TypeToPrefValue(GetDefaultStartupType()),
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterListPref(prefs::kURLsToRestoreOnStartup,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
GetDefaultStartupType函数返回的是SessionStartupPref::DEFAULT
在函数TypeToPrefValue中,可以看到它对应的操作是kPrefValueNewTab,也就是在启动时默认打开的是一个新的标签页,并且启动url列表默认为空。
如果需要把启动页设置为预设的页面,可以把session_startup_pref.cc进行如下的修改。
以把http://www.baidu.com/添加到默认启动页为例。
首先把GetDefaultStartupType的默认类型改成SessionStartupPref::URLS
// static
SessionStartupPref::Type SessionStartupPref::GetDefaultStartupType() {
#if defined(OS_CHROMEOS)
return SessionStartupPref::LAST;
#else
// return SessionStartupPref::DEFAULT;
return SessionStartupPref::URLS;
#endif
}
增加启动的url列表,为此增加一个函数CreateDefaultStartupUrlList
base::ListValue* CreateDefaultStartupUrlList() {
std::vector<GURL> default_startup_urls;
default_startup_urls.push_back(GURL("http://<a target=_blank href="http://www.baidu.com">www.baidu.com</a>/"));
scoped_ptr<base::ListValue> urls(new base::ListValue);
for (size_t i = 0; i < default_startup_urls.size(); ++i) {
urls->Set(static_cast<int>(i),
new base::StringValue(default_startup_urls[i].spec()));
}
return urls.release();
}
在RegisterProfilePrefs函数中加入配置的ur列表。
registry->RegisterListPref(prefs::kURLsToRestoreOnStartup, CreateDefaultStartupUrlList(), user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
编译完成后,就可以看到默认的启动页已经改成http://www.baidu.com/,查看设置
原文地址:http://blog.csdn.net/ljm198745/article/details/42101729