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

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

Issue 14776002: Create wrappers for unresolved Custom Elements at the correct type (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 7 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
« Source/core/dom/Document.cpp ('K') | « Source/core/dom/Document.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 879 matching lines...) Expand 10 before | Expand all | Expand 10 after
890 890
891 891
892 print F "\nPassRefPtr<$parameters{namespace}Element> $parameters{namespace}Eleme ntFactory::create$parameters{namespace}Element(const QualifiedName& qName, Docum ent* document"; 892 print F "\nPassRefPtr<$parameters{namespace}Element> $parameters{namespace}Eleme ntFactory::create$parameters{namespace}Element(const QualifiedName& qName, Docum ent* document";
893 print F ", HTMLFormElement* formElement" if $parameters{namespace} eq "HTML"; 893 print F ", HTMLFormElement* formElement" if $parameters{namespace} eq "HTML";
894 print F ", bool createdByParser)\n{\n"; 894 print F ", bool createdByParser)\n{\n";
895 895
896 print F <<END 896 print F <<END
897 if (!document) 897 if (!document)
898 return 0; 898 return 0;
899 899
900 if (document->registry()) { 900 if (CustomElementRegistry::isCustomTagName(qName.localName())) {
901 if (RefPtr<Element> element = document->registry()->tryToCreateCustomTag Element(qName)) { 901 RefPtr<Element> element = document->ensureCustomElementRegistry()->creat eCustomTagElement(qName);
902 ASSERT(element->is$parameters{namespace}Element()); 902 ASSERT(element->is$parameters{namespace}Element());
903 return static_pointer_cast<$parameters{namespace}Element>(element.re lease()); 903 return static_pointer_cast<$parameters{namespace}Element>(element.releas e());
904 }
905 } 904 }
906 905
907 if (!gFunctionMap) 906 if (!gFunctionMap)
908 createFunctionMap(); 907 createFunctionMap();
909 if (ConstructorFunction function = gFunctionMap->get(qName.localName().impl( ))) { 908 if (ConstructorFunction function = gFunctionMap->get(qName.localName().impl( ))) {
910 END 909 END
911 ; 910 ;
912 911
913 if ($parameters{namespace} eq "HTML") { 912 if ($parameters{namespace} eq "HTML") {
914 print F " if (PassRefPtr<$parameters{namespace}Element> element = fun ction(qName, document, formElement, createdByParser))\n"; 913 print F " if (PassRefPtr<$parameters{namespace}Element> element = fun ction(qName, document, formElement, createdByParser))\n";
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
1146 print F " map.set(${tag}Tag.localName().impl(), create${ucTag}Wrap per);\n"; 1145 print F " map.set(${tag}Tag.localName().impl(), create${ucTag}Wrap per);\n";
1147 1146
1148 if ($conditional) { 1147 if ($conditional) {
1149 print F "#endif\n"; 1148 print F "#endif\n";
1150 } 1149 }
1151 } 1150 }
1152 1151
1153 print F <<END 1152 print F <<END
1154 } 1153 }
1155 1154
1156 if (CustomElementHelpers::hasDefinition(element))
1157 return CustomElementHelpers::wrap(element, creationContext, isolate);
1158 Create$parameters{namespace}ElementWrapperFunction createWrapperFunction = m ap.get(element->localName().impl()); 1155 Create$parameters{namespace}ElementWrapperFunction createWrapperFunction = m ap.get(element->localName().impl());
1156 if (CustomElementHelpers::isCustomElement(element))
1157 return CustomElementHelpers::wrap(element, creationContext, isolate, Cus tomElementHelpers::CreateWrapperFunction(createWrapperFunction));
1159 if (createWrapperFunction) 1158 if (createWrapperFunction)
1160 { 1159 {
1161 END 1160 END
1162 ; 1161 ;
1163 if ($parameters{namespace} eq "HTML") { 1162 if ($parameters{namespace} eq "HTML") {
1164 print F <<END 1163 print F <<END
1165 if (createWrapperFunction == createHTMLElementWrapper) 1164 if (createWrapperFunction == createHTMLElementWrapper)
1166 return V8HTMLElement::createWrapper(element, creationContext, isolate ); 1165 return V8HTMLElement::createWrapper(element, creationContext, isolate );
1167 END 1166 END
1168 } 1167 }
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
1260 } 1259 }
1261 } 1260 }
1262 END 1261 END
1263 ; 1262 ;
1264 print F "#endif // $parameters{guardFactoryWith}\n\n" if $parameters{guardFa ctoryWith}; 1263 print F "#endif // $parameters{guardFactoryWith}\n\n" if $parameters{guardFa ctoryWith};
1265 1264
1266 print F "#endif // V8$parameters{namespace}ElementWrapperFactory_h\n"; 1265 print F "#endif // V8$parameters{namespace}ElementWrapperFactory_h\n";
1267 1266
1268 close F; 1267 close F;
1269 } 1268 }
OLDNEW
« Source/core/dom/Document.cpp ('K') | « Source/core/dom/Document.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698