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}); |