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

Side by Side Diff: chrome/browser/resources/sync_internals/chrome_sync.js

Issue 6531038: [Sync] Split up about:sync html files to be more manageable (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 var chrome = chrome || {};
2 // TODO(akalin): Add mocking code for e.g. chrome.send() so that we
3 // can test this without rebuilding chrome.
4 chrome.sync = chrome.sync || {};
5 (function () {
6
7 // This Event class is a simplified version of the one from
8 // event_bindings.js.
9 function Event() {
10 this.listeners_ = [];
11 }
12
13 Event.prototype.addListener = function(listener) {
14 this.listeners_.push(listener);
15 };
16
17 Event.prototype.removeListener = function(listener) {
18 var i = this.findListener_(listener);
19 if (i == -1) {
20 return;
21 }
22 this.listeners_.splice(i, 1);
23 };
24
25 Event.prototype.hasListener = function(listener) {
26 return this.findListener_(listener) > -1;
27 };
28
29 Event.prototype.hasListeners = function(listener) {
30 return this.listeners_.length > 0;
31 };
32
33 // Returns the index of the given listener, or -1 if not found.
34 Event.prototype.findListener_ = function(listener) {
35 for (var i = 0; i < this.listeners_.length; i++) {
36 if (this.listeners_[i] == listener) {
37 return i;
38 }
39 }
40 return -1;
41 };
42
43 // Fires the event. Called by the actual event callback.
44 Event.prototype.dispatch_ = function() {
45 var args = Array.prototype.slice.call(arguments);
46 for (var i = 0; i < this.listeners_.length; i++) {
47 try {
48 this.listeners_[i].apply(null, args);
49 } catch (e) {
50 console.error(e);
51 }
52 }
53 };
54
55 // Sync service events.
56 chrome.sync.onSyncServiceStateChanged = new Event();
57
58 // Notification events.
59 chrome.sync.onSyncNotificationStateChange = new Event();
60 chrome.sync.onSyncIncomingNotification = new Event();
61
62 // Sync manager events.
63 chrome.sync.onChangesApplied = new Event();
64 chrome.sync.onChangesComplete = new Event();
65 chrome.sync.onSyncCycleCompleted = new Event();
66 chrome.sync.onAuthError = new Event();
67 chrome.sync.onUpdatedToken = new Event();
68 chrome.sync.onPassphraseRequired = new Event();
69 chrome.sync.onPassphraseAccepted = new Event();
70 chrome.sync.onInitializationComplete = new Event();
71 chrome.sync.onPaused = new Event();
72 chrome.sync.onResumed = new Event();
73 chrome.sync.onStopSyncingPermanently = new Event();
74 chrome.sync.onClearServerDataSucceeded = new Event();
75 chrome.sync.onClearServerDataFailed = new Event();
76
77 function AsyncFunction(name) {
78 this.name_ = name;
79 this.callbacks_ = [];
80 }
81
82 AsyncFunction.prototype.call = function(args) {
83 this.callbacks_.push(args.pop());
84 chrome.send(this.name_, args);
85 }
86
87 AsyncFunction.prototype.handleReply = function(args) {
88 var callback = this.callbacks_.shift();
John Gregg 2011/02/17 20:49:38 i guess you assume that the DOMUI message handlers
akalin 2011/02/18 00:36:22 Yeah, forgot to document that assumption. Added c
89 try {
90 callback.apply(null, args);
91 } catch (e) {
92 console.error(e);
93 }
94 }
95
96 // Sync service functions.
97 chrome.sync.getAboutInfo_ = new AsyncFunction('getAboutInfo');
John Gregg 2011/02/17 20:49:38 i think these are unnecessarily generic. are the
akalin 2011/02/18 00:36:22 Done.
98 chrome.sync.getAboutInfo = function() {
99 var args = Array.prototype.slice.call(arguments);
100 chrome.sync.getAboutInfo_.call(args);
101 }
102
103 // Notification functions.
104 chrome.sync.getNotificationState_ =
105 new AsyncFunction('getNotificationState');
106 chrome.sync.getNotificationState = function() {
107 var args = Array.prototype.slice.call(arguments);
108 chrome.sync.getNotificationState_.call(args);
109 }
110
111 // Node lookup functions.
112 chrome.sync.getRootNode_ = new AsyncFunction('getRootNode');
113 chrome.sync.getRootNode = function() {
114 var args = Array.prototype.slice.call(arguments);
115 chrome.sync.getRootNode_.call(args);
116 }
117
118 chrome.sync.getNodeById_ = new AsyncFunction('getNodeById');
119 chrome.sync.getNodeById = function() {
120 var args = Array.prototype.slice.call(arguments);
121 chrome.sync.getNodeById_.call(args);
122 }
123
124 })();
125
126 // TODO(akalin): Rewrite the C++ side to not need the handlers below.
127
128 // Sync service event handlers.
129
130 function onSyncServiceStateChanged() {
131 chrome.sync.onSyncServiceStateChanged.dispatch_();
132 }
133
134 // Notification event handlers.
135
136 function onSyncNotificationStateChange(notificationsEnabled) {
137 chrome.sync.onSyncNotificationStateChange.dispatch_(notificationsEnabled);
138 }
139
140 function onSyncIncomingNotification(changedTypes) {
141 chrome.sync.onSyncIncomingNotification.dispatch_(changedTypes);
142 }
143
144 // Sync manager event handlers.
145
146 function onChangesApplied(modelType, changes) {
147 chrome.sync.onChangesApplied.dispatch_(modelType, changes);
148 }
149
150 function onChangesComplete(modelType) {
151 chrome.sync.onChangesComplete.dispatch_(modelType);
152 }
153
154 function onSyncCycleCompleted(snapshot) {
155 chrome.sync.onSyncCycleCompleted.dispatch_(snapshot);
156 }
157
158 function onAuthError(authError) {
159 chrome.sync.onAuthError.dispatch_(authError);
160 }
161
162 function onUpdatedToken(token) {
163 chrome.sync.onUpdatedToken.dispatch_(token);
164 }
165
166 function onPassphraseRequired(forDecryption) {
167 chrome.sync.onPassphraseRequired.dispatch_(forDecryption);
168 }
169
170 function onPassphraseAccepted(bootstrapToken) {
171 chrome.sync.onPassphraseAccepted.dispatch_(bootstrapToken);
172 }
173
174 function onInitializationComplete() {
175 chrome.sync.onInitializationComplete.dispatch_();
176 }
177
178 function onPaused() {
179 chrome.sync.onPaused.dispatch_();
180 }
181
182 function onResumed() {
183 chrome.sync.onResumed.dispatch_();
184 }
185
186 function onStopSyncingPermanently() {
187 chrome.sync.onStopSyncingPermanently.dispatch_();
188 }
189
190 function onClearServerDataSucceeded() {
191 chrome.sync.onClearServerDataSucceeded();
192 }
193
194 function onClearServerDataFailed() {
195 chrome.sync.onClearServerDataFailed();
196 }
197
198 // Function reply handlers.
199
200 function onGetAboutInfoFinished() {
201 var args = Array.prototype.slice.call(arguments);
202 chrome.sync.getAboutInfo_.handleReply(args);
203 }
204
205 function onGetNotificationStateFinished() {
206 var args = Array.prototype.slice.call(arguments);
207 chrome.sync.getNotificationState_.handleReply(args);
208 }
209
210 function onGetRootNodeFinished() {
211 var args = Array.prototype.slice.call(arguments);
212 chrome.sync.getRootNode_.handleReply(args);
213 }
214
215 function onGetNodeByIdFinished() {
216 var args = Array.prototype.slice.call(arguments);
217 chrome.sync.getNodeById_.handleReply(args);
218 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698