Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 // This file has been auto-generated by code_generator_v8.py. DO NOT MODIFY! | 5 // This file has been auto-generated by code_generator_v8.py. DO NOT MODIFY! |
| 6 | 6 |
| 7 // clang-format off | 7 // clang-format off |
| 8 #include "V8TestObject.h" | 8 #include "V8TestObject.h" |
| 9 | 9 |
| 10 #include "bindings/core/v8/AnyCallbackFunctionOptionalAnyArg.h" | 10 #include "bindings/core/v8/AnyCallbackFunctionOptionalAnyArg.h" |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 60 #include "bindings/core/v8/V8TestInterfaceEmpty.h" | 60 #include "bindings/core/v8/V8TestInterfaceEmpty.h" |
| 61 #include "bindings/core/v8/V8TestInterfaceGarbageCollected.h" | 61 #include "bindings/core/v8/V8TestInterfaceGarbageCollected.h" |
| 62 #include "bindings/core/v8/V8TestNode.h" | 62 #include "bindings/core/v8/V8TestNode.h" |
| 63 #include "bindings/core/v8/V8TestObject.h" | 63 #include "bindings/core/v8/V8TestObject.h" |
| 64 #include "bindings/core/v8/V8Uint8Array.h" | 64 #include "bindings/core/v8/V8Uint8Array.h" |
| 65 #include "bindings/core/v8/V8Window.h" | 65 #include "bindings/core/v8/V8Window.h" |
| 66 #include "bindings/core/v8/V8XPathNSResolver.h" | 66 #include "bindings/core/v8/V8XPathNSResolver.h" |
| 67 #include "bindings/core/v8/VoidCallbackFunction.h" | 67 #include "bindings/core/v8/VoidCallbackFunction.h" |
| 68 #include "core/HTMLNames.h" | 68 #include "core/HTMLNames.h" |
| 69 #include "core/dom/ClassCollection.h" | 69 #include "core/dom/ClassCollection.h" |
| 70 #include "core/dom/DOMArrayBufferBase.h" | |
| 70 #include "core/dom/Document.h" | 71 #include "core/dom/Document.h" |
| 71 #include "core/dom/FlexibleArrayBufferView.h" | 72 #include "core/dom/FlexibleArrayBufferView.h" |
| 72 #include "core/dom/TagCollection.h" | 73 #include "core/dom/TagCollection.h" |
| 73 #include "core/dom/custom/V0CustomElementProcessingStack.h" | 74 #include "core/dom/custom/V0CustomElementProcessingStack.h" |
| 74 #include "core/frame/Deprecation.h" | 75 #include "core/frame/Deprecation.h" |
| 75 #include "core/frame/LocalFrame.h" | 76 #include "core/frame/LocalFrame.h" |
| 76 #include "core/frame/UseCounter.h" | 77 #include "core/frame/UseCounter.h" |
| 77 #include "core/html/HTMLCollection.h" | 78 #include "core/html/HTMLCollection.h" |
| 78 #include "core/html/HTMLDataListOptionsCollection.h" | 79 #include "core/html/HTMLDataListOptionsCollection.h" |
| 79 #include "core/html/HTMLFormControlsCollection.h" | 80 #include "core/html/HTMLFormControlsCollection.h" |
| (...skipping 11453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 11533 TestObjectV8Internal::perWorldBindingsVoidMethodTestInterfaceEmptyArgMethodF orMainWorld(info); | 11534 TestObjectV8Internal::perWorldBindingsVoidMethodTestInterfaceEmptyArgMethodF orMainWorld(info); |
| 11534 } | 11535 } |
| 11535 | 11536 |
| 11536 static void postMessageImpl(const char* interfaceName, TestObject* instance, con st v8::FunctionCallbackInfo<v8::Value>& info) | 11537 static void postMessageImpl(const char* interfaceName, TestObject* instance, con st v8::FunctionCallbackInfo<v8::Value>& info) |
| 11537 { | 11538 { |
| 11538 ExceptionState exceptionState(info.GetIsolate(), ExceptionState::ExecutionCo ntext, interfaceName, "postMessage"); | 11539 ExceptionState exceptionState(info.GetIsolate(), ExceptionState::ExecutionCo ntext, interfaceName, "postMessage"); |
| 11539 if (UNLIKELY(info.Length() < 1)) { | 11540 if (UNLIKELY(info.Length() < 1)) { |
| 11540 exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, i nfo.Length())); | 11541 exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, i nfo.Length())); |
| 11541 return; | 11542 return; |
| 11542 } | 11543 } |
| 11544 | |
| 11543 Transferables transferables; | 11545 Transferables transferables; |
| 11544 if (info.Length() > 1) { | 11546 if (info.Length() > 1) { |
| 11545 const int transferablesArgIndex = 1; | 11547 const int transferablesArgIndex = 1; |
| 11546 if (!SerializedScriptValue::extractTransferables(info.GetIsolate(), info [transferablesArgIndex], transferablesArgIndex, transferables, exceptionState)) { | 11548 if (!SerializedScriptValue::extractTransferables(info.GetIsolate(), info [transferablesArgIndex], transferablesArgIndex, transferables, exceptionState)) { |
| 11547 return; | 11549 return; |
| 11548 } | 11550 } |
| 11549 } | 11551 } |
| 11550 RefPtr<SerializedScriptValue> message = SerializedScriptValue::serialize(inf o.GetIsolate(), info[0], &transferables, nullptr, exceptionState); | 11552 |
| 11551 if (exceptionState.hadException()) | 11553 RefPtr<SerializedScriptValue> message; |
| 11552 return; | 11554 if (instance->canTransferArrayBuffer()) { |
| 11555 // This instance supports sending array buffers by move semantics. | |
| 11556 message = SerializedScriptValue::serialize(info.GetIsolate(), info[0], & transferables, nullptr, exceptionState); | |
| 11557 if (exceptionState.hadException()) | |
| 11558 return; | |
| 11559 } else { | |
| 11560 // This instance doesn't support sending array buffers by move | |
| 11561 // semantics. Emulate it by copy-and-neuter semantics that sends array | |
| 11562 // buffers by copy semantics and then neuters the original array | |
|
haraken
2016/10/19 09:49:28
Just to confirm: Your intention is to NOT copy the
nhiroki
2016/10/19 12:51:53
No. My intention is to copy-transfer the array buf
haraken
2016/10/19 15:40:46
I'm a bit confused.
You're ignoring the return va
nhiroki
2016/10/20 07:44:02
SerializedScriptValue::serialize() copies the arra
| |
| 11563 // buffers. | |
| 11564 | |
| 11565 // Clear transferable array buffers so that the serializer can handle | |
| 11566 // them by copy semantics. | |
| 11567 ArrayBufferArray transferableArrayBuffers = transferables.arrayBuffers; | |
| 11568 transferables.arrayBuffers.clear(); | |
| 11569 message = SerializedScriptValue::serialize(info.GetIsolate(), info[0], & transferables, nullptr, exceptionState); | |
| 11570 if (exceptionState.hadException()) | |
| 11571 return; | |
| 11572 | |
| 11573 // Neuter the original array buffers on the sender context. | |
| 11574 SerializedScriptValue::transferArrayBufferContents(info.GetIsolate(), tr ansferableArrayBuffers, exceptionState); | |
| 11575 if (exceptionState.hadException()) | |
| 11576 return; | |
| 11577 } | |
| 11578 | |
| 11553 // FIXME: Only pass context/exceptionState if instance really requires it. | 11579 // FIXME: Only pass context/exceptionState if instance really requires it. |
| 11554 ExecutionContext* context = currentExecutionContext(info.GetIsolate()); | 11580 ExecutionContext* context = currentExecutionContext(info.GetIsolate()); |
| 11555 instance->postMessage(context, message.release(), transferables.messagePorts , exceptionState); | 11581 instance->postMessage(context, message.release(), transferables.messagePorts , exceptionState); |
| 11556 } | 11582 } |
| 11557 | 11583 |
| 11558 static void postMessageMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info) | 11584 static void postMessageMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info) |
| 11559 { | 11585 { |
| 11560 postMessageImpl("TestObject", V8TestObject::toImpl(info.Holder()), info); | 11586 postMessageImpl("TestObject", V8TestObject::toImpl(info.Holder()), info); |
| 11561 } | 11587 } |
| 11562 | 11588 |
| (...skipping 2509 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 14072 if (!scriptStateInUserScript) | 14098 if (!scriptStateInUserScript) |
| 14073 return false; | 14099 return false; |
| 14074 | 14100 |
| 14075 ScriptState::Scope scope(scriptState); | 14101 ScriptState::Scope scope(scriptState); |
| 14076 v8::Local<v8::Value> holder = toV8(holderImpl, scriptState->context()->Globa l(), scriptState->isolate()); | 14102 v8::Local<v8::Value> holder = toV8(holderImpl, scriptState->context()->Globa l(), scriptState->isolate()); |
| 14077 ExceptionState exceptionState(ExceptionState::SetterContext, "enumForPrivate Script", "TestObject", scriptState->context()->Global(), scriptState->isolate()) ; | 14103 ExceptionState exceptionState(ExceptionState::SetterContext, "enumForPrivate Script", "TestObject", scriptState->context()->Global(), scriptState->isolate()) ; |
| 14078 return PrivateScriptRunner::runDOMAttributeSetter(scriptState, scriptStateIn UserScript, "TestObject", "enumForPrivateScript", holder, v8String(scriptState-> isolate(), cppValue)); | 14104 return PrivateScriptRunner::runDOMAttributeSetter(scriptState, scriptStateIn UserScript, "TestObject", "enumForPrivateScript", holder, v8String(scriptState-> isolate(), cppValue)); |
| 14079 } | 14105 } |
| 14080 | 14106 |
| 14081 } // namespace blink | 14107 } // namespace blink |
| OLD | NEW |