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
3 // found in the LICENSE file.
5 // Messages for platform-native notifications using the Web Notification API.
6 // Multiply-included message file, hence no include guard.
13 #include "content/public/common/platform_notification_data.h"
14 #include "ipc/ipc_message_macros.h"
15 #include "third_party/WebKit/public/platform/modules/notifications/WebNotificationPermission.h"
16 #include "third_party/skia/include/core/SkBitmap.h"
18 // Singly-included section for type definitions.
19 #ifndef CONTENT_COMMON_PLATFORM_NOTIFICATION_MESSAGES_H_
20 #define CONTENT_COMMON_PLATFORM_NOTIFICATION_MESSAGES_H_
22 // Defines the pair of [persistent notification id] => [notification data] used
23 // when getting the notifications for a given Service Worker registration.
24 using PersistentNotificationInfo
=
25 std::pair
<int64_t, content::PlatformNotificationData
>;
27 #endif // CONTENT_COMMON_PLATFORM_NOTIFICATION_MESSAGES_H_
29 #define IPC_MESSAGE_START PlatformNotificationMsgStart
31 IPC_ENUM_TRAITS_MAX_VALUE(blink::WebNotificationPermission
,
32 blink::WebNotificationPermissionLast
)
34 IPC_ENUM_TRAITS_MAX_VALUE(
35 content::PlatformNotificationData::Direction
,
36 content::PlatformNotificationData::DIRECTION_LAST
)
38 IPC_STRUCT_TRAITS_BEGIN(content::PlatformNotificationAction
)
39 IPC_STRUCT_TRAITS_MEMBER(action
)
40 IPC_STRUCT_TRAITS_MEMBER(title
)
41 IPC_STRUCT_TRAITS_END()
43 IPC_STRUCT_TRAITS_BEGIN(content::PlatformNotificationData
)
44 IPC_STRUCT_TRAITS_MEMBER(title
)
45 IPC_STRUCT_TRAITS_MEMBER(direction
)
46 IPC_STRUCT_TRAITS_MEMBER(lang
)
47 IPC_STRUCT_TRAITS_MEMBER(body
)
48 IPC_STRUCT_TRAITS_MEMBER(tag
)
49 IPC_STRUCT_TRAITS_MEMBER(icon
)
50 IPC_STRUCT_TRAITS_MEMBER(vibration_pattern
)
51 IPC_STRUCT_TRAITS_MEMBER(silent
)
52 IPC_STRUCT_TRAITS_MEMBER(require_interaction
)
53 IPC_STRUCT_TRAITS_MEMBER(data
)
54 IPC_STRUCT_TRAITS_MEMBER(actions
)
55 IPC_STRUCT_TRAITS_END()
57 // Messages sent from the browser to the renderer.
59 // Informs the renderer that the browser has displayed the notification.
60 IPC_MESSAGE_CONTROL1(PlatformNotificationMsg_DidShow
,
61 int /* notification_id */)
63 // Informs the renderer that the notification has been closed.
64 IPC_MESSAGE_CONTROL1(PlatformNotificationMsg_DidClose
,
65 int /* notification_id */)
67 // Informs the renderer that the notification has been clicked on.
68 IPC_MESSAGE_CONTROL1(PlatformNotificationMsg_DidClick
,
69 int /* notification_id */)
71 // Reply to PlatformNotificationHostMsg_ShowPersistent indicating that a
72 // persistent notification has been shown on the platform (if |success| is
73 // true), or that an unspecified error occurred.
74 IPC_MESSAGE_CONTROL2(PlatformNotificationMsg_DidShowPersistent
,
78 // Reply to PlatformNotificationHostMsg_GetNotifications sharing a vector of
79 // available notifications per the request's constraints.
80 IPC_MESSAGE_CONTROL2(PlatformNotificationMsg_DidGetNotifications
,
82 std::vector
<PersistentNotificationInfo
>
85 // Messages sent from the renderer to the browser.
87 IPC_MESSAGE_CONTROL4(PlatformNotificationHostMsg_Show
,
88 int /* notification_id */,
91 content::PlatformNotificationData
/* notification_data */)
93 IPC_MESSAGE_CONTROL5(PlatformNotificationHostMsg_ShowPersistent
,
95 int64_t /* service_worker_registration_id */,
98 content::PlatformNotificationData
/* notification_data */)
100 IPC_MESSAGE_CONTROL4(PlatformNotificationHostMsg_GetNotifications
,
101 int /* request_id */,
102 int64_t /* service_worker_registration_id */,
104 std::string
/* filter_tag */)
106 IPC_MESSAGE_CONTROL1(PlatformNotificationHostMsg_Close
,
107 int /* notification_id */)
109 IPC_MESSAGE_CONTROL2(PlatformNotificationHostMsg_ClosePersistent
,
111 int64_t /* persistent_notification_id */)
113 IPC_SYNC_MESSAGE_CONTROL1_1(PlatformNotificationHostMsg_CheckPermission
,
115 blink::WebNotificationPermission
/* result */)