Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(187)

Side by Side Diff: Source/bindings/scripts/deprecated_code_generator_v8.pm

Issue 22581002: Use EventHandler type instead of EventListener for event handler attributes (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | Source/bindings/tests/idls/TestObject.idl » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (C) 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org> 1 # Copyright (C) 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
2 # Copyright (C) 2006 Anders Carlsson <andersca@mac.com> 2 # Copyright (C) 2006 Anders Carlsson <andersca@mac.com>
3 # Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com> 3 # Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
4 # Copyright (C) 2006 Alexey Proskuryakov <ap@webkit.org> 4 # Copyright (C) 2006 Alexey Proskuryakov <ap@webkit.org>
5 # Copyright (C) 2006 Apple Computer, Inc. 5 # Copyright (C) 2006 Apple Computer, Inc.
6 # Copyright (C) 2007, 2008, 2009, 2012 Google Inc. 6 # Copyright (C) 2007, 2008, 2009, 2012 Google Inc.
7 # Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> 7 # Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
8 # Copyright (C) Research In Motion Limited 2010. All rights reserved. 8 # Copyright (C) Research In Motion Limited 2010. All rights reserved.
9 # Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) 9 # Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
10 # Copyright (C) 2012 Ericsson AB. All rights reserved. 10 # Copyright (C) 2012 Ericsson AB. All rights reserved.
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 "unsigned long" => 1, 160 "unsigned long" => 1,
161 "unsigned long long" => 1, 161 "unsigned long long" => 1,
162 "float" => 1, 162 "float" => 1,
163 "double" => 1, 163 "double" => 1,
164 ); 164 );
165 165
166 my %nonWrapperTypes = ("CompareHow" => 1, 166 my %nonWrapperTypes = ("CompareHow" => 1,
167 "DOMTimeStamp" => 1, 167 "DOMTimeStamp" => 1,
168 "Dictionary" => 1, 168 "Dictionary" => 1,
169 "EventListener" => 1, 169 "EventListener" => 1,
170 "EventHandler" => 1,
170 "MediaQueryListListener" => 1, 171 "MediaQueryListListener" => 1,
171 "NodeFilter" => 1, 172 "NodeFilter" => 1,
172 "SerializedScriptValue" => 1, 173 "SerializedScriptValue" => 1,
173 "any" => 1, 174 "any" => 1,
174 ); 175 );
175 176
176 my %typedArrayHash = ("ArrayBuffer" => [], 177 my %typedArrayHash = ("ArrayBuffer" => [],
177 "ArrayBufferView" => [], 178 "ArrayBufferView" => [],
178 "Uint8Array" => ["unsigned char", "v8::kExternalUnsignedBy teArray"], 179 "Uint8Array" => ["unsigned char", "v8::kExternalUnsignedBy teArray"],
179 "Uint8ClampedArray" => ["unsigned char", "v8::kExternalPix elArray"], 180 "Uint8ClampedArray" => ["unsigned char", "v8::kExternalPix elArray"],
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 return 0; 414 return 0;
414 } 415 }
415 416
416 sub AddIncludesForType 417 sub AddIncludesForType
417 { 418 {
418 my $type = shift; 419 my $type = shift;
419 420
420 return if SkipIncludeHeader($type); 421 return if SkipIncludeHeader($type);
421 422
422 # Default includes 423 # Default includes
423 if ($type eq "EventListener") { 424 if ($type eq "EventListener" or $type eq "EventHandler") {
424 AddToImplIncludes("core/dom/EventListener.h"); 425 AddToImplIncludes("core/dom/EventListener.h");
425 } elsif ($type eq "SerializedScriptValue") { 426 } elsif ($type eq "SerializedScriptValue") {
426 AddToImplIncludes("bindings/v8/SerializedScriptValue.h"); 427 AddToImplIncludes("bindings/v8/SerializedScriptValue.h");
427 } elsif ($type eq "any" || IsCallbackFunctionType($type)) { 428 } elsif ($type eq "any" || IsCallbackFunctionType($type)) {
428 AddToImplIncludes("bindings/v8/ScriptValue.h"); 429 AddToImplIncludes("bindings/v8/ScriptValue.h");
429 } elsif ($type eq "ArrayBuffer") { 430 } elsif ($type eq "ArrayBuffer") {
430 AddToImplIncludes("bindings/v8/custom/V8ArrayBufferCustom.h"); 431 AddToImplIncludes("bindings/v8/custom/V8ArrayBufferCustom.h");
431 } else { 432 } else {
432 AddToImplIncludes("V8${type}.h"); 433 AddToImplIncludes("V8${type}.h");
433 } 434 }
(...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after
905 return toV8(impl.get(), creationContext, isolate); 906 return toV8(impl.get(), creationContext, isolate);
906 } 907 }
907 908
908 END 909 END
909 910
910 if (IsConstructorTemplate($interface, "Event")) { 911 if (IsConstructorTemplate($interface, "Event")) {
911 $header{nameSpaceWebCore}->add("bool fill${implClassName}Init(${implClas sName}Init&, const Dictionary&);\n\n"); 912 $header{nameSpaceWebCore}->add("bool fill${implClassName}Init(${implClas sName}Init&, const Dictionary&);\n\n");
912 } 913 }
913 } 914 }
914 915
915 sub HasEventListenerAttribute 916 sub HasEventHandlerAttribute
916 { 917 {
917 my $interface = shift; 918 my $interface = shift;
918 919
919 foreach my $attribute (@{$interface->attributes}) { 920 foreach my $attribute (@{$interface->attributes}) {
920 return 1 if $attribute->type eq "EventListener"; 921 return 1 if $attribute->type eq "EventHandler";
921 } 922 }
922 923
923 return 0; 924 return 0;
924 } 925 }
925 926
926 sub GetInternalFields 927 sub GetInternalFields
927 { 928 {
928 my $interface = shift; 929 my $interface = shift;
929 930
930 my @customInternalFields = (); 931 my @customInternalFields = ();
931 # Event listeners on DOM nodes are explicitly supported in the GC controller . 932 # Event listeners on DOM nodes are explicitly supported in the GC controller .
932 if (!InheritsInterface($interface, "Node") && 933 if (!InheritsInterface($interface, "Node") &&
933 (InheritsInterface($interface, "EventTarget") || HasEventListenerAttribu te($interface))) { 934 (InheritsInterface($interface, "EventTarget") || HasEventHandlerAttribut e($interface))) {
934 push(@customInternalFields, "eventListenerCacheIndex"); 935 push(@customInternalFields, "eventListenerCacheIndex");
935 } 936 }
936 return @customInternalFields; 937 return @customInternalFields;
937 } 938 }
938 939
939 sub GenerateHeaderCustomInternalFieldIndices 940 sub GenerateHeaderCustomInternalFieldIndices
940 { 941 {
941 my $interface = shift; 942 my $interface = shift;
942 my @customInternalFields = GetInternalFields($interface); 943 my @customInternalFields = GetInternalFields($interface);
943 my $customFieldCounter = 0; 944 my $customFieldCounter = 0;
(...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after
1427 $functionName = "${implClassName}::${functionName}"; 1428 $functionName = "${implClassName}::${functionName}";
1428 } else { 1429 } else {
1429 $functionName = "imp->${functionName}"; 1430 $functionName = "imp->${functionName}";
1430 } 1431 }
1431 my ($arg, $subCode) = GenerateCallWith($attribute->extendedAttributes->{"Cal lWith"}, " ", 0); 1432 my ($arg, $subCode) = GenerateCallWith($attribute->extendedAttributes->{"Cal lWith"}, " ", 0);
1432 $code .= $subCode; 1433 $code .= $subCode;
1433 unshift(@arguments, @$arg); 1434 unshift(@arguments, @$arg);
1434 $getterString = "${functionName}(" . join(", ", @arguments) . ")"; 1435 $getterString = "${functionName}(" . join(", ", @arguments) . ")";
1435 1436
1436 my $expression; 1437 my $expression;
1437 if ($attribute->type eq "EventListener" && $interface->name eq "Window") { 1438 if ($attribute->type eq "EventHandler" && $interface->name eq "Window") {
1438 $code .= " if (!imp->document())\n"; 1439 $code .= " if (!imp->document())\n";
1439 $code .= " return;\n"; 1440 $code .= " return;\n";
1440 } 1441 }
1441 1442
1442 if ($useExceptions || $isNullable) { 1443 if ($useExceptions || $isNullable) {
1443 if ($nativeType =~ /^V8StringResource/) { 1444 if ($nativeType =~ /^V8StringResource/) {
1444 $code .= " " . ConvertToV8StringResource($attribute, $nativeType, "v", $getterString) . ";\n"; 1445 $code .= " " . ConvertToV8StringResource($attribute, $nativeType, "v", $getterString) . ";\n";
1445 } else { 1446 } else {
1446 $code .= " $nativeType v = $getterString;\n"; 1447 $code .= " $nativeType v = $getterString;\n";
1447 } 1448 }
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
1561 $code .= " return;\n"; 1562 $code .= " return;\n";
1562 } elsif ($attribute->type eq "SerializedScriptValue" && $attrExt->{"CachedAt tribute"}) { 1563 } elsif ($attribute->type eq "SerializedScriptValue" && $attrExt->{"CachedAt tribute"}) {
1563 my $getterFunc = ToMethodName($attribute->name); 1564 my $getterFunc = ToMethodName($attribute->name);
1564 $code .= <<END; 1565 $code .= <<END;
1565 RefPtr<SerializedScriptValue> serialized = imp->${getterFunc}(); 1566 RefPtr<SerializedScriptValue> serialized = imp->${getterFunc}();
1566 value = serialized ? serialized->deserialize() : v8::Handle<v8::Value>(v8::N ull(info.GetIsolate())); 1567 value = serialized ? serialized->deserialize() : v8::Handle<v8::Value>(v8::N ull(info.GetIsolate()));
1567 info.Holder()->SetHiddenValue(propertyName, value); 1568 info.Holder()->SetHiddenValue(propertyName, value);
1568 v8SetReturnValue(info, value); 1569 v8SetReturnValue(info, value);
1569 return; 1570 return;
1570 END 1571 END
1571 } elsif ($attribute->type eq "EventListener") { 1572 } elsif ($attribute->type eq "EventHandler") {
1572 AddToImplIncludes("bindings/v8/V8AbstractEventListener.h"); 1573 AddToImplIncludes("bindings/v8/V8AbstractEventListener.h");
1573 my $getterFunc = ToMethodName($attribute->name); 1574 my $getterFunc = ToMethodName($attribute->name);
1574 # FIXME: Pass the main world ID for main-world-only getters. 1575 # FIXME: Pass the main world ID for main-world-only getters.
1575 $code .= " EventListener* listener = imp->${getterFunc}(isolatedWorld ForIsolate(info.GetIsolate()));\n"; 1576 $code .= " EventListener* listener = imp->${getterFunc}(isolatedWorld ForIsolate(info.GetIsolate()));\n";
1576 $code .= " v8SetReturnValue(info, listener ? v8::Handle<v8::Value>(V8 AbstractEventListener::cast(listener)->getListenerObject(imp->scriptExecutionCon text())) : v8::Handle<v8::Value>(v8::Null(info.GetIsolate())));\n"; 1577 $code .= " v8SetReturnValue(info, listener ? v8::Handle<v8::Value>(V8 AbstractEventListener::cast(listener)->getListenerObject(imp->scriptExecutionCon text())) : v8::Handle<v8::Value>(v8::Null(info.GetIsolate())));\n";
1577 $code .= " return;\n"; 1578 $code .= " return;\n";
1578 } else { 1579 } else {
1579 my $nativeValue = NativeToJSValue($attribute->type, $attribute->extended Attributes, $expression, " ", "", "info.Holder()", "info.GetIsolate()", "info ", "imp", $forMainWorldSuffix, "return"); 1580 my $nativeValue = NativeToJSValue($attribute->type, $attribute->extended Attributes, $expression, " ", "", "info.Holder()", "info.GetIsolate()", "info ", "imp", $forMainWorldSuffix, "return");
1580 $code .= "${nativeValue}\n"; 1581 $code .= "${nativeValue}\n";
1581 $code .= " return;\n"; 1582 $code .= " return;\n";
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
1795 } 1796 }
1796 1797
1797 if (!$attribute->isStatic) { 1798 if (!$attribute->isStatic) {
1798 $code .= <<END; 1799 $code .= <<END;
1799 ${implClassName}* imp = ${v8ClassName}::toNative(info.Holder()); 1800 ${implClassName}* imp = ${v8ClassName}::toNative(info.Holder());
1800 END 1801 END
1801 } 1802 }
1802 } 1803 }
1803 1804
1804 my $nativeType = GetNativeType($attribute->type, $attribute->extendedAttribu tes, "parameter"); 1805 my $nativeType = GetNativeType($attribute->type, $attribute->extendedAttribu tes, "parameter");
1805 if ($attribute->type eq "EventListener") { 1806 if ($attribute->type eq "EventHandler") {
1806 if ($interface->name eq "Window") { 1807 if ($interface->name eq "Window") {
1807 $code .= " if (!imp->document())\n"; 1808 $code .= " if (!imp->document())\n";
1808 $code .= " return;\n"; 1809 $code .= " return;\n";
1809 } 1810 }
1810 } else { 1811 } else {
1811 $code .= JSValueToNativeStatement($attribute->type, $attribute->extended Attributes, "value", "v", " ", "info.GetIsolate()"); 1812 $code .= JSValueToNativeStatement($attribute->type, $attribute->extended Attributes, "value", "v", " ", "info.GetIsolate()");
1812 } 1813 }
1813 1814
1814 if (IsEnumType($attrType)) { 1815 if (IsEnumType($attrType)) {
1815 # setter ignores invalid enumeration values 1816 # setter ignores invalid enumeration values
(...skipping 18 matching lines...) Expand all
1834 1835
1835 $code .= GenerateCustomElementInvocationScopeIfNeeded($attribute->extendedAt tributes); 1836 $code .= GenerateCustomElementInvocationScopeIfNeeded($attribute->extendedAt tributes);
1836 1837
1837 my $useExceptions = 1 if $attribute->extendedAttributes->{"SetterRaisesExcep tion"} || $attribute->extendedAttributes->{"RaisesException"}; 1838 my $useExceptions = 1 if $attribute->extendedAttributes->{"SetterRaisesExcep tion"} || $attribute->extendedAttributes->{"RaisesException"};
1838 1839
1839 if ($useExceptions) { 1840 if ($useExceptions) {
1840 AddToImplIncludes("bindings/v8/ExceptionState.h"); 1841 AddToImplIncludes("bindings/v8/ExceptionState.h");
1841 $code .= " ExceptionState es(info.GetIsolate());\n"; 1842 $code .= " ExceptionState es(info.GetIsolate());\n";
1842 } 1843 }
1843 1844
1844 if ($attribute->type eq "EventListener") { 1845 if ($attribute->type eq "EventHandler") {
1845 my $implSetterFunctionName = FirstLetterToUpperCase($attrName); 1846 my $implSetterFunctionName = FirstLetterToUpperCase($attrName);
1846 AddToImplIncludes("bindings/v8/V8AbstractEventListener.h"); 1847 AddToImplIncludes("bindings/v8/V8AbstractEventListener.h");
1847 if (!InheritsInterface($interface, "Node")) { 1848 if (!InheritsInterface($interface, "Node")) {
1848 my $attrImplName = GetImplName($attribute); 1849 my $attrImplName = GetImplName($attribute);
1849 $code .= " transferHiddenDependency(info.Holder(), imp->${attrImp lName}(isolatedWorldForIsolate(info.GetIsolate())), value, ${v8ClassName}::event ListenerCacheIndex, info.GetIsolate());\n"; 1850 $code .= " transferHiddenDependency(info.Holder(), imp->${attrImp lName}(isolatedWorldForIsolate(info.GetIsolate())), value, ${v8ClassName}::event ListenerCacheIndex, info.GetIsolate());\n";
1850 } 1851 }
1851 AddToImplIncludes("bindings/v8/V8EventListenerList.h"); 1852 AddToImplIncludes("bindings/v8/V8EventListenerList.h");
1852 if (($interfaceName eq "Window" or $interfaceName eq "WorkerGlobalScope" ) and $attribute->name eq "onerror") { 1853 if (($interfaceName eq "Window" or $interfaceName eq "WorkerGlobalScope" ) and $attribute->name eq "onerror") {
1853 AddToImplIncludes("bindings/v8/V8ErrorHandler.h"); 1854 AddToImplIncludes("bindings/v8/V8ErrorHandler.h");
1854 $code .= " imp->set$implSetterFunctionName(V8EventListenerList::f indOrCreateWrapper<V8ErrorHandler>(value, true), isolatedWorldForIsolate(info.Ge tIsolate()));\n"; 1855 $code .= " imp->set$implSetterFunctionName(V8EventListenerList::f indOrCreateWrapper<V8ErrorHandler>(value, true), isolatedWorldForIsolate(info.Ge tIsolate()));\n";
(...skipping 2059 matching lines...) Expand 10 before | Expand all | Expand 10 after
3914 my $attrExt = $attribute->extendedAttributes; 3915 my $attrExt = $attribute->extendedAttributes;
3915 3916
3916 # Generate special code for the constructor attributes. 3917 # Generate special code for the constructor attributes.
3917 if ($attrType =~ /Constructor$/) { 3918 if ($attrType =~ /Constructor$/) {
3918 if (!HasCustomGetter($attrExt)) { 3919 if (!HasCustomGetter($attrExt)) {
3919 $hasConstructors = 1; 3920 $hasConstructors = 1;
3920 } 3921 }
3921 next; 3922 next;
3922 } 3923 }
3923 3924
3924 if ($attrType eq "EventListener" && $interfaceName eq "Window") { 3925 if ($attrType eq "EventHandler" && $interfaceName eq "Window") {
3925 $attrExt->{"OnProto"} = 1; 3926 $attrExt->{"OnProto"} = 1;
3926 } 3927 }
3927 3928
3928 if ($attrType eq "SerializedScriptValue") { 3929 if ($attrType eq "SerializedScriptValue") {
3929 AddToImplIncludes("bindings/v8/SerializedScriptValue.h"); 3930 AddToImplIncludes("bindings/v8/SerializedScriptValue.h");
3930 } 3931 }
3931 3932
3932 GenerateNormalAttrGetter($attribute, $interface, ""); 3933 GenerateNormalAttrGetter($attribute, $interface, "");
3933 GenerateNormalAttrGetterCallback($attribute, $interface, ""); 3934 GenerateNormalAttrGetterCallback($attribute, $interface, "");
3934 if ($attrExt->{"PerWorldBindings"}) { 3935 if ($attrExt->{"PerWorldBindings"}) {
(...skipping 2085 matching lines...) Expand 10 before | Expand all | Expand 10 after
6020 if ($currentInterface->extendedAttributes->{$extendedAttribute}) { 6021 if ($currentInterface->extendedAttributes->{$extendedAttribute}) {
6021 $found = 1; 6022 $found = 1;
6022 } 6023 }
6023 return 1 if $found; 6024 return 1 if $found;
6024 }, 0); 6025 }, 0);
6025 6026
6026 return $found; 6027 return $found;
6027 } 6028 }
6028 6029
6029 1; 6030 1;
OLDNEW
« no previous file with comments | « no previous file | Source/bindings/tests/idls/TestObject.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698