Chromium Code Reviews| Index: chrome/browser/web_resource/web_resource_service.cc |
| =================================================================== |
| --- chrome/browser/web_resource/web_resource_service.cc (revision 28157) |
| +++ chrome/browser/web_resource/web_resource_service.cc (working copy) |
| @@ -205,19 +205,19 @@ |
| resource_dispatcher_host_ = g_browser_process->resource_dispatcher_host(); |
| web_resource_fetcher_ = new WebResourceFetcher(this); |
| prefs_->RegisterStringPref(prefs::kNTPTipsCacheUpdate, L"0"); |
| - std::wstring locale = ASCIIToWide(g_browser_process->GetApplicationLocale()); |
| + std::wstring language = WebResourceService::GetWebResourceLanguage(prefs_); |
| if (prefs_->HasPrefPath(prefs::kNTPTipsServer)) { |
| web_resource_server_ = prefs_->GetString(prefs::kNTPTipsServer); |
| // If we are in the correct locale, initialization is done. |
| - if (EndsWith(web_resource_server_, locale, false)) |
| + if (EndsWith(web_resource_server_, language, false)) |
| return; |
| } |
| // If we have not yet set a server, or if the tips server is set to the wrong |
| // locale, reset the server and force an immediate update of tips. |
| web_resource_server_ = kDefaultResourceServer; |
| - web_resource_server_.append(locale); |
| + web_resource_server_.append(language); |
| prefs_->SetString(prefs::kNTPTipsCacheUpdate, L""); |
| } |
| @@ -296,3 +296,18 @@ |
| DoubleToWString(base::Time::Now().ToDoubleT())); |
| prefs_->SetString(prefs::kNTPTipsServer, web_resource_server_); |
| } |
| + |
| +// static |
| +std::wstring WebResourceService::GetWebResourceLanguage(PrefService* prefs) { |
| +#if defined OS_MACOSX |
|
Nico
2009/10/07 14:56:21
On second thought, shouldn't the os x version of t
Miranda Callahan
2009/10/07 16:22:00
Well, the tips need to always be in the same langu
|
| + // OS X derives the language for the Chrome UI from the list of accepted |
| + // languages, which can be different from the locale. |
| + std::wstring languageList = prefs->GetString(prefs::kAcceptLanguages); |
| + int pos = languageList.find(L","); |
| + pos = pos >= 0 ? pos : languageList.length(); |
| + return languageList.substr(0, pos); |
| +#else |
| + return ASCIIToWide(g_browser_process->GetApplicationLocale()); |
| +#endif |
|
TVL
2009/10/07 12:02:48
drive by: since we're forking what is done here, I
Miranda Callahan
2009/10/07 16:22:00
Good point. I think a source of confusion is that
|
| +} |
| + |