OLD | NEW |
1 /* | 1 /* |
2 This file is part of the Blink open source project. | 2 This file is part of the Blink open source project. |
3 This file has been auto-generated by CodeGeneratorV8.pm. DO NOT MODIFY! | 3 This file has been auto-generated by CodeGeneratorV8.pm. DO NOT MODIFY! |
4 | 4 |
5 This library is free software; you can redistribute it and/or | 5 This library is free software; you can redistribute it and/or |
6 modify it under the terms of the GNU Library General Public | 6 modify it under the terms of the GNU Library General Public |
7 License as published by the Free Software Foundation; either | 7 License as published by the Free Software Foundation; either |
8 version 2 of the License, or (at your option) any later version. | 8 version 2 of the License, or (at your option) any later version. |
9 | 9 |
10 This library is distributed in the hope that it will be useful, | 10 This library is distributed in the hope that it will be useful, |
(...skipping 18 matching lines...) Expand all Loading... |
29 #include "core/dom/ContextFeatures.h" | 29 #include "core/dom/ContextFeatures.h" |
30 #include "core/dom/Document.h" | 30 #include "core/dom/Document.h" |
31 #include "platform/TraceEvent.h" | 31 #include "platform/TraceEvent.h" |
32 #include "wtf/UnusedParam.h" | 32 #include "wtf/UnusedParam.h" |
33 | 33 |
34 namespace WebCore { | 34 namespace WebCore { |
35 | 35 |
36 static void initializeScriptWrappableForInterface(TestInterfaceEmpty* object) | 36 static void initializeScriptWrappableForInterface(TestInterfaceEmpty* object) |
37 { | 37 { |
38 if (ScriptWrappable::wrapperCanBeStoredInObject(object)) | 38 if (ScriptWrappable::wrapperCanBeStoredInObject(object)) |
39 ScriptWrappable::setTypeInfoInObject(object, &V8TestInterfaceEmpty::info
); | 39 ScriptWrappable::setTypeInfoInObject(object, &V8TestInterfaceEmpty::wrap
perTypeInfo); |
40 else | 40 else |
41 ASSERT_NOT_REACHED(); | 41 ASSERT_NOT_REACHED(); |
42 } | 42 } |
43 | 43 |
44 } // namespace WebCore | 44 } // namespace WebCore |
45 | 45 |
46 // In ScriptWrappable::init, the use of a local function declaration has an issu
e on Windows: | 46 // In ScriptWrappable::init, the use of a local function declaration has an issu
e on Windows: |
47 // the local declaration does not pick up the surrounding namespace. Therefore,
we provide this function | 47 // the local declaration does not pick up the surrounding namespace. Therefore,
we provide this function |
48 // in the global namespace. | 48 // in the global namespace. |
49 // (More info on the MSVC bug here: http://connect.microsoft.com/VisualStudio/fe
edback/details/664619/the-namespace-of-local-function-declarations-in-c) | 49 // (More info on the MSVC bug here: http://connect.microsoft.com/VisualStudio/fe
edback/details/664619/the-namespace-of-local-function-declarations-in-c) |
50 void webCoreInitializeScriptWrappableForInterface(WebCore::TestInterfaceEmpty* o
bject) | 50 void webCoreInitializeScriptWrappableForInterface(WebCore::TestInterfaceEmpty* o
bject) |
51 { | 51 { |
52 WebCore::initializeScriptWrappableForInterface(object); | 52 WebCore::initializeScriptWrappableForInterface(object); |
53 } | 53 } |
54 | 54 |
55 namespace WebCore { | 55 namespace WebCore { |
56 WrapperTypeInfo V8TestInterfaceEmpty::info = { V8TestInterfaceEmpty::GetTemplate
, V8TestInterfaceEmpty::derefObject, 0, 0, 0, V8TestInterfaceEmpty::installPerCo
ntextEnabledPrototypeProperties, 0, WrapperTypeObjectPrototype }; | 56 WrapperTypeInfo V8TestInterfaceEmpty::wrapperTypeInfo = { V8TestInterfaceEmpty::
GetTemplate, V8TestInterfaceEmpty::derefObject, 0, 0, 0, V8TestInterfaceEmpty::i
nstallPerContextEnabledPrototypeProperties, 0, WrapperTypeObjectPrototype }; |
57 | 57 |
58 namespace TestInterfaceEmptyV8Internal { | 58 namespace TestInterfaceEmptyV8Internal { |
59 | 59 |
60 template <typename T> void V8_USE(T) { } | 60 template <typename T> void V8_USE(T) { } |
61 | 61 |
62 } // namespace TestInterfaceEmptyV8Internal | 62 } // namespace TestInterfaceEmptyV8Internal |
63 | 63 |
64 static v8::Handle<v8::FunctionTemplate> ConfigureV8TestInterfaceEmptyTemplate(v8
::Handle<v8::FunctionTemplate> desc, v8::Isolate* isolate, WrapperWorldType curr
entWorldType) | 64 static v8::Handle<v8::FunctionTemplate> ConfigureV8TestInterfaceEmptyTemplate(v8
::Handle<v8::FunctionTemplate> desc, v8::Isolate* isolate, WrapperWorldType curr
entWorldType) |
65 { | 65 { |
66 desc->ReadOnlyPrototype(); | 66 desc->ReadOnlyPrototype(); |
67 | 67 |
68 v8::Local<v8::Signature> defaultSignature; | 68 v8::Local<v8::Signature> defaultSignature; |
69 defaultSignature = V8DOMConfiguration::installDOMClassTemplate(desc, "TestIn
terfaceEmpty", v8::Local<v8::FunctionTemplate>(), V8TestInterfaceEmpty::internal
FieldCount, | 69 defaultSignature = V8DOMConfiguration::installDOMClassTemplate(desc, "TestIn
terfaceEmpty", v8::Local<v8::FunctionTemplate>(), V8TestInterfaceEmpty::internal
FieldCount, |
70 0, 0, | 70 0, 0, |
71 0, 0, isolate, currentWorldType); | 71 0, 0, isolate, currentWorldType); |
72 UNUSED_PARAM(defaultSignature); | 72 UNUSED_PARAM(defaultSignature); |
73 | 73 |
74 // Custom toString template | 74 // Custom toString template |
75 desc->Set(v8::String::NewSymbol("toString"), V8PerIsolateData::current()->to
StringTemplate()); | 75 desc->Set(v8::String::NewSymbol("toString"), V8PerIsolateData::current()->to
StringTemplate()); |
76 return desc; | 76 return desc; |
77 } | 77 } |
78 | 78 |
79 v8::Handle<v8::FunctionTemplate> V8TestInterfaceEmpty::GetTemplate(v8::Isolate*
isolate, WrapperWorldType currentWorldType) | 79 v8::Handle<v8::FunctionTemplate> V8TestInterfaceEmpty::GetTemplate(v8::Isolate*
isolate, WrapperWorldType currentWorldType) |
80 { | 80 { |
81 V8PerIsolateData* data = V8PerIsolateData::from(isolate); | 81 V8PerIsolateData* data = V8PerIsolateData::from(isolate); |
82 V8PerIsolateData::TemplateMap::iterator result = data->templateMap(currentWo
rldType).find(&info); | 82 V8PerIsolateData::TemplateMap::iterator result = data->templateMap(currentWo
rldType).find(&wrapperTypeInfo); |
83 if (result != data->templateMap(currentWorldType).end()) | 83 if (result != data->templateMap(currentWorldType).end()) |
84 return result->value.newLocal(isolate); | 84 return result->value.newLocal(isolate); |
85 | 85 |
86 TRACE_EVENT_SCOPED_SAMPLING_STATE("Blink", "BuildDOMTemplate"); | 86 TRACE_EVENT_SCOPED_SAMPLING_STATE("Blink", "BuildDOMTemplate"); |
87 v8::HandleScope handleScope(isolate); | 87 v8::HandleScope handleScope(isolate); |
88 v8::Handle<v8::FunctionTemplate> templ = | 88 v8::Handle<v8::FunctionTemplate> templ = |
89 ConfigureV8TestInterfaceEmptyTemplate(data->rawTemplate(&info, currentWo
rldType), isolate, currentWorldType); | 89 ConfigureV8TestInterfaceEmptyTemplate(data->rawTemplate(&wrapperTypeInfo
, currentWorldType), isolate, currentWorldType); |
90 data->templateMap(currentWorldType).add(&info, UnsafePersistent<v8::Function
Template>(isolate, templ)); | 90 data->templateMap(currentWorldType).add(&wrapperTypeInfo, UnsafePersistent<v
8::FunctionTemplate>(isolate, templ)); |
91 return handleScope.Close(templ); | 91 return handleScope.Close(templ); |
92 } | 92 } |
93 | 93 |
94 bool V8TestInterfaceEmpty::HasInstance(v8::Handle<v8::Value> jsValue, v8::Isolat
e* isolate, WrapperWorldType currentWorldType) | 94 bool V8TestInterfaceEmpty::HasInstance(v8::Handle<v8::Value> jsValue, v8::Isolat
e* isolate, WrapperWorldType currentWorldType) |
95 { | 95 { |
96 return V8PerIsolateData::from(isolate)->hasInstance(&info, jsValue, currentW
orldType); | 96 return V8PerIsolateData::from(isolate)->hasInstance(&wrapperTypeInfo, jsValu
e, currentWorldType); |
97 } | 97 } |
98 | 98 |
99 bool V8TestInterfaceEmpty::HasInstanceInAnyWorld(v8::Handle<v8::Value> jsValue,
v8::Isolate* isolate) | 99 bool V8TestInterfaceEmpty::HasInstanceInAnyWorld(v8::Handle<v8::Value> jsValue,
v8::Isolate* isolate) |
100 { | 100 { |
101 return V8PerIsolateData::from(isolate)->hasInstance(&info, jsValue, MainWorl
d) | 101 return V8PerIsolateData::from(isolate)->hasInstance(&wrapperTypeInfo, jsValu
e, MainWorld) |
102 || V8PerIsolateData::from(isolate)->hasInstance(&info, jsValue, Isolated
World) | 102 || V8PerIsolateData::from(isolate)->hasInstance(&wrapperTypeInfo, jsValu
e, IsolatedWorld) |
103 || V8PerIsolateData::from(isolate)->hasInstance(&info, jsValue, WorkerWo
rld); | 103 || V8PerIsolateData::from(isolate)->hasInstance(&wrapperTypeInfo, jsValu
e, WorkerWorld); |
104 } | 104 } |
105 | 105 |
106 v8::Handle<v8::Object> V8TestInterfaceEmpty::createWrapper(PassRefPtr<TestInterf
aceEmpty> impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate) | 106 v8::Handle<v8::Object> V8TestInterfaceEmpty::createWrapper(PassRefPtr<TestInterf
aceEmpty> impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate) |
107 { | 107 { |
108 ASSERT(impl); | 108 ASSERT(impl); |
109 ASSERT(!DOMDataStore::containsWrapper<V8TestInterfaceEmpty>(impl.get(), isol
ate)); | 109 ASSERT(!DOMDataStore::containsWrapper<V8TestInterfaceEmpty>(impl.get(), isol
ate)); |
110 if (ScriptWrappable::wrapperCanBeStoredInObject(impl.get())) { | 110 if (ScriptWrappable::wrapperCanBeStoredInObject(impl.get())) { |
111 const WrapperTypeInfo* actualInfo = ScriptWrappable::getTypeInfoFromObje
ct(impl.get()); | 111 const WrapperTypeInfo* actualInfo = ScriptWrappable::getTypeInfoFromObje
ct(impl.get()); |
112 // Might be a XXXConstructor::info instead of an XXX::info. These will b
oth have | 112 // Might be a XXXConstructor::wrapperTypeInfo instead of an XXX::wrapper
TypeInfo. These will both have |
113 // the same object de-ref functions, though, so use that as the basis of
the check. | 113 // the same object de-ref functions, though, so use that as the basis of
the check. |
114 RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(actualInfo->derefObjectFunction
== info.derefObjectFunction); | 114 RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(actualInfo->derefObjectFunction
== wrapperTypeInfo.derefObjectFunction); |
115 } | 115 } |
116 | 116 |
117 v8::Handle<v8::Object> wrapper = V8DOMWrapper::createWrapper(creationContext
, &info, toInternalPointer(impl.get()), isolate); | 117 v8::Handle<v8::Object> wrapper = V8DOMWrapper::createWrapper(creationContext
, &wrapperTypeInfo, toInternalPointer(impl.get()), isolate); |
118 if (UNLIKELY(wrapper.IsEmpty())) | 118 if (UNLIKELY(wrapper.IsEmpty())) |
119 return wrapper; | 119 return wrapper; |
120 | 120 |
121 installPerContextEnabledProperties(wrapper, impl.get(), isolate); | 121 installPerContextEnabledProperties(wrapper, impl.get(), isolate); |
122 V8DOMWrapper::associateObjectWithWrapper<V8TestInterfaceEmpty>(impl, &info,
wrapper, isolate, WrapperConfiguration::Independent); | 122 V8DOMWrapper::associateObjectWithWrapper<V8TestInterfaceEmpty>(impl, &wrappe
rTypeInfo, wrapper, isolate, WrapperConfiguration::Independent); |
123 return wrapper; | 123 return wrapper; |
124 } | 124 } |
125 | 125 |
126 void V8TestInterfaceEmpty::derefObject(void* object) | 126 void V8TestInterfaceEmpty::derefObject(void* object) |
127 { | 127 { |
128 fromInternalPointer(object)->deref(); | 128 fromInternalPointer(object)->deref(); |
129 } | 129 } |
130 | 130 |
131 } // namespace WebCore | 131 } // namespace WebCore |
OLD | NEW |