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

Side by Side Diff: chrome/browser/resources/google_now/utility.js

Issue 19822007: Updated Google Now to Check the Geolocation Access Preference (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@r213016
Patch Set: CR Feedback Created 7 years, 5 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
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 'use strict'; 5 'use strict';
6 6
7 // TODO(vadimt): Remove alerts. 7 // TODO(vadimt): Remove alerts.
8 8
9 /** 9 /**
10 * @fileoverview Utility objects and functions for Google Now extension. 10 * @fileoverview Utility objects and functions for Google Now extension.
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 100
101 return true; 101 return true;
102 } 102 }
103 103
104 /** 104 /**
105 * Adds a new task. If another task is not running, runs the task immediately. 105 * Adds a new task. If another task is not running, runs the task immediately.
106 * If any task in the queue is not compatible with the task, ignores the new 106 * If any task in the queue is not compatible with the task, ignores the new
107 * task. Otherwise, stores the task for future execution. 107 * task. Otherwise, stores the task for future execution.
108 * @param {string} taskName Name of the task. 108 * @param {string} taskName Name of the task.
109 * @param {function(function())} task Function to run. Takes a callback 109 * @param {function(function())} task Function to run. Takes a callback
110 * parameter. 110 * parameter. Call this callback on completion.
111 */ 111 */
112 function add(taskName, task) { 112 function add(taskName, task) {
113 console.log('Adding task ' + taskName); 113 console.log('Adding task ' + taskName);
114 if (!canQueue(taskName)) 114 if (!canQueue(taskName))
115 return; 115 return;
116 116
117 queue.push({name: taskName, task: task}); 117 queue.push({name: taskName, task: task});
118 118
119 if (queue.length == 1) { 119 if (queue.length == 1) {
120 startFirst(); 120 startFirst();
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 */ 284 */
285 function createAlarm(delaySeconds) { 285 function createAlarm(delaySeconds) {
286 var alarmInfo = { 286 var alarmInfo = {
287 delayInMinutes: delaySeconds / 60, 287 delayInMinutes: delaySeconds / 60,
288 periodInMinutes: maximumDelaySeconds / 60 288 periodInMinutes: maximumDelaySeconds / 60
289 }; 289 };
290 chrome.alarms.create(alarmName, alarmInfo); 290 chrome.alarms.create(alarmName, alarmInfo);
291 } 291 }
292 292
293 /** 293 /**
294 * Indicates if this attempt manager has started.
295 * @param {function(boolean)} callback The function's boolean parameter is
296 * true if the attempt manager has started, false otherwise.
297 */
298 function isRunning(callback) {
299 chrome.alarms.get(alarmName, function(alarmInfo) {
300 callback(!!alarmInfo);
301 });
302 }
303
304 /**
294 * Schedules next attempt. 305 * Schedules next attempt.
295 * @param {number=} opt_previousDelaySeconds Previous delay in a sequence of 306 * @param {number=} opt_previousDelaySeconds Previous delay in a sequence of
296 * retry attempts, if specified. Not specified for scheduling first retry 307 * retry attempts, if specified. Not specified for scheduling first retry
297 * in the exponential sequence. 308 * in the exponential sequence.
298 */ 309 */
299 function scheduleNextAttempt(opt_previousDelaySeconds) { 310 function scheduleNextAttempt(opt_previousDelaySeconds) {
300 var base = opt_previousDelaySeconds ? opt_previousDelaySeconds * 2 : 311 var base = opt_previousDelaySeconds ? opt_previousDelaySeconds * 2 :
301 initialDelaySeconds; 312 initialDelaySeconds;
302 var newRetryDelaySeconds = 313 var newRetryDelaySeconds =
303 Math.min(base * (1 + 0.2 * Math.random()), maximumDelaySeconds); 314 Math.min(base * (1 + 0.2 * Math.random()), maximumDelaySeconds);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 tasks.debugSetStepName('planForNext-get-storage'); 352 tasks.debugSetStepName('planForNext-get-storage');
342 storage.get(currentDelayStorageKey, function(items) { 353 storage.get(currentDelayStorageKey, function(items) {
343 console.log('planForNext-get-storage ' + JSON.stringify(items)); 354 console.log('planForNext-get-storage ' + JSON.stringify(items));
344 scheduleNextAttempt(items[currentDelayStorageKey]); 355 scheduleNextAttempt(items[currentDelayStorageKey]);
345 callback(); 356 callback();
346 }); 357 });
347 } 358 }
348 359
349 chrome.alarms.onAlarm.addListener(function(alarm) { 360 chrome.alarms.onAlarm.addListener(function(alarm) {
350 if (alarm.name == alarmName) 361 if (alarm.name == alarmName)
351 attempt(); 362 isRunning(function(running) {
363 if (running)
364 attempt();
365 });
352 }); 366 });
353 367
354 return { 368 return {
355 start: start, 369 start: start,
356 planForNext: planForNext, 370 planForNext: planForNext,
357 stop: stop 371 stop: stop,
372 isRunning: isRunning
358 }; 373 };
359 } 374 }
375
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698