Index: chrome/browser/web_resource/promo_resource_service.cc |
=================================================================== |
--- chrome/browser/web_resource/promo_resource_service.cc (revision 140356) |
+++ chrome/browser/web_resource/promo_resource_service.cc (working copy) |
@@ -44,13 +44,11 @@ |
static const char kWebStoreLinkProperty[] = "inproduct"; |
static const char kWebStoreExpireProperty[] = "tooltip"; |
-GURL GetPromoResourceURL(bool legacy) { |
+GURL GetPromoResourceURL() { |
const std::string promo_server_url = CommandLine::ForCurrentProcess()-> |
GetSwitchValueASCII(switches::kPromoServerURL); |
- if (!promo_server_url.empty()) |
- return GURL(promo_server_url); |
- return legacy ? GURL(PromoResourceService::kDefaultPromoResourceServer) : |
- NotificationPromo::PromoServerURL(); |
+ return promo_server_url.empty() ? |
+ NotificationPromo::PromoServerURL() : GURL(promo_server_url); |
} |
bool IsTest() { |
@@ -63,12 +61,6 @@ |
} // namespace |
-// Server for dynamically loaded NTP HTML elements. |
-const char* PromoResourceService::kDefaultPromoResourceServer = |
- "https://www.google.com/support/chrome/bin/topic/1142433/inproduct?hl="; |
- |
- |
- |
// static |
void PromoResourceService::RegisterPrefs(PrefService* local_state) { |
local_state->RegisterIntegerPref(prefs::kNtpPromoVersion, 0); |
@@ -122,7 +114,7 @@ |
PromoResourceService::PromoResourceService(Profile* profile) |
: WebResourceService(profile->GetPrefs(), |
- GetPromoResourceURL(false), |
+ GetPromoResourceURL(), |
true, // append locale to URL |
prefs::kNtpPromoResourceCacheUpdate, |
kStartResourceFetchDelay, |
@@ -149,13 +141,6 @@ |
UnpackWebStoreSignal(parsed_json); |
} |
-void PromoResourceService::OnNotificationParsed(double start, double end, |
- bool new_notification) { |
- if (new_notification) { |
- ScheduleNotification(start, end); |
- } |
-} |
- |
void PromoResourceService::ScheduleNotification(double promo_start, |
double promo_end) { |
if (promo_start > 0 && promo_end > 0) { |
@@ -179,10 +164,13 @@ |
void PromoResourceService::ScheduleNotificationOnInit() { |
std::string locale = g_browser_process->GetApplicationLocale(); |
- if ((GetPromoServiceVersion() != kPromoServiceVersion) || |
- (GetPromoLocale() != locale)) { |
+ if (GetPromoServiceVersion() != kPromoServiceVersion || |
+ GetPromoLocale() != locale) { |
// If the promo service has been upgraded or Chrome switched locales, |
// refresh the promos. |
+ // TODO(achuith): Mixing local_state and prefs does not work for |
+ // multi-profile case. We should probably store version/locale in prefs_ |
+ // as well. |
PrefService* local_state = g_browser_process->local_state(); |
local_state->SetInteger(prefs::kNtpPromoVersion, kPromoServiceVersion); |
local_state->SetString(prefs::kNtpPromoLocale, locale); |
@@ -201,6 +189,8 @@ |
void PromoResourceService::PostNotification(int64 delay_ms) { |
if (web_resource_update_scheduled_) |
return; |
+ // TODO(achuith): This crashes if we post delay_ms = 0 to the message loop. |
+ // during startup. |
if (delay_ms > 0) { |
web_resource_update_scheduled_ = true; |
MessageLoop::current()->PostDelayedTask( |
@@ -234,16 +224,19 @@ |
void PromoResourceService::UnpackNotificationSignal( |
const DictionaryValue& parsed_json) { |
- scoped_refptr<NotificationPromo> notification_promo = |
- NotificationPromo::Create(profile_, this); |
- notification_promo->InitFromJson(parsed_json); |
+ NotificationPromo notification_promo(profile_); |
+ notification_promo.InitFromJson(parsed_json); |
+ |
+ if (notification_promo.new_notification()) { |
+ ScheduleNotification(notification_promo.StartTimeForGroup(), |
+ notification_promo.EndTime()); |
+ } |
} |
bool PromoResourceService::CanShowNotificationPromo(Profile* profile) { |
- scoped_refptr<NotificationPromo> notification_promo = |
- NotificationPromo::Create(profile, NULL); |
- notification_promo->InitFromPrefs(); |
- return notification_promo->CanShow(); |
+ NotificationPromo notification_promo(profile); |
+ notification_promo.InitFromPrefs(); |
+ return notification_promo.CanShow(); |
} |
void PromoResourceService::UnpackWebStoreSignal( |