summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-24 00:17:32 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-24 00:17:32 +0000
commit9a8ea9255431c4565cfcacaa34efece9f7f01dd8 (patch)
tree607291b7efc167f112edd7b2ac99f24b0946ce94
parent92035e1b295873b4c70301a28d33bd023ab01f10 (diff)
downloadchromium_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
-rw-r--r--chrome/browser/browser.cc14
-rw-r--r--chrome/browser/browser_unittest.cc9
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.