• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
StopSyncingHandler()17 StopSyncingHandler::StopSyncingHandler() {
18 }
19 
~StopSyncingHandler()20 StopSyncingHandler::~StopSyncingHandler() {
21 }
22 
GetLocalizedValues(DictionaryValue * localized_strings)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 
RegisterMessages()34 void StopSyncingHandler::RegisterMessages() {
35   DCHECK(web_ui_);
36   web_ui_->RegisterMessageCallback("stopSyncing",
37       NewCallback(this, &StopSyncingHandler::StopSyncing));
38 }
39 
StopSyncing(const ListValue * args)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