Chromium Code Reviews| Index: chrome/browser/resources/google_now/background.js |
| diff --git a/chrome/browser/resources/google_now/background.js b/chrome/browser/resources/google_now/background.js |
| index d52d18db3c646f6305935af9fffa31de1c1cdc30..99768c1e554ea47522c7277741728cfc6e0ab039 100644 |
| --- a/chrome/browser/resources/google_now/background.js |
| +++ b/chrome/browser/resources/google_now/background.js |
| @@ -274,7 +274,8 @@ function showNotification(card, notificationsData, opt_previousVersion) { |
| notificationsData[card.notificationId] = { |
| actionUrls: card.actionUrls, |
| - version: card.version |
| + version: card.version, |
| + dismissalParameters: card.dismissal |
| }; |
| } |
| @@ -405,7 +406,8 @@ function requestNotificationCards(position, callback) { |
| ',' + position.coords.longitude + |
| ',' + position.coords.accuracy; |
| - var request = buildServerRequest('notifications'); |
| + var request = buildServerRequest('notifications', |
| + 'application/x-www-form-urlencoded'); |
| request.onloadend = function(event) { |
| console.log('requestNotificationCards-onloadend ' + request.status); |
| @@ -466,18 +468,16 @@ function updateNotificationsCards(position) { |
| * @param {string} notificationId Unique identifier of the card. |
| * @param {number} dismissalTimeMs Time of the user's dismissal of the card in |
| * milliseconds since epoch. |
| + * @param {Object} dismissalParameters Dismissal parameters. |
| * @param {function(boolean)} callbackBoolean Completion callback with 'success' |
| * parameter. |
| */ |
| function requestCardDismissal( |
| - notificationId, dismissalTimeMs, callbackBoolean) { |
| + notificationId, dismissalTimeMs, dismissalParameters, callbackBoolean) { |
| console.log('requestDismissingCard ' + notificationId + ' from ' + |
| NOTIFICATION_CARDS_URL); |
| recordEvent(DiagnosticEvent.DISMISS_REQUEST_TOTAL); |
| - // Send a dismiss request to the server. |
| - var requestParameters = 'id=' + notificationId + |
| - '&dismissalAge=' + (Date.now() - dismissalTimeMs); |
| - var request = buildServerRequest('dismiss'); |
| + var request = buildServerRequest('dismiss', 'application/json'); |
| request.onloadend = function(event) { |
| console.log('requestDismissingCard-onloadend ' + request.status); |
| if (request.status == HTTP_OK) |
| @@ -489,7 +489,13 @@ function requestCardDismissal( |
| setAuthorization(request, function(success) { |
| if (success) { |
| tasks.debugSetStepName('requestCardDismissal-send-request'); |
| - request.send(requestParameters); |
| + |
| + var dismissalObject = { |
| + id: notificationId, |
| + age: Date.now() - dismissalTimeMs, |
| + dismissal: dismissalParameters |
| + }; |
| + request.send(JSON.stringify(dismissalObject)); |
| } else { |
| callbackBoolean(false); |
| } |
| @@ -531,8 +537,10 @@ function processPendingDismissals(callbackBoolean) { |
| // Send dismissal for the first card, and if successful, repeat |
| // recursively with the rest. |
| var dismissal = items.pendingDismissals[0]; |
| - requestCardDismissal( |
| - dismissal.notificationId, dismissal.time, function(success) { |
| + requestCardDismissal(dismissal.notificationId, |
| + dismissal.time, |
| + dismissal.parameters, |
| + function(success) { |
|
arv (Not doing code reviews)
2013/07/10 22:19:57
strange indentation
vadimt
2013/07/10 22:47:18
Done.
|
| if (success) { |
| dismissalsChanged = true; |
| items.pendingDismissals.splice(0, 1); |
| @@ -645,13 +653,17 @@ function onNotificationClosed(notificationId, byUser) { |
| notificationId, |
| function() {}); |
| - tasks.debugSetStepName('onNotificationClosed-get-pendingDismissals'); |
| - storage.get('pendingDismissals', function(items) { |
| + tasks.debugSetStepName('onNotificationClosed-storage-get'); |
| + storage.get(['pendingDismissals', 'notificationsData'], function(items) { |
| items.pendingDismissals = items.pendingDismissals || []; |
| + items.notificationsData = items.notificationsData || {}; |
| + |
| + var notificationData = items.notificationsData[notificationId]; |
| var dismissal = { |
| notificationId: notificationId, |
| - time: Date.now() |
| + time: Date.now(), |
| + parameters: notificationData && notificationData.dismissalParameters |
| }; |
| items.pendingDismissals.push(dismissal); |
| storage.set({pendingDismissals: items.pendingDismissals}); |