| 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);
 | 
|  };
 | 
| 
 |