diff options
author | mirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-29 00:51:30 +0000 |
---|---|---|
committer | mirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-29 00:51:30 +0000 |
commit | d4bc96e84f87586da6a312a3c8eed3a12b3221d3 (patch) | |
tree | 7438b38ef3a416a4cdff5dd2627b79dcbb13c70b /chrome/browser/web_resource | |
parent | 2b9e7d0b2432d887f58212c0e29885ddf2386caa (diff) | |
download | chromium_src-d4bc96e84f87586da6a312a3c8eed3a12b3221d3.zip chromium_src-d4bc96e84f87586da6a312a3c8eed3a12b3221d3.tar.gz chromium_src-d4bc96e84f87586da6a312a3c8eed3a12b3221d3.tar.bz2 |
Adjust json data and URL to information from server side on custom logo signal delivery.
BUG=56388
TEST=unit test for web_resource_service still works.
Review URL: http://codereview.chromium.org/3523002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60884 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/web_resource')
-rw-r--r-- | chrome/browser/web_resource/web_resource_service.cc | 60 | ||||
-rw-r--r-- | chrome/browser/web_resource/web_resource_service_unittest.cc | 16 |
2 files changed, 41 insertions, 35 deletions
diff --git a/chrome/browser/web_resource/web_resource_service.cc b/chrome/browser/web_resource/web_resource_service.cc index dc1b423..94c89d8 100644 --- a/chrome/browser/web_resource/web_resource_service.cc +++ b/chrome/browser/web_resource/web_resource_service.cc @@ -187,14 +187,9 @@ class WebResourceService::UnpackerClient bool got_response_; }; +// Server for custom logo signals. const char* WebResourceService::kDefaultResourceServer = -#if defined(OS_MACOSX) - "https://clients2.google.com/tools/service/npredir?r=chrometips_mac&hl="; -#elif defined(OS_LINUX) - "https://clients2.google.com/tools/service/npredir?r=chrometips_linux&hl="; -#else - "https://clients2.google.com/tools/service/npredir?r=chrometips_win&hl="; -#endif + "https://www.google.com/support/chrome/bin/topic/30248/inproduct"; WebResourceService::WebResourceService(Profile* profile) : prefs_(profile->GetPrefs()), @@ -210,19 +205,14 @@ void WebResourceService::Init() { prefs_->RegisterStringPref(prefs::kNTPWebResourceCacheUpdate, "0"); prefs_->RegisterRealPref(prefs::kNTPCustomLogoStart, 0); prefs_->RegisterRealPref(prefs::kNTPCustomLogoEnd, 0); - std::string locale = g_browser_process->GetApplicationLocale(); - if (prefs_->HasPrefPath(prefs::kNTPWebResourceServer)) { - web_resource_server_ = prefs_->GetString(prefs::kNTPWebResourceServer); - // If we are in the correct locale, initialization is done. - if (EndsWith(web_resource_server_, locale, false)) - return; + if (prefs_->HasPrefPath(prefs::kNTPLogoResourceServer)) { + web_resource_server_ = prefs_->GetString(prefs::kNTPLogoResourceServer); + return; } - // If we have not yet set a server, or if the web resource server is set to - // the wrong locale, reset the server and force an immediate update. + // If we have not yet set a server, reset and force an immediate update. web_resource_server_ = kDefaultResourceServer; - web_resource_server_.append(locale); prefs_->SetString(prefs::kNTPWebResourceCacheUpdate, ""); } @@ -267,7 +257,7 @@ void WebResourceService::UpdateResourceCache(const std::string& json_data) { // Update resource server and cache update time in preferences. prefs_->SetString(prefs::kNTPWebResourceCacheUpdate, base::DoubleToString(base::Time::Now().ToDoubleT())); - prefs_->SetString(prefs::kNTPWebResourceServer, web_resource_server_); + prefs_->SetString(prefs::kNTPLogoResourceServer, web_resource_server_); } void WebResourceService::UnpackTips(const DictionaryValue& parsed_json) { @@ -328,29 +318,37 @@ void WebResourceService::UnpackLogoSignal(const DictionaryValue& parsed_json) { // Check for newly received start and end values. if (parsed_json.GetDictionary("topic", &topic_dict)) { if (topic_dict->GetList("answers", &answer_list)) { + std::string logo_start_string = ""; + std::string logo_end_string = ""; for (ListValue::const_iterator tip_iter = answer_list->begin(); tip_iter != answer_list->end(); ++tip_iter) { if (!(*tip_iter)->IsType(Value::TYPE_DICTIONARY)) continue; DictionaryValue* a_dic = static_cast<DictionaryValue*>(*tip_iter); - std::string logo_start_string; - std::string logo_end_string; - if (a_dic->GetString("custom_logo_start", &logo_start_string) && - a_dic->GetString("custom_logo_end", &logo_end_string)) { - // If both times can be correctly parsed, then set new logo - // start and end times. - base::Time start_time; - base::Time end_time; - if (base::Time::FromString( - ASCIIToWide(logo_start_string).c_str(), &start_time) && - base::Time::FromString( - ASCIIToWide(logo_end_string).c_str(), &end_time)) { - logo_start = start_time.ToDoubleT(); - logo_end = end_time.ToDoubleT(); + std::string logo_signal; + if (a_dic->GetString("name", &logo_signal)) { + if (logo_signal == "custom_logo_start") { + a_dic->GetString("inproduct", &logo_start_string); + } else if (logo_signal == "custom_logo_end") { + a_dic->GetString("inproduct", &logo_end_string); } } } + if (!logo_start_string.empty() && + logo_start_string.length() > 0 && + !logo_end_string.empty() && + logo_end_string.length() > 0) { + base::Time start_time; + base::Time end_time; + if (base::Time::FromString( + ASCIIToWide(logo_start_string).c_str(), &start_time) && + base::Time::FromString( + ASCIIToWide(logo_end_string).c_str(), &end_time)) { + logo_start = start_time.ToDoubleT(); + logo_end = end_time.ToDoubleT(); + } + } } } diff --git a/chrome/browser/web_resource/web_resource_service_unittest.cc b/chrome/browser/web_resource/web_resource_service_unittest.cc index 1f2570c..46b0388e 100644 --- a/chrome/browser/web_resource/web_resource_service_unittest.cc +++ b/chrome/browser/web_resource/web_resource_service_unittest.cc @@ -27,8 +27,12 @@ TEST_F(WebResourceServiceTest, UnpackLogoSignal) { " \"topic\": {" " \"answers\": [" " {" - " \"custom_logo_start\": \"31/01/10 01:00 GMT\"," - " \"custom_logo_end\": \"31/01/12 01:00 GMT\"" + " \"name\": \"custom_logo_start\"," + " \"inproduct\": \"31/01/10 01:00 GMT\"" + " }," + " {" + " \"name\": \"custom_logo_end\"," + " \"inproduct\": \"31/01/12 01:00 GMT\"" " }" " ]" " }" @@ -50,8 +54,12 @@ TEST_F(WebResourceServiceTest, UnpackLogoSignal) { " \"topic\": {" " \"answers\": [" " {" - " \"custom_logo_start\": \"28/02/10 14:00 GMT\"," - " \"custom_logo_end\": \"31/01/12 01:00 GMT\"" + " \"name\": \"custom_logo_start\"," + " \"inproduct\": \"28/02/10 14:00 GMT\"" + " }," + " {" + " \"name\": \"custom_logo_end\"," + " \"inproduct\": \"31/01/12 01:00 GMT\"" " }" " ]" " }" |