blob: a1e85cfe15821f8503e8d78c5d65a35c22a5e45b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/webui/options/options_sync_setup_handler.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/sync/profile_sync_service.h"
OptionsSyncSetupHandler::OptionsSyncSetupHandler(
ProfileManager* profile_manager) : SyncSetupHandler(profile_manager) {
}
OptionsSyncSetupHandler::~OptionsSyncSetupHandler() {
}
void OptionsSyncSetupHandler::ShowSetupUI() {
ProfileSyncService* service =
Profile::FromWebUI(web_ui_)->GetProfileSyncService();
DCHECK(service);
// If the wizard is already visible, focus it.
if (service->get_wizard().IsVisible()) {
web_ui_->CallJavascriptFunction("OptionsPage.closeOverlay");
service->get_wizard().Focus();
return;
}
// The user is trying to manually load a syncSetup URL. We should bring up
// either a login or a configure flow based on the state of sync.
if (service->HasSyncSetupCompleted()) {
if (service->IsPassphraseRequiredForDecryption()) {
service->get_wizard().Step(SyncSetupWizard::ENTER_PASSPHRASE);
} else {
service->get_wizard().Step(SyncSetupWizard::CONFIGURE);
}
} else {
service->get_wizard().Step(SyncSetupWizard::GetLoginState());
}
// Show the Sync Setup page.
scoped_ptr<Value> page(Value::CreateStringValue("syncSetup"));
web_ui_->CallJavascriptFunction("OptionsPage.navigateToPage", *page);
}
|