// Copyright 2016 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef DEVICE_GEOLOCATION_GEOLOCATION_DELEGATE_H_ #define DEVICE_GEOLOCATION_GEOLOCATION_DELEGATE_H_ #include #include "base/memory/ref_counted.h" #include "device/geolocation/geolocation_export.h" namespace device { class AccessTokenStore; class LocationProvider; // An embedder of Geolocation may override these class' methods to provide // specific functionality. class DEVICE_GEOLOCATION_EXPORT GeolocationDelegate { public: virtual ~GeolocationDelegate() {} // Returns true if the location API should use network-based location // approximation in addition to the system provider, if any. virtual bool UseNetworkLocationProviders(); // Creates a new AccessTokenStore for geolocation. May return nullptr. virtual scoped_refptr CreateAccessTokenStore(); // Allows an embedder to return its own LocationProvider implementation. // Return nullptr to use the default one for the platform to be created. // FYI: Used by an external project; please don't remove. Contact Viatcheslav // Ostapenko at sl.ostapenko@samsung.com for more information. virtual std::unique_ptr OverrideSystemLocationProvider(); }; } // namespace device #endif // DEVICE_GEOLOCATION_GEOLOCATION_DELEGATE_H_