| OLD | NEW |
| 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 21 matching lines...) Expand all Loading... |
| 32 use strict; | 32 use strict; |
| 33 | 33 |
| 34 use StaticString; | 34 use StaticString; |
| 35 use Config; | 35 use Config; |
| 36 use Getopt::Long; | 36 use Getopt::Long; |
| 37 use File::Path; | 37 use File::Path; |
| 38 use File::Spec; | 38 use File::Spec; |
| 39 use IO::File; | 39 use IO::File; |
| 40 use InFilesParser; | 40 use InFilesParser; |
| 41 | 41 |
| 42 use FindBin; # locate this script |
| 43 use lib "$FindBin::Bin/../../../../../third_party/WebKit/Source/bindings/scripts
"; # use the binding generator directory. |
| 44 #use lib "$FindBin::Bin/../bindings/scripts"; # use the binding generator direc
tory. |
| 45 use idltopath; |
| 46 |
| 42 sub readTags($$); | 47 sub readTags($$); |
| 43 sub readAttrs($$); | 48 sub readAttrs($$); |
| 44 | 49 |
| 45 my $printFactory = 0; | 50 my $printFactory = 0; |
| 46 my $printWrapperFactory = 0; | 51 my $printWrapperFactory = 0; |
| 47 my $printWrapperFactoryV8 = 0; | 52 my $printWrapperFactoryV8 = 0; |
| 48 my $fontNamesIn = ""; | 53 my $fontNamesIn = ""; |
| 49 my $tagsFile = ""; | 54 my $tagsFile = ""; |
| 50 my $attrsFile = ""; | 55 my $attrsFile = ""; |
| 51 my $outputDir = "."; | 56 my $outputDir = "."; |
| (...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 619 "; | 624 "; |
| 620 } | 625 } |
| 621 | 626 |
| 622 sub printNamesHeaderFile | 627 sub printNamesHeaderFile |
| 623 { | 628 { |
| 624 my ($headerPath) = shift; | 629 my ($headerPath) = shift; |
| 625 my $F; | 630 my $F; |
| 626 open F, ">$headerPath"; | 631 open F, ">$headerPath"; |
| 627 | 632 |
| 628 printLicenseHeader($F); | 633 printLicenseHeader($F); |
| 629 printHeaderHead($F, "DOM", $parameters{namespace}, "#include \"QualifiedName
.h\""); | 634 printHeaderHead($F, "DOM", $parameters{namespace}, "#include \"core/dom/Qual
ifiedName.h\""); |
| 630 | 635 |
| 631 my $lowerNamespace = lc($parameters{namespacePrefix}); | 636 my $lowerNamespace = lc($parameters{namespacePrefix}); |
| 632 print F "// Namespace\n"; | 637 print F "// Namespace\n"; |
| 633 print F "extern const WTF::AtomicString ${lowerNamespace}NamespaceURI;\n\n"; | 638 print F "extern const WTF::AtomicString ${lowerNamespace}NamespaceURI;\n\n"; |
| 634 | 639 |
| 635 if (keys %allTags) { | 640 if (keys %allTags) { |
| 636 print F "// Tags\n"; | 641 print F "// Tags\n"; |
| 637 printMacros($F, "extern const WebCore::QualifiedName", "Tag", \%allTags)
; | 642 printMacros($F, "extern const WebCore::QualifiedName", "Tag", \%allTags)
; |
| 638 } | 643 } |
| 639 | 644 |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 733 my %tagsSeen; | 738 my %tagsSeen; |
| 734 for my $tagName (sort keys %enabledTags) { | 739 for my $tagName (sort keys %enabledTags) { |
| 735 my $JSInterfaceName = $enabledTags{$tagName}{JSInterfaceName}; | 740 my $JSInterfaceName = $enabledTags{$tagName}{JSInterfaceName}; |
| 736 next if defined($tagsSeen{$JSInterfaceName}) || usesDefaultJSWrapper($ta
gName); | 741 next if defined($tagsSeen{$JSInterfaceName}) || usesDefaultJSWrapper($ta
gName); |
| 737 if ($enabledTags{$tagName}{conditional}) { | 742 if ($enabledTags{$tagName}{conditional}) { |
| 738 # We skip feature-define-specific #includes here since we handle the
m separately. | 743 # We skip feature-define-specific #includes here since we handle the
m separately. |
| 739 next; | 744 next; |
| 740 } | 745 } |
| 741 $tagsSeen{$JSInterfaceName} = 1; | 746 $tagsSeen{$JSInterfaceName} = 1; |
| 742 | 747 |
| 743 print F "#include \"${wrapperFactoryType}${JSInterfaceName}.h\"\n"; | 748 # V8HTMLElementWrapperFactory.cpp that uses this code is generated into
"webkit" and for instance V8HTMLAnchorElement.h is in "webkit/bindings" |
| 749 print F "#include \"bindings/${wrapperFactoryType}${JSInterfaceName}.h\"
\n"; |
| 744 } | 750 } |
| 745 print F "#include \"${wrapperFactoryType}$parameters{fallbackInterfaceName}.
h\"\n"; | 751 print F "#include \"bindings/${wrapperFactoryType}$parameters{fallbackInterf
aceName}.h\"\n"; |
| 746 } | 752 } |
| 747 | 753 |
| 748 sub printElementIncludes | 754 sub printElementIncludes |
| 749 { | 755 { |
| 750 my $F = shift; | 756 my $F = shift; |
| 751 | 757 |
| 752 my %tagsSeen; | 758 my %tagsSeen; |
| 753 for my $tagName (sort keys %enabledTags) { | 759 for my $tagName (sort keys %enabledTags) { |
| 754 my $interfaceName = $enabledTags{$tagName}{interfaceName}; | 760 my $interfaceName = $enabledTags{$tagName}{interfaceName}; |
| 755 next if defined($tagsSeen{$interfaceName}); | 761 next if defined($tagsSeen{$interfaceName}); |
| 756 if ($enabledTags{$tagName}{conditional}) { | 762 if ($enabledTags{$tagName}{conditional}) { |
| 757 # We skip feature-define-specific #includes here since we handle the
m separately. | 763 # We skip feature-define-specific #includes here since we handle the
m separately. |
| 758 next; | 764 next; |
| 759 } | 765 } |
| 760 $tagsSeen{$interfaceName} = 1; | 766 $tagsSeen{$interfaceName} = 1; |
| 761 | 767 |
| 762 print F "#include \"${interfaceName}.h\"\n"; | 768 my $includepath = idl_to_path($interfaceName); |
| 769 print F "#include \"$includepath${interfaceName}.h\"\n"; |
| 763 } | 770 } |
| 764 print F "#include \"$parameters{fallbackInterfaceName}.h\"\n"; | 771 print F "#include \"$parameters{fallbackInterfaceName}.h\"\n"; |
| 765 } | 772 } |
| 766 | 773 |
| 767 sub printConditionalElementIncludes | 774 sub printConditionalElementIncludes |
| 768 { | 775 { |
| 769 my ($F, $wrapperFactoryType) = @_; | 776 my ($F, $wrapperFactoryType) = @_; |
| 770 | 777 |
| 771 my %conditionals; | 778 my %conditionals; |
| 772 my %unconditionalElementIncludes; | 779 my %unconditionalElementIncludes; |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 846 ; | 853 ; |
| 847 | 854 |
| 848 printElementIncludes($F); | 855 printElementIncludes($F); |
| 849 | 856 |
| 850 print F "\n#include <wtf/HashMap.h>\n"; | 857 print F "\n#include <wtf/HashMap.h>\n"; |
| 851 | 858 |
| 852 printConditionalElementIncludes($F); | 859 printConditionalElementIncludes($F); |
| 853 | 860 |
| 854 print F <<END | 861 print F <<END |
| 855 | 862 |
| 856 #include "ContextFeatures.h" | 863 #include "core/dom/ContextFeatures.h" |
| 857 #include "RuntimeEnabledFeatures.h" | 864 #include "core/page/RuntimeEnabledFeatures.h" |
| 858 | 865 |
| 859 #if ENABLE(CUSTOM_ELEMENTS) | 866 #if ENABLE(CUSTOM_ELEMENTS) |
| 860 #include "CustomElementConstructor.h" | 867 #include "CustomElementConstructor.h" |
| 861 #include "CustomElementRegistry.h" | 868 #include "CustomElementRegistry.h" |
| 862 #endif | 869 #endif |
| 863 | 870 |
| 864 #if ENABLE(VIDEO) | 871 #if ENABLE(VIDEO) |
| 865 #include "Document.h" | 872 #include "core/dom/Document.h" |
| 866 #include "Settings.h" | 873 #include "core/page/Settings.h" |
| 867 #endif | 874 #endif |
| 868 | 875 |
| 869 namespace WebCore { | 876 namespace WebCore { |
| 870 | 877 |
| 871 using namespace $parameters{namespace}Names; | 878 using namespace $parameters{namespace}Names; |
| 872 | 879 |
| 873 END | 880 END |
| 874 ; | 881 ; |
| 875 | 882 |
| 876 print F "typedef PassRefPtr<$parameters{namespace}Element> (*ConstructorFunction
)(const QualifiedName&, Document*"; | 883 print F "typedef PassRefPtr<$parameters{namespace}Element> (*ConstructorFunction
)(const QualifiedName&, Document*"; |
| (...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1179 print F "\n#include \"$parameters{namespace}Names.h\"\n\n"; | 1186 print F "\n#include \"$parameters{namespace}Names.h\"\n\n"; |
| 1180 | 1187 |
| 1181 printElementIncludes($F); | 1188 printElementIncludes($F); |
| 1182 | 1189 |
| 1183 print F "\n#include <wtf/StdLibExtras.h>\n"; | 1190 print F "\n#include <wtf/StdLibExtras.h>\n"; |
| 1184 | 1191 |
| 1185 printConditionalElementIncludes($F, $wrapperFactoryType); | 1192 printConditionalElementIncludes($F, $wrapperFactoryType); |
| 1186 | 1193 |
| 1187 print F <<END | 1194 print F <<END |
| 1188 | 1195 |
| 1189 #include "ContextFeatures.h" | 1196 #include "core/dom/ContextFeatures.h" |
| 1190 #include "RuntimeEnabledFeatures.h" | 1197 #include "core/page/RuntimeEnabledFeatures.h" |
| 1191 | 1198 |
| 1192 #if ENABLE(VIDEO) | 1199 #if ENABLE(VIDEO) |
| 1193 #include "Document.h" | 1200 #include "core/dom/Document.h" |
| 1194 #include "Settings.h" | 1201 #include "core/page/Settings.h" |
| 1195 #endif | 1202 #endif |
| 1196 | 1203 |
| 1197 END | 1204 END |
| 1198 ; | 1205 ; |
| 1199 | 1206 |
| 1200 if ($wrapperFactoryType eq "V8") { | 1207 if ($wrapperFactoryType eq "V8") { |
| 1201 print F <<END | 1208 print F <<END |
| 1202 #include "V8$parameters{namespace}Element.h" | 1209 #include "V8$parameters{namespace}Element.h" |
| 1203 | 1210 |
| 1204 #if ENABLE(CUSTOM_ELEMENTS) | 1211 #if ENABLE(CUSTOM_ELEMENTS) |
| 1205 #include "CustomElementHelpers.h" | 1212 #include "bindings/v8/CustomElementHelpers.h" |
| 1206 #endif | 1213 #endif |
| 1207 | 1214 |
| 1208 #include <v8.h> | 1215 #include <v8.h> |
| 1209 END | 1216 END |
| 1210 ; | 1217 ; |
| 1211 } | 1218 } |
| 1212 | 1219 |
| 1213 print F <<END | 1220 print F <<END |
| 1214 | 1221 |
| 1215 namespace WebCore { | 1222 namespace WebCore { |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1384 | 1391 |
| 1385 printLicenseHeader($F); | 1392 printLicenseHeader($F); |
| 1386 | 1393 |
| 1387 print F "#ifndef $wrapperFactoryType$parameters{namespace}ElementWrapperFact
ory_h\n"; | 1394 print F "#ifndef $wrapperFactoryType$parameters{namespace}ElementWrapperFact
ory_h\n"; |
| 1388 print F "#define $wrapperFactoryType$parameters{namespace}ElementWrapperFact
ory_h\n\n"; | 1395 print F "#define $wrapperFactoryType$parameters{namespace}ElementWrapperFact
ory_h\n\n"; |
| 1389 | 1396 |
| 1390 print F "#if $parameters{guardFactoryWith}\n" if $parameters{guardFactoryWit
h}; | 1397 print F "#if $parameters{guardFactoryWith}\n" if $parameters{guardFactoryWit
h}; |
| 1391 | 1398 |
| 1392 if ($wrapperFactoryType eq "V8") { | 1399 if ($wrapperFactoryType eq "V8") { |
| 1393 print F <<END | 1400 print F <<END |
| 1394 #include <V8$parameters{namespace}Element.h> | 1401 #include <bindings/V8$parameters{namespace}Element.h> |
| 1395 #include <V8$parameters{fallbackInterfaceName}.h> | 1402 #include <bindings/V8$parameters{fallbackInterfaceName}.h> |
| 1396 #include <v8.h> | 1403 #include <v8.h> |
| 1397 | 1404 |
| 1398 namespace WebCore { | 1405 namespace WebCore { |
| 1399 | 1406 |
| 1400 class $parameters{namespace}Element; | 1407 class $parameters{namespace}Element; |
| 1401 | 1408 |
| 1402 const QualifiedName* find$parameters{namespace}TagNameOfV8Type(const Wrapper
TypeInfo*); | 1409 const QualifiedName* find$parameters{namespace}TagNameOfV8Type(const Wrapper
TypeInfo*); |
| 1403 v8::Handle<v8::Object> createV8$parameters{namespace}Wrapper($parameters{nam
espace}Element*, v8::Handle<v8::Object> creationContext, v8::Isolate*); | 1410 v8::Handle<v8::Object> createV8$parameters{namespace}Wrapper($parameters{nam
espace}Element*, v8::Handle<v8::Object> creationContext, v8::Isolate*); |
| 1404 inline v8::Handle<v8::Object> createV8$parameters{namespace}DirectWrapper($p
arameters{namespace}Element* element, v8::Handle<v8::Object> creationContext, v8
::Isolate* isolate) | 1411 inline v8::Handle<v8::Object> createV8$parameters{namespace}DirectWrapper($p
arameters{namespace}Element* element, v8::Handle<v8::Object> creationContext, v8
::Isolate* isolate) |
| 1405 { | 1412 { |
| 1406 return V8$parameters{namespace}Element::createWrapper(element, creationC
ontext, isolate); | 1413 return V8$parameters{namespace}Element::createWrapper(element, creationC
ontext, isolate); |
| 1407 } | 1414 } |
| 1408 inline v8::Handle<v8::Object> createV8$parameters{namespace}FallbackWrapper(
$parameters{fallbackInterfaceName}* element, v8::Handle<v8::Object> creationCont
ext, v8::Isolate* isolate) | 1415 inline v8::Handle<v8::Object> createV8$parameters{namespace}FallbackWrapper(
$parameters{fallbackInterfaceName}* element, v8::Handle<v8::Object> creationCont
ext, v8::Isolate* isolate) |
| 1409 { | 1416 { |
| 1410 return V8$parameters{fallbackInterfaceName}::createWrapper(element, crea
tionContext, isolate); | 1417 return V8$parameters{fallbackInterfaceName}::createWrapper(element, crea
tionContext, isolate); |
| 1411 } | 1418 } |
| 1412 } | 1419 } |
| 1413 END | 1420 END |
| 1414 ; | 1421 ; |
| 1415 } | 1422 } |
| 1416 | 1423 |
| 1417 print F "#endif // $parameters{guardFactoryWith}\n\n" if $parameters{guardFa
ctoryWith}; | 1424 print F "#endif // $parameters{guardFactoryWith}\n\n" if $parameters{guardFa
ctoryWith}; |
| 1418 | 1425 |
| 1419 print F "#endif // $wrapperFactoryType$parameters{namespace}ElementWrapperFa
ctory_h\n"; | 1426 print F "#endif // $wrapperFactoryType$parameters{namespace}ElementWrapperFa
ctory_h\n"; |
| 1420 | 1427 |
| 1421 close F; | 1428 close F; |
| 1422 } | 1429 } |
| OLD | NEW |