Chromium Code Reviews| 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/ui/browser_command_controller.h" | 5 #include "chrome/browser/ui/browser_command_controller.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| 11 #include "base/command_line.h" | 11 #include "base/command_line.h" |
| 12 #include "base/debug/debugging_flags.h" | 12 #include "base/debug/debugging_flags.h" |
| 13 #include "base/debug/profiler.h" | 13 #include "base/debug/profiler.h" |
| 14 #include "base/feature_list.h" | |
| 14 #include "base/macros.h" | 15 #include "base/macros.h" |
| 15 #include "build/build_config.h" | 16 #include "build/build_config.h" |
| 16 #include "chrome/app/chrome_command_ids.h" | 17 #include "chrome/app/chrome_command_ids.h" |
| 17 #include "chrome/browser/browser_process.h" | 18 #include "chrome/browser/browser_process.h" |
| 18 #include "chrome/browser/chrome_notification_types.h" | 19 #include "chrome/browser/chrome_notification_types.h" |
| 19 #include "chrome/browser/defaults.h" | 20 #include "chrome/browser/defaults.h" |
| 20 #include "chrome/browser/extensions/extension_service.h" | 21 #include "chrome/browser/extensions/extension_service.h" |
| 21 #include "chrome/browser/extensions/extension_util.h" | 22 #include "chrome/browser/extensions/extension_util.h" |
| 22 #include "chrome/browser/lifetime/application_lifetime.h" | 23 #include "chrome/browser/lifetime/application_lifetime.h" |
| 23 #include "chrome/browser/prefs/incognito_mode_prefs.h" | 24 #include "chrome/browser/prefs/incognito_mode_prefs.h" |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 110 if (entry->GetVirtualURL().SchemeIs(content::kViewSourceScheme)) | 111 if (entry->GetVirtualURL().SchemeIs(content::kViewSourceScheme)) |
| 111 return entry->GetURL().SchemeIs(content::kChromeUIScheme); | 112 return entry->GetURL().SchemeIs(content::kChromeUIScheme); |
| 112 | 113 |
| 113 return false; | 114 return false; |
| 114 } | 115 } |
| 115 | 116 |
| 116 } // namespace | 117 } // namespace |
| 117 | 118 |
| 118 namespace chrome { | 119 namespace chrome { |
| 119 | 120 |
| 121 const base::Feature kBackspaceGoesBackFeature { | |
| 122 "BackspaceGoesBack", base::FEATURE_DISABLED_BY_DEFAULT | |
| 123 }; | |
| 124 | |
| 120 /////////////////////////////////////////////////////////////////////////////// | 125 /////////////////////////////////////////////////////////////////////////////// |
| 121 // BrowserCommandController, public: | 126 // BrowserCommandController, public: |
| 122 | 127 |
| 123 BrowserCommandController::BrowserCommandController(Browser* browser) | 128 BrowserCommandController::BrowserCommandController(Browser* browser) |
| 124 : browser_(browser), | 129 : browser_(browser), |
| 125 command_updater_(this), | 130 command_updater_(this), |
| 126 block_command_execution_(false), | 131 block_command_execution_(false), |
| 127 last_blocked_command_id_(-1), | 132 last_blocked_command_id_(-1), |
| 128 last_blocked_command_disposition_(CURRENT_TAB) { | 133 last_blocked_command_disposition_(CURRENT_TAB) { |
| 129 browser_->tab_strip_model()->AddObserver(this); | 134 browser_->tab_strip_model()->AddObserver(this); |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 308 DCHECK_EQ(last_blocked_command_id_, -1); | 313 DCHECK_EQ(last_blocked_command_id_, -1); |
| 309 last_blocked_command_id_ = id; | 314 last_blocked_command_id_ = id; |
| 310 last_blocked_command_disposition_ = disposition; | 315 last_blocked_command_disposition_ = disposition; |
| 311 return; | 316 return; |
| 312 } | 317 } |
| 313 | 318 |
| 314 // The order of commands in this switch statement must match the function | 319 // The order of commands in this switch statement must match the function |
| 315 // declaration order in browser.h! | 320 // declaration order in browser.h! |
| 316 switch (id) { | 321 switch (id) { |
| 317 // Navigation commands | 322 // Navigation commands |
| 323 case IDC_BACKSPACE_BACK: | |
| 324 if (base::FeatureList::IsEnabled(kBackspaceGoesBackFeature)) | |
| 325 GoBack(browser_, disposition); | |
| 326 break; | |
| 327 case IDC_BACKSPACE_FORWARD: | |
| 328 if (base::FeatureList::IsEnabled(kBackspaceGoesBackFeature)) | |
| 329 GoForward(browser_, disposition); | |
| 330 break; | |
| 318 case IDC_BACK: | 331 case IDC_BACK: |
| 319 GoBack(browser_, disposition); | 332 GoBack(browser_, disposition); |
| 320 break; | 333 break; |
|
Peter Kasting
2016/05/19 09:28:30
Nit: Slightly shorter, and abides by the comment a
ojan
2016/05/20 16:33:48
done
Matt Giuca
2016/05/23 01:12:01
Um, this is kind of gross and I'm going to have to
Matt Giuca
2016/05/23 01:15:40
Sorry, actually I can keep the conditional fall-th
| |
| 321 case IDC_FORWARD: | 334 case IDC_FORWARD: |
| 322 GoForward(browser_, disposition); | 335 GoForward(browser_, disposition); |
| 323 break; | 336 break; |
| 324 case IDC_RELOAD: | 337 case IDC_RELOAD: |
| 325 Reload(browser_, disposition); | 338 Reload(browser_, disposition); |
| 326 break; | 339 break; |
| 327 case IDC_RELOAD_CLEARING_CACHE: | 340 case IDC_RELOAD_CLEARING_CACHE: |
| 328 ClearCache(browser_); | 341 ClearCache(browser_); |
| 329 // FALL THROUGH | 342 // FALL THROUGH |
| 330 case IDC_RELOAD_BYPASSING_CACHE: | 343 case IDC_RELOAD_BYPASSING_CACHE: |
| (...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 971 } | 984 } |
| 972 } | 985 } |
| 973 | 986 |
| 974 void BrowserCommandController::UpdateCommandsForTabState() { | 987 void BrowserCommandController::UpdateCommandsForTabState() { |
| 975 WebContents* current_web_contents = | 988 WebContents* current_web_contents = |
| 976 browser_->tab_strip_model()->GetActiveWebContents(); | 989 browser_->tab_strip_model()->GetActiveWebContents(); |
| 977 if (!current_web_contents) // May be NULL during tab restore. | 990 if (!current_web_contents) // May be NULL during tab restore. |
| 978 return; | 991 return; |
| 979 | 992 |
| 980 // Navigation commands | 993 // Navigation commands |
| 994 command_updater_.UpdateCommandEnabled(IDC_BACKSPACE_BACK, | |
| 995 CanGoBack(browser_)); | |
| 996 command_updater_.UpdateCommandEnabled(IDC_BACKSPACE_FORWARD, | |
|
Peter Kasting
2016/05/19 09:28:30
Nit: Swap this with next line to keep the backs/fo
ojan
2016/05/20 16:33:48
done
| |
| 997 CanGoForward(browser_)); | |
| 981 command_updater_.UpdateCommandEnabled(IDC_BACK, CanGoBack(browser_)); | 998 command_updater_.UpdateCommandEnabled(IDC_BACK, CanGoBack(browser_)); |
| 982 command_updater_.UpdateCommandEnabled(IDC_FORWARD, CanGoForward(browser_)); | 999 command_updater_.UpdateCommandEnabled(IDC_FORWARD, CanGoForward(browser_)); |
| 983 command_updater_.UpdateCommandEnabled(IDC_RELOAD, CanReload(browser_)); | 1000 command_updater_.UpdateCommandEnabled(IDC_RELOAD, CanReload(browser_)); |
| 984 command_updater_.UpdateCommandEnabled(IDC_RELOAD_BYPASSING_CACHE, | 1001 command_updater_.UpdateCommandEnabled(IDC_RELOAD_BYPASSING_CACHE, |
| 985 CanReload(browser_)); | 1002 CanReload(browser_)); |
| 986 command_updater_.UpdateCommandEnabled(IDC_RELOAD_CLEARING_CACHE, | 1003 command_updater_.UpdateCommandEnabled(IDC_RELOAD_CLEARING_CACHE, |
| 987 CanReload(browser_)); | 1004 CanReload(browser_)); |
| 988 | 1005 |
| 989 // Window management commands | 1006 // Window management commands |
| 990 command_updater_.UpdateCommandEnabled(IDC_DUPLICATE_TAB, | 1007 command_updater_.UpdateCommandEnabled(IDC_DUPLICATE_TAB, |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1251 | 1268 |
| 1252 BrowserWindow* BrowserCommandController::window() { | 1269 BrowserWindow* BrowserCommandController::window() { |
| 1253 return browser_->window(); | 1270 return browser_->window(); |
| 1254 } | 1271 } |
| 1255 | 1272 |
| 1256 Profile* BrowserCommandController::profile() { | 1273 Profile* BrowserCommandController::profile() { |
| 1257 return browser_->profile(); | 1274 return browser_->profile(); |
| 1258 } | 1275 } |
| 1259 | 1276 |
| 1260 } // namespace chrome | 1277 } // namespace chrome |
| OLD | NEW |