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

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

Issue 2905003: Implement support for disabling sync through configuration management. (Closed)
Patch Set: Fix PrefsControllerTest on MAC. Created 10 years, 5 months 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
« no previous file with comments | « chrome/browser/browser.h ('k') | chrome/browser/cocoa/browser_window_controller.mm » ('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/browser.h" 5 #include "chrome/browser/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 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 // might show vertical tabs but not show an option to turn them off. 229 // might show vertical tabs but not show an option to turn them off.
230 use_vertical_tabs_.SetValue(false); 230 use_vertical_tabs_.SetValue(false);
231 } 231 }
232 UpdateTabStripModelInsertionPolicy(); 232 UpdateTabStripModelInsertionPolicy();
233 233
234 tab_restore_service_ = profile->GetTabRestoreService(); 234 tab_restore_service_ = profile->GetTabRestoreService();
235 if (tab_restore_service_) { 235 if (tab_restore_service_) {
236 tab_restore_service_->AddObserver(this); 236 tab_restore_service_->AddObserver(this);
237 TabRestoreServiceChanged(tab_restore_service_); 237 TabRestoreServiceChanged(tab_restore_service_);
238 } 238 }
239
240 if (profile_->GetProfileSyncService())
241 profile_->GetProfileSyncService()->AddObserver(this);
239 } 242 }
240 243
241 Browser::~Browser() { 244 Browser::~Browser() {
242 // The tab strip should not have any significant tabs at this point. 245 // The tab strip should not have any significant tabs at this point.
243 DCHECK(!tabstrip_model_.HasNonPhantomTabs()); 246 DCHECK(!tabstrip_model_.HasNonPhantomTabs());
244 tabstrip_model_.RemoveObserver(this); 247 tabstrip_model_.RemoveObserver(this);
245 248
249 if (profile_->GetProfileSyncService())
250 profile_->GetProfileSyncService()->RemoveObserver(this);
251
246 BrowserList::RemoveBrowser(this); 252 BrowserList::RemoveBrowser(this);
247 253
248 #if defined(OS_WIN) || defined(OS_LINUX) 254 #if defined(OS_WIN) || defined(OS_LINUX)
249 if (!BrowserList::HasBrowserWithProfile(profile_)) { 255 if (!BrowserList::HasBrowserWithProfile(profile_)) {
250 // We're the last browser window with this profile. We need to nuke the 256 // We're the last browser window with this profile. We need to nuke the
251 // TabRestoreService, which will start the shutdown of the 257 // TabRestoreService, which will start the shutdown of the
252 // NavigationControllers and allow for proper shutdown. If we don't do this 258 // NavigationControllers and allow for proper shutdown. If we don't do this
253 // chrome won't shutdown cleanly, and may end up crashing when some 259 // chrome won't shutdown cleanly, and may end up crashing when some
254 // thread tries to use the IO thread (or another thread) that is no longer 260 // thread tries to use the IO thread (or another thread) that is no longer
255 // valid. 261 // valid.
(...skipping 796 matching lines...) Expand 10 before | Expand all | Expand 10 after
1052 command_updater_.UpdateCommandEnabled( 1058 command_updater_.UpdateCommandEnabled(
1053 IDC_FOCUS_BOOKMARKS, main_not_fullscreen_or_popup); 1059 IDC_FOCUS_BOOKMARKS, main_not_fullscreen_or_popup);
1054 command_updater_.UpdateCommandEnabled( 1060 command_updater_.UpdateCommandEnabled(
1055 IDC_FOCUS_CHROMEOS_STATUS, main_not_fullscreen_or_popup); 1061 IDC_FOCUS_CHROMEOS_STATUS, main_not_fullscreen_or_popup);
1056 1062
1057 // Show various bits of UI 1063 // Show various bits of UI
1058 command_updater_.UpdateCommandEnabled(IDC_DEVELOPER_MENU, show_main_ui); 1064 command_updater_.UpdateCommandEnabled(IDC_DEVELOPER_MENU, show_main_ui);
1059 command_updater_.UpdateCommandEnabled(IDC_REPORT_BUG, show_main_ui); 1065 command_updater_.UpdateCommandEnabled(IDC_REPORT_BUG, show_main_ui);
1060 command_updater_.UpdateCommandEnabled(IDC_SHOW_BOOKMARK_BAR, show_main_ui); 1066 command_updater_.UpdateCommandEnabled(IDC_SHOW_BOOKMARK_BAR, show_main_ui);
1061 command_updater_.UpdateCommandEnabled(IDC_IMPORT_SETTINGS, show_main_ui); 1067 command_updater_.UpdateCommandEnabled(IDC_IMPORT_SETTINGS, show_main_ui);
1062 command_updater_.UpdateCommandEnabled( 1068 command_updater_.UpdateCommandEnabled(IDC_SYNC_BOOKMARKS,
1063 IDC_SYNC_BOOKMARKS, show_main_ui && ProfileSyncService::IsSyncEnabled()); 1069 show_main_ui && profile_->IsSyncAccessible());
1064 command_updater_.UpdateCommandEnabled(IDC_OPTIONS, show_main_ui); 1070 command_updater_.UpdateCommandEnabled(IDC_OPTIONS, show_main_ui);
1065 command_updater_.UpdateCommandEnabled(IDC_EDIT_SEARCH_ENGINES, show_main_ui); 1071 command_updater_.UpdateCommandEnabled(IDC_EDIT_SEARCH_ENGINES, show_main_ui);
1066 command_updater_.UpdateCommandEnabled(IDC_VIEW_PASSWORDS, show_main_ui); 1072 command_updater_.UpdateCommandEnabled(IDC_VIEW_PASSWORDS, show_main_ui);
1067 command_updater_.UpdateCommandEnabled(IDC_ABOUT, show_main_ui); 1073 command_updater_.UpdateCommandEnabled(IDC_ABOUT, show_main_ui);
1068 command_updater_.UpdateCommandEnabled(IDC_SHOW_APP_MENU, show_main_ui); 1074 command_updater_.UpdateCommandEnabled(IDC_SHOW_APP_MENU, show_main_ui);
1069 command_updater_.UpdateCommandEnabled(IDC_SHOW_PAGE_MENU, show_main_ui); 1075 command_updater_.UpdateCommandEnabled(IDC_SHOW_PAGE_MENU, show_main_ui);
1070 command_updater_.UpdateCommandEnabled(IDC_TOGGLE_VERTICAL_TABS, show_main_ui); 1076 command_updater_.UpdateCommandEnabled(IDC_TOGGLE_VERTICAL_TABS, show_main_ui);
1071 } 1077 }
1072 1078
1073 bool Browser::OpenAppsPanelAsNewTab() { 1079 bool Browser::OpenAppsPanelAsNewTab() {
(...skipping 1950 matching lines...) Expand 10 before | Expand all | Expand 10 after
3024 else 3030 else
3025 NOTREACHED(); 3031 NOTREACHED();
3026 break; 3032 break;
3027 } 3033 }
3028 3034
3029 default: 3035 default:
3030 NOTREACHED() << "Got a notification we didn't register for."; 3036 NOTREACHED() << "Got a notification we didn't register for.";
3031 } 3037 }
3032 } 3038 }
3033 3039
3040 ///////////////////////////////////////////////////////////////////////////////
3041 // Browser, ProfileSyncServiceObserver implementation:
3042
3043 void Browser::OnStateChanged() {
3044 DCHECK(profile_->GetProfileSyncService());
3045
3046 #if !defined(OS_MACOSX)
3047 const bool show_main_ui = (type() == TYPE_NORMAL) && !window_->IsFullscreen();
3048 #else
3049 const bool show_main_ui = (type() == TYPE_NORMAL);
3050 #endif
3051
3052 command_updater_.UpdateCommandEnabled(IDC_SYNC_BOOKMARKS,
3053 show_main_ui && profile_->IsSyncAccessible());
3054 }
3034 3055
3035 /////////////////////////////////////////////////////////////////////////////// 3056 ///////////////////////////////////////////////////////////////////////////////
3036 // Browser, Command and state updating (private): 3057 // Browser, Command and state updating (private):
3037 3058
3038 void Browser::InitCommandState() { 3059 void Browser::InitCommandState() {
3039 // All browser commands whose state isn't set automagically some other way 3060 // All browser commands whose state isn't set automagically some other way
3040 // (like Back & Forward with initial page load) must have their state 3061 // (like Back & Forward with initial page load) must have their state
3041 // initialized here, otherwise they will be forever disabled. 3062 // initialized here, otherwise they will be forever disabled.
3042 3063
3043 // Navigation commands 3064 // Navigation commands
(...skipping 930 matching lines...) Expand 10 before | Expand all | Expand 10 after
3974 } 3995 }
3975 3996
3976 bool Browser::IsPinned(TabContents* source) { 3997 bool Browser::IsPinned(TabContents* source) {
3977 int index = tabstrip_model_.GetIndexOfTabContents(source); 3998 int index = tabstrip_model_.GetIndexOfTabContents(source);
3978 if (index == TabStripModel::kNoTab) { 3999 if (index == TabStripModel::kNoTab) {
3979 NOTREACHED() << "IsPinned called for tab not in our strip"; 4000 NOTREACHED() << "IsPinned called for tab not in our strip";
3980 return false; 4001 return false;
3981 } 4002 }
3982 return tabstrip_model_.IsTabPinned(index); 4003 return tabstrip_model_.IsTabPinned(index);
3983 } 4004 }
OLDNEW
« no previous file with comments | « chrome/browser/browser.h ('k') | chrome/browser/cocoa/browser_window_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698