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

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

Issue 1334173006: Move sync_internals resources and constants to //components. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gcmInternals
Patch Set: Update resource_ids Created 5 years, 3 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
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

Powered by Google App Engine
This is Rietveld 408576698