| Index: content/browser/geolocation/location_arbitrator_impl.cc
|
| diff --git a/content/browser/geolocation/location_arbitrator_impl.cc b/content/browser/geolocation/location_arbitrator_impl.cc
|
| index d6cb78b1657aa34b3567a864563d71f8477ceffb..c8ea43beefc3f01f7bee6e930f3e2e540f8c202c 100644
|
| --- a/content/browser/geolocation/location_arbitrator_impl.cc
|
| +++ b/content/browser/geolocation/location_arbitrator_impl.cc
|
| @@ -100,19 +100,25 @@ void LocationArbitratorImpl::OnAccessTokenStoresLoaded(
|
| // completed.
|
| return;
|
| }
|
| - // If there are no access tokens, boot strap it with the default server URL.
|
| - if (access_token_map.empty())
|
| - access_token_map[DefaultNetworkProviderURL()];
|
| - for (const auto& entry : access_token_map) {
|
| - RegisterProvider(NewNetworkLocationProvider(
|
| - GetAccessTokenStore(), context_getter, entry.first, entry.second));
|
| - }
|
| + LocationProvider* sole_provider =
|
| + GetContentClient()->browser()->GetSoleLocationProvider();
|
| + if (!sole_provider) {
|
| + // If there are no access tokens, boot strap it with the default server URL.
|
| + if (access_token_map.empty())
|
| + access_token_map[DefaultNetworkProviderURL()];
|
| + for (const auto& entry : access_token_map) {
|
| + RegisterProvider(NewNetworkLocationProvider(
|
| + GetAccessTokenStore(), context_getter, entry.first, entry.second));
|
| + }
|
|
|
| - LocationProvider* provider =
|
| - GetContentClient()->browser()->OverrideSystemLocationProvider();
|
| - if (!provider)
|
| - provider = NewSystemLocationProvider();
|
| - RegisterProvider(provider);
|
| + LocationProvider* provider =
|
| + GetContentClient()->browser()->OverrideSystemLocationProvider();
|
| + if (!provider)
|
| + provider = NewSystemLocationProvider();
|
| + RegisterProvider(provider);
|
| + } else {
|
| + RegisterProvider(sole_provider);
|
| + }
|
| DoStartProviders();
|
| }
|
|
|
|
|