| Index: chrome/browser/ui/views/native_web_contents_modal_dialog_manager_views.cc
|
| diff --git a/chrome/browser/ui/views/native_web_contents_modal_dialog_manager_views.cc b/chrome/browser/ui/views/native_web_contents_modal_dialog_manager_views.cc
|
| deleted file mode 100644
|
| index 9894085a151844d9710fa30b7e3c4bbe1dbb68b1..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/ui/views/native_web_contents_modal_dialog_manager_views.cc
|
| +++ /dev/null
|
| @@ -1,220 +0,0 @@
|
| -// Copyright 2016 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/ui/views/native_web_contents_modal_dialog_manager_views.h"
|
| -
|
| -#include <memory>
|
| -
|
| -#include "chrome/browser/platform_util.h"
|
| -#include "components/constrained_window/constrained_window_views.h"
|
| -#include "components/web_modal/web_contents_modal_dialog_host.h"
|
| -#include "components/web_modal/web_contents_modal_dialog_manager.h"
|
| -#include "ui/gfx/geometry/point.h"
|
| -#include "ui/gfx/geometry/size.h"
|
| -#include "ui/views/border.h"
|
| -#include "ui/views/widget/widget.h"
|
| -#include "ui/views/widget/widget_delegate.h"
|
| -#include "ui/views/window/dialog_delegate.h"
|
| -#include "ui/views/window/non_client_view.h"
|
| -
|
| -#if defined(USE_AURA)
|
| -#include "ui/aura/client/aura_constants.h"
|
| -#include "ui/aura/window.h"
|
| -#include "ui/wm/core/visibility_controller.h"
|
| -#include "ui/wm/core/window_animations.h"
|
| -#include "ui/wm/core/window_modality_controller.h"
|
| -#endif
|
| -
|
| -using web_modal::SingleWebContentsDialogManager;
|
| -using web_modal::SingleWebContentsDialogManagerDelegate;
|
| -using web_modal::WebContentsModalDialogHost;
|
| -using web_modal::ModalDialogHostObserver;
|
| -
|
| -NativeWebContentsModalDialogManagerViews::
|
| - NativeWebContentsModalDialogManagerViews(
|
| - gfx::NativeWindow dialog,
|
| - SingleWebContentsDialogManagerDelegate* native_delegate)
|
| - : native_delegate_(native_delegate),
|
| - dialog_(dialog),
|
| - host_(NULL),
|
| - host_destroying_(false) {
|
| - ManageDialog();
|
| -}
|
| -
|
| -NativeWebContentsModalDialogManagerViews::
|
| - ~NativeWebContentsModalDialogManagerViews() {
|
| - if (host_)
|
| - host_->RemoveObserver(this);
|
| -
|
| - for (std::set<views::Widget*>::iterator it = observed_widgets_.begin();
|
| - it != observed_widgets_.end(); ++it) {
|
| - (*it)->RemoveObserver(this);
|
| - }
|
| -}
|
| -
|
| -void NativeWebContentsModalDialogManagerViews::ManageDialog() {
|
| - views::Widget* widget = GetWidget(dialog());
|
| - widget->AddObserver(this);
|
| - observed_widgets_.insert(widget);
|
| - widget->set_movement_disabled(true);
|
| -
|
| -#if defined(USE_AURA)
|
| - // TODO(wittman): remove once the new visual style is complete
|
| - widget->GetNativeWindow()->SetProperty(aura::client::kConstrainedWindowKey,
|
| - true);
|
| -
|
| - wm::SetWindowVisibilityAnimationType(
|
| - widget->GetNativeWindow(), wm::WINDOW_VISIBILITY_ANIMATION_TYPE_ROTATE);
|
| -
|
| - gfx::NativeView parent = platform_util::GetParent(widget->GetNativeView());
|
| - wm::SetChildWindowVisibilityChangesAnimated(parent);
|
| - // No animations should get performed on the window since that will re-order
|
| - // the window stack which will then cause many problems.
|
| - if (parent && parent->parent()) {
|
| - parent->parent()->SetProperty(aura::client::kAnimationsDisabledKey, true);
|
| - }
|
| -
|
| - wm::SetModalParent(widget->GetNativeWindow(),
|
| - native_delegate_->GetWebContents()->GetNativeView());
|
| -#endif
|
| -}
|
| -
|
| -// SingleWebContentsDialogManager:
|
| -
|
| -void NativeWebContentsModalDialogManagerViews::Show() {
|
| - // The host destroying means the dialogs will be destroyed in short order.
|
| - // Avoid showing dialogs at this point as the necessary native window
|
| - // services may not be present.
|
| - if (host_destroying_)
|
| - return;
|
| -
|
| - views::Widget* widget = GetWidget(dialog());
|
| -#if defined(USE_AURA)
|
| - std::unique_ptr<wm::SuspendChildWindowVisibilityAnimations> suspend;
|
| - if (shown_widgets_.find(widget) != shown_widgets_.end()) {
|
| - suspend.reset(new wm::SuspendChildWindowVisibilityAnimations(
|
| - widget->GetNativeWindow()->parent()));
|
| - }
|
| -#endif
|
| - // Host may be NULL during tab drag on Views/Win32.
|
| - if (host_)
|
| - constrained_window::UpdateWebContentsModalDialogPosition(widget, host_);
|
| - widget->Show();
|
| - Focus();
|
| -
|
| -#if defined(USE_AURA)
|
| - // TODO(pkotwicz): Control the z-order of the constrained dialog via
|
| - // views::kHostViewKey. We will need to ensure that the parent window's
|
| - // shadows are below the constrained dialog in z-order when we do this.
|
| - shown_widgets_.insert(widget);
|
| -#endif
|
| -}
|
| -
|
| -void NativeWebContentsModalDialogManagerViews::Hide() {
|
| - views::Widget* widget = GetWidget(dialog());
|
| -#if defined(USE_AURA)
|
| - std::unique_ptr<wm::SuspendChildWindowVisibilityAnimations> suspend;
|
| - suspend.reset(new wm::SuspendChildWindowVisibilityAnimations(
|
| - widget->GetNativeWindow()->parent()));
|
| -#endif
|
| - widget->Hide();
|
| -}
|
| -
|
| -void NativeWebContentsModalDialogManagerViews::Close() {
|
| - GetWidget(dialog())->Close();
|
| -}
|
| -
|
| -void NativeWebContentsModalDialogManagerViews::Focus() {
|
| - views::Widget* widget = GetWidget(dialog());
|
| - if (widget->widget_delegate() &&
|
| - widget->widget_delegate()->GetInitiallyFocusedView())
|
| - widget->widget_delegate()->GetInitiallyFocusedView()->RequestFocus();
|
| -#if defined(USE_AURA)
|
| - // We don't necessarily have a RootWindow yet.
|
| - if (widget->GetNativeView()->GetRootWindow())
|
| - widget->GetNativeView()->Focus();
|
| -#endif
|
| -}
|
| -
|
| -void NativeWebContentsModalDialogManagerViews::Pulse() {}
|
| -
|
| -// web_modal::ModalDialogHostObserver:
|
| -
|
| -void NativeWebContentsModalDialogManagerViews::OnPositionRequiresUpdate() {
|
| - DCHECK(host_);
|
| -
|
| - for (std::set<views::Widget*>::iterator it = observed_widgets_.begin();
|
| - it != observed_widgets_.end(); ++it) {
|
| - constrained_window::UpdateWebContentsModalDialogPosition(*it, host_);
|
| - }
|
| -}
|
| -
|
| -void NativeWebContentsModalDialogManagerViews::OnHostDestroying() {
|
| - host_->RemoveObserver(this);
|
| - host_ = NULL;
|
| - host_destroying_ = true;
|
| -}
|
| -
|
| -// views::WidgetObserver:
|
| -
|
| -void NativeWebContentsModalDialogManagerViews::OnWidgetClosing(
|
| - views::Widget* widget) {
|
| - WidgetClosing(widget);
|
| -}
|
| -
|
| -void NativeWebContentsModalDialogManagerViews::OnWidgetDestroying(
|
| - views::Widget* widget) {
|
| - WidgetClosing(widget);
|
| -}
|
| -
|
| -void NativeWebContentsModalDialogManagerViews::HostChanged(
|
| - WebContentsModalDialogHost* new_host) {
|
| - if (host_)
|
| - host_->RemoveObserver(this);
|
| -
|
| - host_ = new_host;
|
| -
|
| - // |host_| may be null during WebContents destruction or Win32 tab dragging.
|
| - if (host_) {
|
| - host_->AddObserver(this);
|
| -
|
| - for (std::set<views::Widget*>::iterator it = observed_widgets_.begin();
|
| - it != observed_widgets_.end(); ++it) {
|
| - views::Widget::ReparentNativeView((*it)->GetNativeView(),
|
| - host_->GetHostView());
|
| - }
|
| -
|
| - OnPositionRequiresUpdate();
|
| - }
|
| -}
|
| -
|
| -gfx::NativeWindow NativeWebContentsModalDialogManagerViews::dialog() {
|
| - return dialog_;
|
| -}
|
| -
|
| -views::Widget* NativeWebContentsModalDialogManagerViews::GetWidget(
|
| - gfx::NativeWindow dialog) {
|
| - views::Widget* widget = views::Widget::GetWidgetForNativeWindow(dialog);
|
| - DCHECK(widget);
|
| - return widget;
|
| -}
|
| -
|
| -void NativeWebContentsModalDialogManagerViews::WidgetClosing(
|
| - views::Widget* widget) {
|
| -#if defined(USE_AURA)
|
| - gfx::NativeView view = platform_util::GetParent(widget->GetNativeView());
|
| - // Allow the parent to animate again.
|
| - if (view && view->parent())
|
| - view->parent()->ClearProperty(aura::client::kAnimationsDisabledKey);
|
| -#endif
|
| - widget->RemoveObserver(this);
|
| - observed_widgets_.erase(widget);
|
| -
|
| -#if defined(USE_AURA)
|
| - shown_widgets_.erase(widget);
|
| -#endif
|
| -
|
| - // Will cause this object to be deleted.
|
| - native_delegate_->WillClose(widget->GetNativeWindow());
|
| -}
|
|
|