summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/ui')
-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.mm4
-rw-r--r--chrome/browser/ui/gtk/web_dialog_gtk.cc4
-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
11 files changed, 24 insertions, 25 deletions
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index fc6c6f2..92ddcf00 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -1209,7 +1209,7 @@ gfx::NativeWindow Browser::BrowserShowWebDialog(
if (!parent_window)
parent_window = window_->GetNativeWindow();
- 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 2d61db2..7d7ca56 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 7b2fcf7..1a52c15 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,9 @@ namespace browser {
gfx::NativeWindow ShowWebDialog(gfx::NativeWindow parent,
Profile* profile,
- Browser* browser,
WebDialogDelegate* delegate) {
+ // TODO(mazda): Remove the dependency on Browser.
+ 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 f5a0bb9..abd879f 100644
--- a/chrome/browser/ui/gtk/web_dialog_gtk.cc
+++ b/chrome/browser/ui/gtk/web_dialog_gtk.cc
@@ -11,6 +11,7 @@
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_dialogs.h"
+#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/gtk/gtk_util.h"
#include "chrome/browser/ui/gtk/tab_contents_container_gtk.h"
@@ -30,8 +31,9 @@ namespace browser {
gfx::NativeWindow ShowWebDialog(gfx::NativeWindow parent,
Profile* profile,
- Browser* browser,
WebDialogDelegate* delegate) {
+ // TODO(mazda): Remove the dependency on Browser.
+ Browser* browser = browser::FindLastActiveWithProfile(profile);
WebDialogGtk* web_dialog =
new WebDialogGtk(profile, browser, delegate, parent);
return web_dialog->InitDialog();
diff --git a/chrome/browser/ui/views/keyboard_overlay_dialog_view.cc b/chrome/browser/ui/views/keyboard_overlay_dialog_view.cc
index 4456cdd..2873e5e 100644
--- a/chrome/browser/ui/views/keyboard_overlay_dialog_view.cc
+++ b/chrome/browser/ui/views/keyboard_overlay_dialog_view.cc
@@ -29,7 +29,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 3526970..4086563 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()->GetActiveWebContents();
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()->GetActiveWebContents();
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 12e1adf..ab29f41 100644
--- a/chrome/browser/ui/webui/chromeos/mobile_setup_dialog.cc
+++ b/chrome/browser/ui/webui/chromeos/mobile_setup_dialog.cc
@@ -96,7 +96,6 @@ void MobileSetupDialogDelegate::ShowDialog(const std::string& service_path) {
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.