Chromium Code Reviews| 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(); |
|
Timothy Loh
2017/04/10 04:23:48
Not sure if it's nicer to leave this here or chang
benwells
2017/04/10 07:00:57
I don't have a strong opinion :)
|
| -#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; |