diff options
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/browser.cc | 14 | ||||
-rw-r--r-- | chrome/browser/browser_unittest.cc | 9 |
2 files changed, 21 insertions, 2 deletions
diff --git a/chrome/browser/browser.cc b/chrome/browser/browser.cc index c9802bd..5ac9d2c 100644 --- a/chrome/browser/browser.cc +++ b/chrome/browser/browser.cc @@ -1233,6 +1233,17 @@ void Browser::OpenCurrentURL() { CloseTabContents(selected_contents); return; } + + if (selected_contents) { + // For the purposes of changing the window open disposition, the referrer + // is the current tab's URL. + open_disposition = AdjustWindowOpenDispositionForTab( + IsPinned(selected_contents), + url, + selected_contents->GetURL(), + location_bar->GetPageTransition(), + open_disposition); + } } OpenURLAtIndex(NULL, url, GURL(), @@ -3635,7 +3646,8 @@ WindowOpenDisposition Browser::AdjustWindowOpenDispositionForTab( if (!is_pinned || original_disposition != CURRENT_TAB || (transition != PageTransition::AUTO_BOOKMARK && - transition != PageTransition::LINK)) { + transition != PageTransition::LINK && + transition != PageTransition::TYPED)) { return original_disposition; } diff --git a/chrome/browser/browser_unittest.cc b/chrome/browser/browser_unittest.cc index ad179ce..e6a530e 100644 --- a/chrome/browser/browser_unittest.cc +++ b/chrome/browser/browser_unittest.cc @@ -29,6 +29,13 @@ const struct NavigationScenario { PageTransition::AUTO_BOOKMARK, CURRENT_TAB, NEW_FOREGROUND_TAB }, + // Also works with TYPED. + { true, + "http://www.example.com", + "http://www.google.com", + PageTransition::TYPED, + CURRENT_TAB, + NEW_FOREGROUND_TAB }, // Also happens if the schemes differ. { true, "ftp://www.example.com", @@ -61,7 +68,7 @@ const struct NavigationScenario { { true, "http://www.example.com", "http://www.google.com", - PageTransition::TYPED, + PageTransition::RELOAD, CURRENT_TAB, CURRENT_TAB }, // Same domain and scheme - no change. |