Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(26)

Unified Diff: chrome/browser/ui/views/web_dialog_view.cc

Issue 10805047: Move WebDialogView to ui/views/controls/webview. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/views/web_dialog_view.h ('k') | chrome/browser/ui/views/web_dialog_view_browsertest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/views/web_dialog_view.cc
diff --git a/chrome/browser/ui/views/web_dialog_view.cc b/chrome/browser/ui/views/web_dialog_view.cc
deleted file mode 100644
index fdf08c8e72bfbbbb8ca818ec24c97b3ccaa2a7e8..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/views/web_dialog_view.cc
+++ /dev/null
@@ -1,320 +0,0 @@
-// Copyright (c) 2012 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/web_dialog_view.h"
-
-#include <vector>
-
-#include "base/property_bag.h"
-#include "base/utf_string_conversions.h"
-#include "content/public/browser/browser_context.h"
-#include "content/public/browser/native_web_keyboard_event.h"
-#include "content/public/browser/notification_details.h"
-#include "content/public/browser/notification_source.h"
-#include "content/public/browser/notification_types.h"
-#include "content/public/browser/web_contents.h"
-#include "ui/base/keycodes/keyboard_codes.h"
-#include "ui/views/controls/webview/webview.h"
-#include "ui/views/events/event.h"
-#include "ui/views/layout/fill_layout.h"
-#include "ui/views/widget/root_view.h"
-#include "ui/views/widget/widget.h"
-#include "ui/web_dialogs/web_dialog_delegate.h"
-#include "ui/web_dialogs/web_dialog_ui.h"
-
-#if defined(USE_AURA)
-#include "ui/aura/event.h"
-#include "ui/views/widget/native_widget_aura.h"
-#endif
-
-using content::NativeWebKeyboardEvent;
-using content::WebContents;
-using content::WebUIMessageHandler;
-using ui::WebDialogDelegate;
-using ui::WebDialogUI;
-using ui::WebDialogWebContentsDelegate;
-
-////////////////////////////////////////////////////////////////////////////////
-// WebDialogView, public:
-
-WebDialogView::WebDialogView(
- content::BrowserContext* context,
- WebDialogDelegate* delegate,
- WebContentsHandler* handler)
- : ClientView(NULL, NULL),
- WebDialogWebContentsDelegate(context, handler),
- initialized_(false),
- delegate_(delegate),
- web_view_(new views::WebView(context)) {
- web_view_->set_allow_accelerators(true);
- AddChildView(web_view_);
- set_contents_view(web_view_);
- SetLayoutManager(new views::FillLayout);
- // Pressing the ESC key will close the dialog.
- AddAccelerator(ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_NONE));
-}
-
-WebDialogView::~WebDialogView() {
-}
-
-content::WebContents* WebDialogView::web_contents() {
- return web_view_->web_contents();
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// WebDialogView, views::View implementation:
-
-gfx::Size WebDialogView::GetPreferredSize() {
- gfx::Size out;
- if (delegate_)
- delegate_->GetMinimumDialogSize(&out);
- return out;
-}
-
-bool WebDialogView::AcceleratorPressed(const ui::Accelerator& accelerator) {
- // Pressing ESC closes the dialog.
- DCHECK_EQ(ui::VKEY_ESCAPE, accelerator.key_code());
- OnDialogClosed(std::string());
- return true;
-}
-
-void WebDialogView::ViewHierarchyChanged(bool is_add,
- views::View* parent,
- views::View* child) {
- if (is_add && GetWidget())
- InitDialog();
-}
-
-bool WebDialogView::CanClose() {
- bool close_dialog = true;
- if (delegate_)
- delegate_->OnCloseContents(web_view_->web_contents(),
- &close_dialog);
-
- return close_dialog;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// WebDialogView, views::WidgetDelegate implementation:
-
-bool WebDialogView::CanResize() const {
- return true;
-}
-
-ui::ModalType WebDialogView::GetModalType() const {
- return GetDialogModalType();
-}
-
-string16 WebDialogView::GetWindowTitle() const {
- if (delegate_)
- return delegate_->GetDialogTitle();
- return string16();
-}
-
-std::string WebDialogView::GetWindowName() const {
- if (delegate_)
- return delegate_->GetDialogName();
- return std::string();
-}
-
-void WebDialogView::WindowClosing() {
- // If we still have a delegate that means we haven't notified it of the
- // dialog closing. This happens if the user clicks the Close button on the
- // dialog.
- if (delegate_)
- OnDialogClosed("");
-}
-
-views::View* WebDialogView::GetContentsView() {
- return this;
-}
-
-views::ClientView* WebDialogView::CreateClientView(views::Widget* widget) {
- return this;
-}
-
-views::View* WebDialogView::GetInitiallyFocusedView() {
- return web_view_;
-}
-
-bool WebDialogView::ShouldShowWindowTitle() const {
- return ShouldShowDialogTitle();
-}
-
-views::Widget* WebDialogView::GetWidget() {
- return View::GetWidget();
-}
-
-const views::Widget* WebDialogView::GetWidget() const {
- return View::GetWidget();
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// WebDialogDelegate implementation:
-
-ui::ModalType WebDialogView::GetDialogModalType() const {
- if (delegate_)
- return delegate_->GetDialogModalType();
- return ui::MODAL_TYPE_NONE;
-}
-
-string16 WebDialogView::GetDialogTitle() const {
- return GetWindowTitle();
-}
-
-GURL WebDialogView::GetDialogContentURL() const {
- if (delegate_)
- return delegate_->GetDialogContentURL();
- return GURL();
-}
-
-void WebDialogView::GetWebUIMessageHandlers(
- std::vector<WebUIMessageHandler*>* handlers) const {
- if (delegate_)
- delegate_->GetWebUIMessageHandlers(handlers);
-}
-
-void WebDialogView::GetDialogSize(gfx::Size* size) const {
- if (delegate_)
- delegate_->GetDialogSize(size);
-}
-
-void WebDialogView::GetMinimumDialogSize(gfx::Size* size) const {
- if (delegate_)
- delegate_->GetMinimumDialogSize(size);
-}
-
-std::string WebDialogView::GetDialogArgs() const {
- if (delegate_)
- return delegate_->GetDialogArgs();
- return std::string();
-}
-
-void WebDialogView::OnDialogShown(content::WebUI* webui,
- content::RenderViewHost* render_view_host) {
- if (delegate_)
- delegate_->OnDialogShown(webui, render_view_host);
-}
-
-void WebDialogView::OnDialogClosed(const std::string& json_retval) {
- Detach();
- if (delegate_) {
- // Store the dialog content area size.
- delegate_->StoreDialogSize(GetContentsBounds().size());
- }
-
- if (GetWidget())
- GetWidget()->Close();
-
- if (delegate_) {
- delegate_->OnDialogClosed(json_retval);
- delegate_ = NULL; // We will not communicate further with the delegate.
- }
-}
-
-void WebDialogView::OnCloseContents(WebContents* source,
- bool* out_close_dialog) {
- if (delegate_)
- delegate_->OnCloseContents(source, out_close_dialog);
-}
-
-bool WebDialogView::ShouldShowDialogTitle() const {
- if (delegate_)
- return delegate_->ShouldShowDialogTitle();
- return true;
-}
-
-bool WebDialogView::HandleContextMenu(
- const content::ContextMenuParams& params) {
- if (delegate_)
- return delegate_->HandleContextMenu(params);
- return WebDialogWebContentsDelegate::HandleContextMenu(params);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// content::WebContentsDelegate implementation:
-
-void WebDialogView::MoveContents(WebContents* source, const gfx::Rect& pos) {
- // The contained web page wishes to resize itself. We let it do this because
- // if it's a dialog we know about, we trust it not to be mean to the user.
- GetWidget()->SetBounds(pos);
-}
-
-// A simplified version of BrowserView::HandleKeyboardEvent().
-// We don't handle global keyboard shortcuts here, but that's fine since
-// they're all browser-specific. (This may change in the future.)
-void WebDialogView::HandleKeyboardEvent(const NativeWebKeyboardEvent& event) {
-#if defined(USE_AURA)
- aura::KeyEvent aura_event(event.os_event->native_event(), false);
- views::NativeWidgetAura* aura_widget =
- static_cast<views::NativeWidgetAura*>(GetWidget()->native_widget());
- aura_widget->OnKeyEvent(&aura_event);
-#elif defined(OS_WIN)
- // Any unhandled keyboard/character messages should be defproced.
- // This allows stuff like F10, etc to work correctly.
- DefWindowProc(event.os_event.hwnd, event.os_event.message,
- event.os_event.wParam, event.os_event.lParam);
-#endif
-}
-
-void WebDialogView::CloseContents(WebContents* source) {
- bool close_dialog = false;
- OnCloseContents(source, &close_dialog);
- if (close_dialog)
- OnDialogClosed(std::string());
-}
-
-content::WebContents* WebDialogView::OpenURLFromTab(
- content::WebContents* source,
- const content::OpenURLParams& params) {
- content::WebContents* new_contents = NULL;
- if (delegate_ &&
- delegate_->HandleOpenURLFromTab(source, params, &new_contents)) {
- return new_contents;
- }
- return WebDialogWebContentsDelegate::OpenURLFromTab(source, params);
-}
-
-void WebDialogView::AddNewContents(content::WebContents* source,
- content::WebContents* new_contents,
- WindowOpenDisposition disposition,
- const gfx::Rect& initial_pos,
- bool user_gesture) {
- if (delegate_ && delegate_->HandleAddNewContents(
- source, new_contents, disposition, initial_pos, user_gesture)) {
- return;
- }
- WebDialogWebContentsDelegate::AddNewContents(
- source, new_contents, disposition, initial_pos, user_gesture);
-}
-
-void WebDialogView::LoadingStateChanged(content::WebContents* source) {
- if (delegate_)
- delegate_->OnLoadingStateChanged(source);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// WebDialogView, private:
-
-void WebDialogView::InitDialog() {
- content::WebContents* web_contents = web_view_->GetWebContents();
- if (web_contents->GetDelegate() == this)
- return;
-
- web_contents->SetDelegate(this);
-
- // Set the delegate. This must be done before loading the page. See
- // the comment above WebDialogUI in its header file for why.
- WebDialogUI::GetPropertyAccessor().SetProperty(
- web_contents->GetPropertyBag(), this);
-
- if (delegate_) {
- gfx::Size out;
- delegate_->GetDialogSize(&out);
- if (!out.IsEmpty() && GetWidget())
- GetWidget()->CenterWindow(out);
- }
-
- web_view_->LoadInitialURL(GetDialogContentURL());
-}
« no previous file with comments | « chrome/browser/ui/views/web_dialog_view.h ('k') | chrome/browser/ui/views/web_dialog_view_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698