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

Side by Side Diff: components/sync_driver/resources/chrome_sync.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
« no previous file with comments | « components/sync_driver/resources/about.js ('k') | components/sync_driver/resources/data.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012 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 // require cr/util.js
8
9 cr.define('chrome.sync', function() {
10 'use strict';
11
12 /**
13 * A simple timer to measure elapsed time.
14 * @constructor
15 */
16 function Timer() {
17 /**
18 * The time that this Timer was created.
19 * @type {number}
20 * @private
21 * @const
22 */
23 this.start_ = Date.now();
24 }
25
26 /**
27 * @return {number} The elapsed seconds since this Timer was created.
28 */
29 Timer.prototype.getElapsedSeconds = function() {
30 return (Date.now() - this.start_) / 1000;
31 };
32
33 /** @return {!Timer} An object which measures elapsed time. */
34 var makeTimer = function() {
35 return new Timer;
36 };
37
38 /**
39 * @param {string} name The name of the event type.
40 * @param {!Object} details A collection of event-specific details.
41 */
42 var dispatchEvent = function(name, details) {
43 var e = new Event(name);
44 e.details = details;
45 chrome.sync.events.dispatchEvent(e);
46 };
47
48 /**
49 * Registers to receive a stream of events through
50 * chrome.sync.dispatchEvent().
51 */
52 var registerForEvents = function() {
53 chrome.send('registerForEvents');
54 };
55
56 /**
57 * Registers to receive a stream of status counter update events
58 * chrome.sync.dispatchEvent().
59 */
60 var registerForPerTypeCounters = function() {
61 chrome.send('registerForPerTypeCounters');
62 }
63
64 /**
65 * Asks the browser to refresh our snapshot of sync state. Should result
66 * in an onAboutInfoUpdated event being emitted.
67 */
68 var requestUpdatedAboutInfo = function() {
69 chrome.send('requestUpdatedAboutInfo');
70 };
71
72 /**
73 * Asks the browser to send us the list of registered types. Should result
74 * in an onReceivedListOfTypes event being emitted.
75 */
76 var requestListOfTypes = function() {
77 chrome.send('requestListOfTypes');
78 };
79
80 /**
81 * Counter to uniquely identify requests while they're in progress.
82 * Used in the implementation of GetAllNodes.
83 */
84 var requestId = 0;
85
86 /**
87 * A map from counter values to asynchronous request callbacks.
88 * Used in the implementation of GetAllNodes.
89 * @type {{number: !Function}}
90 */
91 var requestCallbacks = {};
92
93 /**
94 * Asks the browser to send us a copy of all existing sync nodes.
95 * Will eventually invoke the given callback with the results.
96 *
97 * @param {function(!Object)} callback The function to call with the response.
98 */
99 var getAllNodes = function(callback) {
100 requestId++;
101 requestCallbacks[requestId] = callback;
102 chrome.send('getAllNodes', [requestId]);
103 };
104
105 /**
106 * Called from C++ with the response to a getAllNodes request.
107 * @param {number} id The requestId passed in with the request.
108 * @param {Object} response The response to the request.
109 */
110 var getAllNodesCallback = function(id, response) {
111 requestCallbacks[id](response);
112 requestCallbacks[id] = undefined;
113 };
114
115 return {
116 makeTimer: makeTimer,
117 dispatchEvent: dispatchEvent,
118 events: new cr.EventTarget(),
119 getAllNodes: getAllNodes,
120 getAllNodesCallback: getAllNodesCallback,
121 registerForEvents: registerForEvents,
122 registerForPerTypeCounters: registerForPerTypeCounters,
123 requestUpdatedAboutInfo: requestUpdatedAboutInfo,
124 requestListOfTypes: requestListOfTypes,
125 };
126 });
OLDNEW
« no previous file with comments | « components/sync_driver/resources/about.js ('k') | components/sync_driver/resources/data.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698