1 // Copyright 2015 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 CONTENT_SHELL_BROWSER_SHELL_PERMISSION_MANAGER_H_ 6 #define CONTENT_SHELL_BROWSER_SHELL_PERMISSION_MANAGER_H_ 7 8 #include "base/callback_forward.h" 9 #include "base/macros.h" 10 #include "content/public/browser/permission_controller_delegate.h" 11 12 namespace content { 13 14 class ShellPermissionManager : public PermissionControllerDelegate { 15 public: 16 ShellPermissionManager(); 17 ~ShellPermissionManager() override; 18 19 // PermissionManager implementation. 20 int RequestPermission(PermissionType permission, 21 RenderFrameHost* render_frame_host, 22 const GURL& requesting_origin, 23 bool user_gesture, 24 base::OnceCallback<void(blink::mojom::PermissionStatus)> 25 callback) override; 26 int RequestPermissions( 27 const std::vector<PermissionType>& permission, 28 RenderFrameHost* render_frame_host, 29 const GURL& requesting_origin, 30 bool user_gesture, 31 base::OnceCallback< 32 void(const std::vector<blink::mojom::PermissionStatus>&)> callback) 33 override; 34 void ResetPermission(PermissionType permission, 35 const GURL& requesting_origin, 36 const GURL& embedding_origin) override; 37 blink::mojom::PermissionStatus GetPermissionStatus( 38 PermissionType permission, 39 const GURL& requesting_origin, 40 const GURL& embedding_origin) override; 41 blink::mojom::PermissionStatus GetPermissionStatusForFrame( 42 content::PermissionType permission, 43 content::RenderFrameHost* render_frame_host, 44 const GURL& requesting_origin) override; 45 int SubscribePermissionStatusChange( 46 PermissionType permission, 47 RenderFrameHost* render_frame_host, 48 const GURL& requesting_origin, 49 base::RepeatingCallback<void(blink::mojom::PermissionStatus)> callback) 50 override; 51 void UnsubscribePermissionStatusChange(int subscription_id) override; 52 53 private: 54 DISALLOW_COPY_AND_ASSIGN(ShellPermissionManager); 55 }; 56 57 } // namespace content 58 59 #endif // CONTENT_SHELL_BROWSER_SHELL_PERMISSION_MANAGER_H 60