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

Unified Diff: chrome/browser/ui/views/website_settings/permissions_bubble_view.cc

Issue 962453002: Update permission bubble anchor when omnibar is hidden (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix issue Created 5 years, 10 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/views/website_settings/permissions_bubble_view.cc
diff --git a/chrome/browser/ui/views/website_settings/permissions_bubble_view.cc b/chrome/browser/ui/views/website_settings/permissions_bubble_view.cc
index 1bf465a5a919e62c962bdd7ecf46be4c7c8225bb..58634efb67671756ea22c405b91e8dd81f754f8a 100644
--- a/chrome/browser/ui/views/website_settings/permissions_bubble_view.cc
+++ b/chrome/browser/ui/views/website_settings/permissions_bubble_view.cc
@@ -140,7 +140,8 @@ class PermissionsBubbleDelegateView : public views::BubbleDelegateView,
public PermissionCombobox::Listener {
public:
PermissionsBubbleDelegateView(
- views::View* anchor,
+ views::View* anchor_view,
+ views::BubbleBorder::Arrow anchor_arrow,
PermissionBubbleViewViews* owner,
const std::string& languages,
const std::vector<PermissionBubbleRequest*>& requests,
@@ -176,12 +177,13 @@ class PermissionsBubbleDelegateView : public views::BubbleDelegateView,
};
PermissionsBubbleDelegateView::PermissionsBubbleDelegateView(
- views::View* anchor,
+ views::View* anchor_view,
+ views::BubbleBorder::Arrow anchor_arrow,
PermissionBubbleViewViews* owner,
const std::string& languages,
const std::vector<PermissionBubbleRequest*>& requests,
const std::vector<bool>& accept_state)
- : views::BubbleDelegateView(anchor, views::BubbleBorder::TOP_LEFT),
+ : views::BubbleDelegateView(anchor_view, anchor_arrow),
owner_(owner),
allow_(NULL),
deny_(NULL),
@@ -353,9 +355,9 @@ void PermissionsBubbleDelegateView::PermissionSelectionChanged(
// PermissionBubbleViewViews
PermissionBubbleViewViews::PermissionBubbleViewViews(
- views::View* anchor_view,
const std::string& languages)
- : anchor_view_(anchor_view),
+ : anchor_view_(NULL),
+ anchor_arrow_(views::BubbleBorder::NONE),
delegate_(NULL),
bubble_delegate_(NULL),
languages_(languages) {}
@@ -365,6 +367,13 @@ PermissionBubbleViewViews::~PermissionBubbleViewViews() {
delegate_->SetView(NULL);
}
+void PermissionBubbleViewViews::SetAnchor(
+ views::View* view,
+ views::BubbleBorder::Arrow arrow) {
+ anchor_view_ = view;
groby-ooo-7-16 2015/02/28 00:25:12 This seems not right. doesn't the BubbleDelegateVi
hcarmona 2015/02/28 01:14:16 The BubbleDelegateView is created each time that |
+ anchor_arrow_ = arrow;
+}
+
void PermissionBubbleViewViews::SetDelegate(Delegate* delegate) {
delegate_ = delegate;
}
@@ -375,9 +384,11 @@ void PermissionBubbleViewViews::Show(
if (bubble_delegate_ != NULL)
bubble_delegate_->Close();
+ CHECK(anchor_view_);
groby-ooo-7-16 2015/02/28 00:25:12 Really? CHECK? We want this to crash instead of di
hcarmona 2015/02/28 01:14:16 No, crash would be worse than displaying the bubbl
+
bubble_delegate_ =
- new PermissionsBubbleDelegateView(anchor_view_, this, languages_,
- requests, values);
+ new PermissionsBubbleDelegateView(anchor_view_, anchor_arrow_, this,
+ languages_, requests, values);
views::BubbleDelegateView::CreateBubble(bubble_delegate_)->Show();
bubble_delegate_->SizeToContents();
}

Powered by Google App Engine
This is Rietveld 408576698