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

Side by Side Diff: Source/core/scripts/make_names.pl

Issue 21498002: Introduce a SVGUnknownElement class for unknown SVG elements (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Add comment for SVGUnknownElement 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
OLDNEW
1 #!/usr/bin/perl -w 1 #!/usr/bin/perl -w
2 2
3 # Copyright (C) 2005, 2006, 2007, 2009 Apple Inc. All rights reserved. 3 # Copyright (C) 2005, 2006, 2007, 2009 Apple Inc. All rights reserved.
4 # Copyright (C) 2009, Julien Chaffraix <jchaffraix@webkit.org> 4 # Copyright (C) 2009, Julien Chaffraix <jchaffraix@webkit.org>
5 # Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmob ile.com/) 5 # Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmob ile.com/)
6 # Copyright (C) 2011 Ericsson AB. All rights reserved. 6 # Copyright (C) 2011 Ericsson AB. All rights reserved.
7 # 7 #
8 # Redistribution and use in source and binary forms, with or without 8 # Redistribution and use in source and binary forms, with or without
9 # modification, are permitted provided that the following conditions 9 # modification, are permitted provided that the following conditions
10 # are met: 10 # are met:
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 if (length($attrsFile)) { 108 if (length($attrsFile)) {
109 %allAttrs = %{readAttrs($attrsFile, 0)}; 109 %allAttrs = %{readAttrs($attrsFile, 0)};
110 %enabledAttrs = %{readAttrs($attrsFile, 1)}; 110 %enabledAttrs = %{readAttrs($attrsFile, 1)};
111 namesToStrings(\%allAttrs, \%allStrings); 111 namesToStrings(\%allAttrs, \%allStrings);
112 } 112 }
113 113
114 die "You must specify a namespace (e.g. SVG) for <namespace>Names.h" unless $par ameters{namespace}; 114 die "You must specify a namespace (e.g. SVG) for <namespace>Names.h" unless $par ameters{namespace};
115 die "You must specify a namespaceURI (e.g. http://www.w3.org/2000/svg)" unless $ parameters{namespaceURI}; 115 die "You must specify a namespaceURI (e.g. http://www.w3.org/2000/svg)" unless $ parameters{namespaceURI};
116 116
117 $parameters{namespacePrefix} = $parameters{namespace} unless $parameters{namespa cePrefix}; 117 $parameters{namespacePrefix} = $parameters{namespace} unless $parameters{namespa cePrefix};
118 $parameters{fallbackJSInterfaceName} = $parameters{fallbackInterfaceName} unless $parameters{fallbackJSInterfaceName};
118 119
119 my $namesBasePath = "$outputDir/$parameters{namespace}Names"; 120 my $namesBasePath = "$outputDir/$parameters{namespace}Names";
120 my $factoryBasePath = "$outputDir/$parameters{namespace}ElementFactory"; 121 my $factoryBasePath = "$outputDir/$parameters{namespace}ElementFactory";
121 my $wrapperFactoryFileName = "$parameters{namespace}ElementWrapperFactory"; 122 my $wrapperFactoryFileName = "$parameters{namespace}ElementWrapperFactory";
122 123
123 printNamesHeaderFile("$namesBasePath.h"); 124 printNamesHeaderFile("$namesBasePath.h");
124 printNamesCppFile("$namesBasePath.cpp"); 125 printNamesCppFile("$namesBasePath.cpp");
125 126
126 if ($printFactory) { 127 if ($printFactory) {
127 printFactoryCppFile("$factoryBasePath.cpp"); 128 printFactoryCppFile("$factoryBasePath.cpp");
(...skipping 24 matching lines...) Expand all
152 153
153 sub defaultParametersHash 154 sub defaultParametersHash
154 { 155 {
155 return ( 156 return (
156 'namespace' => '', 157 'namespace' => '',
157 'namespacePrefix' => '', 158 'namespacePrefix' => '',
158 'namespaceURI' => '', 159 'namespaceURI' => '',
159 'guardFactoryWith' => '', 160 'guardFactoryWith' => '',
160 'tagsNullNamespace' => 0, 161 'tagsNullNamespace' => 0,
161 'attrsNullNamespace' => 0, 162 'attrsNullNamespace' => 0,
162 'fallbackInterfaceName' => '' 163 'fallbackInterfaceName' => '',
164 'fallbackJSInterfaceName' => ''
163 ); 165 );
164 } 166 }
165 167
166 sub defaultInterfaceName 168 sub defaultInterfaceName
167 { 169 {
168 die "No namespace found" if !$parameters{namespace}; 170 die "No namespace found" if !$parameters{namespace};
169 return $parameters{namespace} . upperCaseName($_[0]) . "Element" 171 return $parameters{namespace} . upperCaseName($_[0]) . "Element"
170 } 172 }
171 173
172 ### Parsing handlers 174 ### Parsing handlers
(...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 my $JSInterfaceName = $enabledTags{$tagName}{JSInterfaceName}; 685 my $JSInterfaceName = $enabledTags{$tagName}{JSInterfaceName};
684 next if defined($tagsSeen{$JSInterfaceName}) || usesDefaultJSWrapper($ta gName); 686 next if defined($tagsSeen{$JSInterfaceName}) || usesDefaultJSWrapper($ta gName);
685 if ($enabledTags{$tagName}{conditional}) { 687 if ($enabledTags{$tagName}{conditional}) {
686 # We skip feature-define-specific #includes here since we handle the m separately. 688 # We skip feature-define-specific #includes here since we handle the m separately.
687 next; 689 next;
688 } 690 }
689 $tagsSeen{$JSInterfaceName} = 1; 691 $tagsSeen{$JSInterfaceName} = 1;
690 692
691 print F "#include \"V8${JSInterfaceName}.h\"\n"; 693 print F "#include \"V8${JSInterfaceName}.h\"\n";
692 } 694 }
693 print F "#include \"V8$parameters{fallbackInterfaceName}.h\"\n"; 695 print F "#include \"V8$parameters{fallbackJSInterfaceName}.h\"\n";
694 } 696 }
695 697
696 sub printElementIncludes 698 sub printElementIncludes
697 { 699 {
698 my $F = shift; 700 my $F = shift;
699 701
700 my %tagsSeen; 702 my %tagsSeen;
701 for my $tagName (sort keys %enabledTags) { 703 for my $tagName (sort keys %enabledTags) {
702 my $interfaceName = $enabledTags{$tagName}{interfaceName}; 704 my $interfaceName = $enabledTags{$tagName}{interfaceName};
703 next if defined($tagsSeen{$interfaceName}); 705 next if defined($tagsSeen{$interfaceName});
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
959 } 961 }
960 962
961 sub printWrapperFunctions 963 sub printWrapperFunctions
962 { 964 {
963 my $F = shift; 965 my $F = shift;
964 966
965 my %tagsSeen; 967 my %tagsSeen;
966 for my $tagName (sort keys %enabledTags) { 968 for my $tagName (sort keys %enabledTags) {
967 # Avoid defining the same wrapper method twice. 969 # Avoid defining the same wrapper method twice.
968 my $JSInterfaceName = $enabledTags{$tagName}{JSInterfaceName}; 970 my $JSInterfaceName = $enabledTags{$tagName}{JSInterfaceName};
969 next if defined($tagsSeen{$JSInterfaceName}) || (usesDefaultJSWrapper($t agName) && ($parameters{fallbackInterfaceName} eq $parameters{namespace} . "Elem ent")); 971 next if defined($tagsSeen{$JSInterfaceName}) || (usesDefaultJSWrapper($t agName) && ($parameters{fallbackJSInterfaceName} eq $parameters{namespace} . "El ement"));
970 $tagsSeen{$JSInterfaceName} = 1; 972 $tagsSeen{$JSInterfaceName} = 1;
971 973
972 my $conditional = $enabledTags{$tagName}{conditional}; 974 my $conditional = $enabledTags{$tagName}{conditional};
973 if ($conditional) { 975 if ($conditional) {
974 my $conditionalString = "ENABLE(" . join(") && ENABLE(", split(/&/, $conditional)) . ")"; 976 my $conditionalString = "ENABLE(" . join(") && ENABLE(", split(/&/, $conditional)) . ")";
975 print F "#if ${conditionalString}\n\n"; 977 print F "#if ${conditionalString}\n\n";
976 } 978 }
977 979
978 if ($enabledTags{$tagName}{wrapperOnlyIfMediaIsAvailable}) { 980 if ($enabledTags{$tagName}{wrapperOnlyIfMediaIsAvailable}) {
979 print F <<END 981 print F <<END
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
1089 v8::Handle<v8::Object> createV8$parameters{namespace}Wrapper($parameters{namespa ce}Element* element, v8::Handle<v8::Object> creationContext, v8::Isolate* isolat e) 1091 v8::Handle<v8::Object> createV8$parameters{namespace}Wrapper($parameters{namespa ce}Element* element, v8::Handle<v8::Object> creationContext, v8::Isolate* isolat e)
1090 { 1092 {
1091 typedef HashMap<WTF::StringImpl*, Create$parameters{namespace}ElementWrapper Function> FunctionMap; 1093 typedef HashMap<WTF::StringImpl*, Create$parameters{namespace}ElementWrapper Function> FunctionMap;
1092 DEFINE_STATIC_LOCAL(FunctionMap, map, ()); 1094 DEFINE_STATIC_LOCAL(FunctionMap, map, ());
1093 if (map.isEmpty()) { 1095 if (map.isEmpty()) {
1094 END 1096 END
1095 ; 1097 ;
1096 1098
1097 for my $tag (sort keys %enabledTags) { 1099 for my $tag (sort keys %enabledTags) {
1098 # Do not add the name to the map if it does not have a JS wrapper constr uctor or uses the default wrapper. 1100 # Do not add the name to the map if it does not have a JS wrapper constr uctor or uses the default wrapper.
1099 next if (usesDefaultJSWrapper($tag, \%enabledTags) && ($parameters{fallb ackInterfaceName} eq $parameters{namespace} . "Element")); 1101 next if (usesDefaultJSWrapper($tag, \%enabledTags) && ($parameters{fallb ackJSInterfaceName} eq $parameters{namespace} . "Element"));
1100 1102
1101 my $conditional = $enabledTags{$tag}{conditional}; 1103 my $conditional = $enabledTags{$tag}{conditional};
1102 if ($conditional) { 1104 if ($conditional) {
1103 my $conditionalString = "ENABLE(" . join(") && ENABLE(", split(/&/, $conditional)) . ")"; 1105 my $conditionalString = "ENABLE(" . join(") && ENABLE(", split(/&/, $conditional)) . ")";
1104 print F "#if ${conditionalString}\n"; 1106 print F "#if ${conditionalString}\n";
1105 } 1107 }
1106 1108
1107 my $ucTag = $enabledTags{$tag}{JSInterfaceName}; 1109 my $ucTag = $enabledTags{$tag}{JSInterfaceName};
1108 print F " map.set(${tag}Tag.localName().impl(), create${ucTag}Wrap per);\n"; 1110 print F " map.set(${tag}Tag.localName().impl(), create${ucTag}Wrap per);\n";
1109 1111
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
1196 1198
1197 printLicenseHeader($F); 1199 printLicenseHeader($F);
1198 1200
1199 print F "#ifndef V8$parameters{namespace}ElementWrapperFactory_h\n"; 1201 print F "#ifndef V8$parameters{namespace}ElementWrapperFactory_h\n";
1200 print F "#define V8$parameters{namespace}ElementWrapperFactory_h\n\n"; 1202 print F "#define V8$parameters{namespace}ElementWrapperFactory_h\n\n";
1201 1203
1202 print F "#if $parameters{guardFactoryWith}\n" if $parameters{guardFactoryWit h}; 1204 print F "#if $parameters{guardFactoryWith}\n" if $parameters{guardFactoryWit h};
1203 1205
1204 print F <<END 1206 print F <<END
1205 #include <V8$parameters{namespace}Element.h> 1207 #include <V8$parameters{namespace}Element.h>
1206 #include <V8$parameters{fallbackInterfaceName}.h> 1208 #include <V8$parameters{fallbackJSInterfaceName}.h>
1207 #include <v8.h> 1209 #include <v8.h>
1208 1210
1209 namespace WebCore { 1211 namespace WebCore {
1210 1212
1211 class $parameters{namespace}Element; 1213 class $parameters{namespace}Element;
1212 1214
1213 const QualifiedName* find$parameters{namespace}TagNameOfV8Type(const Wrapper TypeInfo*); 1215 const QualifiedName* find$parameters{namespace}TagNameOfV8Type(const Wrapper TypeInfo*);
1214 v8::Handle<v8::Object> createV8$parameters{namespace}Wrapper($parameters{nam espace}Element*, v8::Handle<v8::Object> creationContext, v8::Isolate*); 1216 v8::Handle<v8::Object> createV8$parameters{namespace}Wrapper($parameters{nam espace}Element*, v8::Handle<v8::Object> creationContext, v8::Isolate*);
1215 inline v8::Handle<v8::Object> createV8$parameters{namespace}DirectWrapper($p arameters{namespace}Element* element, v8::Handle<v8::Object> creationContext, v8 ::Isolate* isolate) 1217 inline v8::Handle<v8::Object> createV8$parameters{namespace}DirectWrapper($p arameters{namespace}Element* element, v8::Handle<v8::Object> creationContext, v8 ::Isolate* isolate)
1216 { 1218 {
1217 return V8$parameters{namespace}Element::createWrapper(element, creationC ontext, isolate); 1219 return V8$parameters{namespace}Element::createWrapper(element, creationC ontext, isolate);
1218 } 1220 }
1219 inline v8::Handle<v8::Object> createV8$parameters{namespace}FallbackWrapper( $parameters{fallbackInterfaceName}* element, v8::Handle<v8::Object> creationCont ext, v8::Isolate* isolate) 1221 inline v8::Handle<v8::Object> createV8$parameters{namespace}FallbackWrapper( $parameters{fallbackJSInterfaceName}* element, v8::Handle<v8::Object> creationCo ntext, v8::Isolate* isolate)
1220 { 1222 {
1221 return V8$parameters{fallbackInterfaceName}::createWrapper(element, crea tionContext, isolate); 1223 return V8$parameters{fallbackJSInterfaceName}::createWrapper(element, cr eationContext, isolate);
1222 } 1224 }
1223 } 1225 }
1224 END 1226 END
1225 ; 1227 ;
1226 print F "#endif // $parameters{guardFactoryWith}\n\n" if $parameters{guardFa ctoryWith}; 1228 print F "#endif // $parameters{guardFactoryWith}\n\n" if $parameters{guardFa ctoryWith};
1227 1229
1228 print F "#endif // V8$parameters{namespace}ElementWrapperFactory_h\n"; 1230 print F "#endif // V8$parameters{namespace}ElementWrapperFactory_h\n";
1229 1231
1230 close F; 1232 close F;
1231 } 1233 }
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1276 1278
1277 while ( my ($name, $identifier) = each %parameters ) { 1279 while ( my ($name, $identifier) = each %parameters ) {
1278 print F " new ((void*)&$name) AtomicString(${name}Impl);\n"; 1280 print F " new ((void*)&$name) AtomicString(${name}Impl);\n";
1279 } 1281 }
1280 1282
1281 print F "}\n}\n}\n"; 1283 print F "}\n}\n}\n";
1282 close F; 1284 close F;
1283 exit 0; 1285 exit 0;
1284 } 1286 }
1285 1287
OLDNEW
« no previous file with comments | « Source/core/dom/CustomElementRegistrationContext.cpp ('k') | Source/core/svg/SVGAltGlyphDefElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698