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(); |
} |