[GTK] Missing API detected in GObject DOM bindings after r176630
authorcarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 7 Dec 2014 10:02:52 +0000 (10:02 +0000)
committercarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 7 Dec 2014 10:02:52 +0000 (10:02 +0000)
https://bugs.webkit.org/show_bug.cgi?id=139201

Reviewed by Gustavo Noronha Silva.

.:

Change GENERATE_BINDINGS macro to receive a list of optional
additional dependencies, so that we can add more dependecies
without having to change the macro.

* Source/cmake/WebKitMacros.cmake:

Source/WebCore:

Bring back WebKitDOMDeprecated and add custom versions of the
removed symbols as deprecated in favor of the new ones. Also add
the new ones as stable API.

* CMakeLists.txt: Pass a list of additional dependencies to GENERATE_BINDINGS.
* PlatformGTK.cmake: Ditto.
* PlatformMac.cmake: Ditto.
* bindings/gobject/WebKitDOMDeprecated.cpp: Added.
(webkit_dom_html_element_get_inner_html):
(webkit_dom_html_element_set_inner_html):
(webkit_dom_html_element_get_outer_html):
(webkit_dom_html_element_set_outer_html):
* bindings/gobject/WebKitDOMDeprecated.h: Added.
* bindings/gobject/WebKitDOMDeprecated.symbols: Added.
* bindings/gobject/webkitdom.symbols:

Tools:

Handle deprecated symbols again when generating the GObject DOM
bindings documentation.

* gtk/webkitdom.py:
(WebKitDOMDocGenerator):
(WebKitDOMDocGenerator.is_deprecated_symbol_file):
(WebKitDOMDocGenerator.generate):
(WebKitDOMDocGeneratorSections.__init__):
(WebKitDOMDocGeneratorSections._find_deprecated_symbols):
(WebKitDOMDocGeneratorSections.write_section):

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

12 files changed:
ChangeLog
Source/WebCore/CMakeLists.txt
Source/WebCore/ChangeLog
Source/WebCore/PlatformGTK.cmake
Source/WebCore/PlatformMac.cmake
Source/WebCore/bindings/gobject/WebKitDOMDeprecated.cpp [new file with mode: 0644]
Source/WebCore/bindings/gobject/WebKitDOMDeprecated.h [new file with mode: 0644]
Source/WebCore/bindings/gobject/WebKitDOMDeprecated.symbols [new file with mode: 0644]
Source/WebCore/bindings/gobject/webkitdom.symbols
Source/cmake/WebKitMacros.cmake
Tools/ChangeLog
Tools/gtk/webkitdom.py

index e5b5ca9..9ea9d8f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2014-12-07  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Missing API detected in GObject DOM bindings after r176630
+        https://bugs.webkit.org/show_bug.cgi?id=139201
+
+        Reviewed by Gustavo Noronha Silva.
+
+        Change GENERATE_BINDINGS macro to receive a list of optional
+        additional dependencies, so that we can add more dependecies
+        without having to change the macro.
+
+        * Source/cmake/WebKitMacros.cmake:
+
 2014-12-05  Simon Fraser  <simon.fraser@apple.com>
 
         Programmatic scrolling and content changes are not always synchronized
index c9ac025..ace1654 100644 (file)
@@ -3385,6 +3385,13 @@ add_custom_command(
 --sharedWorkerGlobalScopeConstructorsFile ${SHAREDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE} --dedicatedWorkerGlobalScopeConstructorsFile ${DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
     VERBATIM)
 
+set(ADDITIONAL_BINDINGS_DEPENDENCIES
+    ${WINDOW_CONSTRUCTORS_FILE}
+    ${WORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
+    ${SHAREDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
+    ${DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
+)
+
 GENERATE_BINDINGS(WebCore_SOURCES
     "${WebCore_IDL_FILES}"
     "${WEBCORE_DIR}"
@@ -3393,10 +3400,7 @@ GENERATE_BINDINGS(WebCore_SOURCES
     ${DERIVED_SOURCES_WEBCORE_DIR} JS JS cpp
     ${IDL_ATTRIBUTES_FILE}
     ${SUPPLEMENTAL_DEPENDENCY_FILE}
-    ${WINDOW_CONSTRUCTORS_FILE}
-    ${WORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
-    ${SHAREDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
-    ${DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE})
+    ${ADDITIONAL_BINDINGS_DEPENDENCIES})
 
 GENERATE_BINDINGS(WebCoreTestSupport_SOURCES
     "${WebCoreTestSupport_IDL_FILES}"
@@ -3406,10 +3410,7 @@ GENERATE_BINDINGS(WebCoreTestSupport_SOURCES
     ${DERIVED_SOURCES_WEBCORE_DIR} JS JS cpp
     ${IDL_ATTRIBUTES_FILE}
     ${SUPPLEMENTAL_DEPENDENCY_FILE}
-    ${WINDOW_CONSTRUCTORS_FILE}
-    ${WORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
-    ${SHAREDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
-    ${DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE})
+    ${ADDITIONAL_BINDINGS_DEPENDENCIES})
 
 
 ADD_SOURCE_WEBCORE_DERIVED_DEPENDENCIES(${WEBCORE_DIR}/html/HTMLTreeBuilder.cpp MathMLNames.cpp)
index a22b6bc..8339d7c 100644 (file)
@@ -1,3 +1,26 @@
+2014-12-07  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Missing API detected in GObject DOM bindings after r176630
+        https://bugs.webkit.org/show_bug.cgi?id=139201
+
+        Reviewed by Gustavo Noronha Silva.
+
+        Bring back WebKitDOMDeprecated and add custom versions of the
+        removed symbols as deprecated in favor of the new ones. Also add
+        the new ones as stable API.
+
+        * CMakeLists.txt: Pass a list of additional dependencies to GENERATE_BINDINGS.
+        * PlatformGTK.cmake: Ditto.
+        * PlatformMac.cmake: Ditto.
+        * bindings/gobject/WebKitDOMDeprecated.cpp: Added.
+        (webkit_dom_html_element_get_inner_html):
+        (webkit_dom_html_element_set_inner_html):
+        (webkit_dom_html_element_get_outer_html):
+        (webkit_dom_html_element_set_outer_html):
+        * bindings/gobject/WebKitDOMDeprecated.h: Added.
+        * bindings/gobject/WebKitDOMDeprecated.symbols: Added.
+        * bindings/gobject/webkitdom.symbols:
+
 2014-12-06  Csaba Osztrogon√°c  <ossy@webkit.org>
 
         URTBF after r176915.
index 65fec7d..165022c 100644 (file)
@@ -465,6 +465,7 @@ list(APPEND GObjectDOMBindings_SOURCES
     bindings/gobject/GObjectNodeFilterCondition.cpp
     bindings/gobject/GObjectXPathNSResolver.cpp
     bindings/gobject/WebKitDOMCustom.cpp
+    bindings/gobject/WebKitDOMDeprecated.cpp
     bindings/gobject/WebKitDOMEventTarget.cpp
     bindings/gobject/WebKitDOMHTMLPrivate.cpp
     bindings/gobject/WebKitDOMNodeFilter.cpp
@@ -680,13 +681,14 @@ if (ENABLE_QUOTA)
     )
 endif ()
 
-set(GObjectDOMBindings_STATIC_CLASS_LIST Custom EventTarget NodeFilter Object XPathNSResolver)
+set(GObjectDOMBindings_STATIC_CLASS_LIST Custom Deprecated EventTarget NodeFilter Object XPathNSResolver)
 
 set(GObjectDOMBindingsStable_CLASS_LIST ${GObjectDOMBindings_STATIC_CLASS_LIST})
 set(GObjectDOMBindingsStable_INSTALLED_HEADERS
      ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/webkitdomdefines.h
      ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/webkitdom.h
      ${WEBCORE_DIR}/bindings/gobject/WebKitDOMCustom.h
+     ${WEBCORE_DIR}/bindings/gobject/WebKitDOMDeprecated.h
      ${WEBCORE_DIR}/bindings/gobject/WebKitDOMEventTarget.h
      ${WEBCORE_DIR}/bindings/gobject/WebKitDOMNodeFilter.h
      ${WEBCORE_DIR}/bindings/gobject/WebKitDOMObject.h
@@ -752,6 +754,13 @@ add_custom_target(fake-generated-webkitdom-headers
 )
 
 set(GObjectDOMBindings_IDL_FILES ${GObjectDOMBindingsStable_IDL_FILES} ${GObjectDOMBindingsUnstable_IDL_FILES})
+set(ADDITIONAL_BINDINGS_DEPENDENCIES
+    ${WEBCORE_DIR}/bindings/gobject/webkitdom.symbols
+    ${WINDOW_CONSTRUCTORS_FILE}
+    ${WORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
+    ${SHAREDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
+    ${DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
+)
 GENERATE_BINDINGS(GObjectDOMBindings_SOURCES
     "${GObjectDOMBindings_IDL_FILES}"
     "${WEBCORE_DIR}"
@@ -761,10 +770,7 @@ GENERATE_BINDINGS(GObjectDOMBindings_SOURCES
     WebKitDOM GObject cpp
     ${IDL_ATTRIBUTES_FILE}
     ${SUPPLEMENTAL_DEPENDENCY_FILE}
-    ${WINDOW_CONSTRUCTORS_FILE}
-    ${WORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
-    ${SHAREDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
-    ${DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE})
+    ${ADDITIONAL_BINDINGS_DEPENDENCIES})
 
 add_definitions(-DBUILDING_WEBKIT)
 add_definitions(-DWEBKIT_DOM_USE_UNSTABLE_API)
index 3939eb0..18ba6a3 100644 (file)
@@ -221,6 +221,12 @@ set(WebCore_FORWARDING_HEADERS_FILES
 WEBKIT_CREATE_FORWARDING_HEADERS(WebCore DIRECTORIES ${WebCore_FORWARDING_HEADERS_DIRECTORIES} FILES ${WebCore_FORWARDING_HEADERS_FILES})
 
 set(FEATURE_DEFINES_OBJECTIVE_C "LANGUAGE_OBJECTIVE_C=1 ${FEATURE_DEFINES_WITH_SPACE_SEPARATOR}")
+set(ADDITIONAL_BINDINGS_DEPENDENCIES
+    ${WINDOW_CONSTRUCTORS_FILE}
+    ${WORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
+    ${SHAREDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
+    ${DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
+)
 GENERATE_BINDINGS(WebCore_SOURCES
     "${WebCore_NON_SVG_IDL_FILES}"
     "${WEBCORE_DIR}"
@@ -229,7 +235,4 @@ GENERATE_BINDINGS(WebCore_SOURCES
     ${DERIVED_SOURCES_WEBCORE_DIR} DOM ObjC mm
     ${IDL_ATTRIBUTES_FILE}
     ${SUPPLEMENTAL_DEPENDENCY_FILE}
-    ${WINDOW_CONSTRUCTORS_FILE}
-    ${WORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
-    ${SHAREDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
-    ${DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE})
+    ${ADDITIONAL_BINDINGS_DEPENDENCIES})
diff --git a/Source/WebCore/bindings/gobject/WebKitDOMDeprecated.cpp b/Source/WebCore/bindings/gobject/WebKitDOMDeprecated.cpp
new file mode 100644 (file)
index 0000000..2111a4d
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ *  Copyright (C) 2014 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
+ */
+
+#include "config.h"
+#include "WebKitDOMDeprecated.h"
+
+#include "WebKitDOMHTMLElement.h"
+
+gchar* webkit_dom_html_element_get_inner_html(WebKitDOMHTMLElement* self)
+{
+    g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), nullptr);
+    return webkit_dom_element_get_inner_html(WEBKIT_DOM_ELEMENT(self));
+}
+
+void webkit_dom_html_element_set_inner_html(WebKitDOMHTMLElement* self, const gchar* contents, GError** error)
+{
+    g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self));
+    webkit_dom_element_set_inner_html(WEBKIT_DOM_ELEMENT(self), contents, error);
+}
+
+gchar* webkit_dom_html_element_get_outer_html(WebKitDOMHTMLElement* self)
+{
+    g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), nullptr);
+    return webkit_dom_element_get_outer_html(WEBKIT_DOM_ELEMENT(self));
+}
+
+void webkit_dom_html_element_set_outer_html(WebKitDOMHTMLElement* self, const gchar* contents, GError** error)
+{
+    g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self));
+    webkit_dom_element_set_outer_html(WEBKIT_DOM_ELEMENT(self), contents, error);
+}
diff --git a/Source/WebCore/bindings/gobject/WebKitDOMDeprecated.h b/Source/WebCore/bindings/gobject/WebKitDOMDeprecated.h
new file mode 100644 (file)
index 0000000..a6b55ab
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ *  Copyright (C) 2014 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
+ */
+
+#ifndef WebKitDOMDeprecated_h
+#define WebKitDOMDeprecated_h
+
+#if !defined(WEBKIT_DISABLE_DEPRECATED)
+
+#include <glib.h>
+#include <webkitdom/webkitdomdefines.h>
+
+G_BEGIN_DECLS
+
+/**
+ * webkit_dom_html_element_get_inner_html:
+ * @self: a #WebKitDOMHTMLElement
+ *
+ * Returns: a #gchar
+ *
+ * Deprecated: 2.8: Use webkit_dom_element_get_inner_html() instead.
+ */
+WEBKIT_DEPRECATED_FOR(webkit_dom_element_get_inner_html) gchar*
+webkit_dom_html_element_get_inner_html(WebKitDOMHTMLElement* self);
+
+/**
+ * webkit_dom_html_element_set_inner_html:
+ * @self: a #WebKitDOMHTMLElement
+ * @contents: a #gchar with contents to set
+ * @error: a #GError or %NULL
+ *
+ * Deprecated: 2.8: Use webkit_dom_element_set_inner_html() instead.
+ */
+WEBKIT_DEPRECATED_FOR(webkit_dom_element_set_inner_html) void
+webkit_dom_html_element_set_inner_html(WebKitDOMHTMLElement* self, const gchar* contents, GError** error);
+
+/**
+ * webkit_dom_html_element_get_outer_html:
+ * @self: a #WebKitDOMHTMLElement
+ *
+ * Returns: a #gchar
+ *
+ * Deprecated: 2.8: Use webkit_dom_element_get_outer_html() instead.
+ */
+WEBKIT_DEPRECATED_FOR(webkit_dom_element_get_outer_html) gchar*
+webkit_dom_html_element_get_outer_html(WebKitDOMHTMLElement* self);
+
+/**
+ * webkit_dom_html_element_set_outer_html:
+ * @self: a #WebKitDOMHTMLElement
+ * @contents: a #gchar with contents to set
+ * @error: a #GError or %NULL
+ *
+ * Deprecated: 2.8: Use webkit_dom_element_set_outer_html() instead.
+ */
+WEBKIT_DEPRECATED_FOR(webkit_dom_element_set_outer_html) void
+webkit_dom_html_element_set_outer_html(WebKitDOMHTMLElement* self, const gchar* contents, GError** error);
+
+G_END_DECLS
+
+#endif /* WEBKIT_DISABLE_DEPRECATED */
+
+#endif
diff --git a/Source/WebCore/bindings/gobject/WebKitDOMDeprecated.symbols b/Source/WebCore/bindings/gobject/WebKitDOMDeprecated.symbols
new file mode 100644 (file)
index 0000000..0647f08
--- /dev/null
@@ -0,0 +1,4 @@
+void webkit_dom_html_element_set_inner_html(WebKitDOMHTMLElement*, const gchar*, GError**)
+gchar* webkit_dom_html_element_get_outer_html(WebKitDOMHTMLElement*)
+gchar* webkit_dom_html_element_get_inner_html(WebKitDOMHTMLElement*)
+void webkit_dom_html_element_set_outer_html(WebKitDOMHTMLElement*, const gchar*, GError**)
index d02c67a..7cba776 100644 (file)
@@ -112,6 +112,10 @@ void webkit_dom_element_set_id(WebKitDOMElement*, const gchar*)
 WebKitDOMCSSStyleDeclaration* webkit_dom_element_get_style(WebKitDOMElement*)
 gchar* webkit_dom_element_get_class_name(WebKitDOMElement*)
 void webkit_dom_element_set_class_name(WebKitDOMElement*, const gchar*)
+void webkit_dom_element_set_inner_html(WebKitDOMElement*, const gchar*, GError**)
+gchar* webkit_dom_element_get_inner_html(WebKitDOMElement*)
+void webkit_dom_element_set_outer_html(WebKitDOMElement*, const gchar*, GError**)
+gchar* webkit_dom_element_get_outer_html(WebKitDOMElement*)
 gchar* webkit_dom_element_get_tag_name(WebKitDOMElement*)
 WebKitDOMElement* webkit_dom_element_get_offset_parent(WebKitDOMElement*)
 glong webkit_dom_element_get_scroll_left(WebKitDOMElement*)
index 3a69b6e..937a27c 100644 (file)
@@ -38,15 +38,12 @@ macro(GENERATE_BINDINGS _output_source _input_files _base_dir _idl_includes _fea
     set(BINDING_GENERATOR ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl)
     set(_args ${ARGN})
     list(LENGTH _args _argCount)
-    if (_argCount EQUAL 5)
+    if (_argCount GREATER 0)
         list(GET _args 0 _supplemental_dependency_file)
         if (_supplemental_dependency_file)
             set(_supplemental_dependency --supplementalDependencyFile ${_supplemental_dependency_file})
         endif ()
-        list(GET _args 1 _window_constructors_file)
-        list(GET _args 2 _workerglobalscope_constructors_file)
-        list(GET _args 3 _sharedworkerglobalscope_constructors_file)
-        list(GET _args 4 _dedicatedworkerglobalscope_constructors_file)
+        list(GET _args 1 _additional_dependencies)
     endif ()
 
     set(COMMON_GENERATOR_DEPENDENCIES
@@ -55,11 +52,8 @@ macro(GENERATE_BINDINGS _output_source _input_files _base_dir _idl_includes _fea
         ${SCRIPTS_BINDINGS}
         ${_supplemental_dependency_file}
         ${_idl_attributes_file}
-        ${_window_constructors_file}
-        ${_workerglobalscope_constructors_file}
-        ${_sharedworkerglobalscope_constructors_file}
-        ${_dedicatedworkerglobalscope_constructors_file}
     )
+    list(APPEND COMMON_GENERATOR_DEPENDENCIES ${_additional_dependencies})
 
     if (EXISTS ${WEBCORE_DIR}/bindings/scripts/CodeGenerator${_generator}.pm)
         list(APPEND COMMON_GENERATOR_DEPENDENCIES ${WEBCORE_DIR}/bindings/scripts/CodeGenerator${_generator}.pm)
index 5e57aed..4dbeade 100644 (file)
@@ -1,3 +1,21 @@
+2014-12-07  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Missing API detected in GObject DOM bindings after r176630
+        https://bugs.webkit.org/show_bug.cgi?id=139201
+
+        Reviewed by Gustavo Noronha Silva.
+
+        Handle deprecated symbols again when generating the GObject DOM
+        bindings documentation.
+
+        * gtk/webkitdom.py:
+        (WebKitDOMDocGenerator):
+        (WebKitDOMDocGenerator.is_deprecated_symbol_file):
+        (WebKitDOMDocGenerator.generate):
+        (WebKitDOMDocGeneratorSections.__init__):
+        (WebKitDOMDocGeneratorSections._find_deprecated_symbols):
+        (WebKitDOMDocGeneratorSections.write_section):
+
 2014-12-07  Csaba Osztrogon√°c  <ossy@webkit.org>
 
         [EFL][jhbuild] Fix libsoup build with clang
index ebd563c..c403ea1 100755 (executable)
@@ -43,9 +43,15 @@ class WebKitDOMDocGenerator(object):
     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_footer()
 
@@ -78,6 +84,10 @@ class WebKitDOMDocGeneratorSGML(WebKitDOMDocGenerator):
     <title>Index</title>
     <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
   </index>
+  <index id="api-index-deprecated" role="deprecated">
+    <title>Index of deprecated symbols</title>
+    <xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
+  </index>
 
   <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
 </book>
@@ -94,6 +104,11 @@ class WebKitDOMDocGeneratorSections(WebKitDOMDocGenerator):
         self._function_re = re.compile('^.+ (.+)\((.+)\)$')
         self._constant_re = re.compile('^[A-Z_]+$')
 
+        self.deprecated_symbols = {}
+        for symbol_file in symbol_files:
+            if WebKitDOMDocGenerator.is_deprecated_symbol_file(symbol_file):
+                self._deprecated_symbols = self._find_deprecated_symbols(symbol_file)
+
     def _dom_class(self, class_name):
         return self._dom_class_re.sub(r'\2', class_name)
 
@@ -114,6 +129,22 @@ class WebKitDOMDocGeneratorSections(WebKitDOMDocGenerator):
 
         return retval
 
+    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('*')
+            retval.setdefault(class_name, []).append(function)
+        f.close()
+
+        return retval
+
     def _symbol_list(self, symbol_file):
         retval = []
         f = open(symbol_file, 'r')
@@ -141,6 +172,11 @@ class WebKitDOMDocGeneratorSections(WebKitDOMDocGenerator):
             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<SUBSECTION Standard>\n')
             if is_interface: