blob: 7b0b64cc710bbbb8e9f8db46cf69fd6d25ded0af [file] [log] [blame]
// Copyright 2017 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 content.mojom;
import "content/public/common/push_messaging_status.mojom";
import "url/mojo/url.mojom";
// TODO(heke): The type-mapping struct and enums are duplicately defined. Need
// to remove/replace those defined in content or blink namespace.
struct PushSubscriptionOptions {
bool user_visible_only;
string sender_info;
};
enum PushErrorType {
ABORT = 0,
NETWORK = 1,
NONE = 2,
NOT_ALLOWED = 3,
NOT_FOUND = 4,
NOT_SUPPORTED = 5,
INVALID_STATE = 6,
LAST = INVALID_STATE
};
enum PushPermissionStatus {
GRANTED = 0,
DENIED = 1,
PROMPT = 2,
LAST = PROMPT
};
interface PushMessaging {
Subscribe(int32 render_frame_id,
int64 service_worker_registration_id,
PushSubscriptionOptions options,
bool user_gesture)
=> (PushRegistrationStatus status,
url.mojom.Url? endpoint,
PushSubscriptionOptions? options,
array<uint8>? p256dh,
array<uint8>? auth);
// We use the value of |error_type| as a flag. If |error_type| == NONE, it
// means no error and returns |did_unsubscribe|. Else, it means there is an
// error and returns |error_type| and |error_message|.
Unsubscribe(int64 service_worker_registration_id)
=> (PushErrorType error_type,
bool did_unsubscribe,
string? error_message);
GetSubscription(int64 service_worker_registration_id)
=> (PushGetRegistrationStatus status,
url.mojom.Url? endpoint,
PushSubscriptionOptions? options,
array<uint8>? p256dh,
array<uint8>? auth);
// We use the value of |error_type| as a flag. If |error_type| == NONE, it
// means no error and returns |status|. Else, it means there is an error and
// returns |error_type|.
GetPermissionStatus(int64 service_worker_registration_id,
bool user_visible)
=> (PushErrorType error_type,
PushPermissionStatus status);
};