| Index: chrome/browser/geolocation/geolocation_permission_context_factory.cc | 
| diff --git a/chrome/browser/geolocation/geolocation_permission_context_factory.cc b/chrome/browser/geolocation/geolocation_permission_context_factory.cc | 
| index a4d9c8ad6b42c3eddcaa2c9ab07c4b495e784e67..c1259b1e2c6519b7258a29b5b6550de240917ce2 100644 | 
| --- a/chrome/browser/geolocation/geolocation_permission_context_factory.cc | 
| +++ b/chrome/browser/geolocation/geolocation_permission_context_factory.cc | 
| @@ -15,39 +15,12 @@ | 
| #include "chrome/browser/geolocation/geolocation_permission_context.h" | 
| #endif | 
|  | 
| -namespace { | 
| - | 
| -class Service : public KeyedService { | 
| - public: | 
| -  explicit Service(Profile* profile) { | 
| -#if defined(OS_ANDROID) | 
| -    context_ = new GeolocationPermissionContextAndroid(profile); | 
| -#else | 
| -    context_ = new GeolocationPermissionContext(profile); | 
| -#endif | 
| -  } | 
| - | 
| -  GeolocationPermissionContext* context() { | 
| -    return context_.get(); | 
| -  } | 
| - | 
| -  virtual void Shutdown() OVERRIDE { | 
| -    context()->ShutdownOnUIThread(); | 
| -  } | 
| - | 
| - private: | 
| -  scoped_refptr<GeolocationPermissionContext> context_; | 
| - | 
| -  DISALLOW_COPY_AND_ASSIGN(Service); | 
| -}; | 
| - | 
| -}  // namespace | 
|  | 
| // static | 
| GeolocationPermissionContext* | 
| GeolocationPermissionContextFactory::GetForProfile(Profile* profile) { | 
| -  return static_cast<Service*>( | 
| -      GetInstance()->GetServiceForBrowserContext(profile, true))->context(); | 
| +  return static_cast<GeolocationPermissionContext*>( | 
| +      GetInstance()->GetServiceForBrowserContext(profile, true)); | 
| } | 
|  | 
| // static | 
| @@ -56,11 +29,20 @@ GeolocationPermissionContextFactory::GetInstance() { | 
| return Singleton<GeolocationPermissionContextFactory>::get(); | 
| } | 
|  | 
| +#if !defined(OS_ANDROID) | 
| GeolocationPermissionContextFactory::GeolocationPermissionContextFactory() | 
| : BrowserContextKeyedServiceFactory( | 
| "GeolocationPermissionContext", | 
| BrowserContextDependencyManager::GetInstance()) { | 
| } | 
| +#else | 
| +GeolocationPermissionContextFactory::GeolocationPermissionContextFactory() | 
| +    : BrowserContextKeyedServiceFactory( | 
| +          "GeolocationPermissionContextAndroid", | 
| +          BrowserContextDependencyManager::GetInstance()) { | 
| +} | 
| +#endif | 
| + | 
|  | 
| GeolocationPermissionContextFactory::~GeolocationPermissionContextFactory() { | 
| } | 
| @@ -68,7 +50,12 @@ GeolocationPermissionContextFactory::~GeolocationPermissionContextFactory() { | 
| KeyedService* | 
| GeolocationPermissionContextFactory::BuildServiceInstanceFor( | 
| content::BrowserContext* profile) const { | 
| -  return new Service(static_cast<Profile*>(profile)); | 
| +#if !defined(OS_ANDROID) | 
| +  return new GeolocationPermissionContext(static_cast<Profile*>(profile)); | 
| +#else | 
| +  return new GeolocationPermissionContextAndroid( | 
| +      static_cast<Profile*>(profile)); | 
| +#endif | 
| } | 
|  | 
| void GeolocationPermissionContextFactory::RegisterProfilePrefs( | 
|  |