Commit 1bebf52f authored by Ben Mason's avatar Ben Mason Committed by Commit Bot

Revert "Kill quiet permission requests if a new request is made"

This reverts commit 55a4bb68.

Reason for revert: Causing crashes - crbug.com/1016233

Original change's description:
> Kill quiet permission requests if a new request is made
> 
> Bug: 1014026
> Change-Id: I5fe93b9bc7b39873900d9e15dcba66dfddd7c4ef
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1860015
> Commit-Queue: Andy Paicu <andypaicu@chromium.org>
> Reviewed-by: Balazs Engedy <engedy@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#706445}

TBR=engedy@chromium.org,andypaicu@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 1014026
Change-Id: I4e0f0120e3f7d2b9711d122bb186012c5d06464d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1871632Reviewed-by: default avatarBen Mason <benmason@chromium.org>
Commit-Queue: Ben Mason <benmason@chromium.org>
Cr-Commit-Position: refs/heads/master@{#707899}
parent a10dc013
...@@ -23,7 +23,6 @@ PermissionPromptAndroid::PermissionPromptAndroid( ...@@ -23,7 +23,6 @@ PermissionPromptAndroid::PermissionPromptAndroid(
: web_contents_(web_contents), : web_contents_(web_contents),
delegate_(delegate), delegate_(delegate),
permission_request_notification_(nullptr), permission_request_notification_(nullptr),
permission_infobar_(nullptr),
weak_factory_(this) { weak_factory_(this) {
DCHECK(web_contents); DCHECK(web_contents);
...@@ -32,8 +31,8 @@ PermissionPromptAndroid::PermissionPromptAndroid( ...@@ -32,8 +31,8 @@ PermissionPromptAndroid::PermissionPromptAndroid(
if (infobar_service && if (infobar_service &&
GroupedPermissionInfoBarDelegate::ShouldShowMiniInfobar( GroupedPermissionInfoBarDelegate::ShouldShowMiniInfobar(
GetContentSettingType(0u /* position */))) { GetContentSettingType(0u /* position */))) {
permission_infobar_ = GroupedPermissionInfoBarDelegate::Create( GroupedPermissionInfoBarDelegate::Create(weak_factory_.GetWeakPtr(),
weak_factory_.GetWeakPtr(), infobar_service); infobar_service);
return; return;
} }
...@@ -47,14 +46,7 @@ PermissionPromptAndroid::PermissionPromptAndroid( ...@@ -47,14 +46,7 @@ PermissionPromptAndroid::PermissionPromptAndroid(
PermissionDialogDelegate::Create(web_contents_, this); PermissionDialogDelegate::Create(web_contents_, this);
} }
PermissionPromptAndroid::~PermissionPromptAndroid() { PermissionPromptAndroid::~PermissionPromptAndroid() {}
if (permission_infobar_) {
InfoBarService* infobar_service =
InfoBarService::FromWebContents(web_contents_);
infobar_service->RemoveInfoBar(permission_infobar_);
}
}
void PermissionPromptAndroid::UpdateAnchorPosition() { void PermissionPromptAndroid::UpdateAnchorPosition() {
NOTREACHED() << "UpdateAnchorPosition is not implemented"; NOTREACHED() << "UpdateAnchorPosition is not implemented";
......
...@@ -17,9 +17,6 @@ ...@@ -17,9 +17,6 @@
namespace content { namespace content {
class WebContents; class WebContents;
} }
namespace infobars {
class InfoBar;
}
class PermissionRequestNotificationAndroid; class PermissionRequestNotificationAndroid;
class PermissionPromptAndroid : public PermissionPrompt { class PermissionPromptAndroid : public PermissionPrompt {
...@@ -58,10 +55,6 @@ class PermissionPromptAndroid : public PermissionPrompt { ...@@ -58,10 +55,6 @@ class PermissionPromptAndroid : public PermissionPrompt {
std::unique_ptr<PermissionRequestNotificationAndroid> std::unique_ptr<PermissionRequestNotificationAndroid>
permission_request_notification_; permission_request_notification_;
// The infobar used to display the permission request, if displayed in that
// format. Never assume that this pointer is currently alive.
infobars::InfoBar* permission_infobar_;
base::WeakPtrFactory<PermissionPromptAndroid> weak_factory_{this}; base::WeakPtrFactory<PermissionPromptAndroid> weak_factory_{this};
DISALLOW_COPY_AND_ASSIGN(PermissionPromptAndroid); DISALLOW_COPY_AND_ASSIGN(PermissionPromptAndroid);
......
...@@ -80,6 +80,7 @@ PermissionRequestManager::~PermissionRequestManager() { ...@@ -80,6 +80,7 @@ PermissionRequestManager::~PermissionRequestManager() {
} }
void PermissionRequestManager::AddRequest(PermissionRequest* request) { void PermissionRequestManager::AddRequest(PermissionRequest* request) {
if (base::CommandLine::ForCurrentProcess()->HasSwitch( if (base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kDenyPermissionPrompts)) { switches::kDenyPermissionPrompts)) {
request->PermissionDenied(); request->PermissionDenied();
...@@ -139,12 +140,6 @@ void PermissionRequestManager::AddRequest(PermissionRequest* request) { ...@@ -139,12 +140,6 @@ void PermissionRequestManager::AddRequest(PermissionRequest* request) {
} }
queued_requests_.push_back(request); queued_requests_.push_back(request);
// If we're displaying a quiet permission request, kill it in favor of this
// permission request.
if (ShouldShowQuietPermissionPrompt()) {
FinalizeBubble(PermissionAction::IGNORED);
}
if (!IsBubbleVisible()) if (!IsBubbleVisible())
ScheduleShowBubble(); ScheduleShowBubble();
} }
...@@ -558,21 +553,17 @@ void PermissionRequestManager::RemoveObserver(Observer* observer) { ...@@ -558,21 +553,17 @@ void PermissionRequestManager::RemoveObserver(Observer* observer) {
} }
bool PermissionRequestManager::ShouldShowQuietPermissionPrompt() { bool PermissionRequestManager::ShouldShowQuietPermissionPrompt() {
if (!requests_.size() || if (!requests_.size())
requests_.front()->GetPermissionRequestType() !=
PermissionRequestType::PERMISSION_NOTIFICATIONS) {
return false; return false;
}
const auto ui_flavor = QuietNotificationsPromptConfig::UIFlavorToUse();
#if !defined(OS_ANDROID) #if !defined(OS_ANDROID)
return ui_flavor == QuietNotificationsPromptConfig::STATIC_ICON || const auto ui_flavor = QuietNotificationsPromptConfig::UIFlavorToUse();
ui_flavor == QuietNotificationsPromptConfig::ANIMATED_ICON; return (requests_.front()->GetPermissionRequestType() ==
PermissionRequestType::PERMISSION_NOTIFICATIONS &&
(ui_flavor == QuietNotificationsPromptConfig::STATIC_ICON ||
ui_flavor == QuietNotificationsPromptConfig::ANIMATED_ICON));
#else // OS_ANDROID #else // OS_ANDROID
return ui_flavor == QuietNotificationsPromptConfig::QUIET_NOTIFICATION || return false;
ui_flavor == QuietNotificationsPromptConfig::HEADS_UP_NOTIFICATION ||
ui_flavor == QuietNotificationsPromptConfig::MINI_INFOBAR;
#endif // OS_ANDROID #endif // OS_ANDROID
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment