diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-24 00:17:32 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-24 00:17:32 +0000 |
commit | 9a8ea9255431c4565cfcacaa34efece9f7f01dd8 (patch) | |
tree | 607291b7efc167f112edd7b2ac99f24b0946ce94 /chrome/browser | |
parent | 92035e1b295873b4c70301a28d33bd023ab01f10 (diff) | |
download | chromium_src-9a8ea9255431c4565cfcacaa34efece9f7f01dd8.zip chromium_src-9a8ea9255431c4565cfcacaa34efece9f7f01dd8.tar.gz chromium_src-9a8ea9255431c4565cfcacaa34efece9f7f01dd8.tar.bz2 |
Make pinned tabs a little stickier.
Use the same algorithm for rewriting the window open disposition as we use for link clicking.
BUG=47190
TEST=manual; unit tests
Review URL: http://codereview.chromium.org/2807016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50674 0039d316-1c4b-4281-b951-d872f2087c98
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. |