| OLD | NEW |
| 1 {% extends 'interface_base.cpp' %} | 1 {% extends 'interface_base.cpp' %} |
| 2 | 2 |
| 3 | 3 |
| 4 {##############################################################################} | 4 {##############################################################################} |
| 5 {% macro attribute_configuration(attribute) %} | 5 {% macro attribute_configuration(attribute) %} |
| 6 {% set getter_callback = | 6 {% set getter_callback = |
| 7 '%sV8Internal::%sAttributeGetterCallback' % | 7 '%sV8Internal::%sAttributeGetterCallback' % |
| 8 (cpp_class, attribute.name) | 8 (cpp_class, attribute.name) |
| 9 if not attribute.constructor_type else | 9 if not attribute.constructor_type else |
| 10 ('%sV8Internal::%sConstructorGetterCallback' % | 10 ('%sV8Internal::%sConstructorGetterCallback' % |
| (...skipping 644 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 655 {% if any_type_attributes and not interface_name == 'ErrorEvent' %} | 655 {% if any_type_attributes and not interface_name == 'ErrorEvent' %} |
| 656 {# If we're in an isolated world, create a SerializedScriptValue and store | 656 {# If we're in an isolated world, create a SerializedScriptValue and store |
| 657 it in the event for later cloning if the property is accessed from | 657 it in the event for later cloning if the property is accessed from |
| 658 another world. The main world case is handled lazily (in custom code). | 658 another world. The main world case is handled lazily (in custom code). |
| 659 | 659 |
| 660 We do not clone Error objects (exceptions), for 2 reasons: | 660 We do not clone Error objects (exceptions), for 2 reasons: |
| 661 1) Errors carry a reference to the isolated world's global object, and | 661 1) Errors carry a reference to the isolated world's global object, and |
| 662 thus passing it around would cause leakage. | 662 thus passing it around would cause leakage. |
| 663 2) Errors cannot be cloned (or serialized): | 663 2) Errors cannot be cloned (or serialized): |
| 664 http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-in
terfaces.html#safe-passing-of-structured-data #} | 664 http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-in
terfaces.html#safe-passing-of-structured-data #} |
| 665 if (DOMWrapperWorld::current(isolate)->isIsolatedWorld()) { | 665 if (DOMWrapperWorld::current(isolate).isIsolatedWorld()) { |
| 666 {% for attribute in any_type_attributes %} | 666 {% for attribute in any_type_attributes %} |
| 667 if (!{{attribute.name}}.IsEmpty()) | 667 if (!{{attribute.name}}.IsEmpty()) |
| 668 event->setSerialized{{attribute.name | blink_capitalize}}(Serialized
ScriptValue::createAndSwallowExceptions({{attribute.name}}, isolate)); | 668 event->setSerialized{{attribute.name | blink_capitalize}}(Serialized
ScriptValue::createAndSwallowExceptions({{attribute.name}}, isolate)); |
| 669 {% endfor %} | 669 {% endfor %} |
| 670 } | 670 } |
| 671 | 671 |
| 672 {% endif %} | 672 {% endif %} |
| 673 v8::Handle<v8::Object> wrapper = info.Holder(); | 673 v8::Handle<v8::Object> wrapper = info.Holder(); |
| 674 V8DOMWrapper::associateObjectWithWrapper<{{v8_class}}>(event.release(), &{{v
8_class}}::wrapperTypeInfo, wrapper, isolate, {{wrapper_configuration}}); | 674 V8DOMWrapper::associateObjectWithWrapper<{{v8_class}}>(event.release(), &{{v
8_class}}::wrapperTypeInfo, wrapper, isolate, {{wrapper_configuration}}); |
| 675 v8SetReturnValue(info, wrapper); | 675 v8SetReturnValue(info, wrapper); |
| (...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 968 {# Needed for legacy support of document.all #} | 968 {# Needed for legacy support of document.all #} |
| 969 functionTemplate->InstanceTemplate()->MarkAsUndetectable(); | 969 functionTemplate->InstanceTemplate()->MarkAsUndetectable(); |
| 970 {% endif %} | 970 {% endif %} |
| 971 {% for method in methods if not method.do_not_check_signature %} | 971 {% for method in methods if not method.do_not_check_signature %} |
| 972 {# install_custom_signature #} | 972 {# install_custom_signature #} |
| 973 {% if not method.overload_index or method.overload_index == 1 %} | 973 {% if not method.overload_index or method.overload_index == 1 %} |
| 974 {# For overloaded methods, only generate one accessor #} | 974 {# For overloaded methods, only generate one accessor #} |
| 975 {% filter conditional(method.conditional_string) %} | 975 {% filter conditional(method.conditional_string) %} |
| 976 {% if method.is_do_not_check_security %} | 976 {% if method.is_do_not_check_security %} |
| 977 {% if method.is_per_world_bindings %} | 977 {% if method.is_per_world_bindings %} |
| 978 if (DOMWrapperWorld::current(isolate)->isMainWorld()) { | 978 if (DOMWrapperWorld::current(isolate).isMainWorld()) { |
| 979 {{install_do_not_check_security_signature(method, 'ForMainWorld')}} | 979 {{install_do_not_check_security_signature(method, 'ForMainWorld')}} |
| 980 } else { | 980 } else { |
| 981 {{install_do_not_check_security_signature(method)}} | 981 {{install_do_not_check_security_signature(method)}} |
| 982 } | 982 } |
| 983 {% else %} | 983 {% else %} |
| 984 {{install_do_not_check_security_signature(method)}} | 984 {{install_do_not_check_security_signature(method)}} |
| 985 {% endif %} | 985 {% endif %} |
| 986 {% else %}{# is_do_not_check_security #} | 986 {% else %}{# is_do_not_check_security #} |
| 987 {% if method.is_per_world_bindings %} | 987 {% if method.is_per_world_bindings %} |
| 988 if (DOMWrapperWorld::current(isolate)->isMainWorld()) { | 988 if (DOMWrapperWorld::current(isolate).isMainWorld()) { |
| 989 {% filter runtime_enabled(method.runtime_enabled_function) %} | 989 {% filter runtime_enabled(method.runtime_enabled_function) %} |
| 990 {{install_custom_signature(method, 'ForMainWorld')}} | 990 {{install_custom_signature(method, 'ForMainWorld')}} |
| 991 {% endfilter %} | 991 {% endfilter %} |
| 992 } else { | 992 } else { |
| 993 {% filter runtime_enabled(method.runtime_enabled_function) %} | 993 {% filter runtime_enabled(method.runtime_enabled_function) %} |
| 994 {{install_custom_signature(method)}} | 994 {{install_custom_signature(method)}} |
| 995 {% endfilter %} | 995 {% endfilter %} |
| 996 } | 996 } |
| 997 {% else %} | 997 {% else %} |
| 998 {% filter runtime_enabled(method.runtime_enabled_function) %} | 998 {% filter runtime_enabled(method.runtime_enabled_function) %} |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1196 | 1196 |
| 1197 {% endif %} | 1197 {% endif %} |
| 1198 {% endblock %} | 1198 {% endblock %} |
| 1199 | 1199 |
| 1200 | 1200 |
| 1201 {##############################################################################} | 1201 {##############################################################################} |
| 1202 {% block get_shadow_object_template %} | 1202 {% block get_shadow_object_template %} |
| 1203 {% if interface_name == 'Window' %} | 1203 {% if interface_name == 'Window' %} |
| 1204 v8::Handle<v8::ObjectTemplate> V8Window::getShadowObjectTemplate(v8::Isolate* is
olate) | 1204 v8::Handle<v8::ObjectTemplate> V8Window::getShadowObjectTemplate(v8::Isolate* is
olate) |
| 1205 { | 1205 { |
| 1206 if (DOMWrapperWorld::current(isolate)->isMainWorld()) { | 1206 if (DOMWrapperWorld::current(isolate).isMainWorld()) { |
| 1207 DEFINE_STATIC_LOCAL(v8::Persistent<v8::ObjectTemplate>, V8WindowShadowOb
jectCacheForMainWorld, ()); | 1207 DEFINE_STATIC_LOCAL(v8::Persistent<v8::ObjectTemplate>, V8WindowShadowOb
jectCacheForMainWorld, ()); |
| 1208 if (V8WindowShadowObjectCacheForMainWorld.IsEmpty()) { | 1208 if (V8WindowShadowObjectCacheForMainWorld.IsEmpty()) { |
| 1209 TRACE_EVENT_SCOPED_SAMPLING_STATE("Blink", "BuildDOMTemplate"); | 1209 TRACE_EVENT_SCOPED_SAMPLING_STATE("Blink", "BuildDOMTemplate"); |
| 1210 v8::Handle<v8::ObjectTemplate> templ = v8::ObjectTemplate::New(isola
te); | 1210 v8::Handle<v8::ObjectTemplate> templ = v8::ObjectTemplate::New(isola
te); |
| 1211 configureShadowObjectTemplate(templ, isolate); | 1211 configureShadowObjectTemplate(templ, isolate); |
| 1212 V8WindowShadowObjectCacheForMainWorld.Reset(isolate, templ); | 1212 V8WindowShadowObjectCacheForMainWorld.Reset(isolate, templ); |
| 1213 return templ; | 1213 return templ; |
| 1214 } | 1214 } |
| 1215 return v8::Local<v8::ObjectTemplate>::New(isolate, V8WindowShadowObjectC
acheForMainWorld); | 1215 return v8::Local<v8::ObjectTemplate>::New(isolate, V8WindowShadowObjectC
acheForMainWorld); |
| 1216 } else { | 1216 } else { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1237 { | 1237 { |
| 1238 ASSERT(impl); | 1238 ASSERT(impl); |
| 1239 {% for special_wrap_interface in special_wrap_for %} | 1239 {% for special_wrap_interface in special_wrap_for %} |
| 1240 if (impl->is{{special_wrap_interface}}()) | 1240 if (impl->is{{special_wrap_interface}}()) |
| 1241 return wrap(to{{special_wrap_interface}}(impl), creationContext, isolate
); | 1241 return wrap(to{{special_wrap_interface}}(impl), creationContext, isolate
); |
| 1242 {% endfor %} | 1242 {% endfor %} |
| 1243 v8::Handle<v8::Object> wrapper = {{v8_class}}::createWrapper(impl, creationC
ontext, isolate); | 1243 v8::Handle<v8::Object> wrapper = {{v8_class}}::createWrapper(impl, creationC
ontext, isolate); |
| 1244 {% if is_document %} | 1244 {% if is_document %} |
| 1245 if (wrapper.IsEmpty()) | 1245 if (wrapper.IsEmpty()) |
| 1246 return wrapper; | 1246 return wrapper; |
| 1247 DOMWrapperWorld* world = DOMWrapperWorld::current(isolate); | 1247 DOMWrapperWorld& world = DOMWrapperWorld::current(isolate); |
| 1248 if (world->isMainWorld()) { | 1248 if (world.isMainWorld()) { |
| 1249 if (LocalFrame* frame = impl->frame()) | 1249 if (LocalFrame* frame = impl->frame()) |
| 1250 frame->script().windowShell(world)->updateDocumentWrapper(wrapper); | 1250 frame->script().windowShell(world)->updateDocumentWrapper(wrapper); |
| 1251 } | 1251 } |
| 1252 {% endif %} | 1252 {% endif %} |
| 1253 return wrapper; | 1253 return wrapper; |
| 1254 } | 1254 } |
| 1255 | 1255 |
| 1256 {% endif %} | 1256 {% endif %} |
| 1257 {% endblock %} | 1257 {% endblock %} |
| 1258 | 1258 |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1315 {% endfilter %} | 1315 {% endfilter %} |
| 1316 } | 1316 } |
| 1317 | 1317 |
| 1318 template<> | 1318 template<> |
| 1319 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c
reationContext, v8::Isolate* isolate) | 1319 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c
reationContext, v8::Isolate* isolate) |
| 1320 { | 1320 { |
| 1321 return toV8(impl, creationContext, isolate); | 1321 return toV8(impl, creationContext, isolate); |
| 1322 } | 1322 } |
| 1323 | 1323 |
| 1324 {% endblock %} | 1324 {% endblock %} |
| OLD | NEW |