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

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

Issue 1251633002: Add BubbleManager to manage bubbles and ChromeBubbleManager for events. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Apply Feedback Created 5 years, 4 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_view.h
diff --git a/chrome/browser/ui/website_settings/permission_bubble_view.h b/chrome/browser/ui/website_settings/permission_bubble_view.h
index dd0e23b0ed495ef5477cc2ef4920574e318cd1df..08db48841bd66bd6d784e16593420d000f98d60b 100644
--- a/chrome/browser/ui/website_settings/permission_bubble_view.h
+++ b/chrome/browser/ui/website_settings/permission_bubble_view.h
@@ -9,65 +9,38 @@
#include "base/callback.h"
#include "base/memory/scoped_ptr.h"
+#include "components/bubble/bubble_ui.h"
#include "ui/gfx/native_widget_types.h"
class Browser;
-class PermissionBubbleManager;
-class PermissionBubbleRequest;
+class PermissionBubbleDelegate;
// This class is the platform-independent interface through which the permission
// bubble managers (which are one per tab) communicate to the UI surface.
// When the visible tab changes, the UI code must provide an object of this type
// to the manager for the visible tab.
-class PermissionBubbleView {
+class PermissionBubbleView : public BubbleUI {
public:
// The delegate will receive events caused by user action which need to
// be persisted in the per-tab UI state.
- class Delegate {
- public:
- virtual ~Delegate() {}
-
- virtual void ToggleAccept(int index, bool new_value) = 0;
- virtual void Accept() = 0;
- virtual void Deny() = 0;
- virtual void Closing() = 0;
- };
-
- typedef base::Callback<scoped_ptr<PermissionBubbleView>(Browser*)> Factory;
+ typedef base::Callback<scoped_ptr<BubbleUI>(PermissionBubbleDelegate*)>
+ Factory;
// Create a platform specific instance.
- static scoped_ptr<PermissionBubbleView> Create(Browser* browser);
- virtual ~PermissionBubbleView() {}
+ static scoped_ptr<BubbleUI> Create(PermissionBubbleDelegate* delegate);
// Sets the delegate which will receive UI events forwarded from the bubble.
- virtual void SetDelegate(Delegate* delegate) = 0;
-
- // Causes the bubble to show up with the given contents. This method may be
- // called with mostly-identical contents to the existing contents. This can
- // happen, for instance, if a new permission is requested and
- // CanAcceptRequestUpdate() is true.
- // Important: the view must not store any of the request objects it receives
- // in this call.
- virtual void Show(
- const std::vector<PermissionBubbleRequest*>& requests,
- const std::vector<bool>& accept_state) = 0;
+ virtual void SetDelegate(PermissionBubbleDelegate* delegate) = 0;
// Returns true if the view can accept a new Show() command to coalesce
// requests. Currently the policy is that this should return true if the view
// is being shown and the mouse is not over the view area (!IsMouseHovered).
virtual bool CanAcceptRequestUpdate() = 0;
- // Hides the permission bubble.
- virtual void Hide() = 0;
-
// Returns true if there is a bubble currently showing.
virtual bool IsVisible() = 0;
- // Updates where the bubble should be anchored. ex: fullscreen toggle.
- virtual void UpdateAnchorPosition() = 0;
-
// Returns a reference to this bubble's native window.
- // TODO(hcarmona): Remove this as part of the bubble API work.
virtual gfx::NativeWindow GetNativeWindow() = 0;
};

Powered by Google App Engine
This is Rietveld 408576698