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

Side by Side Diff: content/child/notifications/notification_data_conversions.cc

Issue 2613003002: Use explicit WebString <-> string conversion methods for notifications (Closed)
Patch Set: build fix Created 3 years, 11 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
« no previous file with comments | « no previous file | content/child/notifications/notification_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 using blink::WebString;
18 19
19 namespace content { 20 namespace content {
20 21
21 PlatformNotificationData ToPlatformNotificationData( 22 PlatformNotificationData ToPlatformNotificationData(
22 const WebNotificationData& web_data) { 23 const WebNotificationData& web_data) {
23 PlatformNotificationData platform_data; 24 PlatformNotificationData platform_data;
24 platform_data.title = web_data.title; 25 platform_data.title = web_data.title.utf16();
25 26
26 switch (web_data.direction) { 27 switch (web_data.direction) {
27 case WebNotificationData::DirectionLeftToRight: 28 case WebNotificationData::DirectionLeftToRight:
28 platform_data.direction = 29 platform_data.direction =
29 PlatformNotificationData::DIRECTION_LEFT_TO_RIGHT; 30 PlatformNotificationData::DIRECTION_LEFT_TO_RIGHT;
30 break; 31 break;
31 case WebNotificationData::DirectionRightToLeft: 32 case WebNotificationData::DirectionRightToLeft:
32 platform_data.direction = 33 platform_data.direction =
33 PlatformNotificationData::DIRECTION_RIGHT_TO_LEFT; 34 PlatformNotificationData::DIRECTION_RIGHT_TO_LEFT;
34 break; 35 break;
35 case WebNotificationData::DirectionAuto: 36 case WebNotificationData::DirectionAuto:
36 platform_data.direction = PlatformNotificationData::DIRECTION_AUTO; 37 platform_data.direction = PlatformNotificationData::DIRECTION_AUTO;
37 break; 38 break;
38 } 39 }
39 40
40 platform_data.lang = base::UTF16ToUTF8(base::StringPiece16(web_data.lang)); 41 platform_data.lang = web_data.lang.utf8(
41 platform_data.body = web_data.body; 42 WebString::UTF8ConversionMode::kStrictReplacingErrorsWithFFFD);
42 platform_data.tag = base::UTF16ToUTF8(base::StringPiece16(web_data.tag)); 43 platform_data.body = web_data.body.utf16();
43 platform_data.image = blink::WebStringToGURL(web_data.image.string()); 44 platform_data.tag = web_data.tag.utf8(
44 platform_data.icon = blink::WebStringToGURL(web_data.icon.string()); 45 WebString::UTF8ConversionMode::kStrictReplacingErrorsWithFFFD);
45 platform_data.badge = blink::WebStringToGURL(web_data.badge.string()); 46 platform_data.image = WebStringToGURL(web_data.image.string());
47 platform_data.icon = WebStringToGURL(web_data.icon.string());
48 platform_data.badge = WebStringToGURL(web_data.badge.string());
46 platform_data.vibration_pattern.assign(web_data.vibrate.begin(), 49 platform_data.vibration_pattern.assign(web_data.vibrate.begin(),
47 web_data.vibrate.end()); 50 web_data.vibrate.end());
48 platform_data.timestamp = base::Time::FromJsTime(web_data.timestamp); 51 platform_data.timestamp = base::Time::FromJsTime(web_data.timestamp);
49 platform_data.renotify = web_data.renotify; 52 platform_data.renotify = web_data.renotify;
50 platform_data.silent = web_data.silent; 53 platform_data.silent = web_data.silent;
51 platform_data.require_interaction = web_data.requireInteraction; 54 platform_data.require_interaction = web_data.requireInteraction;
52 platform_data.data.assign(web_data.data.begin(), web_data.data.end()); 55 platform_data.data.assign(web_data.data.begin(), web_data.data.end());
53 platform_data.actions.resize(web_data.actions.size()); 56 platform_data.actions.resize(web_data.actions.size());
54 for (size_t i = 0; i < web_data.actions.size(); ++i) { 57 for (size_t i = 0; i < web_data.actions.size(); ++i) {
55 switch (web_data.actions[i].type) { 58 switch (web_data.actions[i].type) {
56 case blink::WebNotificationAction::Button: 59 case blink::WebNotificationAction::Button:
57 platform_data.actions[i].type = 60 platform_data.actions[i].type =
58 PLATFORM_NOTIFICATION_ACTION_TYPE_BUTTON; 61 PLATFORM_NOTIFICATION_ACTION_TYPE_BUTTON;
59 break; 62 break;
60 case blink::WebNotificationAction::Text: 63 case blink::WebNotificationAction::Text:
61 platform_data.actions[i].type = PLATFORM_NOTIFICATION_ACTION_TYPE_TEXT; 64 platform_data.actions[i].type = PLATFORM_NOTIFICATION_ACTION_TYPE_TEXT;
62 break; 65 break;
63 default: 66 default:
64 NOTREACHED() << "Unknown notification action type: " 67 NOTREACHED() << "Unknown notification action type: "
65 << web_data.actions[i].type; 68 << web_data.actions[i].type;
66 } 69 }
67 platform_data.actions[i].action = 70 platform_data.actions[i].action = web_data.actions[i].action.utf8(
68 base::UTF16ToUTF8(base::StringPiece16(web_data.actions[i].action)); 71 WebString::UTF8ConversionMode::kStrictReplacingErrorsWithFFFD);
69 platform_data.actions[i].title = web_data.actions[i].title; 72 platform_data.actions[i].title = web_data.actions[i].title.utf16();
70 platform_data.actions[i].icon = 73 platform_data.actions[i].icon =
71 blink::WebStringToGURL(web_data.actions[i].icon.string()); 74 WebStringToGURL(web_data.actions[i].icon.string());
72 platform_data.actions[i].placeholder = web_data.actions[i].placeholder; 75 platform_data.actions[i].placeholder =
76 WebString::toNullableString16(web_data.actions[i].placeholder);
73 } 77 }
74 78
75 return platform_data; 79 return platform_data;
76 } 80 }
77 81
78 WebNotificationData ToWebNotificationData( 82 WebNotificationData ToWebNotificationData(
79 const PlatformNotificationData& platform_data) { 83 const PlatformNotificationData& platform_data) {
80 WebNotificationData web_data; 84 WebNotificationData web_data;
81 web_data.title = platform_data.title; 85 web_data.title = WebString::fromUTF16(platform_data.title);
82 86
83 switch (platform_data.direction) { 87 switch (platform_data.direction) {
84 case PlatformNotificationData::DIRECTION_LEFT_TO_RIGHT: 88 case PlatformNotificationData::DIRECTION_LEFT_TO_RIGHT:
85 web_data.direction = WebNotificationData::DirectionLeftToRight; 89 web_data.direction = WebNotificationData::DirectionLeftToRight;
86 break; 90 break;
87 case PlatformNotificationData::DIRECTION_RIGHT_TO_LEFT: 91 case PlatformNotificationData::DIRECTION_RIGHT_TO_LEFT:
88 web_data.direction = WebNotificationData::DirectionRightToLeft; 92 web_data.direction = WebNotificationData::DirectionRightToLeft;
89 break; 93 break;
90 case PlatformNotificationData::DIRECTION_AUTO: 94 case PlatformNotificationData::DIRECTION_AUTO:
91 web_data.direction = WebNotificationData::DirectionAuto; 95 web_data.direction = WebNotificationData::DirectionAuto;
92 break; 96 break;
93 } 97 }
94 98
95 web_data.lang = blink::WebString::fromUTF8(platform_data.lang); 99 web_data.lang = WebString::fromUTF8(platform_data.lang);
96 web_data.body = platform_data.body; 100 web_data.body = WebString::fromUTF16(platform_data.body);
97 web_data.tag = blink::WebString::fromUTF8(platform_data.tag); 101 web_data.tag = WebString::fromUTF8(platform_data.tag);
98 web_data.image = blink::WebURL(platform_data.image); 102 web_data.image = blink::WebURL(platform_data.image);
99 web_data.icon = blink::WebURL(platform_data.icon); 103 web_data.icon = blink::WebURL(platform_data.icon);
100 web_data.badge = blink::WebURL(platform_data.badge); 104 web_data.badge = blink::WebURL(platform_data.badge);
101 web_data.vibrate = platform_data.vibration_pattern; 105 web_data.vibrate = platform_data.vibration_pattern;
102 web_data.timestamp = platform_data.timestamp.ToJsTime(); 106 web_data.timestamp = platform_data.timestamp.ToJsTime();
103 web_data.renotify = platform_data.renotify; 107 web_data.renotify = platform_data.renotify;
104 web_data.silent = platform_data.silent; 108 web_data.silent = platform_data.silent;
105 web_data.requireInteraction = platform_data.require_interaction; 109 web_data.requireInteraction = platform_data.require_interaction;
106 web_data.data = platform_data.data; 110 web_data.data = platform_data.data;
107 blink::WebVector<blink::WebNotificationAction> resized( 111 blink::WebVector<blink::WebNotificationAction> resized(
108 platform_data.actions.size()); 112 platform_data.actions.size());
109 web_data.actions.swap(resized); 113 web_data.actions.swap(resized);
110 for (size_t i = 0; i < platform_data.actions.size(); ++i) { 114 for (size_t i = 0; i < platform_data.actions.size(); ++i) {
111 switch (platform_data.actions[i].type) { 115 switch (platform_data.actions[i].type) {
112 case PLATFORM_NOTIFICATION_ACTION_TYPE_BUTTON: 116 case PLATFORM_NOTIFICATION_ACTION_TYPE_BUTTON:
113 web_data.actions[i].type = blink::WebNotificationAction::Button; 117 web_data.actions[i].type = blink::WebNotificationAction::Button;
114 break; 118 break;
115 case PLATFORM_NOTIFICATION_ACTION_TYPE_TEXT: 119 case PLATFORM_NOTIFICATION_ACTION_TYPE_TEXT:
116 web_data.actions[i].type = blink::WebNotificationAction::Text; 120 web_data.actions[i].type = blink::WebNotificationAction::Text;
117 break; 121 break;
118 default: 122 default:
119 NOTREACHED() << "Unknown platform data type: " 123 NOTREACHED() << "Unknown platform data type: "
120 << platform_data.actions[i].type; 124 << platform_data.actions[i].type;
121 } 125 }
122 web_data.actions[i].action = 126 web_data.actions[i].action =
123 blink::WebString::fromUTF8(platform_data.actions[i].action); 127 WebString::fromUTF8(platform_data.actions[i].action);
124 web_data.actions[i].title = platform_data.actions[i].title; 128 web_data.actions[i].title =
129 WebString::fromUTF16(platform_data.actions[i].title);
125 web_data.actions[i].icon = blink::WebURL(platform_data.actions[i].icon); 130 web_data.actions[i].icon = blink::WebURL(platform_data.actions[i].icon);
126 web_data.actions[i].placeholder = platform_data.actions[i].placeholder; 131 web_data.actions[i].placeholder =
132 WebString::fromUTF16(platform_data.actions[i].placeholder);
127 } 133 }
128 134
129 return web_data; 135 return web_data;
130 } 136 }
131 137
132 } // namespace content 138 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/child/notifications/notification_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698