blob: 7faf4ecd130ea26b73e969af54bae758cbf6b085 [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"
[email protected]ec5263a2011-05-10 09:23:3912#include "chrome/browser/sync/js_event_details.h"
[email protected]88af96012011-02-11 20:50:1713#include "chrome/browser/sync/js_event_router.h"
14#include "chrome/browser/sync/sessions/session_state.h"
15#include "chrome/browser/sync/syncable/model_type.h"
[email protected]88af96012011-02-11 20:50:1716
17namespace browser_sync {
18
19JsSyncManagerObserver::JsSyncManagerObserver(JsEventRouter* parent_router)
20 : parent_router_(parent_router) {
21 DCHECK(parent_router_);
22}
23
24JsSyncManagerObserver::~JsSyncManagerObserver() {}
25
26void JsSyncManagerObserver::OnChangesApplied(
27 syncable::ModelType model_type,
28 const sync_api::BaseTransaction* trans,
29 const sync_api::SyncManager::ChangeRecord* changes,
30 int change_count) {
[email protected]ec5263a2011-05-10 09:23:3931 DictionaryValue details;
32 details.SetString("modelType", syncable::ModelTypeToString(model_type));
[email protected]88af96012011-02-11 20:50:1733 ListValue* change_values = new ListValue();
[email protected]ec5263a2011-05-10 09:23:3934 details.Set("changes", change_values);
[email protected]88af96012011-02-11 20:50:1735 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 }
[email protected]ec5263a2011-05-10 09:23:3938 parent_router_->RouteJsEvent("onChangesApplied", JsEventDetails(&details));
[email protected]88af96012011-02-11 20:50:1739}
40
41void JsSyncManagerObserver::OnChangesComplete(
42 syncable::ModelType model_type) {
[email protected]ec5263a2011-05-10 09:23:3943 DictionaryValue details;
44 details.SetString("modelType", syncable::ModelTypeToString(model_type));
45 parent_router_->RouteJsEvent("onChangesComplete", JsEventDetails(&details));
[email protected]88af96012011-02-11 20:50:1746}
47
48void JsSyncManagerObserver::OnSyncCycleCompleted(
49 const sessions::SyncSessionSnapshot* snapshot) {
[email protected]ec5263a2011-05-10 09:23:3950 DictionaryValue details;
51 details.Set("snapshot", snapshot->ToValue());
[email protected]3c921382011-05-06 09:32:5052 parent_router_->RouteJsEvent("onSyncCycleCompleted",
[email protected]ec5263a2011-05-10 09:23:3953 JsEventDetails(&details));
[email protected]88af96012011-02-11 20:50:1754}
55
56void JsSyncManagerObserver::OnAuthError(
57 const GoogleServiceAuthError& auth_error) {
[email protected]ec5263a2011-05-10 09:23:3958 DictionaryValue details;
59 details.Set("authError", auth_error.ToValue());
60 parent_router_->RouteJsEvent("onAuthError", JsEventDetails(&details));
[email protected]88af96012011-02-11 20:50:1761}
62
63void JsSyncManagerObserver::OnUpdatedToken(const std::string& token) {
[email protected]ec5263a2011-05-10 09:23:3964 DictionaryValue details;
65 details.SetString("token", "<redacted>");
66 parent_router_->RouteJsEvent("onUpdatedToken", JsEventDetails(&details));
[email protected]88af96012011-02-11 20:50:1767}
68
[email protected]43c48fb92011-05-02 19:47:4369void JsSyncManagerObserver::OnPassphraseRequired(
70 sync_api::PassphraseRequiredReason reason) {
[email protected]ec5263a2011-05-10 09:23:3971 DictionaryValue details;
72 details.SetString("reason",
73 sync_api::PassphraseRequiredReasonToString(reason));
[email protected]88af96012011-02-11 20:50:1774 parent_router_->RouteJsEvent("onPassphraseRequired",
[email protected]ec5263a2011-05-10 09:23:3975 JsEventDetails(&details));
[email protected]88af96012011-02-11 20:50:1776}
77
78void JsSyncManagerObserver::OnPassphraseAccepted(
79 const std::string& bootstrap_token) {
[email protected]ec5263a2011-05-10 09:23:3980 DictionaryValue details;
81 details.SetString("bootstrapToken", "<redacted>");
[email protected]88af96012011-02-11 20:50:1782 parent_router_->RouteJsEvent("onPassphraseAccepted",
[email protected]ec5263a2011-05-10 09:23:3983 JsEventDetails(&details));
[email protected]88af96012011-02-11 20:50:1784}
85
[email protected]3fa964af2011-02-24 18:54:3986void JsSyncManagerObserver::OnEncryptionComplete(
87 const syncable::ModelTypeSet& encrypted_types) {
[email protected]ec5263a2011-05-10 09:23:3988 DictionaryValue details;
89 details.Set("encryptedTypes",
90 syncable::ModelTypeSetToValue(encrypted_types));
[email protected]3fa964af2011-02-24 18:54:3991 parent_router_->RouteJsEvent("onEncryptionComplete",
[email protected]ec5263a2011-05-10 09:23:3992 JsEventDetails(&details));
[email protected]3fa964af2011-02-24 18:54:3993}
94
[email protected]dc556252011-04-20 01:59:3595void JsSyncManagerObserver::OnMigrationNeededForTypes(
96 const syncable::ModelTypeSet& types) {
[email protected]ec5263a2011-05-10 09:23:3997 DictionaryValue details;
98 details.Set("types", syncable::ModelTypeSetToValue(types));
[email protected]dc556252011-04-20 01:59:3599 parent_router_->RouteJsEvent("onMigrationNeededForTypes",
[email protected]ec5263a2011-05-10 09:23:39100 JsEventDetails(&details));
[email protected]dc556252011-04-20 01:59:35101}
102
[email protected]88af96012011-02-11 20:50:17103void JsSyncManagerObserver::OnInitializationComplete() {
[email protected]ec5263a2011-05-10 09:23:39104 parent_router_->RouteJsEvent("onInitializationComplete", JsEventDetails());
[email protected]88af96012011-02-11 20:50:17105}
106
[email protected]88af96012011-02-11 20:50:17107void JsSyncManagerObserver::OnStopSyncingPermanently() {
[email protected]ec5263a2011-05-10 09:23:39108 parent_router_->RouteJsEvent("onStopSyncingPermanently", JsEventDetails());
[email protected]88af96012011-02-11 20:50:17109}
110
111void JsSyncManagerObserver::OnClearServerDataSucceeded() {
[email protected]ec5263a2011-05-10 09:23:39112 parent_router_->RouteJsEvent("onClearServerDataSucceeded", JsEventDetails());
[email protected]88af96012011-02-11 20:50:17113}
114
115void JsSyncManagerObserver::OnClearServerDataFailed() {
[email protected]ec5263a2011-05-10 09:23:39116 parent_router_->RouteJsEvent("onClearServerDataFailed", JsEventDetails());
[email protected]88af96012011-02-11 20:50:17117}
118
119} // namespace browser_sync