Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/views/website_settings/permissions_bubble_view.h" | 5 #include "chrome/browser/ui/views/website_settings/permissions_bubble_view.h" |
| 6 | 6 |
| 7 #include "base/strings/string16.h" | 7 #include "base/strings/string16.h" |
| 8 #include "chrome/browser/ui/views/website_settings/permission_selector_view.h" | 8 #include "chrome/browser/ui/views/website_settings/permission_selector_view.h" |
| 9 #include "chrome/browser/ui/views/website_settings/permission_selector_view_obse rver.h" | 9 #include "chrome/browser/ui/views/website_settings/permission_selector_view_obse rver.h" |
| 10 #include "chrome/browser/ui/website_settings/permission_bubble_request.h" | 10 #include "chrome/browser/ui/website_settings/permission_bubble_request.h" |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 133 index_, permission.setting == CONTENT_SETTING_ALLOW); | 133 index_, permission.setting == CONTENT_SETTING_ALLOW); |
| 134 } | 134 } |
| 135 | 135 |
| 136 /////////////////////////////////////////////////////////////////////////////// | 136 /////////////////////////////////////////////////////////////////////////////// |
| 137 // View implementation for the permissions bubble. | 137 // View implementation for the permissions bubble. |
| 138 class PermissionsBubbleDelegateView : public views::BubbleDelegateView, | 138 class PermissionsBubbleDelegateView : public views::BubbleDelegateView, |
| 139 public views::ButtonListener, | 139 public views::ButtonListener, |
| 140 public PermissionCombobox::Listener { | 140 public PermissionCombobox::Listener { |
| 141 public: | 141 public: |
| 142 PermissionsBubbleDelegateView( | 142 PermissionsBubbleDelegateView( |
| 143 views::View* anchor, | 143 views::View* anchor_view, |
| 144 views::BubbleBorder::Arrow anchor_arrow, | |
| 144 PermissionBubbleViewViews* owner, | 145 PermissionBubbleViewViews* owner, |
| 145 const std::string& languages, | 146 const std::string& languages, |
| 146 const std::vector<PermissionBubbleRequest*>& requests, | 147 const std::vector<PermissionBubbleRequest*>& requests, |
| 147 const std::vector<bool>& accept_state); | 148 const std::vector<bool>& accept_state); |
| 148 ~PermissionsBubbleDelegateView() override; | 149 ~PermissionsBubbleDelegateView() override; |
| 149 | 150 |
| 150 void Close(); | 151 void Close(); |
| 151 void SizeToContents(); | 152 void SizeToContents(); |
| 152 | 153 |
| 153 // BubbleDelegateView: | 154 // BubbleDelegateView: |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 169 views::Button* deny_; | 170 views::Button* deny_; |
| 170 views::Combobox* allow_combobox_; | 171 views::Combobox* allow_combobox_; |
| 171 base::string16 hostname_; | 172 base::string16 hostname_; |
| 172 scoped_ptr<PermissionMenuModel> menu_button_model_; | 173 scoped_ptr<PermissionMenuModel> menu_button_model_; |
| 173 std::vector<PermissionCombobox*> customize_comboboxes_; | 174 std::vector<PermissionCombobox*> customize_comboboxes_; |
| 174 | 175 |
| 175 DISALLOW_COPY_AND_ASSIGN(PermissionsBubbleDelegateView); | 176 DISALLOW_COPY_AND_ASSIGN(PermissionsBubbleDelegateView); |
| 176 }; | 177 }; |
| 177 | 178 |
| 178 PermissionsBubbleDelegateView::PermissionsBubbleDelegateView( | 179 PermissionsBubbleDelegateView::PermissionsBubbleDelegateView( |
| 179 views::View* anchor, | 180 views::View* anchor_view, |
| 181 views::BubbleBorder::Arrow anchor_arrow, | |
| 180 PermissionBubbleViewViews* owner, | 182 PermissionBubbleViewViews* owner, |
| 181 const std::string& languages, | 183 const std::string& languages, |
| 182 const std::vector<PermissionBubbleRequest*>& requests, | 184 const std::vector<PermissionBubbleRequest*>& requests, |
| 183 const std::vector<bool>& accept_state) | 185 const std::vector<bool>& accept_state) |
| 184 : views::BubbleDelegateView(anchor, views::BubbleBorder::TOP_LEFT), | 186 : views::BubbleDelegateView(anchor_view, anchor_arrow), |
| 185 owner_(owner), | 187 owner_(owner), |
| 186 allow_(NULL), | 188 allow_(NULL), |
| 187 deny_(NULL), | 189 deny_(NULL), |
| 188 allow_combobox_(NULL) { | 190 allow_combobox_(NULL) { |
| 189 DCHECK(!requests.empty()); | 191 DCHECK(!requests.empty()); |
| 190 | 192 |
| 191 RemoveAllChildViews(true); | 193 RemoveAllChildViews(true); |
| 192 customize_comboboxes_.clear(); | 194 customize_comboboxes_.clear(); |
| 193 set_close_on_esc(true); | 195 set_close_on_esc(true); |
| 194 set_close_on_deactivate(false); | 196 set_close_on_deactivate(false); |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 346 | 348 |
| 347 void PermissionsBubbleDelegateView::PermissionSelectionChanged( | 349 void PermissionsBubbleDelegateView::PermissionSelectionChanged( |
| 348 int index, bool allowed) { | 350 int index, bool allowed) { |
| 349 owner_->Toggle(index, allowed); | 351 owner_->Toggle(index, allowed); |
| 350 } | 352 } |
| 351 | 353 |
| 352 ////////////////////////////////////////////////////////////////////////////// | 354 ////////////////////////////////////////////////////////////////////////////// |
| 353 // PermissionBubbleViewViews | 355 // PermissionBubbleViewViews |
| 354 | 356 |
| 355 PermissionBubbleViewViews::PermissionBubbleViewViews( | 357 PermissionBubbleViewViews::PermissionBubbleViewViews( |
| 356 views::View* anchor_view, | |
| 357 const std::string& languages) | 358 const std::string& languages) |
| 358 : anchor_view_(anchor_view), | 359 : anchor_view_(NULL), |
| 360 anchor_arrow_(views::BubbleBorder::NONE), | |
| 359 delegate_(NULL), | 361 delegate_(NULL), |
| 360 bubble_delegate_(NULL), | 362 bubble_delegate_(NULL), |
| 361 languages_(languages) {} | 363 languages_(languages) {} |
| 362 | 364 |
| 363 PermissionBubbleViewViews::~PermissionBubbleViewViews() { | 365 PermissionBubbleViewViews::~PermissionBubbleViewViews() { |
| 364 if (delegate_) | 366 if (delegate_) |
| 365 delegate_->SetView(NULL); | 367 delegate_->SetView(NULL); |
| 366 } | 368 } |
| 367 | 369 |
| 370 void PermissionBubbleViewViews::SetAnchor( | |
| 371 views::View* view, | |
| 372 views::BubbleBorder::Arrow arrow) { | |
| 373 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 |
| |
| 374 anchor_arrow_ = arrow; | |
| 375 } | |
| 376 | |
| 368 void PermissionBubbleViewViews::SetDelegate(Delegate* delegate) { | 377 void PermissionBubbleViewViews::SetDelegate(Delegate* delegate) { |
| 369 delegate_ = delegate; | 378 delegate_ = delegate; |
| 370 } | 379 } |
| 371 | 380 |
| 372 void PermissionBubbleViewViews::Show( | 381 void PermissionBubbleViewViews::Show( |
| 373 const std::vector<PermissionBubbleRequest*>& requests, | 382 const std::vector<PermissionBubbleRequest*>& requests, |
| 374 const std::vector<bool>& values) { | 383 const std::vector<bool>& values) { |
| 375 if (bubble_delegate_ != NULL) | 384 if (bubble_delegate_ != NULL) |
| 376 bubble_delegate_->Close(); | 385 bubble_delegate_->Close(); |
| 377 | 386 |
| 387 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
| |
| 388 | |
| 378 bubble_delegate_ = | 389 bubble_delegate_ = |
| 379 new PermissionsBubbleDelegateView(anchor_view_, this, languages_, | 390 new PermissionsBubbleDelegateView(anchor_view_, anchor_arrow_, this, |
| 380 requests, values); | 391 languages_, requests, values); |
| 381 views::BubbleDelegateView::CreateBubble(bubble_delegate_)->Show(); | 392 views::BubbleDelegateView::CreateBubble(bubble_delegate_)->Show(); |
| 382 bubble_delegate_->SizeToContents(); | 393 bubble_delegate_->SizeToContents(); |
| 383 } | 394 } |
| 384 | 395 |
| 385 bool PermissionBubbleViewViews::CanAcceptRequestUpdate() { | 396 bool PermissionBubbleViewViews::CanAcceptRequestUpdate() { |
| 386 return !(bubble_delegate_ && bubble_delegate_->IsMouseHovered()); | 397 return !(bubble_delegate_ && bubble_delegate_->IsMouseHovered()); |
| 387 } | 398 } |
| 388 | 399 |
| 389 void PermissionBubbleViewViews::Hide() { | 400 void PermissionBubbleViewViews::Hide() { |
| 390 if (bubble_delegate_) { | 401 if (bubble_delegate_) { |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 411 | 422 |
| 412 void PermissionBubbleViewViews::Accept() { | 423 void PermissionBubbleViewViews::Accept() { |
| 413 if (delegate_) | 424 if (delegate_) |
| 414 delegate_->Accept(); | 425 delegate_->Accept(); |
| 415 } | 426 } |
| 416 | 427 |
| 417 void PermissionBubbleViewViews::Deny() { | 428 void PermissionBubbleViewViews::Deny() { |
| 418 if (delegate_) | 429 if (delegate_) |
| 419 delegate_->Deny(); | 430 delegate_->Deny(); |
| 420 } | 431 } |
| OLD | NEW |