| Index: chrome/browser/ui/views/passwords/manage_passwords_bubble_view.cc
|
| diff --git a/chrome/browser/ui/views/passwords/manage_passwords_bubble_view.cc b/chrome/browser/ui/views/passwords/manage_passwords_bubble_view.cc
|
| index d3ebc2d3f5ca8d7b33fc4259186e144304d9ae5a..0d4f8f354ea852448f3dd5584b9aa46967853426 100644
|
| --- a/chrome/browser/ui/views/passwords/manage_passwords_bubble_view.cc
|
| +++ b/chrome/browser/ui/views/passwords/manage_passwords_bubble_view.cc
|
| @@ -4,21 +4,18 @@
|
|
|
| #include "chrome/browser/ui/views/passwords/manage_passwords_bubble_view.h"
|
|
|
| -#include "chrome/browser/chrome_notification_types.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/browser_finder.h"
|
| #include "chrome/browser/ui/exclusive_access/fullscreen_controller.h"
|
| #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h"
|
| +#include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h"
|
| #include "chrome/browser/ui/passwords/save_password_refusal_combobox_model.h"
|
| #include "chrome/browser/ui/views/frame/browser_view.h"
|
| -#include "chrome/browser/ui/views/location_bar/location_bar_view.h"
|
| #include "chrome/browser/ui/views/passwords/credentials_item_view.h"
|
| #include "chrome/browser/ui/views/passwords/manage_password_items_view.h"
|
| #include "chrome/browser/ui/views/passwords/manage_passwords_icon_view.h"
|
| #include "chrome/grit/generated_resources.h"
|
| -#include "content/public/browser/notification_source.h"
|
| #include "content/public/browser/render_view_host.h"
|
| -#include "content/public/browser/web_contents.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| #include "ui/base/resource/resource_bundle.h"
|
| #include "ui/views/controls/button/blue_button.h"
|
| @@ -989,9 +986,7 @@ ManagePasswordsBubbleView::ManagePasswordsBubbleView(
|
| ManagePasswordsIconView* anchor_view,
|
| DisplayReason reason)
|
| : ManagePasswordsBubble(web_contents, reason),
|
| - BubbleDelegateView(anchor_view,
|
| - anchor_view ? views::BubbleBorder::TOP_RIGHT
|
| - : views::BubbleBorder::NONE),
|
| + ManagedFullScreenBubbleDelegateView(anchor_view, web_contents),
|
| anchor_view_(anchor_view),
|
| initially_focused_view_(NULL) {
|
| // Compensate for built-in vertical padding in the anchor view's image.
|
| @@ -999,13 +994,6 @@ ManagePasswordsBubbleView::ManagePasswordsBubbleView(
|
| if (anchor_view)
|
| anchor_view->SetActive(true);
|
| mouse_handler_.reset(new WebContentMouseHandler(this));
|
| -
|
| - // Add observers to close the bubble if the fullscreen state changes.
|
| - Browser* browser = chrome::FindBrowserWithWebContents(web_contents);
|
| - registrar_.Add(
|
| - this,
|
| - chrome::NOTIFICATION_FULLSCREEN_CHANGED,
|
| - content::Source<FullscreenController>(browser->fullscreen_controller()));
|
| }
|
|
|
| ManagePasswordsBubbleView::~ManagePasswordsBubbleView() {
|
| @@ -1013,23 +1001,27 @@ ManagePasswordsBubbleView::~ManagePasswordsBubbleView() {
|
| anchor_view_->SetActive(false);
|
| }
|
|
|
| -void ManagePasswordsBubbleView::AdjustForFullscreen(
|
| - const gfx::Rect& screen_bounds) {
|
| - if (GetAnchorView())
|
| - return;
|
| +views::View* ManagePasswordsBubbleView::GetInitiallyFocusedView() {
|
| + return initially_focused_view_;
|
| +}
|
| +
|
| +void ManagePasswordsBubbleView::Init() {
|
| + views::FillLayout* layout = new views::FillLayout();
|
| + SetLayoutManager(layout);
|
| +
|
| + Refresh();
|
| +}
|
|
|
| - // The bubble's padding from the screen edge, used in fullscreen.
|
| - const int kFullscreenPaddingEnd = 20;
|
| - const size_t bubble_half_width = width() / 2;
|
| - const int x_pos = base::i18n::IsRTL() ?
|
| - screen_bounds.x() + bubble_half_width + kFullscreenPaddingEnd :
|
| - screen_bounds.right() - bubble_half_width - kFullscreenPaddingEnd;
|
| - SetAnchorRect(gfx::Rect(x_pos, screen_bounds.y(), 0, 0));
|
| +void ManagePasswordsBubbleView::WindowClosing() {
|
| + // Close() closes the window asynchronously, so by the time we reach here,
|
| + // |manage_passwords_bubble_| may have already been reset.
|
| + if (manage_passwords_bubble_ == this)
|
| + manage_passwords_bubble_ = NULL;
|
| }
|
|
|
| void ManagePasswordsBubbleView::Close() {
|
| mouse_handler_.reset();
|
| - GetWidget()->Close();
|
| + ManagedFullScreenBubbleDelegateView::Close();
|
| }
|
|
|
| void ManagePasswordsBubbleView::Refresh() {
|
| @@ -1061,16 +1053,6 @@ void ManagePasswordsBubbleView::Refresh() {
|
| SizeToContents();
|
| }
|
|
|
| -void ManagePasswordsBubbleView::NotifyNeverForThisSiteClicked() {
|
| - if (model()->best_matches().empty()) {
|
| - // Skip confirmation if there are no existing passwords for this site.
|
| - NotifyConfirmedNeverForThisSite();
|
| - } else {
|
| - model()->OnConfirmationForNeverForThisSite();
|
| - Refresh();
|
| - }
|
| -}
|
| -
|
| void ManagePasswordsBubbleView::NotifyConfirmedNeverForThisSite() {
|
| model()->OnNeverForThisSiteClicked();
|
| Close();
|
| @@ -1081,29 +1063,12 @@ void ManagePasswordsBubbleView::NotifyUndoNeverForThisSite() {
|
| Refresh();
|
| }
|
|
|
| -void ManagePasswordsBubbleView::Init() {
|
| - views::FillLayout* layout = new views::FillLayout();
|
| - SetLayoutManager(layout);
|
| -
|
| - Refresh();
|
| -}
|
| -
|
| -void ManagePasswordsBubbleView::WindowClosing() {
|
| - // Close() closes the window asynchronously, so by the time we reach here,
|
| - // |manage_passwords_bubble_| may have already been reset.
|
| - if (manage_passwords_bubble_ == this)
|
| - manage_passwords_bubble_ = NULL;
|
| -}
|
| -
|
| -views::View* ManagePasswordsBubbleView::GetInitiallyFocusedView() {
|
| - return initially_focused_view_;
|
| -}
|
| -
|
| -void ManagePasswordsBubbleView::Observe(
|
| - int type,
|
| - const content::NotificationSource& source,
|
| - const content::NotificationDetails& details) {
|
| - DCHECK_EQ(type, chrome::NOTIFICATION_FULLSCREEN_CHANGED);
|
| - GetWidget()->SetVisibilityAnimationTransition(views::Widget::ANIMATE_NONE);
|
| - CloseBubble();
|
| +void ManagePasswordsBubbleView::NotifyNeverForThisSiteClicked() {
|
| + if (model()->best_matches().empty()) {
|
| + // Skip confirmation if there are no existing passwords for this site.
|
| + NotifyConfirmedNeverForThisSite();
|
| + } else {
|
| + model()->OnConfirmationForNeverForThisSite();
|
| + Refresh();
|
| + }
|
| }
|
|
|