Index: content/common/push_messaging_param_traits.cc |
diff --git a/content/common/push_messaging_param_traits.cc b/content/common/push_messaging_param_traits.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..74b9bc5c77bda6483fb05efa37323a70dbb4d741 |
--- /dev/null |
+++ b/content/common/push_messaging_param_traits.cc |
@@ -0,0 +1,350 @@ |
+// 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_LAST == |
+ static_cast<content::PushRegistrationStatus>( |
+ content::mojom::PushRegistrationStatus::LAST), |
+ "PushRegistrationStatus enums must match, LAST"); |
+ |
+// PushErrorType |
+static_assert(blink::WebPushError::ErrorType::ErrorTypeAbort == |
+ static_cast<blink::WebPushError::ErrorType>( |
+ content::mojom::PushErrorType::ABORT), |
+ "PushErrorType enums must match, ABORT"); |
+ |
+static_assert(blink::WebPushError::ErrorType::ErrorTypeNetwork == |
+ static_cast<blink::WebPushError::ErrorType>( |
+ content::mojom::PushErrorType::NETWORK), |
+ "PushErrorType enums must match, NETWORK"); |
+ |
+static_assert(blink::WebPushError::ErrorType::ErrorTypeNotAllowed == |
+ static_cast<blink::WebPushError::ErrorType>( |
+ content::mojom::PushErrorType::NOT_ALLOWED), |
+ "PushErrorType enums must match, NOT_ALLOWED"); |
+ |
+static_assert(blink::WebPushError::ErrorType::ErrorTypeNotFound == |
+ static_cast<blink::WebPushError::ErrorType>( |
+ content::mojom::PushErrorType::NOT_FOUND), |
+ "PushErrorType enums must match, NOT_FOUND"); |
+ |
+static_assert(blink::WebPushError::ErrorType::ErrorTypeNotSupported == |
+ static_cast<blink::WebPushError::ErrorType>( |
+ content::mojom::PushErrorType::NOT_SUPPORTED), |
+ "PushErrorType enums must match, NOT_SUPPORTED"); |
+ |
+static_assert(blink::WebPushError::ErrorType::ErrorTypeUnknown == |
+ static_cast<blink::WebPushError::ErrorType>( |
+ content::mojom::PushErrorType::UNKNOWN), |
+ "PushErrorType enums must match, UNKNOWN"); |
+ |
+static_assert(blink::WebPushError::ErrorType::ErrorTypeInvalidState == |
+ static_cast<blink::WebPushError::ErrorType>( |
+ content::mojom::PushErrorType::INVALID_STATE), |
+ "PushErrorType enums must match, INVALID_STATE"); |
+ |
+static_assert(blink::WebPushError::ErrorType::ErrorTypeLast == |
+ 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_PUBLIC_KEY_UNAVAILABLE == |
+ static_cast<content::PushGetRegistrationStatus>( |
+ content::mojom::PushGetRegistrationStatus::PUBLIC_KEY_UNAVAILABLE), |
+ "PushGetRegistrationStatus enums must match, PUBLIC_KEY_UNAVAILABLE"); |
+ |
+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::WebPushPermissionStatusGranted == |
+ static_cast<blink::WebPushPermissionStatus>( |
+ content::mojom::PushPermissionStatus::GRANTED), |
+ "PushPermissionStatus enums must match, GRANTED"); |
+ |
+static_assert(blink::WebPushPermissionStatus::WebPushPermissionStatusDenied == |
+ static_cast<blink::WebPushPermissionStatus>( |
+ content::mojom::PushPermissionStatus::DENIED), |
+ "PushPermissionStatus enums must match, DENIED"); |
+ |
+static_assert(blink::WebPushPermissionStatus::WebPushPermissionStatusPrompt == |
+ static_cast<blink::WebPushPermissionStatus>( |
+ content::mojom::PushPermissionStatus::PROMPT), |
+ "PushPermissionStatus enums must match, PROMPT"); |
+ |
+static_assert(blink::WebPushPermissionStatus::WebPushPermissionStatusLast == |
+ 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::ErrorTypeAbort && |
+ input <= blink::WebPushError::ErrorType::ErrorTypeInvalidState) { |
+ return static_cast<content::mojom::PushErrorType>(input); |
+ } |
+ |
+ NOTREACHED(); |
+ return content::mojom::PushErrorType::UNKNOWN; |
+} |
+ |
+// 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::WebPushPermissionStatusGranted && |
+ input <= blink::WebPushPermissionStatus::WebPushPermissionStatusLast) { |
+ 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 |