OLD | NEW |
---|---|
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 /** | 7 /** |
8 * @fileoverview The event page for Google Now for Chrome implementation. | 8 * @fileoverview The event page for Google Now for Chrome implementation. |
9 * The Google Now event page gets Google Now cards from the server and shows | 9 * The Google Now event page gets Google Now cards from the server and shows |
10 * them as Chrome notifications. | 10 * them as Chrome notifications. |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
195 } | 195 } |
196 | 196 |
197 return false; | 197 return false; |
198 } | 198 } |
199 | 199 |
200 var tasks = buildTaskManager(areTasksConflicting); | 200 var tasks = buildTaskManager(areTasksConflicting); |
201 | 201 |
202 // Add error processing to API calls. | 202 // Add error processing to API calls. |
203 wrapper.instrumentChromeApiFunction('gcm.onMessage.addListener', 0); | 203 wrapper.instrumentChromeApiFunction('gcm.onMessage.addListener', 0); |
204 wrapper.instrumentChromeApiFunction('gcm.register', 1); | 204 wrapper.instrumentChromeApiFunction('gcm.register', 1); |
205 wrapper.instrumentChromeApiFunction('gcm.unregister', 0); | |
205 wrapper.instrumentChromeApiFunction('metricsPrivate.getVariationParams', 1); | 206 wrapper.instrumentChromeApiFunction('metricsPrivate.getVariationParams', 1); |
206 wrapper.instrumentChromeApiFunction('notifications.clear', 1); | 207 wrapper.instrumentChromeApiFunction('notifications.clear', 1); |
207 wrapper.instrumentChromeApiFunction('notifications.create', 2); | 208 wrapper.instrumentChromeApiFunction('notifications.create', 2); |
208 wrapper.instrumentChromeApiFunction('notifications.getPermissionLevel', 0); | 209 wrapper.instrumentChromeApiFunction('notifications.getPermissionLevel', 0); |
209 wrapper.instrumentChromeApiFunction('notifications.update', 2); | 210 wrapper.instrumentChromeApiFunction('notifications.update', 2); |
210 wrapper.instrumentChromeApiFunction('notifications.getAll', 0); | 211 wrapper.instrumentChromeApiFunction('notifications.getAll', 0); |
211 wrapper.instrumentChromeApiFunction( | 212 wrapper.instrumentChromeApiFunction( |
212 'notifications.onButtonClicked.addListener', 0); | 213 'notifications.onButtonClicked.addListener', 0); |
213 wrapper.instrumentChromeApiFunction('notifications.onClicked.addListener', 0); | 214 wrapper.instrumentChromeApiFunction('notifications.onClicked.addListener', 0); |
214 wrapper.instrumentChromeApiFunction('notifications.onClosed.addListener', 0); | 215 wrapper.instrumentChromeApiFunction('notifications.onClosed.addListener', 0); |
(...skipping 805 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1020 // We don't clear localStorage since those values are still relevant | 1021 // We don't clear localStorage since those values are still relevant |
1021 // across Google Now start-stop events. | 1022 // across Google Now start-stop events. |
1022 chrome.storage.local.clear(); | 1023 chrome.storage.local.clear(); |
1023 } | 1024 } |
1024 | 1025 |
1025 /** | 1026 /** |
1026 * Initializes the event page on install or on browser startup. | 1027 * Initializes the event page on install or on browser startup. |
1027 */ | 1028 */ |
1028 function initialize() { | 1029 function initialize() { |
1029 recordEvent(GoogleNowEvent.EXTENSION_START); | 1030 recordEvent(GoogleNowEvent.EXTENSION_START); |
1030 registerForGcm(); | 1031 // TODO(skare): Reenable, after signin. |
1032 unregisterFromGcm(); | |
1031 onStateChange(); | 1033 onStateChange(); |
1032 } | 1034 } |
1033 | 1035 |
1034 /** | 1036 /** |
1035 * Starts or stops the main pipeline for polling cards. | 1037 * Starts or stops the main pipeline for polling cards. |
1036 * @param {boolean} shouldPollCardsRequest true to start and | 1038 * @param {boolean} shouldPollCardsRequest true to start and |
1037 * false to stop polling cards. | 1039 * false to stop polling cards. |
1038 */ | 1040 */ |
1039 function setShouldPollCards(shouldPollCardsRequest) { | 1041 function setShouldPollCards(shouldPollCardsRequest) { |
1040 updateCardsAttempts.isRunning(function(currentValue) { | 1042 updateCardsAttempts.isRunning(function(currentValue) { |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1304 resolve(registrationId); | 1306 resolve(registrationId); |
1305 } else { | 1307 } else { |
1306 reject(); | 1308 reject(); |
1307 } | 1309 } |
1308 }); | 1310 }); |
1309 }); | 1311 }); |
1310 }); | 1312 }); |
1311 } | 1313 } |
1312 | 1314 |
1313 /** | 1315 /** |
1316 * Unregisters from GCM if previously registered. | |
1317 */ | |
1318 function unregisterFromGcm() { | |
1319 fillFromChromeLocalStorage({gcmRegistrationId: undefined}) | |
1320 .then(function(items) { | |
1321 if (items.gcmRegistrationId) { | |
1322 console.log('Unregistering from gcm.'); | |
1323 chrome.storage.local.remove( | |
1324 ['gcmNotificationKey', 'gcmRegistrationId']); | |
1325 instrumented.gcm.unregister(function() {}); | |
fgorski
2015/04/23 22:38:37
Would it make sense to call chrome.storage.local.r
skare_
2015/04/23 22:50:53
uploaded new snapshot -- via if(!chrome.runtime.la
| |
1326 } | |
1327 }); | |
1328 } | |
1329 | |
1330 /** | |
1314 * Polls the optin state. | 1331 * Polls the optin state. |
1315 * Sometimes we get the response to the opted in result too soon during | 1332 * Sometimes we get the response to the opted in result too soon during |
1316 * push messaging. We'll recheck the optin state a few times before giving up. | 1333 * push messaging. We'll recheck the optin state a few times before giving up. |
1317 */ | 1334 */ |
1318 function pollOptedInWithRecheck() { | 1335 function pollOptedInWithRecheck() { |
1319 /** | 1336 /** |
1320 * Cleans up any state used to recheck the opt-in poll. | 1337 * Cleans up any state used to recheck the opt-in poll. |
1321 */ | 1338 */ |
1322 function clearPollingState() { | 1339 function clearPollingState() { |
1323 localStorage.removeItem('optedInCheckCount'); | 1340 localStorage.removeItem('optedInCheckCount'); |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1470 lastPollNowPayloads: items.lastPollNowPayloads, | 1487 lastPollNowPayloads: items.lastPollNowPayloads, |
1471 notificationGroups: items.notificationGroups | 1488 notificationGroups: items.notificationGroups |
1472 }); | 1489 }); |
1473 | 1490 |
1474 pollOptedInWithRecheck(); | 1491 pollOptedInWithRecheck(); |
1475 } | 1492 } |
1476 }); | 1493 }); |
1477 }); | 1494 }); |
1478 } | 1495 } |
1479 }); | 1496 }); |
OLD | NEW |