| // 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. |
| |
| #include "modules/nfc/NFCError.h" |
| |
| #include "core/dom/DOMException.h" |
| #include "core/dom/ExceptionCode.h" |
| |
| using device::mojom::blink::NFCErrorType; |
| |
| namespace blink { |
| |
| DOMException* NFCError::Take(ScriptPromiseResolver*, |
| const NFCErrorType& error_type) { |
| switch (error_type) { |
| case NFCErrorType::SECURITY: |
| return DOMException::Create(kSecurityError, "NFC operation not allowed."); |
| case NFCErrorType::NOT_SUPPORTED: |
| case NFCErrorType::DEVICE_DISABLED: |
| return DOMException::Create(kNotSupportedError, |
| "NFC operation not supported."); |
| case NFCErrorType::NOT_FOUND: |
| return DOMException::Create(kNotFoundError, |
| "Invalid NFC watch Id was provided."); |
| case NFCErrorType::INVALID_MESSAGE: |
| return DOMException::Create(kSyntaxError, |
| "Invalid NFC message was provided."); |
| case NFCErrorType::OPERATION_CANCELLED: |
| return DOMException::Create(kAbortError, |
| "The NFC operation was cancelled."); |
| case NFCErrorType::TIMER_EXPIRED: |
| return DOMException::Create(kTimeoutError, |
| "NFC operation has timed-out."); |
| case NFCErrorType::CANNOT_CANCEL: |
| return DOMException::Create(kNoModificationAllowedError, |
| "NFC operation cannot be canceled."); |
| case NFCErrorType::IO_ERROR: |
| return DOMException::Create(kNetworkError, |
| "NFC data transfer error has occurred."); |
| } |
| NOTREACHED(); |
| return DOMException::Create(kUnknownError, |
| "An unknown NFC error has occurred."); |
| } |
| |
| } // namespace blink |