| Index: components/web_modal/popup_manager.cc
|
| diff --git a/components/web_modal/popup_manager.cc b/components/web_modal/popup_manager.cc
|
| deleted file mode 100644
|
| index 215d4b8efa2fbcde4cefaa988576e5dc284464f1..0000000000000000000000000000000000000000
|
| --- a/components/web_modal/popup_manager.cc
|
| +++ /dev/null
|
| @@ -1,129 +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 "components/web_modal/popup_manager.h"
|
| -
|
| -#include "components/web_modal/web_contents_modal_dialog_host.h"
|
| -#include "components/web_modal/web_contents_modal_dialog_manager.h"
|
| -#include "content/public/browser/web_contents.h"
|
| -#include "content/public/browser/web_contents_user_data.h"
|
| -#include "ui/gfx/geometry/size.h"
|
| -
|
| -using content::WebContents;
|
| -
|
| -namespace web_modal {
|
| -
|
| -namespace {
|
| -
|
| -const char kPopupManagerUserDataKey[] = "PopupManager";
|
| -
|
| -// This class provides a hook to get a PopupManager from a WebContents.
|
| -// The PopupManager is browser-scoped, but will use a FromWebContents API
|
| -// to attach to each WebContents in that browser.
|
| -class PopupManagerRelay : public content::WebContentsUserData<PopupManager> {
|
| - public:
|
| - explicit PopupManagerRelay(base::WeakPtr<PopupManager> manager)
|
| - : manager_(manager) {}
|
| -
|
| - virtual ~PopupManagerRelay() {}
|
| -
|
| - base::WeakPtr<PopupManager> manager_;
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -PopupManager::PopupManager(WebContentsModalDialogHost* host)
|
| - : host_(host),
|
| - weak_factory_(this) {}
|
| -
|
| -PopupManager::~PopupManager() {
|
| -}
|
| -
|
| -void PopupManager::ShowPopup(scoped_ptr<SinglePopupManager> manager) {
|
| - content::WebContents* web_contents = manager->GetBoundWebContents();
|
| - // TODO(gbillock): get rid of this when we handle bubbles
|
| - DCHECK(web_contents);
|
| -
|
| - // TODO(gbillock): remove when we port the popup management logic to this
|
| - // class.
|
| - NativeWebContentsModalDialog dialog =
|
| - static_cast<NativeWebContentsModalDialog>(manager->popup());
|
| -
|
| - WebContentsModalDialogManager* wm_manager =
|
| - WebContentsModalDialogManager::FromWebContents(web_contents);
|
| - DCHECK(wm_manager);
|
| - wm_manager->ShowModalDialog(dialog);
|
| -}
|
| -
|
| -void PopupManager::ShowModalDialog(NativePopup popup,
|
| - content::WebContents* web_contents) {
|
| - // TODO make a new native popup manager and call ShowPopup.
|
| - // For now just lay off to WCMDM.
|
| - WebContentsModalDialogManager* manager =
|
| - WebContentsModalDialogManager::FromWebContents(web_contents);
|
| - manager->ShowModalDialog(popup);
|
| -}
|
| -
|
| -bool PopupManager::IsWebModalDialogActive(
|
| - const content::WebContents* web_contents) const {
|
| - if (web_contents == NULL)
|
| - return false;
|
| -
|
| - const WebContentsModalDialogManager* manager =
|
| - WebContentsModalDialogManager::FromWebContents(web_contents);
|
| - return manager && manager->IsDialogActive();
|
| -}
|
| -
|
| -void PopupManager::WasFocused(const content::WebContents* web_contents) {
|
| - if (!IsWebModalDialogActive(web_contents))
|
| - return;
|
| -
|
| - const WebContentsModalDialogManager* manager =
|
| - WebContentsModalDialogManager::FromWebContents(web_contents);
|
| - if (manager)
|
| - manager->FocusTopmostDialog();
|
| -}
|
| -
|
| -void PopupManager::WillClose(NativePopup popup) {
|
| -}
|
| -
|
| -void PopupManager::RegisterWith(content::WebContents* web_contents) {
|
| - web_contents->SetUserData(kPopupManagerUserDataKey,
|
| - new PopupManagerRelay(weak_factory_.GetWeakPtr()));
|
| - // TODO(gbillock): Need to do something more extreme here to manage changing
|
| - // popup managers with popups in-flight?
|
| -}
|
| -
|
| -void PopupManager::UnregisterWith(content::WebContents* web_contents) {
|
| - web_contents->RemoveUserData(kPopupManagerUserDataKey);
|
| - // TODO(gbillock): Need to do something more extreme here to manage changing
|
| - // popup managers with popups in-flight?
|
| -}
|
| -
|
| -PopupManager* PopupManager::FromWebContents(
|
| - content::WebContents* web_contents) {
|
| - PopupManagerRelay* relay = static_cast<PopupManagerRelay*>(
|
| - web_contents->GetUserData(kPopupManagerUserDataKey));
|
| - if (!relay)
|
| - return NULL;
|
| -
|
| - return relay->manager_.get();
|
| -}
|
| -
|
| -gfx::NativeView PopupManager::GetHostView() const {
|
| - // TODO(gbillock): replace this with a PopupManagerHost or something.
|
| - DCHECK(host_);
|
| - return host_->GetHostView();
|
| -}
|
| -
|
| -void PopupManager::CloseAllDialogsForTesting(
|
| - content::WebContents* web_contents) {
|
| - // TODO: re-implement, probably in terms of something in the host_,
|
| - // or of owned WCMDMs.
|
| - WebContentsModalDialogManager* manager =
|
| - WebContentsModalDialogManager::FromWebContents(web_contents);
|
| - manager->CloseAllDialogs();
|
| -}
|
| -
|
| -} // namespace web_modal
|
|
|