OLD | NEW |
1 {% extends 'interface_base.cpp' %} | 1 {% extends 'interface_base.cpp' %} |
2 | 2 |
3 | 3 |
4 {##############################################################################} | 4 {##############################################################################} |
5 {% block constructor_getter %} | 5 {% block constructor_getter %} |
6 {% if has_constructor_attributes %} | 6 {% if has_constructor_attributes %} |
7 static void {{cpp_class}}ConstructorGetter(v8::Local<v8::String>, const v8::Prop
ertyCallbackInfo<v8::Value>& info) | 7 static void {{cpp_class}}ConstructorGetter(v8::Local<v8::String>, const v8::Prop
ertyCallbackInfo<v8::Value>& info) |
8 { | 8 { |
9 v8::Handle<v8::Value> data = info.Data(); | 9 v8::Handle<v8::Value> data = info.Data(); |
10 ASSERT(data->IsExternal()); | 10 ASSERT(data->IsExternal()); |
(...skipping 1127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1138 return v8::Local<v8::ObjectTemplate>::New(isolate, V8WindowShadowObjectC
acheForNonMainWorld); | 1138 return v8::Local<v8::ObjectTemplate>::New(isolate, V8WindowShadowObjectC
acheForNonMainWorld); |
1139 } | 1139 } |
1140 } | 1140 } |
1141 | 1141 |
1142 {% endif %} | 1142 {% endif %} |
1143 {% endblock %} | 1143 {% endblock %} |
1144 | 1144 |
1145 | 1145 |
1146 {##############################################################################} | 1146 {##############################################################################} |
1147 {% block wrap %} | 1147 {% block wrap %} |
| 1148 {% if not is_script_wrappable %} |
1148 {% if special_wrap_for or is_document %} | 1149 {% if special_wrap_for or is_document %} |
1149 v8::Handle<v8::Object> wrap({{cpp_class}}* impl, v8::Handle<v8::Object> creation
Context, v8::Isolate* isolate) | 1150 v8::Handle<v8::Object> wrap({{cpp_class}}* impl, v8::Handle<v8::Object> creation
Context, v8::Isolate* isolate) |
1150 { | 1151 { |
1151 ASSERT(impl); | 1152 ASSERT(impl); |
1152 {% for special_wrap_interface in special_wrap_for %} | 1153 {% for special_wrap_interface in special_wrap_for %} |
1153 if (impl->is{{special_wrap_interface}}()) | 1154 if (impl->is{{special_wrap_interface}}()) |
1154 return wrap(to{{special_wrap_interface}}(impl), creationContext, isolate
); | 1155 return wrap(to{{special_wrap_interface}}(impl), creationContext, isolate
); |
1155 {% endfor %} | 1156 {% endfor %} |
1156 v8::Handle<v8::Object> wrapper = {{v8_class}}::createWrapper(impl, creationC
ontext, isolate); | 1157 v8::Handle<v8::Object> wrapper = {{v8_class}}::createWrapper(impl, creationC
ontext, isolate); |
1157 {% if is_document %} | 1158 {% if is_document %} |
(...skipping 10 matching lines...) Expand all Loading... |
1168 | 1169 |
1169 {% elif not has_custom_to_v8 and not has_custom_wrap %} | 1170 {% elif not has_custom_to_v8 and not has_custom_wrap %} |
1170 v8::Handle<v8::Object> wrap({{cpp_class}}* impl, v8::Handle<v8::Object> creation
Context, v8::Isolate* isolate) | 1171 v8::Handle<v8::Object> wrap({{cpp_class}}* impl, v8::Handle<v8::Object> creation
Context, v8::Isolate* isolate) |
1171 { | 1172 { |
1172 ASSERT(impl); | 1173 ASSERT(impl); |
1173 ASSERT(!DOMDataStore::containsWrapper<{{v8_class}}>(impl, isolate)); | 1174 ASSERT(!DOMDataStore::containsWrapper<{{v8_class}}>(impl, isolate)); |
1174 return {{v8_class}}::createWrapper(impl, creationContext, isolate); | 1175 return {{v8_class}}::createWrapper(impl, creationContext, isolate); |
1175 } | 1176 } |
1176 | 1177 |
1177 {% endif %} | 1178 {% endif %} |
| 1179 {% endif %} |
1178 {% endblock %} | 1180 {% endblock %} |
1179 | 1181 |
1180 | 1182 |
1181 {##############################################################################} | 1183 {##############################################################################} |
1182 {% block create_wrapper %} | 1184 {% block create_wrapper %} |
1183 {% if not has_custom_to_v8 %} | 1185 {% if not has_custom_to_v8 and not is_script_wrappable %} |
1184 v8::Handle<v8::Object> {{v8_class}}::createWrapper({{pass_cpp_type}} impl, v8::H
andle<v8::Object> creationContext, v8::Isolate* isolate) | 1186 v8::Handle<v8::Object> {{v8_class}}::createWrapper({{pass_cpp_type}} impl, v8::H
andle<v8::Object> creationContext, v8::Isolate* isolate) |
1185 { | 1187 { |
1186 ASSERT(impl); | 1188 ASSERT(impl); |
1187 ASSERT(!DOMDataStore::containsWrapper<{{v8_class}}>(impl.get(), isolate)); | 1189 ASSERT(!DOMDataStore::containsWrapper<{{v8_class}}>(impl.get(), isolate)); |
1188 {% if is_script_wrappable %} | |
1189 const WrapperTypeInfo* actualInfo = impl->typeInfo(); | |
1190 // Might be a XXXConstructor::wrapperTypeInfo instead of an XXX::wrapperType
Info. These will both have | |
1191 // the same object de-ref functions, though, so use that as the basis of the
check. | |
1192 RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(actualInfo->derefObjectFunction ==
wrapperTypeInfo.derefObjectFunction); | |
1193 {% endif %} | |
1194 | 1190 |
1195 {% if is_document %} | 1191 {% if is_document %} |
1196 if (LocalFrame* frame = impl->frame()) { | 1192 if (LocalFrame* frame = impl->frame()) { |
1197 if (frame->script().initializeMainWorld()) { | 1193 if (frame->script().initializeMainWorld()) { |
1198 // initializeMainWorld may have created a wrapper for the object, re
try from the start. | 1194 // initializeMainWorld may have created a wrapper for the object, re
try from the start. |
1199 v8::Handle<v8::Object> wrapper = DOMDataStore::getWrapper<{{v8_class
}}>(impl.get(), isolate); | 1195 v8::Handle<v8::Object> wrapper = DOMDataStore::getWrapper<{{v8_class
}}>(impl.get(), isolate); |
1200 if (!wrapper.IsEmpty()) | 1196 if (!wrapper.IsEmpty()) |
1201 return wrapper; | 1197 return wrapper; |
1202 } | 1198 } |
1203 } | 1199 } |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1267 {% endif %} | 1263 {% endif %} |
1268 } | 1264 } |
1269 | 1265 |
1270 template<> | 1266 template<> |
1271 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c
reationContext, v8::Isolate* isolate) | 1267 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c
reationContext, v8::Isolate* isolate) |
1272 { | 1268 { |
1273 return toV8(impl, creationContext, isolate); | 1269 return toV8(impl, creationContext, isolate); |
1274 } | 1270 } |
1275 | 1271 |
1276 {% endblock %} | 1272 {% endblock %} |
OLD | NEW |