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

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: Partial 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..65fe6b4db22ae6a6fe645369095338c5c568c868 100644
--- a/chrome/browser/ui/website_settings/permission_bubble_view.h
+++ b/chrome/browser/ui/website_settings/permission_bubble_view.h
@@ -9,66 +9,32 @@
#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 PermissionBubbleDelegate;
class PermissionBubbleRequest;
// 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 {
please use gerrit instead 2015/08/07 23:02:27 nuke
hcarmona 2015/08/11 02:35:46 Done.
+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*, Browser*)> Factory;
// Create a platform specific instance.
- static scoped_ptr<PermissionBubbleView> Create(Browser* browser);
- virtual ~PermissionBubbleView() {}
-
- // 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;
+ static scoped_ptr<BubbleUI> Create(
+ PermissionBubbleDelegate* delegate, Browser* browser);
// 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;
};
#endif // CHROME_BROWSER_UI_WEBSITE_SETTINGS_PERMISSION_BUBBLE_VIEW_H_

Powered by Google App Engine
This is Rietveld 408576698