blob: 882ab470701d8adcefdd40e133d7737c0f139891 [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.
#include "content/common/push_messaging_param_traits.h"
namespace mojo {
// PushRegistrationStatus
static_assert(
content::PushRegistrationStatus::
PUSH_REGISTRATION_STATUS_SUCCESS_FROM_PUSH_SERVICE ==
static_cast<content::PushRegistrationStatus>(
content::mojom::PushRegistrationStatus::SUCCESS_FROM_PUSH_SERVICE),
"PushRegistrationStatus enums must match, SUCCESS_FROM_PUSH_SERVICE");
static_assert(
content::PushRegistrationStatus::
PUSH_REGISTRATION_STATUS_NO_SERVICE_WORKER ==
static_cast<content::PushRegistrationStatus>(
content::mojom::PushRegistrationStatus::NO_SERVICE_WORKER),
"PushRegistrationStatus enums must match, NO_SERVICE_WORKER");
static_assert(
content::PushRegistrationStatus::
PUSH_REGISTRATION_STATUS_SERVICE_NOT_AVAILABLE ==
static_cast<content::PushRegistrationStatus>(
content::mojom::PushRegistrationStatus::SERVICE_NOT_AVAILABLE),
"PushRegistrationStatus enums must match, SERVICE_NOT_AVAILABLE");
static_assert(
content::PushRegistrationStatus::PUSH_REGISTRATION_STATUS_LIMIT_REACHED ==
static_cast<content::PushRegistrationStatus>(
content::mojom::PushRegistrationStatus::LIMIT_REACHED),
"PushRegistrationStatus enums must match, LIMIT_REACHED");
static_assert(
content::PushRegistrationStatus::
PUSH_REGISTRATION_STATUS_PERMISSION_DENIED ==
static_cast<content::PushRegistrationStatus>(
content::mojom::PushRegistrationStatus::PERMISSION_DENIED),
"PushRegistrationStatus enums must match, PERMISSION_DENIED");
static_assert(
content::PushRegistrationStatus::PUSH_REGISTRATION_STATUS_SERVICE_ERROR ==
static_cast<content::PushRegistrationStatus>(
content::mojom::PushRegistrationStatus::SERVICE_ERROR),
"PushRegistrationStatus enums must match, SERVICE_ERROR");
static_assert(
content::PushRegistrationStatus::PUSH_REGISTRATION_STATUS_NO_SENDER_ID ==
static_cast<content::PushRegistrationStatus>(
content::mojom::PushRegistrationStatus::NO_SENDER_ID),
"PushRegistrationStatus enums must match, NO_SENDER_ID");
static_assert(
content::PushRegistrationStatus::PUSH_REGISTRATION_STATUS_STORAGE_ERROR ==
static_cast<content::PushRegistrationStatus>(
content::mojom::PushRegistrationStatus::STORAGE_ERROR),
"PushRegistrationStatus enums must match, STORAGE_ERROR");
static_assert(
content::PushRegistrationStatus::
PUSH_REGISTRATION_STATUS_SUCCESS_FROM_CACHE ==
static_cast<content::PushRegistrationStatus>(
content::mojom::PushRegistrationStatus::SUCCESS_FROM_CACHE),
"PushRegistrationStatus enums must match, SUCCESS_FROM_CACHE");
static_assert(
content::PushRegistrationStatus::PUSH_REGISTRATION_STATUS_NETWORK_ERROR ==
static_cast<content::PushRegistrationStatus>(
content::mojom::PushRegistrationStatus::NETWORK_ERROR),
"PushRegistrationStatus enums must match, NETWORK_ERROR");
static_assert(
content::PushRegistrationStatus::
PUSH_REGISTRATION_STATUS_INCOGNITO_PERMISSION_DENIED ==
static_cast<content::PushRegistrationStatus>(
content::mojom::PushRegistrationStatus::
INCOGNITO_PERMISSION_DENIED),
"PushRegistrationStatus enums must match, INCOGNITO_PERMISSION_DENIED");
static_assert(
content::PushRegistrationStatus::
PUSH_REGISTRATION_STATUS_PUBLIC_KEY_UNAVAILABLE ==
static_cast<content::PushRegistrationStatus>(
content::mojom::PushRegistrationStatus::PUBLIC_KEY_UNAVAILABLE),
"PushRegistrationStatus enums must match, PUBLIC_KEY_UNAVAILABLE");
static_assert(
content::PushRegistrationStatus::
PUSH_REGISTRATION_STATUS_MANIFEST_EMPTY_OR_MISSING ==
static_cast<content::PushRegistrationStatus>(
content::mojom::PushRegistrationStatus::MANIFEST_EMPTY_OR_MISSING),
"PushRegistrationStatus enums must match, MANIFEST_EMPTY_OR_MISSING");
static_assert(
content::PushRegistrationStatus::
PUSH_REGISTRATION_STATUS_SENDER_ID_MISMATCH ==
static_cast<content::PushRegistrationStatus>(
content::mojom::PushRegistrationStatus::SENDER_ID_MISMATCH),
"PushRegistrationStatus enums must match, SENDER_ID_MISMATCH");
static_assert(
content::PushRegistrationStatus::PUSH_REGISTRATION_STATUS_STORAGE_CORRUPT ==
static_cast<content::PushRegistrationStatus>(
content::mojom::PushRegistrationStatus::STORAGE_CORRUPT),
"PushRegistrationStatus enums must match, STORAGE_CORRUPT");
static_assert(
content::PushRegistrationStatus::
PUSH_REGISTRATION_STATUS_RENDERER_SHUTDOWN ==
static_cast<content::PushRegistrationStatus>(
content::mojom::PushRegistrationStatus::RENDERER_SHUTDOWN),
"PushRegistrationStatus enums must match, RENDERER_SHUTDOWN");
static_assert(content::PushRegistrationStatus::PUSH_REGISTRATION_STATUS_LAST ==
static_cast<content::PushRegistrationStatus>(
content::mojom::PushRegistrationStatus::LAST),
"PushRegistrationStatus enums must match, LAST");
// PushErrorType
static_assert(blink::WebPushError::ErrorType::kErrorTypeAbort ==
static_cast<blink::WebPushError::ErrorType>(
content::mojom::PushErrorType::ABORT),
"PushErrorType enums must match, ABORT");
static_assert(blink::WebPushError::ErrorType::kErrorTypeNetwork ==
static_cast<blink::WebPushError::ErrorType>(
content::mojom::PushErrorType::NETWORK),
"PushErrorType enums must match, NETWORK");
static_assert(blink::WebPushError::ErrorType::kErrorTypeNone ==
static_cast<blink::WebPushError::ErrorType>(
content::mojom::PushErrorType::NONE),
"PushErrorType enums must match, NONE");
static_assert(blink::WebPushError::ErrorType::kErrorTypeNotAllowed ==
static_cast<blink::WebPushError::ErrorType>(
content::mojom::PushErrorType::NOT_ALLOWED),
"PushErrorType enums must match, NOT_ALLOWED");
static_assert(blink::WebPushError::ErrorType::kErrorTypeNotFound ==
static_cast<blink::WebPushError::ErrorType>(
content::mojom::PushErrorType::NOT_FOUND),
"PushErrorType enums must match, NOT_FOUND");
static_assert(blink::WebPushError::ErrorType::kErrorTypeNotSupported ==
static_cast<blink::WebPushError::ErrorType>(
content::mojom::PushErrorType::NOT_SUPPORTED),
"PushErrorType enums must match, NOT_SUPPORTED");
static_assert(blink::WebPushError::ErrorType::kErrorTypeInvalidState ==
static_cast<blink::WebPushError::ErrorType>(
content::mojom::PushErrorType::INVALID_STATE),
"PushErrorType enums must match, INVALID_STATE");
static_assert(blink::WebPushError::ErrorType::kErrorTypeLast ==
static_cast<blink::WebPushError::ErrorType>(
content::mojom::PushErrorType::LAST),
"PushErrorType enums must match, LAST");
// PushGetRegistrationStatus
static_assert(
content::PushGetRegistrationStatus::PUSH_GETREGISTRATION_STATUS_SUCCESS ==
static_cast<content::PushGetRegistrationStatus>(
content::mojom::PushGetRegistrationStatus::SUCCESS),
"PushGetRegistrationStatus enums must match, SUCCESS");
static_assert(
content::PushGetRegistrationStatus::
PUSH_GETREGISTRATION_STATUS_SERVICE_NOT_AVAILABLE ==
static_cast<content::PushGetRegistrationStatus>(
content::mojom::PushGetRegistrationStatus::SERVICE_NOT_AVAILABLE),
"PushGetRegistrationStatus enums must match, SERVICE_NOT_AVAILABLE");
static_assert(content::PushGetRegistrationStatus::
PUSH_GETREGISTRATION_STATUS_STORAGE_ERROR ==
static_cast<content::PushGetRegistrationStatus>(
content::mojom::PushGetRegistrationStatus::STORAGE_ERROR),
"PushGetRegistrationStatus enums must match, STORAGE_ERROR");
static_assert(
content::PushGetRegistrationStatus::
PUSH_GETREGISTRATION_STATUS_REGISTRATION_NOT_FOUND ==
static_cast<content::PushGetRegistrationStatus>(
content::mojom::PushGetRegistrationStatus::REGISTRATION_NOT_FOUND),
"PushGetRegistrationStatus enums must match, REGISTRATION_NOT_FOUND");
static_assert(
content::PushGetRegistrationStatus::
PUSH_GETREGISTRATION_STATUS_INCOGNITO_REGISTRATION_NOT_FOUND ==
static_cast<content::PushGetRegistrationStatus>(
content::mojom::PushGetRegistrationStatus::
INCOGNITO_REGISTRATION_NOT_FOUND),
"PushGetRegistrationStatus enums must match, "
"INCOGNITO_REGISTRATION_NOT_FOUND");
static_assert(
content::PushGetRegistrationStatus::
PUSH_GETREGISTRATION_STATUS_STORAGE_CORRUPT ==
static_cast<content::PushGetRegistrationStatus>(
content::mojom::PushGetRegistrationStatus::STORAGE_CORRUPT),
"PushGetRegistrationStatus enums must match, STORAGE_CORRUPT");
static_assert(
content::PushGetRegistrationStatus::
PUSH_GETREGISTRATION_STATUS_NO_LIVE_SERVICE_WORKER ==
static_cast<content::PushGetRegistrationStatus>(
content::mojom::PushGetRegistrationStatus::NO_LIVE_SERVICE_WORKER),
"PushGetRegistrationStatus enums must match, NO_LIVE_SERVICE_WORKER");
static_assert(
content::PushGetRegistrationStatus::
PUSH_GETREGISTRATION_STATUS_RENDERER_SHUTDOWN ==
static_cast<content::PushGetRegistrationStatus>(
content::mojom::PushGetRegistrationStatus::RENDERER_SHUTDOWN),
"PushGetRegistrationStatus enums must match, RENDERER_SHUTDOWN");
static_assert(
content::PushGetRegistrationStatus::PUSH_GETREGISTRATION_STATUS_LAST ==
static_cast<content::PushGetRegistrationStatus>(
content::mojom::PushGetRegistrationStatus::LAST),
"PushGetRegistrationStatus enums must match, LAST");
// PushPermissionStatus
static_assert(blink::WebPushPermissionStatus::kWebPushPermissionStatusGranted ==
static_cast<blink::WebPushPermissionStatus>(
content::mojom::PushPermissionStatus::GRANTED),
"PushPermissionStatus enums must match, GRANTED");
static_assert(blink::WebPushPermissionStatus::kWebPushPermissionStatusDenied ==
static_cast<blink::WebPushPermissionStatus>(
content::mojom::PushPermissionStatus::DENIED),
"PushPermissionStatus enums must match, DENIED");
static_assert(blink::WebPushPermissionStatus::kWebPushPermissionStatusPrompt ==
static_cast<blink::WebPushPermissionStatus>(
content::mojom::PushPermissionStatus::PROMPT),
"PushPermissionStatus enums must match, PROMPT");
static_assert(blink::WebPushPermissionStatus::kWebPushPermissionStatusLast ==
static_cast<blink::WebPushPermissionStatus>(
content::mojom::PushPermissionStatus::LAST),
"PushPermissionStatus enums must match, LAST");
// static
bool StructTraits<content::mojom::PushSubscriptionOptionsDataView,
content::PushSubscriptionOptions>::
Read(content::mojom::PushSubscriptionOptionsDataView data,
content::PushSubscriptionOptions* out) {
out->user_visible_only = data.user_visible_only();
if (!data.ReadSenderInfo(&out->sender_info)) {
return false;
}
return true;
}
// static
content::mojom::PushRegistrationStatus EnumTraits<
content::mojom::PushRegistrationStatus,
content::PushRegistrationStatus>::ToMojom(content::PushRegistrationStatus
input) {
if (input >= content::PushRegistrationStatus::
PUSH_REGISTRATION_STATUS_SUCCESS_FROM_PUSH_SERVICE &&
input <= content::PushRegistrationStatus::PUSH_REGISTRATION_STATUS_LAST) {
return static_cast<content::mojom::PushRegistrationStatus>(input);
}
NOTREACHED();
return content::mojom::PushRegistrationStatus::SERVICE_ERROR;
}
// static
bool EnumTraits<content::mojom::PushRegistrationStatus,
content::PushRegistrationStatus>::
FromMojom(content::mojom::PushRegistrationStatus input,
content::PushRegistrationStatus* output) {
if (input >=
content::mojom::PushRegistrationStatus::SUCCESS_FROM_PUSH_SERVICE &&
input <= content::mojom::PushRegistrationStatus::LAST) {
*output = static_cast<content::PushRegistrationStatus>(input);
return true;
}
NOTREACHED();
return false;
}
// static
content::mojom::PushErrorType
EnumTraits<content::mojom::PushErrorType, blink::WebPushError::ErrorType>::
ToMojom(blink::WebPushError::ErrorType input) {
if (input >= blink::WebPushError::ErrorType::kErrorTypeAbort &&
input <= blink::WebPushError::ErrorType::kErrorTypeInvalidState) {
return static_cast<content::mojom::PushErrorType>(input);
}
NOTREACHED();
return content::mojom::PushErrorType::ABORT;
}
// static
bool EnumTraits<content::mojom::PushErrorType, blink::WebPushError::ErrorType>::
FromMojom(content::mojom::PushErrorType input,
blink::WebPushError::ErrorType* output) {
if (input >= content::mojom::PushErrorType::ABORT &&
input <= content::mojom::PushErrorType::INVALID_STATE) {
*output = static_cast<blink::WebPushError::ErrorType>(input);
return true;
}
NOTREACHED();
return false;
}
// static
content::mojom::PushGetRegistrationStatus
EnumTraits<content::mojom::PushGetRegistrationStatus,
content::PushGetRegistrationStatus>::
ToMojom(content::PushGetRegistrationStatus input) {
if (input >= content::PushGetRegistrationStatus::
PUSH_GETREGISTRATION_STATUS_SUCCESS &&
input <= content::PushGetRegistrationStatus::
PUSH_GETREGISTRATION_STATUS_LAST) {
return static_cast<content::mojom::PushGetRegistrationStatus>(input);
}
NOTREACHED();
return content::mojom::PushGetRegistrationStatus::SERVICE_NOT_AVAILABLE;
}
// static
bool EnumTraits<content::mojom::PushGetRegistrationStatus,
content::PushGetRegistrationStatus>::
FromMojom(content::mojom::PushGetRegistrationStatus input,
content::PushGetRegistrationStatus* output) {
if (input >= content::mojom::PushGetRegistrationStatus::SUCCESS &&
input <= content::mojom::PushGetRegistrationStatus::LAST) {
*output = static_cast<content::PushGetRegistrationStatus>(input);
return true;
}
NOTREACHED();
return false;
}
// static
content::mojom::PushPermissionStatus EnumTraits<
content::mojom::PushPermissionStatus,
blink::WebPushPermissionStatus>::ToMojom(blink::WebPushPermissionStatus
input) {
if (input >=
blink::WebPushPermissionStatus::kWebPushPermissionStatusGranted &&
input <= blink::WebPushPermissionStatus::kWebPushPermissionStatusLast) {
return static_cast<content::mojom::PushPermissionStatus>(input);
}
NOTREACHED();
return content::mojom::PushPermissionStatus::DENIED;
}
// static
bool EnumTraits<content::mojom::PushPermissionStatus,
blink::WebPushPermissionStatus>::
FromMojom(content::mojom::PushPermissionStatus input,
blink::WebPushPermissionStatus* output) {
if (input >= content::mojom::PushPermissionStatus::GRANTED &&
input <= content::mojom::PushPermissionStatus::LAST) {
*output = static_cast<blink::WebPushPermissionStatus>(input);
return true;
}
NOTREACHED();
return false;
}
} // namespace mojo