| 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 #include "config.h" | 7 #include "config.h" |
| 8 #if ENABLE(CONDITION) | 8 #if ENABLE(CONDITION) |
| 9 #include "V8TestInterface.h" | 9 #include "V8TestInterface.h" |
| 10 | 10 |
| 11 #include "RuntimeEnabledFeatures.h" | 11 #include "RuntimeEnabledFeatures.h" |
| 12 #include "bindings/tests/idls/TestImplements2.h" | 12 #include "bindings/tests/idls/TestImplements2.h" |
| 13 #include "bindings/tests/idls/TestImplements3Implementation.h" | 13 #include "bindings/tests/idls/TestImplements3Implementation.h" |
| 14 #include "bindings/tests/idls/TestPartialInterface.h" | 14 #include "bindings/tests/idls/TestPartialInterface.h" |
| 15 #include "bindings/tests/idls/TestPartialInterfaceImplementation.h" | 15 #include "bindings/tests/idls/TestPartialInterfaceImplementation.h" |
| 16 #include "bindings/tests/v8/V8Node.h" | 16 #include "bindings/tests/v8/V8Node.h" |
| 17 #include "bindings/tests/v8/V8TestInterface.h" | 17 #include "bindings/tests/v8/V8TestInterface.h" |
| 18 #include "bindings/tests/v8/V8TestInterfaceEmpty.h" | 18 #include "bindings/tests/v8/V8TestInterfaceEmpty.h" |
| 19 #include "bindings/v8/BindingSecurity.h" |
| 19 #include "bindings/v8/ExceptionState.h" | 20 #include "bindings/v8/ExceptionState.h" |
| 20 #include "bindings/v8/ScriptValue.h" | 21 #include "bindings/v8/ScriptValue.h" |
| 21 #include "bindings/v8/V8AbstractEventListener.h" | 22 #include "bindings/v8/V8AbstractEventListener.h" |
| 22 #include "bindings/v8/V8DOMConfiguration.h" | 23 #include "bindings/v8/V8DOMConfiguration.h" |
| 23 #include "bindings/v8/V8EventListenerList.h" | 24 #include "bindings/v8/V8EventListenerList.h" |
| 24 #include "bindings/v8/V8HiddenValue.h" | 25 #include "bindings/v8/V8HiddenValue.h" |
| 25 #include "bindings/v8/V8ObjectConstructor.h" | 26 #include "bindings/v8/V8ObjectConstructor.h" |
| 26 #include "core/dom/ContextFeatures.h" | 27 #include "core/dom/ContextFeatures.h" |
| 27 #include "core/dom/Document.h" | 28 #include "core/dom/Document.h" |
| 29 #include "core/frame/DOMWindow.h" |
| 28 #include "platform/TraceEvent.h" | 30 #include "platform/TraceEvent.h" |
| 29 #include "wtf/GetPtr.h" | 31 #include "wtf/GetPtr.h" |
| 30 #include "wtf/RefPtr.h" | 32 #include "wtf/RefPtr.h" |
| 31 | 33 |
| 32 namespace WebCore { | 34 namespace WebCore { |
| 33 | 35 |
| 34 static void initializeScriptWrappableForInterface(TestInterfaceImplementation* o
bject) | 36 static void initializeScriptWrappableForInterface(TestInterfaceImplementation* o
bject) |
| 35 { | 37 { |
| 36 if (ScriptWrappable::wrapperCanBeStoredInObject(object)) | 38 if (ScriptWrappable::wrapperCanBeStoredInObject(object)) |
| 37 ScriptWrappable::fromObject(object)->setTypeInfo(&V8TestInterface::wrapp
erTypeInfo); | 39 ScriptWrappable::fromObject(object)->setTypeInfo(&V8TestInterface::wrapp
erTypeInfo); |
| (...skipping 750 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 788 v8::Handle<v8::Object>::Cast(info.This())->ForceSet(name, v8Value); | 790 v8::Handle<v8::Object>::Cast(info.This())->ForceSet(name, v8Value); |
| 789 } | 791 } |
| 790 | 792 |
| 791 static void TestInterfaceImplementationReplaceableAttributeSetterCallback(v8::Lo
cal<v8::String> name, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackIn
fo<void>& info) | 793 static void TestInterfaceImplementationReplaceableAttributeSetterCallback(v8::Lo
cal<v8::String> name, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackIn
fo<void>& info) |
| 792 { | 794 { |
| 793 TestInterfaceImplementationV8Internal::TestInterfaceImplementationReplaceabl
eAttributeSetter(name, v8Value, info); | 795 TestInterfaceImplementationV8Internal::TestInterfaceImplementationReplaceabl
eAttributeSetter(name, v8Value, info); |
| 794 } | 796 } |
| 795 | 797 |
| 796 static void voidMethodTestInterfaceEmptyArgMethod(const v8::FunctionCallbackInfo
<v8::Value>& info) | 798 static void voidMethodTestInterfaceEmptyArgMethod(const v8::FunctionCallbackInfo
<v8::Value>& info) |
| 797 { | 799 { |
| 800 ExceptionState exceptionState(ExceptionState::ExecutionContext, "voidMethodT
estInterfaceEmptyArg", "TestInterface", info.Holder(), info.GetIsolate()); |
| 798 if (UNLIKELY(info.Length() < 1)) { | 801 if (UNLIKELY(info.Length() < 1)) { |
| 799 throwMinimumArityTypeErrorForMethod("voidMethodTestInterfaceEmptyArg", "
TestInterface", 1, info.Length(), info.GetIsolate()); | 802 throwMinimumArityTypeError(exceptionState, 1, info.Length()); |
| 800 return; | 803 return; |
| 801 } | 804 } |
| 802 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; | 805 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; |
| 806 if (DOMWindow* window = impl->toDOMWindow()) { |
| 807 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window
->frame(), exceptionState)) { |
| 808 exceptionState.throwIfNeeded(); |
| 809 return; |
| 810 } |
| 811 if (!window->document()) |
| 812 return; |
| 813 } |
| 803 TestInterfaceEmpty* testInterfaceEmptyArg; | 814 TestInterfaceEmpty* testInterfaceEmptyArg; |
| 804 { | 815 { |
| 805 v8::TryCatch block; | 816 v8::TryCatch block; |
| 806 V8RethrowTryCatchScope rethrow(block); | 817 V8RethrowTryCatchScope rethrow(block); |
| 807 if (info.Length() > 0 && !V8TestInterfaceEmpty::hasInstance(info[0], inf
o.GetIsolate())) { | 818 if (info.Length() > 0 && !V8TestInterfaceEmpty::hasInstance(info[0], inf
o.GetIsolate())) { |
| 808 throwTypeError(ExceptionMessages::failedToExecute("voidMethodTestInt
erfaceEmptyArg", "TestInterface", "parameter 1 is not of type 'TestInterfaceEmpt
y'."), info.GetIsolate()); | 819 exceptionState.throwTypeError("parameter 1 is not of type 'TestInter
faceEmpty'."); |
| 820 exceptionState.throwIfNeeded(); |
| 809 return; | 821 return; |
| 810 } | 822 } |
| 811 TONATIVE_VOID_INTERNAL(testInterfaceEmptyArg, V8TestInterfaceEmpty::toNa
tiveWithTypeCheck(info.GetIsolate(), info[0])); | 823 TONATIVE_VOID_INTERNAL(testInterfaceEmptyArg, V8TestInterfaceEmpty::toNa
tiveWithTypeCheck(info.GetIsolate(), info[0])); |
| 812 } | 824 } |
| 813 impl->voidMethodTestInterfaceEmptyArg(testInterfaceEmptyArg); | 825 impl->voidMethodTestInterfaceEmptyArg(testInterfaceEmptyArg); |
| 814 } | 826 } |
| 815 | 827 |
| 816 static void voidMethodTestInterfaceEmptyArgMethodCallback(const v8::FunctionCall
backInfo<v8::Value>& info) | 828 static void voidMethodTestInterfaceEmptyArgMethodCallback(const v8::FunctionCall
backInfo<v8::Value>& info) |
| 817 { | 829 { |
| 818 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 830 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 819 TestInterfaceImplementationV8Internal::voidMethodTestInterfaceEmptyArgMethod
(info); | 831 TestInterfaceImplementationV8Internal::voidMethodTestInterfaceEmptyArgMethod
(info); |
| 820 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 832 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 821 } | 833 } |
| 822 | 834 |
| 823 static void voidMethodDoubleArgFloatArgMethod(const v8::FunctionCallbackInfo<v8:
:Value>& info) | 835 static void voidMethodDoubleArgFloatArgMethod(const v8::FunctionCallbackInfo<v8:
:Value>& info) |
| 824 { | 836 { |
| 837 ExceptionState exceptionState(ExceptionState::ExecutionContext, "voidMethodD
oubleArgFloatArg", "TestInterface", info.Holder(), info.GetIsolate()); |
| 825 if (UNLIKELY(info.Length() < 2)) { | 838 if (UNLIKELY(info.Length() < 2)) { |
| 826 throwMinimumArityTypeErrorForMethod("voidMethodDoubleArgFloatArg", "Test
Interface", 2, info.Length(), info.GetIsolate()); | 839 throwMinimumArityTypeError(exceptionState, 2, info.Length()); |
| 827 return; | 840 return; |
| 828 } | 841 } |
| 829 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; | 842 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; |
| 843 if (DOMWindow* window = impl->toDOMWindow()) { |
| 844 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window
->frame(), exceptionState)) { |
| 845 exceptionState.throwIfNeeded(); |
| 846 return; |
| 847 } |
| 848 if (!window->document()) |
| 849 return; |
| 850 } |
| 830 double doubleArg; | 851 double doubleArg; |
| 831 float floatArg; | 852 float floatArg; |
| 832 { | 853 { |
| 833 v8::TryCatch block; | 854 v8::TryCatch block; |
| 834 V8RethrowTryCatchScope rethrow(block); | 855 V8RethrowTryCatchScope rethrow(block); |
| 835 TONATIVE_VOID_INTERNAL(doubleArg, static_cast<double>(info[0]->NumberVal
ue())); | 856 TONATIVE_VOID_INTERNAL(doubleArg, static_cast<double>(info[0]->NumberVal
ue())); |
| 836 if (!std::isfinite(doubleArg)) { | 857 if (!std::isfinite(doubleArg)) { |
| 837 throwTypeError(ExceptionMessages::failedToExecute("voidMethodDoubleA
rgFloatArg", "TestInterface", "double parameter 1 is non-finite."), info.GetIsol
ate()); | 858 exceptionState.throwTypeError("double parameter 1 is non-finite."); |
| 859 exceptionState.throwIfNeeded(); |
| 838 return; | 860 return; |
| 839 } | 861 } |
| 840 TONATIVE_VOID_INTERNAL(floatArg, static_cast<float>(info[1]->NumberValue
())); | 862 TONATIVE_VOID_INTERNAL(floatArg, static_cast<float>(info[1]->NumberValue
())); |
| 841 if (!std::isfinite(floatArg)) { | 863 if (!std::isfinite(floatArg)) { |
| 842 throwTypeError(ExceptionMessages::failedToExecute("voidMethodDoubleA
rgFloatArg", "TestInterface", "float parameter 2 is non-finite."), info.GetIsola
te()); | 864 exceptionState.throwTypeError("float parameter 2 is non-finite."); |
| 865 exceptionState.throwIfNeeded(); |
| 843 return; | 866 return; |
| 844 } | 867 } |
| 845 } | 868 } |
| 846 impl->voidMethodDoubleArgFloatArg(doubleArg, floatArg); | 869 impl->voidMethodDoubleArgFloatArg(doubleArg, floatArg); |
| 847 } | 870 } |
| 848 | 871 |
| 849 static void voidMethodDoubleArgFloatArgMethodCallback(const v8::FunctionCallback
Info<v8::Value>& info) | 872 static void voidMethodDoubleArgFloatArgMethodCallback(const v8::FunctionCallback
Info<v8::Value>& info) |
| 850 { | 873 { |
| 851 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 874 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 852 TestInterfaceImplementationV8Internal::voidMethodDoubleArgFloatArgMethod(inf
o); | 875 TestInterfaceImplementationV8Internal::voidMethodDoubleArgFloatArgMethod(inf
o); |
| 853 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 876 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 854 } | 877 } |
| 855 | 878 |
| 856 static void voidMethodUnrestrictedDoubleArgUnrestrictedFloatArgMethod(const v8::
FunctionCallbackInfo<v8::Value>& info) | 879 static void voidMethodUnrestrictedDoubleArgUnrestrictedFloatArgMethod(const v8::
FunctionCallbackInfo<v8::Value>& info) |
| 857 { | 880 { |
| 881 ExceptionState exceptionState(ExceptionState::ExecutionContext, "voidMethodU
nrestrictedDoubleArgUnrestrictedFloatArg", "TestInterface", info.Holder(), info.
GetIsolate()); |
| 858 if (UNLIKELY(info.Length() < 2)) { | 882 if (UNLIKELY(info.Length() < 2)) { |
| 859 throwMinimumArityTypeErrorForMethod("voidMethodUnrestrictedDoubleArgUnre
strictedFloatArg", "TestInterface", 2, info.Length(), info.GetIsolate()); | 883 throwMinimumArityTypeError(exceptionState, 2, info.Length()); |
| 860 return; | 884 return; |
| 861 } | 885 } |
| 862 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; | 886 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; |
| 887 if (DOMWindow* window = impl->toDOMWindow()) { |
| 888 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window
->frame(), exceptionState)) { |
| 889 exceptionState.throwIfNeeded(); |
| 890 return; |
| 891 } |
| 892 if (!window->document()) |
| 893 return; |
| 894 } |
| 863 double unrestrictedDoubleArg; | 895 double unrestrictedDoubleArg; |
| 864 float unrestrictedFloatArg; | 896 float unrestrictedFloatArg; |
| 865 { | 897 { |
| 866 v8::TryCatch block; | 898 v8::TryCatch block; |
| 867 V8RethrowTryCatchScope rethrow(block); | 899 V8RethrowTryCatchScope rethrow(block); |
| 868 TONATIVE_VOID_INTERNAL(unrestrictedDoubleArg, static_cast<double>(info[0
]->NumberValue())); | 900 TONATIVE_VOID_INTERNAL(unrestrictedDoubleArg, static_cast<double>(info[0
]->NumberValue())); |
| 869 TONATIVE_VOID_INTERNAL(unrestrictedFloatArg, static_cast<float>(info[1]-
>NumberValue())); | 901 TONATIVE_VOID_INTERNAL(unrestrictedFloatArg, static_cast<float>(info[1]-
>NumberValue())); |
| 870 } | 902 } |
| 871 impl->voidMethodUnrestrictedDoubleArgUnrestrictedFloatArg(unrestrictedDouble
Arg, unrestrictedFloatArg); | 903 impl->voidMethodUnrestrictedDoubleArgUnrestrictedFloatArg(unrestrictedDouble
Arg, unrestrictedFloatArg); |
| 872 } | 904 } |
| 873 | 905 |
| 874 static void voidMethodUnrestrictedDoubleArgUnrestrictedFloatArgMethodCallback(co
nst v8::FunctionCallbackInfo<v8::Value>& info) | 906 static void voidMethodUnrestrictedDoubleArgUnrestrictedFloatArgMethodCallback(co
nst v8::FunctionCallbackInfo<v8::Value>& info) |
| 875 { | 907 { |
| 876 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 908 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 877 TestInterfaceImplementationV8Internal::voidMethodUnrestrictedDoubleArgUnrest
rictedFloatArgMethod(info); | 909 TestInterfaceImplementationV8Internal::voidMethodUnrestrictedDoubleArgUnrest
rictedFloatArgMethod(info); |
| 878 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 910 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 879 } | 911 } |
| 880 | 912 |
| 881 static void voidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info) | 913 static void voidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info) |
| 882 { | 914 { |
| 915 ExceptionState exceptionState(ExceptionState::ExecutionContext, "voidMethod"
, "TestInterface", info.Holder(), info.GetIsolate()); |
| 883 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; | 916 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; |
| 917 if (DOMWindow* window = impl->toDOMWindow()) { |
| 918 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window
->frame(), exceptionState)) { |
| 919 exceptionState.throwIfNeeded(); |
| 920 return; |
| 921 } |
| 922 if (!window->document()) |
| 923 return; |
| 924 } |
| 884 impl->voidMethod(); | 925 impl->voidMethod(); |
| 885 } | 926 } |
| 886 | 927 |
| 887 static void voidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>&
info) | 928 static void voidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>&
info) |
| 888 { | 929 { |
| 889 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 930 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 890 TestInterfaceImplementationV8Internal::voidMethodMethod(info); | 931 TestInterfaceImplementationV8Internal::voidMethodMethod(info); |
| 891 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 932 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 892 } | 933 } |
| 893 | 934 |
| 894 static void voidMethodMethodForMainWorld(const v8::FunctionCallbackInfo<v8::Valu
e>& info) | 935 static void voidMethodMethodForMainWorld(const v8::FunctionCallbackInfo<v8::Valu
e>& info) |
| 895 { | 936 { |
| 937 ExceptionState exceptionState(ExceptionState::ExecutionContext, "voidMethod"
, "TestInterface", info.Holder(), info.GetIsolate()); |
| 896 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; | 938 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; |
| 939 if (DOMWindow* window = impl->toDOMWindow()) { |
| 940 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window
->frame(), exceptionState)) { |
| 941 exceptionState.throwIfNeeded(); |
| 942 return; |
| 943 } |
| 944 if (!window->document()) |
| 945 return; |
| 946 } |
| 897 impl->voidMethod(); | 947 impl->voidMethod(); |
| 898 } | 948 } |
| 899 | 949 |
| 900 static void voidMethodMethodCallbackForMainWorld(const v8::FunctionCallbackInfo<
v8::Value>& info) | 950 static void voidMethodMethodCallbackForMainWorld(const v8::FunctionCallbackInfo<
v8::Value>& info) |
| 901 { | 951 { |
| 902 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 952 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 903 TestInterfaceImplementationV8Internal::voidMethodMethodForMainWorld(info); | 953 TestInterfaceImplementationV8Internal::voidMethodMethodForMainWorld(info); |
| 904 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 954 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 905 } | 955 } |
| 906 | 956 |
| 907 static void implementsVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>
& info) | 957 static void implementsVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>
& info) |
| 908 { | 958 { |
| 959 ExceptionState exceptionState(ExceptionState::ExecutionContext, "implementsV
oidMethod", "TestInterface", info.Holder(), info.GetIsolate()); |
| 909 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; | 960 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; |
| 961 if (DOMWindow* window = impl->toDOMWindow()) { |
| 962 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window
->frame(), exceptionState)) { |
| 963 exceptionState.throwIfNeeded(); |
| 964 return; |
| 965 } |
| 966 if (!window->document()) |
| 967 return; |
| 968 } |
| 910 impl->implementsVoidMethod(); | 969 impl->implementsVoidMethod(); |
| 911 } | 970 } |
| 912 | 971 |
| 913 static void implementsVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8
::Value>& info) | 972 static void implementsVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8
::Value>& info) |
| 914 { | 973 { |
| 915 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 974 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 916 TestInterfaceImplementationV8Internal::implementsVoidMethodMethod(info); | 975 TestInterfaceImplementationV8Internal::implementsVoidMethodMethod(info); |
| 917 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 976 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 918 } | 977 } |
| 919 | 978 |
| 920 static void implementsComplexMethodMethod(const v8::FunctionCallbackInfo<v8::Val
ue>& info) | 979 static void implementsComplexMethodMethod(const v8::FunctionCallbackInfo<v8::Val
ue>& info) |
| 921 { | 980 { |
| 922 ExceptionState exceptionState(ExceptionState::ExecutionContext, "implementsC
omplexMethod", "TestInterface", info.Holder(), info.GetIsolate()); | 981 ExceptionState exceptionState(ExceptionState::ExecutionContext, "implementsC
omplexMethod", "TestInterface", info.Holder(), info.GetIsolate()); |
| 923 if (UNLIKELY(info.Length() < 2)) { | 982 if (UNLIKELY(info.Length() < 2)) { |
| 924 throwMinimumArityTypeError(exceptionState, 2, info.Length()); | 983 throwMinimumArityTypeError(exceptionState, 2, info.Length()); |
| 925 return; | 984 return; |
| 926 } | 985 } |
| 927 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; | 986 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; |
| 987 if (DOMWindow* window = impl->toDOMWindow()) { |
| 988 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window
->frame(), exceptionState)) { |
| 989 exceptionState.throwIfNeeded(); |
| 990 return; |
| 991 } |
| 992 if (!window->document()) |
| 993 return; |
| 994 } |
| 928 V8StringResource<> strArg; | 995 V8StringResource<> strArg; |
| 929 TestInterfaceEmpty* testInterfaceEmptyArg; | 996 TestInterfaceEmpty* testInterfaceEmptyArg; |
| 930 { | 997 { |
| 931 v8::TryCatch block; | 998 v8::TryCatch block; |
| 932 V8RethrowTryCatchScope rethrow(block); | 999 V8RethrowTryCatchScope rethrow(block); |
| 933 TOSTRING_VOID_INTERNAL(strArg, info[0]); | 1000 TOSTRING_VOID_INTERNAL(strArg, info[0]); |
| 934 if (info.Length() > 1 && !V8TestInterfaceEmpty::hasInstance(info[1], inf
o.GetIsolate())) { | 1001 if (info.Length() > 1 && !V8TestInterfaceEmpty::hasInstance(info[1], inf
o.GetIsolate())) { |
| 935 exceptionState.throwTypeError("parameter 2 is not of type 'TestInter
faceEmpty'."); | 1002 exceptionState.throwTypeError("parameter 2 is not of type 'TestInter
faceEmpty'."); |
| 936 exceptionState.throwIfNeeded(); | 1003 exceptionState.throwIfNeeded(); |
| 937 return; | 1004 return; |
| (...skipping 18 matching lines...) Expand all Loading... |
| 956 | 1023 |
| 957 static void implementsCustomVoidMethodMethodCallback(const v8::FunctionCallbackI
nfo<v8::Value>& info) | 1024 static void implementsCustomVoidMethodMethodCallback(const v8::FunctionCallbackI
nfo<v8::Value>& info) |
| 958 { | 1025 { |
| 959 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 1026 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 960 V8TestInterface::implementsCustomVoidMethodMethodCustom(info); | 1027 V8TestInterface::implementsCustomVoidMethodMethodCustom(info); |
| 961 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 1028 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 962 } | 1029 } |
| 963 | 1030 |
| 964 static void implementsStaticVoidMethodMethod(const v8::FunctionCallbackInfo<v8::
Value>& info) | 1031 static void implementsStaticVoidMethodMethod(const v8::FunctionCallbackInfo<v8::
Value>& info) |
| 965 { | 1032 { |
| 1033 ExceptionState exceptionState(ExceptionState::ExecutionContext, "implementsS
taticVoidMethod", "TestInterface", info.Holder(), info.GetIsolate()); |
| 1034 if (DOMWindow* window = impl->toDOMWindow()) { |
| 1035 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window
->frame(), exceptionState)) { |
| 1036 exceptionState.throwIfNeeded(); |
| 1037 return; |
| 1038 } |
| 1039 if (!window->document()) |
| 1040 return; |
| 1041 } |
| 966 TestInterfaceImplementation::implementsStaticVoidMethod(); | 1042 TestInterfaceImplementation::implementsStaticVoidMethod(); |
| 967 } | 1043 } |
| 968 | 1044 |
| 969 static void implementsStaticVoidMethodMethodCallback(const v8::FunctionCallbackI
nfo<v8::Value>& info) | 1045 static void implementsStaticVoidMethodMethodCallback(const v8::FunctionCallbackI
nfo<v8::Value>& info) |
| 970 { | 1046 { |
| 971 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 1047 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 972 TestInterfaceImplementationV8Internal::implementsStaticVoidMethodMethod(info
); | 1048 TestInterfaceImplementationV8Internal::implementsStaticVoidMethodMethod(info
); |
| 973 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 1049 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 974 } | 1050 } |
| 975 | 1051 |
| 976 static void implements2VoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value
>& info) | 1052 static void implements2VoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value
>& info) |
| 977 { | 1053 { |
| 1054 ExceptionState exceptionState(ExceptionState::ExecutionContext, "implements2
VoidMethod", "TestInterface", info.Holder(), info.GetIsolate()); |
| 978 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; | 1055 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; |
| 1056 if (DOMWindow* window = impl->toDOMWindow()) { |
| 1057 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window
->frame(), exceptionState)) { |
| 1058 exceptionState.throwIfNeeded(); |
| 1059 return; |
| 1060 } |
| 1061 if (!window->document()) |
| 1062 return; |
| 1063 } |
| 979 TestImplements2::implements2VoidMethod(*impl); | 1064 TestImplements2::implements2VoidMethod(*impl); |
| 980 } | 1065 } |
| 981 | 1066 |
| 982 static void implements2VoidMethodMethodCallback(const v8::FunctionCallbackInfo<v
8::Value>& info) | 1067 static void implements2VoidMethodMethodCallback(const v8::FunctionCallbackInfo<v
8::Value>& info) |
| 983 { | 1068 { |
| 984 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 1069 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 985 TestInterfaceImplementationV8Internal::implements2VoidMethodMethod(info); | 1070 TestInterfaceImplementationV8Internal::implements2VoidMethodMethod(info); |
| 986 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 1071 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 987 } | 1072 } |
| 988 | 1073 |
| 989 static void implements3VoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value
>& info) | 1074 static void implements3VoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value
>& info) |
| 990 { | 1075 { |
| 1076 ExceptionState exceptionState(ExceptionState::ExecutionContext, "implements3
VoidMethod", "TestInterface", info.Holder(), info.GetIsolate()); |
| 991 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; | 1077 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; |
| 1078 if (DOMWindow* window = impl->toDOMWindow()) { |
| 1079 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window
->frame(), exceptionState)) { |
| 1080 exceptionState.throwIfNeeded(); |
| 1081 return; |
| 1082 } |
| 1083 if (!window->document()) |
| 1084 return; |
| 1085 } |
| 992 TestImplements3Implementation::implements3VoidMethod(*impl); | 1086 TestImplements3Implementation::implements3VoidMethod(*impl); |
| 993 } | 1087 } |
| 994 | 1088 |
| 995 static void implements3VoidMethodMethodCallback(const v8::FunctionCallbackInfo<v
8::Value>& info) | 1089 static void implements3VoidMethodMethodCallback(const v8::FunctionCallbackInfo<v
8::Value>& info) |
| 996 { | 1090 { |
| 997 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 1091 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 998 TestInterfaceImplementationV8Internal::implements3VoidMethodMethod(info); | 1092 TestInterfaceImplementationV8Internal::implements3VoidMethodMethod(info); |
| 999 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 1093 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 1000 } | 1094 } |
| 1001 | 1095 |
| 1002 static void implements3StaticVoidMethodMethod(const v8::FunctionCallbackInfo<v8:
:Value>& info) | 1096 static void implements3StaticVoidMethodMethod(const v8::FunctionCallbackInfo<v8:
:Value>& info) |
| 1003 { | 1097 { |
| 1098 ExceptionState exceptionState(ExceptionState::ExecutionContext, "implements3
StaticVoidMethod", "TestInterface", info.Holder(), info.GetIsolate()); |
| 1099 if (DOMWindow* window = impl->toDOMWindow()) { |
| 1100 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window
->frame(), exceptionState)) { |
| 1101 exceptionState.throwIfNeeded(); |
| 1102 return; |
| 1103 } |
| 1104 if (!window->document()) |
| 1105 return; |
| 1106 } |
| 1004 TestImplements3Implementation::implements3StaticVoidMethod(); | 1107 TestImplements3Implementation::implements3StaticVoidMethod(); |
| 1005 } | 1108 } |
| 1006 | 1109 |
| 1007 static void implements3StaticVoidMethodMethodCallback(const v8::FunctionCallback
Info<v8::Value>& info) | 1110 static void implements3StaticVoidMethodMethodCallback(const v8::FunctionCallback
Info<v8::Value>& info) |
| 1008 { | 1111 { |
| 1009 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 1112 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 1010 TestInterfaceImplementationV8Internal::implements3StaticVoidMethodMethod(inf
o); | 1113 TestInterfaceImplementationV8Internal::implements3StaticVoidMethodMethod(inf
o); |
| 1011 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 1114 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 1012 } | 1115 } |
| 1013 | 1116 |
| 1014 #if ENABLE(PARTIAL_CONDITION) | 1117 #if ENABLE(PARTIAL_CONDITION) |
| 1015 static void partialVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& i
nfo) | 1118 static void partialVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& i
nfo) |
| 1016 { | 1119 { |
| 1120 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partialVoid
Method", "TestInterface", info.Holder(), info.GetIsolate()); |
| 1017 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; | 1121 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; |
| 1122 if (DOMWindow* window = impl->toDOMWindow()) { |
| 1123 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window
->frame(), exceptionState)) { |
| 1124 exceptionState.throwIfNeeded(); |
| 1125 return; |
| 1126 } |
| 1127 if (!window->document()) |
| 1128 return; |
| 1129 } |
| 1018 TestPartialInterface::partialVoidMethod(*impl); | 1130 TestPartialInterface::partialVoidMethod(*impl); |
| 1019 } | 1131 } |
| 1020 #endif // ENABLE(PARTIAL_CONDITION) | 1132 #endif // ENABLE(PARTIAL_CONDITION) |
| 1021 | 1133 |
| 1022 #if ENABLE(PARTIAL_CONDITION) | 1134 #if ENABLE(PARTIAL_CONDITION) |
| 1023 static void partialVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::V
alue>& info) | 1135 static void partialVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::V
alue>& info) |
| 1024 { | 1136 { |
| 1025 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 1137 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 1026 TestInterfaceImplementationV8Internal::partialVoidMethodMethod(info); | 1138 TestInterfaceImplementationV8Internal::partialVoidMethodMethod(info); |
| 1027 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 1139 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 1028 } | 1140 } |
| 1029 #endif // ENABLE(PARTIAL_CONDITION) | 1141 #endif // ENABLE(PARTIAL_CONDITION) |
| 1030 | 1142 |
| 1031 #if ENABLE(PARTIAL_CONDITION) | 1143 #if ENABLE(PARTIAL_CONDITION) |
| 1032 static void partialStaticVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Val
ue>& info) | 1144 static void partialStaticVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Val
ue>& info) |
| 1033 { | 1145 { |
| 1146 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partialStat
icVoidMethod", "TestInterface", info.Holder(), info.GetIsolate()); |
| 1147 if (DOMWindow* window = impl->toDOMWindow()) { |
| 1148 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window
->frame(), exceptionState)) { |
| 1149 exceptionState.throwIfNeeded(); |
| 1150 return; |
| 1151 } |
| 1152 if (!window->document()) |
| 1153 return; |
| 1154 } |
| 1034 TestPartialInterface::partialStaticVoidMethod(); | 1155 TestPartialInterface::partialStaticVoidMethod(); |
| 1035 } | 1156 } |
| 1036 #endif // ENABLE(PARTIAL_CONDITION) | 1157 #endif // ENABLE(PARTIAL_CONDITION) |
| 1037 | 1158 |
| 1038 #if ENABLE(PARTIAL_CONDITION) | 1159 #if ENABLE(PARTIAL_CONDITION) |
| 1039 static void partialStaticVoidMethodMethodCallback(const v8::FunctionCallbackInfo
<v8::Value>& info) | 1160 static void partialStaticVoidMethodMethodCallback(const v8::FunctionCallbackInfo
<v8::Value>& info) |
| 1040 { | 1161 { |
| 1041 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 1162 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 1042 TestInterfaceImplementationV8Internal::partialStaticVoidMethodMethod(info); | 1163 TestInterfaceImplementationV8Internal::partialStaticVoidMethodMethod(info); |
| 1043 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 1164 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 1044 } | 1165 } |
| 1045 #endif // ENABLE(PARTIAL_CONDITION) | 1166 #endif // ENABLE(PARTIAL_CONDITION) |
| 1046 | 1167 |
| 1047 #if ENABLE(PARTIAL_CONDITION) | 1168 #if ENABLE(PARTIAL_CONDITION) |
| 1048 static void partialVoidMethodLongArgMethod(const v8::FunctionCallbackInfo<v8::Va
lue>& info) | 1169 static void partialVoidMethodLongArgMethod(const v8::FunctionCallbackInfo<v8::Va
lue>& info) |
| 1049 { | 1170 { |
| 1050 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partialVoid
MethodLongArg", "TestInterface", info.Holder(), info.GetIsolate()); | 1171 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partialVoid
MethodLongArg", "TestInterface", info.Holder(), info.GetIsolate()); |
| 1051 if (UNLIKELY(info.Length() < 1)) { | 1172 if (UNLIKELY(info.Length() < 1)) { |
| 1052 throwMinimumArityTypeError(exceptionState, 1, info.Length()); | 1173 throwMinimumArityTypeError(exceptionState, 1, info.Length()); |
| 1053 return; | 1174 return; |
| 1054 } | 1175 } |
| 1055 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; | 1176 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; |
| 1177 if (DOMWindow* window = impl->toDOMWindow()) { |
| 1178 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window
->frame(), exceptionState)) { |
| 1179 exceptionState.throwIfNeeded(); |
| 1180 return; |
| 1181 } |
| 1182 if (!window->document()) |
| 1183 return; |
| 1184 } |
| 1056 int longArg; | 1185 int longArg; |
| 1057 { | 1186 { |
| 1058 v8::TryCatch block; | 1187 v8::TryCatch block; |
| 1059 V8RethrowTryCatchScope rethrow(block); | 1188 V8RethrowTryCatchScope rethrow(block); |
| 1060 TONATIVE_VOID_EXCEPTIONSTATE_INTERNAL(longArg, toInt32(info[0], exceptio
nState), exceptionState); | 1189 TONATIVE_VOID_EXCEPTIONSTATE_INTERNAL(longArg, toInt32(info[0], exceptio
nState), exceptionState); |
| 1061 } | 1190 } |
| 1062 TestPartialInterface::partialVoidMethodLongArg(*impl, longArg); | 1191 TestPartialInterface::partialVoidMethodLongArg(*impl, longArg); |
| 1063 } | 1192 } |
| 1064 #endif // ENABLE(PARTIAL_CONDITION) | 1193 #endif // ENABLE(PARTIAL_CONDITION) |
| 1065 | 1194 |
| 1066 #if ENABLE(PARTIAL_CONDITION) | 1195 #if ENABLE(PARTIAL_CONDITION) |
| 1067 static void partialVoidMethodLongArgMethodCallback(const v8::FunctionCallbackInf
o<v8::Value>& info) | 1196 static void partialVoidMethodLongArgMethodCallback(const v8::FunctionCallbackInf
o<v8::Value>& info) |
| 1068 { | 1197 { |
| 1069 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 1198 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 1070 TestInterfaceImplementationV8Internal::partialVoidMethodLongArgMethod(info); | 1199 TestInterfaceImplementationV8Internal::partialVoidMethodLongArgMethod(info); |
| 1071 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 1200 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 1072 } | 1201 } |
| 1073 #endif // ENABLE(PARTIAL_CONDITION) | 1202 #endif // ENABLE(PARTIAL_CONDITION) |
| 1074 | 1203 |
| 1075 #if ENABLE(PARTIAL_CONDITION) | 1204 #if ENABLE(PARTIAL_CONDITION) |
| 1076 static void partialCallWithExecutionContextRaisesExceptionVoidMethodMethod(const
v8::FunctionCallbackInfo<v8::Value>& info) | 1205 static void partialCallWithExecutionContextRaisesExceptionVoidMethodMethod(const
v8::FunctionCallbackInfo<v8::Value>& info) |
| 1077 { | 1206 { |
| 1078 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partialCall
WithExecutionContextRaisesExceptionVoidMethod", "TestInterface", info.Holder(),
info.GetIsolate()); | 1207 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partialCall
WithExecutionContextRaisesExceptionVoidMethod", "TestInterface", info.Holder(),
info.GetIsolate()); |
| 1079 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; | 1208 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; |
| 1209 if (DOMWindow* window = impl->toDOMWindow()) { |
| 1210 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window
->frame(), exceptionState)) { |
| 1211 exceptionState.throwIfNeeded(); |
| 1212 return; |
| 1213 } |
| 1214 if (!window->document()) |
| 1215 return; |
| 1216 } |
| 1080 ExecutionContext* scriptContext = currentExecutionContext(info.GetIsolate())
; | 1217 ExecutionContext* scriptContext = currentExecutionContext(info.GetIsolate())
; |
| 1081 TestPartialInterface::partialCallWithExecutionContextRaisesExceptionVoidMeth
od(scriptContext, *impl, exceptionState); | 1218 TestPartialInterface::partialCallWithExecutionContextRaisesExceptionVoidMeth
od(scriptContext, *impl, exceptionState); |
| 1082 if (exceptionState.hadException()) { | 1219 if (exceptionState.hadException()) { |
| 1083 exceptionState.throwIfNeeded(); | 1220 exceptionState.throwIfNeeded(); |
| 1084 return; | 1221 return; |
| 1085 } | 1222 } |
| 1086 } | 1223 } |
| 1087 #endif // ENABLE(PARTIAL_CONDITION) | 1224 #endif // ENABLE(PARTIAL_CONDITION) |
| 1088 | 1225 |
| 1089 #if ENABLE(PARTIAL_CONDITION) | 1226 #if ENABLE(PARTIAL_CONDITION) |
| 1090 static void partialCallWithExecutionContextRaisesExceptionVoidMethodMethodCallba
ck(const v8::FunctionCallbackInfo<v8::Value>& info) | 1227 static void partialCallWithExecutionContextRaisesExceptionVoidMethodMethodCallba
ck(const v8::FunctionCallbackInfo<v8::Value>& info) |
| 1091 { | 1228 { |
| 1092 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 1229 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 1093 TestInterfaceImplementationV8Internal::partialCallWithExecutionContextRaises
ExceptionVoidMethodMethod(info); | 1230 TestInterfaceImplementationV8Internal::partialCallWithExecutionContextRaises
ExceptionVoidMethodMethod(info); |
| 1094 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 1231 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 1095 } | 1232 } |
| 1096 #endif // ENABLE(PARTIAL_CONDITION) | 1233 #endif // ENABLE(PARTIAL_CONDITION) |
| 1097 | 1234 |
| 1098 #if ENABLE(PARTIAL_CONDITION) | 1235 #if ENABLE(PARTIAL_CONDITION) |
| 1099 static void partialVoidMethodPartialCallbackTypeArgMethod(const v8::FunctionCall
backInfo<v8::Value>& info) | 1236 static void partialVoidMethodPartialCallbackTypeArgMethod(const v8::FunctionCall
backInfo<v8::Value>& info) |
| 1100 { | 1237 { |
| 1238 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partialVoid
MethodPartialCallbackTypeArg", "TestInterface", info.Holder(), info.GetIsolate()
); |
| 1101 if (UNLIKELY(info.Length() < 1)) { | 1239 if (UNLIKELY(info.Length() < 1)) { |
| 1102 throwMinimumArityTypeErrorForMethod("partialVoidMethodPartialCallbackTyp
eArg", "TestInterface", 1, info.Length(), info.GetIsolate()); | 1240 throwMinimumArityTypeError(exceptionState, 1, info.Length()); |
| 1103 return; | 1241 return; |
| 1104 } | 1242 } |
| 1105 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; | 1243 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; |
| 1244 if (DOMWindow* window = impl->toDOMWindow()) { |
| 1245 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window
->frame(), exceptionState)) { |
| 1246 exceptionState.throwIfNeeded(); |
| 1247 return; |
| 1248 } |
| 1249 if (!window->document()) |
| 1250 return; |
| 1251 } |
| 1106 ScriptValue partialCallbackTypeArg; | 1252 ScriptValue partialCallbackTypeArg; |
| 1107 { | 1253 { |
| 1108 v8::TryCatch block; | 1254 v8::TryCatch block; |
| 1109 V8RethrowTryCatchScope rethrow(block); | 1255 V8RethrowTryCatchScope rethrow(block); |
| 1110 TONATIVE_VOID_INTERNAL(partialCallbackTypeArg, ScriptValue(ScriptState::
current(info.GetIsolate()), info[0])); | 1256 TONATIVE_VOID_INTERNAL(partialCallbackTypeArg, ScriptValue(ScriptState::
current(info.GetIsolate()), info[0])); |
| 1111 } | 1257 } |
| 1112 TestPartialInterface::partialVoidMethodPartialCallbackTypeArg(*impl, partial
CallbackTypeArg); | 1258 TestPartialInterface::partialVoidMethodPartialCallbackTypeArg(*impl, partial
CallbackTypeArg); |
| 1113 } | 1259 } |
| 1114 #endif // ENABLE(PARTIAL_CONDITION) | 1260 #endif // ENABLE(PARTIAL_CONDITION) |
| 1115 | 1261 |
| 1116 #if ENABLE(PARTIAL_CONDITION) | 1262 #if ENABLE(PARTIAL_CONDITION) |
| 1117 static void partialVoidMethodPartialCallbackTypeArgMethodCallback(const v8::Func
tionCallbackInfo<v8::Value>& info) | 1263 static void partialVoidMethodPartialCallbackTypeArgMethodCallback(const v8::Func
tionCallbackInfo<v8::Value>& info) |
| 1118 { | 1264 { |
| 1119 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 1265 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 1120 TestInterfaceImplementationV8Internal::partialVoidMethodPartialCallbackTypeA
rgMethod(info); | 1266 TestInterfaceImplementationV8Internal::partialVoidMethodPartialCallbackTypeA
rgMethod(info); |
| 1121 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 1267 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 1122 } | 1268 } |
| 1123 #endif // ENABLE(PARTIAL_CONDITION) | 1269 #endif // ENABLE(PARTIAL_CONDITION) |
| 1124 | 1270 |
| 1125 static void partial2VoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>&
info) | 1271 static void partial2VoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>&
info) |
| 1126 { | 1272 { |
| 1273 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partial2Voi
dMethod", "TestInterface", info.Holder(), info.GetIsolate()); |
| 1127 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; | 1274 TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder())
; |
| 1275 if (DOMWindow* window = impl->toDOMWindow()) { |
| 1276 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window
->frame(), exceptionState)) { |
| 1277 exceptionState.throwIfNeeded(); |
| 1278 return; |
| 1279 } |
| 1280 if (!window->document()) |
| 1281 return; |
| 1282 } |
| 1128 TestPartialInterfaceImplementation::partial2VoidMethod(*impl); | 1283 TestPartialInterfaceImplementation::partial2VoidMethod(*impl); |
| 1129 } | 1284 } |
| 1130 | 1285 |
| 1131 static void partial2VoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::
Value>& info) | 1286 static void partial2VoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::
Value>& info) |
| 1132 { | 1287 { |
| 1133 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 1288 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 1134 TestInterfaceImplementationV8Internal::partial2VoidMethodMethod(info); | 1289 TestInterfaceImplementationV8Internal::partial2VoidMethodMethod(info); |
| 1135 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 1290 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 1136 } | 1291 } |
| 1137 | 1292 |
| 1138 static void partial2StaticVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Va
lue>& info) | 1293 static void partial2StaticVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Va
lue>& info) |
| 1139 { | 1294 { |
| 1295 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partial2Sta
ticVoidMethod", "TestInterface", info.Holder(), info.GetIsolate()); |
| 1296 if (DOMWindow* window = impl->toDOMWindow()) { |
| 1297 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window
->frame(), exceptionState)) { |
| 1298 exceptionState.throwIfNeeded(); |
| 1299 return; |
| 1300 } |
| 1301 if (!window->document()) |
| 1302 return; |
| 1303 } |
| 1140 TestPartialInterfaceImplementation::partial2StaticVoidMethod(); | 1304 TestPartialInterfaceImplementation::partial2StaticVoidMethod(); |
| 1141 } | 1305 } |
| 1142 | 1306 |
| 1143 static void partial2StaticVoidMethodMethodCallback(const v8::FunctionCallbackInf
o<v8::Value>& info) | 1307 static void partial2StaticVoidMethodMethodCallback(const v8::FunctionCallbackInf
o<v8::Value>& info) |
| 1144 { | 1308 { |
| 1145 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 1309 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 1146 TestInterfaceImplementationV8Internal::partial2StaticVoidMethodMethod(info); | 1310 TestInterfaceImplementationV8Internal::partial2StaticVoidMethodMethod(info); |
| 1147 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 1311 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 1148 } | 1312 } |
| 1149 | 1313 |
| (...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1511 } | 1675 } |
| 1512 | 1676 |
| 1513 template<> | 1677 template<> |
| 1514 v8::Handle<v8::Value> toV8NoInline(TestInterfaceImplementation* impl, v8::Handle
<v8::Object> creationContext, v8::Isolate* isolate) | 1678 v8::Handle<v8::Value> toV8NoInline(TestInterfaceImplementation* impl, v8::Handle
<v8::Object> creationContext, v8::Isolate* isolate) |
| 1515 { | 1679 { |
| 1516 return toV8(impl, creationContext, isolate); | 1680 return toV8(impl, creationContext, isolate); |
| 1517 } | 1681 } |
| 1518 | 1682 |
| 1519 } // namespace WebCore | 1683 } // namespace WebCore |
| 1520 #endif // ENABLE(CONDITION) | 1684 #endif // ENABLE(CONDITION) |
| OLD | NEW |