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

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

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

Powered by Google App Engine
This is Rietveld 408576698