blob: 699d780971cf96092d443fff489f9d9915c7f608 [file] [log] [blame]
// Copyright 2016 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 message_center.mojom;
import "mojo/public/mojom/base/time.mojom";
import "mojo/public/mojom/base/string16.mojom";
import "ui/gfx/image/mojo/image.mojom";
import "ui/message_center/public/mojo/notifier_id.mojom";
import "url/mojom/url.mojom";
// Matches message_center::NotificationType.
enum NotificationType {
SIMPLE = 0,
BASE_FORMAT = 1,
IMAGE = 2,
MULTIPLE = 3,
PROGRESS = 4,
CUSTOM = 5,
};
// Matches message_center::SettingsButtonHandler.
enum SettingsButtonHandler {
NONE = 0,
INLINE = 1,
DELEGATE = 2,
};
// Matches message_center::FullscreenVisibility.
enum FullscreenVisibility {
NONE= 0,
OVER_USER = 1,
};
// The fields and their meanings match message_center::NotificationItem.
struct NotificationItem {
mojo_base.mojom.String16 title;
mojo_base.mojom.String16 message;
};
// The fields and their meanings match message_center::ButtonInfo.
struct ButtonInfo {
mojo_base.mojom.String16 title;
// |icon| intentionally omitted as it's not used on platforms that use mojo
// for notifications.
mojo_base.mojom.String16? placeholder;
};
// These fields and their meanings are identical to those in
// message_center::RichNotificationData.
struct RichNotificationData {
int32 priority;
bool never_time_out;
mojo_base.mojom.Time timestamp;
// |context_message| intentionally omitted. See https://crbug.com/797084
gfx.mojom.ImageSkia? image;
gfx.mojom.ImageSkia? small_image;
array<NotificationItem> items;
int32 progress;
mojo_base.mojom.String16 progress_status;
array<ButtonInfo> buttons;
bool should_make_spoken_feedback_for_popup_updates;
bool pinned;
// |vibration_pattern| intentionally omitted
bool renotify;
// |silent| intentionally omitted
mojo_base.mojom.String16 accessible_name;
string vector_small_image_id;
uint32 accent_color;
SettingsButtonHandler settings_button_handler;
FullscreenVisibility fullscreen_visibility;
};
struct Notification {
NotificationType type;
// TODO(mhashmi): Server-side code (in Ash) needs to make sure this id won't
// collide with ids from different clients
string id;
mojo_base.mojom.String16 title;
mojo_base.mojom.String16 message;
gfx.mojom.ImageSkia? icon;
mojo_base.mojom.String16 display_source;
url.mojom.Url origin_url;
NotifierId notifier_id;
RichNotificationData optional_fields;
// |serial_number_| intentionally omitted.
// |shown_as_popup_| intentionally omitted.
// |is_read_| intentionally omitted.
// |delegate_| intentionally omitted.
// |custom_view_type_| intentionally omitted.
};