| 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 "chrome/app/chrome_command_ids.h" | 7 #include "chrome/app/chrome_command_ids.h" |
| 8 #include "chrome/browser/browser_process.h" | 8 #include "chrome/browser/browser_process.h" |
| 9 #include "chrome/browser/defaults.h" | 9 #include "chrome/browser/defaults.h" |
| 10 #include "chrome/browser/extensions/extension_service.h" | 10 #include "chrome/browser/extensions/extension_service.h" |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 BrowserCommandController::BrowserCommandController(Browser* browser) | 152 BrowserCommandController::BrowserCommandController(Browser* browser) |
| 153 : browser_(browser), | 153 : browser_(browser), |
| 154 ALLOW_THIS_IN_INITIALIZER_LIST(command_updater_(this)), | 154 ALLOW_THIS_IN_INITIALIZER_LIST(command_updater_(this)), |
| 155 block_command_execution_(false), | 155 block_command_execution_(false), |
| 156 last_blocked_command_id_(-1), | 156 last_blocked_command_id_(-1), |
| 157 last_blocked_command_disposition_(CURRENT_TAB) { | 157 last_blocked_command_disposition_(CURRENT_TAB) { |
| 158 browser_->tab_strip_model()->AddObserver(this); | 158 browser_->tab_strip_model()->AddObserver(this); |
| 159 PrefService* local_state = g_browser_process->local_state(); | 159 PrefService* local_state = g_browser_process->local_state(); |
| 160 if (local_state) { | 160 if (local_state) { |
| 161 local_pref_registrar_.Init(local_state); | 161 local_pref_registrar_.Init(local_state); |
| 162 local_pref_registrar_.Add( | 162 local_pref_registrar_.Add(prefs::kAllowFileSelectionDialogs, this); |
| 163 prefs::kAllowFileSelectionDialogs, | 163 local_pref_registrar_.Add(prefs::kInManagedMode, this); |
| 164 base::Bind( | |
| 165 &BrowserCommandController::UpdateCommandsForFileSelectionDialogs, | |
| 166 base::Unretained(this))); | |
| 167 local_pref_registrar_.Add( | |
| 168 prefs::kInManagedMode, | |
| 169 base::Bind( | |
| 170 &BrowserCommandController::UpdateCommandsForMultipleProfiles, | |
| 171 base::Unretained(this))); | |
| 172 } | 164 } |
| 173 | 165 |
| 174 profile_pref_registrar_.Init(profile()->GetPrefs()); | 166 profile_pref_registrar_.Init(profile()->GetPrefs()); |
| 175 profile_pref_registrar_.Add( | 167 profile_pref_registrar_.Add(prefs::kDevToolsDisabled, this); |
| 176 prefs::kDevToolsDisabled, | 168 profile_pref_registrar_.Add(prefs::kEditBookmarksEnabled, this); |
| 177 base::Bind(&BrowserCommandController::UpdateCommandsForDevTools, | 169 profile_pref_registrar_.Add(prefs::kShowBookmarkBar, this); |
| 178 base::Unretained(this))); | 170 profile_pref_registrar_.Add(prefs::kIncognitoModeAvailability, this); |
| 179 profile_pref_registrar_.Add( | 171 profile_pref_registrar_.Add(prefs::kPrintingEnabled, this); |
| 180 prefs::kEditBookmarksEnabled, | |
| 181 base::Bind(&BrowserCommandController::UpdateCommandsForBookmarkEditing, | |
| 182 base::Unretained(this))); | |
| 183 profile_pref_registrar_.Add( | |
| 184 prefs::kShowBookmarkBar, | |
| 185 base::Bind(&BrowserCommandController::UpdateCommandsForBookmarkBar, | |
| 186 base::Unretained(this))); | |
| 187 profile_pref_registrar_.Add( | |
| 188 prefs::kIncognitoModeAvailability, | |
| 189 base::Bind( | |
| 190 &BrowserCommandController::UpdateCommandsForIncognitoAvailability, | |
| 191 base::Unretained(this))); | |
| 192 profile_pref_registrar_.Add( | |
| 193 prefs::kPrintingEnabled, | |
| 194 base::Bind(&BrowserCommandController::UpdatePrintingState, | |
| 195 base::Unretained(this))); | |
| 196 | 172 |
| 197 InitCommandState(); | 173 InitCommandState(); |
| 198 | 174 |
| 199 TabRestoreService* tab_restore_service = | 175 TabRestoreService* tab_restore_service = |
| 200 TabRestoreServiceFactory::GetForProfile(profile()); | 176 TabRestoreServiceFactory::GetForProfile(profile()); |
| 201 if (tab_restore_service) { | 177 if (tab_restore_service) { |
| 202 tab_restore_service->AddObserver(this); | 178 tab_restore_service->AddObserver(this); |
| 203 TabRestoreServiceChanged(tab_restore_service); | 179 TabRestoreServiceChanged(tab_restore_service); |
| 204 } | 180 } |
| 205 | 181 |
| (...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 701 case content::NOTIFICATION_INTERSTITIAL_DETACHED: | 677 case content::NOTIFICATION_INTERSTITIAL_DETACHED: |
| 702 UpdateCommandsForTabState(); | 678 UpdateCommandsForTabState(); |
| 703 break; | 679 break; |
| 704 | 680 |
| 705 default: | 681 default: |
| 706 NOTREACHED() << "Got a notification we didn't register for."; | 682 NOTREACHED() << "Got a notification we didn't register for."; |
| 707 } | 683 } |
| 708 } | 684 } |
| 709 | 685 |
| 710 //////////////////////////////////////////////////////////////////////////////// | 686 //////////////////////////////////////////////////////////////////////////////// |
| 687 // PrefObserver implementation: |
| 688 |
| 689 void BrowserCommandController::OnPreferenceChanged( |
| 690 PrefServiceBase* service, |
| 691 const std::string& pref_name) { |
| 692 if (pref_name == prefs::kPrintingEnabled) { |
| 693 UpdatePrintingState(); |
| 694 } else if (pref_name == prefs::kIncognitoModeAvailability) { |
| 695 UpdateCommandsForIncognitoAvailability(); |
| 696 } else if (pref_name == prefs::kDevToolsDisabled) { |
| 697 UpdateCommandsForDevTools(); |
| 698 } else if (pref_name == prefs::kEditBookmarksEnabled) { |
| 699 UpdateCommandsForBookmarkEditing(); |
| 700 } else if (pref_name == prefs::kShowBookmarkBar) { |
| 701 UpdateCommandsForBookmarkBar(); |
| 702 } else if (pref_name == prefs::kAllowFileSelectionDialogs) { |
| 703 UpdateSaveAsState(); |
| 704 UpdateOpenFileState(); |
| 705 } else if (pref_name == prefs::kInManagedMode) { |
| 706 UpdateCommandsForMultipleProfiles(); |
| 707 } else { |
| 708 NOTREACHED(); |
| 709 } |
| 710 } |
| 711 |
| 712 //////////////////////////////////////////////////////////////////////////////// |
| 711 // BrowserCommandController, TabStripModelObserver implementation: | 713 // BrowserCommandController, TabStripModelObserver implementation: |
| 712 | 714 |
| 713 void BrowserCommandController::TabInsertedAt(WebContents* contents, | 715 void BrowserCommandController::TabInsertedAt(WebContents* contents, |
| 714 int index, | 716 int index, |
| 715 bool foreground) { | 717 bool foreground) { |
| 716 AddInterstitialObservers(contents); | 718 AddInterstitialObservers(contents); |
| 717 } | 719 } |
| 718 | 720 |
| 719 void BrowserCommandController::TabDetachedAt(WebContents* contents, int index) { | 721 void BrowserCommandController::TabDetachedAt(WebContents* contents, int index) { |
| 720 RemoveInterstitialObservers(contents); | 722 RemoveInterstitialObservers(contents); |
| (...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1043 | 1045 |
| 1044 void BrowserCommandController::UpdateCommandsForBookmarkBar() { | 1046 void BrowserCommandController::UpdateCommandsForBookmarkBar() { |
| 1045 const bool show_main_ui = | 1047 const bool show_main_ui = |
| 1046 IsShowingMainUI(window() && window()->IsFullscreen()); | 1048 IsShowingMainUI(window() && window()->IsFullscreen()); |
| 1047 command_updater_.UpdateCommandEnabled(IDC_SHOW_BOOKMARK_BAR, | 1049 command_updater_.UpdateCommandEnabled(IDC_SHOW_BOOKMARK_BAR, |
| 1048 browser_defaults::bookmarks_enabled && | 1050 browser_defaults::bookmarks_enabled && |
| 1049 !profile()->GetPrefs()->IsManagedPreference(prefs::kShowBookmarkBar) && | 1051 !profile()->GetPrefs()->IsManagedPreference(prefs::kShowBookmarkBar) && |
| 1050 show_main_ui); | 1052 show_main_ui); |
| 1051 } | 1053 } |
| 1052 | 1054 |
| 1053 void BrowserCommandController::UpdateCommandsForFileSelectionDialogs() { | |
| 1054 UpdateSaveAsState(); | |
| 1055 UpdateOpenFileState(); | |
| 1056 } | |
| 1057 | |
| 1058 void BrowserCommandController::UpdateCommandsForFullscreenMode( | 1055 void BrowserCommandController::UpdateCommandsForFullscreenMode( |
| 1059 FullScreenMode fullscreen_mode) { | 1056 FullScreenMode fullscreen_mode) { |
| 1060 const bool show_main_ui = | 1057 const bool show_main_ui = |
| 1061 IsShowingMainUI(fullscreen_mode != FULLSCREEN_DISABLED); | 1058 IsShowingMainUI(fullscreen_mode != FULLSCREEN_DISABLED); |
| 1062 bool main_not_fullscreen = show_main_ui && | 1059 bool main_not_fullscreen = show_main_ui && |
| 1063 (fullscreen_mode == FULLSCREEN_DISABLED); | 1060 (fullscreen_mode == FULLSCREEN_DISABLED); |
| 1064 | 1061 |
| 1065 // Navigation commands | 1062 // Navigation commands |
| 1066 command_updater_.UpdateCommandEnabled(IDC_OPEN_CURRENT_URL, show_main_ui); | 1063 command_updater_.UpdateCommandEnabled(IDC_OPEN_CURRENT_URL, show_main_ui); |
| 1067 | 1064 |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1200 | 1197 |
| 1201 BrowserWindow* BrowserCommandController::window() { | 1198 BrowserWindow* BrowserCommandController::window() { |
| 1202 return browser_->window(); | 1199 return browser_->window(); |
| 1203 } | 1200 } |
| 1204 | 1201 |
| 1205 Profile* BrowserCommandController::profile() { | 1202 Profile* BrowserCommandController::profile() { |
| 1206 return browser_->profile(); | 1203 return browser_->profile(); |
| 1207 } | 1204 } |
| 1208 | 1205 |
| 1209 } // namespace chrome | 1206 } // namespace chrome |
| OLD | NEW |