Chromium Code Reviews| Index: chrome/browser/geolocation/chrome_geolocation_permission_context.h |
| diff --git a/chrome/browser/geolocation/chrome_geolocation_permission_context.h b/chrome/browser/geolocation/chrome_geolocation_permission_context.h |
| index d0f35cee28235a3ea5a9c586051caddf5035a98e..48149c3c3053a15950506f2dc4947ca65cfabe2c 100644 |
| --- a/chrome/browser/geolocation/chrome_geolocation_permission_context.h |
| +++ b/chrome/browser/geolocation/chrome_geolocation_permission_context.h |
| @@ -5,6 +5,8 @@ |
| #ifndef CHROME_BROWSER_GEOLOCATION_CHROME_GEOLOCATION_PERMISSION_CONTEXT_H_ |
| #define CHROME_BROWSER_GEOLOCATION_CHROME_GEOLOCATION_PERMISSION_CONTEXT_H_ |
| +#include <string> |
| + |
| #include "base/memory/scoped_ptr.h" |
| #include "content/public/browser/geolocation_permission_context.h" |
| @@ -18,7 +20,7 @@ class Profile; |
| class ChromeGeolocationPermissionContext |
| : public content::GeolocationPermissionContext { |
| public: |
| - explicit ChromeGeolocationPermissionContext(Profile* profile); |
| + static ChromeGeolocationPermissionContext* Create(Profile *profile); |
|
bulach
2012/10/17 12:59:33
nit: s/Profile *p/Profile* p/
however, I just cha
Ramya
2012/10/17 17:38:43
Agreed. Will make the change in the http://coderev
|
| static void RegisterUserPrefs(PrefService *user_prefs); |
| @@ -35,17 +37,37 @@ class ChromeGeolocationPermissionContext |
| int bridge_id, |
| const GURL& requesting_frame) OVERRIDE; |
| - private: |
| + protected: |
| + explicit ChromeGeolocationPermissionContext(Profile* profile); |
| virtual ~ChromeGeolocationPermissionContext(); |
| - // Removes any pending InfoBar request. |
| - void CancelPendingInfoBarRequest(int render_process_id, |
| - int render_view_id, |
| - int bridge_id); |
| + // Decide whether the geolocation permission should be granted. |
| + // Calls PermissionDecided if permission can be decided non-interactively, |
| + // or NotifyPermissionSet if permission decided by presenting an |
| + // infobar to the user. Called on the UI thread. |
| + virtual void DecidePermission(int render_process_id, |
| + int render_view_id, |
| + int bridge_id, |
| + const GURL& requesting_frame, |
| + const GURL& embedder, |
| + base::Callback<void(bool)> callback); |
| + |
| + // Called when permission is granted without interactively asking |
| + // the user. Can be overridden to introduce additional UI flow. |
| + // Should ultimately ensure that NotifyPermissionSet is called. |
| + // Called on the UI thread. |
| + virtual void PermissionDecided(int render_process_id, |
| + int render_view_id, |
| + int bridge_id, |
| + const GURL& requesting_frame, |
| + const GURL& embedder, |
| + base::Callback<void(bool)> callback, |
| + bool allowed); |
| // Notifies whether or not the corresponding bridge is allowed to use |
| // geolocation via |
| // GeolocationPermissionContext::SetGeolocationPermissionResponse(). |
| + // Called on the UI thread. |
| void NotifyPermissionSet(int render_process_id, |
| int render_view_id, |
| int bridge_id, |
| @@ -53,6 +75,22 @@ class ChromeGeolocationPermissionContext |
| base::Callback<void(bool)> callback, |
| bool allowed); |
| + // Return an instance of the infobar queue controller, creating it |
| + // if necessary. |
| + GeolocationInfoBarQueueController* QueueController(); |
| + |
| + // Create an InfoBarQueueController. overriden in derived classes to provide |
| + // additional UI flow. Called on the UI thread. |
| + virtual GeolocationInfoBarQueueController* CreateQueueController(); |
| + |
| + Profile* profile() const { return profile_; } |
|
bulach
2012/10/17 12:59:33
nit: I think this method and QueueController() sho
Ramya
2012/10/17 17:38:43
Done.
|
| + |
| + private: |
| + // Removes any pending InfoBar request. |
| + void CancelPendingInfoBarRequest(int render_process_id, |
| + int render_view_id, |
| + int bridge_id); |
| + |
| // This must only be accessed from the UI thread. |
| Profile* const profile_; |