blob: a86178a979c8ad4e5a266c0e95b129d9c948c66b [file] [log] [blame]
[email protected]88af96012011-02-11 20:50:171// 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/sync/js_sync_manager_observer.h"
6
7#include <cstddef>
8
9#include "base/logging.h"
10#include "base/values.h"
11#include "chrome/browser/sync/js_arg_list.h"
12#include "chrome/browser/sync/js_event_router.h"
13#include "chrome/browser/sync/sessions/session_state.h"
14#include "chrome/browser/sync/syncable/model_type.h"
[email protected]88af96012011-02-11 20:50:1715
16namespace browser_sync {
17
18JsSyncManagerObserver::JsSyncManagerObserver(JsEventRouter* parent_router)
19 : parent_router_(parent_router) {
20 DCHECK(parent_router_);
21}
22
23JsSyncManagerObserver::~JsSyncManagerObserver() {}
24
25void JsSyncManagerObserver::OnChangesApplied(
26 syncable::ModelType model_type,
27 const sync_api::BaseTransaction* trans,
28 const sync_api::SyncManager::ChangeRecord* changes,
29 int change_count) {
30 ListValue return_args;
31 return_args.Append(Value::CreateStringValue(
32 syncable::ModelTypeToString(model_type)));
33 ListValue* change_values = new ListValue();
34 return_args.Append(change_values);
35 for (int i = 0; i < change_count; ++i) {
[email protected]ab58e422011-02-18 09:57:0436 change_values->Append(changes[i].ToValue(trans));
[email protected]88af96012011-02-11 20:50:1737 }
38 parent_router_->RouteJsEvent("onChangesApplied",
39 JsArgList(return_args), NULL);
40}
41
42void JsSyncManagerObserver::OnChangesComplete(
43 syncable::ModelType model_type) {
44 ListValue return_args;
45 return_args.Append(Value::CreateStringValue(
46 syncable::ModelTypeToString(model_type)));
47 parent_router_->RouteJsEvent("onChangesComplete",
48 JsArgList(return_args), NULL);
49}
50
51void JsSyncManagerObserver::OnSyncCycleCompleted(
52 const sessions::SyncSessionSnapshot* snapshot) {
53 ListValue return_args;
54 return_args.Append(snapshot->ToValue());
55 parent_router_->RouteJsEvent("onSyncCycleCompleted",
56 JsArgList(return_args), NULL);
57}
58
59void JsSyncManagerObserver::OnAuthError(
60 const GoogleServiceAuthError& auth_error) {
61 ListValue return_args;
62 return_args.Append(auth_error.ToValue());
63 parent_router_->RouteJsEvent("onAuthError",
64 JsArgList(return_args), NULL);
65}
66
67void JsSyncManagerObserver::OnUpdatedToken(const std::string& token) {
68 ListValue return_args;
69 return_args.Append(Value::CreateStringValue("<redacted>"));
70 parent_router_->RouteJsEvent("onUpdatedToken",
71 JsArgList(return_args), NULL);
72}
73
[email protected]43c48fb92011-05-02 19:47:4374void JsSyncManagerObserver::OnPassphraseRequired(
75 sync_api::PassphraseRequiredReason reason) {
[email protected]88af96012011-02-11 20:50:1776 ListValue return_args;
[email protected]43c48fb92011-05-02 19:47:4377
78 return_args.Append(Value::CreateStringValue(
79 sync_api::PassphraseRequiredReasonToString(reason)));
[email protected]88af96012011-02-11 20:50:1780 parent_router_->RouteJsEvent("onPassphraseRequired",
81 JsArgList(return_args), NULL);
82}
83
84void JsSyncManagerObserver::OnPassphraseAccepted(
85 const std::string& bootstrap_token) {
86 ListValue return_args;
87 return_args.Append(Value::CreateStringValue("<redacted>"));
88 parent_router_->RouteJsEvent("onPassphraseAccepted",
89 JsArgList(return_args), NULL);
90}
91
[email protected]3fa964af2011-02-24 18:54:3992void JsSyncManagerObserver::OnEncryptionComplete(
93 const syncable::ModelTypeSet& encrypted_types) {
94 ListValue return_args;
95 return_args.Append(syncable::ModelTypeSetToValue(encrypted_types));
96 parent_router_->RouteJsEvent("onEncryptionComplete",
97 JsArgList(return_args), NULL);
98}
99
[email protected]dc556252011-04-20 01:59:35100void JsSyncManagerObserver::OnMigrationNeededForTypes(
101 const syncable::ModelTypeSet& types) {
102 ListValue return_args;
103 return_args.Append(syncable::ModelTypeSetToValue(types));
104 parent_router_->RouteJsEvent("onMigrationNeededForTypes",
105 JsArgList(return_args), NULL);
106 // TODO(akalin): Bug 79247. Hook up JS boiler plate!
107}
108
[email protected]88af96012011-02-11 20:50:17109void JsSyncManagerObserver::OnInitializationComplete() {
110 parent_router_->RouteJsEvent("onInitializationComplete",
111 JsArgList(), NULL);
112}
113
[email protected]88af96012011-02-11 20:50:17114void JsSyncManagerObserver::OnStopSyncingPermanently() {
115 parent_router_->RouteJsEvent("onStopSyncingPermanently",
116 JsArgList(), NULL);
117}
118
119void JsSyncManagerObserver::OnClearServerDataSucceeded() {
120 parent_router_->RouteJsEvent("onClearServerDataSucceeded",
121 JsArgList(), NULL);
122}
123
124void JsSyncManagerObserver::OnClearServerDataFailed() {
125 parent_router_->RouteJsEvent("onClearServerDataFailed", JsArgList(), NULL);
126}
127
128} // namespace browser_sync