| Index: chrome/browser/ui/browser.cc
|
| diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
|
| index f175ecbd8fa1a5229fd7ee4bffead0259d53a244..8b3458d6ee0b09e2cc5aae8e3652031c957ca50f 100644
|
| --- a/chrome/browser/ui/browser.cc
|
| +++ b/chrome/browser/ui/browser.cc
|
| @@ -1037,10 +1037,11 @@ bool Browser::NavigateToIndexWithDisposition(int index,
|
| return true;
|
| }
|
|
|
| -void Browser::ShowSingletonTab(const GURL& url) {
|
| +void Browser::ShowSingletonTab(const GURL& url, bool ignore_path) {
|
| browser::NavigateParams params(this, url, PageTransition::AUTO_BOOKMARK);
|
| params.disposition = SINGLETON_TAB;
|
| params.show_window = true;
|
| + params.ignore_path = ignore_path;
|
| browser::Navigate(¶ms);
|
| }
|
|
|
| @@ -1721,27 +1722,27 @@ void Browser::ShowAppMenu() {
|
|
|
| void Browser::ShowBookmarkManagerTab() {
|
| UserMetrics::RecordAction(UserMetricsAction("ShowBookmarks"), profile_);
|
| - ShowSingletonTab(GURL(chrome::kChromeUIBookmarksURL));
|
| + ShowSingletonTab(GURL(chrome::kChromeUIBookmarksURL), false);
|
| }
|
|
|
| void Browser::ShowHistoryTab() {
|
| UserMetrics::RecordAction(UserMetricsAction("ShowHistory"), profile_);
|
| - ShowSingletonTab(GURL(chrome::kChromeUIHistoryURL));
|
| + ShowSingletonTab(GURL(chrome::kChromeUIHistoryURL), false);
|
| }
|
|
|
| void Browser::ShowDownloadsTab() {
|
| UserMetrics::RecordAction(UserMetricsAction("ShowDownloads"), profile_);
|
| - ShowSingletonTab(GURL(chrome::kChromeUIDownloadsURL));
|
| + ShowSingletonTab(GURL(chrome::kChromeUIDownloadsURL), false);
|
| }
|
|
|
| void Browser::ShowExtensionsTab() {
|
| UserMetrics::RecordAction(UserMetricsAction("ShowExtensions"), profile_);
|
| - ShowSingletonTab(GURL(chrome::kChromeUIExtensionsURL));
|
| + ShowSingletonTab(GURL(chrome::kChromeUIExtensionsURL), false);
|
| }
|
|
|
| void Browser::ShowAboutConflictsTab() {
|
| UserMetrics::RecordAction(UserMetricsAction("AboutConflicts"), profile_);
|
| - ShowSingletonTab(GURL(chrome::kChromeUIConflictsURL));
|
| + ShowSingletonTab(GURL(chrome::kChromeUIConflictsURL), false);
|
| }
|
|
|
| void Browser::ShowBrokenPageTab(TabContents* contents) {
|
| @@ -1756,33 +1757,12 @@ void Browser::ShowBrokenPageTab(TabContents* contents) {
|
| subst.push_back(page_url);
|
| std::string report_page_url =
|
| ReplaceStringPlaceholders(kBrokenPageUrl, subst, NULL);
|
| - ShowSingletonTab(GURL(report_page_url));
|
| + ShowSingletonTab(GURL(report_page_url), false);
|
| }
|
|
|
| void Browser::ShowOptionsTab(const std::string& sub_page) {
|
| GURL url(chrome::kChromeUISettingsURL + sub_page);
|
| -
|
| - // See if there is already an options tab open that we can use.
|
| - TabStripModel* model = tab_handler_->GetTabStripModel();
|
| - for (int i = 0; i < model->count(); i++) {
|
| - TabContents* tc = model->GetTabContentsAt(i);
|
| - const GURL& tab_url = tc->GetURL();
|
| -
|
| - if (tab_url.scheme() == url.scheme() && tab_url.host() == url.host()) {
|
| - // We found an existing options tab, load the URL in this tab. (Note:
|
| - // this may cause us to unnecessarily reload the same page. We can't
|
| - // really detect that unless the options page is permitted to change the
|
| - // URL in the address bar, but security policy doesn't allow that.
|
| - browser::NavigateParams params(this, url, PageTransition::GENERATED);
|
| - params.source_contents = tc;
|
| - browser::Navigate(¶ms);
|
| - model->SelectTabContentsAt(i, false);
|
| - return;
|
| - }
|
| - }
|
| -
|
| - // No options tab found, so create a new one.
|
| - AddSelectedTabWithURL(url, PageTransition::AUTO_BOOKMARK);
|
| + ShowSingletonTab(url, true);
|
| }
|
|
|
| void Browser::OpenClearBrowsingDataDialog() {
|
| @@ -1848,7 +1828,7 @@ void Browser::OpenRemotingSetupDialog() {
|
| void Browser::OpenAboutChromeDialog() {
|
| UserMetrics::RecordAction(UserMetricsAction("AboutChrome"), profile_);
|
| #if defined(OS_CHROMEOS)
|
| - ShowSingletonTab(GURL(chrome::kChromeUIAboutURL));
|
| + ShowSingletonTab(GURL(chrome::kChromeUIAboutURL), false);
|
| #else
|
| window_->ShowAboutChromeDialog();
|
| #endif
|
|
|