Index: chrome/browser/permissions/permission_manager.cc |
diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/permissions/permission_manager.cc |
index a07f865b065a415d257e1c0393a7dda892f8ccf6..005723327f9ffec24db485b6437bab5ccaf8d39d 100644 |
--- a/chrome/browser/permissions/permission_manager.cc |
+++ b/chrome/browser/permissions/permission_manager.cc |
@@ -8,6 +8,7 @@ |
#include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
#include "chrome/browser/permissions/permission_context.h" |
#include "chrome/browser/permissions/permission_context_base.h" |
+#include "chrome/browser/permissions/permission_infobar_manager.h" |
#include "chrome/browser/permissions/permission_request_id.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/tab_contents/tab_util.h" |
@@ -166,7 +167,7 @@ int PermissionManager::RequestPermission( |
content::WebContents* web_contents = |
content::WebContents::FromRenderFrameHost(render_frame_host); |
- if (IsPermissionBubbleManagerMissing(web_contents)) { |
+ if (IsPermissionUIManagerMissing(web_contents)) { |
callback.Run( |
GetPermissionStatus(permission, requesting_origin, |
web_contents->GetLastCommittedURL().GetOrigin())); |
@@ -210,7 +211,7 @@ void PermissionManager::CancelPermissionRequest(int request_id) { |
content::WebContents* web_contents = tab_util::GetWebContentsByFrameID( |
pending_request->render_process_id, pending_request->render_frame_id); |
DCHECK(web_contents); |
- if (IsPermissionBubbleManagerMissing(web_contents)) { |
+ if (IsPermissionUIManagerMissing(web_contents)) { |
pending_requests_.Remove(request_id); |
return; |
} |
@@ -297,13 +298,13 @@ void PermissionManager::UnsubscribePermissionStatusChange(int subscription_id) { |
->RemoveObserver(this); |
} |
-bool PermissionManager::IsPermissionBubbleManagerMissing( |
+bool PermissionManager::IsPermissionUIManagerMissing( |
content::WebContents* web_contents) { |
- // Can't be missing if it isn't needed to begin with. |
- if (!PermissionBubbleManager::Enabled()) |
- return false; |
+ if (PermissionBubbleManager::Enabled()) |
+ return PermissionBubbleManager::FromWebContents(web_contents) == nullptr; |
- return PermissionBubbleManager::FromWebContents(web_contents) == nullptr; |
+ // Consider PermissionInfoBarManager's state instead |
+ return PermissionInfoBarManager::FromWebContents(web_contents) == nullptr; |
} |
void PermissionManager::OnContentSettingChanged( |