summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/browser.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/ui/browser.cc')
-rw-r--r--chrome/browser/ui/browser.cc19
1 files changed, 17 insertions, 2 deletions
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 2c75f98..a608b8e 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -1145,8 +1145,23 @@ void Browser::CloseTabContents(TabContents* contents) {
}
gfx::NativeWindow Browser::BrowserShowHtmlDialog(
- HtmlDialogUIDelegate* delegate, gfx::NativeWindow parent_window) {
- return window_->ShowHTMLDialog(delegate, parent_window);
+ HtmlDialogUIDelegate* delegate,
+ gfx::NativeWindow parent_window) {
+#if defined(OS_CHROMEOS)
+ // For Chrome OS, first try to parent the dialog over the current browser --
+ // it's likely to be maximized onscreen. If it isn't tabbed (e.g. it's a
+ // panel), find a browser that is.
+ parent_window = window_->GetNativeHandle();
+ if (!is_type_tabbed()) {
+ Browser* tabbed_browser = BrowserList::FindTabbedBrowser(profile_, true);
+ if (tabbed_browser && tabbed_browser->window())
+ parent_window = tabbed_browser->window()->GetNativeHandle();
+ }
+#endif // defined(OS_CHROMEOS)
+ if (!parent_window)
+ parent_window = window_->GetNativeHandle();
+
+ return browser::ShowHtmlDialog(parent_window, profile_, delegate);
}
void Browser::BrowserRenderWidgetShowing() {