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