diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-24 01:18:57 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-24 01:18:57 +0000 |
commit | b0c6e5d820fb2da79f9f36e449f66caec1389bfd (patch) | |
tree | a4fd0622c4a0b58f01fd88811bca411f4c048137 | |
parent | 991fee4eda6561e606f780030af1bfbaba732a10 (diff) | |
download | chromium_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.cc | 6 | ||||
-rw-r--r-- | chrome/browser/dom_ui/html_dialog_contents.h | 7 | ||||
-rw-r--r-- | chrome/browser/dom_ui/new_tab_ui.cc | 1 | ||||
-rw-r--r-- | chrome/browser/modal_html_dialog_delegate.cc | 2 | ||||
-rw-r--r-- | chrome/browser/modal_html_dialog_delegate.h | 8 | ||||
-rw-r--r-- | chrome/browser/views/html_dialog_view.cc | 12 | ||||
-rw-r--r-- | chrome/browser/views/html_dialog_view.h | 10 |
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; |