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

Side by Side 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: 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/child/notifications/notification_data_conversions.h" 5 #include "content/child/notifications/notification_data_conversions.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
11 #include "third_party/WebKit/public/platform/URLConversion.h" 11 #include "third_party/WebKit/public/platform/URLConversion.h"
12 #include "third_party/WebKit/public/platform/WebString.h" 12 #include "third_party/WebKit/public/platform/WebString.h"
13 #include "third_party/WebKit/public/platform/WebURL.h" 13 #include "third_party/WebKit/public/platform/WebURL.h"
14 #include "third_party/WebKit/public/platform/WebVector.h" 14 #include "third_party/WebKit/public/platform/WebVector.h"
15 #include "third_party/WebKit/public/platform/modules/notifications/WebNotificati onAction.h" 15 #include "third_party/WebKit/public/platform/modules/notifications/WebNotificati onAction.h"
16 16
17 using blink::WebNotificationData; 17 using blink::WebNotificationData;
18 18
19 namespace content { 19 namespace content {
20 20
21 namespace {
22 static const char kButtonString[] = "button";
Michael van Ouwerkerk 2016/04/05 10:06:54 nit: rename to kTypeButton and kTypeText
Nina 2016/04/05 13:28:22 Done.
23 static const char kTextString[] = "text";
24 }
25
21 PlatformNotificationData ToPlatformNotificationData( 26 PlatformNotificationData ToPlatformNotificationData(
22 const WebNotificationData& web_data) { 27 const WebNotificationData& web_data) {
23 PlatformNotificationData platform_data; 28 PlatformNotificationData platform_data;
24 platform_data.title = web_data.title; 29 platform_data.title = web_data.title;
25 30
26 switch (web_data.direction) { 31 switch (web_data.direction) {
27 case WebNotificationData::DirectionLeftToRight: 32 case WebNotificationData::DirectionLeftToRight:
28 platform_data.direction = 33 platform_data.direction =
29 PlatformNotificationData::DIRECTION_LEFT_TO_RIGHT; 34 PlatformNotificationData::DIRECTION_LEFT_TO_RIGHT;
30 break; 35 break;
(...skipping 13 matching lines...) Expand all
44 platform_data.badge = blink::WebStringToGURL(web_data.badge.string()); 49 platform_data.badge = blink::WebStringToGURL(web_data.badge.string());
45 platform_data.vibration_pattern.assign(web_data.vibrate.begin(), 50 platform_data.vibration_pattern.assign(web_data.vibrate.begin(),
46 web_data.vibrate.end()); 51 web_data.vibrate.end());
47 platform_data.timestamp = base::Time::FromJsTime(web_data.timestamp); 52 platform_data.timestamp = base::Time::FromJsTime(web_data.timestamp);
48 platform_data.renotify = web_data.renotify; 53 platform_data.renotify = web_data.renotify;
49 platform_data.silent = web_data.silent; 54 platform_data.silent = web_data.silent;
50 platform_data.require_interaction = web_data.requireInteraction; 55 platform_data.require_interaction = web_data.requireInteraction;
51 platform_data.data.assign(web_data.data.begin(), web_data.data.end()); 56 platform_data.data.assign(web_data.data.begin(), web_data.data.end());
52 platform_data.actions.resize(web_data.actions.size()); 57 platform_data.actions.resize(web_data.actions.size());
53 for (size_t i = 0; i < web_data.actions.size(); ++i) { 58 for (size_t i = 0; i < web_data.actions.size(); ++i) {
59 if (web_data.actions[i].type == kButtonString) {
60 platform_data.actions[i].type = PLATFORM_NOTIFICATION_ACTION_TYPE_BUTTON;
61 } else if (web_data.actions[i].type == kTextString) {
62 platform_data.actions[i].type = PLATFORM_NOTIFICATION_ACTION_TYPE_TEXT;
63 } else {
64 NOTREACHED() << "Unknown notification action type: "
65 << web_data.actions[i].type.utf8();
66 }
67 platform_data.actions[i].placeholder = web_data.actions[i].placeholder;
54 platform_data.actions[i].action = 68 platform_data.actions[i].action =
55 base::UTF16ToUTF8(base::StringPiece16(web_data.actions[i].action)); 69 base::UTF16ToUTF8(base::StringPiece16(web_data.actions[i].action));
Michael van Ouwerkerk 2016/04/05 10:06:54 Hmm, it seems no conversions are needed for placeh
Nina 2016/04/05 13:28:22 Unfortunately, action is std::string (as opposed t
56 platform_data.actions[i].title = web_data.actions[i].title; 70 platform_data.actions[i].title = web_data.actions[i].title;
57 platform_data.actions[i].icon = 71 platform_data.actions[i].icon =
58 blink::WebStringToGURL(web_data.actions[i].icon.string()); 72 blink::WebStringToGURL(web_data.actions[i].icon.string());
59 } 73 }
60 74
61 return platform_data; 75 return platform_data;
62 } 76 }
63 77
64 WebNotificationData ToWebNotificationData( 78 WebNotificationData ToWebNotificationData(
65 const PlatformNotificationData& platform_data) { 79 const PlatformNotificationData& platform_data) {
(...skipping 20 matching lines...) Expand all
86 web_data.vibrate = platform_data.vibration_pattern; 100 web_data.vibrate = platform_data.vibration_pattern;
87 web_data.timestamp = platform_data.timestamp.ToJsTime(); 101 web_data.timestamp = platform_data.timestamp.ToJsTime();
88 web_data.renotify = platform_data.renotify; 102 web_data.renotify = platform_data.renotify;
89 web_data.silent = platform_data.silent; 103 web_data.silent = platform_data.silent;
90 web_data.requireInteraction = platform_data.require_interaction; 104 web_data.requireInteraction = platform_data.require_interaction;
91 web_data.data = platform_data.data; 105 web_data.data = platform_data.data;
92 blink::WebVector<blink::WebNotificationAction> resized( 106 blink::WebVector<blink::WebNotificationAction> resized(
93 platform_data.actions.size()); 107 platform_data.actions.size());
94 web_data.actions.swap(resized); 108 web_data.actions.swap(resized);
95 for (size_t i = 0; i < platform_data.actions.size(); ++i) { 109 for (size_t i = 0; i < platform_data.actions.size(); ++i) {
110 switch (platform_data.actions[i].type) {
111 case PLATFORM_NOTIFICATION_ACTION_TYPE_BUTTON:
112 web_data.actions[i].type = kButtonString;
113 break;
114 case PLATFORM_NOTIFICATION_ACTION_TYPE_TEXT:
115 web_data.actions[i].type = kTextString;
116 break;
117 default:
118 NOTREACHED() << "Unknown platform data type: "
119 << platform_data.actions[i].type;
120 }
121 web_data.actions[i].placeholder = platform_data.actions[i].placeholder;
96 web_data.actions[i].action = 122 web_data.actions[i].action =
97 blink::WebString::fromUTF8(platform_data.actions[i].action); 123 blink::WebString::fromUTF8(platform_data.actions[i].action);
Michael van Ouwerkerk 2016/04/05 10:06:54 Same thing here, can the conversion code be remove
Nina 2016/04/05 13:28:22 ^^
98 web_data.actions[i].title = platform_data.actions[i].title; 124 web_data.actions[i].title = platform_data.actions[i].title;
99 web_data.actions[i].icon = blink::WebURL(platform_data.actions[i].icon); 125 web_data.actions[i].icon = blink::WebURL(platform_data.actions[i].icon);
100 } 126 }
101 127
102 return web_data; 128 return web_data;
103 } 129 }
104 130
105 } // namespace content 131 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698