WebCore:
authorweinig <weinig@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 9 Nov 2007 23:04:17 +0000 (23:04 +0000)
committerweinig <weinig@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 9 Nov 2007 23:04:17 +0000 (23:04 +0000)
        Reviewed by Adam Roben.

        <rdar://problem/5435940>
        The COM bindings for the DOM should be autogenerated like the other DOM bindings

        Initial commit of the autogeneration of the COM DOM Bindings.  No behavior change
        is being introduced in this patch and to insure that no conflicts arise, a temporary
        prefix of "GEN_" has been used for all the new classes.

        The build architecture for these bindings differs slightly from the other autogenerated
        bindings.  Instead of building in WebCore and migrating the resuting code to WebKit (as
        is done for the Objective-C bindigs currently), the IDLs and generation scripts are
        migrated to WebKit and built there.  This is done with a series of scripts and Makefiles.

        This commit includes:
            - Hand rolled root class/Interface GEN_DOMObject used to facilated object creation
              and ref-counting.
            - Generating all of the Core DOM and most of HTML and CSS
            - Generating Event, EventTarget, and EventListener

        * WebCore.vcproj/MigrateIDLAndScripts.make: Added.
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcproj/migrate-idls.sh: Added.
        * bindings/scripts/CodeGenerator.pm:
        * bindings/scripts/CodeGeneratorCOM.pm: Added.
        * dom/EventListener.h: Make the isWindowEvent parameter default to false
        to allow autogeneration based on the IDL.

WebKit/win:

        Reviewed by Adam Roben.

        <rdar://problem/5435940>
        The COM bindings for the DOM should be autogenerated like the other DOM bindings

        Initial commit of the autogeneration of the COM DOM Bindings.  No behavior change
        is being introduced in this patch and to insure that no conflicts arise, a temporary
        prefix of "GEN_" has been used for all the new classes.

        The build architecture for these bindings differs slightly from the other autogenerated
        bindings.  Instead of building in WebCore and migrating the resuting code to WebKit (as
        is done for the Objective-C bindigs currently), the IDLs and generation scripts are
        migrated to WebKit and built there.  This is done with a series of scripts and Makefiles.

        This commit includes:
            - Hand rolled root class/Interface GEN_DOMObject used to facilated object creation
              and ref-counting.
            - Generating all of the Core DOM and most of HTML and CSS
            - Generating Event, EventTarget, and EventListener

        * DOMCreateInstance.cpp: Added.
        (domWrapperCache):
        (getDOMWrapper):
        (setDOMWrapper):
        (removeDOMWrapper):
        (GEN_DOMNode::createInstance):
        (GEN_DOMImplementation::createInstance):
        (GEN_DOMCSSRule::createInstance):
        (GEN_DOMStyleSheet::createInstance):
        (GEN_DOMCSSValue::createInstance):
        * DOMCreateInstance.h: Added.
        Temporary location for createInstance/object caching methods.  This will be broken up
        into seperate files in the near future.

        * GEN_DOMObject.cpp: Added.
        (GEN_DOMObject::GEN_DOMObject):
        (GEN_DOMObject::~GEN_DOMObject):
        (GEN_DOMObject::QueryInterface):
        (GEN_DOMObject::AddRef):
        (GEN_DOMObject::Release):
        * GEN_DOMObject.h: Added.
        Hand rolled base class.

        * Interfaces/IGEN_DOMObject.idl: Added.
        Hand rolled base interface.

        * WebKit.vcproj/DerivedSources.make: Added.
        * WebKit.vcproj/FixMIDLHeaders.pl: Added.
        This script is required because MIDL is producing un-buildable code due to
        circular dependencies.

        * WebKit.vcproj/Interfaces.vcproj:
        * WebKit.vcproj/WebKit.vcproj:
        * WebKit.vcproj/WebKitGUID.vcproj:
        * WebKit.vcproj/build-generated-files.sh: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@27655 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 files changed:
WebCore/ChangeLog
WebCore/WebCore.vcproj/MigrateIDLAndScripts.make [new file with mode: 0644]
WebCore/WebCore.vcproj/WebCore.vcproj
WebCore/WebCore.vcproj/migrate-idls.sh [new file with mode: 0644]
WebCore/bindings/scripts/CodeGenerator.pm
WebCore/bindings/scripts/CodeGeneratorCOM.pm [new file with mode: 0644]
WebCore/dom/EventListener.h
WebKit/win/ChangeLog
WebKit/win/DOMCreateInstance.cpp [new file with mode: 0644]
WebKit/win/DOMCreateInstance.h [new file with mode: 0644]
WebKit/win/GEN_DOMObject.cpp [new file with mode: 0644]
WebKit/win/GEN_DOMObject.h [new file with mode: 0644]
WebKit/win/Interfaces/IGEN_DOMObject.idl [new file with mode: 0644]
WebKit/win/WebKit.vcproj/DerivedSources.make [new file with mode: 0644]
WebKit/win/WebKit.vcproj/FixMIDLHeaders.pl [new file with mode: 0644]
WebKit/win/WebKit.vcproj/Interfaces.vcproj
WebKit/win/WebKit.vcproj/WebKit.vcproj
WebKit/win/WebKit.vcproj/WebKitGUID.vcproj
WebKit/win/WebKit.vcproj/build-generated-files.sh [new file with mode: 0644]

index 70bb554547692d344b603a298c3b346e86937def..0d0fca7599c0057e80875b3ab8bf6076b7aae57c 100644 (file)
@@ -1,3 +1,33 @@
+2007-11-04  Sam Weinig  <sam@webkit.org>
+
+        Reviewed by Adam Roben.
+
+        <rdar://problem/5435940>
+        The COM bindings for the DOM should be autogenerated like the other DOM bindings
+
+        Initial commit of the autogeneration of the COM DOM Bindings.  No behavior change
+        is being introduced in this patch and to insure that no conflicts arise, a temporary
+        prefix of "GEN_" has been used for all the new classes.
+
+        The build architecture for these bindings differs slightly from the other autogenerated
+        bindings.  Instead of building in WebCore and migrating the resuting code to WebKit (as
+        is done for the Objective-C bindigs currently), the IDLs and generation scripts are
+        migrated to WebKit and built there.  This is done with a series of scripts and Makefiles.
+
+        This commit includes:
+            - Hand rolled root class/Interface GEN_DOMObject used to facilated object creation
+              and ref-counting.
+            - Generating all of the Core DOM and most of HTML and CSS
+            - Generating Event, EventTarget, and EventListener
+
+        * WebCore.vcproj/MigrateIDLAndScripts.make: Added.
+        * WebCore.vcproj/WebCore.vcproj:
+        * WebCore.vcproj/migrate-idls.sh: Added.
+        * bindings/scripts/CodeGenerator.pm:
+        * bindings/scripts/CodeGeneratorCOM.pm: Added.
+        * dom/EventListener.h: Make the isWindowEvent parameter default to false
+        to allow autogeneration based on the IDL.
+
 2007-11-09  Tristan O'Tierney  <tristan@apple.com>
 
         Reviewed by Timothy Hatcher.
diff --git a/WebCore/WebCore.vcproj/MigrateIDLAndScripts.make b/WebCore/WebCore.vcproj/MigrateIDLAndScripts.make
new file mode 100644 (file)
index 0000000..4ff9002
--- /dev/null
@@ -0,0 +1,160 @@
+# Copyright (C) 2007 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1.  Redistributions of source code must retain the above copyright
+#     notice, this list of conditions and the following disclaimer. 
+# 2.  Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution. 
+# 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+#     its contributors may be used to endorse or promote products derived
+#     from this software without specific prior written permission. 
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+.PHONY : all
+all : \
+    $(WEBKIT_OUTPUT)/Node.idl \
+    $(WEBKIT_OUTPUT)/Attr.idl \
+    $(WEBKIT_OUTPUT)/Element.idl \
+    $(WEBKIT_OUTPUT)/NodeList.idl \
+    $(WEBKIT_OUTPUT)/Document.idl \
+    $(WEBKIT_OUTPUT)/CharacterData.idl \
+    $(WEBKIT_OUTPUT)/CDATASection.idl \
+    $(WEBKIT_OUTPUT)/Comment.idl \
+    $(WEBKIT_OUTPUT)/Text.idl \
+    $(WEBKIT_OUTPUT)/DocumentFragment.idl \
+    $(WEBKIT_OUTPUT)/DocumentType.idl \
+    $(WEBKIT_OUTPUT)/DOMImplementation.idl \
+    $(WEBKIT_OUTPUT)/Entity.idl \
+    $(WEBKIT_OUTPUT)/EntityReference.idl \
+    $(WEBKIT_OUTPUT)/NamedNodeMap.idl \
+    $(WEBKIT_OUTPUT)/Notation.idl \
+    $(WEBKIT_OUTPUT)/ProcessingInstruction.idl \
+    \
+    $(WEBKIT_OUTPUT)/HTMLAnchorElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLAppletElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLAreaElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLBRElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLBaseElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLBaseFontElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLBlockquoteElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLBodyElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLButtonElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLCollection.idl \
+    $(WEBKIT_OUTPUT)/HTMLDListElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLDirectoryElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLDivElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLDocument.idl \
+    $(WEBKIT_OUTPUT)/HTMLElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLEmbedElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLFieldSetElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLFontElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLFormElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLFrameElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLFrameSetElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLHRElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLHeadElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLHeadingElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLHtmlElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLIFrameElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLImageElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLInputElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLIsIndexElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLLIElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLLabelElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLLegendElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLLinkElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLMapElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLMarqueeElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLMenuElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLMetaElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLModElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLOListElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLObjectElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLOptGroupElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLOptionElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLOptionsCollection.idl \
+    $(WEBKIT_OUTPUT)/HTMLParagraphElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLParamElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLPreElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLQuoteElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLScriptElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLSelectElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLStyleElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLTableCaptionElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLTableCellElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLTableColElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLTableElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLTableRowElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLTableSectionElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLTextAreaElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLTitleElement.idl \
+    $(WEBKIT_OUTPUT)/HTMLUListElement.idl \
+    \
+    $(WEBKIT_OUTPUT)/CSSCharsetRule.idl \
+    $(WEBKIT_OUTPUT)/CSSFontFaceRule.idl \
+    $(WEBKIT_OUTPUT)/CSSImportRule.idl \
+    $(WEBKIT_OUTPUT)/CSSMediaRule.idl \
+    $(WEBKIT_OUTPUT)/CSSPageRule.idl \
+    $(WEBKIT_OUTPUT)/CSSPrimitiveValue.idl \
+    $(WEBKIT_OUTPUT)/CSSRule.idl \
+    $(WEBKIT_OUTPUT)/CSSRuleList.idl \
+    $(WEBKIT_OUTPUT)/CSSStyleDeclaration.idl \
+    $(WEBKIT_OUTPUT)/CSSStyleRule.idl \
+    $(WEBKIT_OUTPUT)/CSSStyleSheet.idl \
+    $(WEBKIT_OUTPUT)/CSSUnknownRule.idl \
+    $(WEBKIT_OUTPUT)/CSSValue.idl \
+    $(WEBKIT_OUTPUT)/CSSValueList.idl \
+    $(WEBKIT_OUTPUT)/Counter.idl \
+    $(WEBKIT_OUTPUT)/MediaList.idl \
+    $(WEBKIT_OUTPUT)/Rect.idl \
+    $(WEBKIT_OUTPUT)/StyleSheet.idl \
+    $(WEBKIT_OUTPUT)/StyleSheetList.idl \
+    \
+    $(WEBKIT_OUTPUT)/Event.idl \
+    $(WEBKIT_OUTPUT)/EventTarget.idl \
+    $(WEBKIT_OUTPUT)/EventListener.idl \
+    \
+    $(WEBKIT_OUTPUT)/CodeGenerator.pm \
+    $(WEBKIT_OUTPUT)/CodeGeneratorCOM.pm \
+    $(WEBKIT_OUTPUT)/IDLParser.pm \
+    $(WEBKIT_OUTPUT)/IDLStructure.pm \
+    $(WEBKIT_OUTPUT)/generate-bindings.pl \
+#
+
+# $(WEBKIT_OUTPUT)/CanvasGradient.idl \
+# $(WEBKIT_OUTPUT)/CanvasPattern.idl \
+# $(WEBKIT_OUTPUT)/CanvasRenderingContext2D.idl \
+# $(WEBKIT_OUTPUT)/HTMLCanvasElement.idl \
+# $(WEBKIT_OUTPUT)/RGBColor.idl \
+
+MIGRATE_CMD = cp $< $@
+
+# Migrate core/event IDLs
+$(WEBKIT_OUTPUT)/% : $(WEBCORE)/dom/%
+       $(MIGRATE_CMD)
+
+# Migrate html IDLs
+$(WEBKIT_OUTPUT)/% : $(WEBCORE)/html/%
+       $(MIGRATE_CMD)
+
+# Migrate css IDLs
+$(WEBKIT_OUTPUT)/% : $(WEBCORE)/css/%
+       $(MIGRATE_CMD)
+
+# Migrate generation scripts
+$(WEBKIT_OUTPUT)/% : $(WEBCORE)/bindings/scripts/%
+       $(MIGRATE_CMD)
index da8c7ad673d3155f6454440fc86856c3acad8e99..e74a44b5c29601803adba75fdc4afbfc3dc51b76 100644 (file)
@@ -26,7 +26,7 @@
                        >\r
                        <Tool\r
                                Name="VCPreBuildEventTool"\r
-                               CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%&#x0D;&#x0A;touch &quot;$(WebKitOutputDir)\tmp.cpp&quot;&#x0D;&#x0A;cl /analyze /nologo /c &quot;$(WebKitOutputDir)\tmp.cpp&quot; 2&gt;&amp;1 | findstr D9040&#x0D;&#x0A;if ERRORLEVEL 0 set EnablePREfast=&quot;false&quot; else set EnablePREfast=&quot;true&quot;&#x0D;&#x0A;if ERRORLEVEL 0 set AnalyzeWithLargeStack=&quot;&quot; AnalyzeWithLargeStack=&quot;/analyze:65536&quot;&#x0D;&#x0A;bash build-generated-files.sh &quot;$(WebKitOutputDir)&quot; &quot;$(WebKitLibrariesDir)&quot;&#x0D;&#x0A;"\r
+                               CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%&#x0D;&#x0A;touch &quot;$(WebKitOutputDir)\tmp.cpp&quot;&#x0D;&#x0A;cl /analyze /nologo /c &quot;$(WebKitOutputDir)\tmp.cpp&quot; 2&gt;&amp;1 | findstr D9040&#x0D;&#x0A;if ERRORLEVEL 0 set EnablePREfast=&quot;false&quot; else set EnablePREfast=&quot;true&quot;&#x0D;&#x0A;if ERRORLEVEL 0 set AnalyzeWithLargeStack=&quot;&quot; AnalyzeWithLargeStack=&quot;/analyze:65536&quot;&#x0D;&#x0A;bash build-generated-files.sh &quot;$(WebKitOutputDir)&quot; &quot;$(WebKitLibrariesDir)&quot;&#x0D;&#x0A;bash migrate-idls.sh &quot;$(WebKitOutputDir)/obj/WebKit/DOMInterfaces&quot;&#x0D;&#x0A;"\r
                        />\r
                        <Tool\r
                                Name="VCCustomBuildTool"\r
                        >\r
                        <Tool\r
                                Name="VCPreBuildEventTool"\r
-                               CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%&#x0D;&#x0A;touch &quot;$(WebKitOutputDir)\tmp.cpp&quot;&#x0D;&#x0A;cl /analyze /nologo /c &quot;$(WebKitOutputDir)\tmp.cpp&quot; 2&gt;&amp;1 | findstr D9040&#x0D;&#x0A;if ERRORLEVEL 0 set EnablePREfast=&quot;false&quot; else set EnablePREfast=&quot;true&quot;&#x0D;&#x0A;if ERRORLEVEL 0 set AnalyzeWithLargeStack=&quot;&quot; AnalyzeWithLargeStack=&quot;/analyze:65536&quot;&#x0D;&#x0A;bash build-generated-files.sh &quot;$(WebKitOutputDir)&quot; &quot;$(WebKitLibrariesDir)&quot;&#x0D;&#x0A;"\r
+                               CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%&#x0D;&#x0A;touch &quot;$(WebKitOutputDir)\tmp.cpp&quot;&#x0D;&#x0A;cl /analyze /nologo /c &quot;$(WebKitOutputDir)\tmp.cpp&quot; 2&gt;&amp;1 | findstr D9040&#x0D;&#x0A;if ERRORLEVEL 0 set EnablePREfast=&quot;false&quot; else set EnablePREfast=&quot;true&quot;&#x0D;&#x0A;if ERRORLEVEL 0 set AnalyzeWithLargeStack=&quot;&quot; AnalyzeWithLargeStack=&quot;/analyze:65536&quot;&#x0D;&#x0A;bash build-generated-files.sh &quot;$(WebKitOutputDir)&quot; &quot;$(WebKitLibrariesDir)&quot;&#x0D;&#x0A;bash migrate-idls.sh &quot;$(WebKitOutputDir)/obj/WebKit/DOMInterfaces&quot;&#x0D;&#x0A;"\r
                        />\r
                        <Tool\r
                                Name="VCCustomBuildTool"\r
                        >\r
                        <Tool\r
                                Name="VCPreBuildEventTool"\r
-                               CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%&#x0D;&#x0A;touch &quot;$(WebKitOutputDir)\tmp.cpp&quot;&#x0D;&#x0A;cl /analyze /nologo /c &quot;$(WebKitOutputDir)\tmp.cpp&quot; 2&gt;&amp;1 | findstr D9040&#x0D;&#x0A;if ERRORLEVEL 0 set EnablePREfast=&quot;false&quot; else set EnablePREfast=&quot;true&quot;&#x0D;&#x0A;if ERRORLEVEL 0 set AnalyzeWithLargeStack=&quot;&quot; AnalyzeWithLargeStack=&quot;/analyze:65536&quot;&#x0D;&#x0A;bash build-generated-files.sh &quot;$(WebKitOutputDir)&quot; &quot;$(WebKitLibrariesDir)&quot;&#x0D;&#x0A;"\r
+                               CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%&#x0D;&#x0A;touch &quot;$(WebKitOutputDir)\tmp.cpp&quot;&#x0D;&#x0A;cl /analyze /nologo /c &quot;$(WebKitOutputDir)\tmp.cpp&quot; 2&gt;&amp;1 | findstr D9040&#x0D;&#x0A;if ERRORLEVEL 0 set EnablePREfast=&quot;false&quot; else set EnablePREfast=&quot;true&quot;&#x0D;&#x0A;if ERRORLEVEL 0 set AnalyzeWithLargeStack=&quot;&quot; AnalyzeWithLargeStack=&quot;/analyze:65536&quot;&#x0D;&#x0A;bash build-generated-files.sh &quot;$(WebKitOutputDir)&quot; &quot;$(WebKitLibrariesDir)&quot;&#x0D;&#x0A;bash migrate-idls.sh &quot;$(WebKitOutputDir)/obj/WebKit/DOMInterfaces&quot;&#x0D;&#x0A;"\r
                        />\r
                        <Tool\r
                                Name="VCCustomBuildTool"\r
diff --git a/WebCore/WebCore.vcproj/migrate-idls.sh b/WebCore/WebCore.vcproj/migrate-idls.sh
new file mode 100644 (file)
index 0000000..b417d6b
--- /dev/null
@@ -0,0 +1,53 @@
+#!/usr/bin/bash
+
+# Copyright (C) 2007 Apple Inc. All rights reserved.\r
+#\r
+# Redistribution and use in source and binary forms, with or without\r
+# modification, are permitted provided that the following conditions\r
+# are met:\r
+#\r
+# 1.  Redistributions of source code must retain the above copyright\r
+#     notice, this list of conditions and the following disclaimer. \r
+# 2.  Redistributions in binary form must reproduce the above copyright\r
+#     notice, this list of conditions and the following disclaimer in the\r
+#     documentation and/or other materials provided with the distribution. \r
+# 3.  Neither the name of Apple puter, Inc. ("Apple") nor the names of\r
+#     its contributors may be used to endorse or promote products derived\r
+#     from this software without specific prior written permission. \r
+#\r
+# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY\r
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
+# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY\r
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\r
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+NUMCPUS=`../../WebKitTools/Scripts/num-cpus`
+
+mkdir -p "$1"
+
+XSRCROOT="`pwd`/.."
+XSRCROOT=`realpath "$XSRCROOT"`
+# Do a little dance to get the path into 8.3 form to make it safe for gnu make
+# http://bugzilla.opendarwin.org/show_bug.cgi?id=8173
+XSRCROOT=`cygpath -m -s "$XSRCROOT"`
+XSRCROOT=`cygpath -u "$XSRCROOT"`
+export XSRCROOT
+export SOURCE_ROOT=$XSRCROOT
+
+XDSTROOT="$1"
+export XDSTROOT
+# Do a little dance to get the path into 8.3 form to make it safe for gnu make
+# http://bugzilla.opendarwin.org/show_bug.cgi?id=8173
+XDSTROOT=`cygpath -m -s "$XDSTROOT"`
+XDSTROOT=`cygpath -u "$XDSTROOT"`
+export XDSTROOT
+
+export WEBCORE=$XSRCROOT
+export WEBKIT_OUTPUT=$XDSTROOT
+
+make -f "$WEBCORE/WebCore.vcproj/MigrateIDLandScripts.make" -j ${NUMCPUS} || exit 1
index afe7a44d681bb6d20e1816d43d13d79dc2715bf2..b4beb7c4b9a7e4e02f76e982619aa1d3ea6b4395 100644 (file)
@@ -180,6 +180,89 @@ sub AddMethodsConstantsAndAttributesFromParentClasses
     }
 }
 
+sub GetMethodsAndAttributesFromParentClasses
+{
+    # For the passed interface, recursively parse all parent
+    # IDLs in order to find out all inherited properties/methods.
+
+    my $object = shift;
+    my $dataNode = shift;
+
+    my @parents = @{$dataNode->parents};
+
+    return if @{$dataNode->parents} == 0;
+
+    my @parentList = ();
+
+    foreach (@{$dataNode->parents}) {
+        my $interface = $object->StripModule($_);
+        if ($interface eq "EventTargetNode") {
+            $interface = "Node";
+        }
+
+        # Step #1: Find the IDL file associated with 'interface'
+        $endCondition = 0;
+        $foundFilename = "";
+
+        foreach (@{$useDirectories}) {
+            $object->ScanDirectory("${interface}.idl", $_, $_, 0) if $foundFilename eq "";
+        }
+
+        die("Could NOT find specified parent interface \"$interface\"!\n") if $foundFilename eq "";
+
+        print "  |  |>  Parsing parent IDL \"$foundFilename\" for interface \"$interface\"\n" if $verbose;
+
+        # Step #2: Parse the found IDL file (in quiet mode).
+        my $parser = IDLParser->new(1);
+        my $document = $parser->Parse($foundFilename, $defines);
+
+        foreach my $class (@{$document->classes}) {
+            # Step #3: Enter recursive parent search
+            push(@parentList, GetMethodsAndAttributesFromParentClasses($object, $class));
+
+            # Step #4: Collect constants & functions & attributes of this parent-class
+
+            # print "  |  |>  -> Inheriting $functionsMax functions amd $attributesMax attributes...\n  |  |>\n" if $verbose;
+            my $hash = {
+                "name" => $class->name,
+                "functions" => $class->functions,
+                "attributes" => $class->attributes
+            };
+
+            # Step #5: Concatenate data
+            unshift(@parentList, $hash);
+        }
+    }
+
+    return @parentList;
+}
+
+sub ParseInterface
+{
+    my ($object, $interfaceName) = @_;
+
+    # Step #1: Find the IDL file associated with 'interface'
+    $endCondition = 0;
+    $foundFilename = "";
+
+    foreach (@{$useDirectories}) {
+        $object->ScanDirectory("${interfaceName}.idl", $_, $_, 0) if $foundFilename eq "";
+    }
+    die "Could NOT find specified parent interface \"$interfaceName\"!\n" if $foundFilename eq "";
+
+    print "  |  |>  Parsing parent IDL \"$foundFilename\" for interface \"$interfaceName\"\n" if $verbose;
+
+    # Step #2: Parse the found IDL file (in quiet mode).
+    my $parser = IDLParser->new(1);
+    my $document = $parser->Parse($foundFilename, $defines);
+
+    foreach my $interface (@{$document->classes}) {
+        return $interface if $interface->name eq $interfaceName;
+    }
+
+    die "Interface definition not found";
+}
+
 # Helpers for all CodeGenerator***.pm modules
 sub IsPodType
 {
@@ -242,10 +325,13 @@ sub ScanDirectory
     if ($sourceRoot) {
         $thisDir = "$sourceRoot/$directory";
     } else {
-        $thisDir = "$directory";
+        $thisDir = $directory;
     }
 
-    opendir(DIR, $thisDir) or die "[ERROR] Can't open directory $thisDir: \"$!\"\n";
+    if (!opendir(DIR, $thisDir)) {
+        opendir(DIR, $directory) or die "[ERROR] Can't open directory $thisDir or $directory: \"$!\"\n";
+        $thisDir = $directory;
+    }
 
     my @names = readdir(DIR) or die "[ERROR] Cant't read directory $thisDir \"$!\"\n";
     closedir(DIR);
diff --git a/WebCore/bindings/scripts/CodeGeneratorCOM.pm b/WebCore/bindings/scripts/CodeGeneratorCOM.pm
new file mode 100644 (file)
index 0000000..d5a25b7
--- /dev/null
@@ -0,0 +1,1313 @@
+#
+# Copyright (C) 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+# Copyright (C) 2006 Anders Carlsson <andersca@mac.com>
+# Copyright (C) 2006, 2007 Samuel Weinig <sam@webkit.org>
+# Copyright (C) 2006 Alexey Proskuryakov <ap@webkit.org>
+# Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Library General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public License
+# aint with this library; see the file COPYING.LIB.  If not, write to
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+#
+
+package CodeGeneratorCOM;
+
+use File::stat;
+
+# Global Variables
+my $module = "";
+my $outputDir = "";
+
+my @IDLHeader = ();
+my @IDLContent = ();
+my %IDLIncludes = ();
+my %IDLForwardDeclarations = ();
+my %IDLDontForwardDeclare = ();
+my %IDLImports = ();
+my %IDLDontImport = ();
+
+my @CPPInterfaceHeader = ();
+
+my @CPPHeaderHeader = ();
+my @CPPHeaderContent = ();
+my %CPPHeaderIncludes = ();
+my %CPPHeaderIncludesAngle = ();
+my %CPPHeaderForwardDeclarations = ();
+my %CPPHeaderDontForwardDeclarations = ();
+
+my @CPPImplementationHeader = ();
+my @CPPImplementationContent = ();
+my %CPPImplementationIncludes = ();
+my %CPPImplementationWebCoreIncludes = ();
+my %CPPImplementationIncludesAngle = ();
+my %CPPImplementationDontIncludes = ();
+
+my @additionalInterfaceDefinitions = ();
+
+my $DASHES = "----------------------------------------";
+my $TEMP_PREFIX = "GEN_";
+
+# Hashes
+
+my %includeCorrector = map {($_, 1)} qw{UIEvent KeyboardEvent MouseEvent 
+                                        MutationEvent OverflowEvent WheelEvent};
+
+my %conflictMethod = (
+    # FIXME: Add C language keywords?
+);
+
+# Default License Templates
+my @licenseTemplate = split(/\r/, << "EOF");
+/*
+ * Copyright (C) 2007 Apple Inc.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+EOF
+
+# Default constructor
+sub new
+{
+    my $object = shift;
+    my $reference = { };
+
+    $codeGenerator = shift;
+    $outputDir = shift;
+
+    bless($reference, $object);
+    return $reference;
+}
+
+sub finish
+{
+    my $object = shift;
+}
+
+# Uppercase the first letter, while respecting WebKit style guidelines.
+# E.g., xmlEncoding becomes XMLEncoding, but xmlllang becomes Xmllang.
+sub WK_ucfirst
+{
+    my $param = shift;
+    my $ret = ucfirst($param);
+    $ret =~ s/Xml/XML/ if $ret =~ /^Xml[^a-z]/;
+    return $ret;
+}
+
+# Params: 'domClass' struct
+sub GenerateInterface
+{
+    my $object = shift;
+    my $dataNode = shift;
+    my $defines = shift;
+
+    my $name = $dataNode->name;
+
+    my $pureInterface = $dataNode->extendedAttributes->{"PureInterface"};
+
+    # Start actual generation..
+    $object->GenerateIDL($dataNode, $pureInterface);
+    if ($pureInterface) {
+        $object->GenerateInterfaceHeader($dataNode);
+    } else {
+        $object->GenerateCPPHeader($dataNode);
+        $object->GenerateCPPImplementation($dataNode);
+    }
+
+    # Write changes.
+    $object->WriteData($name, $pureInterface);
+}
+
+# Params: 'idlDocument' struct
+sub GenerateModule
+{
+    my $object = shift;
+    my $dataNode = shift;
+
+    $module = $dataNode->module;
+}
+
+sub GetInterfaceName
+{
+    my $name = $codeGenerator->StripModule(shift);
+
+    die "GetInterfaceName should only be used on interfaces." if ($codeGenerator->IsStringType($name) or $codeGenerator->IsPrimitiveType($name));
+
+    # special cases
+    return "I" . $TEMP_PREFIX . "DOMAbstractView" if $name eq "DOMWindow";
+    return "I" . $TEMP_PREFIX . $name if $name eq "DOMImplementation" or $name eq "DOMTimeStamp";
+
+    # Default, assume COM type has the same type name as
+    # idl type prefixed with "IDOM".
+    return "I" . $TEMP_PREFIX . "DOM" . $name;
+}
+
+sub GetClassName
+{
+    my $name = $codeGenerator->StripModule(shift);
+
+    # special cases
+    return "BSTR" if $codeGenerator->IsStringType($name);
+    return "BOOL" if $name eq "boolean";
+    return "unsigned" if $name eq "unsigned long";
+    return "int" if $name eq "long";
+    return $name if $codeGenerator->IsPrimitiveType($name);
+    return $TEMP_PREFIX . "DOMAbstractView" if $name eq "DOMWindow";
+    return $TEMP_PREFIX . $name if $name eq "DOMImplementation" or $name eq "DOMTimeStamp";
+
+    # Default, assume COM type has the same type name as
+    # idl type prefixed with "DOM".
+    return $TEMP_PREFIX . "DOM" . $name;
+}
+
+sub GetCOMType
+{
+    my ($type) = @_;
+
+    die "Don't use GetCOMType for string types, use one of In/Out variants instead." if $codeGenerator->IsStringType($type);
+
+    return "BOOL" if $type eq "boolean";
+    return "UINT" if $type eq "unsigned long";
+    return "INT" if $type eq "long";
+    return $type if $codeGenerator->IsPrimitiveType($type) or $type eq "DOMTimeStamp";
+    # return "unsigned short" if $type eq "CompareHow" or $type eq "SVGPaintType";
+
+    return GetInterfaceName($type) . "*";
+}
+
+sub GetCOMTypeIn
+{
+    my ($type) = @_;
+    return "LPCTSTR" if $codeGenerator->IsStringType($type);
+    return GetCOMType($type);
+}
+
+sub GetCOMTypeOut
+{
+    my ($type) = @_;
+    return "BSTR" if $codeGenerator->IsStringType($type);
+    return GetCOMType($type);
+}
+
+sub IDLTypeToImplementationType
+{
+    my $type = $codeGenerator->StripModule(shift);
+
+    return "bool" if $type eq "boolean";
+    return "unsigned" if $type eq "unsigned long";
+    return "int" if $type eq "long";
+    return $type if $codeGenerator->IsPrimitiveType($type);
+
+    return "WebCore::String" if $codeGenerator->IsStringType($type);
+    return "WebCore::${type}";
+}
+
+sub StripNamespace
+{
+    my ($type) = @_;
+
+    $type =~ s/^WebCore:://;
+
+    return $type;
+}
+
+sub GetParentInterface
+{
+    my ($dataNode) = @_;
+    return "I" . $TEMP_PREFIX . "DOMObject" if (@{$dataNode->parents} == 0);
+    return "I" . $TEMP_PREFIX . "DOMNode" if $codeGenerator->StripModule($dataNode->parents(0)) eq "EventTargetNode";
+    return GetInterfaceName($codeGenerator->StripModule($dataNode->parents(0)));
+}
+
+sub GetParentClass
+{
+    my ($dataNode) = @_;
+    return $TEMP_PREFIX . "DOMObject" if (@{$dataNode->parents} == 0);
+    return $TEMP_PREFIX . "DOMNode" if $codeGenerator->StripModule($dataNode->parents(0)) eq "EventTargetNode";
+    return GetClassName($codeGenerator->StripModule($dataNode->parents(0)));
+}
+
+sub AddForwardDeclarationsForTypeInIDL
+{
+    my $type = $codeGenerator->StripModule(shift);
+
+    return if $codeGenerator->IsNonPointerType($type) or $codeGenerator->IsStringType($type);
+
+    my $interface = GetInterfaceName($type);
+    $IDLForwardDeclarations{$interface} = 1;
+    $IDLImports{$interface} = 1;
+}
+
+sub AddIncludesForTypeInCPPHeader
+{
+    my $type = $codeGenerator->StripModule(shift);
+    my $useAngleBrackets = shift;
+
+    return if $codeGenerator->IsNonPointerType($type);
+
+    # Add special Cases HERE
+    if ($useAngleBrackets) {
+        $CPPHeaderIncludesAngle{"$type.h"} = 1;
+        return;
+    }
+
+    if ($type eq "GEN_DOMImplementation") {
+        $CPPHeaderIncludes{"GEN_DOMDOMImplementation.h"} = 1;
+        return;
+    }
+
+    if ($type eq "IGEN_DOMImplementation") {
+        $CPPHeaderIncludes{"IGEN_DOMDOMImplementation.h"} = 1;
+        return;
+    }
+
+    $CPPHeaderIncludes{"$type.h"} = 1;
+}
+
+sub AddForwardDeclarationsForTypeInCPPHeader
+{
+    my $type = $codeGenerator->StripModule(shift);
+
+    return if $codeGenerator->IsNonPointerType($type) or $codeGenerator->IsStringType($type);
+
+    my $interface = GetInterfaceName($type);
+    $CPPHeaderForwardDeclarations{$interface} = 1;
+}
+
+sub AddIncludesForTypeInCPPImplementation
+{
+    my $type = $codeGenerator->StripModule(shift);
+
+    die "Include type not supported!" if $includeCorrector{$type};
+
+    return if $codeGenerator->IsNonPointerType($type);
+
+    if ($codeGenerator->IsStringType($type)) {
+        $CPPImplementationWebCoreIncludes{"PlatformString.h"} = 1;
+        $CPPImplementationWebCoreIncludes{"BString.h"} = 1;
+        $CPPImplementationWebCoreIncludes{"AtomicString.h"} = 1;
+        return;
+    }
+
+    # Special casing
+    $CPPImplementationWebCoreIncludes{"EventTargetNode.h"} = 1 if $type eq "Node";
+    $CPPImplementationWebCoreIncludes{"NameNodeList.h"} = 1 if $type eq "NodeList";
+    $CPPImplementationWebCoreIncludes{"CSSMutableStyleDeclaration.h"} = 1 if $type eq "CSSStyleDeclaration";
+
+    # Add implementation type
+    $CPPImplementationWebCoreIncludes{StripNamespace(IDLTypeToImplementationType($type)) . ".h"} = 1;
+
+    my $COMClassName = GetClassName($type);
+    $CPPImplementationIncludes{"${COMClassName}.h"} = 1;
+}
+
+sub GetAdditionalInterfaces
+{
+    my $type = $codeGenerator->StripModule(shift);
+
+    return ("EventTarget") if $type eq "Node";
+    return ();
+}
+
+sub GenerateIDL
+{
+    my ($object, $dataNode, $pureInterface) = @_;
+
+    my $inInterfaceName = $dataNode->name;
+    my $outInterfaceName = GetInterfaceName($inInterfaceName);
+    my $uuid = $dataNode->extendedAttributes->{"InterfaceUUID"} || die "All classes require an InterfaceUUID extended attribute.";
+
+    my $parentInterfaceName = ($pureInterface) ? "IUnknown" : GetParentInterface($dataNode);
+
+    my $numConstants = @{$dataNode->constants};
+    my $numAttributes = @{$dataNode->attributes};
+    my $numFunctions = @{$dataNode->functions};
+
+    # - Add default header template
+    @IDLHeader = @licenseTemplate;
+    push(@IDLHeader, "\n");
+
+    # - INCLUDES -
+    push(@IDLHeader, "import \"oaidl.idl\";\n");
+    push(@IDLHeader, "import \"ocidl.idl\";\n\n");
+
+    unless ($pureInterface) {
+        push(@IDLHeader, "import \"${parentInterfaceName}.idl\";\n\n");
+
+        $IDLDontForwardDeclare{$outInterfaceName} = 1;
+        $IDLDontImport{$outInterfaceName} = 1;
+        $IDLDontForwardDeclare{$parentInterfaceName} = 1;
+        $IDLDontImport{$parentInterfaceName} = 1;
+    }
+
+    # - Begin
+    # -- Attributes
+    push(@IDLContent, "[\n");
+    push(@IDLContent, "    object,\n");
+    push(@IDLContent, "    oleautomation,\n");
+    push(@IDLContent, "    uuid(" . $uuid . "),\n");
+    push(@IDLContent, "    pointer_default(unique)\n");
+    push(@IDLContent, "]\n");
+
+    # -- Interface
+    push(@IDLContent, "interface " . $outInterfaceName . " : " . $parentInterfaceName . "\n");
+    push(@IDLContent, "{\n");
+
+
+    # - FIXME: Add constants.
+
+
+    # - Add attribute getters/setters.
+    if ($numAttributes > 0) {
+        foreach my $attribute (@{$dataNode->attributes}) {
+            my $attributeName = $attribute->signature->name;
+            my $attributeIDLType = $attribute->signature->type;
+            my $attributeTypeIn = GetCOMTypeIn($attributeIDLType);
+            my $attributeTypeOut = GetCOMTypeOut($attributeIDLType);
+            my $attributeIsReadonly = ($attribute->type =~ /^readonly/);
+
+            AddForwardDeclarationsForTypeInIDL($attributeIDLType);
+
+            unless ($attributeIsReadonly) {
+                # Setter
+                my $setterName = "set" . WK_ucfirst($attributeName);
+                my $setter = "    HRESULT " . $setterName . "([in] " . $attributeTypeIn . ");\n";
+                push(@IDLContent, $setter);
+            }
+
+            # Getter
+            my $getter = "    HRESULT " . $attributeName . "([out, retval] " . $attributeTypeOut . "*);\n\n";
+            push(@IDLContent, $getter);
+        }
+    }
+
+    # - Add functions.
+    if ($numFunctions > 0) {
+        foreach my $function (@{$dataNode->functions}) {
+            my $functionName = $function->signature->name;
+            my $returnIDLType = $function->signature->type;
+            my $returnType = GetCOMTypeOut($returnIDLType);
+            my $noReturn = ($returnType eq "void");
+
+            AddForwardDeclarationsForTypeInIDL($returnIDLType);
+
+            my @paramArgList = ();
+            foreach my $param (@{$function->parameters}) {
+                my $paramName = $param->name;
+                my $paramIDLType = $param->type;
+                my $paramType = GetCOMTypeIn($param->type);
+
+                AddForwardDeclarationsForTypeInIDL($paramIDLType);
+
+                # Form parameter
+                my $parameter = "[in] ${paramType} ${paramName}";
+
+                # Add parameter to function signature
+                push(@paramArgList, $parameter);
+            }
+
+            unless ($noReturn) {
+                my $resultParameter = "[out, retval] " . $returnType . "* result";
+                push(@paramArgList, $resultParameter);
+            }
+
+            my $functionSig = "    HRESULT " . $functionName . "(";
+            $functionSig .= join(", ", @paramArgList);
+            $functionSig .= ");\n\n";
+            push(@IDLContent, $functionSig);
+        }
+    }
+
+    # - End
+    push(@IDLContent, "}\n\n");
+}
+
+sub GenerateInterfaceHeader
+{
+    my ($object, $dataNode) = @_;
+
+    my $IDLType = $dataNode->name;
+    my $implementationClass = IDLTypeToImplementationType($IDLType);
+    my $implementationClassWithoutNamespace = StripNamespace($implementationClass);
+    my $className = GetClassName($IDLType);
+    my $interfaceName = GetInterfaceName($IDLType);
+
+    # - Add default header template
+    @CPPInterfaceHeader = @licenseTemplate;
+    push(@CPPInterfaceHeader, "\n");
+
+    # - Header gaurds -
+    push(@CPPInterfaceHeader, "#ifndef " . $className . "_h\n");
+    push(@CPPInterfaceHeader, "#define " . $className . "_h\n\n");
+
+    # - Forward Declarations -
+    push(@CPPInterfaceHeader, "interface ${interfaceName};\n\n");
+    push(@CPPInterfaceHeader, "namespace WebCore {\n");
+    push(@CPPInterfaceHeader, "    class ${implementationClassWithoutNamespace};\n");
+    push(@CPPInterfaceHeader, "}\n\n");
+
+    # - Default Interface Creator -
+    push(@CPPInterfaceHeader, "${interfaceName}* to${interfaceName}(${implementationClass}*) { return 0; }\n\n");
+    push(@CPPInterfaceHeader, "#endif // " . $className . "_h\n");
+}
+
+# -----------------------------------------------------------------------------
+#    CPP Helper Functions
+# -----------------------------------------------------------------------------
+
+sub GenerateCPPAttributeSignature
+{
+    my ($attribute, $className, $options) = @_;
+
+    my $attributeName = $attribute->signature->name;
+    my $isReadonly = ($attribute->type =~ /^readonly/);
+
+    my $newline = $$options{"NewLines"} ? "\n" : "";
+    my $indent = $$options{"Indent"} ? " " x $$options{"Indent"} : "";
+    my $semicolon = $$options{"IncludeSemiColon"} ? ";" : "";
+    my $virtual = $$options{"AddVirtualKeyword"} ? "virtual " : "";
+    my $class = $$options{"UseClassName"} ? "${className}::" : "";
+    my $forwarder = $$options{"Forwarder"} ? 1 : 0;
+    my $joiner =  ($$options{"NewLines"} ? "\n" . $indent . "    " : "");
+
+    my %attributeSignatures = ();
+
+    unless ($isReadonly) {
+        my $attributeTypeIn = GetCOMTypeIn($attribute->signature->type);
+        my $setterName = "set" . WK_ucfirst($attributeName);
+        my $setter = $indent . $virtual . "HRESULT STDMETHODCALLTYPE ". $class . $setterName . "(";
+        $setter .= $joiner . "/* [in] */ ${attributeTypeIn} ${attributeName})" . $semicolon . $newline;
+        if ($forwarder) {
+            $setter .= " { return " . $$options{"Forwarder"} . "::" . $setterName . "(${attributeName}); }\n";
+        }
+        $attributeSignatures{"Setter"} = $setter;
+    }
+
+    my $attributeTypeOut = GetCOMTypeOut($attribute->signature->type);
+    my $getter = $indent . $virtual . "HRESULT STDMETHODCALLTYPE " . $class . $attributeName . "(";
+    $getter .= $joiner . "/* [retval][out] */ ${attributeTypeOut}* result)" . $semicolon . $newline;
+    if ($forwarder) {
+        $getter .= " { return " . $$options{"Forwarder"} . "::" . $attributeName . "(result); }\n";
+    }
+    $attributeSignatures{"Getter"} = $getter;
+
+    return %attributeSignatures;
+}
+
+
+sub GenerateCPPAttribute
+{
+    my ($attribute, $className, $implementationClass) = @_;
+
+    my $implementationClassWithoutNamespace = StripNamespace($implementationClass);
+
+    my $attributeName = $attribute->signature->name;
+    my $attributeIDLType = $attribute->signature->type;
+    my $hasSetterException = @{$attribute->setterExceptions};
+    my $hasGetterException = @{$attribute->getterExceptions};
+    my $isReadonly = ($attribute->type =~ /^readonly/);
+    my $attributeTypeIsPrimitive = $codeGenerator->IsPrimitiveType($attributeIDLType);
+    my $attributeTypeIsString = $codeGenerator->IsStringType($attributeIDLType);
+    my $attributeImplementationType = IDLTypeToImplementationType($attributeIDLType);
+    my $attributeImplementationTypeWithoutNamespace = StripNamespace($attributeImplementationType);
+    my $attributeTypeCOMClassName = GetClassName($attributeIDLType);
+
+    $CPPImplementationWebCoreIncludes{"ExceptionCode.h"} = 1 if $hasSetterException or $hasGetterException;
+
+    my %signatures = GenerateCPPAttributeSignature($attribute, $className, { "NewLines" => 1,
+                                                                             "Indent" => 0,
+                                                                             "IncludeSemiColon" => 0,
+                                                                             "UseClassName" => 1,
+                                                                             "AddVirtualKeyword" => 0 });
+
+    my %attrbutesToReturn = ();
+
+    unless ($isReadonly) {
+        my @setterImplementation = ();
+        push(@setterImplementation, $signatures{"Setter"});
+        push(@setterImplementation, "{\n");
+
+        my $setterName = "set" . WK_ucfirst($attributeName);
+
+        my @setterParams = ();
+        if ($attributeTypeIsString) {
+            push(@setterParams, $attributeName);
+            if ($hasSetterException) {
+                push(@setterImplementation, "    WebCore::ExceptionCode ec = 0;\n");
+                push(@setterParams, "ec");
+            }
+        } elsif ($attributeTypeIsPrimitive) {
+            if ($attribute->signature->extendedAttributes->{"ConvertFromString"}) {
+                push(@setterParams, "WebCore::String::number(${attributeName})");
+            } elsif ($attributeIDLType eq "boolean") {
+                push(@setterParams, "!!${attributeName}");
+            } else {
+                my $primitiveImplementationType = IDLTypeToImplementationType($attributeIDLType);
+                push(@setterParams, "static_cast<${primitiveImplementationType}>(${attributeName})");
+            }
+
+            if ($hasSetterException) {
+                push(@setterImplementation, "    WebCore::ExceptionCode ec = 0;\n");
+                push(@setterParams, "ec");
+            }
+        } else {
+            $CPPImplementationWebCoreIncludes{"COMPtr.h"} = 1;
+
+            push(@setterImplementation, "    if (!${attributeName})\n");
+            push(@setterImplementation, "        return E_POINTER;\n\n");
+            push(@setterImplementation, "    COMPtr<${attributeTypeCOMClassName}> ptr(Query, ${attributeName});\n");
+            push(@setterImplementation, "    if (!ptr)\n");
+            push(@setterImplementation, "        return E_NOINTERFACE;\n");
+
+            push(@setterParams, "ptr->impl${attributeImplementationTypeWithoutNamespace}()");
+            if ($hasSetterException) {
+                push(@setterImplementation, "    WebCore::ExceptionCode ec = 0;\n");
+                push(@setterParams, "ec");
+            }
+        }
+
+        # FIXME: CHECK EXCEPTION AND DO SOMETHING WITH IT
+
+        my $setterCall = "    impl${implementationClassWithoutNamespace}()->${setterName}(" . join(", ", @setterParams) . ");\n";
+
+        push(@setterImplementation, $setterCall);
+        push(@setterImplementation, "    return S_OK;\n");
+        push(@setterImplementation, "}\n\n");
+
+        $attrbutesToReturn{"Setter"} = join("", @setterImplementation);
+    }
+
+    my @getterImplementation = ();
+    push(@getterImplementation, $signatures{"Getter"});
+    push(@getterImplementation, "{\n");
+    push(@getterImplementation, "    if (!result)\n");
+    push(@getterImplementation, "        return E_POINTER;\n\n");
+
+    my $implementationGetter = "impl${implementationClassWithoutNamespace}()->${attributeName}(" . ($hasGetterException ? "ec" : ""). ")";
+
+    push(@getterImplementation, "    WebCore::ExceptionCode ec = 0;\n") if $hasGetterException;
+
+    if ($attributeTypeIsString) {
+        push(@getterImplementation, "    *result = WebCore::BString(${implementationGetter}).release();\n");
+    } elsif ($attributeTypeIsPrimitive) {
+        if ($attribute->signature->extendedAttributes->{"ConvertFromString"}) {
+            push(@getterImplementation, "    *result = static_cast<${attributeTypeCOMClassName}>(${implementationGetter}.toInt());\n");
+        } else {
+            push(@getterImplementation, "    *result = static_cast<${attributeTypeCOMClassName}>(${implementationGetter});\n");
+        }
+    } else {
+        $CPPImplementationIncludesAngle{"wtf/GetPtr.h"} = 1;
+        my $attributeTypeCOMInterfaceName = GetInterfaceName($attributeIDLType);
+        push(@getterImplementation, "    *result = 0;\n");
+        push(@getterImplementation, "    ${attributeImplementationType}* resultImpl = WTF::getPtr(${implementationGetter});\n");
+        push(@getterImplementation, "    if (!resultImpl)\n");
+        push(@getterImplementation, "        return E_POINTER;\n\n");
+        push(@getterImplementation, "    *result = to${attributeTypeCOMInterfaceName}(resultImpl);\n");
+    }
+
+    # FIXME: CHECK EXCEPTION AND DO SOMETHING WITH IT
+
+    push(@getterImplementation, "    return S_OK;\n");
+    push(@getterImplementation, "}\n\n");
+
+    $attrbutesToReturn{"Getter"} = join("", @getterImplementation);
+
+    return %attrbutesToReturn;
+}
+
+sub GenerateCPPFunctionSignature
+{
+    my ($function, $className, $options) = @_;
+
+    my $functionName = $function->signature->name;
+    my $returnIDLType = $function->signature->type;
+    my $returnType = GetCOMTypeOut($returnIDLType);
+    my $noReturn = ($returnType eq "void");
+
+    my $newline = $$options{"NewLines"} ? "\n" : "";
+    my $indent = $$options{"Indent"} ? " " x $$options{"Indent"} : "";
+    my $semicolon = $$options{"IncludeSemiColon"} ? ";" : "";
+    my $virtual = $$options{"AddVirtualKeyword"} ? "virtual " : "";
+    my $class = $$options{"UseClassName"} ? "${className}::" : "";
+    my $forwarder = $$options{"Forwarder"} ? 1 : 0;
+    my $joiner = ($$options{"NewLines"} ? "\n" . $indent . "    " : " ");
+
+    my @paramArgList = ();
+    foreach my $param (@{$function->parameters}) {
+        my $paramName = $param->name;
+        my $paramType = GetCOMTypeIn($param->type);
+        my $parameter = "/* [in] */ ${paramType} ${paramName}";
+        push(@paramArgList, $parameter);
+    }
+
+    unless ($noReturn) {
+        my $resultParameter .= "/* [out, retval] */ ${returnType}* result";
+        push(@paramArgList, $resultParameter);
+    }
+
+    my $functionSig = $indent . $virtual . "HRESULT STDMETHODCALLTYPE " . $class . $functionName . "(";
+    $functionSig .= $joiner . join("," . $joiner, @paramArgList) if @paramArgList > 0;
+    $functionSig .= ")" . $semicolon . $newline;
+    if ($forwarder) {
+        my @paramNameList = ();
+        push(@paramNameList, $_->name) foreach (@{$function->parameters});
+        push(@paramNameList, "result") unless $noReturn;
+        $functionSig .= " { return " . $$options{"Forwarder"} . "::" . $functionName . "(" . join(", ", @paramNameList) . "); }\n";
+    }
+
+    return $functionSig
+}
+
+sub GenerateCPPFunction
+{
+    my ($function, $className, $implementationClass) = @_;
+
+    my @functionImplementation = ();
+
+    my $signature = GenerateCPPFunctionSignature($function, $className, { "NewLines" => 1,
+                                                                          "Indent" => 0,
+                                                                          "IncludeSemiColon" => 0,
+                                                                          "UseClassName" => 1,
+                                                                          "AddVirtualKeyword" => 0 });
+
+    my $implementationClassWithoutNamespace = StripNamespace($implementationClass);
+
+    my $functionName = $function->signature->name;
+    my $returnIDLType = $function->signature->type;
+    my $noReturn = ($returnIDLType eq "void");
+    my $requiresEventTargetNodeCast = $function->signature->extendedAttributes->{"EventTargetNodeCast"};
+    my $raisesExceptions = @{$function->raisesExceptions};
+
+    AddIncludesForTypeInCPPImplementation($returnIDLType);
+    $CPPImplementationWebCoreIncludes{"ExceptionCode.h"} = 1 if $raisesExceptions;
+
+    my %needsCustom = ();
+    my @parameterInitialization = ();
+    my @parameterList = ();
+    foreach my $param (@{$function->parameters}) {
+        my $paramName = $param->name;
+        my $paramIDLType = $param->type;
+
+        my $paramTypeIsPrimitive = $codeGenerator->IsPrimitiveType($paramIDLType);
+        my $paramTypeIsString = $codeGenerator->IsStringType($paramIDLType);
+
+        $needsCustom{"NodeToReturn"} = $paramName if $param->extendedAttributes->{"Return"};
+
+        AddIncludesForTypeInCPPImplementation($paramIDLType);
+
+        # FIXME: We may need to null check the arguments as well
+
+        if ($paramTypeIsString) {
+            push(@parameterList, $paramName);
+        } elsif ($paramTypeIsPrimitive) {
+            if ($paramIDLType eq "boolean") {
+                push(@parameterList, "!!${paramName}");
+            } else {
+                my $primitiveImplementationType = IDLTypeToImplementationType($paramIDLType);
+                push(@parameterList, "static_cast<${primitiveImplementationType}>(${paramName})");
+            }
+        } else {
+            $CPPImplementationWebCoreIncludes{"COMPtr.h"} = 1;
+
+            $needsCustom{"CanReturnEarly"} = 1;
+
+            my $paramTypeCOMClassName = GetClassName($paramIDLType);
+            my $paramTypeImplementationWithoutNamespace = StripNamespace(IDLTypeToImplementationType($paramIDLType));
+            my $ptrName = "ptrFor" . WK_ucfirst($paramName);
+            my $paramInit = "    COMPtr<${paramTypeCOMClassName}> ${ptrName}(Query, ${paramName});\n";
+            $paramInit .= "    if (!${ptrName})\n";
+            $paramInit .= "        return E_NOINTERFACE;";
+            push(@parameterInitialization, $paramInit);
+            push(@parameterList, "${ptrName}->impl${paramTypeImplementationWithoutNamespace}()");
+        }
+    }
+
+    push(@parameterList, "ec") if $raisesExceptions;
+
+    my $implementationGetter = "impl${implementationClassWithoutNamespace}()";
+    if ($requiresEventTargetNodeCast) {
+        $implementationGetter = "WebCore::EventTargetNodeCast(${implementationGetter})";
+    }
+
+    my $callSigBegin = "    ";
+    my $callSigMiddle = "${implementationGetter}->${functionName}(" . join(", ", @parameterList) . ")";
+    my $callSigEnd = ";\n";
+
+    if (defined $needsCustom{"NodeToReturn"}) {
+        my $nodeToReturn = $needsCustom{"NodeToReturn"};
+        $callSigBegin .= "if (";
+        $callSigEnd = ")\n";
+        $callSigEnd .= "        *result = ${nodeToReturn};";
+    } elsif (!$noReturn) {
+        my $returnTypeIsString =  $codeGenerator->IsStringType($returnIDLType);
+        my $returnTypeIsPrimitive = $codeGenerator->IsPrimitiveType($returnIDLType);
+
+        if ($returnTypeIsString) {
+            $callSigBegin .= "*result = WebCore::BString(";
+            $callSigEnd = ").release();\n";
+        } elsif ($returnTypeIsPrimitive) {
+            my $primitiveCOMType = GetClassName($returnIDLType);
+            $callSigBegin .= "*result = static_cast<${primitiveCOMType}>(";
+            $callSigEnd = ");";
+        } else {
+            $CPPImplementationIncludesAngle{"wtf/GetPtr.h"} = 1;
+            my $returnImplementationType = IDLTypeToImplementationType($returnIDLType);
+            my $returnTypeCOMInterfaceName = GetInterfaceName($returnIDLType);
+            $callSigBegin .= "${returnImplementationType}* resultImpl = WTF::getPtr(";
+            $callSigEnd = ");\n";
+            $callSigEnd .= "    if (!resultImpl)\n";
+            $callSigEnd .= "        return E_POINTER;\n\n";
+            $callSigEnd .= "    *result = to${returnTypeCOMInterfaceName}(resultImpl);";
+        }
+    }
+
+    push(@functionImplementation, $signature);
+    push(@functionImplementation, "{\n");
+    unless ($noReturn) {
+        push(@functionImplementation, "    if (!result)\n");
+        push(@functionImplementation, "        return E_POINTER;\n\n");
+        push(@functionImplementation, "    *result = 0;\n\n") if $needsCustom{"CanReturnEarly"};
+    }
+    push(@functionImplementation, "    WebCore::ExceptionCode ec = 0;\n") if $raisesExceptions; # FIXME: CHECK EXCEPTION AND DO SOMETHING WITH IT
+    push(@functionImplementation, join("\n", @parameterInitialization) . (@parameterInitialization > 0 ? "\n" : ""));
+    if ($requiresEventTargetNodeCast) {
+        push(@functionImplementation, "    if (!impl${implementationClassWithoutNamespace}()->isEventTargetNode())\n");
+        push(@functionImplementation, "        return E_FAIL;\n");
+    }
+    push(@functionImplementation, $callSigBegin . $callSigMiddle . $callSigEnd . "\n");
+    push(@functionImplementation, "    return S_OK;\n");
+    push(@functionImplementation, "}\n\n");
+
+    return join("", @functionImplementation);
+}
+
+
+# -----------------------------------------------------------------------------
+#    CPP Header
+# -----------------------------------------------------------------------------
+
+sub GenerateCPPHeader
+{
+    my ($object, $dataNode) = @_;
+
+    my $IDLType = $dataNode->name;
+    my $implementationClass = IDLTypeToImplementationType($IDLType);
+    my $implementationClassWithoutNamespace = StripNamespace($implementationClass);
+    my $className = GetClassName($IDLType);
+    my $interfaceName = GetInterfaceName($IDLType);
+
+    my $parentClassName = GetParentClass($dataNode);
+    my @otherInterfacesImplemented = GetAdditionalInterfaces($IDLType);
+    foreach my $otherInterface (@otherInterfacesImplemented) {
+        push(@additionalInterfaceDefinitions, $codeGenerator->ParseInterface($otherInterface));
+    }
+
+    # FIXME: strip whitespace from UUID
+    my $uuid = $dataNode->extendedAttributes->{"ImplementationUUID"} || die "All classes require an ImplementationUUID extended attribute.";
+
+    my $numAttributes = @{$dataNode->attributes};
+    my $numFunctions = @{$dataNode->functions};
+
+    # - Add default header template
+    @CPPHeaderHeader = @licenseTemplate;
+    push(@CPPHeaderHeader, "\n");
+
+    # - Header gaurds -
+    push(@CPPHeaderHeader, "#ifndef " . $className . "_h\n");
+    push(@CPPHeaderHeader, "#define " . $className . "_h\n\n");
+
+    AddIncludesForTypeInCPPHeader($interfaceName);
+    AddIncludesForTypeInCPPHeader($parentClassName);
+    $CPPHeaderDontForwardDeclarations{$className} = 1;
+    $CPPHeaderDontForwardDeclarations{$interfaceName} = 1;
+    $CPPHeaderDontForwardDeclarations{$parentClassName} = 1;
+
+    # -- Forward declare implementation type
+    push(@CPPHeaderContent, "namespace WebCore {\n");
+    push(@CPPHeaderContent, "    class ". StripNamespace($implementationClass) . ";\n");
+    push(@CPPHeaderContent, "}\n\n");
+
+    # -- Start Class --
+    my @parentsClasses = ($parentClassName, $interfaceName);
+    push(@parentsClasses, map { GetInterfaceName($_) } @otherInterfacesImplemented);
+    push(@CPPHeaderContent, "class __declspec(uuid(\"$uuid\")) ${className} : " . join(", ", map { "public $_" } @parentsClasses) . " {\n");
+
+    # Add includes for all additional interfaces to implement
+    map { AddIncludesForTypeInCPPHeader(GetInterfaceName($_)) } @otherInterfacesImplemented;
+
+    # -- BASICS --
+    # FIXME: The constructor and destructor should be protected, but the current design of
+    # createInstance requires them to be public.  One solution is to friend the constructor
+    # of the top-level-class with every one of its child classes, but that requires information
+    # this script currently does not have, though possibly could determine.
+    push(@CPPHeaderContent, "public:\n");
+    push(@CPPHeaderContent, "   ${className}(${implementationClass}*);\n");
+    push(@CPPHeaderContent, "   virtual ~${className}();\n\n");
+
+    push(@CPPHeaderContent, "public:\n");
+    push(@CPPHeaderContent, "    static ${className}* createInstance(${implementationClass}*);\n\n");
+
+    push(@CPPHeaderContent, "    // IUnknown\n");
+    push(@CPPHeaderContent, "    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, void** ppvObject);\n");
+    push(@CPPHeaderContent, "    virtual ULONG STDMETHODCALLTYPE AddRef() { return ${parentClassName}::AddRef(); }\n");
+    push(@CPPHeaderContent, "    virtual ULONG STDMETHODCALLTYPE Release() { return ${parentClassName}::Release(); }\n\n");
+
+
+    # -- Parent Class Forwards --
+    if (@{$dataNode->parents}) {
+        my %attributeNameSet = map {($_->signature->name, 1)} @{$dataNode->attributes};
+        my %functionNameSet = map {($_->signature->name, 1)} @{$dataNode->functions};
+
+        my @parentLists = $codeGenerator->GetMethodsAndAttributesFromParentClasses($dataNode);
+        push(@CPPHeaderContent, "\n");
+        foreach my $parentHash (@parentLists) {
+
+            push(@CPPHeaderContent, "    // " . GetInterfaceName($parentHash->{'name'}) . $DASHES . "\n");
+
+            my @attributeList = @{$parentHash->{'attributes'}};
+            push(@CPPHeaderContent, "    // Attributes\n");
+            foreach my $attribute (@attributeList) {
+                # Don't forward an attribute that this class redefines.
+                next if $attributeNameSet{$attribute->signature->name};
+                AddForwardDeclarationsForTypeInCPPHeader($attribute->signature->type);
+
+                my %attributes = GenerateCPPAttributeSignature($attribute, $className, { "NewLines" => 0,
+                                                                                         "Indent" => 4,
+                                                                                         "IncludeSemiColon" => 0,
+                                                                                         "AddVirtualKeyword" => 1,
+                                                                                         "UseClassName" => 0,
+                                                                                         "Forwarder" => $parentClassName });
+                push(@CPPHeaderContent, values(%attributes));
+            }
+            
+            # Add attribute names to attribute names set in case other ancestors 
+            # also define them.
+            $attributeNameSet{$_->signature->name} = 1 foreach @attributeList;
+
+            push(@CPPHeaderContent, "\n");
+
+            my @functionList = @{$parentHash->{'functions'}};
+            push(@CPPHeaderContent, "    // Functions\n");
+            foreach my $function (@functionList) {
+                # Don't forward a function that this class redefines.
+                next if $functionNameSet{$function->signature->name};
+
+                AddForwardDeclarationsForTypeInCPPHeader($function->signature->type);
+                AddForwardDeclarationsForTypeInCPPHeader($_->type) foreach (@{$function->parameters});
+
+                my $functionSig = GenerateCPPFunctionSignature($function, $className, { "NewLines" => 0,
+                                                                                        "Indent" => 4,
+                                                                                        "IncludeSemiColon" => 0,
+                                                                                        "AddVirtualKeyword" => 1,
+                                                                                        "UseClassName" => 0,
+                                                                                        "Forwarder" => $parentClassName });
+
+                push(@CPPHeaderContent, $functionSig);
+            }
+            # Add functions names to functions names set in case other ancestors 
+            # also define them.
+            $functionNameSet{$_->signature->name} = 1 foreach @functionList;
+
+            push(@CPPHeaderContent, "\n");
+        }
+    }
+
+    # - Additional interfaces to implement -
+    foreach my $interfaceToImplement (@additionalInterfaceDefinitions) {
+        my $IDLTypeOfInterfaceToImplement = $interfaceToImplement->name;
+        my $nameOfInterfaceToImplement = GetInterfaceName($IDLTypeOfInterfaceToImplement);
+        my $numAttributesInInterface = @{$interfaceToImplement->attributes};
+        my $numFunctionsInInterface = @{$interfaceToImplement->functions};
+
+        push(@CPPHeaderContent, "    // ${nameOfInterfaceToImplement} ${DASHES}\n\n");
+
+        # - Add attribute getters/setters.
+        if ($numAttributesInInterface > 0) {
+            push(@CPPHeaderContent, "    // Attributes\n\n");
+            foreach my $attribute (@{$interfaceToImplement->attributes}) {
+                AddForwardDeclarationsForTypeInCPPHeader($attribute->signature->type);
+
+                my %attributeSigs = GenerateCPPAttributeSignature($attribute, $className, { "NewLines" => 1,
+                                                                                            "Indent" => 4,
+                                                                                            "IncludeSemiColon" => 1,
+                                                                                            "AddVirtualKeyword" => 1,
+                                                                                            "UseClassName" => 0 });
+
+                push(@CPPHeaderContent, values(%attributeSigs));
+                push(@CPPHeaderContent, "\n");
+            }
+        }
+
+        # - Add functions.
+        if ($numFunctionsInInterface > 0) {
+            push(@CPPHeaderContent, "    // Functions\n\n");
+            foreach my $function (@{$interfaceToImplement->functions}) {
+                AddForwardDeclarationsForTypeInCPPHeader($function->signature->type);
+                AddForwardDeclarationsForTypeInCPPHeader($_->type) foreach (@{$function->parameters});
+
+                my $functionSig = GenerateCPPFunctionSignature($function, $className, { "NewLines" => 1,
+                                                                                        "Indent" => 4,
+                                                                                        "IncludeSemiColon" => 1,
+                                                                                        "AddVirtualKeyword" => 1,
+                                                                                        "UseClassName" => 0 });
+
+                push(@CPPHeaderContent, $functionSig);
+                push(@CPPHeaderContent, "\n");
+            }
+        }
+    }
+
+    if ($numAttributes > 0 || $numFunctions > 0) {
+        push(@CPPHeaderContent, "    // ${interfaceName} ${DASHES}\n\n");
+    }
+
+    # - Add constants COMING SOON
+
+    # - Add attribute getters/setters.
+    if ($numAttributes > 0) {
+        push(@CPPHeaderContent, "    // Attributes\n\n");
+        foreach my $attribute (@{$dataNode->attributes}) {
+            AddForwardDeclarationsForTypeInCPPHeader($attribute->signature->type);
+
+            my %attributeSigs = GenerateCPPAttributeSignature($attribute, $className, { "NewLines" => 1,
+                                                                                        "Indent" => 4,
+                                                                                        "IncludeSemiColon" => 1,
+                                                                                        "AddVirtualKeyword" => 1,
+                                                                                        "UseClassName" => 0 });
+
+            push(@CPPHeaderContent, values(%attributeSigs));
+            push(@CPPHeaderContent, "\n");
+        }
+    }
+
+    # - Add functions.
+    if ($numFunctions > 0) {
+        push(@CPPHeaderContent, "    // Functions\n\n");
+        foreach my $function (@{$dataNode->functions}) {
+            AddForwardDeclarationsForTypeInCPPHeader($function->signature->type);
+            AddForwardDeclarationsForTypeInCPPHeader($_->type) foreach (@{$function->parameters});
+
+            my $functionSig = GenerateCPPFunctionSignature($function, $className, { "NewLines" => 1,
+                                                                                    "Indent" => 4,
+                                                                                    "IncludeSemiColon" => 1,
+                                                                                    "AddVirtualKeyword" => 1,
+                                                                                    "UseClassName" => 0 });
+
+            push(@CPPHeaderContent, $functionSig);
+            push(@CPPHeaderContent, "\n");
+        }
+    }
+
+    push(@CPPHeaderContent, "    ${implementationClass}* impl${implementationClassWithoutNamespace}() const;\n");
+
+    if (@{$dataNode->parents} == 0) {
+        AddIncludesForTypeInCPPHeader("wtf/RefPtr", 1);
+        push(@CPPHeaderContent, "\n");
+        push(@CPPHeaderContent, "    ${implementationClass}* impl() const { return m_impl.get(); }\n\n");
+        push(@CPPHeaderContent, "private:\n");
+        push(@CPPHeaderContent, "    RefPtr<${implementationClass}> m_impl;\n");
+    }
+
+    # -- End Class --
+    push(@CPPHeaderContent, "};\n\n");
+
+    # -- Default Interface Creator --
+    push(@CPPHeaderContent, "${interfaceName}* to${interfaceName}(${implementationClass}*);\n\n");
+
+    push(@CPPHeaderContent, "#endif // " . $className . "_h\n");
+}
+
+
+# -----------------------------------------------------------------------------
+#    CPP Implementation
+# -----------------------------------------------------------------------------
+
+sub GenerateCPPImplementation
+{
+    my ($object, $dataNode) = @_;
+
+    my $IDLType = $dataNode->name;
+    my $implementationClass = IDLTypeToImplementationType($IDLType);
+    my $implementationClassWithoutNamespace = StripNamespace($implementationClass);
+    my $className = GetClassName($IDLType);
+    my $interfaceName = GetInterfaceName($IDLType);
+
+    my $parentClassName = GetParentClass($dataNode);
+    my $isBaseClass = (@{$dataNode->parents} == 0);
+
+    my $uuid = $dataNode->extendedAttributes->{"ImplementationUUID"} || die "All classes require an ImplementationUUID extended attribute.";
+
+    my $numAttributes = @{$dataNode->attributes};
+    my $numFunctions = @{$dataNode->functions};
+
+    # - Add default header template
+    @CPPImplementationHeader = @licenseTemplate;
+    push(@CPPImplementationHeader, "\n");
+
+    push(@CPPImplementationHeader, "#include \"config.h\"\n");
+    push(@CPPImplementationHeader, "#include \"WebKitDLL.h\"\n");
+    push(@CPPImplementationHeader, "#include " . ($className eq "GEN_DOMImplementation" ? "\"GEN_DOMDOMImplementation.h\"" : "\"${className}.h\"") . "\n");
+    $CPPImplementationDontIncludes{"${className}.h"} = 1;
+    $CPPImplementationWebCoreIncludes{"${implementationClassWithoutNamespace}.h"} = 1;
+
+    # -- Constructor --
+    push(@CPPImplementationContent, "${className}::${className}(${implementationClass}* impl)\n");
+    if ($isBaseClass) {
+        push(@CPPImplementationContent, "    : m_impl(impl)\n");
+        push(@CPPImplementationContent, "{\n");
+        push(@CPPImplementationContent, "    ASSERT_ARG(impl, impl);\n");
+        push(@CPPImplementationContent, "}\n\n");
+    } else {
+        push(@CPPImplementationContent, "    : ${parentClassName}(impl)\n");
+        push(@CPPImplementationContent, "{\n");
+        push(@CPPImplementationContent, "}\n\n");
+    }
+
+    # -- Destructor --
+    push(@CPPImplementationContent, "${className}::~${className}()\n");
+    push(@CPPImplementationContent, "{\n");
+    if ($isBaseClass) {
+        $CPPImplementationIncludes{"DOMCreateInstance.h"} = 1;
+        push(@CPPImplementationContent, "    removeDOMWrapper(impl());\n");
+    }
+    push(@CPPImplementationContent, "}\n\n");
+
+    push(@CPPImplementationContent, "${implementationClass}* ${className}::impl${implementationClassWithoutNamespace}() const\n");
+    push(@CPPImplementationContent, "{\n");
+    push(@CPPImplementationContent, "    return static_cast<${implementationClass}*>(impl());\n");
+    push(@CPPImplementationContent, "}\n\n");
+
+    # Base classes must implement the createInstance method externally.
+    if (@{$dataNode->parents} != 0) {
+        push(@CPPImplementationContent, "${className}* ${className}::createInstance(${implementationClass}* impl)\n");
+        push(@CPPImplementationContent, "{\n");
+        push(@CPPImplementationContent, "    return static_cast<${className}*>(${parentClassName}::createInstance(impl));\n");
+        push(@CPPImplementationContent, "}\n");
+    }
+
+    push(@CPPImplementationContent, "// IUnknown $DASHES\n\n");
+
+    # -- QueryInterface --
+    push(@CPPImplementationContent, "HRESULT STDMETHODCALLTYPE ${className}::QueryInterface(REFIID riid, void** ppvObject)\n");
+    push(@CPPImplementationContent, "{\n");
+    push(@CPPImplementationContent, "    *ppvObject = 0;\n");
+    push(@CPPImplementationContent, "    if (IsEqualGUID(riid, IID_${interfaceName}))\n");
+    push(@CPPImplementationContent, "        *ppvObject = reinterpret_cast<${interfaceName}*>(this);\n");
+    push(@CPPImplementationContent, "    else if (IsEqualGUID(riid, __uuidof(${className})))\n");
+    push(@CPPImplementationContent, "        *ppvObject = reinterpret_cast<${className}*>(this);\n");
+    push(@CPPImplementationContent, "    else\n");
+    push(@CPPImplementationContent, "        return ${parentClassName}::QueryInterface(riid, ppvObject);\n\n");
+    push(@CPPImplementationContent, "    AddRef();\n");
+    push(@CPPImplementationContent, "    return S_OK;\n");
+    push(@CPPImplementationContent, "}\n\n");
+
+    # - Additional interfaces to implement -
+    foreach my $interfaceToImplement (@additionalInterfaceDefinitions) {
+        my $IDLTypeOfInterfaceToImplement = $interfaceToImplement->name;
+        my $nameOfInterfaceToImplement = GetInterfaceName($IDLTypeOfInterfaceToImplement);
+        my $numAttributesInInterface = @{$interfaceToImplement->attributes};
+        my $numFunctionsInInterface = @{$interfaceToImplement->functions};
+
+        push(@CPPImplementationContent, "    // ${nameOfInterfaceToImplement} ${DASHES}\n\n");
+
+        if ($numAttributesInInterface > 0) {
+            push(@CPPImplementationContent, "// Attributes\n\n");
+            foreach my $attribute (@{$interfaceToImplement->attributes}) {
+                # FIXME: Do this in one step.
+                # FIXME: Implement exception handling.
+
+                AddIncludesForTypeInCPPImplementation($attribute->signature->type);
+
+                my %attributes = GenerateCPPAttribute($attribute, $className, $implementationClass);
+                push(@CPPImplementationContent, values(%attributes));
+            }
+        }
+
+        # - Add functions.
+        if ($numFunctionsInInterface > 0) {
+            push(@CPPImplementationContent, "// Functions\n\n");
+
+            foreach my $function (@{$interfaceToImplement->functions}) {
+                my $functionImplementation = GenerateCPPFunction($function, $className, $implementationClass);
+                push(@CPPImplementationContent, $functionImplementation);
+            }
+        }
+    }
+
+    push(@CPPImplementationContent, "// ${interfaceName} $DASHES\n\n");
+
+    # - Add attribute getters/setters.
+    if ($numAttributes > 0) {
+        push(@CPPImplementationContent, "// Attributes\n\n");
+        foreach my $attribute (@{$dataNode->attributes}) {
+            # FIXME: do this in one step
+            my $hasSetterException = @{$attribute->setterExceptions};
+            my $hasGetterException = @{$attribute->getterExceptions};
+
+            AddIncludesForTypeInCPPImplementation($attribute->signature->type);
+
+            my %attributes = GenerateCPPAttribute($attribute, $className, $implementationClass);
+            push(@CPPImplementationContent, values(%attributes));
+        }
+    }
+
+    # - Add functions.
+    if ($numFunctions > 0) {
+        push(@CPPImplementationContent, "// Functions\n\n");
+
+        foreach my $function (@{$dataNode->functions}) {
+            my $functionImplementation = GenerateCPPFunction($function, $className, $implementationClass);
+            push(@CPPImplementationContent, $functionImplementation);
+        }
+    }
+
+    # - Default implementation for interface creator.
+    # FIXME: add extended attribute to add custom implementation if necessary.
+    push(@CPPImplementationContent, "${interfaceName}* to${interfaceName}(${implementationClass}* impl)\n");
+    push(@CPPImplementationContent, "{\n");
+    push(@CPPImplementationContent, "    return ${className}::createInstance(impl);\n");
+    push(@CPPImplementationContent, "}\n");
+}
+
+sub WriteData
+{
+    my ($object, $name, $pureInterface) = @_;
+
+    # -- IDL --
+    my $IDLFileName = "$outputDir/I" . $TEMP_PREFIX . "DOM" . $name . ".idl";
+    unlink($IDLFileName);
+
+    # Write to output IDL.
+    open(OUTPUTIDL, ">$IDLFileName") or die "Couldn't open file $IDLFileName";
+
+    # Add header
+    print OUTPUTIDL @IDLHeader;
+
+    # Add forward declarations and imorts
+    delete $IDLForwardDeclarations{keys(%IDLDontForwardDeclare)};\r
+    delete $IDLImports{keys(%IDLDontImport)};
+
+    print OUTPUTIDL map { "cpp_quote(\"interface $_;\")\n" } sort keys(%IDLForwardDeclarations);
+    print OUTPUTIDL "\n";
+
+    print OUTPUTIDL map { "interface $_;\n" } sort keys(%IDLForwardDeclarations);
+    print OUTPUTIDL "\n";
+    print OUTPUTIDL map { ($_ eq "IGEN_DOMImplementation") ? "import \"IGEN_DOMDOMImplementation.idl\";\n" : "import \"$_.idl\";\n" } sort keys(%IDLImports);
+    print OUTPUTIDL "\n";
+
+    # Add content
+    print OUTPUTIDL @IDLContent;
+
+    close(OUTPUTIDL);
+
+    @IDLHeader = ();
+    @IDLContent = ();
+
+    if ($pureInterface) {
+        my $CPPInterfaceHeaderFileName = "$outputDir/" . $TEMP_PREFIX . "DOM" . $name . ".h";
+        unlink($CPPInterfaceHeaderFileName);
+
+        open(OUTPUTCPPInterfaceHeader, ">$CPPInterfaceHeaderFileName") or die "Couldn't open file $CPPInterfaceHeaderFileName";
+
+        print OUTPUTCPPInterfaceHeader @CPPInterfaceHeader;
+
+        close(OUTPUTCPPInterfaceHeader);
+
+        @CPPInterfaceHeader = ();
+    } else {
+        my $CPPHeaderFileName = "$outputDir/" . $TEMP_PREFIX . "DOM" . $name . ".h";
+        unlink($CPPHeaderFileName);
+
+        # -- CPP Header --
+        open(OUTPUTCPPHeader, ">$CPPHeaderFileName") or die "Couldn't open file $CPPHeaderFileName";
+
+        # Add header
+        print OUTPUTCPPHeader @CPPHeaderHeader;
+
+        # Add includes
+        print OUTPUTCPPHeader map { ($_ eq "GEN_DOMImplementation.h") ? "#include \"GEN_DOMDOMImplementation.h\"\n" : "#include \"$_\"\n" } sort keys(%CPPHeaderIncludes);
+        print OUTPUTCPPHeader map { "#include <$_>\n" } sort keys(%CPPHeaderIncludesAngle);
+
+        foreach my $dontDeclare (keys(%CPPHeaderDontForwardDeclarations)) {
+            delete $CPPHeaderForwardDeclarations{$dontDeclare} if ($CPPHeaderForwardDeclarations{$dontDeclare});
+        }
+        print OUTPUTCPPHeader "\n";
+        print OUTPUTCPPHeader map { "interface $_;\n" } sort keys(%CPPHeaderForwardDeclarations);
+        print OUTPUTCPPHeader "\n";
+
+        # Add content
+        print OUTPUTCPPHeader @CPPHeaderContent;
+
+        close(OUTPUTCPPHeader);
+
+        @CPPHeaderHeader = ();
+        @CPPHeaderContent = ();
+
+
+        # -- CPP Implementation --
+        my $CPPImplementationFileName = "$outputDir/" . $TEMP_PREFIX . "DOM" . $name . ".cpp";
+        unlink($CPPImplementationFileName);
+
+        open(OUTPUTCPPImplementation, ">$CPPImplementationFileName") or die "Couldn't open file $CPPImplementationFileName";
+
+        # Add header
+        print OUTPUTCPPImplementation @CPPImplementationHeader;
+        print OUTPUTCPPImplementation "\n";
+
+        # Add includes
+        foreach my $dontInclude (keys(%CPPImplementationDontIncludes)) {
+            delete $CPPImplementationIncludes{$dontInclude} if ($CPPImplementationIncludes{$dontInclude});
+        }
+        print OUTPUTCPPImplementation map { ($_ eq "GEN_DOMImplementation.h") ? "#include \"GEN_DOMDOMImplementation.h\"\n" : "#include \"$_\"\n" } sort keys(%CPPImplementationIncludes);
+        print OUTPUTCPPImplementation map { "#include <$_>\n" } sort keys(%CPPImplementationIncludesAngle);
+        print OUTPUTCPPImplementation "\n";
+
+        print OUTPUTCPPImplementation "#pragma warning(push, 0)\n";
+        print OUTPUTCPPImplementation map { "#include <WebCore/$_>\n" } sort keys(%CPPImplementationWebCoreIncludes);
+        print OUTPUTCPPImplementation "#pragma warning(pop)\n";
+
+        # Add content
+        print OUTPUTCPPImplementation @CPPImplementationContent;
+
+        close(OUTPUTCPPImplementation);
+
+        @CPPImplementationHeader = ();
+        @CPPImplementationContent = ();
+    }
+}
+
+1;
index 842602646041771d33cb68e92de13b5740c5ef22..2b7253e7094c79637c27c29f391218b0ef9560c0 100644 (file)
@@ -30,7 +30,7 @@ namespace WebCore {
     class EventListener : public Shared<EventListener> {
     public:
         virtual ~EventListener() { }
-        virtual void handleEvent(Event*, bool isWindowEvent) = 0;
+        virtual void handleEvent(Event*, bool isWindowEvent = false) = 0;
         virtual bool isHTMLEventListener() const { return false; }
     };
 
index 8460a829678fd1a8e561724e298243bed8a89540..a90481e62b3a219c115d0f520b7d708ecff3cf2b 100644 (file)
@@ -1,3 +1,61 @@
+2007-11-04  Sam Weinig  <sam@webkit.org>
+
+        Reviewed by Adam Roben.
+
+        <rdar://problem/5435940>
+        The COM bindings for the DOM should be autogenerated like the other DOM bindings
+
+        Initial commit of the autogeneration of the COM DOM Bindings.  No behavior change
+        is being introduced in this patch and to insure that no conflicts arise, a temporary
+        prefix of "GEN_" has been used for all the new classes.
+
+        The build architecture for these bindings differs slightly from the other autogenerated
+        bindings.  Instead of building in WebCore and migrating the resuting code to WebKit (as
+        is done for the Objective-C bindigs currently), the IDLs and generation scripts are
+        migrated to WebKit and built there.  This is done with a series of scripts and Makefiles.
+
+        This commit includes:
+            - Hand rolled root class/Interface GEN_DOMObject used to facilated object creation
+              and ref-counting.
+            - Generating all of the Core DOM and most of HTML and CSS
+            - Generating Event, EventTarget, and EventListener
+
+        * DOMCreateInstance.cpp: Added.
+        (domWrapperCache):
+        (getDOMWrapper):
+        (setDOMWrapper):
+        (removeDOMWrapper):
+        (GEN_DOMNode::createInstance):
+        (GEN_DOMImplementation::createInstance):
+        (GEN_DOMCSSRule::createInstance):
+        (GEN_DOMStyleSheet::createInstance):
+        (GEN_DOMCSSValue::createInstance):
+        * DOMCreateInstance.h: Added.
+        Temporary location for createInstance/object caching methods.  This will be broken up
+        into seperate files in the near future.
+
+        * GEN_DOMObject.cpp: Added.
+        (GEN_DOMObject::GEN_DOMObject):
+        (GEN_DOMObject::~GEN_DOMObject):
+        (GEN_DOMObject::QueryInterface):
+        (GEN_DOMObject::AddRef):
+        (GEN_DOMObject::Release):
+        * GEN_DOMObject.h: Added.
+        Hand rolled base class.
+
+        * Interfaces/IGEN_DOMObject.idl: Added. 
+        Hand rolled base interface.
+
+        * WebKit.vcproj/DerivedSources.make: Added.
+        * WebKit.vcproj/FixMIDLHeaders.pl: Added.
+        This script is required because MIDL is producing un-buildable code due to
+        circular dependencies.
+
+        * WebKit.vcproj/Interfaces.vcproj:
+        * WebKit.vcproj/WebKit.vcproj:
+        * WebKit.vcproj/WebKitGUID.vcproj:
+        * WebKit.vcproj/build-generated-files.sh: Added.
+
 2007-11-08  Kevin McCullough  <kmccullough@apple.com>
 
         Reviewed by Adam.
diff --git a/WebKit/win/DOMCreateInstance.cpp b/WebKit/win/DOMCreateInstance.cpp
new file mode 100644 (file)
index 0000000..78b2d4e
--- /dev/null
@@ -0,0 +1,359 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// This file is a temporary hack to implement the createInstance methods for
+// the COM DOM bindings.
+
+#include "config.h"
+#include "DOMCreateInstance.h"
+
+#include "GEN_DOMNode.h"
+#include "GEN_DOMElement.h"
+#include "GEN_DOMDocument.h"
+#include "GEN_DOMAttr.h"
+#include "GEN_DOMText.h"
+#include "GEN_DOMCDATASection.h"
+#include "GEN_DOMEntityReference.h"
+#include "GEN_DOMEntity.h"
+#include "GEN_DOMProcessingInstruction.h"
+#include "GEN_DOMComment.h"
+#include "GEN_DOMHTMLElement.h"
+#include "GEN_DOMHTMLDocument.h"
+#include "GEN_DOMHTMLCollection.h"
+#include "GEN_DOMDocumentType.h"
+#include "GEN_DOMDocumentFragment.h"
+#include "GEN_DOMNotation.h"
+#include "GEN_DOMCSSCharsetRule.h"
+#include "GEN_DOMCSSFontFaceRule.h"
+#include "GEN_DOMCSSImportRule.h"
+#include "GEN_DOMCSSMediaRule.h"
+#include "GEN_DOMCSSPageRule.h"
+#include "GEN_DOMCSSPrimitiveValue.h"
+#include "GEN_DOMCSSRule.h"
+#include "GEN_DOMCSSRuleList.h"
+#include "GEN_DOMCSSStyleDeclaration.h"
+#include "GEN_DOMCSSStyleRule.h"
+#include "GEN_DOMCSSStyleSheet.h"
+#include "GEN_DOMCSSValueList.h"
+#include "GEN_DOMStyleSheet.h"
+#include "GEN_DOMDOMImplementation.h"
+#include "GEN_DOMNamedNodeMap.h"
+#include "GEN_DOMNodeList.h"
+#include "GEN_DOMCounter.h"
+#include "GEN_DOMCSSRuleList.h"
+#include "GEN_DOMCSSStyleDeclaration.h"
+#include "GEN_DOMMediaList.h"
+#include "GEN_DOMRect.h"
+#include "GEN_DOMStyleSheet.h"
+#include "GEN_DOMStyleSheetList.h"
+#include "GEN_DOMEvent.h"
+#include "GEN_DOMEventListener.h"
+#include "GEN_DOMEvent.h"
+#include <wtf/HashMap.h>
+
+#pragma warning(push, 0)
+#include <WebCore/Node.h>
+#include <WebCore/Element.h>
+#include <WebCore/Document.h>
+#include <WebCore/Attr.h>
+#include <WebCore/Text.h>
+#include <WebCore/COMPtr.h>
+#include <WebCore/CDATASection.h>
+#include <WebCore/EntityReference.h>
+#include <WebCore/Entity.h>
+#include <WebCore/ProcessingInstruction.h>
+#include <WebCore/Comment.h>
+#include <WebCore/HTMLDocument.h>
+#include <WebCore/HTMLElement.h>
+#include <WebCore/HTMLCollection.h>
+#include <WebCore/DocumentType.h>
+#include <WebCore/DocumentFragment.h>
+#include <WebCore/Notation.h>
+#include <WebCore/CSSCharsetRule.h>
+#include <WebCore/CSSFontFaceRule.h>
+#include <WebCore/CSSImportRule.h>
+#include <WebCore/CSSMediaRule.h>
+#include <WebCore/CSSPageRule.h>
+#include <WebCore/CSSPrimitiveValue.h>
+#include <WebCore/CSSRule.h>
+#include <WebCore/CSSRuleList.h>
+#include <WebCore/CSSStyleDeclaration.h>
+#include <WebCore/CSSStyleRule.h>
+#include <WebCore/CSSStyleSheet.h>
+#include <WebCore/CSSValueList.h>
+#include <WebCore/StyleSheet.h>
+#include <WebCore/DOMImplementation.h>
+#include <WebCore/NamedNodeMap.h>
+#include <WebCore/NodeList.h>
+#include <WebCore/Counter.h>
+#include <WebCore/CSSRuleList.h>
+#include <WebCore/CSSStyleDeclaration.h>
+#include <WebCore/MediaList.h>
+#include <WebCore/Rect.h>
+#include <WebCore/StyleSheet.h>
+#include <WebCore/StyleSheetList.h>
+#include <WebCore/Event.h>
+#include <WebCore/EventListener.h>
+#pragma warning(pop)
+
+typedef HashMap<void*, GEN_DOMObject*> DOMWrapperCache;
+
+static DOMWrapperCache& domWrapperCache()
+{
+    static DOMWrapperCache cache;
+    return cache;
+}
+
+GEN_DOMObject* getDOMWrapper(void* objectHandle)
+{
+    return domWrapperCache().get(objectHandle);
+}
+
+void setDOMWrapper(void* objectHandle, GEN_DOMObject* wrapper)
+{
+    domWrapperCache().set(objectHandle, wrapper);
+}
+
+void removeDOMWrapper(void* objectHandle)
+{
+    domWrapperCache().remove(objectHandle);
+}
+
+#define COM_DOM_PREFIX(Type) GEN_DOM##Type
+#define CREATE_ONLY_SELF(Type) \
+    COM_DOM_PREFIX(Type)* COM_DOM_PREFIX(Type)::createInstance(WebCore::Type* impl) \
+    { \
+        if (!impl) \
+            return 0; \
+        if (GEN_DOMObject* cachedInstance = getDOMWrapper(impl)) { \
+            cachedInstance->AddRef(); \
+            return static_cast<COM_DOM_PREFIX(Type)*>(cachedInstance); \
+        } \
+        COMPtr<COM_DOM_PREFIX(Type)> comDOMObject = new COM_DOM_PREFIX(Type)(impl); \
+        setDOMWrapper(impl, comDOMObject.get()); \
+        return comDOMObject.releaseRef(); \
+    } \
+
+// Core
+
+GEN_DOMNode* GEN_DOMNode::createInstance(WebCore::Node* node)
+{
+    if (!node)
+        return 0;
+
+    if (GEN_DOMObject* cachedInstance = getDOMWrapper(node)) {
+        cachedInstance->AddRef();
+        return static_cast<GEN_DOMNode*>(cachedInstance);
+    }
+
+    COMPtr<GEN_DOMNode> domNode;
+    switch (node->nodeType()) {
+        case WebCore::Node::ELEMENT_NODE:
+            // FIXME: add support for creating subclasses of HTMLElement.
+            // FIXME: add support for creating SVGElements and its subclasses.
+            if (node->isHTMLElement())
+                domNode = new GEN_DOMHTMLElement(static_cast<WebCore::HTMLElement*>(node));
+            else
+                domNode = new GEN_DOMElement(static_cast<WebCore::Element*>(node));
+            break;
+        case WebCore::Node::ATTRIBUTE_NODE:
+            domNode = new GEN_DOMAttr(static_cast<WebCore::Attr*>(node));
+            break;
+        case WebCore::Node::TEXT_NODE:
+            domNode = new GEN_DOMText(static_cast<WebCore::Text*>(node));
+            break;
+        case WebCore::Node::CDATA_SECTION_NODE:
+            domNode = new GEN_DOMCDATASection(static_cast<WebCore::CDATASection*>(node));
+            break;
+        case WebCore::Node::ENTITY_REFERENCE_NODE:
+            domNode = new GEN_DOMEntityReference(static_cast<WebCore::EntityReference*>(node));
+            break;
+        case WebCore::Node::ENTITY_NODE:
+            domNode = new GEN_DOMEntity(static_cast<WebCore::Entity*>(node));
+            break;
+        case WebCore::Node::PROCESSING_INSTRUCTION_NODE:
+            domNode = new GEN_DOMProcessingInstruction(static_cast<WebCore::ProcessingInstruction*>(node));
+            break;
+        case WebCore::Node::COMMENT_NODE:
+            domNode = new GEN_DOMComment(static_cast<WebCore::Comment*>(node));
+            break;
+        case WebCore::Node::DOCUMENT_NODE:
+            // FIXME: add support for SVGDocument.
+            if (static_cast<WebCore::Document*>(node)->isHTMLDocument())
+                domNode = new GEN_DOMHTMLDocument(static_cast<WebCore::HTMLDocument*>(node));
+            else
+                domNode = new GEN_DOMDocument(static_cast<WebCore::Document*>(node));
+            break;
+        case WebCore::Node::DOCUMENT_TYPE_NODE:
+            domNode = new GEN_DOMDocumentType(static_cast<WebCore::DocumentType*>(node));
+            break;
+        case WebCore::Node::DOCUMENT_FRAGMENT_NODE:
+            domNode = new GEN_DOMDocumentFragment(static_cast<WebCore::DocumentFragment*>(node));
+            break;
+        case WebCore::Node::NOTATION_NODE:
+            domNode = new GEN_DOMNotation(static_cast<WebCore::Notation*>(node));
+            break;
+        default:
+            domNode = new GEN_DOMNode(node);
+            break;
+    }
+
+    setDOMWrapper(node, domNode.get());
+    return domNode.releaseRef();
+}
+
+GEN_DOMImplementation* GEN_DOMImplementation::createInstance(WebCore::DOMImplementation* impl)
+{
+    if (!impl)
+        return 0;
+
+    if (GEN_DOMObject* cachedInstance = getDOMWrapper(impl)) {
+        cachedInstance->AddRef();
+        return static_cast<GEN_DOMImplementation*>(cachedInstance);
+    }
+
+    COMPtr<GEN_DOMImplementation> comDOMObject = new GEN_DOMImplementation(impl);
+    setDOMWrapper(impl, comDOMObject.get());
+    return comDOMObject.releaseRef();
+}
+
+CREATE_ONLY_SELF(NamedNodeMap)
+CREATE_ONLY_SELF(NodeList)
+
+// Events
+
+// FIXME: Add the subclasses for Event when they get generated.
+CREATE_ONLY_SELF(Event)
+CREATE_ONLY_SELF(EventListener)
+
+
+// CSS
+
+GEN_DOMCSSRule* GEN_DOMCSSRule::createInstance(WebCore::CSSRule* rule)
+{
+    if (!rule)
+        return 0;
+
+    if (GEN_DOMObject* cachedInstance = getDOMWrapper(rule)) {
+        cachedInstance->AddRef();
+        return static_cast<GEN_DOMCSSRule*>(cachedInstance);
+    }
+
+    COMPtr<GEN_DOMCSSRule> domRule;
+    switch (rule->type()) {
+        case WebCore::CSSRule::STYLE_RULE:
+            domRule = new GEN_DOMCSSStyleRule(static_cast<WebCore::CSSStyleRule*>(rule));
+            break;
+        case WebCore::CSSRule::CHARSET_RULE:
+            domRule = new GEN_DOMCSSCharsetRule(static_cast<WebCore::CSSCharsetRule*>(rule));
+            break;
+        case WebCore::CSSRule::IMPORT_RULE:
+            domRule = new GEN_DOMCSSImportRule(static_cast<WebCore::CSSImportRule*>(rule));
+            break;
+        case WebCore::CSSRule::MEDIA_RULE:
+            domRule = new GEN_DOMCSSMediaRule(static_cast<WebCore::CSSMediaRule*>(rule));
+            break;
+        case WebCore::CSSRule::FONT_FACE_RULE:
+            domRule = new GEN_DOMCSSFontFaceRule(static_cast<WebCore::CSSFontFaceRule*>(rule));
+            break;
+        case WebCore::CSSRule::PAGE_RULE:
+            domRule = new GEN_DOMCSSPageRule(static_cast<WebCore::CSSPageRule*>(rule));
+            break;
+        case WebCore::CSSRule::UNKNOWN_RULE:
+        default:
+            domRule = new GEN_DOMCSSRule(rule);
+            break;
+    }
+
+    setDOMWrapper(rule, domRule.get());
+    return domRule.releaseRef();
+}
+
+GEN_DOMStyleSheet* GEN_DOMStyleSheet::createInstance(WebCore::StyleSheet* styleSheet)
+{
+    if (!styleSheet)
+        return 0;
+
+    if (GEN_DOMObject* cachedInstance = getDOMWrapper(styleSheet)) {
+        cachedInstance->AddRef();
+        return static_cast<GEN_DOMStyleSheet*>(cachedInstance);
+    }
+
+    COMPtr<GEN_DOMStyleSheet> domStyleSheet;
+    if (styleSheet->isCSSStyleSheet())
+        domStyleSheet = new GEN_DOMCSSStyleSheet(static_cast<WebCore::CSSStyleSheet*>(styleSheet));
+    else
+        domStyleSheet = new GEN_DOMStyleSheet(styleSheet);
+
+    setDOMWrapper(styleSheet, domStyleSheet.get());
+    return domStyleSheet.releaseRef();
+}
+
+
+GEN_DOMCSSValue* GEN_DOMCSSValue::createInstance(WebCore::CSSValue* value)
+{
+    if (!value)
+        return 0;
+
+    if (GEN_DOMObject* cachedInstance = getDOMWrapper(value)) {
+        cachedInstance->AddRef();
+        return static_cast<GEN_DOMCSSValue*>(cachedInstance);
+    }
+
+    COMPtr<GEN_DOMCSSValue> domValue;
+    switch (value->cssValueType()) {
+        case WebCore::CSSValue::CSS_PRIMITIVE_VALUE:
+            domValue = new GEN_DOMCSSPrimitiveValue(static_cast<WebCore::CSSPrimitiveValue*>(value));
+            break;
+        case WebCore::CSSValue::CSS_VALUE_LIST:
+            domValue = new GEN_DOMCSSValueList(static_cast<WebCore::CSSValueList*>(value));
+            break;
+        case WebCore::CSSValue::CSS_INHERIT:
+            domValue = new GEN_DOMCSSValue(value);
+            break;
+        case WebCore::CSSValue::CSS_CUSTOM:
+            // FIXME: add support for SVGPaint and SVGColor
+            domValue = new GEN_DOMCSSValue(value);
+            break;
+    }
+
+    setDOMWrapper(value, domValue.get());
+    return domValue.releaseRef();
+}
+
+CREATE_ONLY_SELF(Counter)
+CREATE_ONLY_SELF(CSSRuleList)
+CREATE_ONLY_SELF(CSSStyleDeclaration)
+CREATE_ONLY_SELF(MediaList)
+CREATE_ONLY_SELF(Rect)
+CREATE_ONLY_SELF(StyleSheetList)
+
+
+// HTML
+
+CREATE_ONLY_SELF(HTMLCollection)
diff --git a/WebKit/win/DOMCreateInstance.h b/WebKit/win/DOMCreateInstance.h
new file mode 100644 (file)
index 0000000..a733e84
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef DOMCreateInstance_h
+#define DOMCreateInstance_h
+
+class GEN_DOMObject;
+
+GEN_DOMObject* getDOMWrapper(void* objectHandle);
+void setDOMWrapper(void* objectHandle, GEN_DOMObject* wrapper);
+void removeDOMWrapper(void* objectHandle);
+
+#endif // DOMCreateInstance_h
diff --git a/WebKit/win/GEN_DOMObject.cpp b/WebKit/win/GEN_DOMObject.cpp
new file mode 100644 (file)
index 0000000..1ba0875
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "WebKitDLL.h"
+
+#include "GEN_DOMObject.h"
+
+#include <wtf/Assertions.h>
+
+// DOMObject ------------------------------------------------------------
+
+GEN_DOMObject::GEN_DOMObject()
+    : m_refCount(0)
+{
+    gClassCount++;
+}
+
+GEN_DOMObject::~GEN_DOMObject()
+{
+    gClassCount--;
+}
+
+// IUnknown -------------------------------------------------------------------
+
+HRESULT STDMETHODCALLTYPE GEN_DOMObject::QueryInterface(REFIID riid, void** ppvObject)
+{
+    *ppvObject = 0;
+    if (IsEqualGUID(riid, IID_IUnknown))
+        *ppvObject = static_cast<IGEN_DOMObject*>(this);
+    else if (IsEqualGUID(riid, IID_IGEN_DOMObject))
+        *ppvObject = static_cast<GEN_DOMObject*>(this);
+    else
+        return E_NOINTERFACE;
+
+    AddRef();
+    return S_OK;
+}
+
+ULONG STDMETHODCALLTYPE GEN_DOMObject::AddRef()
+{
+    return ++m_refCount;
+}
+
+ULONG STDMETHODCALLTYPE GEN_DOMObject::Release()
+{
+    ULONG newRef = --m_refCount;
+    if (!newRef)
+        delete this;
+
+    return newRef;
+}
diff --git a/WebKit/win/GEN_DOMObject.h b/WebKit/win/GEN_DOMObject.h
new file mode 100644 (file)
index 0000000..a19a9cb
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef GEN_DOMObject_h
+#define GEN_DOMObject_h
+
+#include "IGEN_DOMObject.h"
+
+class GEN_DOMObject : public IGEN_DOMObject {
+public:
+    // IUnknown
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, void** ppvObject);
+    virtual ULONG STDMETHODCALLTYPE AddRef();
+    virtual ULONG STDMETHODCALLTYPE Release();
+
+protected:
+    GEN_DOMObject();
+    virtual ~GEN_DOMObject();
+
+    ULONG m_refCount;
+};
+
+#endif // GEN_DOMObject_h
diff --git a/WebKit/win/Interfaces/IGEN_DOMObject.idl b/WebKit/win/Interfaces/IGEN_DOMObject.idl
new file mode 100644 (file)
index 0000000..f176e16
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2007 Apple Inc.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+cpp_quote("/*")\r
+cpp_quote(" * Copyright (C) 2007 Apple Inc.  All rights reserved.")\r
+cpp_quote(" *")\r
+cpp_quote(" * Redistribution and use in source and binary forms, with or without")\r
+cpp_quote(" * modification, are permitted provided that the following conditions")\r
+cpp_quote(" * are met:")\r
+cpp_quote(" *")\r
+cpp_quote(" * 1.  Redistributions of source code must retain the above copyright")\r
+cpp_quote(" *     notice, this list of conditions and the following disclaimer.")\r
+cpp_quote(" * 2.  Redistributions in binary form must reproduce the above copyright")\r
+cpp_quote(" *     notice, this list of conditions and the following disclaimer in the")\r
+cpp_quote(" *     documentation and/or other materials provided with the distribution.")\r
+cpp_quote(" * 3.  Neither the name of Apple Computer, Inc. (\"Apple\") nor the names of")\r
+cpp_quote(" *     its contributors may be used to endorse or promote products derived")\r
+cpp_quote(" *     from this software without specific prior written permission.")\r
+cpp_quote(" *")\r
+cpp_quote(" * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS \"AS IS\" AND ANY")\r
+cpp_quote(" * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED")\r
+cpp_quote(" * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE")\r
+cpp_quote(" * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY")\r
+cpp_quote(" * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES")\r
+cpp_quote(" * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;")\r
+cpp_quote(" * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND")\r
+cpp_quote(" * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT")\r
+cpp_quote(" * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF")\r
+cpp_quote(" * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.")\r
+cpp_quote(" */")
+
+import "oaidl.idl";
+import "ocidl.idl";
+
+[
+    object,
+    oleautomation,
+    uuid(19DD35E3-BFEC-40f5-A69F-02C5D76791E4),
+    pointer_default(unique)
+]
+interface IGEN_DOMObject : IUnknown
+{
+}
diff --git a/WebKit/win/WebKit.vcproj/DerivedSources.make b/WebKit/win/WebKit.vcproj/DerivedSources.make
new file mode 100644 (file)
index 0000000..ce2d670
--- /dev/null
@@ -0,0 +1,149 @@
+# Copyright (C) 2007 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1.  Redistributions of source code must retain the above copyright
+#     notice, this list of conditions and the following disclaimer. 
+# 2.  Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution. 
+# 3.  Neither the name of Apple puter, Inc. ("Apple") nor the names of
+#     its contributors may be used to endorse or promote products derived
+#     from this software without specific prior written permission. 
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PREFIX = IGEN_DOM
+
+.PHONY : all
+all : \
+    $(PREFIX)Node.idl \
+    $(PREFIX)Attr.idl \
+    $(PREFIX)NodeList.idl \
+    $(PREFIX)Element.idl \
+    $(PREFIX)Document.idl \
+    $(PREFIX)CharacterData.idl \
+    $(PREFIX)CDATASection.idl \
+    $(PREFIX)Comment.idl \
+    $(PREFIX)Text.idl \
+    $(PREFIX)DocumentFragment.idl \
+    $(PREFIX)DocumentType.idl \
+    $(PREFIX)DOMImplementation.idl \
+    $(PREFIX)Entity.idl \
+    $(PREFIX)EntityReference.idl \
+    $(PREFIX)NamedNodeMap.idl \
+    $(PREFIX)Notation.idl \
+    $(PREFIX)ProcessingInstruction.idl \
+    \
+    $(PREFIX)HTMLAnchorElement.idl \
+    $(PREFIX)HTMLAppletElement.idl \
+    $(PREFIX)HTMLAreaElement.idl \
+    $(PREFIX)HTMLBRElement.idl \
+    $(PREFIX)HTMLBaseElement.idl \
+    $(PREFIX)HTMLBaseFontElement.idl \
+    $(PREFIX)HTMLBlockquoteElement.idl \
+    $(PREFIX)HTMLBodyElement.idl \
+    $(PREFIX)HTMLButtonElement.idl \
+    $(PREFIX)HTMLCollection.idl \
+    $(PREFIX)HTMLDListElement.idl \
+    $(PREFIX)HTMLDirectoryElement.idl \
+    $(PREFIX)HTMLDivElement.idl \
+    $(PREFIX)HTMLDocument.idl \
+    $(PREFIX)HTMLElement.idl \
+    $(PREFIX)HTMLEmbedElement.idl \
+    $(PREFIX)HTMLFieldSetElement.idl \
+    $(PREFIX)HTMLFontElement.idl \
+    $(PREFIX)HTMLFormElement.idl \
+    $(PREFIX)HTMLFrameElement.idl \
+    $(PREFIX)HTMLFrameSetElement.idl \
+    $(PREFIX)HTMLHRElement.idl \
+    $(PREFIX)HTMLHeadElement.idl \
+    $(PREFIX)HTMLHeadingElement.idl \
+    $(PREFIX)HTMLHtmlElement.idl \
+    $(PREFIX)HTMLIFrameElement.idl \
+    $(PREFIX)HTMLImageElement.idl \
+    $(PREFIX)HTMLInputElement.idl \
+    $(PREFIX)HTMLIsIndexElement.idl \
+    $(PREFIX)HTMLLIElement.idl \
+    $(PREFIX)HTMLLabelElement.idl \
+    $(PREFIX)HTMLLegendElement.idl \
+    $(PREFIX)HTMLLinkElement.idl \
+    $(PREFIX)HTMLMapElement.idl \
+    $(PREFIX)HTMLMarqueeElement.idl \
+    $(PREFIX)HTMLMenuElement.idl \
+    $(PREFIX)HTMLMetaElement.idl \
+    $(PREFIX)HTMLModElement.idl \
+    $(PREFIX)HTMLOListElement.idl \
+    $(PREFIX)HTMLObjectElement.idl \
+    $(PREFIX)HTMLOptGroupElement.idl \
+    $(PREFIX)HTMLOptionElement.idl \
+    $(PREFIX)HTMLOptionsCollection.idl \
+    $(PREFIX)HTMLParagraphElement.idl \
+    $(PREFIX)HTMLParamElement.idl \
+    $(PREFIX)HTMLPreElement.idl \
+    $(PREFIX)HTMLQuoteElement.idl \
+    $(PREFIX)HTMLScriptElement.idl \
+    $(PREFIX)HTMLSelectElement.idl \
+    $(PREFIX)HTMLStyleElement.idl \
+    $(PREFIX)HTMLTableCaptionElement.idl \
+    $(PREFIX)HTMLTableCellElement.idl \
+    $(PREFIX)HTMLTableColElement.idl \
+    $(PREFIX)HTMLTableElement.idl \
+    $(PREFIX)HTMLTableRowElement.idl \
+    $(PREFIX)HTMLTableSectionElement.idl \
+    $(PREFIX)HTMLTextAreaElement.idl \
+    $(PREFIX)HTMLTitleElement.idl \
+    $(PREFIX)HTMLUListElement.idl \
+    \
+    $(PREFIX)CSSCharsetRule.idl \
+    $(PREFIX)CSSFontFaceRule.idl \
+    $(PREFIX)CSSImportRule.idl \
+    $(PREFIX)CSSMediaRule.idl \
+    $(PREFIX)CSSPageRule.idl \
+    $(PREFIX)CSSPrimitiveValue.idl \
+    $(PREFIX)CSSRule.idl \
+    $(PREFIX)CSSRuleList.idl \
+    $(PREFIX)CSSStyleDeclaration.idl \
+    $(PREFIX)CSSStyleRule.idl \
+    $(PREFIX)CSSStyleSheet.idl \
+    $(PREFIX)CSSUnknownRule.idl \
+    $(PREFIX)CSSValue.idl \
+    $(PREFIX)CSSValueList.idl \
+    $(PREFIX)Counter.idl \
+    $(PREFIX)MediaList.idl \
+    $(PREFIX)Rect.idl \
+    $(PREFIX)StyleSheet.idl \
+    $(PREFIX)StyleSheetList.idl \
+    \
+    $(PREFIX)Event.idl \
+    $(PREFIX)EventTarget.idl \
+    $(PREFIX)EventListener.idl \
+#
+
+# $(PREFIX)CanvasGradient.idl \
+# $(PREFIX)CanvasPattern.idl \
+# $(PREFIX)CanvasRenderingContext2D.idl \
+# $(PREFIX)HTMLCanvasElement.idl \
+# $(PREFIX)RGBColor.idl \
+
+COM_BINDINGS_SCRIPTS = \
+    $(WEBKIT_OUTPUT)/obj/WebKit/DOMInterfaces/CodeGenerator.pm \
+    $(WEBKIT_OUTPUT)/obj/WebKit/DOMInterfaces/CodeGeneratorCOM.pm \
+    $(WEBKIT_OUTPUT)/obj/WebKit/DOMInterfaces/IDLParser.pm \
+    $(WEBKIT_OUTPUT)/obj/WebKit/DOMInterfaces/IDLStructure.pm \
+    $(WEBKIT_OUTPUT)/obj/WebKit/DOMInterfaces/generate-bindings.pl \
+#
+
+$(PREFIX)%.idl : $(WEBKIT_OUTPUT)/obj/WebKit/DOMInterfaces/%.idl $(COM_BINDINGS_SCRIPTS)
+       perl -I $(WEBKIT_OUTPUT)/obj/WebKit/DOMInterfaces/ $(WEBKIT_OUTPUT)/obj/WebKit/DOMInterfaces/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_COM" --generator COM --include $(WEBKIT_OUTPUT)/obj/WebKit/DOMInterfaces/ --outputdir . $<
diff --git a/WebKit/win/WebKit.vcproj/FixMIDLHeaders.pl b/WebKit/win/WebKit.vcproj/FixMIDLHeaders.pl
new file mode 100644 (file)
index 0000000..17bdefd
--- /dev/null
@@ -0,0 +1,83 @@
+#! /usr/bin/perl -w
+
+# Copyright (C) 2007 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1.  Redistributions of source code must retain the above copyright
+#     notice, this list of conditions and the following disclaimer. 
+# 2.  Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution. 
+# 3.  Neither the name of Apple puter, Inc. ("Apple") nor the names of
+#     its contributors may be used to endorse or promote products derived
+#     from this software without specific prior written permission. 
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# This script cleans up the headers that MIDL (Microsoft's IDL Parser/Generator)
+# outputs to only #include the parent interface avoiding circular dependencies
+# that MIDL creates.
+
+use File::Find;
+use strict;
+use warnings;
+
+my $dir = $ARGV[0];
+
+$dir = `cygpath -u '$dir'`;
+chomp($dir);
+
+find(\&finder, $dir);
+
+sub finder
+{
+    my $fileName = $_;
+
+    return unless ($fileName =~ /IGEN_DOM(.*)\.h/);
+
+    print "Processing $fileName\n";
+
+    open(IN, "<", $fileName);
+    my @contents = <IN>;
+    close(IN);
+
+    open(OUT, ">", $fileName);
+
+    my $state = 0;
+    foreach my $line (@contents) {
+        if ($line =~ /^\/\* header files for imported files \*\//) {
+            $state = 1;
+            print "Found start comment.\n";
+        } elsif ($line =~ /^#include "oaidl\.h"/) {
+            die "#include \"oaidl.h\" did not come second" if $state != 1;
+            $state = 2;
+            print "Found oaidl.h include.\n";
+        } elsif ($line =~ /^#include "ocidl\.h"/) {
+            die "#include \"ocidl.h\" did not come third" if $state != 2;
+            $state = 3;
+            print "Found ocidl.h include.\n";
+        } elsif ($line =~ /^#include "IGEN_DOM/ && $state == 3) {
+            $state = 4;
+            print "Found parent include.\n";
+        } elsif ($line =~ /^#include "(IGEN_DOM.*)\.h"/ && $state == 4) {
+            print "Removing include.\n";
+            next;
+        }
+
+        print OUT $line;
+    }
+
+    close(OUT);
+}
index 5f6ff4567dfa6855de19dd18a1d53389a2f81b40..5352be86a63e66b7a774a4b9c320bd8187d1ae8e 100644 (file)
@@ -25,7 +25,7 @@
                        >\r
                        <Tool\r
                                Name="VCPreBuildEventTool"\r
-                               CommandLine="mkdir 2&gt;NUL &quot;$(WebKitOutputDir)\obj\WebKit\$(ProjectName)&quot;&#x0D;&#x0A;exit /b&#x0D;&#x0A;"\r
+                               CommandLine="bash build-generated-files.sh &quot;$(WebKitOutputDir)&quot;&#x0D;&#x0A;&#x0D;&#x0A;mkdir 2&gt;NUL &quot;$(WebKitOutputDir)\obj\WebKit\$(ProjectName)&quot;&#x0D;&#x0A;exit /b&#x0D;&#x0A;"\r
                        />\r
                        <Tool\r
                                Name="VCCustomBuildTool"\r
@@ -39,7 +39,7 @@
                        <Tool\r
                                Name="VCMIDLTool"\r
                                PreprocessorDefinitions="__BUILDBOT__=0$(BuildBot)"\r
-                               AdditionalIncludeDirectories="..\Interfaces"\r
+                               AdditionalIncludeDirectories="&quot;$(WebKitOutputDir)\obj\WebKit\DerivedSources&quot;;..\Interfaces"\r
                                WarningLevel="1"\r
                                WarnAsError="true"\r
                                GenerateTypeLibrary="false"\r
@@ -98,7 +98,7 @@
                        />\r
                        <Tool\r
                                Name="VCPostBuildEventTool"\r
-                               CommandLine=""\r
+                               CommandLine="perl FixMIDLHeaders.pl &quot;$(WebkitOutputDir)/include/webkit/&quot;"\r
                        />\r
                </Configuration>\r
                <Configuration\r
                        >\r
                        <Tool\r
                                Name="VCPreBuildEventTool"\r
-                               CommandLine="mkdir 2&gt;NUL &quot;$(WebKitOutputDir)\obj\WebKit\$(ProjectName)&quot;&#x0D;&#x0A;exit /b&#x0D;&#x0A;"\r
+                               CommandLine="bash build-generated-files.sh &quot;$(WebKitOutputDir)&quot;&#x0D;&#x0A;&#x0D;&#x0A;mkdir 2&gt;NUL &quot;$(WebKitOutputDir)\obj\WebKit\$(ProjectName)&quot;&#x0D;&#x0A;exit /b&#x0D;&#x0A;"\r
                        />\r
                        <Tool\r
                                Name="VCCustomBuildTool"\r
                        <Tool\r
                                Name="VCMIDLTool"\r
                                PreprocessorDefinitions="__BUILDBOT__=0$(BuildBot)"\r
-                               AdditionalIncludeDirectories="..\Interfaces"\r
+                               AdditionalIncludeDirectories="&quot;$(WebKitOutputDir)\obj\WebKit\DerivedSources&quot;;..\Interfaces"\r
                                WarningLevel="1"\r
                                WarnAsError="true"\r
                                GenerateTypeLibrary="false"\r
                        />\r
                        <Tool\r
                                Name="VCPostBuildEventTool"\r
-                               CommandLine=""\r
+                               CommandLine="perl FixMIDLHeaders.pl &quot;$(WebkitOutputDir)/include/webkit/&quot;"\r
                        />\r
                </Configuration>\r
        </Configurations>\r
        <References>\r
        </References>\r
        <Files>\r
+               <Filter\r
+                       Name="DOM"\r
+                       >\r
+                       <Filter\r
+                               Name="core"\r
+                               >\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMAttr.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCDATASection.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCharacterData.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMComment.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMDocument.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMDocumentFragment.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMDocumentType.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMDOMImplementation.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMEntity.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMEntityReference.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMNamedNodeMap.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMNode.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMNodeList.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMNotation.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\Interfaces\IGEN_DOMObject.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMProcessingInstruction.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMText.idl"\r
+                                       >\r
+                               </File>\r
+                       </Filter>\r
+                       <Filter\r
+                               Name="html"\r
+                               >\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLAnchorElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLAppletElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLAreaElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLBaseElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLBaseFontElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLBlockquoteElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLBodyElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLBRElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLButtonElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLCollection.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLDirectoryElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLDivElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLDListElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLDocument.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLEmbedElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLFieldSetElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLFontElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLFormElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLFrameElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLFrameSetElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLHeadElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLHeadingElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLHRElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLHtmlElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLIFrameElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLImageElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLInputElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLIsIndexElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLLabelElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLLegendElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLLIElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLLinkElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLMapElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLMarqueeElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLMenuElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLMetaElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLModElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLObjectElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLOListElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLOptGroupElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLOptionElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLOptionsCollection.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLParagraphElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLParamElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLPreElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLQuoteElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLScriptElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLSelectElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLStyleElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLTableCaptionElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLTableCellElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLTableColElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLTableElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLTableRowElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLTableSectionElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLTextAreaElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLTitleElement.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLUListElement.idl"\r
+                                       >\r
+                               </File>\r
+                       </Filter>\r
+                       <Filter\r
+                               Name="css"\r
+                               >\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCounter.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSCharsetRule.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSFontFaceRule.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSImportRule.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSMediaRule.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSPageRule.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSPrimitiveValue.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSRule.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSRuleList.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSStyleDeclaration.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSStyleRule.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSStyleSheet.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSUnknownRule.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSValue.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSValueList.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMMediaList.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMRect.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMStyleSheet.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMStyleSheetList.idl"\r
+                                       >\r
+                               </File>\r
+                       </Filter>\r
+                       <Filter\r
+                               Name="events"\r
+                               >\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMEvent.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMEventListener.idl"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMEventTarget.idl"\r
+                                       >\r
+                               </File>\r
+                       </Filter>\r
+               </Filter>\r
                <File\r
                        RelativePath="..\Interfaces\DOMCore.idl"\r
                        >\r
index 16b0367cb4a1ac764dc14bc577bcea56bfb542e1..4b57bbb8b5affbde539edf207e4034f16ef816e9 100644 (file)
@@ -25,7 +25,7 @@
                        >\r
                        <Tool\r
                                Name="VCPreBuildEventTool"\r
-                               CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%&#x0D;&#x0A;touch &quot;$(WebKitOutputDir)\tmp.cpp&quot;&#x0D;&#x0A;cl /analyze /nologo /c &quot;$(WebKitOutputDir)\tmp.cpp&quot; 2&gt;&amp;1 | findstr D9040&#x0D;&#x0A;if ERRORLEVEL 0 set EnablePREfast=&quot;false&quot; else set EnablePREfast=&quot;true&quot;&#x0D;&#x0A;if ERRORLEVEL 0 set AnalyzeWithLargeStack=&quot;&quot; AnalyzeWithLargeStack=&quot;/analyze:65536&quot;&#x0D;&#x0A;&#x0D;&#x0A;mkdir 2&gt;NUL &quot;$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore&quot;&#x0D;&#x0A;xcopy /y /d &quot;$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*&quot; &quot;$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore&quot;&#x0D;&#x0A;&#x0D;&#x0A;bash auto-version.sh &quot;$(InputDir).&quot; &quot;$(IntDir)&quot;&#x0D;&#x0A;&#x0D;&#x0A;"\r
+                               CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%&#x0D;&#x0A;touch &quot;$(WebKitOutputDir)\tmp.cpp&quot;&#x0D;&#x0A;cl /analyze /nologo /c &quot;$(WebKitOutputDir)\tmp.cpp&quot; 2&gt;&amp;1 | findstr D9040&#x0D;&#x0A;if ERRORLEVEL 0 set EnablePREfast=&quot;false&quot; else set EnablePREfast=&quot;true&quot;&#x0D;&#x0A;if ERRORLEVEL 0 set AnalyzeWithLargeStack=&quot;&quot; AnalyzeWithLargeStack=&quot;/analyze:65536&quot;&#x0D;&#x0A;&#x0D;&#x0A;mkdir 2&gt;NUL &quot;$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore&quot;&#x0D;&#x0A;xcopy /y /d &quot;$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*&quot; &quot;$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore&quot;&#x0D;&#x0A;&#x0D;&#x0A;bash auto-version.sh &quot;$(InputDir).&quot; &quot;$(IntDir)&quot;&#x0D;&#x0A;"\r
                        />\r
                        <Tool\r
                                Name="VCCustomBuildTool"\r
@@ -42,7 +42,7 @@
                        <Tool\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
-                               AdditionalIncludeDirectories="&quot;$(WebKitOutputDir)\include\WebKit&quot;;&quot;$(WebKitOutputDir)\Include&quot;;&quot;$(WebKitLibrariesDir)\Include&quot;;&quot;$(WebKitOutputDir)\Include\WebCore&quot;;&quot;$(WebKitLibrariesDir)\Include\WebCore&quot;;&quot;$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders&quot;;&quot;$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders&quot;;&quot;$(WebKitOutputDir)\Include\JavaScriptCore&quot;;&quot;$(WebKitLibrariesDir)\Include\JavaScriptCore&quot;;&quot;$(WebKitOutputDir)\Include\icu&quot;;&quot;$(WebKitLibrariesDir)\Include\icu&quot;;&quot;$(WebKitLibrariesDir)\include\pthreads&quot;;&quot;$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders&quot;;&quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders&quot;;&quot;$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility&quot;;&quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility&quot;;&quot;$(ProjectDir)\..&quot;;&quot;$(ProjectDir)&quot;;&quot;$(IntDir)\include&quot;"\r
+                               AdditionalIncludeDirectories="&quot;$(WebKitOutputDir)\include\WebKit&quot;;&quot;$(WebKitOutputDir)\Include&quot;;&quot;$(WebKitLibrariesDir)\Include&quot;;&quot;$(WebKitOutputDir)\Include\WebCore&quot;;&quot;$(WebKitLibrariesDir)\Include\WebCore&quot;;&quot;$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders&quot;;&quot;$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders&quot;;&quot;$(WebKitOutputDir)\Include\JavaScriptCore&quot;;&quot;$(WebKitLibrariesDir)\Include\JavaScriptCore&quot;;&quot;$(WebKitOutputDir)\Include\icu&quot;;&quot;$(WebKitLibrariesDir)\Include\icu&quot;;&quot;$(WebKitLibrariesDir)\include\pthreads&quot;;&quot;$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders&quot;;&quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders&quot;;&quot;$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility&quot;;&quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility&quot;;&quot;$(ProjectDir)\..&quot;;&quot;$(ProjectDir)&quot;;&quot;$(IntDir)\include&quot;;&quot;$(WebKitOutputDir)\obj\WebKit\DerivedSources&quot;"\r
                                PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;WEBKIT_EXPORTS;_WIN32_WINNT=0x500;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ENABLE_XSLT;ENABLE_XPATH;ENABLE_SVG;FRAMEWORK_NAME=WebKit;__BUILDBOT__=0$(BuildBot)"\r
                                MinimalRebuild="true"\r
                                ExceptionHandling="0"\r
                        >\r
                        <Tool\r
                                Name="VCPreBuildEventTool"\r
-                               CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%&#x0D;&#x0A;touch &quot;$(WebKitOutputDir)\tmp.cpp&quot;&#x0D;&#x0A;cl /analyze /nologo /c &quot;$(WebKitOutputDir)\tmp.cpp&quot; 2&gt;&amp;1 | findstr D9040&#x0D;&#x0A;if ERRORLEVEL 0 set EnablePREfast=&quot;false&quot; else set EnablePREfast=&quot;true&quot;&#x0D;&#x0A;if ERRORLEVEL 0 set AnalyzeWithLargeStack=&quot;&quot; AnalyzeWithLargeStack=&quot;/analyze:65536&quot;&#x0D;&#x0A;&#x0D;&#x0A;mkdir 2&gt;NUL &quot;$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore&quot;&#x0D;&#x0A;xcopy /y /d &quot;$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*&quot; &quot;$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore&quot;&#x0D;&#x0A;&#x0D;&#x0A;bash auto-version.sh &quot;$(InputDir).&quot; &quot;$(IntDir)&quot;&#x0D;&#x0A;&#x0D;&#x0A;"\r
+                               CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%&#x0D;&#x0A;touch &quot;$(WebKitOutputDir)\tmp.cpp&quot;&#x0D;&#x0A;cl /analyze /nologo /c &quot;$(WebKitOutputDir)\tmp.cpp&quot; 2&gt;&amp;1 | findstr D9040&#x0D;&#x0A;if ERRORLEVEL 0 set EnablePREfast=&quot;false&quot; else set EnablePREfast=&quot;true&quot;&#x0D;&#x0A;if ERRORLEVEL 0 set AnalyzeWithLargeStack=&quot;&quot; AnalyzeWithLargeStack=&quot;/analyze:65536&quot;&#x0D;&#x0A;&#x0D;&#x0A;mkdir 2&gt;NUL &quot;$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore&quot;&#x0D;&#x0A;xcopy /y /d &quot;$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*&quot; &quot;$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore&quot;&#x0D;&#x0A;&#x0D;&#x0A;bash auto-version.sh &quot;$(InputDir).&quot; &quot;$(IntDir)&quot;&#x0D;&#x0A;"\r
                        />\r
                        <Tool\r
                                Name="VCCustomBuildTool"\r
                        />\r
                        <Tool\r
                                Name="VCCLCompilerTool"\r
-                               AdditionalIncludeDirectories="&quot;$(WebKitOutputDir)\include\WebKit&quot;;&quot;$(WebKitOutputDir)\Include&quot;;&quot;$(WebKitLibrariesDir)\Include&quot;;&quot;$(WebKitOutputDir)\Include\WebCore&quot;;&quot;$(WebKitLibrariesDir)\Include\WebCore&quot;;&quot;$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders&quot;;&quot;$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders&quot;;&quot;$(WebKitOutputDir)\Include\JavaScriptCore&quot;;&quot;$(WebKitLibrariesDir)\Include\JavaScriptCore&quot;;&quot;$(WebKitOutputDir)\Include\icu&quot;;&quot;$(WebKitLibrariesDir)\Include\icu&quot;;&quot;$(WebKitLibrariesDir)\include\pthreads&quot;;&quot;$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders&quot;;&quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders&quot;;&quot;$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility&quot;;&quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility&quot;;&quot;$(ProjectDir)\..&quot;;&quot;$(ProjectDir)&quot;;&quot;$(IntDir)\include&quot;"\r
+                               AdditionalIncludeDirectories="&quot;$(WebKitOutputDir)\include\WebKit&quot;;&quot;$(WebKitOutputDir)\Include&quot;;&quot;$(WebKitLibrariesDir)\Include&quot;;&quot;$(WebKitOutputDir)\Include\WebCore&quot;;&quot;$(WebKitLibrariesDir)\Include\WebCore&quot;;&quot;$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders&quot;;&quot;$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders&quot;;&quot;$(WebKitOutputDir)\Include\JavaScriptCore&quot;;&quot;$(WebKitLibrariesDir)\Include\JavaScriptCore&quot;;&quot;$(WebKitOutputDir)\Include\icu&quot;;&quot;$(WebKitLibrariesDir)\Include\icu&quot;;&quot;$(WebKitLibrariesDir)\include\pthreads&quot;;&quot;$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders&quot;;&quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders&quot;;&quot;$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility&quot;;&quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility&quot;;&quot;$(ProjectDir)\..&quot;;&quot;$(ProjectDir)&quot;;&quot;$(IntDir)\include&quot;;&quot;$(WebKitOutputDir)\obj\WebKit\DerivedSources&quot;"\r
                                PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;WEBKIT_EXPORTS;_WIN32_WINNT=0x500;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ENABLE_XSLT;ENABLE_XPATH;ENABLE_SVG;FRAMEWORK_NAME=WebKit;__BUILDBOT__=0$(BuildBot)"\r
                                ExceptionHandling="0"\r
                                RuntimeLibrary="2"\r
                        >\r
                        <Tool\r
                                Name="VCPreBuildEventTool"\r
-                               CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%&#x0D;&#x0A;touch &quot;$(WebKitOutputDir)\tmp.cpp&quot;&#x0D;&#x0A;cl /analyze /nologo /c &quot;$(WebKitOutputDir)\tmp.cpp&quot; 2&gt;&amp;1 | findstr D9040&#x0D;&#x0A;if ERRORLEVEL 0 set EnablePREfast=&quot;false&quot; else set EnablePREfast=&quot;true&quot;&#x0D;&#x0A;if ERRORLEVEL 0 set AnalyzeWithLargeStack=&quot;&quot; AnalyzeWithLargeStack=&quot;/analyze:65536&quot;&#x0D;&#x0A;&#x0D;&#x0A;mkdir 2&gt;NUL &quot;$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore&quot;&#x0D;&#x0A;xcopy /y /d &quot;$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*&quot; &quot;$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore&quot;&#x0D;&#x0A;&#x0D;&#x0A;bash auto-version.sh &quot;$(InputDir).&quot; &quot;$(IntDir)&quot;&#x0D;&#x0A;&#x0D;&#x0A;"\r
+                               CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%&#x0D;&#x0A;touch &quot;$(WebKitOutputDir)\tmp.cpp&quot;&#x0D;&#x0A;cl /analyze /nologo /c &quot;$(WebKitOutputDir)\tmp.cpp&quot; 2&gt;&amp;1 | findstr D9040&#x0D;&#x0A;if ERRORLEVEL 0 set EnablePREfast=&quot;false&quot; else set EnablePREfast=&quot;true&quot;&#x0D;&#x0A;if ERRORLEVEL 0 set AnalyzeWithLargeStack=&quot;&quot; AnalyzeWithLargeStack=&quot;/analyze:65536&quot;&#x0D;&#x0A;&#x0D;&#x0A;mkdir 2&gt;NUL &quot;$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore&quot;&#x0D;&#x0A;xcopy /y /d &quot;$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*&quot; &quot;$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore&quot;&#x0D;&#x0A;&#x0D;&#x0A;bash auto-version.sh &quot;$(InputDir).&quot; &quot;$(IntDir)&quot;&#x0D;&#x0A;"\r
                        />\r
                        <Tool\r
                                Name="VCCustomBuildTool"\r
                        <Tool\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
-                               AdditionalIncludeDirectories="&quot;$(WebKitOutputDir)\include\WebKit&quot;;&quot;$(WebKitOutputDir)\Include&quot;;&quot;$(WebKitLibrariesDir)\Include&quot;;&quot;$(WebKitOutputDir)\Include\WebCore&quot;;&quot;$(WebKitLibrariesDir)\Include\WebCore&quot;;&quot;$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders&quot;;&quot;$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders&quot;;&quot;$(WebKitOutputDir)\Include\JavaScriptCore&quot;;&quot;$(WebKitLibrariesDir)\Include\JavaScriptCore&quot;;&quot;$(WebKitOutputDir)\Include\icu&quot;;&quot;$(WebKitLibrariesDir)\Include\icu&quot;;&quot;$(WebKitLibrariesDir)\include\pthreads&quot;;&quot;$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders&quot;;&quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders&quot;;&quot;$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility&quot;;&quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility&quot;;&quot;$(ProjectDir)\..&quot;;&quot;$(ProjectDir)&quot;;&quot;$(IntDir)\include&quot;"\r
+                               AdditionalIncludeDirectories="&quot;$(WebKitOutputDir)\include\WebKit&quot;;&quot;$(WebKitOutputDir)\Include&quot;;&quot;$(WebKitLibrariesDir)\Include&quot;;&quot;$(WebKitOutputDir)\Include\WebCore&quot;;&quot;$(WebKitLibrariesDir)\Include\WebCore&quot;;&quot;$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders&quot;;&quot;$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders&quot;;&quot;$(WebKitOutputDir)\Include\JavaScriptCore&quot;;&quot;$(WebKitLibrariesDir)\Include\JavaScriptCore&quot;;&quot;$(WebKitOutputDir)\Include\icu&quot;;&quot;$(WebKitLibrariesDir)\Include\icu&quot;;&quot;$(WebKitLibrariesDir)\include\pthreads&quot;;&quot;$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders&quot;;&quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders&quot;;&quot;$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility&quot;;&quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility&quot;;&quot;$(ProjectDir)\..&quot;;&quot;$(ProjectDir)&quot;;&quot;$(IntDir)\include&quot;;&quot;$(WebKitOutputDir)\obj\WebKit\DerivedSources&quot;"\r
                                PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;WEBKIT_EXPORTS;_WIN32_WINNT=0x500;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ENABLE_XSLT;ENABLE_XPATH;ENABLE_SVG;FRAMEWORK_NAME=WebKit;__BUILDBOT__=0$(BuildBot)"\r
                                MinimalRebuild="true"\r
                                ExceptionHandling="0"\r
                                >\r
                        </File>\r
                </Filter>\r
+               <Filter\r
+                       Name="DOM"\r
+                       >\r
+                       <File\r
+                               RelativePath="..\DOMCreateInstance.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\DOMCreateInstance.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\GEN_DOMObject.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\GEN_DOMObject.h"\r
+                               >\r
+                       </File>\r
+                       <Filter\r
+                               Name="DerivedSources"\r
+                               >\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMAttr.cpp"\r
+                                       >\r
+                                       <FileConfiguration\r
+                                               Name="Debug_Internal|Win32"\r
+                                               >\r
+                                               <Tool\r
+                                                       Name="VCCLCompilerTool"\r
+                                                       ShowIncludes="false"\r
+                                               />\r
+                                       </FileConfiguration>\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMAttr.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCDATASection.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCDATASection.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCharacterData.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCharacterData.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMComment.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMComment.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCounter.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCounter.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSCharsetRule.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSCharsetRule.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSFontFaceRule.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSFontFaceRule.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSImportRule.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSImportRule.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSMediaRule.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSMediaRule.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSPageRule.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSPageRule.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSPrimitiveValue.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSPrimitiveValue.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSRule.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSRule.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSRuleList.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSRuleList.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSStyleDeclaration.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSStyleDeclaration.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSStyleRule.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSStyleRule.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSStyleSheet.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSStyleSheet.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSUnknownRule.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSUnknownRule.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSValue.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSValue.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSValueList.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSValueList.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMDocument.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMDocument.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMDocumentFragment.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMDocumentFragment.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMDocumentType.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMDocumentType.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMDOMImplementation.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMDOMImplementation.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMEntity.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMEntity.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMEntityReference.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMEntityReference.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMEvent.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMEvent.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMEventListener.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMEventListener.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMEventTarget.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLAnchorElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLAnchorElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLAppletElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLAppletElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLAreaElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLAreaElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBaseElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBaseElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBaseFontElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBaseFontElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBlockquoteElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBlockquoteElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBodyElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBodyElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBRElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBRElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLButtonElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLButtonElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLCollection.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLCollection.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLDirectoryElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLDirectoryElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLDivElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLDivElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLDListElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLDListElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLDocument.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLDocument.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLEmbedElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLEmbedElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFieldSetElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFieldSetElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFontElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFontElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFormElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFormElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFrameElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFrameElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFrameSetElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFrameSetElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLHeadElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLHeadElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLHeadingElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLHeadingElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLHRElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLHRElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLHtmlElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLHtmlElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLIFrameElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLIFrameElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLImageElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLImageElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLInputElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLInputElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLIsIndexElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLIsIndexElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLLabelElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLLabelElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLLegendElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLLegendElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLLIElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLLIElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLLinkElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLLinkElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLMapElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLMapElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLMarqueeElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLMarqueeElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLMenuElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLMenuElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLMetaElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLMetaElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLModElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLModElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLObjectElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLObjectElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLOListElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLOListElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLOptGroupElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLOptGroupElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLOptionElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLOptionElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLOptionsCollection.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLOptionsCollection.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLParagraphElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLParagraphElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLParamElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLParamElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLPreElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLPreElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLQuoteElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLQuoteElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLScriptElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLScriptElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLSelectElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLSelectElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLStyleElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLStyleElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableCaptionElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableCaptionElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableCellElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableCellElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableColElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableColElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableRowElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableRowElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableSectionElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableSectionElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTextAreaElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTextAreaElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTitleElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTitleElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLUListElement.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLUListElement.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMMediaList.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMMediaList.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMNamedNodeMap.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMNamedNodeMap.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMNode.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMNode.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMNodeList.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMNodeList.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMNotation.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMNotation.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMProcessingInstruction.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMProcessingInstruction.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMRect.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMRect.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMStyleSheet.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMStyleSheet.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMStyleSheetList.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMStyleSheetList.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMText.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMText.h"\r
+                                       >\r
+                               </File>\r
+                       </Filter>\r
+               </Filter>\r
        </Files>\r
        <Globals>\r
        </Globals>\r
index b448e9b6709935d1d813c80560bc09955e5f99d6..ad98ce01ef125407dac932dc8e3ae2065c12e463 100644 (file)
                        RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\DOMRange_i.c"\r
                        >\r
                </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMAttr_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCDATASection_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCharacterData_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMComment_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCounter_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSCharsetRule_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSFontFaceRule_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSImportRule_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSMediaRule_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSPageRule_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSPrimitiveValue_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSRule_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSRuleList_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSStyleDeclaration_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSStyleRule_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSStyleSheet_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSUnknownRule_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSValue_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSValueList_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMDocument_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMDocumentFragment_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMDocumentType_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMDOMImplementation_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMEntity_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMEntityReference_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMEvent_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMEventListener_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMEventTarget_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLAnchorElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLAppletElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLAreaElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLBaseElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLBaseFontElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLBlockquoteElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLBodyElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLBRElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLButtonElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLCollection_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLDirectoryElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLDivElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLDListElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLDocument_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLEmbedElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLFieldSetElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLFontElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLFormElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLFrameElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLFrameSetElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLHeadElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLHeadingElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLHRElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLHtmlElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLIFrameElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLImageElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLInputElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLIsIndexElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLLabelElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLLegendElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLLIElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLLinkElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLMapElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLMarqueeElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLMenuElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLMetaElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLModElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLObjectElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLOListElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLOptGroupElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLOptionElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLOptionsCollection_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLParagraphElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLParamElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLPreElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLQuoteElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLScriptElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLSelectElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLStyleElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLTableCaptionElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLTableCellElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLTableColElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLTableElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLTableRowElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLTableSectionElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLTextAreaElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLTitleElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLUListElement_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMMediaList_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMNamedNodeMap_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMNode_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMNodeList_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMNotation_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMObject_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMProcessingInstruction_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMRect_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMStyleSheet_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMStyleSheetList_i.c"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMText_i.c"\r
+                       >\r
+               </File>\r
                <File\r
                        RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IWebArchive_i.c"\r
                        >\r
diff --git a/WebKit/win/WebKit.vcproj/build-generated-files.sh b/WebKit/win/WebKit.vcproj/build-generated-files.sh
new file mode 100644 (file)
index 0000000..04b1ace
--- /dev/null
@@ -0,0 +1,57 @@
+#!/usr/bin/bash
+
+# Copyright (C) 2007 Apple Inc. All rights reserved.\r
+#\r
+# Redistribution and use in source and binary forms, with or without\r
+# modification, are permitted provided that the following conditions\r
+# are met:\r
+#\r
+# 1.  Redistributions of source code must retain the above copyright\r
+#     notice, this list of conditions and the following disclaimer. \r
+# 2.  Redistributions in binary form must reproduce the above copyright\r
+#     notice, this list of conditions and the following disclaimer in the\r
+#     documentation and/or other materials provided with the distribution. \r
+# 3.  Neither the name of Apple puter, Inc. ("Apple") nor the names of\r
+#     its contributors may be used to endorse or promote products derived\r
+#     from this software without specific prior written permission. \r
+#\r
+# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY\r
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
+# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY\r
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\r
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+NUMCPUS=`../../../WebKitTools/Scripts/num-cpus`
+
+XSRCROOT="`pwd`/.."
+XSRCROOT=`realpath "$XSRCROOT"`
+# Do a little dance to get the path into 8.3 form to make it safe for gnu make
+# http://bugzilla.opendarwin.org/show_bug.cgi?id=8173
+XSRCROOT=`cygpath -m -s "$XSRCROOT"`
+XSRCROOT=`cygpath -u "$XSRCROOT"`
+export XSRCROOT
+export SOURCE_ROOT=$XSRCROOT
+
+XDSTROOT="$1"
+export XDSTROOT
+# Do a little dance to get the path into 8.3 form to make it safe for gnu make
+# http://bugzilla.opendarwin.org/show_bug.cgi?id=8173
+XDSTROOT=`cygpath -m -s "$XDSTROOT"`
+XDSTROOT=`cygpath -u "$XDSTROOT"`
+export XDSTROOT
+
+export BUILT_PRODUCTS_DIR="$XDSTROOT/obj/WebKit"
+
+mkdir -p "${BUILT_PRODUCTS_DIR}/DerivedSources"
+cd "${BUILT_PRODUCTS_DIR}/DerivedSources"
+
+export WEBKIT=$XSRCROOT
+export WEBKIT_OUTPUT=$XDSTROOT
+
+export FEATURE_DEFINES="ENABLE_XPATH ENABLE_SVG"
+make -f "$WEBKIT/WebKit.vcproj/DerivedSources.make" -j ${NUMCPUS} || exit 1