| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "modules/nfc/NFC.h" | 5 #include "modules/nfc/NFC.h" |
| 6 | 6 |
| 7 #include "bindings/core/v8/JSONValuesForV8.h" | 7 #include "bindings/core/v8/JSONValuesForV8.h" |
| 8 #include "bindings/core/v8/ScriptPromiseResolver.h" | 8 #include "bindings/core/v8/ScriptPromiseResolver.h" |
| 9 #include "bindings/core/v8/V8ArrayBuffer.h" | 9 #include "bindings/core/v8/V8ArrayBuffer.h" |
| 10 #include "core/dom/DOMArrayBuffer.h" | 10 #include "core/dom/DOMArrayBuffer.h" |
| 11 #include "core/dom/DOMException.h" | 11 #include "core/dom/DOMException.h" |
| 12 #include "core/dom/Document.h" | 12 #include "core/dom/Document.h" |
| 13 #include "core/dom/ExceptionCode.h" | 13 #include "core/dom/ExceptionCode.h" |
| 14 #include "core/frame/LocalDOMWindow.h" | 14 #include "core/frame/LocalDOMWindow.h" |
| 15 #include "modules/nfc/NFCError.h" | 15 #include "modules/nfc/NFCError.h" |
| 16 #include "modules/nfc/NFCMessage.h" | 16 #include "modules/nfc/NFCMessage.h" |
| 17 #include "modules/nfc/NFCPushOptions.h" | 17 #include "modules/nfc/NFCPushOptions.h" |
| 18 #include "platform/mojo/MojoHelper.h" | 18 #include "platform/mojo/MojoHelper.h" |
| 19 #include "public/platform/InterfaceProvider.h" | 19 #include "public/platform/InterfaceProvider.h" |
| 20 #include "public/platform/Platform.h" |
| 20 | 21 |
| 21 namespace mojom = device::nfc::mojom::blink; | 22 namespace mojom = device::nfc::mojom::blink; |
| 22 | 23 |
| 23 namespace { | 24 namespace { |
| 24 const char kJsonMimePrefix[] = "application/"; | 25 const char kJsonMimePrefix[] = "application/"; |
| 25 const char kJsonMimeType[] = "application/json"; | 26 const char kJsonMimeType[] = "application/json"; |
| 26 const char kOpaqueMimeType[] = "application/octet-stream"; | 27 const char kOpaqueMimeType[] = "application/octet-stream"; |
| 27 const char kPlainTextMimeType[] = "text/plain"; | 28 const char kPlainTextMimeType[] = "text/plain"; |
| 28 const char kPlainTextMimePrefix[] = "text/"; | 29 const char kPlainTextMimePrefix[] = "text/"; |
| 29 const char kCharSetUTF8[] = ";charset=UTF-8"; | 30 const char kCharSetUTF8[] = ";charset=UTF-8"; |
| (...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 554 return; | 555 return; |
| 555 | 556 |
| 556 m_requests.remove(resolver); | 557 m_requests.remove(resolver); |
| 557 if (error.is_null()) | 558 if (error.is_null()) |
| 558 resolver->resolve(); | 559 resolver->resolve(); |
| 559 else | 560 else |
| 560 resolver->reject(NFCError::take(resolver, error->error_type)); | 561 resolver->reject(NFCError::take(resolver, error->error_type)); |
| 561 } | 562 } |
| 562 | 563 |
| 563 void NFC::OnConnectionError() { | 564 void NFC::OnConnectionError() { |
| 565 if (!Platform::current()) { |
| 566 // TODO(rockot): Clean this up once renderer shutdown sequence is fixed. |
| 567 return; |
| 568 } |
| 569 |
| 564 m_nfc.reset(); | 570 m_nfc.reset(); |
| 565 | 571 |
| 566 // If NFCService is not available or disappears when NFC hardware is | 572 // If NFCService is not available or disappears when NFC hardware is |
| 567 // disabled, reject promise with NotSupportedError exception. | 573 // disabled, reject promise with NotSupportedError exception. |
| 568 for (ScriptPromiseResolver* resolver : m_requests) | 574 for (ScriptPromiseResolver* resolver : m_requests) |
| 569 resolver->reject( | 575 resolver->reject( |
| 570 NFCError::take(resolver, mojom::NFCErrorType::NOT_SUPPORTED)); | 576 NFCError::take(resolver, mojom::NFCErrorType::NOT_SUPPORTED)); |
| 571 | 577 |
| 572 m_requests.clear(); | 578 m_requests.clear(); |
| 573 } | 579 } |
| 574 | 580 |
| 575 void NFC::OnWatch(mojo::WTFArray<uint32_t> ids, mojom::NFCMessagePtr) { | 581 void NFC::OnWatch(mojo::WTFArray<uint32_t> ids, mojom::NFCMessagePtr) { |
| 576 // TODO(shalamov): Not implemented. | 582 // TODO(shalamov): Not implemented. |
| 577 } | 583 } |
| 578 | 584 |
| 579 DEFINE_TRACE(NFC) { | 585 DEFINE_TRACE(NFC) { |
| 580 PageVisibilityObserver::trace(visitor); | 586 PageVisibilityObserver::trace(visitor); |
| 581 ContextLifecycleObserver::trace(visitor); | 587 ContextLifecycleObserver::trace(visitor); |
| 582 visitor->trace(m_requests); | 588 visitor->trace(m_requests); |
| 583 } | 589 } |
| 584 | 590 |
| 585 } // namespace blink | 591 } // namespace blink |
| OLD | NEW |