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

Unified Diff: content/child/notifications/notification_data_conversions.cc

Issue 1855443002: Implement receiving side of web notification inline replies (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comments & Tests Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: content/child/notifications/notification_data_conversions.cc
diff --git a/content/child/notifications/notification_data_conversions.cc b/content/child/notifications/notification_data_conversions.cc
index 23763043869f23539e54c69b70240892c2f5dc64..ca78f3460a28de187359541cb25a28cd3df68ede 100644
--- a/content/child/notifications/notification_data_conversions.cc
+++ b/content/child/notifications/notification_data_conversions.cc
@@ -18,6 +18,11 @@ using blink::WebNotificationData;
namespace content {
+namespace {
+static const char kTypeButton[] = "button";
+static const char kTypeText[] = "text";
+}
+
PlatformNotificationData ToPlatformNotificationData(
const WebNotificationData& web_data) {
PlatformNotificationData platform_data;
@@ -51,11 +56,20 @@ PlatformNotificationData ToPlatformNotificationData(
platform_data.data.assign(web_data.data.begin(), web_data.data.end());
platform_data.actions.resize(web_data.actions.size());
for (size_t i = 0; i < web_data.actions.size(); ++i) {
+ if (web_data.actions[i].type == kTypeButton) {
Avi (use Gerrit) 2016/04/05 14:32:33 Who specified WebNotificationAction to be a string
Michael van Ouwerkerk 2016/04/05 14:37:49 Avi, the WebNotificationAction is a struct. Are yo
Nina 2016/04/05 16:10:01 If you meant the type member, I fixed it to be an
+ platform_data.actions[i].type = PLATFORM_NOTIFICATION_ACTION_TYPE_BUTTON;
+ } else if (web_data.actions[i].type == kTypeText) {
+ platform_data.actions[i].type = PLATFORM_NOTIFICATION_ACTION_TYPE_TEXT;
+ } else {
+ NOTREACHED() << "Unknown notification action type: "
+ << web_data.actions[i].type.utf8();
+ }
platform_data.actions[i].action =
base::UTF16ToUTF8(base::StringPiece16(web_data.actions[i].action));
platform_data.actions[i].title = web_data.actions[i].title;
platform_data.actions[i].icon =
blink::WebStringToGURL(web_data.actions[i].icon.string());
+ platform_data.actions[i].placeholder = web_data.actions[i].placeholder;
}
return platform_data;
@@ -93,10 +107,22 @@ WebNotificationData ToWebNotificationData(
platform_data.actions.size());
web_data.actions.swap(resized);
for (size_t i = 0; i < platform_data.actions.size(); ++i) {
+ switch (platform_data.actions[i].type) {
+ case PLATFORM_NOTIFICATION_ACTION_TYPE_BUTTON:
+ web_data.actions[i].type = kTypeButton;
+ break;
+ case PLATFORM_NOTIFICATION_ACTION_TYPE_TEXT:
+ web_data.actions[i].type = kTypeText;
+ break;
+ default:
+ NOTREACHED() << "Unknown platform data type: "
+ << platform_data.actions[i].type;
+ }
web_data.actions[i].action =
blink::WebString::fromUTF8(platform_data.actions[i].action);
web_data.actions[i].title = platform_data.actions[i].title;
web_data.actions[i].icon = blink::WebURL(platform_data.actions[i].icon);
+ web_data.actions[i].placeholder = platform_data.actions[i].placeholder;
}
return web_data;

Powered by Google App Engine
This is Rietveld 408576698