Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(506)

Unified Diff: chrome/browser/permissions/permission_request_manager.h

Issue 2770423002: Do not show permission bubble when browser is not active (Closed)
Patch Set: BrowserListObserver Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_;

Powered by Google App Engine
This is Rietveld 408576698