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