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 "bindings/core/v8/V8StringResource.h" |
10 #include "core/dom/DOMArrayBuffer.h" | 11 #include "core/dom/DOMArrayBuffer.h" |
11 #include "core/dom/DOMException.h" | 12 #include "core/dom/DOMException.h" |
12 #include "core/dom/Document.h" | 13 #include "core/dom/Document.h" |
13 #include "core/dom/ExceptionCode.h" | 14 #include "core/dom/ExceptionCode.h" |
14 #include "core/frame/LocalDOMWindow.h" | 15 #include "core/frame/LocalDOMWindow.h" |
15 #include "modules/nfc/NFCError.h" | 16 #include "modules/nfc/NFCError.h" |
16 #include "modules/nfc/NFCMessage.h" | 17 #include "modules/nfc/NFCMessage.h" |
17 #include "modules/nfc/NFCPushOptions.h" | 18 #include "modules/nfc/NFCPushOptions.h" |
18 #include "platform/mojo/MojoHelper.h" | 19 #include "platform/mojo/MojoHelper.h" |
19 #include "public/platform/InterfaceProvider.h" | 20 #include "public/platform/InterfaceProvider.h" |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 if (value->IsNumber()) | 167 if (value->IsNumber()) |
167 return mojo::WTFArray<uint8_t>::From( | 168 return mojo::WTFArray<uint8_t>::From( |
168 WTF::String::number(value.As<v8::Number>()->Value())); | 169 WTF::String::number(value.As<v8::Number>()->Value())); |
169 | 170 |
170 if (value->IsString()) { | 171 if (value->IsString()) { |
171 blink::V8StringResource<> stringResource = value; | 172 blink::V8StringResource<> stringResource = value; |
172 if (stringResource.prepare()) | 173 if (stringResource.prepare()) |
173 return mojo::WTFArray<uint8_t>::From<WTF::String>(stringResource); | 174 return mojo::WTFArray<uint8_t>::From<WTF::String>(stringResource); |
174 } | 175 } |
175 | 176 |
176 if (value->IsObject() && !value->IsArrayBuffer()) { | 177 if (value->IsObject() && !value->IsArray() && !value->IsArrayBuffer()) { |
177 std::unique_ptr<blink::JSONValue> jsonResult = | 178 v8::Local<v8::String> jsonString; |
178 blink::toJSONValue(scriptValue.context(), value); | 179 if (v8::JSON::Stringify(scriptValue.context(), value.As<v8::Object>()) |
179 if (jsonResult && (jsonResult->getType() == blink::JSONValue::TypeObject)) | 180 .ToLocal(&jsonString)) { |
180 return mojo::WTFArray<uint8_t>::From(jsonResult->toJSONString()); | 181 WTF::String wtfString = blink::v8StringToWebCoreString<WTF::String>( |
| 182 jsonString, blink::DoNotExternalize); |
| 183 return mojo::WTFArray<uint8_t>::From(wtfString); |
| 184 } |
181 } | 185 } |
182 | 186 |
183 if (value->IsArrayBuffer()) | 187 if (value->IsArrayBuffer()) |
184 return mojo::WTFArray<uint8_t>::From( | 188 return mojo::WTFArray<uint8_t>::From( |
185 blink::V8ArrayBuffer::toImpl(value.As<v8::Object>())); | 189 blink::V8ArrayBuffer::toImpl(value.As<v8::Object>())); |
186 | 190 |
187 return nullptr; | 191 return nullptr; |
188 } | 192 } |
189 }; | 193 }; |
190 | 194 |
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
582 // TODO(shalamov): Not implemented. | 586 // TODO(shalamov): Not implemented. |
583 } | 587 } |
584 | 588 |
585 DEFINE_TRACE(NFC) { | 589 DEFINE_TRACE(NFC) { |
586 PageVisibilityObserver::trace(visitor); | 590 PageVisibilityObserver::trace(visitor); |
587 ContextLifecycleObserver::trace(visitor); | 591 ContextLifecycleObserver::trace(visitor); |
588 visitor->trace(m_requests); | 592 visitor->trace(m_requests); |
589 } | 593 } |
590 | 594 |
591 } // namespace blink | 595 } // namespace blink |
OLD | NEW |