web_engine_permission_delegate.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. // Copyright 2019 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. #ifndef FUCHSIA_WEB_WEBENGINE_BROWSER_WEB_ENGINE_PERMISSION_DELEGATE_H_
  5. #define FUCHSIA_WEB_WEBENGINE_BROWSER_WEB_ENGINE_PERMISSION_DELEGATE_H_
  6. #include "content/public/browser/permission_controller_delegate.h"
  7. #include "content/public/browser/permission_result.h"
  8. namespace blink {
  9. enum class PermissionType;
  10. }
  11. // PermissionControllerDelegate implementation for WebEngine. It redirects
  12. // permission redirects all calls to the appropriate FramePermissionController
  13. // instance.
  14. class WebEnginePermissionDelegate
  15. : public content::PermissionControllerDelegate {
  16. public:
  17. WebEnginePermissionDelegate();
  18. ~WebEnginePermissionDelegate() override;
  19. WebEnginePermissionDelegate(WebEnginePermissionDelegate&) = delete;
  20. WebEnginePermissionDelegate& operator=(WebEnginePermissionDelegate&) = delete;
  21. // content::PermissionControllerDelegate implementation:
  22. void RequestPermission(
  23. blink::PermissionType permission,
  24. content::RenderFrameHost* render_frame_host,
  25. const GURL& requesting_origin,
  26. bool user_gesture,
  27. base::OnceCallback<void(blink::mojom::PermissionStatus)> callback)
  28. override;
  29. void RequestPermissions(
  30. const std::vector<blink::PermissionType>& permission,
  31. content::RenderFrameHost* render_frame_host,
  32. const GURL& requesting_origin,
  33. bool user_gesture,
  34. base::OnceCallback<
  35. void(const std::vector<blink::mojom::PermissionStatus>&)> callback)
  36. override;
  37. void ResetPermission(blink::PermissionType permission,
  38. const GURL& requesting_origin,
  39. const GURL& embedding_origin) override;
  40. void RequestPermissionsFromCurrentDocument(
  41. const std::vector<blink::PermissionType>& permissions,
  42. content::RenderFrameHost* render_frame_host,
  43. bool user_gesture,
  44. base::OnceCallback<
  45. void(const std::vector<blink::mojom::PermissionStatus>&)> callback)
  46. override;
  47. blink::mojom::PermissionStatus GetPermissionStatus(
  48. blink::PermissionType permission,
  49. const GURL& requesting_origin,
  50. const GURL& embedding_origin) override;
  51. content::PermissionResult GetPermissionResultForOriginWithoutContext(
  52. blink::PermissionType permission,
  53. const url::Origin& origin) override;
  54. blink::mojom::PermissionStatus GetPermissionStatusForCurrentDocument(
  55. blink::PermissionType permission,
  56. content::RenderFrameHost* render_frame_host) override;
  57. blink::mojom::PermissionStatus GetPermissionStatusForWorker(
  58. blink::PermissionType permission,
  59. content::RenderProcessHost* render_process_host,
  60. const GURL& worker_origin) override;
  61. SubscriptionId SubscribePermissionStatusChange(
  62. blink::PermissionType permission,
  63. content::RenderProcessHost* render_process_host,
  64. content::RenderFrameHost* render_frame_host,
  65. const GURL& requesting_origin,
  66. base::RepeatingCallback<void(blink::mojom::PermissionStatus)> callback)
  67. override;
  68. void UnsubscribePermissionStatusChange(
  69. SubscriptionId subscription_id) override;
  70. };
  71. #endif // FUCHSIA_WEB_WEBENGINE_BROWSER_WEB_ENGINE_PERMISSION_DELEGATE_H_