Index: chrome/browser/geolocation/geolocation_permission_context_android.h |
diff --git a/chrome/browser/geolocation/geolocation_permission_context_android.h b/chrome/browser/geolocation/geolocation_permission_context_android.h |
index 6af10e61ff6c1d4c765d79c3b38c8c838c4f3bf3..8385cc98f9e9282aee31cf7580541a303cb61133 100644 |
--- a/chrome/browser/geolocation/geolocation_permission_context_android.h |
+++ b/chrome/browser/geolocation/geolocation_permission_context_android.h |
@@ -25,6 +25,8 @@ |
// per site settings) are queried on the UI thread while the system level |
// permissions are considered I/O and thus checked in the blocking thread pool. |
+#include "base/memory/scoped_ptr.h" |
+#include "base/memory/weak_ptr.h" |
#include "chrome/browser/content_settings/permission_request_id.h" |
#include "chrome/browser/geolocation/geolocation_permission_context.h" |
#include "url/gurl.h" |
@@ -35,44 +37,46 @@ class WebContents; |
class GoogleLocationSettingsHelper; |
- |
class GeolocationPermissionContextAndroid |
: public GeolocationPermissionContext { |
public: |
explicit GeolocationPermissionContextAndroid(Profile* profile); |
+ virtual ~GeolocationPermissionContextAndroid(); |
private: |
struct PermissionRequestInfo { |
PermissionRequestInfo(); |
PermissionRequestID id; |
- GURL requesting_frame; |
+ GURL requesting_origin; |
+ GURL embedder_origin; |
bool user_gesture; |
- GURL embedder; |
}; |
- friend class GeolocationPermissionContext; |
- |
- virtual ~GeolocationPermissionContextAndroid(); |
+ // PermissionContextBase: |
+ virtual void RequestPermission( |
+ content::WebContents* web_contents, |
+ const PermissionRequestID& id, |
+ const GURL& requesting_frame_origin, |
+ bool user_gesture, |
+ const BrowserPermissionCallback& callback) OVERRIDE; |
- // GeolocationPermissionContext implementation: |
- virtual void DecidePermission(content::WebContents* web_contents, |
- const PermissionRequestID& id, |
- const GURL& requesting_frame, |
- bool user_gesture, |
- const GURL& embedder, |
- base::Callback<void(bool)> callback) OVERRIDE; |
+ void CheckMasterLocation(content::WebContents* web_contents, |
+ const PermissionRequestInfo& info, |
+ const BrowserPermissionCallback& callback); |
void ProceedDecidePermission(content::WebContents* web_contents, |
const PermissionRequestInfo& info, |
base::Callback<void(bool)> callback); |
+ // Will perform a final check on the system location settings before |
+ // granting the permission. |
+ void InterceptPermissionCheck(const BrowserPermissionCallback& callback, |
+ bool granted); |
+ |
scoped_ptr<GoogleLocationSettingsHelper> google_location_settings_helper_; |
+ base::WeakPtrFactory<GeolocationPermissionContextAndroid> weak_factory_; |
- private: |
- void CheckSystemLocation(content::WebContents* web_contents, |
- const PermissionRequestInfo& info, |
- base::Callback<void(bool)> callback); |
DISALLOW_COPY_AND_ASSIGN(GeolocationPermissionContextAndroid); |
}; |