summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-05 06:31:03 +0000
committermazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-05 06:31:03 +0000
commitaa9a424890c6a463af8b7c31e3cd8f0903e68d19 (patch)
tree044ac5dfc69228f591d45db8aabbdf859c183180
parent2088082f542e79a81992d415e8386021048a8684 (diff)
downloadchromium_src-aa9a424890c6a463af8b7c31e3cd8f0903e68d19.zip
chromium_src-aa9a424890c6a463af8b7c31e3cd8f0903e68d19.tar.gz
chromium_src-aa9a424890c6a463af8b7c31e3cd8f0903e68d19.tar.bz2
Remove the usage of Browser in WebDialogView.
browser argument of WebDialogView is used only from CloudPrintSetupFlow, so I moved necessary code to CloudPrintSetupFlow and delete Browser usage in WebDialogView. WebDialogController works only when browser is passed, so this can be removed. BUG=124222 TEST=None Review URL: https://chromiumcodereview.appspot.com/10499003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140493 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/chromeos/choose_mobile_network_dialog.cc1
-rw-r--r--chrome/browser/chromeos/login/login_web_dialog.cc2
-rw-r--r--chrome/browser/chromeos/sim_dialog_delegate.cc1
-rw-r--r--chrome/browser/printing/cloud_print/cloud_print_setup_flow.cc11
-rw-r--r--chrome/browser/printing/cloud_print/cloud_print_setup_flow.h8
-rw-r--r--chrome/browser/printing/print_dialog_cloud.cc1
-rw-r--r--chrome/browser/ui/browser.cc2
-rw-r--r--chrome/browser/ui/browser_dialogs.h1
-rw-r--r--chrome/browser/ui/cocoa/web_dialog_window_controller.mm3
-rw-r--r--chrome/browser/ui/gtk/web_dialog_gtk.cc9
-rw-r--r--chrome/browser/ui/gtk/web_dialog_gtk.h4
-rw-r--r--chrome/browser/ui/views/keyboard_overlay_dialog_view.cc2
-rw-r--r--chrome/browser/ui/views/web_dialog_view.cc8
-rw-r--r--chrome/browser/ui/views/web_dialog_view.h8
-rw-r--r--chrome/browser/ui/views/web_dialog_view_browsertest.cc7
-rw-r--r--chrome/browser/ui/webui/chromeos/mobile_setup_dialog.cc1
-rw-r--r--chrome/browser/ui/webui/task_manager/task_manager_dialog.cc1
-rw-r--r--chrome/browser/ui/webui/web_dialog_controller_browsertest.cc11
18 files changed, 39 insertions, 42 deletions
diff --git a/chrome/browser/chromeos/choose_mobile_network_dialog.cc b/chrome/browser/chromeos/choose_mobile_network_dialog.cc
index e33753d..beb7a3a0 100644
--- a/chrome/browser/chromeos/choose_mobile_network_dialog.cc
+++ b/chrome/browser/chromeos/choose_mobile_network_dialog.cc
@@ -28,7 +28,6 @@ namespace chromeos {
void ChooseMobileNetworkDialog::ShowDialog(gfx::NativeWindow owning_window) {
views::Widget::CreateWindowWithParent(
new WebDialogView(ProfileManager::GetDefaultProfileOrOffTheRecord(),
- NULL,
new ChooseMobileNetworkDialog),
owning_window)->Show();
}
diff --git a/chrome/browser/chromeos/login/login_web_dialog.cc b/chrome/browser/chromeos/login/login_web_dialog.cc
index be8514a..bfec9e1 100644
--- a/chrome/browser/chromeos/login/login_web_dialog.cc
+++ b/chrome/browser/chromeos/login/login_web_dialog.cc
@@ -57,7 +57,7 @@ LoginWebDialog::~LoginWebDialog() {
void LoginWebDialog::Show() {
views::Widget::CreateWindowWithParent(
- new WebDialogView(ProfileManager::GetDefaultProfile(), NULL, this),
+ new WebDialogView(ProfileManager::GetDefaultProfile(), this),
parent_window_)->Show();
is_open_ = true;
}
diff --git a/chrome/browser/chromeos/sim_dialog_delegate.cc b/chrome/browser/chromeos/sim_dialog_delegate.cc
index a492e2d..e13d891 100644
--- a/chrome/browser/chromeos/sim_dialog_delegate.cc
+++ b/chrome/browser/chromeos/sim_dialog_delegate.cc
@@ -47,7 +47,6 @@ void SimDialogDelegate::ShowDialog(gfx::NativeWindow owning_window,
SimDialogMode mode) {
views::Widget::CreateWindowWithParent(
new WebDialogView(ProfileManager::GetDefaultProfileOrOffTheRecord(),
- NULL,
new SimDialogDelegate(mode)),
owning_window)->Show();
}
diff --git a/chrome/browser/printing/cloud_print/cloud_print_setup_flow.cc b/chrome/browser/printing/cloud_print/cloud_print_setup_flow.cc
index 8d7f81f..8e36e31 100644
--- a/chrome/browser/printing/cloud_print/cloud_print_setup_flow.cc
+++ b/chrome/browser/printing/cloud_print/cloud_print_setup_flow.cc
@@ -22,6 +22,7 @@
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/webui/chrome_url_data_manager.h"
+#include "chrome/browser/ui/webui/web_dialog_controller.h"
#include "chrome/common/net/gaia/gaia_auth_fetcher.h"
#include "chrome/common/net/gaia/gaia_constants.h"
#include "chrome/common/net/gaia/google_service_auth_error.h"
@@ -79,20 +80,22 @@ CloudPrintSetupFlow* CloudPrintSetupFlow::OpenDialog(
base::JSONWriter::Write(&args, &json_args);
CloudPrintSetupFlow* flow = new CloudPrintSetupFlow(json_args, profile,
- delegate, setup_done);
+ browser, delegate,
+ setup_done);
// We may not always have a browser. This can happen when we are being
// invoked in the context of a "token expired" notfication. If we don't have
// a brower, use the underlying dialog system to show the dialog without
// using a browser.
if (!parent_window && browser && browser->window())
parent_window = browser->window()->GetNativeHandle();
- browser::ShowWebDialog(parent_window, profile, browser, flow);
+ browser::ShowWebDialog(parent_window, profile, flow);
return flow;
}
CloudPrintSetupFlow::CloudPrintSetupFlow(
const std::string& args,
Profile* profile,
+ Browser* browser,
const base::WeakPtr<Delegate>& delegate,
bool setup_done)
: web_ui_(NULL),
@@ -103,6 +106,10 @@ CloudPrintSetupFlow::CloudPrintSetupFlow(
delegate_(delegate) {
// TODO(hclam): The data source should be added once.
profile_ = profile;
+ if (browser) {
+ web_dialog_controller_.reset(
+ new WebDialogController(this, profile, browser));
+ }
ChromeURLDataManager::AddDataSource(profile,
new CloudPrintSetupSource());
}
diff --git a/chrome/browser/printing/cloud_print/cloud_print_setup_flow.h b/chrome/browser/printing/cloud_print/cloud_print_setup_flow.h
index a1bf990..698a444 100644
--- a/chrome/browser/printing/cloud_print/cloud_print_setup_flow.h
+++ b/chrome/browser/printing/cloud_print/cloud_print_setup_flow.h
@@ -18,6 +18,7 @@
#include "ui/gfx/native_widget_types.h"
#include "ui/web_dialogs/web_dialog_delegate.h"
+class Browser;
class CloudPrintServiceProcessHelper;
class CloudPrintSetupMessageHandler;
class GaiaAuthFetcher;
@@ -33,6 +34,8 @@ namespace content {
class WebUI;
}
+class WebDialogController;
+
// This class is responsible for showing a cloud print setup dialog
// and perform operations to fill the content of the dialog and handle
// user actions in the dialog.
@@ -98,7 +101,9 @@ class CloudPrintSetupFlow : public ui::WebDialogDelegate,
friend class CloudPrintSetupMessageHandler;
// Use static Run method to get an instance.
- CloudPrintSetupFlow(const std::string& args, Profile* profile,
+ CloudPrintSetupFlow(const std::string& args,
+ Profile* profile,
+ Browser* browser,
const base::WeakPtr<Delegate>& delegate, bool setup_done);
// Called CloudPrintSetupMessageHandler when a DOM is attached. This method
@@ -149,6 +154,7 @@ class CloudPrintSetupFlow : public ui::WebDialogDelegate,
// Handle to the ServiceProcessControl which talks to the service process.
ServiceProcessControl* process_control_;
base::WeakPtr<Delegate> delegate_;
+ scoped_ptr<WebDialogController> web_dialog_controller_;
DISALLOW_COPY_AND_ASSIGN(CloudPrintSetupFlow);
};
diff --git a/chrome/browser/printing/print_dialog_cloud.cc b/chrome/browser/printing/print_dialog_cloud.cc
index 1e37cdc..7d38636 100644
--- a/chrome/browser/printing/print_dialog_cloud.cc
+++ b/chrome/browser/printing/print_dialog_cloud.cc
@@ -684,7 +684,6 @@ void CreateDialogImpl(content::BrowserContext* browser_context,
callback);
browser::ShowWebDialog(modal_parent,
Profile::FromBrowserContext(browser_context),
- NULL,
dialog_delegate);
}
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 8ecbaad..4d59fc1 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -1195,7 +1195,7 @@ gfx::NativeWindow Browser::BrowserShowWebDialog(
if (!parent_window)
parent_window = window_->GetNativeHandle();
- return browser::ShowWebDialog(parent_window, profile_, this, delegate);
+ return browser::ShowWebDialog(parent_window, profile_, delegate);
}
void Browser::BrowserRenderWidgetShowing() {
diff --git a/chrome/browser/ui/browser_dialogs.h b/chrome/browser/ui/browser_dialogs.h
index dab83af..aeb97ca 100644
--- a/chrome/browser/ui/browser_dialogs.h
+++ b/chrome/browser/ui/browser_dialogs.h
@@ -49,7 +49,6 @@ void ShowAboutIPCDialog();
// to do so, i.e. before OnDialogClosed() is called on the delegate.
gfx::NativeWindow ShowWebDialog(gfx::NativeWindow parent,
Profile* profile,
- Browser* browser,
ui::WebDialogDelegate* delegate);
// Shows the collected cookies dialog box.
diff --git a/chrome/browser/ui/cocoa/web_dialog_window_controller.mm b/chrome/browser/ui/cocoa/web_dialog_window_controller.mm
index 44d7f91..322cd7a 100644
--- a/chrome/browser/ui/cocoa/web_dialog_window_controller.mm
+++ b/chrome/browser/ui/cocoa/web_dialog_window_controller.mm
@@ -10,6 +10,7 @@
#include "base/sys_string_conversions.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_finder.h"
#import "chrome/browser/ui/browser_dialogs.h"
#import "chrome/browser/ui/cocoa/browser_command_executor.h"
#import "chrome/browser/ui/cocoa/chrome_event_processing_window.h"
@@ -101,8 +102,8 @@ namespace browser {
gfx::NativeWindow ShowWebDialog(gfx::NativeWindow parent,
Profile* profile,
- Browser* browser,
WebDialogDelegate* delegate) {
+ Browser* browser = browser::FindLastActiveWithProfile(profile);
return [WebDialogWindowController showWebDialog:delegate
profile:profile
browser:browser];
diff --git a/chrome/browser/ui/gtk/web_dialog_gtk.cc b/chrome/browser/ui/gtk/web_dialog_gtk.cc
index 91a2732..568ddf7 100644
--- a/chrome/browser/ui/gtk/web_dialog_gtk.cc
+++ b/chrome/browser/ui/gtk/web_dialog_gtk.cc
@@ -15,7 +15,6 @@
#include "chrome/browser/ui/gtk/gtk_util.h"
#include "chrome/browser/ui/gtk/tab_contents_container_gtk.h"
#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
-#include "chrome/browser/ui/webui/web_dialog_controller.h"
#include "content/public/browser/native_web_keyboard_event.h"
#include "content/public/browser/web_contents.h"
#include "ui/web_dialogs/web_dialog_ui.h"
@@ -30,10 +29,8 @@ namespace browser {
gfx::NativeWindow ShowWebDialog(gfx::NativeWindow parent,
Profile* profile,
- Browser* browser,
WebDialogDelegate* delegate) {
- WebDialogGtk* web_dialog =
- new WebDialogGtk(profile, browser, delegate, parent);
+ WebDialogGtk* web_dialog = new WebDialogGtk(profile, delegate, parent);
return web_dialog->InitDialog();
}
@@ -63,14 +60,12 @@ void SetDialogStyle() {
// WebDialogGtk, public:
WebDialogGtk::WebDialogGtk(Profile* profile,
- Browser* browser,
WebDialogDelegate* delegate,
gfx::NativeWindow parent_window)
: WebDialogWebContentsDelegate(profile),
delegate_(delegate),
parent_window_(parent_window),
- dialog_(NULL),
- dialog_controller_(new WebDialogController(this, profile, browser)) {
+ dialog_(NULL) {
}
WebDialogGtk::~WebDialogGtk() {
diff --git a/chrome/browser/ui/gtk/web_dialog_gtk.h b/chrome/browser/ui/gtk/web_dialog_gtk.h
index 3546a16..104b4a3 100644
--- a/chrome/browser/ui/gtk/web_dialog_gtk.h
+++ b/chrome/browser/ui/gtk/web_dialog_gtk.h
@@ -19,17 +19,14 @@
typedef struct _GtkWidget GtkWidget;
-class Browser;
class Profile;
class TabContentsContainerGtk;
class TabContentsWrapper;
-class WebDialogController;
class WebDialogGtk : public WebDialogWebContentsDelegate,
public ui::WebDialogDelegate {
public:
WebDialogGtk(Profile* profile,
- Browser* browser,
ui::WebDialogDelegate* delegate,
gfx::NativeWindow parent_window);
virtual ~WebDialogGtk();
@@ -78,7 +75,6 @@ class WebDialogGtk : public WebDialogWebContentsDelegate,
GtkWidget* dialog_;
- scoped_ptr<WebDialogController> dialog_controller_;
scoped_ptr<TabContentsWrapper> tab_;
scoped_ptr<TabContentsContainerGtk> tab_contents_container_;
diff --git a/chrome/browser/ui/views/keyboard_overlay_dialog_view.cc b/chrome/browser/ui/views/keyboard_overlay_dialog_view.cc
index db2149c..a533dcd 100644
--- a/chrome/browser/ui/views/keyboard_overlay_dialog_view.cc
+++ b/chrome/browser/ui/views/keyboard_overlay_dialog_view.cc
@@ -25,7 +25,7 @@ KeyboardOverlayDialogView* g_instance = NULL;
KeyboardOverlayDialogView::KeyboardOverlayDialogView(
Profile* profile,
WebDialogDelegate* delegate)
- : WebDialogView(profile, NULL, delegate) {
+ : WebDialogView(profile, delegate) {
}
KeyboardOverlayDialogView::~KeyboardOverlayDialogView() {
diff --git a/chrome/browser/ui/views/web_dialog_view.cc b/chrome/browser/ui/views/web_dialog_view.cc
index 6158aeb..c141077 100644
--- a/chrome/browser/ui/views/web_dialog_view.cc
+++ b/chrome/browser/ui/views/web_dialog_view.cc
@@ -10,7 +10,6 @@
#include "base/utf_string_conversions.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser_dialogs.h"
-#include "chrome/browser/ui/webui/web_dialog_controller.h"
#include "content/public/browser/native_web_keyboard_event.h"
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_source.h"
@@ -22,6 +21,8 @@
#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"
@@ -39,10 +40,9 @@ namespace browser {
// Declared in browser_dialogs.h so that others don't need to depend on our .h.
gfx::NativeWindow ShowWebDialog(gfx::NativeWindow parent,
Profile* profile,
- Browser* browser,
WebDialogDelegate* delegate) {
views::Widget* widget = views::Widget::CreateWindowWithParent(
- new WebDialogView(profile, browser, delegate), parent);
+ new WebDialogView(profile, delegate), parent);
widget->Show();
return widget->GetNativeWindow();
}
@@ -53,13 +53,11 @@ gfx::NativeWindow ShowWebDialog(gfx::NativeWindow parent,
// WebDialogView, public:
WebDialogView::WebDialogView(Profile* profile,
- Browser* browser,
WebDialogDelegate* delegate)
: ClientView(NULL, NULL),
WebDialogWebContentsDelegate(profile),
initialized_(false),
delegate_(delegate),
- dialog_controller_(new WebDialogController(this, profile, browser)),
web_view_(new views::WebView(profile)) {
web_view_->set_allow_accelerators(true);
AddChildView(web_view_);
diff --git a/chrome/browser/ui/views/web_dialog_view.h b/chrome/browser/ui/views/web_dialog_view.h
index 915d2dc..e6a718c4 100644
--- a/chrome/browser/ui/views/web_dialog_view.h
+++ b/chrome/browser/ui/views/web_dialog_view.h
@@ -18,8 +18,6 @@
#include "ui/views/window/client_view.h"
#include "ui/web_dialogs/web_dialog_delegate.h"
-class Browser;
-class WebDialogController;
class Profile;
namespace views {
@@ -39,7 +37,7 @@ class WebView;
// TODO(akalin): Make WebDialogView contain an WebDialogWebContentsDelegate
// instead of inheriting from it to avoid violating the "no multiple
// inheritance" rule.
-// TODO(beng): This class should not depend on Browser or Profile, only
+// TODO(beng): This class should not depend on Profile, only
// content::BrowserContext.
class WebDialogView
: public views::ClientView,
@@ -49,7 +47,6 @@ class WebDialogView
public TabRenderWatcher::Delegate {
public:
WebDialogView(Profile* profile,
- Browser* browser,
ui::WebDialogDelegate* delegate);
virtual ~WebDialogView();
@@ -139,9 +136,6 @@ class WebDialogView
// using this variable.
ui::WebDialogDelegate* delegate_;
- // Controls lifetime of dialog.
- scoped_ptr<WebDialogController> dialog_controller_;
-
views::WebView* web_view_;
DISALLOW_COPY_AND_ASSIGN(WebDialogView);
diff --git a/chrome/browser/ui/views/web_dialog_view_browsertest.cc b/chrome/browser/ui/views/web_dialog_view_browsertest.cc
index 778d8b6..cf4196d 100644
--- a/chrome/browser/ui/views/web_dialog_view_browsertest.cc
+++ b/chrome/browser/ui/views/web_dialog_view_browsertest.cc
@@ -34,9 +34,8 @@ const int kInitialHeight = 40;
class TestWebDialogView : public WebDialogView {
public:
TestWebDialogView(Profile* profile,
- Browser* browser,
WebDialogDelegate* delegate)
- : WebDialogView(profile, browser, delegate),
+ : WebDialogView(profile, delegate),
painted_(false),
should_quit_on_size_change_(false) {
delegate->GetDialogSize(&last_size_);
@@ -111,7 +110,7 @@ IN_PROC_BROWSER_TEST_F(WebDialogBrowserTest, MAYBE_SizeWindow) {
delegate->set_size(kInitialWidth, kInitialHeight);
TestWebDialogView* view =
- new TestWebDialogView(browser()->profile(), browser(), delegate);
+ new TestWebDialogView(browser()->profile(), delegate);
WebContents* web_contents = browser()->GetSelectedWebContents();
ASSERT_TRUE(web_contents != NULL);
views::Widget::CreateWindowWithParent(
@@ -191,7 +190,7 @@ IN_PROC_BROWSER_TEST_F(WebDialogBrowserTest, DISABLED_WebContentRendered) {
GURL(chrome::kChromeUIChromeURLsURL));
TestWebDialogView* view =
- new TestWebDialogView(browser()->profile(), browser(), delegate);
+ new TestWebDialogView(browser()->profile(), delegate);
WebContents* web_contents = browser()->GetSelectedWebContents();
ASSERT_TRUE(web_contents != NULL);
views::Widget::CreateWindowWithParent(
diff --git a/chrome/browser/ui/webui/chromeos/mobile_setup_dialog.cc b/chrome/browser/ui/webui/chromeos/mobile_setup_dialog.cc
index 4217979..0109280 100644
--- a/chrome/browser/ui/webui/chromeos/mobile_setup_dialog.cc
+++ b/chrome/browser/ui/webui/chromeos/mobile_setup_dialog.cc
@@ -80,7 +80,6 @@ void MobileSetupDialogDelegate::ShowDialog() {
dialog_window_ = browser::ShowWebDialog(
NULL,
ProfileManager::GetDefaultProfileOrOffTheRecord(),
- NULL,
this);
}
diff --git a/chrome/browser/ui/webui/task_manager/task_manager_dialog.cc b/chrome/browser/ui/webui/task_manager/task_manager_dialog.cc
index f017d82..f2914b4 100644
--- a/chrome/browser/ui/webui/task_manager/task_manager_dialog.cc
+++ b/chrome/browser/ui/webui/task_manager/task_manager_dialog.cc
@@ -196,7 +196,6 @@ void TaskManagerDialogImpl::OnCloseDialog() {
void TaskManagerDialogImpl::OpenWebDialog() {
window_ = browser::ShowWebDialog(NULL,
ProfileManager::GetDefaultProfile(),
- NULL,
this);
}
diff --git a/chrome/browser/ui/webui/web_dialog_controller_browsertest.cc b/chrome/browser/ui/webui/web_dialog_controller_browsertest.cc
index a5b32b0..7d34bf4 100644
--- a/chrome/browser/ui/webui/web_dialog_controller_browsertest.cc
+++ b/chrome/browser/ui/webui/web_dialog_controller_browsertest.cc
@@ -5,6 +5,7 @@
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/webui/test_web_dialog_delegate.h"
+#include "chrome/browser/ui/webui/web_dialog_controller.h"
#include "chrome/common/url_constants.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
@@ -15,10 +16,14 @@ namespace {
class TestDialogClosedDelegate : public test::TestWebDialogDelegate {
public:
- TestDialogClosedDelegate()
+ explicit TestDialogClosedDelegate(Browser* browser)
: test::TestWebDialogDelegate(
GURL(chrome::kChromeUIChromeURLsURL)),
dialog_closed_(false) {
+ if (browser) {
+ web_dialog_controller_.reset(
+ new WebDialogController(this, browser->profile(), browser));
+ }
}
bool dialog_closed() const { return dialog_closed_; }
@@ -32,6 +37,7 @@ class TestDialogClosedDelegate : public test::TestWebDialogDelegate {
}
private:
+ scoped_ptr<WebDialogController> web_dialog_controller_;
bool dialog_closed_;
DISALLOW_COPY_AND_ASSIGN(TestDialogClosedDelegate);
@@ -48,7 +54,8 @@ class WebDialogControllerBrowserTest : public InProcessBrowserTest {
// that browser is closed the dialog created by that browser is closed.
IN_PROC_BROWSER_TEST_F(WebDialogControllerBrowserTest, IncognitoBrowser) {
Browser* browser = CreateIncognitoBrowser();
- scoped_ptr<TestDialogClosedDelegate> delegate(new TestDialogClosedDelegate());
+ scoped_ptr<TestDialogClosedDelegate> delegate(
+ new TestDialogClosedDelegate(browser));
// Create the dialog and make sure the initial "closed" state is what we
// expect.