Index: chrome/browser/ui/webui/chrome_web_contents_handler.cc |
diff --git a/chrome/browser/ui/webui/chrome_web_contents_handler.cc b/chrome/browser/ui/webui/chrome_web_contents_handler.cc |
index 42375bef8e9c32c06cd4a48dfbc4faaea6d08005..a52383a192507f6691df9355a043b49daf9441c9 100644 |
--- a/chrome/browser/ui/webui/chrome_web_contents_handler.cc |
+++ b/chrome/browser/ui/webui/chrome_web_contents_handler.cc |
@@ -9,6 +9,7 @@ |
#include "chrome/browser/ui/browser_finder.h" |
#include "chrome/browser/ui/browser_navigator.h" |
#include "chrome/browser/ui/browser_window.h" |
+#include "chrome/browser/ui/host_desktop.h" |
#include "chrome/browser/ui/tab_contents/tab_contents.h" |
#include "chrome/browser/ui/tabs/tab_strip_model.h" |
#include "content/public/browser/web_contents.h" |
@@ -36,10 +37,19 @@ WebContents* ChromeWebContentsHandler::OpenURLFromTab( |
return NULL; |
Profile* profile = Profile::FromBrowserContext(context); |
- Browser* browser = browser::FindTabbedBrowser(profile, false); |
+ |
+ chrome::HostDesktopType desktop_type = chrome::HOST_DESKTOP_TYPE_NATIVE; |
+ if (source) { |
+ Browser* source_browser = browser::FindBrowserWithWebContents(source); |
+ if (source_browser) |
+ desktop_type = source_browser->host_desktop_type(); |
+ } |
+ |
+ Browser* browser = browser::FindTabbedBrowser(profile, false, desktop_type); |
const bool browser_created = !browser; |
if (!browser) |
- browser = new Browser(Browser::CreateParams(profile)); |
+ browser = new Browser( |
+ Browser::CreateParams(Browser::TYPE_TABBED, profile, desktop_type)); |
chrome::NavigateParams nav_params(browser, params.url, params.transition); |
nav_params.referrer = params.referrer; |
if (source && source->IsCrashed() && |
@@ -78,10 +88,19 @@ void ChromeWebContentsHandler::AddNewContents( |
return; |
Profile* profile = Profile::FromBrowserContext(context); |
- Browser* browser = browser::FindTabbedBrowser(profile, false); |
+ |
+ chrome::HostDesktopType desktop_type = chrome::HOST_DESKTOP_TYPE_NATIVE; |
+ if (source) { |
+ Browser* source_browser = browser::FindBrowserWithWebContents(source); |
+ if (source_browser) |
+ desktop_type = source_browser->host_desktop_type(); |
+ } |
+ |
+ Browser* browser = browser::FindTabbedBrowser(profile, false, desktop_type); |
const bool browser_created = !browser; |
if (!browser) |
- browser = new Browser(Browser::CreateParams(profile)); |
+ browser = new Browser( |
+ Browser::CreateParams(Browser::TYPE_TABBED, profile, desktop_type)); |
TabContents* tab_contents = |
TabContents::Factory::CreateTabContents(new_contents); |
chrome::NavigateParams params(browser, tab_contents); |