| Index: chrome/browser/services/gcm/gcm_service.cc
|
| diff --git a/chrome/browser/services/gcm/gcm_service.cc b/chrome/browser/services/gcm/gcm_service.cc
|
| index 0b5c74dc601e0143b80e6e65927317069ebc740f..7374f064218989cc98d99e835efcd3d954b3056e 100644
|
| --- a/chrome/browser/services/gcm/gcm_service.cc
|
| +++ b/chrome/browser/services/gcm/gcm_service.cc
|
| @@ -146,6 +146,7 @@ class GCMService::IOWorker : public GCMClient::Delegate {
|
| const std::string& app_id,
|
| const GCMClient::SendErrorDetails& send_error_details) OVERRIDE;
|
| virtual void OnGCMReady() OVERRIDE;
|
| + virtual void OnActivityRecorded() OVERRIDE;
|
|
|
| // Called on IO thread.
|
| void Initialize(scoped_ptr<GCMClientFactory> gcm_client_factory,
|
| @@ -296,6 +297,13 @@ void GCMService::IOWorker::OnGCMReady() {
|
| service_));
|
| }
|
|
|
| +void GCMService::IOWorker::OnActivityRecorded() {
|
| + DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
|
| + // When an activity is recorded, get all the stats and refresh the UI of
|
| + // gcm-internals page.
|
| + GetGCMStatistics(false);
|
| +}
|
| +
|
| void GCMService::IOWorker::Load(const base::WeakPtr<GCMService>& service) {
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
|
|
|
| @@ -844,7 +852,12 @@ GCMAppHandler* GCMService::GetAppHandler(const std::string& app_id) {
|
| void GCMService::GetGCMStatisticsFinished(
|
| GCMClient::GCMStatistics stats) {
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
| - request_gcm_statistics_callback_.Run(stats);
|
| +
|
| + // Normally request_gcm_statistics_callback_ would not be null.
|
| + if (!request_gcm_statistics_callback_.is_null())
|
| + request_gcm_statistics_callback_.Run(stats);
|
| + else
|
| + LOG(WARNING) << "request_gcm_statistics_callback_ is NULL.";
|
| }
|
|
|
| } // namespace gcm
|
|
|