OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/browser_about_handler.h" | 5 #include "chrome/browser/browser_about_handler.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 // If the material design extensions page is enabled, it gets its own host. | 73 // If the material design extensions page is enabled, it gets its own host. |
74 // Otherwise, it's handled by the uber settings page. | 74 // Otherwise, it's handled by the uber settings page. |
75 if (base::FeatureList::IsEnabled(features::kMaterialDesignExtensions)) { | 75 if (base::FeatureList::IsEnabled(features::kMaterialDesignExtensions)) { |
76 host = chrome::kChromeUIExtensionsHost; | 76 host = chrome::kChromeUIExtensionsHost; |
77 path = url->path(); | 77 path = url->path(); |
78 } else { | 78 } else { |
79 host = chrome::kChromeUIUberHost; | 79 host = chrome::kChromeUIUberHost; |
80 path = chrome::kChromeUIExtensionsHost + url->path(); | 80 path = chrome::kChromeUIExtensionsHost + url->path(); |
81 } | 81 } |
82 // Redirect chrome://settings/extensions (legacy URL). | 82 // Redirect chrome://settings/extensions (legacy URL). |
83 } else if (host == chrome::kChromeUISettingsHost && | 83 } else if (host == content::kChromeUISettingsHost && |
84 url->path() == | 84 url->path() == |
85 std::string("/") + chrome::kDeprecatedExtensionsSubPage) { | 85 std::string("/") + chrome::kDeprecatedExtensionsSubPage) { |
86 host = chrome::kChromeUIUberHost; | 86 host = chrome::kChromeUIUberHost; |
87 path = chrome::kChromeUIExtensionsHost; | 87 path = chrome::kChromeUIExtensionsHost; |
88 #endif // BUILDFLAG(ENABLE_EXTENSIONS) | 88 #endif // BUILDFLAG(ENABLE_EXTENSIONS) |
89 // Redirect chrome://history. | 89 // Redirect chrome://history. |
90 } else if (host == content::kChromeUIHistoryHost) { | 90 } else if (host == content::kChromeUIHistoryHost) { |
91 #if defined(OS_ANDROID) | 91 #if defined(OS_ANDROID) |
92 // TODO(twellington): remove this after native Android history launches. | 92 // TODO(twellington): remove this after native Android history launches. |
93 // See http://crbug.com/654071. | 93 // See http://crbug.com/654071. |
94 if (!base::FeatureList::IsEnabled(features::kNativeAndroidHistoryManager)) { | 94 if (!base::FeatureList::IsEnabled(features::kNativeAndroidHistoryManager)) { |
95 // On Android, redirect directly to chrome://history-frame since | 95 // On Android, redirect directly to chrome://history-frame since |
96 // uber page is unsupported. | 96 // uber page is unsupported. |
97 host = chrome::kChromeUIHistoryFrameHost; | 97 host = chrome::kChromeUIHistoryFrameHost; |
98 } | 98 } |
99 #else | 99 #else |
100 // Material design history is handled on the top-level chrome://history | 100 // Material design history is handled on the top-level chrome://history |
101 // host. | 101 // host. |
102 if (base::FeatureList::IsEnabled(features::kMaterialDesignHistory)) { | 102 if (base::FeatureList::IsEnabled(features::kMaterialDesignHistory)) { |
103 host = content::kChromeUIHistoryHost; | 103 host = content::kChromeUIHistoryHost; |
104 path = url->path(); | 104 path = url->path(); |
105 } else { | 105 } else { |
106 host = chrome::kChromeUIUberHost; | 106 host = chrome::kChromeUIUberHost; |
107 path = content::kChromeUIHistoryHost + url->path(); | 107 path = content::kChromeUIHistoryHost + url->path(); |
108 } | 108 } |
109 #endif | 109 #endif |
110 // Redirect chrome://settings, unless MD settings is enabled. | 110 // Redirect chrome://settings, unless MD settings is enabled. |
111 } else if (host == chrome::kChromeUISettingsHost) { | 111 } else if (host == content::kChromeUISettingsHost) { |
112 if (base::FeatureList::IsEnabled(features::kMaterialDesignSettings)) { | 112 if (base::FeatureList::IsEnabled(features::kMaterialDesignSettings)) { |
113 return true; // Prevent further rewriting - this is a valid URL. | 113 return true; // Prevent further rewriting - this is a valid URL. |
114 } else if (::switches::SettingsWindowEnabled()) { | 114 } else if (::switches::SettingsWindowEnabled()) { |
115 host = chrome::kChromeUISettingsFrameHost; | 115 host = chrome::kChromeUISettingsFrameHost; |
116 } else { | 116 } else { |
117 host = chrome::kChromeUIUberHost; | 117 host = chrome::kChromeUIUberHost; |
118 path = chrome::kChromeUISettingsHost + url->path(); | 118 path = content::kChromeUISettingsHost + url->path(); |
119 } | 119 } |
120 // Redirect chrome://help, unless MD settings is enabled. | 120 // Redirect chrome://help, unless MD settings is enabled. |
121 } else if (host == chrome::kChromeUIHelpHost) { | 121 } else if (host == content::kChromeUIHelpHost) { |
122 if (base::FeatureList::IsEnabled(features::kMaterialDesignSettings)) { | 122 if (base::FeatureList::IsEnabled(features::kMaterialDesignSettings)) { |
123 return false; // Handled in the HandleWebUI handler. | 123 return false; // Handled in the HandleWebUI handler. |
124 } else if (::switches::SettingsWindowEnabled()) { | 124 } else if (::switches::SettingsWindowEnabled()) { |
125 host = chrome::kChromeUISettingsFrameHost; | 125 host = chrome::kChromeUISettingsFrameHost; |
126 if (url->path().empty() || url->path() == "/") | 126 if (url->path().empty() || url->path() == "/") |
127 path = chrome::kChromeUIHelpHost; | 127 path = content::kChromeUIHelpHost; |
128 } else { | 128 } else { |
129 host = chrome::kChromeUIUberHost; | 129 host = chrome::kChromeUIUberHost; |
130 path = chrome::kChromeUIHelpHost + url->path(); | 130 path = content::kChromeUIHelpHost + url->path(); |
131 } | 131 } |
132 } | 132 } |
133 | 133 |
134 GURL::Replacements replacements; | 134 GURL::Replacements replacements; |
135 replacements.SetHostStr(host); | 135 replacements.SetHostStr(host); |
136 if (!path.empty()) | 136 if (!path.empty()) |
137 replacements.SetPathStr(path); | 137 replacements.SetPathStr(path); |
138 *url = url->ReplaceComponents(replacements); | 138 *url = url->ReplaceComponents(replacements); |
139 | 139 |
140 // Having re-written the URL, make the chrome: handler process it. | 140 // Having re-written the URL, make the chrome: handler process it. |
(...skipping 10 matching lines...) Expand all Loading... |
151 FROM_HERE, base::Bind(&chrome::AttemptRestart)); | 151 FROM_HERE, base::Bind(&chrome::AttemptRestart)); |
152 return true; | 152 return true; |
153 } else if (base::LowerCaseEqualsASCII(spec, chrome::kChromeUIQuitURL)) { | 153 } else if (base::LowerCaseEqualsASCII(spec, chrome::kChromeUIQuitURL)) { |
154 base::ThreadTaskRunnerHandle::Get()->PostTask( | 154 base::ThreadTaskRunnerHandle::Get()->PostTask( |
155 FROM_HERE, base::Bind(&chrome::AttemptExit)); | 155 FROM_HERE, base::Bind(&chrome::AttemptExit)); |
156 return true; | 156 return true; |
157 } | 157 } |
158 | 158 |
159 return false; | 159 return false; |
160 } | 160 } |
OLD | NEW |