| 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(prefs::kAllowFileSelectionDialogs, this); | 162 local_pref_registrar_.Add( |
| 163 local_pref_registrar_.Add(prefs::kInManagedMode, this); | 163 prefs::kAllowFileSelectionDialogs, |
| 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))); |
| 164 } | 172 } |
| 165 | 173 |
| 166 profile_pref_registrar_.Init(profile()->GetPrefs()); | 174 profile_pref_registrar_.Init(profile()->GetPrefs()); |
| 167 profile_pref_registrar_.Add(prefs::kDevToolsDisabled, this); | 175 profile_pref_registrar_.Add( |
| 168 profile_pref_registrar_.Add(prefs::kEditBookmarksEnabled, this); | 176 prefs::kDevToolsDisabled, |
| 169 profile_pref_registrar_.Add(prefs::kShowBookmarkBar, this); | 177 base::Bind(&BrowserCommandController::UpdateCommandsForDevTools, |
| 170 profile_pref_registrar_.Add(prefs::kIncognitoModeAvailability, this); | 178 base::Unretained(this))); |
| 171 profile_pref_registrar_.Add(prefs::kPrintingEnabled, this); | 179 profile_pref_registrar_.Add( |
| 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))); |
| 172 | 196 |
| 173 InitCommandState(); | 197 InitCommandState(); |
| 174 | 198 |
| 175 TabRestoreService* tab_restore_service = | 199 TabRestoreService* tab_restore_service = |
| 176 TabRestoreServiceFactory::GetForProfile(profile()); | 200 TabRestoreServiceFactory::GetForProfile(profile()); |
| 177 if (tab_restore_service) { | 201 if (tab_restore_service) { |
| 178 tab_restore_service->AddObserver(this); | 202 tab_restore_service->AddObserver(this); |
| 179 TabRestoreServiceChanged(tab_restore_service); | 203 TabRestoreServiceChanged(tab_restore_service); |
| 180 } | 204 } |
| 181 | 205 |
| (...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 677 case content::NOTIFICATION_INTERSTITIAL_DETACHED: | 701 case content::NOTIFICATION_INTERSTITIAL_DETACHED: |
| 678 UpdateCommandsForTabState(); | 702 UpdateCommandsForTabState(); |
| 679 break; | 703 break; |
| 680 | 704 |
| 681 default: | 705 default: |
| 682 NOTREACHED() << "Got a notification we didn't register for."; | 706 NOTREACHED() << "Got a notification we didn't register for."; |
| 683 } | 707 } |
| 684 } | 708 } |
| 685 | 709 |
| 686 //////////////////////////////////////////////////////////////////////////////// | 710 //////////////////////////////////////////////////////////////////////////////// |
| 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 //////////////////////////////////////////////////////////////////////////////// | |
| 713 // BrowserCommandController, TabStripModelObserver implementation: | 711 // BrowserCommandController, TabStripModelObserver implementation: |
| 714 | 712 |
| 715 void BrowserCommandController::TabInsertedAt(WebContents* contents, | 713 void BrowserCommandController::TabInsertedAt(WebContents* contents, |
| 716 int index, | 714 int index, |
| 717 bool foreground) { | 715 bool foreground) { |
| 718 AddInterstitialObservers(contents); | 716 AddInterstitialObservers(contents); |
| 719 } | 717 } |
| 720 | 718 |
| 721 void BrowserCommandController::TabDetachedAt(WebContents* contents, int index) { | 719 void BrowserCommandController::TabDetachedAt(WebContents* contents, int index) { |
| 722 RemoveInterstitialObservers(contents); | 720 RemoveInterstitialObservers(contents); |
| (...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1045 | 1043 |
| 1046 void BrowserCommandController::UpdateCommandsForBookmarkBar() { | 1044 void BrowserCommandController::UpdateCommandsForBookmarkBar() { |
| 1047 const bool show_main_ui = | 1045 const bool show_main_ui = |
| 1048 IsShowingMainUI(window() && window()->IsFullscreen()); | 1046 IsShowingMainUI(window() && window()->IsFullscreen()); |
| 1049 command_updater_.UpdateCommandEnabled(IDC_SHOW_BOOKMARK_BAR, | 1047 command_updater_.UpdateCommandEnabled(IDC_SHOW_BOOKMARK_BAR, |
| 1050 browser_defaults::bookmarks_enabled && | 1048 browser_defaults::bookmarks_enabled && |
| 1051 !profile()->GetPrefs()->IsManagedPreference(prefs::kShowBookmarkBar) && | 1049 !profile()->GetPrefs()->IsManagedPreference(prefs::kShowBookmarkBar) && |
| 1052 show_main_ui); | 1050 show_main_ui); |
| 1053 } | 1051 } |
| 1054 | 1052 |
| 1053 void BrowserCommandController::UpdateCommandsForFileSelectionDialogs() { |
| 1054 UpdateSaveAsState(); |
| 1055 UpdateOpenFileState(); |
| 1056 } |
| 1057 |
| 1055 void BrowserCommandController::UpdateCommandsForFullscreenMode( | 1058 void BrowserCommandController::UpdateCommandsForFullscreenMode( |
| 1056 FullScreenMode fullscreen_mode) { | 1059 FullScreenMode fullscreen_mode) { |
| 1057 const bool show_main_ui = | 1060 const bool show_main_ui = |
| 1058 IsShowingMainUI(fullscreen_mode != FULLSCREEN_DISABLED); | 1061 IsShowingMainUI(fullscreen_mode != FULLSCREEN_DISABLED); |
| 1059 bool main_not_fullscreen = show_main_ui && | 1062 bool main_not_fullscreen = show_main_ui && |
| 1060 (fullscreen_mode == FULLSCREEN_DISABLED); | 1063 (fullscreen_mode == FULLSCREEN_DISABLED); |
| 1061 | 1064 |
| 1062 // Navigation commands | 1065 // Navigation commands |
| 1063 command_updater_.UpdateCommandEnabled(IDC_OPEN_CURRENT_URL, show_main_ui); | 1066 command_updater_.UpdateCommandEnabled(IDC_OPEN_CURRENT_URL, show_main_ui); |
| 1064 | 1067 |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1197 | 1200 |
| 1198 BrowserWindow* BrowserCommandController::window() { | 1201 BrowserWindow* BrowserCommandController::window() { |
| 1199 return browser_->window(); | 1202 return browser_->window(); |
| 1200 } | 1203 } |
| 1201 | 1204 |
| 1202 Profile* BrowserCommandController::profile() { | 1205 Profile* BrowserCommandController::profile() { |
| 1203 return browser_->profile(); | 1206 return browser_->profile(); |
| 1204 } | 1207 } |
| 1205 | 1208 |
| 1206 } // namespace chrome | 1209 } // namespace chrome |
| OLD | NEW |