<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[168713] releases/WebKitGTK/webkit-2.4</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/168713">168713</a></dd>
<dt>Author</dt> <dd>gns@gnome.org</dd>
<dt>Date</dt> <dd>2014-05-13 12:30:17 -0700 (Tue, 13 May 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Merge 165114 - [GTK][CMake] Generate documentation for the DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=126211

Reviewed by Carlos Garcia Campos.

Source/WebCore:

* PlatformGTK.cmake: Add some files to the GObjectDOMBindings build, so that the
doc generation succeeds. Have the GObjectDOMBindings_INSTALLED_HEADERS variable contain
all installed headers and use another variable for GIR generation. Create the configuration
file for the gtkdoc generation.

Source/WebKit:

* PlatformGTK.cmake: The list of headers for GIR generation has a better name
now.

Source/WebKit2:

* PlatformGTK.cmake: The list of headers for GIR generation has a better name now.

Tools:

* gtk/GNUmakefile.am: No longer generation sections and SGML files in the makefile.
* gtk/generate-gtkdoc: Call the code from webkitdom.py to generate sections and SGML files.
* gtk/generate-webkitdom-doc-files: Removed.
* gtk/webkitdom.py: Moved WebKit GObject DOM bindings doc generation code here, so
that it can be called by generate-gtkdoc.


Conflicts:
        Source/WebCore/ChangeLog
        Source/WebKit/ChangeLog
        Source/WebKit2/ChangeLog
        Tools/ChangeLog</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#releasesWebKitGTKwebkit24SourceWebCorePlatformGTKcmake">releases/WebKitGTK/webkit-2.4/Source/WebCore/PlatformGTK.cmake</a></li>
<li><a href="#releasesWebKitGTKwebkit24SourceWebKitPlatformGTKcmake">releases/WebKitGTK/webkit-2.4/Source/WebKit/PlatformGTK.cmake</a></li>
<li><a href="#releasesWebKitGTKwebkit24SourceWebKit2PlatformGTKcmake">releases/WebKitGTK/webkit-2.4/Source/WebKit2/PlatformGTK.cmake</a></li>
<li><a href="#releasesWebKitGTKwebkit24ToolsgtkGNUmakefileam">releases/WebKitGTK/webkit-2.4/Tools/gtk/GNUmakefile.am</a></li>
<li><a href="#releasesWebKitGTKwebkit24Toolsgtkgenerategtkdoc">releases/WebKitGTK/webkit-2.4/Tools/gtk/generate-gtkdoc</a></li>
<li><a href="#releasesWebKitGTKwebkit24Toolsgtkwebkitdompy">releases/WebKitGTK/webkit-2.4/Tools/gtk/webkitdom.py</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#releasesWebKitGTKwebkit24Toolsgtkgeneratewebkitdomdocfiles">releases/WebKitGTK/webkit-2.4/Tools/gtk/generate-webkitdom-doc-files</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="releasesWebKitGTKwebkit24SourceWebCorePlatformGTKcmake"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.4/Source/WebCore/PlatformGTK.cmake (168712 => 168713)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.4/Source/WebCore/PlatformGTK.cmake        2014-05-13 19:29:57 UTC (rev 168712)
+++ releases/WebKitGTK/webkit-2.4/Source/WebCore/PlatformGTK.cmake        2014-05-13 19:30:17 UTC (rev 168713)
</span><span class="lines">@@ -482,6 +482,7 @@
</span><span class="cx">         bindings/gobject/DOMObjectCache.cpp
</span><span class="cx">         bindings/gobject/GObjectEventListener.cpp
</span><span class="cx">         bindings/gobject/WebKitDOMCustom.cpp
</span><ins>+        bindings/gobject/WebKitDOMDeprecated.cpp
</ins><span class="cx">         bindings/gobject/WebKitDOMEventTarget.cpp
</span><span class="cx">         bindings/gobject/WebKitDOMHTMLPrivate.cpp
</span><span class="cx">         bindings/gobject/WebKitDOMObject.cpp
</span><span class="lines">@@ -668,6 +669,9 @@
</span><span class="cx">          ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/webkitdomdefines.h
</span><span class="cx">          ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/webkitdom.h
</span><span class="cx">          ${WEBCORE_DIR}/bindings/gobject/WebKitDOMCustom.h
</span><ins>+         ${WEBCORE_DIR}/bindings/gobject/WebKitDOMDeprecated.h
+         ${WEBCORE_DIR}/bindings/gobject/WebKitDOMEventTarget.h
+         ${WEBCORE_DIR}/bindings/gobject/WebKitDOMObject.h
</ins><span class="cx">     )
</span><span class="cx">     file(GLOB GObjectDOMBindingsSymbolsFiles
</span><span class="cx">         &quot;${WEBCORE_DIR}/bindings/gobject/WebKitDOM*.symbols&quot;
</span><span class="lines">@@ -680,9 +684,6 @@
</span><span class="cx">         list(APPEND GObjectDOMBindingsSymbolsFiles ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/WebKitDOM${classname}.symbols)
</span><span class="cx">     endforeach ()
</span><span class="cx"> 
</span><del>-    # Propagate this variable to the parent scope, so that it can be used in other parts of the build.
-    set(GObjectDOMBindings_INSTALLED_HEADERS ${GObjectDOMBindings_INSTALLED_HEADERS} PARENT_SCOPE)
-
</del><span class="cx">     set(GOBJECT_DOM_BINDINGS_FEATURES_DEFINES &quot;LANGUAGE_GOBJECT=1 ${FEATURE_DEFINES_WITH_SPACE_SEPARATOR}&quot;)
</span><span class="cx">     string(REPLACE &quot;ENABLE_INDEXED_DATABASE=1&quot; &quot;&quot; GOBJECT_DOM_BINDINGS_FEATURES_DEFINES ${GOBJECT_DOM_BINDINGS_FEATURES_DEFINES})
</span><span class="cx">     string(REPLACE REGEX &quot;ENABLE_SVG[A-Z_]+=1&quot; &quot;&quot; GOBJECT_DOM_BINDINGS_FEATURES_DEFINES ${GOBJECT_DOM_BINDINGS_FEATURES_DEFINES})
</span><span class="lines">@@ -728,11 +729,33 @@
</span><span class="cx">         fake-installed-webkitdom-headers
</span><span class="cx">     )
</span><span class="cx"> 
</span><ins>+    file(WRITE ${CMAKE_BINARY_DIR}/gtkdoc-webkitdom.cfg
+        &quot;[webkitdomgtk]\n&quot;
+        &quot;pkgconfig_file=${WebKit2_PKGCONFIG_FILE}\n&quot;
+        &quot;namespace=webkit_dom\n&quot;
+        &quot;cflags=-I${CMAKE_SOURCE_DIR}/Source\n&quot;
+        &quot;       -I${WEBCORE_DIR}/bindings\n&quot;
+        &quot;       -I${WEBCORE_DIR}/bindings/gobject\n&quot;
+        &quot;       -I${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}\n&quot;
+        &quot;doc_dir=${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/docs\n&quot;
+        &quot;source_dirs=${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}\n&quot;
+        &quot;            ${WEBCORE_DIR}/bindings/gobject\n&quot;
+        &quot;headers=${GObjectDOMBindings_INSTALLED_HEADERS}\n&quot;
+    )
+
</ins><span class="cx">     install(FILES ${GObjectDOMBindings_INSTALLED_HEADERS}
</span><del>-                  bindings/gobject/WebKitDOMEventTarget.h
-                  bindings/gobject/WebKitDOMDeprecated.h
-                  bindings/gobject/WebKitDOMObject.h
</del><span class="cx">             DESTINATION &quot;${WEBKITGTK_HEADER_INSTALL_DIR}/webkitdom&quot;
</span><span class="cx">     )
</span><ins>+
+    # Some installed headers are not on the list of headers used for gir generation.
+    set(GObjectDOMBindings_GIR_HEADERS ${GObjectDOMBindings_INSTALLED_HEADERS})
+    list(REMOVE_ITEM GObjectDOMBindings_GIR_HEADERS
+         bindings/gobject/WebKitDOMEventTarget.h
+         bindings/gobject/WebKitDOMDeprecated.h
+         bindings/gobject/WebKitDOMObject.h)
+
+    # Propagate this variable to the parent scope, so that it can be used in other parts of the build.
+    set(GObjectDOMBindings_GIR_HEADERS ${GObjectDOMBindings_GIR_HEADERS} PARENT_SCOPE)
+
</ins><span class="cx"> endif ()
</span><span class="cx"> 
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit24SourceWebKitPlatformGTKcmake"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.4/Source/WebKit/PlatformGTK.cmake (168712 => 168713)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.4/Source/WebKit/PlatformGTK.cmake        2014-05-13 19:29:57 UTC (rev 168712)
+++ releases/WebKitGTK/webkit-2.4/Source/WebKit/PlatformGTK.cmake        2014-05-13 19:30:17 UTC (rev 168713)
</span><span class="lines">@@ -201,7 +201,7 @@
</span><span class="cx">         -I${DERIVED_SOURCES_DIR}
</span><span class="cx">         -I${DERIVED_SOURCES_WEBKITGTK_DIR}
</span><span class="cx">         -I${WEBCORE_DIR}/platform/gtk
</span><del>-        ${GObjectDOMBindings_INSTALLED_HEADERS}
</del><ins>+        ${GObjectDOMBindings_GIR_HEADERS}
</ins><span class="cx">         ${WebKitGTK_INSTALLED_HEADERS}
</span><span class="cx">         ${WEBKIT_DIR}/gtk/webkit/*.cpp
</span><span class="cx"> )
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit24SourceWebKit2PlatformGTKcmake"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.4/Source/WebKit2/PlatformGTK.cmake (168712 => 168713)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.4/Source/WebKit2/PlatformGTK.cmake        2014-05-13 19:29:57 UTC (rev 168712)
+++ releases/WebKitGTK/webkit-2.4/Source/WebKit2/PlatformGTK.cmake        2014-05-13 19:30:17 UTC (rev 168713)
</span><span class="lines">@@ -750,7 +750,7 @@
</span><span class="cx">         -I${FORWARDING_HEADERS_WEBKIT2GTK_DIR}
</span><span class="cx">         -I${FORWARDING_HEADERS_WEBKIT2GTK_EXTENSION_DIR}
</span><span class="cx">         -I${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk
</span><del>-        ${GObjectDOMBindings_INSTALLED_HEADERS}
</del><ins>+        ${GObjectDOMBindings_GIR_HEADERS}
</ins><span class="cx">         ${WebKit2WebExtension_INSTALLED_HEADERS}
</span><span class="cx">         ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/*.cpp
</span><span class="cx"> )
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit24ToolsgtkGNUmakefileam"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.4/Tools/gtk/GNUmakefile.am (168712 => 168713)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.4/Tools/gtk/GNUmakefile.am        2014-05-13 19:29:57 UTC (rev 168712)
+++ releases/WebKitGTK/webkit-2.4/Tools/gtk/GNUmakefile.am        2014-05-13 19:30:17 UTC (rev 168713)
</span><span class="lines">@@ -30,22 +30,8 @@
</span><span class="cx">         gtkdoc-webkit2gtk.cfg
</span><span class="cx"> endif
</span><span class="cx"> 
</span><del>-$(top_builddir)/DerivedSources/webkitdom/docs/webkitdomgtk-docs.sgml: $(gdom_symbol_files) $(srcdir)/Tools/gtk/generate-webkitdom-doc-files
-        $(AM_V_GEN)mkdir -p $(top_builddir)/DerivedSources/webkitdom/docs \
-        &amp;&amp; echo $(gdom_symbol_files) | $(PYTHON) $(srcdir)/Tools/gtk/generate-webkitdom-doc-files docs &gt; $@
-
-$(top_builddir)/DerivedSources/webkitdom/docs/webkitdomgtk-sections.txt: $(gdom_symbol_files) $(srcdir)/Tools/gtk/generate-webkitdom-doc-files
-        $(AM_V_GEN)mkdir -p $(top_builddir)/DerivedSources/webkitdom/docs \
-        &amp;&amp; echo $(gdom_symbol_files) | $(PYTHON) $(srcdir)/Tools/gtk/generate-webkitdom-doc-files sections &gt; $@
-
-BUILT_SOURCES += \
-        $(top_builddir)/DerivedSources/webkitdom/docs/webkitdomgtk-docs.sgml \
-        $(top_builddir)/DerivedSources/webkitdom/docs/webkitdomgtk-sections.txt
-
</del><span class="cx"> docs_build_dependencies += \
</span><span class="cx">         libGObjectDOMBindings.la \
</span><del>-        $(top_builddir)/DerivedSources/webkitdom/docs/webkitdomgtk-docs.sgml \
-        $(top_builddir)/DerivedSources/webkitdom/docs/webkitdomgtk-sections.txt \
</del><span class="cx">         gtkdoc-webkitdom.cfg
</span><span class="cx"> 
</span><span class="cx"> docs-build.stamp: $(docs_build_dependencies)
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit24Toolsgtkgenerategtkdoc"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.4/Tools/gtk/generate-gtkdoc (168712 => 168713)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.4/Tools/gtk/generate-gtkdoc        2014-05-13 19:29:57 UTC (rev 168712)
+++ releases/WebKitGTK/webkit-2.4/Tools/gtk/generate-gtkdoc        2014-05-13 19:30:17 UTC (rev 168713)
</span><span class="lines">@@ -25,6 +25,7 @@
</span><span class="cx"> import logging
</span><span class="cx"> import os.path
</span><span class="cx"> import sys
</span><ins>+import webkitdom
</ins><span class="cx"> 
</span><span class="cx"> def configure_logging(verbose):
</span><span class="cx">     level = logging.DEBUG if verbose else logging.INFO
</span><span class="lines">@@ -194,9 +195,10 @@
</span><span class="cx"> 
</span><span class="cx">     prepare_environment_for_gtkdoc_generation()
</span><span class="cx"> 
</span><ins>+    webkitdom.write_doc_files()
+    generate_documentation_for_config(common.build_path('gtkdoc-webkitdom.cfg'))
+
</ins><span class="cx">     saw_webkit1_warnings = generate_documentation_for_config(common.build_path('gtkdoc-webkitgtk.cfg'))
</span><span class="cx">     saw_webkit2_warnings = generate_documentation_for_config(common.build_path('gtkdoc-webkit2gtk.cfg'))
</span><del>-    if not common.is_cmake_build():
-        generate_documentation_for_config(common.build_path('gtkdoc-webkitdom.cfg'))
</del><span class="cx"> 
</span><span class="cx">     sys.exit(saw_webkit1_warnings or saw_webkit2_warnings)
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit24Toolsgtkgeneratewebkitdomdocfiles"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.4/Tools/gtk/generate-webkitdom-doc-files (168712 => 168713)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.4/Tools/gtk/generate-webkitdom-doc-files        2014-05-13 19:29:57 UTC (rev 168712)
+++ releases/WebKitGTK/webkit-2.4/Tools/gtk/generate-webkitdom-doc-files        2014-05-13 19:30:17 UTC (rev 168713)
</span><span class="lines">@@ -1,216 +0,0 @@
</span><del>-#!/usr/bin/env python
-# Copyright (C) 2013 Igalia S.L.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301  USA
-
-import os
-import re
-import sys
-
-class WebKitDOMDocGenerator:
-
-    DELETED_CLASSES = [&quot;WebKitDOMBarInfo&quot;, &quot;WebKitDOMHTMLPropertiesCollection&quot;, &quot;WebKitDOMMemoryInfo&quot;, &quot;WebKitDOMMicroDataItemValue&quot;, &quot;WebKitDOMPropertyNodeList&quot; ]
-
-    def write_header(self):
-        pass
-
-    def write_section(self, symbol_file):
-        raise NotImplementedError
-
-    def write_deleted_classes(self):
-        raise NotImplementedError
-
-    def write_footer(self):
-        pass
-
-class WebKitDOMDocGeneratorDocs(WebKitDOMDocGenerator):
-
-    def write_header(self):
-        sys.stdout.write('''&lt;?xml version=&quot;1.0&quot;?&gt;
-&lt;!DOCTYPE book PUBLIC &quot;-//OASIS//DTD DocBook XML V4.1.2//EN&quot;
-               &quot;http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd&quot; [
-&lt;!ENTITY version SYSTEM &quot;version.xml&quot;&gt;
-]&gt;
-&lt;book id=&quot;index&quot; xmlns:xi=&quot;http://www.w3.org/2003/XInclude&quot;&gt;
-  &lt;bookinfo&gt;
-    &lt;title&gt;WebKitDOMGTK+ Reference Manual&lt;/title&gt;
-    &lt;releaseinfo&gt;for WebKitDOMGTK+ &amp;version;&lt;/releaseinfo&gt;
-  &lt;/bookinfo&gt;
-
-  &lt;chapter&gt;
-    &lt;title&gt;Class Overview&lt;/title&gt;
-''')
-
-    def write_section(self, symbol_file):
-        basename = os.path.basename(symbol_file)
-        sys.stdout.write('    &lt;xi:include href=&quot;xml/%s&quot;/&gt;\n' % basename.replace(&quot;.symbols&quot;, &quot;.xml&quot;))
-
-    def write_deleted_classes(self):
-        for class_name in self.DELETED_CLASSES:
-            sys.stdout.write('    &lt;xi:include href=&quot;xml/%s.xml&quot;/&gt;\n' % class_name)
-
-    def write_footer(self):
-        sys.stdout.write('''  &lt;/chapter&gt;
-
-  &lt;index id=&quot;index-all&quot;&gt;
-    &lt;title&gt;Index&lt;/title&gt;
-    &lt;xi:include href=&quot;xml/api-index-full.xml&quot;&gt;&lt;xi:fallback /&gt;&lt;/xi:include&gt;
-  &lt;/index&gt;
-  &lt;index id=&quot;api-index-deprecated&quot; role=&quot;deprecated&quot;&gt;
-    &lt;title&gt;Index of deprecated symbols&lt;/title&gt;
-    &lt;xi:include href=&quot;xml/api-index-deprecated.xml&quot;&gt;&lt;xi:fallback /&gt;&lt;/xi:include&gt;
-  &lt;/index&gt;
-
-  &lt;xi:include href=&quot;xml/annotation-glossary.xml&quot;&gt;&lt;xi:fallback /&gt;&lt;/xi:include&gt;
-&lt;/book&gt;
-''')
-
-class WebKitDOMDocGeneratorSections(WebKitDOMDocGenerator):
-
-    def __init__(self, deprecated_symbol_file):
-        self._first_decamelize_re = re.compile('(.)([A-Z][a-z]+)')
-        self._second_decamelize_re = re.compile('([a-z0-9])([A-Z])')
-        self._dom_class_re = re.compile('(^WebKitDOM)(.+)$')
-        self._function_re = re.compile('^.+ (.+)\((.+)\)$')
-
-        self._deprecated_symbols = self._deprecated_symbols(deprecated_symbol_file)
-
-    def _dom_class(self, class_name):
-        return self._dom_class_re.sub(r'\2', class_name)
-
-    def _dom_class_decamelize(self, class_name):
-        s1 = self._first_decamelize_re.sub(r'\1_\2', self._dom_class(class_name))
-        retval = self._second_decamelize_re.sub(r'\1_\2', s1)
-
-        # Fix some exceptions.
-        retval = retval.replace('Web_Kit', 'WebKit')
-        retval = retval.replace('X_Path', 'XPath')
-        retval = retval.replace('HTMLI_Frame', 'HTML_IFrame')
-
-        return retval
-
-    def _deleted_class(self, function):
-        for deleted_class in self.DELETED_CLASSES:
-            decamelized = 'webkit_dom_%s' % self._dom_class_decamelize(deleted_class).lower()
-            if function.startswith(decamelized):
-                return deleted_class
-        return None
-
-    def _deprecated_symbols(self, symbol_file):
-        retval = {}
-        f = open(symbol_file, 'r')
-        for line in f.readlines():
-            match = self._function_re.match(line)
-            if not match:
-                continue
-
-            function = match.group(1)
-            args = match.group(2).split(', ')
-            class_name = args[0].strip('*')
-            if class_name == 'void':
-                class_name = self._deleted_class(function)
-
-            retval.setdefault(class_name, []).append(function)
-
-        return retval
-
-    def _symbol_list(self, symbol_file):
-        retval = []
-        f = open(symbol_file, 'r')
-        for line in f.readlines():
-            match = self._function_re.match(line)
-            if not match or match.group(1).endswith('get_type'):
-                continue
-            retval.append(match.group(1))
-
-        return retval
-
-    def write_section(self, symbol_file):
-        class_name = os.path.basename(symbol_file).replace(&quot;.symbols&quot;, &quot;&quot;)
-        is_custom = class_name == 'WebKitDOMCustom'
-        is_interface = class_name == 'WebKitDOMEventTarget'
-        is_object = class_name == 'WebKitDOMObject'
-        sys.stdout.write('&lt;SECTION&gt;\n')
-        sys.stdout.write('&lt;FILE&gt;%s&lt;/FILE&gt;\n&lt;TITLE&gt;%s&lt;/TITLE&gt;\n' % (class_name, class_name))
-        if not is_custom:
-            sys.stdout.write('%s\n' % class_name)
-        sys.stdout.write('\n')
-        sys.stdout.write('\n'.join(self._symbol_list(symbol_file)) + '\n')
-        try:
-            deprecated_functions = self._deprecated_symbols[class_name]
-            sys.stdout.write('\n'.join(deprecated_functions) + '\n')
-        except KeyError:
-            pass
-        if not is_custom:
-            sys.stdout.write('\n&lt;SUBSECTION Standard&gt;\n')
-            sys.stdout.write('%sClass\n' % class_name)
-            dom_class = self._dom_class_decamelize(class_name).upper()
-            sys.stdout.write('WEBKIT_TYPE_DOM_%s\n' % dom_class)
-            sys.stdout.write('WEBKIT_DOM_%s\n' % dom_class)
-            if is_object:
-                sys.stdout.write('WEBKIT_IS_DOM_%s\n' % dom_class)
-            else:
-                sys.stdout.write('WEBKIT_DOM_IS_%s\n' % dom_class)
-            sys.stdout.write('WEBKIT_DOM_%s_CLASS\n' % dom_class)
-            if is_interface:
-                sys.stdout.write('WEBKIT_DOM_%s_GET_IFACE\n' % dom_class)
-            else:
-                if is_object:
-                    sys.stdout.write('WEBKIT_IS_DOM_%s_CLASS\n' % dom_class)
-                else:
-                    sys.stdout.write('WEBKIT_DOM_IS_%s_CLASS\n' % dom_class)
-                sys.stdout.write('WEBKIT_DOM_%s_GET_CLASS\n' % dom_class)
-            sys.stdout.write('\n&lt;SUBSECTION Private&gt;\n')
-            if is_object:
-                sys.stdout.write('%sPrivate\n' % class_name)
-            sys.stdout.write('webkit_dom_%s_get_type\n' % dom_class.lower())
-        sys.stdout.write('&lt;/SECTION&gt;\n\n')
-
-    def write_deleted_classes(self):
-        for class_name in self.DELETED_CLASSES:
-            sys.stdout.write('&lt;SECTION&gt;\n')
-            sys.stdout.write('&lt;FILE&gt;%s&lt;/FILE&gt;\n&lt;TITLE&gt;%s&lt;/TITLE&gt;\n' % (class_name, class_name))
-            sys.stdout.write('\n'.join([name for name in self._deprecated_symbols[class_name] if not name.endswith('get_type')]) + '\n')
-            sys.stdout.write('\n&lt;SUBSECTION Private&gt;\n')
-            sys.stdout.write('webkit_dom_%s_get_type\n' % self._dom_class_decamelize(class_name).lower())
-            sys.stdout.write('&lt;/SECTION&gt;\n\n')
-
-    def write_footer(self):
-        sys.stdout.write('&lt;SECTION&gt;\n')
-        sys.stdout.write('&lt;FILE&gt;webkitdomdefines&lt;/FILE&gt;\n&lt;TITLE&gt;WebKitDOMDefines&lt;/TITLE&gt;\n')
-        sys.stdout.write('&lt;SUBSECTION Private&gt;\n')
-        sys.stdout.write('WEBKIT_API\nWEBKIT_DEPRECATED\nWEBKIT_DEPRECATED_FOR\n')
-        sys.stdout.write('&lt;/SECTION&gt;\n\n')
-
-
-symbol_files = sys.stdin.read().strip('\n').split(' ')
-if 'docs' in sys.argv[1:]:
-    generator = WebKitDOMDocGeneratorDocs()
-elif 'sections' in sys.argv[1:]:
-    deprecated_symbol_file = None
-    for symbol_file in symbol_files:
-        if 'WebKitDOMDeprecated' in symbol_file:
-            deprecated_symbol_file = symbol_file
-            break
-    generator = WebKitDOMDocGeneratorSections(deprecated_symbol_file)
-
-generator.write_header()
-for symbol_file in symbol_files:
-    if 'WebKitDOMDeprecated' in symbol_file:
-        continue
-    generator.write_section(symbol_file)
-generator.write_deleted_classes()
-generator.write_footer()
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit24Toolsgtkwebkitdompy"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.4/Tools/gtk/webkitdom.py (168712 => 168713)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.4/Tools/gtk/webkitdom.py        2014-05-13 19:29:57 UTC (rev 168712)
+++ releases/WebKitGTK/webkit-2.4/Tools/gtk/webkitdom.py        2014-05-13 19:30:17 UTC (rev 168713)
</span><span class="lines">@@ -18,11 +18,235 @@
</span><span class="cx"> 
</span><span class="cx"> import common
</span><span class="cx"> import os
</span><ins>+import re
</ins><span class="cx"> import sys
</span><span class="cx"> 
</span><span class="cx"> from ConfigParser import SafeConfigParser
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+class WebKitDOMDocGenerator(object):
+
+    DELETED_CLASSES = [
+        &quot;WebKitDOMBarInfo&quot;,
+        &quot;WebKitDOMHTMLPropertiesCollection&quot;,
+        &quot;WebKitDOMMemoryInfo&quot;,
+        &quot;WebKitDOMMicroDataItemValue&quot;,
+        &quot;WebKitDOMPropertyNodeList&quot;]
+
+    def __init__(self, symbol_files, file_handle):
+        self._symbol_files = symbol_files
+        self._file_handle = file_handle
+
+    def write_header(self):
+        pass
+
+    def write_section(self, symbol_file):
+        raise NotImplementedError
+
+    def write_deleted_classes(self):
+        raise NotImplementedError
+
+    def write_footer(self):
+        pass
+
+    def write(self, string):
+        self._file_handle.write(string)
+
+    @staticmethod
+    def is_deprecated_symbol_file(file_path):
+        return 'WebKitDOMDeprecated' in file_path
+
+    def generate(self):
+        self.write_header()
+        for symbol_file in self._symbol_files:
+            if WebKitDOMDocGenerator.is_deprecated_symbol_file(symbol_file):
+                continue
+            self.write_section(symbol_file)
+        self.write_deleted_classes()
+        self.write_footer()
+
+
+class WebKitDOMDocGeneratorSGML(WebKitDOMDocGenerator):
+    def write_header(self):
+        self.write('''&lt;?xml version=&quot;1.0&quot;?&gt;
+&lt;!DOCTYPE book PUBLIC &quot;-//OASIS//DTD DocBook XML V4.1.2//EN&quot;
+               &quot;http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd&quot; [
+&lt;!ENTITY version SYSTEM &quot;version.xml&quot;&gt;
+]&gt;
+&lt;book id=&quot;index&quot; xmlns:xi=&quot;http://www.w3.org/2003/XInclude&quot;&gt;
+  &lt;bookinfo&gt;
+    &lt;title&gt;WebKitDOMGTK+ Reference Manual&lt;/title&gt;
+    &lt;releaseinfo&gt;for WebKitDOMGTK+ &amp;version;&lt;/releaseinfo&gt;
+  &lt;/bookinfo&gt;
+
+  &lt;chapter&gt;
+    &lt;title&gt;Class Overview&lt;/title&gt;
+''')
+
+    def write_section(self, symbol_file):
+        basename = os.path.basename(symbol_file)
+        self.write('    &lt;xi:include href=&quot;xml/%s&quot;/&gt;\n' % basename.replace(&quot;.symbols&quot;, &quot;.xml&quot;))
+
+    def write_deleted_classes(self):
+        for class_name in self.DELETED_CLASSES:
+            self.write('    &lt;xi:include href=&quot;xml/%s.xml&quot;/&gt;\n' % class_name)
+
+    def write_footer(self):
+        self.write('''  &lt;/chapter&gt;
+
+  &lt;index id=&quot;index-all&quot;&gt;
+    &lt;title&gt;Index&lt;/title&gt;
+    &lt;xi:include href=&quot;xml/api-index-full.xml&quot;&gt;&lt;xi:fallback /&gt;&lt;/xi:include&gt;
+  &lt;/index&gt;
+  &lt;index id=&quot;api-index-deprecated&quot; role=&quot;deprecated&quot;&gt;
+    &lt;title&gt;Index of deprecated symbols&lt;/title&gt;
+    &lt;xi:include href=&quot;xml/api-index-deprecated.xml&quot;&gt;&lt;xi:fallback /&gt;&lt;/xi:include&gt;
+  &lt;/index&gt;
+
+  &lt;xi:include href=&quot;xml/annotation-glossary.xml&quot;&gt;&lt;xi:fallback /&gt;&lt;/xi:include&gt;
+&lt;/book&gt;
+''')
+
+
+class WebKitDOMDocGeneratorSections(WebKitDOMDocGenerator):
+    def __init__(self, symbol_files, file_handle):
+        super(WebKitDOMDocGeneratorSections, self).__init__(symbol_files, file_handle)
+
+        self._first_decamelize_re = re.compile('(.)([A-Z][a-z]+)')
+        self._second_decamelize_re = re.compile('([a-z0-9])([A-Z])')
+        self._dom_class_re = re.compile('(^WebKitDOM)(.+)$')
+        self._function_re = re.compile('^.+ (.+)\((.+)\)$')
+
+        self.deprecated_symbosl = {}
+        for symbol_file in symbol_files:
+            if WebKitDOMDocGenerator.is_deprecated_symbol_file(symbol_file):
+                self._deprecated_symbols = self._find_deprecated_symbols(symbol_file)
+                break
+
+    def _dom_class(self, class_name):
+        return self._dom_class_re.sub(r'\2', class_name)
+
+    def _dom_class_decamelize(self, class_name):
+        s1 = self._first_decamelize_re.sub(r'\1_\2', self._dom_class(class_name))
+        retval = self._second_decamelize_re.sub(r'\1_\2', s1)
+
+        # Fix some exceptions.
+        retval = retval.replace('Web_Kit', 'WebKit')
+        retval = retval.replace('X_Path', 'XPath')
+        retval = retval.replace('HTMLI_Frame', 'HTML_IFrame')
+
+        return retval
+
+    def _deleted_class(self, function):
+        for deleted_class in self.DELETED_CLASSES:
+            decamelized = 'webkit_dom_%s' % self._dom_class_decamelize(deleted_class).lower()
+            if function.startswith(decamelized):
+                return deleted_class
+        return None
+
+    def _find_deprecated_symbols(self, symbol_file):
+        retval = {}
+        f = open(symbol_file, 'r')
+        for line in f.readlines():
+            match = self._function_re.match(line)
+            if not match:
+                continue
+
+            function = match.group(1)
+            args = match.group(2).split(', ')
+            class_name = args[0].strip('*')
+            if class_name == 'void':
+                class_name = self._deleted_class(function)
+
+            retval.setdefault(class_name, []).append(function)
+
+        return retval
+
+    def _symbol_list(self, symbol_file):
+        retval = []
+        f = open(symbol_file, 'r')
+        for line in f.readlines():
+            match = self._function_re.match(line)
+            if not match or match.group(1).endswith('get_type'):
+                continue
+            retval.append(match.group(1))
+
+        return retval
+
+    def write_section(self, symbol_file):
+        class_name = os.path.basename(symbol_file).replace(&quot;.symbols&quot;, &quot;&quot;)
+        is_custom = class_name == 'WebKitDOMCustom'
+        is_interface = class_name == 'WebKitDOMEventTarget'
+        is_object = class_name == 'WebKitDOMObject'
+        self.write('&lt;SECTION&gt;\n')
+        self.write('&lt;FILE&gt;%s&lt;/FILE&gt;\n&lt;TITLE&gt;%s&lt;/TITLE&gt;\n' % (class_name, class_name))
+        if not is_custom:
+            self.write('%s\n' % class_name)
+        self.write('\n')
+        self.write('\n'.join(self._symbol_list(symbol_file)) + '\n')
+        try:
+            deprecated_functions = self._deprecated_symbols[class_name]
+            self.write('\n'.join(deprecated_functions) + '\n')
+        except KeyError:
+            pass
+        if not is_custom:
+            self.write('\n&lt;SUBSECTION Standard&gt;\n')
+            self.write('%sClass\n' % class_name)
+            dom_class = self._dom_class_decamelize(class_name).upper()
+            self.write('WEBKIT_TYPE_DOM_%s\n' % dom_class)
+            self.write('WEBKIT_DOM_%s\n' % dom_class)
+            if is_object:
+                self.write('WEBKIT_IS_DOM_%s\n' % dom_class)
+            else:
+                self.write('WEBKIT_DOM_IS_%s\n' % dom_class)
+            self.write('WEBKIT_DOM_%s_CLASS\n' % dom_class)
+            if is_interface:
+                self.write('WEBKIT_DOM_%s_GET_IFACE\n' % dom_class)
+            else:
+                if is_object:
+                    self.write('WEBKIT_IS_DOM_%s_CLASS\n' % dom_class)
+                else:
+                    self.write('WEBKIT_DOM_IS_%s_CLASS\n' % dom_class)
+                self.write('WEBKIT_DOM_%s_GET_CLASS\n' % dom_class)
+            self.write('\n&lt;SUBSECTION Private&gt;\n')
+            if is_object:
+                self.write('%sPrivate\n' % class_name)
+            self.write('webkit_dom_%s_get_type\n' % dom_class.lower())
+        self.write('&lt;/SECTION&gt;\n\n')
+
+    def write_deleted_classes(self):
+        for class_name in self.DELETED_CLASSES:
+            self.write('&lt;SECTION&gt;\n')
+            self.write('&lt;FILE&gt;%s&lt;/FILE&gt;\n&lt;TITLE&gt;%s&lt;/TITLE&gt;\n' % (class_name, class_name))
+            self.write('\n'.join([name for name in self._deprecated_symbols[class_name] if not name.endswith('get_type')]) + '\n')
+            self.write('\n&lt;SUBSECTION Private&gt;\n')
+            self.write('webkit_dom_%s_get_type\n' % self._dom_class_decamelize(class_name).lower())
+            self.write('&lt;/SECTION&gt;\n\n')
+
+    def write_footer(self):
+        self.write('&lt;SECTION&gt;\n')
+        self.write('&lt;FILE&gt;webkitdomdefines&lt;/FILE&gt;\n&lt;TITLE&gt;WebKitDOMDefines&lt;/TITLE&gt;\n')
+        self.write('&lt;SUBSECTION Private&gt;\n')
+        self.write('WEBKIT_API\nWEBKIT_DEPRECATED\nWEBKIT_DEPRECATED_FOR\n')
+        self.write('&lt;/SECTION&gt;\n\n')
+
+
+def write_doc_files():
+    doc_dir = common.build_path('DerivedSources', 'webkitdom', 'docs')
+
+    try:
+        os.mkdir(doc_dir)
+    except:
+        pass  # Commonly happens if the directory already exists.
+
+    with open(os.path.join(doc_dir, 'webkitdomgtk-sections.txt'), 'w') as sections_file:
+        generator = WebKitDOMDocGeneratorSections(get_all_webkitdom_symbol_files(), sections_file)
+        generator.generate()
+    with open(os.path.join(doc_dir, 'webkitdomgtk-docs.sgml'), 'w') as sgml_file:
+        generator = WebKitDOMDocGeneratorSGML(get_all_webkitdom_symbol_files(), sgml_file)
+        generator.generate()
+
+
</ins><span class="cx"> def header_name_list_from_gtkdoc_config_file():
</span><span class="cx">     config_file = common.build_path('gtkdoc-webkitdom.cfg')
</span><span class="cx">     if not os.path.isfile(config_file):
</span></span></pre>
</div>
</div>

</body>
</html>