| Index: athena/extensions/athena_constrained_window_views_client.cc
|
| diff --git a/athena/extensions/athena_constrained_window_views_client.cc b/athena/extensions/athena_constrained_window_views_client.cc
|
| deleted file mode 100644
|
| index 7a89d53857da9c8313dfcb3bef975f87df9ee477..0000000000000000000000000000000000000000
|
| --- a/athena/extensions/athena_constrained_window_views_client.cc
|
| +++ /dev/null
|
| @@ -1,144 +0,0 @@
|
| -// Copyright 2014 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 "athena/extensions/athena_constrained_window_views_client.h"
|
| -
|
| -#include "athena/activity/public/activity.h"
|
| -#include "athena/activity/public/activity_manager.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/observer_list.h"
|
| -#include "components/constrained_window/constrained_window_views.h"
|
| -#include "components/constrained_window/constrained_window_views_client.h"
|
| -#include "components/web_modal/web_contents_modal_dialog_host.h"
|
| -#include "extensions/browser/guest_view/guest_view_base.h"
|
| -#include "ui/aura/window.h"
|
| -#include "ui/aura/window_observer.h"
|
| -#include "ui/aura/window_property.h"
|
| -
|
| -DECLARE_WINDOW_PROPERTY_TYPE(web_modal::ModalDialogHost*);
|
| -
|
| -namespace athena {
|
| -namespace {
|
| -
|
| -// Provides the host environment for web modal dialogs. See
|
| -// web_modal::WebContentsModalDialogHost, and ModalDialogHost for more
|
| -// details.
|
| -class ModalDialogHostImpl : public web_modal::WebContentsModalDialogHost,
|
| - public aura::WindowObserver {
|
| - public:
|
| - // Returns a modal dialog host for |window|. If it doesn't exist it creates
|
| - // one and stores it as owned property.
|
| - static ModalDialogHost* Get(aura::Window* window);
|
| -
|
| - private:
|
| - explicit ModalDialogHostImpl(aura::Window* host_window)
|
| - : host_window_(host_window) {
|
| - host_window_->AddObserver(this);
|
| - }
|
| - ~ModalDialogHostImpl() override {}
|
| -
|
| - // web_modal::ModalDialogHost:
|
| - gfx::NativeView GetHostView() const override {
|
| - return host_window_;
|
| - }
|
| - gfx::Point GetDialogPosition(const gfx::Size& size) override {
|
| - gfx::Rect host_bounds = host_window_->GetBoundsInScreen();
|
| - host_bounds.ClampToCenteredSize(size);
|
| - return host_bounds.origin();
|
| - }
|
| - void AddObserver(web_modal::ModalDialogHostObserver* observer) override {
|
| - observer_list_.AddObserver(observer);
|
| - }
|
| - void RemoveObserver(web_modal::ModalDialogHostObserver* observer) override {
|
| - observer_list_.RemoveObserver(observer);
|
| - }
|
| -
|
| - // web_modal::WebContensModalDialogHost:
|
| - gfx::Size GetMaximumDialogSize() override {
|
| - return host_window_->bounds().size();
|
| - }
|
| -
|
| - // aura::WindowObserver:
|
| - void OnWindowDestroying(aura::Window* window) override {
|
| - if (window != host_window_)
|
| - return;
|
| - host_window_->RemoveObserver(this);
|
| - FOR_EACH_OBSERVER(web_modal::ModalDialogHostObserver,
|
| - observer_list_,
|
| - OnHostDestroying());
|
| - }
|
| - void OnWindowBoundsChanged(aura::Window* window,
|
| - const gfx::Rect& old_bounds,
|
| - const gfx::Rect& new_bounds) override {
|
| - if (window != host_window_)
|
| - return;
|
| - FOR_EACH_OBSERVER(web_modal::ModalDialogHostObserver,
|
| - observer_list_,
|
| - OnPositionRequiresUpdate());
|
| - }
|
| -
|
| - aura::Window* host_window_;
|
| - ObserverList<web_modal::ModalDialogHostObserver> observer_list_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ModalDialogHostImpl);
|
| -};
|
| -
|
| -// A window property key to store the modal dialog host for
|
| -// dialogs created with the window as its parent.
|
| -DEFINE_OWNED_WINDOW_PROPERTY_KEY(web_modal::ModalDialogHost,
|
| - kModalDialogHostKey,
|
| - nullptr);
|
| -
|
| -// static
|
| -web_modal::ModalDialogHost* ModalDialogHostImpl::Get(
|
| - aura::Window* window) {
|
| - web_modal::ModalDialogHost* host = window->GetProperty(kModalDialogHostKey);
|
| - if (!host) {
|
| - host = new ModalDialogHostImpl(window);
|
| - window->SetProperty(kModalDialogHostKey, host);
|
| - }
|
| - return host;
|
| -}
|
| -
|
| -class AthenaConstrainedWindowViewsClient
|
| - : public constrained_window::ConstrainedWindowViewsClient {
|
| - public:
|
| - AthenaConstrainedWindowViewsClient() {}
|
| - ~AthenaConstrainedWindowViewsClient() override {}
|
| -
|
| - private:
|
| - // ConstrainedWindowViewsClient:
|
| - content::WebContents* GetEmbedderWebContents(
|
| - content::WebContents* initiator_web_contents) override {
|
| - extensions::GuestViewBase* guest_view =
|
| - extensions::GuestViewBase::FromWebContents(initiator_web_contents);
|
| - return guest_view && guest_view->embedder_web_contents() ?
|
| - guest_view->embedder_web_contents() : initiator_web_contents;
|
| - }
|
| - web_modal::ModalDialogHost* GetModalDialogHost(
|
| - gfx::NativeWindow parent) override {
|
| - Activity* activity = ActivityManager::Get()->GetActivityForWindow(parent);
|
| - if (activity)
|
| - return ModalDialogHostImpl::Get(parent);
|
| - return nullptr;
|
| - }
|
| - gfx::NativeView GetDialogHostView(gfx::NativeWindow parent) override {
|
| - return parent;
|
| - }
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(AthenaConstrainedWindowViewsClient);
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -void InstallConstrainedWindowViewsClient() {
|
| - constrained_window::SetConstrainedWindowViewsClient(
|
| - make_scoped_ptr(new AthenaConstrainedWindowViewsClient));
|
| -}
|
| -
|
| -void UninstallConstrainedWindowViewsClient() {
|
| - constrained_window::SetConstrainedWindowViewsClient(nullptr);
|
| -}
|
| -
|
| -} // namespace athena
|
|
|