Chromium Code Reviews| Index: chrome/browser/services/gcm/gcm_profile_service.cc |
| diff --git a/chrome/browser/services/gcm/gcm_profile_service.cc b/chrome/browser/services/gcm/gcm_profile_service.cc |
| index fd69c0cc86c1dc875562d735bed647580de87116..143558769237fb904886225f7f1718d0905baa8e 100644 |
| --- a/chrome/browser/services/gcm/gcm_profile_service.cc |
| +++ b/chrome/browser/services/gcm/gcm_profile_service.cc |
| @@ -174,7 +174,8 @@ class GCMProfileService::IOWorker |
| void Send(const std::string& app_id, |
| const std::string& receiver_id, |
| const GCMClient::OutgoingMessage& message); |
| - void RequestGCMStatistics(); |
| + void RequestGCMStatistics(bool clear_logs); |
| + void SetGCMRecording(bool recording); |
| // For testing purpose. Can be called from UI thread. Use with care. |
| GCMClient* gcm_client_for_testing() const { return gcm_client_.get(); } |
| @@ -370,13 +371,33 @@ void GCMProfileService::IOWorker::Send( |
| gcm_client_->Send(app_id, receiver_id, message); |
| } |
| -void GCMProfileService::IOWorker::RequestGCMStatistics() { |
| +void GCMProfileService::IOWorker::RequestGCMStatistics(bool clear_logs) { |
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); |
| gcm::GCMClient::GCMStatistics stats; |
| if (gcm_client_.get()) { |
| + if (clear_logs) |
| + gcm_client_->ClearActivityLogs(); |
| + stats = gcm_client_->GetStatistics(); |
| stats.gcm_client_created = true; |
|
fgorski
2014/03/29 05:09:29
with all of the stuff that is happening inside of
juyik
2014/03/31 22:19:23
Done.
|
| + } |
| + |
| + content::BrowserThread::PostTask( |
| + content::BrowserThread::UI, |
| + FROM_HERE, |
| + base::Bind(&GCMProfileService::RequestGCMStatisticsFinished, |
| + service_, |
| + stats)); |
| +} |
| + |
| +void GCMProfileService::IOWorker::SetGCMRecording(bool recording) { |
| + DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); |
| + gcm::GCMClient::GCMStatistics stats; |
| + |
| + if (gcm_client_.get()) { |
| + gcm_client_->SetRecording(recording); |
| stats = gcm_client_->GetStatistics(); |
| + stats.gcm_client_created = true; |
| } |
| content::BrowserThread::PostTask( |
| @@ -687,7 +708,7 @@ bool GCMProfileService::IsGCMClientReady() const { |
| } |
| void GCMProfileService::RequestGCMStatistics( |
| - RequestGCMStatisticsCallback callback) { |
| + RequestGCMStatisticsCallback callback, bool clear_logs) { |
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| DCHECK(!callback.is_null()); |
| @@ -696,7 +717,21 @@ void GCMProfileService::RequestGCMStatistics( |
| content::BrowserThread::IO, |
| FROM_HERE, |
| base::Bind(&GCMProfileService::IOWorker::RequestGCMStatistics, |
| - io_worker_)); |
| + io_worker_, |
| + clear_logs)); |
| +} |
| + |
| +void GCMProfileService::SetGCMRecording( |
| + RequestGCMStatisticsCallback callback, bool recording) { |
| + DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| + |
| + request_gcm_statistics_callback_ = callback; |
| + content::BrowserThread::PostTask( |
| + content::BrowserThread::IO, |
| + FROM_HERE, |
| + base::Bind(&GCMProfileService::IOWorker::SetGCMRecording, |
| + io_worker_, |
| + recording)); |
| } |
| void GCMProfileService::Observe(int type, |
| @@ -905,7 +940,6 @@ GCMAppHandler* GCMProfileService::GetAppHandler(const std::string& app_id) { |
| void GCMProfileService::RequestGCMStatisticsFinished( |
| GCMClient::GCMStatistics stats) { |
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| - |
| request_gcm_statistics_callback_.Run(stats); |
| } |