| Index: chrome/browser/web_resource/promo_resource_service.cc
|
| diff --git a/chrome/browser/web_resource/promo_resource_service.cc b/chrome/browser/web_resource/promo_resource_service.cc
|
| index 7fa4e76a5250034c1fb3af0faf7047ecbb984ba4..0639295c3fc6b3d37fedb01df4d42108e35f664a 100644
|
| --- a/chrome/browser/web_resource/promo_resource_service.cc
|
| +++ b/chrome/browser/web_resource/promo_resource_service.cc
|
| @@ -56,7 +56,6 @@ const char* kCaitPromoResourceServer =
|
| return promo_server_url.empty() ?
|
| PromoResourceService::kDefaultPromoResourceServer :
|
| kCaitPromoResourceServer;
|
| - //promo_server_url.c_str();
|
| }
|
|
|
| bool IsTest() {
|
| @@ -83,6 +82,7 @@ void PromoResourceService::RegisterPrefs(PrefService* local_state) {
|
|
|
| // static
|
| void PromoResourceService::RegisterUserPrefs(PrefService* prefs) {
|
| + RegisterLastUpdateTimePref(prefs, prefs::kNTPPromoResourceCacheUpdate);
|
| prefs->RegisterDoublePref(prefs::kNTPCustomLogoStart,
|
| 0,
|
| PrefService::UNSYNCABLE_PREF);
|
| @@ -133,21 +133,18 @@ PromoResourceService::PromoResourceService(Profile* profile)
|
| : WebResourceService(profile->GetPrefs(),
|
| GetPromoResourceURL(),
|
| false,//true, // append locale to URL
|
| - chrome::NOTIFICATION_PROMO_RESOURCE_STATE_CHANGED,
|
| prefs::kNTPPromoResourceCacheUpdate,
|
| kStartResourceFetchDelay,
|
| GetCacheUpdateDelay()),
|
| - profile_(profile),
|
| - channel_(chrome::VersionInfo::CHANNEL_UNKNOWN) {
|
| - Init();
|
| + profile_(profile),
|
| + channel_(chrome::VersionInfo::CHANNEL_UNKNOWN),
|
| + ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)),
|
| + web_resource_update_scheduled_(false) {
|
| + ScheduleNotificationOnInit();
|
| }
|
|
|
| PromoResourceService::~PromoResourceService() { }
|
|
|
| -void PromoResourceService::Init() {
|
| - ScheduleNotificationOnInit();
|
| -}
|
| -
|
| bool PromoResourceService::IsBuildTargeted(int builds_targeted) {
|
| if (channel_ == chrome::VersionInfo::CHANNEL_UNKNOWN)
|
| channel_ = GetChannel();
|
| @@ -211,6 +208,30 @@ void PromoResourceService::ScheduleNotificationOnInit() {
|
| }
|
| }
|
|
|
| +void PromoResourceService::PostNotification(int64 delay_ms) {
|
| + if (web_resource_update_scheduled_)
|
| + return;
|
| + if (delay_ms > 0) {
|
| + web_resource_update_scheduled_ = true;
|
| + MessageLoop::current()->PostDelayedTask(
|
| + FROM_HERE,
|
| + base::Bind(&PromoResourceService::PromoResourceStateChange,
|
| + weak_ptr_factory_.GetWeakPtr()),
|
| + delay_ms);
|
| + } else if (delay_ms == 0) {
|
| + PromoResourceStateChange();
|
| + }
|
| +}
|
| +
|
| +void PromoResourceService::PromoResourceStateChange() {
|
| + web_resource_update_scheduled_ = false;
|
| + content::NotificationService* service =
|
| + content::NotificationService::current();
|
| + service->Notify(chrome::NOTIFICATION_PROMO_RESOURCE_STATE_CHANGED,
|
| + content::Source<WebResourceService>(this),
|
| + content::NotificationService::NoDetails());
|
| +}
|
| +
|
| int PromoResourceService::GetPromoServiceVersion() {
|
| PrefService* local_state = g_browser_process->local_state();
|
| return local_state->GetInteger(prefs::kNTPPromoVersion);
|
|
|