blob: 2398c99acad6a3629bafb12afd66131951efa139 [file] [log] [blame]
Avi Drissman4a8573c2022-09-09 19:35:541// Copyright 2021 The Chromium Authors
Lijin Shen9cb57a222021-11-16 02:17:372// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Ravjit4f505652024-05-02 16:37:565#ifndef CHROME_BROWSER_PERMISSIONS_PERMISSION_BLOCKED_MESSAGE_DELEGATE_ANDROID_H_
6#define CHROME_BROWSER_PERMISSIONS_PERMISSION_BLOCKED_MESSAGE_DELEGATE_ANDROID_H_
Lijin Shen9cb57a222021-11-16 02:17:377
8#include <memory>
9
Avi Drissman9269d4ed2023-01-07 01:38:0610#include "base/functional/callback.h"
Keishi Hattori0e45c022021-11-27 09:25:5211#include "base/memory/raw_ptr.h"
Ravjit4f505652024-05-02 16:37:5612#include "chrome/browser/permissions/permission_blocked_dialog_controller_android.h"
Lijin Shen9cb57a222021-11-16 02:17:3713#include "components/content_settings/core/common/content_settings_types.h"
14#include "components/messages/android/message_enums.h"
15#include "components/messages/android/message_wrapper.h"
Lijin Shen7628090a2021-11-16 16:34:1316#include "components/permissions/permissions_client.h"
Lijin Shenb05ef8942022-01-26 22:37:1717#include "content/public/browser/web_contents_observer.h"
Lijin Shen9cb57a222021-11-16 02:17:3718
19namespace content {
20class WebContents;
21}
22
23namespace permissions {
24class PermissionPromptAndroid;
25}
26
27// A message ui that displays a notification permission request, which is an
28// alternative ui to the mini infobar.
Ravjit4f505652024-05-02 16:37:5629class PermissionBlockedMessageDelegate
30 : public PermissionBlockedDialogController::Delegate,
Lijin Shenb05ef8942022-01-26 22:37:1731 public permissions::PermissionsClient::PermissionMessageDelegate,
32 public content::WebContentsObserver {
Lijin Shen9cb57a222021-11-16 02:17:3733 public:
34 // Delegate to mock out the |PermissionPromptAndroid| for testing.
35 class Delegate {
36 public:
37 Delegate();
38 Delegate(const base::WeakPtr<permissions::PermissionPromptAndroid>&
39 permission_prompt);
40 virtual ~Delegate();
41 virtual void Accept();
42 virtual void Deny();
43 virtual void Closing();
Lijin Shen9c2129b32022-02-16 03:13:3944 virtual void SetManageClicked();
45 virtual void SetLearnMoreClicked();
Lijin Shen9cb57a222021-11-16 02:17:3746 virtual bool ShouldUseQuietUI();
Arthur Sonzognife132ee2024-01-15 11:01:04