Index: content/browser/geolocation/geolocation_provider_impl.cc |
diff --git a/content/browser/geolocation/geolocation_provider_impl.cc b/content/browser/geolocation/geolocation_provider_impl.cc |
index f343c2920ff527466011c87b469a48a93f475f3d..d8f06ea79e0c9791a0377dc8ab2131575f1346b5 100644 |
--- a/content/browser/geolocation/geolocation_provider_impl.cc |
+++ b/content/browser/geolocation/geolocation_provider_impl.cc |
@@ -233,4 +233,34 @@ LocationArbitrator* GeolocationProviderImpl::CreateArbitrator() { |
return new LocationArbitratorImpl(callback); |
} |
+void GeolocationProviderImpl::PauseAllLocationUpdateCallbacks() { |
+ if (!IsRunning()) return; |
+ if (!OnGeolocationThread()) { |
+ message_loop()->PostTask( |
+ FROM_HERE, |
+ base::Bind(&GeolocationProviderImpl::PauseAllLocationUpdateCallbacks, |
+ base::Unretained(this))); |
+ return; |
+ } |
+ |
+ DCHECK(OnGeolocationThread()); |
+ DCHECK(arbitrator_); |
+ arbitrator_->PauseProviders(); |
+} |
+ |
+void GeolocationProviderImpl::ResumeAllLocationUpdateCallbacks() { |
+ if (!IsRunning()) return; |
+ if (!OnGeolocationThread()) { |
+ message_loop()->PostTask( |
+ FROM_HERE, |
+ base::Bind(&GeolocationProviderImpl::ResumeAllLocationUpdateCallbacks, |
+ base::Unretained(this))); |
+ return; |
+ } |
+ |
+ DCHECK(OnGeolocationThread()); |
+ DCHECK(arbitrator_); |
+ arbitrator_->ResumeProviders(); |
+} |
+ |
} // namespace content |