Index: chrome/browser/permissions/permission_request_manager.h |
diff --git a/chrome/browser/permissions/permission_request_manager.h b/chrome/browser/permissions/permission_request_manager.h |
index b2df0b9d08a0a07172227246d1df40568b7ba35b..ac707eb0a4f812fc165f0447167a0329007c9b9d 100644 |
--- a/chrome/browser/permissions/permission_request_manager.h |
+++ b/chrome/browser/permissions/permission_request_manager.h |
@@ -11,6 +11,7 @@ |
#include "base/gtest_prod_util.h" |
#include "base/memory/weak_ptr.h" |
#include "base/observer_list.h" |
+#include "chrome/browser/ui/browser_list_observer.h" |
#include "chrome/browser/ui/permission_bubble/permission_prompt.h" |
#include "content/public/browser/web_contents_observer.h" |
#include "content/public/browser/web_contents_user_data.h" |
@@ -39,7 +40,8 @@ class PermissionRequestManagerTestApi; |
class PermissionRequestManager |
: public content::WebContentsObserver, |
public content::WebContentsUserData<PermissionRequestManager>, |
- public PermissionPrompt::Delegate { |
+ public PermissionPrompt::Delegate, |
+ public chrome::BrowserListObserver { |
public: |
class Observer { |
public: |
@@ -142,6 +144,10 @@ class PermissionRequestManager |
void Deny() override; |
void Closing() override; |
+ // chrome::BrowserListObserver: |
+ void OnBrowserSetLastActive(Browser* browser) override; |
+ void OnBrowserNoLongerActive(Browser* browser) override; |
+ |
// Posts a task which will allow the bubble to become visible if it is needed. |
void ScheduleShowBubble(); |
@@ -186,6 +192,9 @@ class PermissionRequestManager |
// The UI surface to be used to display the permissions requests. |
std::unique_ptr<PermissionPrompt> view_; |
+ // Whether the browser that contains |web_contents()| is active. |
+ bool browser_active_; |
+ |
std::vector<PermissionRequest*> requests_; |
std::vector<PermissionRequest*> queued_requests_; |
std::vector<PermissionRequest*> queued_frame_requests_; |