| Index: chrome/browser/permissions/permission_request_manager.cc
|
| diff --git a/chrome/browser/permissions/permission_request_manager.cc b/chrome/browser/permissions/permission_request_manager.cc
|
| index 35dc5ec81178ca42bd930191532b08c440efbb6b..ead3d56c2a70c3a7d4dfe6f896e6ce7b213a5674 100644
|
| --- a/chrome/browser/permissions/permission_request_manager.cc
|
| +++ b/chrome/browser/permissions/permission_request_manager.cc
|
| @@ -229,19 +229,14 @@ void PermissionRequestManager::CancelRequest(PermissionRequest* request) {
|
| }
|
|
|
| void PermissionRequestManager::HideBubble() {
|
| -#if defined(ANDROID)
|
| - // The infobar system manages infobar lifetime and visibility so don't delete
|
| - // the PermissionPromptAndroid.
|
| - NOTREACHED();
|
| -#else
|
| - // Disengage from the existing view if there is one.
|
| - if (!view_)
|
| + // Disengage from the existing view if there is one and it doesn't manage
|
| + // its own visibility.
|
| + if (!view_ || view_->HidesAutomatically())
|
| return;
|
|
|
| view_->SetDelegate(nullptr);
|
| view_->Hide();
|
| view_.reset();
|
| -#endif
|
| }
|
|
|
| void PermissionRequestManager::DisplayPendingRequests() {
|
| @@ -412,7 +407,7 @@ void PermissionRequestManager::TriggerShowBubble() {
|
| }
|
|
|
| void PermissionRequestManager::FinalizeBubble() {
|
| - if (view_)
|
| + if (view_ && !view_->HidesAutomatically())
|
| view_->Hide();
|
|
|
| std::vector<PermissionRequest*>::iterator requests_iter;
|
|
|