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

Unified Diff: chrome/browser/resources/sync_internals/sync_log.js

Issue 160083002: Refactor about:sync's events framework (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/sync_internals/sync_log.js
diff --git a/chrome/browser/resources/sync_internals/sync_log.js b/chrome/browser/resources/sync_internals/sync_log.js
index 0d281890bc8091dd5ea849225280de73dbddf1e4..f3ac3e2232dfe32c14777a904a860c6ef53a25f1 100644
--- a/chrome/browser/resources/sync_internals/sync_log.js
+++ b/chrome/browser/resources/sync_internals/sync_log.js
@@ -11,6 +11,35 @@
*/
cr.define('chrome.sync', function() {
+ 'use strict';
+
+ var eventsByCategory = {
+ notifier: [
+ 'onNotificationStateChange',
+ 'onIncomingNotification',
+ ],
+
+ manager: [
+ 'onChangesApplied',
+ 'onChangesComplete',
+ 'onSyncCycleCompleted',
+ 'onConnectionStatusChange',
+ 'onPassphraseRequired',
+ 'onPassphraseAccepted',
+ 'onInitializationComplete',
+ 'onStopSyncingPermanently',
+ 'onClearServerDataSucceeded',
+ 'onClearServerDataFailed',
+ 'onEncryptedTypesChanged',
+ 'onEncryptionComplete',
+ 'onActionableError',
Dan Beam 2014/02/11 23:21:48 sort
rlarocque 2014/02/12 00:39:55 Done.
+ ],
+
+ transaction: [
+ 'onTransactionWrite',
+ ]
Dan Beam 2014/02/11 23:21:48 nit: ],
rlarocque 2014/02/12 00:39:55 Done.
+ };
+
/**
* Creates a new log object which then immediately starts recording
* sync events. Recorded entries are available in the 'entries'
@@ -21,21 +50,23 @@ cr.define('chrome.sync', function() {
var Log = function() {
var self = this;
- var makeListener = function(service, event) {
- return function(details) {
- self.log_(service, event, details);
- };
- };
-
- for (var eventType in chrome.sync.events) {
- var events = chrome.sync.events[eventType];
- for (var i = 0; i < events.length; ++i) {
- var eventName = events[i];
- var event = chrome.sync[eventName];
- event.addListener(makeListener(eventType, eventName));
+ /**
+ * Creates a callback function to be invoked when an event arrives.
+ */
+ var makeCallback = function(categoryName, eventName) {
+ return function(e) {
+ self.log_(categoryName, eventName, e.details);
}
Dan Beam 2014/02/11 23:21:48 };
rlarocque 2014/02/12 00:39:55 Done.
}
- };
+
+ for (var categoryName in eventsByCategory) {
+ eventsByCategory[categoryName].forEach(function(eventName) {
Dan Beam 2014/02/11 23:21:48 nit: because this doesn't need to make a new scope
rlarocque 2014/02/12 00:39:55 Fixed.
+ chrome.sync.events.addEventListener(
+ eventName,
+ makeCallback(categoryName, eventName));
+ });
+ }
+ }
Log.prototype = {
__proto__: cr.EventTarget.prototype,

Powered by Google App Engine
This is Rietveld 408576698