OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/passwords/manage_passwords_bubble_view.h" | 5 #include "chrome/browser/ui/views/passwords/manage_passwords_bubble_view.h" |
6 | 6 |
7 #include "chrome/browser/chrome_notification_types.h" | 7 #include "chrome/browser/chrome_notification_types.h" |
8 #include "chrome/browser/ui/browser.h" | 8 #include "chrome/browser/ui/browser.h" |
9 #include "chrome/browser/ui/browser_finder.h" | 9 #include "chrome/browser/ui/browser_finder.h" |
10 #include "chrome/browser/ui/browser_window.h" | 10 #include "chrome/browser/ui/browser_window.h" |
11 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" | 11 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" |
12 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h" | 12 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h" |
13 #include "chrome/browser/ui/views/frame/browser_view.h" | 13 #include "chrome/browser/ui/views/frame/browser_view.h" |
14 #include "chrome/browser/ui/views/location_bar/location_bar_view.h" | 14 #include "chrome/browser/ui/views/location_bar/location_bar_view.h" |
15 #include "chrome/browser/ui/views/passwords/manage_password_item_view.h" | 15 #include "chrome/browser/ui/views/passwords/manage_password_item_view.h" |
16 #include "chrome/browser/ui/views/passwords/manage_passwords_icon_view.h" | 16 #include "chrome/browser/ui/views/passwords/manage_passwords_icon_view.h" |
17 #include "chrome/grit/generated_resources.h" | 17 #include "chrome/grit/generated_resources.h" |
18 #include "components/password_manager/core/common/password_manager_ui.h" | 18 #include "components/password_manager/core/common/password_manager_ui.h" |
19 #include "content/public/browser/notification_source.h" | 19 #include "content/public/browser/notification_source.h" |
20 #include "content/public/browser/web_contents.h" | |
21 #include "ui/aura/window.h" | |
20 #include "ui/base/l10n/l10n_util.h" | 22 #include "ui/base/l10n/l10n_util.h" |
21 #include "ui/base/models/combobox_model.h" | 23 #include "ui/base/models/combobox_model.h" |
22 #include "ui/base/resource/resource_bundle.h" | 24 #include "ui/base/resource/resource_bundle.h" |
23 #include "ui/gfx/text_utils.h" | 25 #include "ui/gfx/text_utils.h" |
24 #include "ui/views/controls/button/blue_button.h" | 26 #include "ui/views/controls/button/blue_button.h" |
25 #include "ui/views/controls/button/label_button.h" | 27 #include "ui/views/controls/button/label_button.h" |
26 #include "ui/views/controls/combobox/combobox.h" | 28 #include "ui/views/controls/combobox/combobox.h" |
27 #include "ui/views/controls/styled_label.h" | 29 #include "ui/views/controls/styled_label.h" |
28 #include "ui/views/layout/fill_layout.h" | 30 #include "ui/views/layout/fill_layout.h" |
29 #include "ui/views/layout/grid_layout.h" | 31 #include "ui/views/layout/grid_layout.h" |
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
505 parent_->Close(); | 507 parent_->Close(); |
506 } | 508 } |
507 | 509 |
508 void ManagePasswordsBubbleView::SaveConfirmationView::ButtonPressed( | 510 void ManagePasswordsBubbleView::SaveConfirmationView::ButtonPressed( |
509 views::Button* sender, const ui::Event& event) { | 511 views::Button* sender, const ui::Event& event) { |
510 DCHECK_EQ(sender, ok_button_); | 512 DCHECK_EQ(sender, ok_button_); |
511 parent_->model()->OnOKClicked(); | 513 parent_->model()->OnOKClicked(); |
512 parent_->Close(); | 514 parent_->Close(); |
513 } | 515 } |
514 | 516 |
517 // ManagePasswordsBubbleView::WebContentMouseHandler -------------------------- | |
518 | |
519 // The class listens WebContentsView for mouse clicks. | |
vabr (Chromium)
2014/08/27 16:43:05
nit: listens -> listens to
vabr (Chromium)
2014/08/27 16:43:05
nit: Could you extend the comment to say what the
vasilii
2014/08/27 17:24:24
Done.
vasilii
2014/08/27 17:24:24
Done.
| |
520 class ManagePasswordsBubbleView::WebContentMouseHandler | |
521 : public ui::EventHandler { | |
522 public: | |
523 explicit WebContentMouseHandler(ManagePasswordsBubbleView* bubble) | |
524 : bubble_(bubble) { | |
525 GetWebContentsWindow()->AddPreTargetHandler(this); | |
526 } | |
527 | |
528 virtual ~WebContentMouseHandler() { | |
529 aura::Window* window = GetWebContentsWindow(); | |
530 if (window) | |
531 window->RemovePreTargetHandler(this); | |
532 } | |
533 | |
534 virtual void OnMouseEvent(ui::MouseEvent* event) OVERRIDE { | |
535 if (event->type() == ui::ET_MOUSE_PRESSED) | |
536 bubble_->OnWebContentClicked(); | |
537 } | |
538 | |
539 private: | |
540 aura::Window* GetWebContentsWindow() { | |
541 content::WebContents* web_contents = bubble_->model()->web_contents(); | |
542 return web_contents ? web_contents->GetNativeView() : NULL; | |
543 } | |
544 | |
545 ManagePasswordsBubbleView* bubble_; | |
546 | |
547 DISALLOW_COPY_AND_ASSIGN(WebContentMouseHandler); | |
548 }; | |
549 | |
515 // ManagePasswordsBubbleView -------------------------------------------------- | 550 // ManagePasswordsBubbleView -------------------------------------------------- |
516 | 551 |
517 // static | 552 // static |
518 ManagePasswordsBubbleView* ManagePasswordsBubbleView::manage_passwords_bubble_ = | 553 ManagePasswordsBubbleView* ManagePasswordsBubbleView::manage_passwords_bubble_ = |
519 NULL; | 554 NULL; |
520 | 555 |
521 // static | 556 // static |
522 void ManagePasswordsBubbleView::ShowBubble(content::WebContents* web_contents, | 557 void ManagePasswordsBubbleView::ShowBubble(content::WebContents* web_contents, |
523 DisplayReason reason) { | 558 DisplayReason reason) { |
524 Browser* browser = chrome::FindBrowserWithWebContents(web_contents); | 559 Browser* browser = chrome::FindBrowserWithWebContents(web_contents); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
586 anchor_view ? views::BubbleBorder::TOP_RIGHT | 621 anchor_view ? views::BubbleBorder::TOP_RIGHT |
587 : views::BubbleBorder::NONE), | 622 : views::BubbleBorder::NONE), |
588 anchor_view_(anchor_view), | 623 anchor_view_(anchor_view), |
589 never_save_passwords_(false), | 624 never_save_passwords_(false), |
590 initially_focused_view_(NULL) { | 625 initially_focused_view_(NULL) { |
591 // Compensate for built-in vertical padding in the anchor view's image. | 626 // Compensate for built-in vertical padding in the anchor view's image. |
592 set_anchor_view_insets(gfx::Insets(5, 0, 5, 0)); | 627 set_anchor_view_insets(gfx::Insets(5, 0, 5, 0)); |
593 set_notify_enter_exit_on_child(true); | 628 set_notify_enter_exit_on_child(true); |
594 if (anchor_view) | 629 if (anchor_view) |
595 anchor_view->SetActive(true); | 630 anchor_view->SetActive(true); |
631 mouse_handler_.reset(new WebContentMouseHandler(this)); | |
596 } | 632 } |
597 | 633 |
598 ManagePasswordsBubbleView::~ManagePasswordsBubbleView() { | 634 ManagePasswordsBubbleView::~ManagePasswordsBubbleView() { |
599 if (anchor_view_) | 635 if (anchor_view_) |
600 anchor_view_->SetActive(false); | 636 anchor_view_->SetActive(false); |
601 } | 637 } |
602 | 638 |
603 void ManagePasswordsBubbleView::AdjustForFullscreen( | 639 void ManagePasswordsBubbleView::AdjustForFullscreen( |
604 const gfx::Rect& screen_bounds) { | 640 const gfx::Rect& screen_bounds) { |
605 if (GetAnchorView()) | 641 if (GetAnchorView()) |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
694 | 730 |
695 void ManagePasswordsBubbleView::StartTimerIfNecessary() { | 731 void ManagePasswordsBubbleView::StartTimerIfNecessary() { |
696 // Active bubble will stay visible until it loses focus. | 732 // Active bubble will stay visible until it loses focus. |
697 if (GetWidget()->IsActive()) | 733 if (GetWidget()->IsActive()) |
698 return; | 734 return; |
699 timer_.Start(FROM_HERE, | 735 timer_.Start(FROM_HERE, |
700 base::TimeDelta::FromSeconds(kBubbleCloseDelay), | 736 base::TimeDelta::FromSeconds(kBubbleCloseDelay), |
701 this, | 737 this, |
702 &ManagePasswordsBubbleView::Close); | 738 &ManagePasswordsBubbleView::Close); |
703 } | 739 } |
740 | |
741 void ManagePasswordsBubbleView::OnWebContentClicked() { | |
742 Close(); | |
743 } | |
OLD | NEW |