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

Unified Diff: chrome/browser/ui/website_settings/permission_bubble_manager.h

Issue 1154943008: Update push messaging tests to use both infobars and bubbles (w/ autoresponse) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Put the auto-responder directly into the PermissionBubbleManager Created 5 years, 6 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/ui/website_settings/permission_bubble_manager.h
diff --git a/chrome/browser/ui/website_settings/permission_bubble_manager.h b/chrome/browser/ui/website_settings/permission_bubble_manager.h
index 1c624b66f09a130df079e6db52d8a8e68d2960e0..37e8b88ec633ff0e0ce6ae0cf475602a645e7a90 100644
--- a/chrome/browser/ui/website_settings/permission_bubble_manager.h
+++ b/chrome/browser/ui/website_settings/permission_bubble_manager.h
@@ -8,6 +8,7 @@
#include <vector>
#include "base/memory/weak_ptr.h"
+#include "base/observer_list.h"
msw 2015/06/05 01:52:00 Remove this
felt 2015/06/05 06:37:29 Done.
#include "chrome/browser/ui/website_settings/permission_bubble_view.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/browser/web_contents_user_data.h"
@@ -30,6 +31,12 @@ class PermissionBubbleManager
public content::WebContentsUserData<PermissionBubbleManager>,
public PermissionBubbleView::Delegate {
public:
+ class Observer {
msw 2015/06/05 01:52:00 Remove this.
felt 2015/06/05 06:37:29 Done.
+ public:
+ virtual ~Observer();
+ virtual void OnBubbleAdded();
+ };
+
// Return the enabled state of permissions bubbles.
// Controlled by a flag and FieldTrial.
static bool Enabled();
@@ -72,6 +79,14 @@ class PermissionBubbleManager
friend class PermissionBubbleManagerTest;
friend class PermissionContextBaseTests;
friend class content::WebContentsUserData<PermissionBubbleManager>;
+ friend class PushMessagingBrowserTest;
msw 2015/06/05 01:52:00 Avoid friending by making the test setter public.
felt 2015/06/05 06:37:29 This makes me a little anxious... but I guess my c
+
+ enum AutoResponseType {
+ NOT_TESTING,
msw 2015/06/05 01:52:00 nit: maybe rename |NONE| (tests might want to clea
felt 2015/06/05 06:37:29 Done.
+ ACCEPT_ALL,
+ DENY_ALL,
+ DISMISS
+ };
explicit PermissionBubbleManager(content::WebContents* web_contents);
@@ -119,6 +134,13 @@ class PermissionBubbleManager
bool HasUserGestureRequest(
const std::vector<PermissionBubbleRequest*>& queue);
+ // Do NOT use these methods in production code. Use these methods in browser
+ // tests that need to accept or deny permissions when requested in
+ // JavaScript. Your test needs to set set_auto_response_for_testing_only_
+ // and then the bubble will proceed as desired as soon as Show() is called.
+ void set_auto_response_for_testing_only_(AutoResponseType response);
msw 2015/06/05 01:52:00 Name this |set_auto_response_for_test|.
felt 2015/06/05 06:37:29 Done.
+ void DoAutoResponseForTesting();
+
// Whether to delay displaying the bubble until a request with a user gesture.
// False by default, unless RequireUserGesture(bool) changes the value.
bool require_user_gesture_;
@@ -140,6 +162,8 @@ class PermissionBubbleManager
std::vector<bool> accept_states_;
+ AutoResponseType auto_response_for_testing_only_;
msw 2015/06/05 01:52:00 Name this |auto_response_for_test_|
felt 2015/06/05 06:37:29 Done.
+
base::WeakPtrFactory<PermissionBubbleManager> weak_factory_;
};

Powered by Google App Engine
This is Rietveld 408576698