summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-24 01:18:57 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-24 01:18:57 +0000
commitb0c6e5d820fb2da79f9f36e449f66caec1389bfd (patch)
treea4fd0622c4a0b58f01fd88811bca411f4c048137
parent991fee4eda6561e606f780030af1bfbaba732a10 (diff)
downloadchromium_src-b0c6e5d820fb2da79f9f36e449f66caec1389bfd.zip
chromium_src-b0c6e5d820fb2da79f9f36e449f66caec1389bfd.tar.gz
chromium_src-b0c6e5d820fb2da79f9f36e449f66caec1389bfd.tar.bz2
HtmlDialogContentsDelegate should not subclass views::WindowDelegate, for portability reasons (views isn't used on Mac or Linux).
Instead, add modal/title getting methods to HtmlDialogContentsDelegate directly, and have the UI (HtmlDialogView) call to these in the Modal/ModelessHtmlDialogDelegate in its implementation of views::WindowDelegate instead. TEST=open any page and test that Page->Create application shortcuts still works. visit any site that uses Gears and make sure the Gears Allow/Deny dialog still comes up. Review URL: http://codereview.chromium.org/27074 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10236 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/chrome_plugin_host.cc6
-rw-r--r--chrome/browser/dom_ui/html_dialog_contents.h7
-rw-r--r--chrome/browser/dom_ui/new_tab_ui.cc1
-rw-r--r--chrome/browser/modal_html_dialog_delegate.cc2
-rw-r--r--chrome/browser/modal_html_dialog_delegate.h8
-rw-r--r--chrome/browser/views/html_dialog_view.cc12
-rw-r--r--chrome/browser/views/html_dialog_view.h10
7 files changed, 28 insertions, 18 deletions
diff --git a/chrome/browser/chrome_plugin_host.cc b/chrome/browser/chrome_plugin_host.cc
index 67fce29..50b793e 100644
--- a/chrome/browser/chrome_plugin_host.cc
+++ b/chrome/browser/chrome_plugin_host.cc
@@ -304,11 +304,9 @@ class ModelessHtmlDialogDelegate : public HtmlDialogContentsDelegate {
// The following public methods are called from the UI thread.
- // views::WindowDelegate implementation:
- virtual bool IsModal() const { return false; }
- virtual std::wstring GetWindowTitle() const { return L"Google Gears"; }
-
// HtmlDialogContentsDelegate implementation:
+ virtual bool IsDialogModal() const { return false; }
+ virtual std::wstring GetDialogTitle() const { return L"Google Gears"; }
virtual GURL GetDialogContentURL() const { return params_.url; }
virtual void GetDialogSize(CSize* size) const {
size->cx = params_.width;
diff --git a/chrome/browser/dom_ui/html_dialog_contents.h b/chrome/browser/dom_ui/html_dialog_contents.h
index 1a4c3a1..ff31002 100644
--- a/chrome/browser/dom_ui/html_dialog_contents.h
+++ b/chrome/browser/dom_ui/html_dialog_contents.h
@@ -6,11 +6,14 @@
#define CHROME_BROWSER_DOM_UI_HTML_DIALOG_CONTENTS_H__
#include "chrome/browser/dom_ui/dom_ui_host.h"
-#include "chrome/views/window_delegate.h"
// Implement this class to receive notifications.
-class HtmlDialogContentsDelegate : public views::WindowDelegate {
+class HtmlDialogContentsDelegate {
public:
+ // Returns true if the contents needs to be run in a modal dialog.
+ virtual bool IsDialogModal() const = 0;
+ // Returns the title of the dialog.
+ virtual std::wstring GetDialogTitle() const = 0;
// Get the HTML file path for the content to load in the dialog.
virtual GURL GetDialogContentURL() const = 0;
// Get the size of the dialog.
diff --git a/chrome/browser/dom_ui/new_tab_ui.cc b/chrome/browser/dom_ui/new_tab_ui.cc
index 4a77e3a..506d525 100644
--- a/chrome/browser/dom_ui/new_tab_ui.cc
+++ b/chrome/browser/dom_ui/new_tab_ui.cc
@@ -19,7 +19,6 @@
#include "chrome/browser/tab_contents/navigation_entry.h"
#include "chrome/browser/search_engines/template_url.h"
#include "chrome/browser/user_data_manager.h"
-#include "chrome/browser/views/keyword_editor_view.h"
#include "chrome/common/jstemplate_builder.h"
#include "chrome/common/l10n_util.h"
#include "chrome/common/notification_service.h"
diff --git a/chrome/browser/modal_html_dialog_delegate.cc b/chrome/browser/modal_html_dialog_delegate.cc
index fa8549c..5148c38 100644
--- a/chrome/browser/modal_html_dialog_delegate.cc
+++ b/chrome/browser/modal_html_dialog_delegate.cc
@@ -37,7 +37,7 @@ void ModalHtmlDialogDelegate::Observe(NotificationType type,
RemoveObserver();
}
-bool ModalHtmlDialogDelegate::IsModal() const {
+bool ModalHtmlDialogDelegate::IsDialogModal() const {
return true;
}
diff --git a/chrome/browser/modal_html_dialog_delegate.h b/chrome/browser/modal_html_dialog_delegate.h
index 3231af3..a5f5670 100644
--- a/chrome/browser/modal_html_dialog_delegate.h
+++ b/chrome/browser/modal_html_dialog_delegate.h
@@ -27,11 +27,9 @@ class ModalHtmlDialogDelegate
const NotificationSource& source,
const NotificationDetails& details);
- // views::WindowDelegate implementation:
- virtual bool IsModal() const;
- virtual std::wstring GetWindowTitle() const { return L"Google Gears"; }
-
- // ModalHtmlDialogContents::ModalHTMLDialogContentsDelegate implementation:
+ // HTMLDialogContentsDelegate implementation:
+ virtual bool IsDialogModal() const;
+ virtual std::wstring GetDialogTitle() const { return L"Google Gears"; }
virtual GURL GetDialogContentURL() const;
virtual void GetDialogSize(CSize* size) const;
virtual std::string GetDialogArgs() const;
diff --git a/chrome/browser/views/html_dialog_view.cc b/chrome/browser/views/html_dialog_view.cc
index 2ff93b7..0ef3b9e 100644
--- a/chrome/browser/views/html_dialog_view.cc
+++ b/chrome/browser/views/html_dialog_view.cc
@@ -42,11 +42,11 @@ bool HtmlDialogView::CanResize() const {
}
bool HtmlDialogView::IsModal() const {
- return delegate_->IsModal();
+ return delegate_->IsDialogModal();
}
std::wstring HtmlDialogView::GetWindowTitle() const {
- return delegate_->GetWindowTitle();
+ return delegate_->GetDialogTitle();
}
void HtmlDialogView::WindowClosing() {
@@ -68,6 +68,14 @@ views::View* HtmlDialogView::GetInitiallyFocusedView() {
////////////////////////////////////////////////////////////////////////////////
// HtmlDialogContentsDelegate implementation:
+bool HtmlDialogView::IsDialogModal() const {
+ return IsModal();
+}
+
+std::wstring HtmlDialogView::GetDialogTitle() const {
+ return GetWindowTitle();
+}
+
GURL HtmlDialogView::GetDialogContentURL() const {
return delegate_->GetDialogContentURL();
}
diff --git a/chrome/browser/views/html_dialog_view.h b/chrome/browser/views/html_dialog_view.h
index 0b3946c..6a4e144 100644
--- a/chrome/browser/views/html_dialog_view.h
+++ b/chrome/browser/views/html_dialog_view.h
@@ -10,6 +10,7 @@
#include "chrome/browser/dom_ui/html_dialog_contents.h"
#include "chrome/browser/tab_contents/tab_contents_delegate.h"
#include "chrome/browser/views/dom_view.h"
+#include "chrome/views/window_delegate.h"
class Browser;
namespace views {
@@ -26,9 +27,10 @@ class Window;
//
////////////////////////////////////////////////////////////////////////////////
class HtmlDialogView
- : public DOMView,
- public HtmlDialogContentsDelegate,
- public TabContentsDelegate {
+ : public DOMView,
+ public TabContentsDelegate,
+ public HtmlDialogContentsDelegate,
+ public views::WindowDelegate {
public:
HtmlDialogView(Browser* parent_browser,
Profile* profile,
@@ -50,6 +52,8 @@ class HtmlDialogView
virtual views::View* GetInitiallyFocusedView();
// Overridden from HtmlDialogContentsDelegate:
+ virtual bool IsDialogModal() const;
+ virtual std::wstring GetDialogTitle() const;
virtual GURL GetDialogContentURL() const;
virtual void GetDialogSize(CSize* size) const;
virtual std::string GetDialogArgs() const;