Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Side by Side Diff: components/sync_driver/resources/sync_log.js

Issue 2203673002: [Sync] Move //components/sync_driver to //components/sync/driver. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@sd-a
Patch Set: Full change rebased on static lib. Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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 // require: cr.js
6 // require: cr/event_target.js
7
8 /**
9 * @fileoverview This creates a log object which listens to and
10 * records all sync events.
11 */
12
13 cr.define('chrome.sync', function() {
14 'use strict';
15
16 var eventsByCategory = {
17 notifier: [
18 'onIncomingNotification',
19 'onNotificationStateChange',
20 ],
21
22 manager: [
23 'onActionableError',
24 'onChangesApplied',
25 'onChangesComplete',
26 'onClearServerDataFailed',
27 'onClearServerDataSucceeded',
28 'onConnectionStatusChange',
29 'onEncryptedTypesChanged',
30 'onEncryptionComplete',
31 'onInitializationComplete',
32 'onPassphraseAccepted',
33 'onPassphraseRequired',
34 'onStopSyncingPermanently',
35 'onSyncCycleCompleted',
36 ],
37
38 transaction: [
39 'onTransactionWrite',
40 ],
41
42 protocol: [
43 'onProtocolEvent',
44 ]
45 };
46
47 /**
48 * Creates a new log object which then immediately starts recording
49 * sync events. Recorded entries are available in the 'entries'
50 * property and there is an 'append' event which can be listened to.
51 * @constructor
52 * @extends {cr.EventTarget}
53 */
54 var Log = function() {
55 var self = this;
56
57 /**
58 * Creates a callback function to be invoked when an event arrives.
59 */
60 var makeCallback = function(categoryName, eventName) {
61 return function(e) {
62 self.log_(categoryName, eventName, e.details);
63 };
64 };
65
66 for (var categoryName in eventsByCategory) {
67 for (var i = 0; i < eventsByCategory[categoryName].length; ++i) {
68 var eventName = eventsByCategory[categoryName][i];
69 chrome.sync.events.addEventListener(
70 eventName,
71 makeCallback(categoryName, eventName));
72 }
73 }
74 }
75
76 Log.prototype = {
77 __proto__: cr.EventTarget.prototype,
78
79 /**
80 * The recorded log entries.
81 * @type {array}
82 */
83 entries: [],
84
85 /**
86 * Records a single event with the given parameters and fires the
87 * 'append' event with the newly-created event as the 'detail'
88 * field of a custom event.
89 * @param {string} submodule The sync submodule for the event.
90 * @param {string} event The name of the event.
91 * @param {dictionary} details A dictionary of event-specific details.
92 */
93 log_: function(submodule, event, details) {
94 var entry = {
95 submodule: submodule,
96 event: event,
97 date: new Date(),
98 details: details,
99 textDetails: ''
100 };
101 entry.textDetails = JSON.stringify(entry.details, null, 2);
102 this.entries.push(entry);
103 // Fire append event.
104 var e = cr.doc.createEvent('CustomEvent');
105 e.initCustomEvent('append', false, false, entry);
106 this.dispatchEvent(e);
107 }
108 };
109
110 return {
111 log: new Log()
112 };
113 });
OLDNEW
« no previous file with comments | « components/sync_driver/resources/sync_index.js ('k') | components/sync_driver/resources/sync_node_browser.css » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698