Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(664)

Side by Side Diff: chrome/browser/ui/browser.cc

Issue 4145013: DOMUI: Use ShowSingletonTab to open the settings tab. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: csilv review fixes. Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/ui/browser.h ('k') | chrome/browser/ui/browser_navigator.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/browser.h" 5 #include "chrome/browser/ui/browser.h"
6 6
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <shellapi.h> 8 #include <shellapi.h>
9 #include <windows.h> 9 #include <windows.h>
10 #endif // OS_WIN 10 #endif // OS_WIN
(...skipping 1019 matching lines...) Expand 10 before | Expand all | Expand 10 after
1030 bool Browser::NavigateToIndexWithDisposition(int index, 1030 bool Browser::NavigateToIndexWithDisposition(int index,
1031 WindowOpenDisposition disp) { 1031 WindowOpenDisposition disp) {
1032 NavigationController& controller = 1032 NavigationController& controller =
1033 GetOrCloneTabForDisposition(disp)->controller(); 1033 GetOrCloneTabForDisposition(disp)->controller();
1034 if (index < 0 || index >= controller.entry_count()) 1034 if (index < 0 || index >= controller.entry_count())
1035 return false; 1035 return false;
1036 controller.GoToIndex(index); 1036 controller.GoToIndex(index);
1037 return true; 1037 return true;
1038 } 1038 }
1039 1039
1040 void Browser::ShowSingletonTab(const GURL& url) { 1040 void Browser::ShowSingletonTab(const GURL& url, bool ignore_path) {
1041 browser::NavigateParams params(this, url, PageTransition::AUTO_BOOKMARK); 1041 browser::NavigateParams params(this, url, PageTransition::AUTO_BOOKMARK);
1042 params.disposition = SINGLETON_TAB; 1042 params.disposition = SINGLETON_TAB;
1043 params.show_window = true; 1043 params.show_window = true;
1044 params.ignore_path = ignore_path;
1044 browser::Navigate(&params); 1045 browser::Navigate(&params);
1045 } 1046 }
1046 1047
1047 void Browser::UpdateCommandsForFullscreenMode(bool is_fullscreen) { 1048 void Browser::UpdateCommandsForFullscreenMode(bool is_fullscreen) {
1048 #if !defined(OS_MACOSX) 1049 #if !defined(OS_MACOSX)
1049 const bool show_main_ui = (type() == TYPE_NORMAL) && !is_fullscreen; 1050 const bool show_main_ui = (type() == TYPE_NORMAL) && !is_fullscreen;
1050 #else 1051 #else
1051 const bool show_main_ui = (type() == TYPE_NORMAL); 1052 const bool show_main_ui = (type() == TYPE_NORMAL);
1052 #endif 1053 #endif
1053 1054
(...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after
1714 ShowBookmarkManagerTab(); 1715 ShowBookmarkManagerTab();
1715 } 1716 }
1716 1717
1717 void Browser::ShowAppMenu() { 1718 void Browser::ShowAppMenu() {
1718 UserMetrics::RecordAction(UserMetricsAction("ShowAppMenu"), profile_); 1719 UserMetrics::RecordAction(UserMetricsAction("ShowAppMenu"), profile_);
1719 window_->ShowAppMenu(); 1720 window_->ShowAppMenu();
1720 } 1721 }
1721 1722
1722 void Browser::ShowBookmarkManagerTab() { 1723 void Browser::ShowBookmarkManagerTab() {
1723 UserMetrics::RecordAction(UserMetricsAction("ShowBookmarks"), profile_); 1724 UserMetrics::RecordAction(UserMetricsAction("ShowBookmarks"), profile_);
1724 ShowSingletonTab(GURL(chrome::kChromeUIBookmarksURL)); 1725 ShowSingletonTab(GURL(chrome::kChromeUIBookmarksURL), false);
1725 } 1726 }
1726 1727
1727 void Browser::ShowHistoryTab() { 1728 void Browser::ShowHistoryTab() {
1728 UserMetrics::RecordAction(UserMetricsAction("ShowHistory"), profile_); 1729 UserMetrics::RecordAction(UserMetricsAction("ShowHistory"), profile_);
1729 ShowSingletonTab(GURL(chrome::kChromeUIHistoryURL)); 1730 ShowSingletonTab(GURL(chrome::kChromeUIHistoryURL), false);
1730 } 1731 }
1731 1732
1732 void Browser::ShowDownloadsTab() { 1733 void Browser::ShowDownloadsTab() {
1733 UserMetrics::RecordAction(UserMetricsAction("ShowDownloads"), profile_); 1734 UserMetrics::RecordAction(UserMetricsAction("ShowDownloads"), profile_);
1734 ShowSingletonTab(GURL(chrome::kChromeUIDownloadsURL)); 1735 ShowSingletonTab(GURL(chrome::kChromeUIDownloadsURL), false);
1735 } 1736 }
1736 1737
1737 void Browser::ShowExtensionsTab() { 1738 void Browser::ShowExtensionsTab() {
1738 UserMetrics::RecordAction(UserMetricsAction("ShowExtensions"), profile_); 1739 UserMetrics::RecordAction(UserMetricsAction("ShowExtensions"), profile_);
1739 ShowSingletonTab(GURL(chrome::kChromeUIExtensionsURL)); 1740 ShowSingletonTab(GURL(chrome::kChromeUIExtensionsURL), false);
1740 } 1741 }
1741 1742
1742 void Browser::ShowAboutConflictsTab() { 1743 void Browser::ShowAboutConflictsTab() {
1743 UserMetrics::RecordAction(UserMetricsAction("AboutConflicts"), profile_); 1744 UserMetrics::RecordAction(UserMetricsAction("AboutConflicts"), profile_);
1744 ShowSingletonTab(GURL(chrome::kChromeUIConflictsURL)); 1745 ShowSingletonTab(GURL(chrome::kChromeUIConflictsURL), false);
1745 } 1746 }
1746 1747
1747 void Browser::ShowBrokenPageTab(TabContents* contents) { 1748 void Browser::ShowBrokenPageTab(TabContents* contents) {
1748 UserMetrics::RecordAction(UserMetricsAction("ReportBug"), profile_); 1749 UserMetrics::RecordAction(UserMetricsAction("ReportBug"), profile_);
1749 string16 page_title = contents->GetTitle(); 1750 string16 page_title = contents->GetTitle();
1750 NavigationEntry* entry = contents->controller().GetActiveEntry(); 1751 NavigationEntry* entry = contents->controller().GetActiveEntry();
1751 if (!entry) 1752 if (!entry)
1752 return; 1753 return;
1753 std::string page_url = entry->url().spec(); 1754 std::string page_url = entry->url().spec();
1754 std::vector<std::string> subst; 1755 std::vector<std::string> subst;
1755 subst.push_back(UTF16ToASCII(page_title)); 1756 subst.push_back(UTF16ToASCII(page_title));
1756 subst.push_back(page_url); 1757 subst.push_back(page_url);
1757 std::string report_page_url = 1758 std::string report_page_url =
1758 ReplaceStringPlaceholders(kBrokenPageUrl, subst, NULL); 1759 ReplaceStringPlaceholders(kBrokenPageUrl, subst, NULL);
1759 ShowSingletonTab(GURL(report_page_url)); 1760 ShowSingletonTab(GURL(report_page_url), false);
1760 } 1761 }
1761 1762
1762 void Browser::ShowOptionsTab(const std::string& sub_page) { 1763 void Browser::ShowOptionsTab(const std::string& sub_page) {
1763 GURL url(chrome::kChromeUISettingsURL + sub_page); 1764 GURL url(chrome::kChromeUISettingsURL + sub_page);
1764 1765 ShowSingletonTab(url, true);
1765 // See if there is already an options tab open that we can use.
1766 TabStripModel* model = tab_handler_->GetTabStripModel();
1767 for (int i = 0; i < model->count(); i++) {
1768 TabContents* tc = model->GetTabContentsAt(i);
1769 const GURL& tab_url = tc->GetURL();
1770
1771 if (tab_url.scheme() == url.scheme() && tab_url.host() == url.host()) {
1772 // We found an existing options tab, load the URL in this tab. (Note:
1773 // this may cause us to unnecessarily reload the same page. We can't
1774 // really detect that unless the options page is permitted to change the
1775 // URL in the address bar, but security policy doesn't allow that.
1776 browser::NavigateParams params(this, url, PageTransition::GENERATED);
1777 params.source_contents = tc;
1778 browser::Navigate(&params);
1779 model->SelectTabContentsAt(i, false);
1780 return;
1781 }
1782 }
1783
1784 // No options tab found, so create a new one.
1785 AddSelectedTabWithURL(url, PageTransition::AUTO_BOOKMARK);
1786 } 1766 }
1787 1767
1788 void Browser::OpenClearBrowsingDataDialog() { 1768 void Browser::OpenClearBrowsingDataDialog() {
1789 UserMetrics::RecordAction(UserMetricsAction("ClearBrowsingData_ShowDlg"), 1769 UserMetrics::RecordAction(UserMetricsAction("ClearBrowsingData_ShowDlg"),
1790 profile_); 1770 profile_);
1791 if (CommandLine::ForCurrentProcess()->HasSwitch( 1771 if (CommandLine::ForCurrentProcess()->HasSwitch(
1792 switches::kEnableTabbedOptions)) { 1772 switches::kEnableTabbedOptions)) {
1793 ShowOptionsTab( 1773 ShowOptionsTab(
1794 chrome::kAdvancedOptionsSubPage + std::string(kHashMark) + 1774 chrome::kAdvancedOptionsSubPage + std::string(kHashMark) +
1795 chrome::kClearBrowserDataSubPage); 1775 chrome::kClearBrowserDataSubPage);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1841 1821
1842 #if defined(ENABLE_REMOTING) 1822 #if defined(ENABLE_REMOTING)
1843 void Browser::OpenRemotingSetupDialog() { 1823 void Browser::OpenRemotingSetupDialog() {
1844 RemotingSetupFlow::OpenDialog(profile_); 1824 RemotingSetupFlow::OpenDialog(profile_);
1845 } 1825 }
1846 #endif 1826 #endif
1847 1827
1848 void Browser::OpenAboutChromeDialog() { 1828 void Browser::OpenAboutChromeDialog() {
1849 UserMetrics::RecordAction(UserMetricsAction("AboutChrome"), profile_); 1829 UserMetrics::RecordAction(UserMetricsAction("AboutChrome"), profile_);
1850 #if defined(OS_CHROMEOS) 1830 #if defined(OS_CHROMEOS)
1851 ShowSingletonTab(GURL(chrome::kChromeUIAboutURL)); 1831 ShowSingletonTab(GURL(chrome::kChromeUIAboutURL), false);
1852 #else 1832 #else
1853 window_->ShowAboutChromeDialog(); 1833 window_->ShowAboutChromeDialog();
1854 #endif 1834 #endif
1855 } 1835 }
1856 1836
1857 void Browser::OpenUpdateChromeDialog() { 1837 void Browser::OpenUpdateChromeDialog() {
1858 UserMetrics::RecordAction(UserMetricsAction("UpdateChrome"), profile_); 1838 UserMetrics::RecordAction(UserMetricsAction("UpdateChrome"), profile_);
1859 window_->ShowUpdateChromeDialog(); 1839 window_->ShowUpdateChromeDialog();
1860 } 1840 }
1861 1841
(...skipping 2231 matching lines...) Expand 10 before | Expand all | Expand 10 after
4093 NOTREACHED(); 4073 NOTREACHED();
4094 return false; 4074 return false;
4095 } 4075 }
4096 4076
4097 void Browser::CreateInstantIfNecessary() { 4077 void Browser::CreateInstantIfNecessary() {
4098 if (type() == TYPE_NORMAL && InstantController::IsEnabled(profile()) && 4078 if (type() == TYPE_NORMAL && InstantController::IsEnabled(profile()) &&
4099 !profile()->IsOffTheRecord()) { 4079 !profile()->IsOffTheRecord()) {
4100 instant_.reset(new InstantController(profile_, this)); 4080 instant_.reset(new InstantController(profile_, this));
4101 } 4081 }
4102 } 4082 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/browser.h ('k') | chrome/browser/ui/browser_navigator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698