1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/ui/webui/options/stop_syncing_handler.h" 6 7 #include "base/basictypes.h" 8 #include "base/callback.h" 9 #include "base/values.h" 10 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile_manager.h" 12 #include "chrome/browser/sync/profile_sync_service.h" 13 #include "grit/chromium_strings.h" 14 #include "grit/generated_resources.h" 15 #include "ui/base/l10n/l10n_util.h" 16 17 StopSyncingHandler::StopSyncingHandler() { 18 } 19 20 StopSyncingHandler::~StopSyncingHandler() { 21 } 22 23 void StopSyncingHandler::GetLocalizedValues( 24 DictionaryValue* localized_strings) { 25 DCHECK(localized_strings); 26 localized_strings->SetString("stop_syncing_explanation", 27 l10n_util::GetStringUTF16(IDS_SYNC_STOP_SYNCING_EXPLANATION_LABEL)); 28 localized_strings->SetString("stop_syncing_title", 29 l10n_util::GetStringUTF16(IDS_SYNC_STOP_SYNCING_DIALOG_TITLE)); 30 localized_strings->SetString("stop_syncing_confirm", 31 l10n_util::GetStringUTF16(IDS_SYNC_STOP_SYNCING_CONFIRM_BUTTON_LABEL)); 32 } 33 34 void StopSyncingHandler::RegisterMessages() { 35 DCHECK(web_ui_); 36 web_ui_->RegisterMessageCallback("stopSyncing", 37 NewCallback(this, &StopSyncingHandler::StopSyncing)); 38 } 39 40 void StopSyncingHandler::StopSyncing(const ListValue* args){ 41 ProfileSyncService* service = web_ui_->GetProfile()->GetProfileSyncService(); 42 if (service != NULL && ProfileSyncService::IsSyncEnabled()) { 43 service->DisableForUser(); 44 ProfileSyncService::SyncEvent(ProfileSyncService::STOP_FROM_OPTIONS); 45 } 46 } 47