summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordantasse@chromium.org <dantasse@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-13 17:06:26 +0000
committerdantasse@chromium.org <dantasse@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-13 17:06:26 +0000
commitf6f940eff9ff7cd676de4e231257113a74b05e72 (patch)
tree094072d7a0fe09899017bb89e38762a5bff99bf6
parentc45ce15766d2902f807b63a3926dafd00ce90746 (diff)
downloadchromium_src-f6f940eff9ff7cd676de4e231257113a74b05e72.zip
chromium_src-f6f940eff9ff7cd676de4e231257113a74b05e72.tar.gz
chromium_src-f6f940eff9ff7cd676de4e231257113a74b05e72.tar.bz2
Remove the option to stop syncing if you're in Chrome OS. Also hide the "Customize" button in case of an error.
BUG=none TEST=build and run Chrome for Linux. Start syncing. Then build for Chrome OS. Try to stop syncing. Note that you cannot. Review URL: http://codereview.chromium.org/1578020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44367 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/app_menu_model.cc5
-rw-r--r--chrome/browser/chromeos/status/browser_status_area_view.cc2
-rw-r--r--chrome/browser/cocoa/preferences_window_controller.mm10
-rw-r--r--chrome/browser/gtk/options/content_page_gtk.cc18
-rw-r--r--chrome/browser/gtk/options/content_page_gtk.h2
-rw-r--r--chrome/browser/sync/profile_sync_service.cc7
-rw-r--r--chrome/browser/views/options/content_page_view.cc2
7 files changed, 39 insertions, 7 deletions
diff --git a/chrome/browser/app_menu_model.cc b/chrome/browser/app_menu_model.cc
index 93d3a43..67ec6b2 100644
--- a/chrome/browser/app_menu_model.cc
+++ b/chrome/browser/app_menu_model.cc
@@ -66,12 +66,17 @@ void AppMenuModel::Build() {
AddSeparator();
+ // The user is always signed in to sync on Chrome OS, so there's no sense
+ // showing this label.
+#if !defined(OS_CHROMEOS)
// We assume that IsSyncEnabled() is constant for the lifetime of the
// program (it just checks command-line flags).
if (ProfileSyncService::IsSyncEnabled()) {
AddItem(IDC_SYNC_BOOKMARKS, GetSyncMenuLabel());
AddSeparator();
}
+#endif
+
#if defined(OS_MACOSX)
AddItemWithStringId(IDC_OPTIONS, IDS_PREFERENCES_MAC);
#else
diff --git a/chrome/browser/chromeos/status/browser_status_area_view.cc b/chrome/browser/chromeos/status/browser_status_area_view.cc
index 681c761..4b89aac 100644
--- a/chrome/browser/chromeos/status/browser_status_area_view.cc
+++ b/chrome/browser/chromeos/status/browser_status_area_view.cc
@@ -119,11 +119,13 @@ AppMenuModel* BrowserStatusAreaView::CreateAppMenuModel(
if (!options_menu_contents_.get())
options_menu_contents_.reset(new OptionsMenuModel(browser));
+#if !defined(OS_CHROMEOS)
int sync_index = menu_model->GetIndexOfCommandId(IDC_SYNC_BOOKMARKS);
DCHECK_GE(sync_index, 0);
menu_model->InsertItemWithStringIdAt(
sync_index + 1, IDC_CLEAR_BROWSING_DATA, IDS_CLEAR_BROWSING_DATA);
menu_model->InsertSeparatorAt(sync_index + 1);
+#endif
int options_index = menu_model->GetIndexOfCommandId(IDC_OPTIONS);
DCHECK_GE(options_index, 0);
diff --git a/chrome/browser/cocoa/preferences_window_controller.mm b/chrome/browser/cocoa/preferences_window_controller.mm
index f2af366..f2fdc37 100644
--- a/chrome/browser/cocoa/preferences_window_controller.mm
+++ b/chrome/browser/cocoa/preferences_window_controller.mm
@@ -1668,9 +1668,14 @@ const int kDisabledIndex = 1;
- (void)syncStateChanged {
DCHECK(syncService_);
+ string16 statusLabel, linkLabel;
+ sync_ui_util::MessageType status =
+ sync_ui_util::GetStatusLabels(syncService_, &statusLabel, &linkLabel);
+
[syncButton_ setEnabled:!syncService_->WizardIsVisible()];
NSString* buttonLabel;
- if (syncService_->HasSyncSetupCompleted()) {
+ if (syncService_->HasSyncSetupCompleted()
+ && status != sync_ui_util::SYNC_ERROR) {
buttonLabel = l10n_util::GetNSStringWithFixup(
IDS_SYNC_STOP_SYNCING_BUTTON_LABEL);
[syncCustomizeButton_ setHidden:false];
@@ -1685,9 +1690,6 @@ const int kDisabledIndex = 1;
}
[syncButton_ setTitle:buttonLabel];
- string16 statusLabel, linkLabel;
- sync_ui_util::MessageType status =
- sync_ui_util::GetStatusLabels(syncService_, &statusLabel, &linkLabel);
[syncStatus_ setStringValue:base::SysUTF16ToNSString(statusLabel)];
[syncLink_ setHidden:linkLabel.empty()];
[syncLink_ setTitle:base::SysUTF16ToNSString(linkLabel)];
diff --git a/chrome/browser/gtk/options/content_page_gtk.cc b/chrome/browser/gtk/options/content_page_gtk.cc
index 0e69244..22a635e 100644
--- a/chrome/browser/gtk/options/content_page_gtk.cc
+++ b/chrome/browser/gtk/options/content_page_gtk.cc
@@ -69,9 +69,11 @@ ContentPageGtk::ContentPageGtk(Profile* profile)
: OptionsPageBase(profile),
sync_status_label_background_(NULL),
sync_status_label_(NULL),
+#if !defined(OS_CHROMEOS)
sync_action_link_background_(NULL),
sync_action_link_(NULL),
sync_start_stop_button_(NULL),
+#endif
sync_customize_button_(NULL),
initializing_(true),
sync_service_(NULL) {
@@ -366,6 +368,7 @@ GtkWidget* ContentPageGtk::InitSyncGroup() {
gtk_container_add(GTK_CONTAINER(sync_status_label_background_),
sync_status_label_);
+#if !defined(OS_CHROMEOS)
// Sync action link.
GtkWidget* link_hbox = gtk_hbox_new(FALSE, gtk_util::kLabelSpacing);
sync_action_link_background_ = gtk_event_box_new();
@@ -378,16 +381,19 @@ GtkWidget* ContentPageGtk::InitSyncGroup() {
gtk_container_add(GTK_CONTAINER(sync_action_link_background_),
sync_action_link_);
gtk_widget_hide(sync_action_link_background_);
+#endif
// Add the sync button into its own horizontal box so it does not
// depend on the spacing above.
GtkWidget* button_hbox = gtk_hbox_new(FALSE, gtk_util::kLabelSpacing);
gtk_container_add(GTK_CONTAINER(vbox), button_hbox);
+#if !defined(OS_CHROMEOS)
sync_start_stop_button_ = gtk_button_new_with_label("");
g_signal_connect(sync_start_stop_button_, "clicked",
G_CALLBACK(OnSyncStartStopButtonClickedThunk), this);
gtk_box_pack_start(GTK_BOX(button_hbox), sync_start_stop_button_, FALSE,
FALSE, 0);
+#endif
sync_customize_button_ = gtk_button_new_with_label("");
g_signal_connect(sync_customize_button_, "clicked",
G_CALLBACK(OnSyncCustomizeButtonClickedThunk), this);
@@ -418,13 +424,18 @@ void ContentPageGtk::UpdateSyncControls() {
gtk_label_set_label(GTK_LABEL(sync_status_label_),
UTF16ToUTF8(status_label).c_str());
+#if !defined(OS_CHROMEOS)
gtk_widget_set_sensitive(sync_start_stop_button_,
!sync_service_->WizardIsVisible());
gtk_button_set_label(GTK_BUTTON(sync_start_stop_button_),
button_label.c_str());
- gtk_widget_set_child_visible(sync_customize_button_, sync_setup_completed);
+#endif
+
+ gtk_widget_set_child_visible(sync_customize_button_,
+ sync_setup_completed && !status_has_error);
gtk_button_set_label(GTK_BUTTON(sync_customize_button_),
customize_button_label.c_str());
+#if !defined(OS_CHROMEOS)
gtk_chrome_link_button_set_label(GTK_CHROME_LINK_BUTTON(sync_action_link_),
UTF16ToUTF8(link_label).c_str());
if (link_label.empty()) {
@@ -434,14 +445,19 @@ void ContentPageGtk::UpdateSyncControls() {
gtk_widget_set_no_show_all(sync_action_link_background_, FALSE);
gtk_widget_show(sync_action_link_background_);
}
+#endif
if (status_has_error) {
gtk_widget_modify_bg(sync_status_label_background_, GTK_STATE_NORMAL,
&kSyncLabelErrorBgColor);
+#if !defined(OS_CHROMEOS)
gtk_widget_modify_bg(sync_action_link_background_, GTK_STATE_NORMAL,
&kSyncLabelErrorBgColor);
+#endif
} else {
gtk_widget_modify_bg(sync_status_label_background_, GTK_STATE_NORMAL, NULL);
+#if !defined(OS_CHROMEOS)
gtk_widget_modify_bg(sync_action_link_background_, GTK_STATE_NORMAL, NULL);
+#endif
}
}
diff --git a/chrome/browser/gtk/options/content_page_gtk.h b/chrome/browser/gtk/options/content_page_gtk.h
index c4f0923..ecca96f 100644
--- a/chrome/browser/gtk/options/content_page_gtk.h
+++ b/chrome/browser/gtk/options/content_page_gtk.h
@@ -89,7 +89,9 @@ class ContentPageGtk : public OptionsPageBase,
GtkWidget* sync_status_label_;
GtkWidget* sync_action_link_background_;
GtkWidget* sync_action_link_;
+#if !defined(OS_CHROMEOS)
GtkWidget* sync_start_stop_button_;
+#endif
GtkWidget* sync_customize_button_;
// The parent GtkTable widget
diff --git a/chrome/browser/sync/profile_sync_service.cc b/chrome/browser/sync/profile_sync_service.cc
index 5c502a4..4781619 100644
--- a/chrome/browser/sync/profile_sync_service.cc
+++ b/chrome/browser/sync/profile_sync_service.cc
@@ -141,11 +141,16 @@ void ProfileSyncService::RegisterPreferences() {
pref_service->RegisterInt64Pref(prefs::kSyncLastSyncedTime, 0);
pref_service->RegisterBooleanPref(prefs::kSyncHasSetupCompleted, false);
- // If you've never synced before, all datatypes are on by default.
+ // If you've never synced before, or if you're using Chrome OS, all datatypes
+ // are on by default.
// TODO(nick): Perhaps a better model would be to always default to false,
// and explicitly call SetDataTypes() when the user shows the wizard.
+#if defined(OS_CHROMEOS)
+ bool enable_by_default = true;
+#else
bool enable_by_default =
!pref_service->HasPrefPath(prefs::kSyncHasSetupCompleted);
+#endif
pref_service->RegisterBooleanPref(prefs::kSyncBookmarks, true);
pref_service->RegisterBooleanPref(prefs::kSyncPreferences, enable_by_default);
diff --git a/chrome/browser/views/options/content_page_view.cc b/chrome/browser/views/options/content_page_view.cc
index e6cf2ef..22b1b83 100644
--- a/chrome/browser/views/options/content_page_view.cc
+++ b/chrome/browser/views/options/content_page_view.cc
@@ -490,7 +490,7 @@ void ContentPageView::UpdateSyncControls() {
sync_start_stop_button_->SetEnabled(!sync_service_->WizardIsVisible());
sync_start_stop_button_->SetLabel(button_label);
sync_customize_button_->SetLabel(customize_button_label);
- sync_customize_button_->SetVisible(sync_setup_completed);
+ sync_customize_button_->SetVisible(sync_setup_completed && !status_has_error);
sync_action_link_->SetText(link_label);
sync_action_link_->SetVisible(!link_label.empty());