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

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

Issue 22912021: Handling errors from chrome APIs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments Created 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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 var MS_IN_SECOND = 1000; 7 var MS_IN_SECOND = 1000;
8 8
9 /** 9 /**
10 * Builds an object to manage notification card set. 10 * Builds an object to manage notification card set.
(...skipping 22 matching lines...) Expand all
33 * Shows a notification. 33 * Shows a notification.
34 * @param {string} cardId Card ID. 34 * @param {string} cardId Card ID.
35 * @param {Object} cardCreateInfo Google Now card represented as a set of 35 * @param {Object} cardCreateInfo Google Now card represented as a set of
36 * parameters for showing a Chrome notification. 36 * parameters for showing a Chrome notification.
37 */ 37 */
38 function showNotification(cardId, cardCreateInfo) { 38 function showNotification(cardId, cardCreateInfo) {
39 console.log('cardManager.showNotification ' + cardId + ' ' + 39 console.log('cardManager.showNotification ' + cardId + ' ' +
40 JSON.stringify(cardCreateInfo)); 40 JSON.stringify(cardCreateInfo));
41 41
42 if (cardCreateInfo.previousVersion !== cardCreateInfo.version) { 42 if (cardCreateInfo.previousVersion !== cardCreateInfo.version) {
43 try { 43 // Delete a notification with the specified id if it already exists, and
44 // Delete a notification with the specified id if it already exists, and 44 // then create a notification.
45 // then create a notification. 45 instrumented.notifications.create(
46 instrumented.notifications.create( 46 cardId,
47 cardId, 47 cardCreateInfo.notification,
48 cardCreateInfo.notification, 48 function(newNotificationId) {
49 function(newNotificationId) { 49 if (!newNotificationId || chrome.runtime.lastError) {
50 if (!newNotificationId || chrome.runtime.lastError) { 50 var errorMessage = chrome.runtime.lastError &&
51 var errorMessage = chrome.runtime.lastError && 51 chrome.runtime.lastError.message;
52 chrome.runtime.lastError.message; 52 console.error('notifications.create: ID=' + newNotificationId +
53 console.error('notifications.create: ID=' + newNotificationId + 53 ', ERROR=' + errorMessage);
54 ', ERROR=' + errorMessage); 54 return;
55 return; 55 }
56 }
57 56
58 scheduleHiding(cardId, cardCreateInfo.timeHide); 57 scheduleHiding(cardId, cardCreateInfo.timeHide);
59 }); 58 });
60 } catch (error) {
61 console.error('Error in notifications.create: ' + error);
62 }
63 } else { 59 } else {
64 try { 60 // Update existing notification.
65 // Update existing notification. 61 instrumented.notifications.update(
66 instrumented.notifications.update( 62 cardId,
67 cardId, 63 cardCreateInfo.notification,
68 cardCreateInfo.notification, 64 function(wasUpdated) {
69 function(wasUpdated) { 65 if (!wasUpdated || chrome.runtime.lastError) {
70 if (!wasUpdated || chrome.runtime.lastError) { 66 var errorMessage = chrome.runtime.lastError &&
71 var errorMessage = chrome.runtime.lastError && 67 chrome.runtime.lastError.message;
72 chrome.runtime.lastError.message; 68 console.error('notifications.update: UPDATED=' + wasUpdated +
73 console.error('notifications.update: UPDATED=' + wasUpdated + 69 ', ERROR=' + errorMessage);
74 ', ERROR=' + errorMessage); 70 return;
75 return; 71 }
76 }
77 72
78 scheduleHiding(cardId, cardCreateInfo.timeHide); 73 scheduleHiding(cardId, cardCreateInfo.timeHide);
79 }); 74 });
80 } catch (error) {
81 console.error('Error in notifications.update: ' + error);
82 }
83 } 75 }
84 } 76 }
85 77
86 /** 78 /**
87 * Updates/creates a card notification with new data. 79 * Updates/creates a card notification with new data.
88 * @param {Object} card Google Now from the server. 80 * @param {Object} card Google Now from the server.
89 * @param {number=} previousVersion The version of the shown card with 81 * @param {number=} previousVersion The version of the shown card with
90 * this id, if it exists, undefined otherwise. 82 * this id, if it exists, undefined otherwise.
91 * @return {Object} Notification data entry for this card. 83 * @return {Object} Notification data entry for this card.
92 */ 84 */
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 chrome.alarms.clear(cardHidePrefix + cardId); 139 chrome.alarms.clear(cardHidePrefix + cardId);
148 } 140 }
149 141
150 instrumented.alarms.onAlarm.addListener(function(alarm) { 142 instrumented.alarms.onAlarm.addListener(function(alarm) {
151 console.log('cardManager.onAlarm ' + JSON.stringify(alarm)); 143 console.log('cardManager.onAlarm ' + JSON.stringify(alarm));
152 144
153 if (alarm.name.indexOf(cardShowPrefix) == 0) { 145 if (alarm.name.indexOf(cardShowPrefix) == 0) {
154 // Alarm to show the card. 146 // Alarm to show the card.
155 var cardId = alarm.name.substring(cardShowPrefix.length); 147 var cardId = alarm.name.substring(cardShowPrefix.length);
156 instrumented.storage.local.get('notificationsData', function(items) { 148 instrumented.storage.local.get('notificationsData', function(items) {
157 items.notificationsData = items.notificationsData || {};
158 console.log('cardManager.onAlarm.get ' + JSON.stringify(items)); 149 console.log('cardManager.onAlarm.get ' + JSON.stringify(items));
150 if (!items || !items.notificationsData)
151 return;
159 var notificationData = items.notificationsData[cardId]; 152 var notificationData = items.notificationsData[cardId];
160 if (!notificationData) 153 if (!notificationData)
161 return; 154 return;
162 155
163 showNotification(cardId, notificationData.cardCreateInfo); 156 showNotification(cardId, notificationData.cardCreateInfo);
164 }); 157 });
165 } else if (alarm.name.indexOf(cardHidePrefix) == 0) { 158 } else if (alarm.name.indexOf(cardHidePrefix) == 0) {
166 // Alarm to hide the card. 159 // Alarm to hide the card.
167 var cardId = alarm.name.substring(cardHidePrefix.length); 160 var cardId = alarm.name.substring(cardHidePrefix.length);
168 chrome.notifications.clear(cardId, function() {}); 161 chrome.notifications.clear(cardId, function() {});
169 } 162 }
170 }); 163 });
171 164
172 return { 165 return {
173 update: update, 166 update: update,
174 clear: clear 167 clear: clear
175 }; 168 };
176 } 169 }
OLDNEW
« no previous file with comments | « chrome/browser/resources/google_now/background_unittest.gtestjs ('k') | chrome/browser/resources/google_now/utility.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698