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 22 matching lines...) Expand all Loading... |
33 #include "core/dom/ContextFeatures.h" | 33 #include "core/dom/ContextFeatures.h" |
34 #include "core/dom/Document.h" | 34 #include "core/dom/Document.h" |
35 #include "platform/TraceEvent.h" | 35 #include "platform/TraceEvent.h" |
36 #include "wtf/UnusedParam.h" | 36 #include "wtf/UnusedParam.h" |
37 | 37 |
38 namespace WebCore { | 38 namespace WebCore { |
39 | 39 |
40 static void initializeScriptWrappableForInterface(TestNode* object) | 40 static void initializeScriptWrappableForInterface(TestNode* object) |
41 { | 41 { |
42 if (ScriptWrappable::wrapperCanBeStoredInObject(object)) | 42 if (ScriptWrappable::wrapperCanBeStoredInObject(object)) |
43 ScriptWrappable::setTypeInfoInObject(object, &V8TestNode::info); | 43 ScriptWrappable::setTypeInfoInObject(object, &V8TestNode::wrapperTypeInf
o); |
44 else | 44 else |
45 ASSERT_NOT_REACHED(); | 45 ASSERT_NOT_REACHED(); |
46 } | 46 } |
47 | 47 |
48 } // namespace WebCore | 48 } // namespace WebCore |
49 | 49 |
50 // In ScriptWrappable::init, the use of a local function declaration has an issu
e on Windows: | 50 // In ScriptWrappable::init, the use of a local function declaration has an issu
e on Windows: |
51 // the local declaration does not pick up the surrounding namespace. Therefore,
we provide this function | 51 // the local declaration does not pick up the surrounding namespace. Therefore,
we provide this function |
52 // in the global namespace. | 52 // in the global namespace. |
53 // (More info on the MSVC bug here: http://connect.microsoft.com/VisualStudio/fe
edback/details/664619/the-namespace-of-local-function-declarations-in-c) | 53 // (More info on the MSVC bug here: http://connect.microsoft.com/VisualStudio/fe
edback/details/664619/the-namespace-of-local-function-declarations-in-c) |
54 void webCoreInitializeScriptWrappableForInterface(WebCore::TestNode* object) | 54 void webCoreInitializeScriptWrappableForInterface(WebCore::TestNode* object) |
55 { | 55 { |
56 WebCore::initializeScriptWrappableForInterface(object); | 56 WebCore::initializeScriptWrappableForInterface(object); |
57 } | 57 } |
58 | 58 |
59 namespace WebCore { | 59 namespace WebCore { |
60 WrapperTypeInfo V8TestNode::info = { V8TestNode::GetTemplate, V8TestNode::derefO
bject, 0, V8TestNode::toEventTarget, 0, V8TestNode::installPerContextEnabledProt
otypeProperties, &V8Node::info, WrapperTypeObjectPrototype }; | 60 WrapperTypeInfo V8TestNode::wrapperTypeInfo = { V8TestNode::GetTemplate, V8TestN
ode::derefObject, 0, V8TestNode::toEventTarget, 0, V8TestNode::installPerContext
EnabledPrototypeProperties, &V8Node::wrapperTypeInfo, WrapperTypeObjectPrototype
}; |
61 | 61 |
62 namespace TestNodeV8Internal { | 62 namespace TestNodeV8Internal { |
63 | 63 |
64 template <typename T> void V8_USE(T) { } | 64 template <typename T> void V8_USE(T) { } |
65 | 65 |
66 static void hrefAttributeGetter(v8::Local<v8::String> name, const v8::PropertyCa
llbackInfo<v8::Value>& info) | 66 static void hrefAttributeGetter(v8::Local<v8::String> name, const v8::PropertyCa
llbackInfo<v8::Value>& info) |
67 { | 67 { |
68 TestNode* imp = V8TestNode::toNative(info.Holder()); | 68 TestNode* imp = V8TestNode::toNative(info.Holder()); |
69 v8SetReturnValueString(info, imp->href(), info.GetIsolate()); | 69 v8SetReturnValueString(info, imp->href(), info.GetIsolate()); |
70 } | 70 } |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 TestNodeV8Internal::hrefThrowsAttributeSetter(name, jsValue, info); | 118 TestNodeV8Internal::hrefThrowsAttributeSetter(name, jsValue, info); |
119 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 119 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
120 } | 120 } |
121 | 121 |
122 static void constructor(const v8::FunctionCallbackInfo<v8::Value>& args) | 122 static void constructor(const v8::FunctionCallbackInfo<v8::Value>& args) |
123 { | 123 { |
124 | 124 |
125 RefPtr<TestNode> impl = TestNode::create(); | 125 RefPtr<TestNode> impl = TestNode::create(); |
126 v8::Handle<v8::Object> wrapper = args.Holder(); | 126 v8::Handle<v8::Object> wrapper = args.Holder(); |
127 | 127 |
128 V8DOMWrapper::associateObjectWithWrapper<V8TestNode>(impl.release(), &V8Test
Node::info, wrapper, args.GetIsolate(), WrapperConfiguration::Dependent); | 128 V8DOMWrapper::associateObjectWithWrapper<V8TestNode>(impl.release(), &V8Test
Node::wrapperTypeInfo, wrapper, args.GetIsolate(), WrapperConfiguration::Depende
nt); |
129 args.GetReturnValue().Set(wrapper); | 129 args.GetReturnValue().Set(wrapper); |
130 } | 130 } |
131 | 131 |
132 } // namespace TestNodeV8Internal | 132 } // namespace TestNodeV8Internal |
133 | 133 |
134 static const V8DOMConfiguration::AttributeConfiguration V8TestNodeAttributes[] =
{ | 134 static const V8DOMConfiguration::AttributeConfiguration V8TestNodeAttributes[] =
{ |
135 {"href", TestNodeV8Internal::hrefAttributeGetterCallback, TestNodeV8Internal
::hrefAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAU
LT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */}, | 135 {"href", TestNodeV8Internal::hrefAttributeGetterCallback, TestNodeV8Internal
::hrefAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAU
LT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */}, |
136 {"hrefThrows", TestNodeV8Internal::hrefThrowsAttributeGetterCallback, TestNo
deV8Internal::hrefThrowsAttributeSetterCallback, 0, 0, 0, static_cast<v8::Access
Control>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on ins
tance */}, | 136 {"hrefThrows", TestNodeV8Internal::hrefThrowsAttributeGetterCallback, TestNo
deV8Internal::hrefThrowsAttributeSetterCallback, 0, 0, 0, static_cast<v8::Access
Control>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on ins
tance */}, |
137 }; | 137 }; |
138 | 138 |
(...skipping 26 matching lines...) Expand all Loading... |
165 desc->SetLength(0); | 165 desc->SetLength(0); |
166 | 166 |
167 // Custom toString template | 167 // Custom toString template |
168 desc->Set(v8::String::NewSymbol("toString"), V8PerIsolateData::current()->to
StringTemplate()); | 168 desc->Set(v8::String::NewSymbol("toString"), V8PerIsolateData::current()->to
StringTemplate()); |
169 return desc; | 169 return desc; |
170 } | 170 } |
171 | 171 |
172 v8::Handle<v8::FunctionTemplate> V8TestNode::GetTemplate(v8::Isolate* isolate, W
rapperWorldType currentWorldType) | 172 v8::Handle<v8::FunctionTemplate> V8TestNode::GetTemplate(v8::Isolate* isolate, W
rapperWorldType currentWorldType) |
173 { | 173 { |
174 V8PerIsolateData* data = V8PerIsolateData::from(isolate); | 174 V8PerIsolateData* data = V8PerIsolateData::from(isolate); |
175 V8PerIsolateData::TemplateMap::iterator result = data->templateMap(currentWo
rldType).find(&info); | 175 V8PerIsolateData::TemplateMap::iterator result = data->templateMap(currentWo
rldType).find(&wrapperTypeInfo); |
176 if (result != data->templateMap(currentWorldType).end()) | 176 if (result != data->templateMap(currentWorldType).end()) |
177 return result->value.newLocal(isolate); | 177 return result->value.newLocal(isolate); |
178 | 178 |
179 TRACE_EVENT_SCOPED_SAMPLING_STATE("Blink", "BuildDOMTemplate"); | 179 TRACE_EVENT_SCOPED_SAMPLING_STATE("Blink", "BuildDOMTemplate"); |
180 v8::HandleScope handleScope(isolate); | 180 v8::HandleScope handleScope(isolate); |
181 v8::Handle<v8::FunctionTemplate> templ = | 181 v8::Handle<v8::FunctionTemplate> templ = |
182 ConfigureV8TestNodeTemplate(data->rawTemplate(&info, currentWorldType),
isolate, currentWorldType); | 182 ConfigureV8TestNodeTemplate(data->rawTemplate(&wrapperTypeInfo, currentW
orldType), isolate, currentWorldType); |
183 data->templateMap(currentWorldType).add(&info, UnsafePersistent<v8::Function
Template>(isolate, templ)); | 183 data->templateMap(currentWorldType).add(&wrapperTypeInfo, UnsafePersistent<v
8::FunctionTemplate>(isolate, templ)); |
184 return handleScope.Close(templ); | 184 return handleScope.Close(templ); |
185 } | 185 } |
186 | 186 |
187 bool V8TestNode::HasInstance(v8::Handle<v8::Value> jsValue, v8::Isolate* isolate
, WrapperWorldType currentWorldType) | 187 bool V8TestNode::HasInstance(v8::Handle<v8::Value> jsValue, v8::Isolate* isolate
, WrapperWorldType currentWorldType) |
188 { | 188 { |
189 return V8PerIsolateData::from(isolate)->hasInstance(&info, jsValue, currentW
orldType); | 189 return V8PerIsolateData::from(isolate)->hasInstance(&wrapperTypeInfo, jsValu
e, currentWorldType); |
190 } | 190 } |
191 | 191 |
192 bool V8TestNode::HasInstanceInAnyWorld(v8::Handle<v8::Value> jsValue, v8::Isolat
e* isolate) | 192 bool V8TestNode::HasInstanceInAnyWorld(v8::Handle<v8::Value> jsValue, v8::Isolat
e* isolate) |
193 { | 193 { |
194 return V8PerIsolateData::from(isolate)->hasInstance(&info, jsValue, MainWorl
d) | 194 return V8PerIsolateData::from(isolate)->hasInstance(&wrapperTypeInfo, jsValu
e, MainWorld) |
195 || V8PerIsolateData::from(isolate)->hasInstance(&info, jsValue, Isolated
World) | 195 || V8PerIsolateData::from(isolate)->hasInstance(&wrapperTypeInfo, jsValu
e, IsolatedWorld) |
196 || V8PerIsolateData::from(isolate)->hasInstance(&info, jsValue, WorkerWo
rld); | 196 || V8PerIsolateData::from(isolate)->hasInstance(&wrapperTypeInfo, jsValu
e, WorkerWorld); |
197 } | 197 } |
198 | 198 |
199 EventTarget* V8TestNode::toEventTarget(v8::Handle<v8::Object> object) | 199 EventTarget* V8TestNode::toEventTarget(v8::Handle<v8::Object> object) |
200 { | 200 { |
201 return toNative(object); | 201 return toNative(object); |
202 } | 202 } |
203 | 203 |
204 v8::Handle<v8::Object> V8TestNode::createWrapper(PassRefPtr<TestNode> impl, v8::
Handle<v8::Object> creationContext, v8::Isolate* isolate) | 204 v8::Handle<v8::Object> V8TestNode::createWrapper(PassRefPtr<TestNode> impl, v8::
Handle<v8::Object> creationContext, v8::Isolate* isolate) |
205 { | 205 { |
206 ASSERT(impl); | 206 ASSERT(impl); |
207 ASSERT(!DOMDataStore::containsWrapper<V8TestNode>(impl.get(), isolate)); | 207 ASSERT(!DOMDataStore::containsWrapper<V8TestNode>(impl.get(), isolate)); |
208 if (ScriptWrappable::wrapperCanBeStoredInObject(impl.get())) { | 208 if (ScriptWrappable::wrapperCanBeStoredInObject(impl.get())) { |
209 const WrapperTypeInfo* actualInfo = ScriptWrappable::getTypeInfoFromObje
ct(impl.get()); | 209 const WrapperTypeInfo* actualInfo = ScriptWrappable::getTypeInfoFromObje
ct(impl.get()); |
210 // Might be a XXXConstructor::info instead of an XXX::info. These will b
oth have | 210 // Might be a XXXConstructor::wrapperTypeInfo instead of an XXX::wrapper
TypeInfo. These will both have |
211 // the same object de-ref functions, though, so use that as the basis of
the check. | 211 // the same object de-ref functions, though, so use that as the basis of
the check. |
212 RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(actualInfo->derefObjectFunction
== info.derefObjectFunction); | 212 RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(actualInfo->derefObjectFunction
== wrapperTypeInfo.derefObjectFunction); |
213 } | 213 } |
214 | 214 |
215 v8::Handle<v8::Object> wrapper = V8DOMWrapper::createWrapper(creationContext
, &info, toInternalPointer(impl.get()), isolate); | 215 v8::Handle<v8::Object> wrapper = V8DOMWrapper::createWrapper(creationContext
, &wrapperTypeInfo, toInternalPointer(impl.get()), isolate); |
216 if (UNLIKELY(wrapper.IsEmpty())) | 216 if (UNLIKELY(wrapper.IsEmpty())) |
217 return wrapper; | 217 return wrapper; |
218 | 218 |
219 installPerContextEnabledProperties(wrapper, impl.get(), isolate); | 219 installPerContextEnabledProperties(wrapper, impl.get(), isolate); |
220 V8DOMWrapper::associateObjectWithWrapper<V8TestNode>(impl, &info, wrapper, i
solate, WrapperConfiguration::Dependent); | 220 V8DOMWrapper::associateObjectWithWrapper<V8TestNode>(impl, &wrapperTypeInfo,
wrapper, isolate, WrapperConfiguration::Dependent); |
221 return wrapper; | 221 return wrapper; |
222 } | 222 } |
223 | 223 |
224 void V8TestNode::derefObject(void* object) | 224 void V8TestNode::derefObject(void* object) |
225 { | 225 { |
226 fromInternalPointer(object)->deref(); | 226 fromInternalPointer(object)->deref(); |
227 } | 227 } |
228 | 228 |
229 } // namespace WebCore | 229 } // namespace WebCore |
OLD | NEW |