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 6c3b516bc44ea577ee7512e3175b5271a14427f6..534ff651b1b81b3c267085967a7630fc0b3692e2 100644 |
--- a/chrome/browser/resources/google_now/background.js |
+++ b/chrome/browser/resources/google_now/background.js |
@@ -281,7 +281,8 @@ function showNotification(card, notificationsData, opt_previousVersion) { |
notificationsData[card.notificationId] = { |
actionUrls: card.actionUrls, |
- version: card.version |
+ version: card.version, |
+ dismissalParameters: card.dismissal |
}; |
} |
@@ -412,7 +413,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); |
@@ -473,11 +475,12 @@ 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 'done' |
* parameter. |
*/ |
function requestCardDismissal( |
- notificationId, dismissalTimeMs, callbackBoolean) { |
+ notificationId, dismissalTimeMs, dismissalParameters, callbackBoolean) { |
console.log('requestDismissingCard ' + notificationId + ' from ' + |
NOTIFICATION_CARDS_URL); |
@@ -489,10 +492,7 @@ function requestCardDismissal( |
} |
recordEvent(DiagnosticEvent.DISMISS_REQUEST_TOTAL); |
- // Send a dismiss request to the server. |
- var requestParameters = 'id=' + notificationId + |
- '&dismissalAge=' + dismissalAge; |
- 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) |
@@ -509,7 +509,13 @@ function requestCardDismissal( |
setAuthorization(request, function(success) { |
if (success) { |
tasks.debugSetStepName('requestCardDismissal-send-request'); |
- request.send(requestParameters); |
+ |
+ var dismissalObject = { |
+ id: notificationId, |
+ age: dismissalAge, |
+ dismissal: dismissalParameters |
+ }; |
+ request.send(JSON.stringify(dismissalObject)); |
} else { |
callbackBoolean(false); |
} |
@@ -552,16 +558,19 @@ function processPendingDismissals(callbackBoolean) { |
// recursively with the rest. |
var dismissal = items.pendingDismissals[0]; |
requestCardDismissal( |
- dismissal.notificationId, dismissal.time, function(done) { |
- if (done) { |
- dismissalsChanged = true; |
- items.pendingDismissals.splice(0, 1); |
- items.recentDismissals[dismissal.notificationId] = Date.now(); |
- doProcessDismissals(); |
- } else { |
- onFinish(false); |
- } |
- }); |
+ dismissal.notificationId, |
+ dismissal.time, |
+ dismissal.parameters, |
+ function(done) { |
+ if (done) { |
+ dismissalsChanged = true; |
+ items.pendingDismissals.splice(0, 1); |
+ items.recentDismissals[dismissal.notificationId] = Date.now(); |
+ doProcessDismissals(); |
+ } else { |
+ onFinish(false); |
+ } |
+ }); |
} |
doProcessDismissals(); |
@@ -665,13 +674,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}); |