| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 #include "chrome/browser/web_resource/web_resource_service.h" | 4 #include "chrome/browser/web_resource/web_resource_service.h" |
| 5 | 5 |
| 6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
| 7 #include "base/string_util.h" | 7 #include "base/string_util.h" |
| 8 #include "base/time.h" | 8 #include "base/time.h" |
| 9 #include "base/values.h" | 9 #include "base/values.h" |
| 10 #include "chrome/browser/browser_process.h" | 10 #include "chrome/browser/browser_process.h" |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 204 in_fetch_(false) { | 204 in_fetch_(false) { |
| 205 Init(); | 205 Init(); |
| 206 } | 206 } |
| 207 | 207 |
| 208 WebResourceService::~WebResourceService() { } | 208 WebResourceService::~WebResourceService() { } |
| 209 | 209 |
| 210 void WebResourceService::Init() { | 210 void WebResourceService::Init() { |
| 211 resource_dispatcher_host_ = g_browser_process->resource_dispatcher_host(); | 211 resource_dispatcher_host_ = g_browser_process->resource_dispatcher_host(); |
| 212 web_resource_fetcher_ = new WebResourceFetcher(this); | 212 web_resource_fetcher_ = new WebResourceFetcher(this); |
| 213 prefs_->RegisterStringPref(prefs::kNTPTipsCacheUpdate, L"0"); | 213 prefs_->RegisterStringPref(prefs::kNTPTipsCacheUpdate, L"0"); |
| 214 std::wstring language = WebResourceService::GetWebResourceLanguage(prefs_); | 214 std::wstring locale = ASCIIToWide(g_browser_process->GetApplicationLocale()); |
| 215 | 215 |
| 216 if (prefs_->HasPrefPath(prefs::kNTPTipsServer)) { | 216 if (prefs_->HasPrefPath(prefs::kNTPTipsServer)) { |
| 217 web_resource_server_ = prefs_->GetString(prefs::kNTPTipsServer); | 217 web_resource_server_ = prefs_->GetString(prefs::kNTPTipsServer); |
| 218 // If we are in the correct locale, initialization is done. | 218 // If we are in the correct locale, initialization is done. |
| 219 if (EndsWith(web_resource_server_, language, false)) | 219 if (EndsWith(web_resource_server_, locale, false)) |
| 220 return; | 220 return; |
| 221 } | 221 } |
| 222 | 222 |
| 223 // If we have not yet set a server, or if the tips server is set to the wrong | 223 // If we have not yet set a server, or if the tips server is set to the wrong |
| 224 // locale, reset the server and force an immediate update of tips. | 224 // locale, reset the server and force an immediate update of tips. |
| 225 web_resource_server_ = kDefaultResourceServer; | 225 web_resource_server_ = kDefaultResourceServer; |
| 226 web_resource_server_.append(language); | 226 web_resource_server_.append(locale); |
| 227 prefs_->SetString(prefs::kNTPTipsCacheUpdate, L""); | 227 prefs_->SetString(prefs::kNTPTipsCacheUpdate, L""); |
| 228 } | 228 } |
| 229 | 229 |
| 230 void WebResourceService::EndFetch() { | 230 void WebResourceService::EndFetch() { |
| 231 in_fetch_ = false; | 231 in_fetch_ = false; |
| 232 } | 232 } |
| 233 | 233 |
| 234 void WebResourceService::OnWebResourceUnpacked( | 234 void WebResourceService::OnWebResourceUnpacked( |
| 235 const DictionaryValue& parsed_json) { | 235 const DictionaryValue& parsed_json) { |
| 236 // Get dictionary of cached preferences. | 236 // Get dictionary of cached preferences. |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 295 | 295 |
| 296 void WebResourceService::UpdateResourceCache(const std::string& json_data) { | 296 void WebResourceService::UpdateResourceCache(const std::string& json_data) { |
| 297 UnpackerClient* client = new UnpackerClient(this, json_data); | 297 UnpackerClient* client = new UnpackerClient(this, json_data); |
| 298 client->Start(); | 298 client->Start(); |
| 299 | 299 |
| 300 // Update resource server and cache update time in preferences. | 300 // Update resource server and cache update time in preferences. |
| 301 prefs_->SetString(prefs::kNTPTipsCacheUpdate, | 301 prefs_->SetString(prefs::kNTPTipsCacheUpdate, |
| 302 DoubleToWString(base::Time::Now().ToDoubleT())); | 302 DoubleToWString(base::Time::Now().ToDoubleT())); |
| 303 prefs_->SetString(prefs::kNTPTipsServer, web_resource_server_); | 303 prefs_->SetString(prefs::kNTPTipsServer, web_resource_server_); |
| 304 } | 304 } |
| 305 | |
| 306 // static | |
| 307 std::wstring WebResourceService::GetWebResourceLanguage(PrefService* prefs) { | |
| 308 #if defined OS_MACOSX | |
| 309 // OS X derives the language for the Chrome UI from the list of accepted | |
| 310 // languages, which can be different from the locale. | |
| 311 std::wstring languageList = prefs->GetString(prefs::kAcceptLanguages); | |
| 312 int pos = languageList.find(L","); | |
| 313 pos = pos >= 0 ? pos : languageList.length(); | |
| 314 return languageList.substr(0, pos); | |
| 315 #else | |
| 316 return ASCIIToWide(g_browser_process->GetApplicationLocale()); | |
| 317 #endif | |
| 318 } | |
| 319 | |
| OLD | NEW |