Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(90)

Side by Side Diff: content/public/browser/geolocation_delegate.h

Issue 2126893003: Geolocation cleanup: make GeolocationDelegate::OverrideSystemLocationProvider return unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: wez@ comments (InitializeArbitrator(), removed hacks) Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_PUBLIC_BROWSER_GEOLOCATION_DELEGATE_H_ 5 #ifndef CONTENT_PUBLIC_BROWSER_GEOLOCATION_DELEGATE_H_
6 #define CONTENT_PUBLIC_BROWSER_GEOLOCATION_DELEGATE_H_ 6 #define CONTENT_PUBLIC_BROWSER_GEOLOCATION_DELEGATE_H_
7 7
8 #include <memory> 8 #include <memory>
9 9
10 #include "content/common/content_export.h" 10 #include "content/common/content_export.h"
11 11
12 namespace content { 12 namespace content {
13 class AccessTokenStore; 13 class AccessTokenStore;
14 class LocationProvider; 14 class LocationProvider;
15 15
16 // An embedder of Geolocation may override these class' methods to provide 16 // An embedder of Geolocation may override these class' methods to provide
17 // specific functionality. 17 // specific functionality.
18 class CONTENT_EXPORT GeolocationDelegate { 18 class CONTENT_EXPORT GeolocationDelegate {
19 public: 19 public:
20 virtual ~GeolocationDelegate() {}
21
20 // Returns true if the location API should use network-based location 22 // Returns true if the location API should use network-based location
21 // approximation in addition to the system provider, if any. 23 // approximation in addition to the system provider, if any.
22 virtual bool UseNetworkLocationProviders(); 24 virtual bool UseNetworkLocationProviders();
23 // Creates a new AccessTokenStore for geolocation. May return nullptr. 25
26 // Creates a new AccessTokenStore for geolocation. May return nullptr.
24 // TODO(mcasas): consider changing it return type to std::unique_ptr<> to 27 // TODO(mcasas): consider changing it return type to std::unique_ptr<> to
25 // clarify ownership, https://crbug.com/623114. 28 // clarify ownership, https://crbug.com/623114.
26 virtual AccessTokenStore* CreateAccessTokenStore(); 29 virtual AccessTokenStore* CreateAccessTokenStore();
27 // Allows an embedder to return its own LocationProvider implementation. 30
31 // Allows an embedder to return its own LocationProvider implementation.
28 // Return nullptr to use the default one for the platform to be created. 32 // Return nullptr to use the default one for the platform to be created.
29 // Caller takes ownership of the returned LocationProvider. FYI: Used by an 33 // FYI: Used by an external project; please don't remove. Contact Viatcheslav
30 // external project; please don't remove. Contact Viatcheslav Ostapenko at 34 // Ostapenko at sl.ostapenko@samsung.com for more information.
31 // sl.ostapenko@samsung.com for more information. 35 virtual std::unique_ptr<LocationProvider> OverrideSystemLocationProvider();
32 // TODO(mcasas): return std::unique_ptr<> instead, https://crbug.com/623132.
33 virtual LocationProvider* OverrideSystemLocationProvider();
34 }; 36 };
35 37
36 } // namespace content 38 } // namespace content
37 39
38 #endif // CONTENT_PUBLIC_BROWSER_GEOLOCATION_DELEGATE_H_ 40 #endif // CONTENT_PUBLIC_BROWSER_GEOLOCATION_DELEGATE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698