OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // require: cr.js | 5 // require: cr.js |
6 // require: cr/event_target.js | 6 // require: cr/event_target.js |
7 | 7 |
8 /** | 8 /** |
9 * @fileoverview This creates a log object which listens to and | 9 * @fileoverview This creates a log object which listens to and |
10 * records all sync events. | 10 * records all sync events. |
11 */ | 11 */ |
12 | 12 |
13 cr.define('chrome.sync', function() { | 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 | |
14 /** | 43 /** |
15 * Creates a new log object which then immediately starts recording | 44 * Creates a new log object which then immediately starts recording |
16 * sync events. Recorded entries are available in the 'entries' | 45 * sync events. Recorded entries are available in the 'entries' |
17 * property and there is an 'append' event which can be listened to. | 46 * property and there is an 'append' event which can be listened to. |
18 * @constructor | 47 * @constructor |
19 * @extends {cr.EventTarget} | 48 * @extends {cr.EventTarget} |
20 */ | 49 */ |
21 var Log = function() { | 50 var Log = function() { |
22 var self = this; | 51 var self = this; |
23 | 52 |
24 var makeListener = function(service, event) { | 53 /** |
25 return function(details) { | 54 * Creates a callback function to be invoked when an event arrives. |
26 self.log_(service, event, details); | 55 */ |
56 var makeCallback = function(categoryName, eventName) { | |
57 return function(e) { | |
58 self.log_(categoryName, eventName, e.details); | |
27 }; | 59 }; |
28 }; | 60 } |
Dan Beam
2014/02/12 01:25:00
};
rlarocque
2014/02/12 02:07:39
Done.
| |
29 | 61 |
30 for (var eventType in chrome.sync.events) { | 62 for (var categoryName in eventsByCategory) { |
31 var events = chrome.sync.events[eventType]; | 63 for (var i = 0; i < eventsByCategory[categoryName].length; ++i) { |
32 for (var i = 0; i < events.length; ++i) { | 64 var eventName = eventsByCategory[categoryName][i]; |
33 var eventName = events[i]; | 65 chrome.sync.events.addEventListener( |
34 var event = chrome.sync[eventName]; | 66 eventName, |
35 event.addListener(makeListener(eventType, eventName)); | 67 makeCallback(categoryName, eventName)); |
36 } | 68 } |
37 } | 69 } |
38 }; | 70 } |
39 | 71 |
40 Log.prototype = { | 72 Log.prototype = { |
41 __proto__: cr.EventTarget.prototype, | 73 __proto__: cr.EventTarget.prototype, |
42 | 74 |
43 /** | 75 /** |
44 * The recorded log entries. | 76 * The recorded log entries. |
45 * @type {array} | 77 * @type {array} |
46 */ | 78 */ |
47 entries: [], | 79 entries: [], |
48 | 80 |
(...skipping 19 matching lines...) Expand all Loading... | |
68 var e = cr.doc.createEvent('CustomEvent'); | 100 var e = cr.doc.createEvent('CustomEvent'); |
69 e.initCustomEvent('append', false, false, entry); | 101 e.initCustomEvent('append', false, false, entry); |
70 this.dispatchEvent(e); | 102 this.dispatchEvent(e); |
71 } | 103 } |
72 }; | 104 }; |
73 | 105 |
74 return { | 106 return { |
75 log: new Log() | 107 log: new Log() |
76 }; | 108 }; |
77 }); | 109 }); |
OLD | NEW |