diff options
Diffstat (limited to 'chrome/browser/ui/browser_navigator.cc')
-rw-r--r-- | chrome/browser/ui/browser_navigator.cc | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc index 2a8d667..0aa7a51 100644 --- a/chrome/browser/ui/browser_navigator.cc +++ b/chrome/browser/ui/browser_navigator.cc @@ -53,8 +53,10 @@ bool WindowCanOpenTabs(Browser* browser) { // Finds an existing Browser compatible with |profile|, making a new one if no // such Browser is located. -Browser* GetOrCreateBrowser(Profile* profile) { - Browser* browser = browser::FindTabbedBrowser(profile, false); +Browser* GetOrCreateBrowser(Profile* profile, + chrome::HostDesktopType host_desktop_type) { + Browser* browser = + browser::FindTabbedBrowser(profile, false, host_desktop_type); return browser ? browser : new Browser(Browser::CreateParams(profile)); } @@ -84,7 +86,8 @@ bool AdjustNavigateParamsForURL(chrome::NavigateParams* params) { } params->disposition = SINGLETON_TAB; - params->browser = browser::FindOrCreateTabbedBrowser(profile); + params->browser = + browser::FindOrCreateTabbedBrowser(profile, params->host_desktop_type); params->window_action = chrome::NavigateParams::SHOW_WINDOW; } @@ -110,7 +113,7 @@ Browser* GetBrowserForDisposition(chrome::NavigateParams* params) { return params->browser; // Find a compatible window and re-execute this command in it. Otherwise // re-run with NEW_WINDOW. - return GetOrCreateBrowser(profile); + return GetOrCreateBrowser(profile, params->host_desktop_type); case SINGLETON_TAB: case NEW_FOREGROUND_TAB: case NEW_BACKGROUND_TAB: @@ -119,7 +122,7 @@ Browser* GetBrowserForDisposition(chrome::NavigateParams* params) { return params->browser; // Find a compatible window and re-execute this command in it. Otherwise // re-run with NEW_WINDOW. - return GetOrCreateBrowser(profile); + return GetOrCreateBrowser(profile, params->host_desktop_type); case NEW_POPUP: { // Make a new popup window. // Coerce app-style if |source| represents an app. @@ -153,7 +156,8 @@ Browser* GetBrowserForDisposition(chrome::NavigateParams* params) { } case OFF_THE_RECORD: // Make or find an incognito window. - return GetOrCreateBrowser(profile->GetOffTheRecordProfile()); + return GetOrCreateBrowser(profile->GetOffTheRecordProfile(), + params->host_desktop_type); // The following types all result in no navigation. case SUPPRESS_OPEN: case SAVE_TO_DISK: @@ -316,7 +320,12 @@ NavigateParams::NavigateParams(Browser* a_browser, path_behavior(RESPECT), ref_behavior(IGNORE_REF), browser(a_browser), - initiating_profile(NULL) {} + initiating_profile(NULL) { + if (a_browser) + host_desktop_type = a_browser->host_desktop_type(); + else + host_desktop_type = chrome::HOST_DESKTOP_TYPE_NATIVE; + } NavigateParams::NavigateParams(Browser* a_browser, TabContents* a_target_contents) @@ -332,7 +341,12 @@ NavigateParams::NavigateParams(Browser* a_browser, path_behavior(RESPECT), ref_behavior(IGNORE_REF), browser(a_browser), - initiating_profile(NULL) {} + initiating_profile(NULL) { + if (a_browser) + host_desktop_type = a_browser->host_desktop_type(); + else + host_desktop_type = chrome::HOST_DESKTOP_TYPE_NATIVE; + } NavigateParams::NavigateParams(Profile* a_profile, const GURL& a_url, @@ -350,7 +364,8 @@ NavigateParams::NavigateParams(Profile* a_profile, path_behavior(RESPECT), ref_behavior(IGNORE_REF), browser(NULL), - initiating_profile(a_profile) {} + initiating_profile(a_profile), + host_desktop_type(chrome::HOST_DESKTOP_TYPE_NATIVE) {} NavigateParams::~NavigateParams() {} |