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 1ed90638f96563b93e44daf7524b4e9583c078b0..341f4a34f7e4911117eff761834ab2bfb8b03e11 100644 |
--- a/chrome/browser/permissions/permission_request_manager.cc |
+++ b/chrome/browser/permissions/permission_request_manager.cc |
@@ -79,6 +79,7 @@ PermissionRequestManager::PermissionRequestManager( |
: content::WebContentsObserver(web_contents), |
view_factory_(base::Bind(&PermissionPrompt::Create)), |
view_(nullptr), |
+ browser_visible_(true), |
main_frame_has_fully_loaded_(false), |
persist_(true), |
auto_response_for_test_(NONE), |
@@ -372,6 +373,8 @@ void PermissionRequestManager::ScheduleShowBubble() { |
void PermissionRequestManager::TriggerShowBubble() { |
if (!view_) |
return; |
+ if (!browser_visible_) |
+ return; |
if (IsBubbleVisible()) |
return; |
if (!main_frame_has_fully_loaded_) |
@@ -508,6 +511,12 @@ void PermissionRequestManager::RemoveObserver(Observer* observer) { |
observer_list_.RemoveObserver(observer); |
} |
+void PermissionRequestManager::OnBrowserVisibilityChanged(bool visible) { |
+ browser_visible_ = visible; |
+ if (visible) |
+ ScheduleShowBubble(); |
+} |
+ |
void PermissionRequestManager::NotifyBubbleAdded() { |
for (Observer& observer : observer_list_) |
observer.OnBubbleAdded(); |