| 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 }; |
| 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 |