|  | // 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 |