Index: components/arc/common/notifications.mojom |
diff --git a/components/arc/common/notifications.mojom b/components/arc/common/notifications.mojom |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5a7b78fb94cbebba8bf9d9a90aadbdb4c0d5e3c1 |
--- /dev/null |
+++ b/components/arc/common/notifications.mojom |
@@ -0,0 +1,70 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+module arc; |
+ |
+// These values must be matched with the NOTIFICATION_EVENT_* constants in |
+// com.android.server.ArcNotificationListenerService. |
+enum ArcNotificationEvent { |
+ BODY_CLICKED = 0, |
+ CLOSED = 1, |
+ // Five buttons at maximum (message_center::kNotificationMaximumItems = 5). |
+ BUTTON1_CLICKED = 2, |
+ BUTTON2_CLICKED = 3, |
+ BUTTON3_CLICKED = 4, |
+ BUTTON4_CLICKED = 5, |
+ BUTTON5_CLICKED = 6, |
+}; |
+ |
+// These values must be matched with the NOTIFICATION_TYPE_* constants in |
+// com.android.server.ArcNotificationListenerService. |
+enum ArcNotificationType { |
+ BASIC = 0, |
+ IMAGE = 1, |
+ PROGRESS = 2, |
+}; |
+ |
+struct ArcNotificationData { |
+ // Identifier of notification |
+ string key; |
+ // Type of notification |
+ ArcNotificationType type; |
+ // Body message of notification |
+ string message; |
+ // Title of notification |
+ string title; |
+ // Mimetype of |icon_data| |
+ string icon_mimetype; |
+ // Binary data of the icon |
+ array<uint8> icon_data; |
+ // Priority of notification, must be [2,-2] |
+ int32 priority; |
+ // Timestamp related to the notification |
+ int64 time; |
+ // The current value of progress, must be [0, progress_max]. |
+ int32 progress_current; |
+ // The maximum value of progress. |
+ int32 progress_max; |
+}; |
+ |
+interface NotificationsHost { |
+ // Tells the Chrome that a notification is posted (created or updated) on |
+ // Android. |
+ // |notification_data| is the data of notification (id, texts, icon and ...). |
+ OnNotificationPosted(ArcNotificationData notification_data); |
+ |
+ // Notifies that a notification is removed on Android. |
+ // |key| is the identifier of the notification. |
+ OnNotificationRemoved(string key); |
+}; |
+ |
+// TODO(lhchavez): Migrate all request/response messages to Mojo. |
+interface NotificationsInstance { |
+ // Establishes full-duplex communication with the host. |
+ Init(NotificationsHost host_ptr); |
+ |
+ // Sends an event from Chrome notification UI to Android. |
+ // |event| is a type of occured event. |
+ SendNotificationEventToAndroid(string key, ArcNotificationEvent event); |
+}; |