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

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

Issue 1388483002: Implement the Notification `timestamp` property (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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 "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "base/time/time.h"
8 #include "third_party/WebKit/public/platform/WebString.h" 9 #include "third_party/WebKit/public/platform/WebString.h"
9 #include "third_party/WebKit/public/platform/WebURL.h" 10 #include "third_party/WebKit/public/platform/WebURL.h"
10 #include "third_party/WebKit/public/platform/WebVector.h" 11 #include "third_party/WebKit/public/platform/WebVector.h"
11 #include "third_party/WebKit/public/platform/modules/notifications/WebNotificati onAction.h" 12 #include "third_party/WebKit/public/platform/modules/notifications/WebNotificati onAction.h"
12 13
13 using blink::WebNotificationData; 14 using blink::WebNotificationData;
14 15
15 namespace content { 16 namespace content {
16 17
17 PlatformNotificationData ToPlatformNotificationData( 18 PlatformNotificationData ToPlatformNotificationData(
(...skipping 15 matching lines...) Expand all
33 PlatformNotificationData::DIRECTION_AUTO; 34 PlatformNotificationData::DIRECTION_AUTO;
34 break; 35 break;
35 } 36 }
36 37
37 platform_data.lang = base::UTF16ToUTF8(base::StringPiece16(web_data.lang)); 38 platform_data.lang = base::UTF16ToUTF8(base::StringPiece16(web_data.lang));
38 platform_data.body = web_data.body; 39 platform_data.body = web_data.body;
39 platform_data.tag = base::UTF16ToUTF8(base::StringPiece16(web_data.tag)); 40 platform_data.tag = base::UTF16ToUTF8(base::StringPiece16(web_data.tag));
40 platform_data.icon = GURL(web_data.icon.string()); 41 platform_data.icon = GURL(web_data.icon.string());
41 platform_data.vibration_pattern.assign(web_data.vibrate.begin(), 42 platform_data.vibration_pattern.assign(web_data.vibrate.begin(),
42 web_data.vibrate.end()); 43 web_data.vibrate.end());
44 platform_data.timestamp = base::Time::FromJsTime(web_data.timestamp);
johnme 2015/10/20 17:12:21 If JS passes MAX_ULL, it'll overflow base::Time, s
Peter Beverloo 2016/01/28 17:18:29 Done.
43 platform_data.silent = web_data.silent; 45 platform_data.silent = web_data.silent;
44 platform_data.require_interaction = web_data.requireInteraction; 46 platform_data.require_interaction = web_data.requireInteraction;
45 platform_data.data.assign(web_data.data.begin(), web_data.data.end()); 47 platform_data.data.assign(web_data.data.begin(), web_data.data.end());
46 platform_data.actions.resize(web_data.actions.size()); 48 platform_data.actions.resize(web_data.actions.size());
47 for (size_t i = 0; i < web_data.actions.size(); ++i) { 49 for (size_t i = 0; i < web_data.actions.size(); ++i) {
48 platform_data.actions[i].action = 50 platform_data.actions[i].action =
49 base::UTF16ToUTF8(base::StringPiece16(web_data.actions[i].action)); 51 base::UTF16ToUTF8(base::StringPiece16(web_data.actions[i].action));
50 platform_data.actions[i].title = web_data.actions[i].title; 52 platform_data.actions[i].title = web_data.actions[i].title;
51 } 53 }
52 54
(...skipping 15 matching lines...) Expand all
68 case PlatformNotificationData::DIRECTION_AUTO: 70 case PlatformNotificationData::DIRECTION_AUTO:
69 web_data.direction = WebNotificationData::DirectionAuto; 71 web_data.direction = WebNotificationData::DirectionAuto;
70 break; 72 break;
71 } 73 }
72 74
73 web_data.lang = blink::WebString::fromUTF8(platform_data.lang); 75 web_data.lang = blink::WebString::fromUTF8(platform_data.lang);
74 web_data.body = platform_data.body; 76 web_data.body = platform_data.body;
75 web_data.tag = blink::WebString::fromUTF8(platform_data.tag); 77 web_data.tag = blink::WebString::fromUTF8(platform_data.tag);
76 web_data.icon = blink::WebURL(platform_data.icon); 78 web_data.icon = blink::WebURL(platform_data.icon);
77 web_data.vibrate = platform_data.vibration_pattern; 79 web_data.vibrate = platform_data.vibration_pattern;
80 web_data.timestamp = platform_data.timestamp.ToJsTime();
johnme 2015/10/20 17:12:21 I don't think underflow is possible, and I think z
Peter Beverloo 2016/01/28 17:18:29 Done.
78 web_data.silent = platform_data.silent; 81 web_data.silent = platform_data.silent;
79 web_data.requireInteraction = platform_data.require_interaction; 82 web_data.requireInteraction = platform_data.require_interaction;
80 web_data.data = platform_data.data; 83 web_data.data = platform_data.data;
81 blink::WebVector<blink::WebNotificationAction> resized( 84 blink::WebVector<blink::WebNotificationAction> resized(
82 platform_data.actions.size()); 85 platform_data.actions.size());
83 web_data.actions.swap(resized); 86 web_data.actions.swap(resized);
84 for (size_t i = 0; i < platform_data.actions.size(); ++i) { 87 for (size_t i = 0; i < platform_data.actions.size(); ++i) {
85 web_data.actions[i].action = 88 web_data.actions[i].action =
86 blink::WebString::fromUTF8(platform_data.actions[i].action); 89 blink::WebString::fromUTF8(platform_data.actions[i].action);
87 web_data.actions[i].title = platform_data.actions[i].title; 90 web_data.actions[i].title = platform_data.actions[i].title;
88 } 91 }
89 92
90 return web_data; 93 return web_data;
91 } 94 }
92 95
93 } // namespace content 96 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698