OLD | NEW |
1 {% extends 'interface_base.cpp' %} | 1 {% extends 'interface_base.cpp' %} |
2 | 2 |
3 | 3 |
4 {##############################################################################} | 4 {##############################################################################} |
5 {% block security_check_functions %} | |
6 {% if has_access_check_callbacks %} | |
7 bool indexedSecurityCheck(v8::Local<v8::Object> host, uint32_t index, v8::Access
Type type, v8::Local<v8::Value>) | |
8 { | |
9 {{cpp_class}}* impl = {{v8_class}}::toImpl(host); | |
10 return BindingSecurity::shouldAllowAccessToFrame(v8::Isolate::GetCurrent(),
impl->frame(), DoNotReportSecurityError); | |
11 } | |
12 | |
13 bool namedSecurityCheck(v8::Local<v8::Object> host, v8::Local<v8::Value> key, v8
::AccessType type, v8::Local<v8::Value>) | |
14 { | |
15 {{cpp_class}}* impl = {{v8_class}}::toImpl(host); | |
16 return BindingSecurity::shouldAllowAccessToFrame(v8::Isolate::GetCurrent(),
impl->frame(), DoNotReportSecurityError); | |
17 } | |
18 | |
19 {% endif %} | |
20 {% endblock %} | |
21 | |
22 | |
23 {##############################################################################} | |
24 {% block indexed_property_getter %} | 5 {% block indexed_property_getter %} |
25 {% if indexed_property_getter and not indexed_property_getter.is_custom %} | 6 {% if indexed_property_getter and not indexed_property_getter.is_custom %} |
26 {% set getter = indexed_property_getter %} | 7 {% set getter = indexed_property_getter %} |
27 static void indexedPropertyGetter(uint32_t index, const v8::PropertyCallbackInfo
<v8::Value>& info) | 8 static void indexedPropertyGetter(uint32_t index, const v8::PropertyCallbackInfo
<v8::Value>& info) |
28 { | 9 { |
29 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder()); | 10 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder()); |
30 {% if getter.is_raises_exception %} | 11 {% if getter.is_raises_exception %} |
31 ExceptionState exceptionState(ExceptionState::IndexedGetterContext, "{{inter
face_name}}", info.Holder(), info.GetIsolate()); | 12 ExceptionState exceptionState(ExceptionState::IndexedGetterContext, "{{inter
face_name}}", info.Holder(), info.GetIsolate()); |
32 {% endif %} | 13 {% endif %} |
33 {% set getter_name = getter.name or 'anonymousIndexedGetter' %} | 14 {% set getter_name = getter.name or 'anonymousIndexedGetter' %} |
(...skipping 739 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
773 {% block to_impl_with_type_check %} | 754 {% block to_impl_with_type_check %} |
774 {{cpp_class}}* {{v8_class}}::toImplWithTypeCheck(v8::Isolate* isolate, v8::Handl
e<v8::Value> value) | 755 {{cpp_class}}* {{v8_class}}::toImplWithTypeCheck(v8::Isolate* isolate, v8::Handl
e<v8::Value> value) |
775 { | 756 { |
776 return hasInstance(value, isolate) ? blink::toScriptWrappableBase(v8::Handle
<v8::Object>::Cast(value))->toImpl<{{cpp_class}}>() : 0; | 757 return hasInstance(value, isolate) ? blink::toScriptWrappableBase(v8::Handle
<v8::Object>::Cast(value))->toImpl<{{cpp_class}}>() : 0; |
777 } | 758 } |
778 | 759 |
779 {% endblock %} | 760 {% endblock %} |
780 | 761 |
781 | 762 |
782 {##############################################################################} | 763 {##############################################################################} |
783 {% block install_conditional_attributes %} | |
784 {% if has_conditional_attributes %} | |
785 void {{v8_class}}::installConditionallyEnabledProperties(v8::Handle<v8::Object>
instanceObject, v8::Isolate* isolate) | |
786 { | |
787 v8::Local<v8::Object> prototypeObject = v8::Local<v8::Object>::Cast(instance
Object->GetPrototype()); | |
788 ExecutionContext* context = toExecutionContext(prototypeObject->CreationCont
ext()); | |
789 | |
790 {% for attribute in attributes if attribute.per_context_enabled_function or
attribute.exposed_test %} | |
791 {% filter per_context_enabled(attribute.per_context_enabled_function) %} | |
792 {% filter exposed(attribute.exposed_test) %} | |
793 static const V8DOMConfiguration::AttributeConfiguration attributeConfigurati
on =\ | |
794 {{attribute_configuration(attribute)}}; | |
795 V8DOMConfiguration::installAttribute(instanceObject, prototypeObject, attrib
uteConfiguration, isolate); | |
796 {% endfilter %} | |
797 {% endfilter %} | |
798 {% endfor %} | |
799 } | |
800 | |
801 {% endif %} | |
802 {% endblock %} | |
803 | |
804 | |
805 {##############################################################################} | |
806 {% block install_conditional_methods %} | |
807 {% if conditionally_enabled_methods %} | |
808 void {{v8_class}}::installConditionallyEnabledMethods(v8::Handle<v8::Object> pro
totypeObject, v8::Isolate* isolate) | |
809 { | |
810 {# Define per-context enabled operations #} | |
811 v8::Local<v8::Signature> defaultSignature = v8::Signature::New(isolate, domT
emplate(isolate)); | |
812 ExecutionContext* context = toExecutionContext(prototypeObject->CreationCont
ext()); | |
813 ASSERT(context); | |
814 | |
815 {% for method in conditionally_enabled_methods %} | |
816 {% filter per_context_enabled(method.per_context_enabled_function) %} | |
817 {% filter exposed(method.exposed_test) %} | |
818 prototypeObject->Set(v8AtomicString(isolate, "{{method.name}}"), v8::Functio
nTemplate::New(isolate, {{cpp_class}}V8Internal::{{method.name}}MethodCallback,
v8Undefined(), defaultSignature, {{method.number_of_required_arguments}})->GetFu
nction()); | |
819 {% endfilter %} | |
820 {% endfilter %} | |
821 {% endfor %} | |
822 } | |
823 | |
824 {% endif %} | |
825 {% endblock %} | |
826 | |
827 | |
828 {##############################################################################} | |
829 {% block to_active_dom_object %} | 764 {% block to_active_dom_object %} |
830 {% if is_active_dom_object %} | 765 {% if is_active_dom_object %} |
831 ActiveDOMObject* {{v8_class}}::toActiveDOMObject(v8::Handle<v8::Object> wrapper) | 766 ActiveDOMObject* {{v8_class}}::toActiveDOMObject(v8::Handle<v8::Object> wrapper) |
832 { | 767 { |
833 return toImpl(wrapper); | 768 return toImpl(wrapper); |
834 } | 769 } |
835 | 770 |
836 {% endif %} | 771 {% endif %} |
837 {% endblock %} | 772 {% endblock %} |
838 | 773 |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
960 {% endif %} | 895 {% endif %} |
961 } | 896 } |
962 | 897 |
963 template<> | 898 template<> |
964 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c
reationContext, v8::Isolate* isolate) | 899 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c
reationContext, v8::Isolate* isolate) |
965 { | 900 { |
966 return toV8(impl, creationContext, isolate); | 901 return toV8(impl, creationContext, isolate); |
967 } | 902 } |
968 | 903 |
969 {% endblock %} | 904 {% endblock %} |
OLD | NEW |