| Index: jingle/notifier/listener/push_notifications_send_update_task.cc
|
| ===================================================================
|
| --- jingle/notifier/listener/push_notifications_send_update_task.cc (revision 119260)
|
| +++ jingle/notifier/listener/push_notifications_send_update_task.cc (working copy)
|
| @@ -44,10 +44,12 @@
|
| const buzz::QName kQnPush(kPushNotificationsNamespace, "push");
|
| const buzz::QName kQnChannel(buzz::STR_EMPTY, "channel");
|
| const buzz::QName kQnData(kPushNotificationsNamespace, "data");
|
| + const buzz::QName kQnRecipient(kPushNotificationsNamespace, "recipient");
|
|
|
| // Create our update stanza. The message is constructed as:
|
| // <message from='{full jid}' to='{bare jid}' type='headline'>
|
| // <push xmlns='google:push' channel='{channel}'>
|
| + // [<recipient to='{bare jid}'>{base-64 encoded data}</data>]*
|
| // <data>{base-64 encoded data}</data>
|
| // </push>
|
| // </message>
|
| @@ -60,6 +62,24 @@
|
| push->AddAttr(kQnChannel, notification.channel);
|
| message->AddElement(push);
|
|
|
| + const RecipientList& recipients = notification.recipients;
|
| + for (size_t i = 0; i < recipients.size(); ++i) {
|
| + const Recipient& recipient = recipients[i];
|
| + buzz::XmlElement* recipient_element =
|
| + new buzz::XmlElement(kQnRecipient, true);
|
| + push->AddElement(recipient_element);
|
| + recipient_element->AddAttr(buzz::QN_TO, recipient.to);
|
| + if (!recipient.user_specific_data.empty()) {
|
| + std::string base64_data;
|
| + if (!base::Base64Encode(recipient.user_specific_data, &base64_data)) {
|
| + LOG(WARNING) << "Could not encode data "
|
| + << recipient.user_specific_data;
|
| + } else {
|
| + recipient_element->SetBodyText(base64_data);
|
| + }
|
| + }
|
| + }
|
| +
|
| buzz::XmlElement* data = new buzz::XmlElement(kQnData, true);
|
| std::string base64_data;
|
| if (!base::Base64Encode(notification.data, &base64_data)) {
|
|
|