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