Home | History | Annotate | Download | only in geolocation
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_BROWSER_GEOLOCATION_GEOLOCATION_PERMISSION_CONTEXT_EXTENSIONS_H_
      6 #define CHROME_BROWSER_GEOLOCATION_GEOLOCATION_PERMISSION_CONTEXT_EXTENSIONS_H_
      7 
      8 #include "base/callback_forward.h"
      9 #include "base/macros.h"
     10 
     11 namespace content {
     12 class WebContents;
     13 }
     14 
     15 class GURL;
     16 class PermissionRequestID;
     17 class Profile;
     18 
     19 // Chrome extensions specific portions of GeolocationPermissionContext.
     20 class GeolocationPermissionContextExtensions {
     21  public:
     22   explicit GeolocationPermissionContextExtensions(Profile* profile);
     23   ~GeolocationPermissionContextExtensions();
     24 
     25   // Returns true if the permission request was handled. In which case,
     26   // |permission_set| will be set to true if the permission changed, and the
     27   // permission has been set to |new_permission|.
     28   bool RequestPermission(content::WebContents* web_contents,
     29                          const PermissionRequestID& request_id,
     30                          int bridge_id,
     31                          const GURL& requesting_frame,
     32                          bool user_gesture,
     33                          base::Callback<void(bool)> callback,
     34                          bool* permission_set,
     35                          bool* new_permission);
     36 
     37   // Returns true if the cancellation request was handled.
     38   bool CancelPermissionRequest(content::WebContents* web_contents,
     39                                int bridge_id);
     40 
     41  private:
     42   Profile* profile_;
     43 
     44   DISALLOW_COPY_AND_ASSIGN(GeolocationPermissionContextExtensions);
     45 };
     46 
     47 #endif  // CHROME_BROWSER_GEOLOCATION_GEOLOCATION_PERMISSION_CONTEXT_EXTENSIONS_H_
     48