启动页的配置选项如图所示:
启动页的默认配置由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/,查看设置
时间: 2024-10-03 21:41:17