2010-10-19  Ryuan Choi  <ryuan.choi@samsung.com>

        Unreviewed, adding missed additionalArguments.

        [CMAKE] additional arguments was missed in GENERATE_DOM_NAMES
        https://bugs.webkit.org/show_bug.cgi?id=47694

        Pass additionalArguments for make_names.pl to choose enabled features.

        * cmake/WebKitMacros.cmake:

2010-10-19  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r70034.
        http://trac.webkit.org/changeset/70034
        https://bugs.webkit.org/show_bug.cgi?id=47889

        "Gustavo's bot is lame" (Requested by xan_ on #webkit).

        * configure.ac:

2010-10-19  Prof. MAAD  <himself@prof-maad.org>

        Reviewed by Xan Lopez.

        [GTK] Correct erroneous documentation for webkit_web_navigation_action_get_button()
        https://bugs.webkit.org/show_bug.cgi?id=46723

        * WebKit/gtk/webkit/webkitwebnavigationaction.cpp:

2010-10-19  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] Bump minimum requirement for libsoup to 2.30
        https://bugs.webkit.org/show_bug.cgi?id=46176

        Bump minimum libsoup to required version to 2.30.0.

        * configure.ac:

2010-10-18  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Martin Robinson.

        Bump version numbers for 1.3.5 release.

        * configure.ac:

2006-10-27  Brady Eidson  <beidson@apple.com>

        70,000!

2010-10-15  Sergio Villar Senin  <svillar@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] Fix introspection support
        https://bugs.webkit.org/show_bug.cgi?id=47723

        Added HTTP cache directory to the WebkitGtk+ GIR sources.

        * GNUmakefile.am:

2010-10-14  Andras Becsi  <abecsi@webkit.org>

        Reviewed by Csaba Osztrogonác.

        [Qt] Fix -Werror after r68637 on x86 platforms.
        Qt's build system sets QT_ARCH statically to i386 or x86_64 accordingly,
        so check for this instead of only checking for x86.

        * WebKit.pri:

2010-10-13  Sergio Villar Senin  <svillar@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] Add HTTP caching support
        https://bugs.webkit.org/show_bug.cgi?id=44261

        Bump the required version of GLib. The serialization/deserialization
        code of libsoup caching code uses GVariant, which was added to GLib in
        version 2.24.

        * GNUmakefile.am: Add paths for soup HTTP cache code.
        * autotools/webkit.m4: Increase required glib version.

2010-10-13  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        [GTK] Remove more warnings from the g-i scanner run
        https://bugs.webkit.org/show_bug.cgi?id=47255

        Fixes almost all warnings coming from the g-i scanner.

        * GNUmakefile.am: Add missing files and include dirs to the
        scanner run.

2010-10-08  Balazs Kelemen  <kbalazs@webkit.org>

        Reviewed by Csaba Osztrogonác.

        [Qt] Turn on building WTR
        https://bugs.webkit.org/show_bug.cgi?id=47349

        * DerivedSources.pro:
        * WebKit.pro:

2010-10-07  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>, Andras Becsi  <abecsi@webkit.org>, Balazs Kelemen  <kbalazs@webkit.org>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Add WTR's InjectedBundle build files.
        https://bugs.webkit.org/show_bug.cgi?id=47333

        * DerivedSources.pro:
        * WebKit.pro:

2010-10-07  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r69315.
        http://trac.webkit.org/changeset/69315
        https://bugs.webkit.org/show_bug.cgi?id=47363

        Forgot to add the new files (Requested by kbalazs on #webkit).

        * DerivedSources.pro:

2010-10-07  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>, Andras Becsi  <abecsi@webkit.org>, Balazs Kelemen  <kbalazs@webkit.org>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Add WTR's InjectedBundle build files.
        https://bugs.webkit.org/show_bug.cgi?id=47333

        * DerivedSources.pro:
        * WebKit.pro:

2010-10-07  Balazs Kelemen  <kbalazs@webkit.org>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Turn on building WTR
        https://bugs.webkit.org/show_bug.cgi?id=47349

        * WebKit.pro:

2010-10-07  Carlos Garcia Campos  <cgarcia@igalia.com>

        Reviewed by Xan Lopez.

        [GTK] Fix the build for GTK+ 3
        https://bugs.webkit.org/show_bug.cgi?id=47249

        Bump required gtk+-3 version to 2.91.0

        * configure.ac:

2010-10-07  Simon Hausmann  <simon.hausmann@nokia.com>

        Rubber-stamped by Tor Arne Vestbø.

        [Qt] Re-enable the web inspector for maemo6 builds

        Yeah, it's strange :), but they really want it.

        * WebKit.pri:

2010-10-06  Balazs Kelemen  <kbalazs@webkit.org>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Add WebKitTestRunner's build files
        https://bugs.webkit.org/show_bug.cgi?id=44155

        Add the new subdirs.
        * DerivedSources.pro:
        * WebKit.pro:

2010-10-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Reviewed by Antonio Gomes.

        [EFL] Use fast malloc for WebKit EFL
        https://bugs.webkit.org/show_bug.cgi?id=46691

        Use fast malloc for WebKit EFL because the fast malloc is to allocate
        memory quickly.

        * cmake/OptionsEfl.cmake:

2010-10-03  Dimitri Glazkov  <dglazkov@chromium.org>

        Add Chromium depot_tools to files that git should ignore.

        * .gitignore: Added WebKit/chromium/depot_tools.

2010-09-30  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Fix typo in build script.

        * wscript:

2010-09-29  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Csaba Osztrogonác.

        [Qt] Fix the build on non-x86 platforms with gcc

        Don't disable -Werror on arm, that doesn't work when QT_ARCH is
        for example armv6. Instead change the condition as the comment says,
        enable -Werror on x86/gcc where we know it passes. On other platforms
        gcc produces difference warnings, and when they're fixed we can add
        them to the whitelist of -Werror-supported architectures.

        * WebKit.pri:

2010-09-28  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Martin Robinson.

        check USE(GSTREAMER) instead of ENABLE(VIDEO) in gstreamer/ files
        https://bugs.webkit.org/show_bug.cgi?id=46717

        Define WTF_USE_GSTREAMER if configure found the gstreamer
        development files and add the macro in the gcc command-line if needed.

        * GNUmakefile.am:
        * configure.ac:

2010-09-28  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Build fix, build sources that used to be built as part of other sources.

        * wscript:

2010-09-28  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] One more build fix for Win.

        * wscript:

2010-09-28  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Build fix, ignore Qt-specific (for now?) source in platform/graphics.

        * wscript:

2010-09-28  Andras Becsi  <abecsi@webkit.org>

        Reviewed by Csaba Osztrogonác.

        Undefined reference errors when linking due to gperf and inlining.
        webkit.org/b/29244

        EFL CMake changes by Leandro Pereira <leandro@profusion.mobi>

        Refactor gperf code generation and usage to fix the debug build with gcc>4.4.
        Hitherto gperf generated C code, these files were included in multiple C++ files across WebCore
        to access the functionality provided. This resulted in debug build failure with newer gcc versions
        because of a behaviour change of gcc, which disables C style inlining in debug mode.
        The make-hash-tools.pl script lets gperf generate C++ code for all gperf files now, which are compiled
        in their own compilation unit.
        The functionality provided by the generated code is wrapped behind HashTools.h, so there is no need
        for multiple inclusions of generated C files to access these functions.

        * cmake/WebKitMacros.cmake:

2010-09-27  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] use ENABLE(GLIB_SUPPORT)
        https://bugs.webkit.org/show_bug.cgi?id=46630

        Enabling GLIB_SUPPORT on all ports that use GLib to simplify
        checks.

        * GNUmakefile.am: Enabled the GLIB_SUPPORT define.

2010-09-24  Romain Pokrzywka  <romain@kdab.com>

        Reviewed by Simon Hausmann.

        [Qt] Fix the Wince build.

        * WebKit.pri: Apply msvc flags to wince, too.

2010-09-23  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Antonio Gomes.

        [EFL] Enable warnings during build by default
        https://bugs.webkit.org/show_bug.cgi?id=46351

        Change default build to enable several warnings like other ports do.
        We need to pay special attention to "-Wall" in order to produce better
        code, so highlight this keyword, too.

        * cmake/WebKitHelpers.cmake:

2010-09-22  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Antonio Gomes.

        [EFL] Fix build with GCC 4.4.x
        https://bugs.webkit.org/show_bug.cgi?id=40826

        Change the -fstrict-aliasing flag to -fno-strict-aliasing as other
        ports like GTK and QT are using in their build systems. It was failing
        to execute when compiled with GCC 4.4.x in Release mode.

        Refactor the flags in order to be more readable.

        * cmake/WebKitHelpers.cmake:

2010-09-22  No'am Rosenthal  <noam.rosenthal@nokia.com>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Move the accelerated compositing build flag to the right place
        https://bugs.webkit.org/show_bug.cgi?id=43882

        * WebKit.pri: Removed the redundant version check.

2010-09-21  Fridrich Strba  <fridrich.strba@bluewin.ch>

        Reviewed by Martin Robinson.

        Fix linking issues of the GTK+ port on Windows
        https://bugs.webkit.org/show_bug.cgi?id=45844

        * GNUmakefile.am: link on Windows with ole32.dll, winmm.dll and shlwapi.dll
        * configure.ac: link on Windows with ole32.dll, winmm.dll and shlwapi.dll
        and export correctly all needed symbols from the libwebkitgtk DLL.

2010-09-21  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] Generate correct WebKit gir file with g-i 0.9.5
        https://bugs.webkit.org/show_bug.cgi?id=46173

        Generate a correct gir file for WebKit with the
        gobject-introspection 0.9.5 scanner.

        * GNUmakefile.am:

2010-09-21  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Update for 1.3.4 release.

        * configure.ac:

2010-09-21  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] Configure flag for Opcode stats
        https://bugs.webkit.org/show_bug.cgi?id=46081

        Opcode stats won't work with JIT enabled, so bail out if both are
        enabled at the same time.

        * configure.ac:

2010-09-21  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] Fix --disable-jit
        https://bugs.webkit.org/show_bug.cgi?id=46080

        Manually define ENABLE_JIT to 0 when we want the feature disabled.

        If the value is undefined Platform.h will enable it again
        automatically in some platforms, which is probably not what the
        user wanted if he passed --disable-jit.

        * configure.ac:

2010-09-18  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Build fix, fix use of wrong case in name.

        * wscript:

2010-09-16  Eric Uhrhane  <ericu@chromium.org>

        Reviewed by Jian Li.

        Unify FILE_SYSTEM and FILE_WRITER enables under the name FILE_SYSTEM.
        https://bugs.webkit.org/show_bug.cgi?id=45798

        * configure.ac:

2010-09-15  Commit Queue  <commit-queue@webkit.org>

        Unreviewed.  Test commit for commit-queue@webkit.org.

2010-09-15  Eric Seidel  <eric@webkit.org>

        Unreviewed.  Test commit for commit-queue@webkit.org.

2010-09-15  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Build fixes for wxMSW.

        * wscript:

2010-09-14  Andras Becsi  <abecsi@webkit.org>

        Reviewed by Csaba Osztrogonác.

        [Qt] qmake doesn't generate correct dependencies for rcc resource files
        https://bugs.webkit.org/show_bug.cgi?id=45747

        * WebKit.pri: add OUT_PWD to DEPENDPATH

2010-09-11  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Andreas Kling.

        [Qt] V8 port: webkit project files changes
        https://bugs.webkit.org/show_bug.cgi?id=45140

        * WebKit.pro: Don't compile JavaScriptCore and jsc when
        building with v8.

2010-09-11  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] Make introspection work with g-o-i 0.9.5
        https://bugs.webkit.org/show_bug.cgi?id=45590

        Bump required gobject-introspection version to 0.9.5.

        * configure.ac:

2010-09-09  Benjamin Poulain  <benjamin.poulain@nokia.com>

        Unreviewed buildfix.

        [Qt] Treat warnings as errors by default for gcc
        https://bugs.webkit.org/show_bug.cgi?id=43191

        The buildfix r66990 fixes the build for the Maemo
        branch of Qt, but the symbols maemo5 and 6 are not defined
        for regular branches on ARM.
        This fixes the build by disabling -Werror for any ARM platform.

        * WebKit.pri: Don't add -Werror for arm platforms.

2010-09-08  Peter Kasting  <pkasting@google.com>

        Reviewed by David Hyatt.

        Add smooth scrolling framework, and a Windows implementation.
        https://bugs.webkit.org/show_bug.cgi?id=32356

        * wscript: Add Windows ScrollAnimator.

2010-09-08  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed buildfix after r66972.

        [Qt] Treat warnings as errors by default for gcc
        https://bugs.webkit.org/show_bug.cgi?id=43191

        * WebKit.pri: Don't add -Werror for maemo platforms.

2010-09-08  Martin Robinson  <mrobinson@igalia.com>

        Reviewed by Xan Lopez.

        [GTK] Need a WebSocket implementation
        https://bugs.webkit.org/show_bug.cgi?id=45197

        * configure.ac: Enable WebSocket by default.

2010-09-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Support to enable HTML5's Video based on gstreamer in WebKit-EFL
        https://bugs.webkit.org/show_bug.cgi?id=44098

        To support video of HTML5 based on gstreamer, add cmake files for gstreamer. 

        * cmake/FindGStreamer-App.cmake: Added.
        * cmake/FindGStreamer-Base.cmake: Added.
        * cmake/FindGStreamer-Interfaces.cmake: Added.
        * cmake/FindGStreamer-Pbutils.cmake: Added.
        * cmake/FindGStreamer-Plugins-Base.cmake: Added.
        * cmake/FindGStreamer-Video.cmake: Added.
        * cmake/FindGStreamer.cmake: Added.
        * cmake/OptionsEfl.cmake:

2010-09-08  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Andreas Kling.

        [Qt] Treat warnings as errors by default for gcc
        https://bugs.webkit.org/show_bug.cgi?id=43191

        * WebKit.pri: -Werror added to QMAKE_CXXFLAGS for x86 Linux platforms

2010-09-07  Arno Renevier  <arno@renevier.net>

        Reviewed by Holger Freyther.

        gitignore *~ files and gtk *.pot files
        https://bugs.webkit.org/show_bug.cgi?id=45129

        * .gitignore:

2010-09-04  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Move test browser to WebKitTools directory
        https://bugs.webkit.org/show_bug.cgi?id=45212

        Follow other ports like QT and GTK which moved the test browser to
        WebKitTools directory.

        * CMakeLists.txt: Include test browser if port defines one.

2010-09-02  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Antonio Gomes.

        [EFL] Name install directories according to library name
        https://bugs.webkit.org/show_bug.cgi?id=45126

        * cmake/OptionsEfl.cmake: Use library name in order to define the data
        directory.

2010-09-02  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Antonio Gomes.

        [EFL] Do not override custom compile flags
        https://bugs.webkit.org/show_bug.cgi?id=45125

        Set a default build type if and only if user did not define one as
        command line options and he did not give custom CFLAGS or CXXFLAGS.
        Otherwise, flags from default build type would override user-defined
        ones.

        * CMakeLists.txt:

2010-09-02  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Antonio Gomes.

        [EFL] Fix double addition of -fPIC
        https://bugs.webkit.org/show_bug.cgi?id=45122

         When SHARED_CORE=ON, -fPIC is automatically added because all
         libraries are dynamic. Only when static libraries are built that
         -fPIC needs to be manually inserted (because the final library,
         libewebkit.so, is dynamic).

        * cmake/OptionsCommon.cmake: Remove -fPIC flag.
        * cmake/WebKitHelpers.cmake: Add -fPIC flags iff SHARED_CORE=ON.

2010-09-01  Ryuan Choi  <ryuan.choi@samsung.com>

        Reviewed by Antonio Gomes.

        [EFL] Need to check LibSoup version
        https://bugs.webkit.org/show_bug.cgi?id=44658

        Add version check of LibSoup.

        * cmake/FindLibSoup2.cmake:

2010-08-31  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Martin Robinson.

        Preparations for the 1.3.4 release. Bump webkit version to 543.7,
        as well.

        * configure.ac:

2010-08-30  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Adam Barth.

        [EFL] Remove compiler optimization for gcc 4.5.1
        https://bugs.webkit.org/show_bug.cgi?id=44520

        GCC 4.5.1 generates wrong code because of -ftree-sra which is enabled
        by default at any optimization level.

        Newer and older versions are not affected, so check for compiler
        version before disabling this.

        * cmake/WebKitHelpers.cmake: add flag depending on compiler version.

2010-08-30  Alejandro G. Castro  <alex@igalia.com>

        Reviewed by Martin Robinson.

        [Gtk] gdk_display_get_core_pointer and gdk_device_get_core_pointer
        are deprecated
        https://bugs.webkit.org/show_bug.cgi?id=44787

        We have replaced GtkVersioning.cpp with GtkVersioning.c and
        created a function (getDefaultGDKPointerDevice) to get the pointer
        of the window with the new APIs. We added that function to DRT and
        copyandpaste unit test.

        * GNUmakefile.am:

2010-08-30  Martin Robinson  <mrobinson@igalia.com>

        Reviewed by Xan Lopez.

        [GTK] WebKit DOM bindings build should not depend on output GNUMakefile
        https://bugs.webkit.org/show_bug.cgi?id=44805

        Move the DOM bindings source lists and generator rules to
        WebCore/bindings/gobject/GNUmakefile.am. This will prevent a full WebKit API
        rebuild whenever the automake files change, decreasing build times.

        * GNUmakefile.am:

2010-08-27  Mark Rowe  <mrowe@apple.com>

        Reviewed by Adam Barth.

        <http://webkit.org/b/44802> REGRESSION (r65351): WebCore build fails due to attempting to directly access WebKitTools/Scripts

        Move create-html-entity-table in to WebCore so that the build is again self-contained.
        The script is also updated to take input as a CSV file rather than JSON as the former
        can be parsed without requiring a third-party Python module be installed.

        * cmake/WebKitMacros.cmake:

2010-08-27  Kwang Yul Seo  <skyul@company100.net>

        Reviewed by Kevin Ollivier.

        [BREWMP] Add build system
        https://bugs.webkit.org/show_bug.cgi?id=44645

        Check wxpython option only when build_port is wx.

        * wscript:

2010-08-27  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Unreviewed. Fix compiling dependencies on EFL port due to r65891.

        No new functionality so no new tests.

        * cmake/WebKitGenerators.cmake:

2010-08-26  Martin Robinson  <mrobinson@igalia.com>

        Reviewed by Xan Lopez.

        [GTK] The GNUmakefile.am files contain a myriad of confusing preprocessor and compiler flag definitions
        https://bugs.webkit.org/show_bug.cgi?id=44624

        Clean up GNUmakefile.am.

        * GNUmakefile.am: Make the comments describing the global_* variables more readable and
        correct. Move WebKit-specific include lines and definitions out of webkitgtk_cppflags,
        corekit_cppflags and webcoregtk_cppflags and straight to the appropriate CPPFLAGS definition.
        Use global_cppflags for compiler flags that apply to both C++ and C code. Move some JavaScriptCore
        specific includes to the appropriate sub-directory GNUmakefile.am. Make sure the tests build
        with the global CPP flags as well.

2010-08-25  Kwang Yul Seo  <skyul@company100.net>

        Reviewed by Kevin Ollivier.

        [BREWMP] Add build system
        https://bugs.webkit.org/show_bug.cgi?id=44645

        Make waf script portable so that we can add more ports.

        * wscript:

2010-08-25  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] CodeGeneratorGObject not picking up FEATURE_DEFINES
        https://bugs.webkit.org/show_bug.cgi?id=44608

        Move FEATURE_DEFINES declaration here, since it's used by the
        bindings code generator. Also, fix typo in the variable holding
        the defines.

        * GNUmakefile.am:

2010-08-25  Rafael Antognolli  <antognolli@profusion.mobi>

        Unreviewed build fix.

        [EFL] Build fix for revision 65332
        https://bugs.webkit.org/show_bug.cgi?id=44543

        Generated variables are now returned from FindPkgConfig, so no need
        to document the custom ones.

        * cmake/FindGthread.cmake:

2010-08-24  Xan Lopez  <xlopez@igalia.com>

        Build fix, strike 2.

        The unit tests are C files, so put the flag in global_cflags.

        * GNUmakefile.am:

2010-08-24  Xan Lopez  <xlopez@igalia.com>

        Try to fix GTK+ build.

        Move GTK_API_VERSION_2 define to here, since we want to use it
        outside of WebCore/WebKit.

        * GNUmakefile.am:

2010-08-24  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        [EFL] Unreviewed build fix after r65891.

        r65891 renamed RemoteInspectorFrontend to InspectorFrontend. Rename
        accordingly in CMake build system.

        * cmake/WebKitGenerators.cmake:

2010-08-20  Leandro Pereira  <leandro@profusion.mobi>

        [EFL] Unreviewed. Fix build when using GNU gold.
        When linking with GNU gold, some symbols are not found: explicitly
        link with the required libraries.

        * cmake/FindFontconfig.cmake: Added.
        * cmake/OptionsEfl.cmake: Find Fontconfig, JPEG, and PNG libraries.

2010-08-19  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Gustavo Noronha Silva.

        [GStreamer] GTK XOverlay support in GStreamerGWorld
        https://bugs.webkit.org/show_bug.cgi?id=39474

        * configure.ac: gst-interfaces link support needed for use of
        GstXOverlay interface.
        * GNUmakefile.am: Added new FullscreenVideoController files in the
        build.

2010-08-18  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Antonio Gomes.

        [EFL] Bump library dependencies
        https://bugs.webkit.org/show_bug.cgi?id=44182

        Prepare for EFL release. All the EFL dependencies were bumped to
        1.0.0. Eina and Ecore_X needed a bump because of API has changed and
        the others were changed just to follow those two and because this is
        a stable release.

        * cmake/FindEFL.cmake: Bump dependencies.

2010-08-17  Ilya Tikhonovsky  <loislo@chromium.org>

        Reviewed by Yury Semikhatsky.

        Web Inspector: replace hand written InspectorBackendStub.js with generated one.
        https://bugs.webkit.org/show_bug.cgi?id=43791

        * GNUmakefile.am:

2010-08-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r65595.
        http://trac.webkit.org/changeset/65595
        https://bugs.webkit.org/show_bug.cgi?id=44161

        qt build failed (Requested by loislo on #webkit).

        * GNUmakefile.am:

2010-08-17  Ilya Tikhonovsky  <loislo@chromium.org>

        Reviewed by Yury Semikhatsky.

        Web Inspector: replace hand written InspectorBackendStub.js by generated one.
        https://bugs.webkit.org/show_bug.cgi?id=43791

        * GNUmakefile.am:

2010-08-17  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>

        Reviewed by Darin Adler.

        Add NetworkingContext to avoid layer violations
        https://bugs.webkit.org/show_bug.cgi?id=42292

        Preparation: Just add the files to the build system.

        * GNUmakefile.am: Added new files.

2010-08-17  Gustavo Noronha Silva  <gustavo.noronha@collabora.couk>

        Reviewed by Martin Robinson.

        WebBackForwardList.get_{back|forward}_list_with_limit not introspectable
        https://bugs.webkit.org/show_bug.cgi?id=43054

        * GNUmakefile.am: Give also API implementation files to the GIR
        scanner.

2010-08-17  Martin Robinson  <mrobinson@igalia.com>

        GTK+ Build fix for those having stable versions of GLib.

        * configure.ac: Only invoke GLIB_GSETTINGS if we have the necessary gio version.

2010-08-17  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r65500.
        http://trac.webkit.org/changeset/65500
        https://bugs.webkit.org/show_bug.cgi?id=44108

        Qt bots failed to compile. (Requested by loislo on #webkit).

        * GNUmakefile.am:

2010-08-17  Ilya Tikhonovsky  <loislo@chromium.org>

        Reviewed by Yury Semikhatsky.

        Web Inspector: replace hand written InspectorBackendStub.js by generated one.
        https://bugs.webkit.org/show_bug.cgi?id=43791

        * GNUmakefile.am:

2010-08-17  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Martin Robinson.

        [GTK] GSettings support adds annoying warnings on systems with older glib versions
        https://bugs.webkit.org/show_bug.cgi?id=44056

        Add file containing GLIB_GSETTINGS macro so that
        configure doesn't spit warnings in older systems.

        * autotools/gsettings.m4: Added.
        * .gitignore: Ignore files that are generated inside autotools
        explicitely, because we have some that are kept in version
        control.

2010-08-16  Paul Sawaya  <psawaya@apple.com>

        Reviewed by Chris Marrin.

        Added shader validation via ANGLE
        https://bugs.webkit.org/show_bug.cgi?id=42405

        Added ANGLE build to Makefile

        * Makefile:

2010-08-16  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Build fix, do not build WebCore as a convenience library as this leads to
        errors in the Win build w/export symbols and causes problems with DOM bindings
        debugging in gdb. 

        * wscript: Copied from WebCore/wscript.

2010-08-15  Ryuan Choi  <ryuan.choi@samsung.com>

        Reviewed by Antonio Gomes.

        [EFL] Build error on r65378
        https://bugs.webkit.org/show_bug.cgi?id=44019

        Add GENERATE_JSON macro for HTMLEntityNames.json instead of HTMLEntityNames.gperf

        * cmake/WebKitMacros.cmake:

2010-08-14  Patrick Gansterer  <paroga@paroga.com>

        Reviewed by Kenneth Rohde Christiansen.

        [CMake] Add preprocessor detection for generator scripts
        https://bugs.webkit.org/show_bug.cgi?id=43984

        * cmake/OptionsCommon.cmake:

2010-08-14  Adrienne Walker  <enne@google.com>

        Reviewed by Kenneth Rohde Christiansen.

        Update .gitignore file for more files
        https://bugs.webkit.org/show_bug.cgi?id=43991

        * .gitignore:

2010-08-13  Leandro Pereira  <leandro@profusion.mobi>

        [EFL] Unreviewed build fix.

        * cmake/FindGthread.cmake: Fix warnings about obsolete PKGCONFIG macro.
        * cmake/WebKitGenerators.cmake: FLEX_EXECUTABLE was defined already
        by the root CMakeLists.txt file, so remove relevant lines that
        depends on FIND_PACKAGE_HANDLE_STANDARD_ARGS macro, which isn't
        available anymore.

2010-08-13  Alejandro G. Castro  <alex@igalia.com>

        Reviewed by Xan Lopez.

        We have to add the ACLOCAL_FLAGS in the env to the autogen.sh
        ACLOCAL_FLAGS variable in order to honor the value already
        defined, jhbuild uses it to pass parameters.

        * autogen.sh:

2010-08-13  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Ariya Hidayat.

        [Qt] Introduce Maemo6 for mobile features
        https://bugs.webkit.org/show_bug.cgi?id=43969

        * WebKit.pri: Use maemo6 where we also use maemo5.

2010-08-13  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Ariya Hidayat.

        [Qt] Clean up mobile feature useage
        https://bugs.webkit.org/show_bug.cgi?id=43968

        * WebKit.pri: Set feature defaults here for some Nokia specific mobile platforms

2010-08-13  Patrick Gansterer  <paroga@paroga.com>

        Reviewed by Nikolas Zimmermann.

        [CMake] Cleanup generator code.
        https://bugs.webkit.org/show_bug.cgi?id=39164

        * cmake/WebKitGenerators.cmake:
        * cmake/WebKitMacros.cmake:

2010-08-13  Patrick Gansterer  <paroga@paroga.com>

        Reviewed by Nikolas Zimmermann.

        [CMake] Add missing FIND_PACKAGE(Gperf)
        https://bugs.webkit.org/show_bug.cgi?id=43937

        * CMakeLists.txt:

2010-08-12  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by David Levin.

        Add more Chromium-related dependency directories to .gitignore.
        https://bugs.webkit.org/show_bug.cgi?id=43940

        * .gitignore: Added all existing that are created by update-webkit --chromium.

2010-08-12  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Martin Robinson.

        [GTK] Use GSettings to save/restore Web Inspector settings
        https://bugs.webkit.org/show_bug.cgi?id=43512

        * GNUmakefile.am: GSettings rules.
        * configure.ac: GSettings infrastructure, and check if we should
        use it by looking for an appropriate version of GIO.

2010-08-12  Rafael Antognolli  <antognolli@profusion.mobi>

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Making CMake keep track of theme dependencies.
        https://bugs.webkit.org/show_bug.cgi?id=43862

        Removing unused macro GENERATE_EDJ.

        * cmake/WebKitEfl.cmake:

2010-08-12  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r65225.
        http://trac.webkit.org/changeset/65225
        https://bugs.webkit.org/show_bug.cgi?id=43918

        Broke EFL port build (Requested by acidx on #webkit).

        * cmake/WebKitGenerators.cmake:
        * cmake/WebKitMacros.cmake:

2010-08-12  Patrick Gansterer  <paroga@paroga.com>

        Reviewed by Nikolas Zimmermann.

        [CMake] Cleanup generator code.
        https://bugs.webkit.org/show_bug.cgi?id=39164

        * cmake/WebKitGenerators.cmake:
        * cmake/WebKitMacros.cmake:

2010-08-10  Balazs Kelemen  <kb@inf.u-szeged.hu>

        Reviewed by Antonio Gomes.

        [Qt] Build WebKit2 into a static lib

        https://bugs.webkit.org/show_bug.cgi?id=43621

        * WebKit.pro: Moved WebKit2 into the subdirs before WebCore since WebCore links against the WebKit2 lib.

2010-08-07  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r64904.
        http://trac.webkit.org/changeset/64904
        https://bugs.webkit.org/show_bug.cgi?id=43671

        Broke the Qt Windows builders. (Requested by bbandix on
        #webkit).

        * WebKit.pro:

2010-08-07  Balazs Kelemen  <kb@inf.u-szeged.hu>

        Reviewed by Eric Seidel.

        [Qt] Build WebKit2 into a static lib

        https://bugs.webkit.org/show_bug.cgi?id=43621

        * WebKit.pro: Moved WebKit2 into the subdirs before WebCore since WebCore links against the WebKit2 lib.

2010-08-06  ryuan choi  <ryuan.choi@samsung.com>

        Reviewed by Antonio Gomes.

        [EFL] Regression (64763) build fix for efl.
        https://bugs.webkit.org/show_bug.cgi?id=43597

        change ENABLE_BLOB_SLICE to ENABLE_BLOB for fixing build break

        * cmake/OptionsEfl.cmake:

2010-08-05  Jian Li  <jianli@chromium.org>

        Reviewed by David Levin.

        Unify blob related feature defines to ENABLE(BLOB).
        https://bugs.webkit.org/show_bug.cgi?id=43081

        * cmakeconfig.h.cmake:
        * configure.ac:

2010-08-05  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Xan Lopez.

        Move files that are generated by the configure script to
        DISTCLEANFILES, where they should be. This fixes building after a
        make clean.

        * GNUmakefile.am:

2010-08-04  Siddharth Mathur  <siddharth.mathur@nokia.com>

        Reviewed by Laszlo Gombos.

        [Qt][Symbian] Variable max heap size between target/emulator
        https://bugs.webkit.org/show_bug.cgi?id=41480

        * WebKit.pri: Symbian-only code block for EPOCHEAPSIZE configuration

2010-08-03  Eric Seidel  <eric@webkit.org>

        Unreviewed.  Test commit for commit-queue@webkit.org.

2010-08-03  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        [GTK] Fix DOM event dispatch
        https://bugs.webkit.org/show_bug.cgi?id=40847

        Add new files to the build.

        * GNUmakefile.am:

2010-08-03  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Silence JSCore gir "creation".

        * GNUmakefile.am:

2010-08-02  Chris Fleizach  <cfleizach@apple.com>

        Unreviewed, rolling out r64471.
        http://trac.webkit.org/changeset/64471
        https://bugs.webkit.org/show_bug.cgi?id=43005

        Rolling out https://bugs.webkit.org/show_bug.cgi?id=43005
        until further discussion

        * GNUmakefile.am:

2010-08-02  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        [GTK] Add support for the Audio element in the DOM bindings
        https://bugs.webkit.org/show_bug.cgi?id=43313

        Add new files to the build.

        * GNUmakefile.am:

2010-08-02  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by David Kilzer.

        AX: Support methods for web apps to interact with the native accessibility APIs
        https://bugs.webkit.org/show_bug.cgi?id=43005

        * GNUmakefile.am:

2010-08-02  Balazs Kelemen  <kb@inf.u-szeged.hu>

        Reviewed by Simon Hausmann.

        [Qt] Generate forwarding headers for WebKit2

        https://bugs.webkit.org/show_bug.cgi?id=43336

        * DerivedSources.pro: Added WebKit2/DerivedSources.pro to SUBDIRS if webkit2 is on.

2010-07-30  Patrick Gansterer  <paroga@paroga.com>

        Reviewed by Nikolas Zimmermann.

        [CMake] Add FindGperf.cmake
        https://bugs.webkit.org/show_bug.cgi?id=39163

        Add a clean gperf dedection since we need it for building.

        * CMakeLists.txt:
        * cmake/FindGperf.cmake: Added.

2010-07-30  Rafael Antognolli  <antognolli@profusion.mobi>

        Reviewed by Antonio Gomes.

        [EFL] Add library version and soname to EFL generated libraries and binary.
        https://bugs.webkit.org/show_bug.cgi?id=43212

        Make WebKit-EFL follow libtool soname versioning scheme.

        * cmake/OptionsEfl.cmake: Added PROJECT_VERSION_PATCH to PROJECT_VERSION.

2010-07-29  Martin Robinson  <mrobinson@igalia.com>

        Unreviewed build fix.

        Fix installation of autogenerated header files.

        * GNUmakefile.am: Fix autogenerated header file installation.

2010-07-27  Martin Robinson  <mrobinson@igalia.com>

        Unreviewed build fix.

        Add missing webkitdomdefines.h header to the sources list.

        * GNUmakefile.am: Add missing header to the sources list.

2010-07-27  Kinuko Yasuda  <kinuko@chromium.org>

        Reviewed by Ojan Vafai.

        Add FILE_SYSTEM build flag for FileSystem API
        https://bugs.webkit.org/show_bug.cgi?id=42915

        * configure.ac:

2010-07-26  ryuan choi  <ryuan.choi@samsung.com>

        Unreviewed build fix.

        [EFL]REGRESSION(r63952): build break because of InspectorBackendDispatcher.cpp
        https://bugs.webkit.org/show_bug.cgi?id=43021

        Modify cmake script to fix build break as adding InspectorBackendDispatcher.

        * cmake/WebKitGenerators.cmake:

2010-07-27  Rafael Antognolli  <antognolli@profusion.mobi>

        Reviewed by Antonio Gomes.

        [EFL] Changing library names (appending suffix "_efl")
        https://bugs.webkit.org/show_bug.cgi?id=42902

        Instead of having libwebcore.so, we will have libwebcore_efl.so.
        Same for javascriptcore and wtf when compiled as shared, and for jsc.

        * cmake/OptionsEfl.cmake:

2010-07-26  Martin Robinson  <mrobinson@igalia.com>

        Reviewed by Xan Lopez.

        [GTK] Get rid of libgdom
        https://bugs.webkit.org/show_bug.cgi?id=42378

        Remove the need to build the libgdom intermediate library.

        * GNUmakefile.am: Move the source list for the GObject DOM bindings to
        the top-level GNUmakefile.am, since they are logically part of WebKit, instead
        of WebCore. List all auto-generated files statically and remove no-longer-
        used variables. Fix an issue where some places expected webkitenumtypes.cpp
        to be generated in different directories.

2010-07-24  Riccardo Magliocchetti  <riccardo.magliocchetti@gmail.com>

        Reviewed by Xan Lopez.

        [GTK] Enable jit compilation on arm
        https://bugs.webkit.org/show_bug.cgi?id=42856

        Add missing bits to configure.ac to build the arm jit.
        Compile and tested on debian sid armel on a qemu vm.

        * configure.ac:

2010-07-23  Rafael Antognolli  <antognolli@profusion.mobi>

        Reviewed by Antonio Gomes.

        [EFL] Cleanup glib support (make it optional)
        https://bugs.webkit.org/show_bug.cgi?id=42480

        Fixing support for compiling EFL port without glib.

        * cmake/FindGthread.cmake: Added.
        * cmake/OptionsEfl.cmake:

2010-07-23  Rafael Antognolli  <antognolli@profusion.mobi>

        Reviewed by Antonio Gomes.

        [EFL] Add support for using libcurl network backend.
        https://bugs.webkit.org/show_bug.cgi?id=42286

        Instead of just libsoup, the EFL port now can use libcurl backend.
        This is a step in the direction of removing dependency on glib. Just
        need to pass the option -DNETWORK_BACKEND=curl to cmake in order to
        enable it.

        * cmake/OptionsEfl.cmake:

2010-07-23  Andras Becsi  <abecsi@webkit.org>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Enable the build of MiniBrowser.

        * WebKit.pro: add MiniBrowser.pro to SUBDIRS.

2010-07-23  Balazs Kelemen  <kb@inf.u-szeged.hu>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Setup the QtWebProcess

        https://bugs.webkit.org/show_bug.cgi?id=42623

        * WebKit.pro: Add WebKit2.pro to the build guarded by webkit2 config variable.

2010-07-20  Rafael Antognolli  <antognolli@profusion.mobi>

        Reviewed by Antonio Gomes.

        [EFL] Enable Ecore-X on compile time
        https://bugs.webkit.org/show_bug.cgi?id=42600

        Check for a flag received from cmake configure and disable it
        if necessary. Also disable it if Ecore-X wasn't found.

        EFL port does not support automated tests yet.

        * cmake/FindEFL.cmake:
        * cmake/OptionsEfl.cmake:

2010-07-20  Hans Wennborg  <hans@chromium.org>

        Reviewed by Steve Block.

        Add WebCore/bindings/generic/RuntimeEnabledFeatures.cpp to build files
        https://bugs.webkit.org/show_bug.cgi?id=42380

        RuntimeEnabledFeatures.cpp and .h were moved from bindings/v8 to
        bindings/generic a while a go (in r54593), but need to
        be added to the build in order to be used.

        No new functionality so no new tests.

        * Android.mk:

2010-07-16  Leandro Pereira  <leandro@profusion.mobi>

        [EFL] Unreviewed build system cleanup.

        Remove reference to "mediaControlsGtk.css".

        * cmake/WebKitGenerators.cmake:

2010-07-16  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Antonio Gomes.

        [EFL] Build with MathML enabled. Fix build when MathML is enabled and
        make it the default.
        https://bugs.webkit.org/show_bug.cgi?id=42453

        * cmake/OptionsEfl.cmake: build with MathML enabled as default.

2010-07-15  Martin Robinson  <mrobinson@igalia.com>

        Reviewed by Oliver Hunt.

        [GTK] Simplify the distribution step
        https://bugs.webkit.org/show_bug.cgi?id=42414

        * GNUmakefile.am: Remove unused variables. Rely on WebCore/GNUmakefile.am
        to handle distributing IDL files from WebCore and to modify EXTRA_DIST.

2010-07-14  Martin Robinson  <mrobinson@igalia.com>

        Reviewed by Xan Lopez.

        [GTK] Get rid of libWebCoreJS
        https://bugs.webkit.org/show_bug.cgi?id=42083

        * GNUmakefile.am: Remove the libWebCoreJS library from the extra
        link libraries. Add IDL files to the distribution manually, as they
        are no longer included in the header list. This prevents a good deal
        of repetition in the source listings by avoiding listing both the IDL
        files and their final targets.

2010-07-14  Vincent Scheib  <scheib@chromium.org>

        Reviewed by Kent Tamura

        Configure Git to ignore build files generated by Chromium .gyp on windows.

        Bug 42205: Chromium build files on windows not ignored by git
        https://bugs.webkit.org/show_bug.cgi?id=42205
        
        * .gitignore: Updated

2010-07-13  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r63262.
        http://trac.webkit.org/changeset/63262
        https://bugs.webkit.org/show_bug.cgi?id=42229

        broke Windows compile (Requested by bweinstein on #webkit).

        * WebKit.pro:

2010-07-13  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        Reviewed by Oliver Hunt.

        Separate CoreFoundation specific tests in JSC's testapi.c

        testapi.c depends on the Core Foundation.
        https://bugs.webkit.org/show_bug.cgi?id=40058

        * WebKit.pro: enable compilation of JSC C API test.

2010-07-13  Scott Violet  <sky@chromium.org>

        Reviewed by David Levin.

        [Chromium] Makes pressing tab accept the currently selected item in a popup.
        https://bugs.webkit.org/show_bug.cgi?id=42172

        * WebCore/platform/chromium/PopupMenuChromium.cpp:

2010-07-12  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Bump to 1.3.3

        * configure.ac:

2010-07-12  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Suffix .mo files with the GTK+ API version so that they can be
        parallel installable.

        * configure.ac:

2010-07-12  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Add another include path to the scanner to avoid warnings related
        to undefined types. It wasn't picking up <webkit/foo.h>-like
        headers.

        * GNUmakefile.am:

2010-07-07  Rafael Antognolli  <antognolli@profusion.mobi>

        Reviewed by Adam Barth.

        [EFL] Fix cmake build and libsoup detection
        Some changes should be done to cmake build system to fix the detection of libsoup and correct some link paths:
        - LINK_FLAGS should be set using quotes, otherwise some wrong
        substitution takes place;
        - we should use LIBSOUP24_* instead of LIBSOUP_* since this is the
        version we are using;
        - need to set HAVE_LIBSOUP_2_29_90 if we find a version equal or newer
        than that.
        https://bugs.webkit.org/show_bug.cgi?id=41717

        * cmake/OptionsEfl.cmake:

2010-07-06  Leandro Pereira  <leandro@profusion.mobi>

        Unreviewed build fix.

        [EFL] Add macro to generate inspector code.

        * cmake/WebKitGenerators.cmake:

2010-07-06  Martin Robinson  <mrobinson@igalia.com>

        Unreviewed.

        Build fix after r62549.

        * GNUmakefile.am: Remove new variable that is no longer used.

2010-07-06  Ilya Tikhonovsky  <loislo@chromium.org>

        Reviewed by Yury Semikhatsky.

        WebInspector: generator part of the patch for bug 40675.
        On the way to Remote Debugging we want to support JSON serialization
        on both sides of WebInspector transport.
        As far as InspectorFrontend class is a simple proxy to WebInspector
        it would be better to generate it from an IDL file.
        We have generator infrastructure for binding and will reuse it for
        new generator.
        https://bugs.webkit.org/show_bug.cgi?id=41692

        * GNUmakefile.am:

2010-07-05  Antti Koivisto  <koivisto@iki.fi>

        Revert unplanned project file change.

        * WebKit.pro:

2010-06-23  Martin Robinson  <mrobinson@igalia.com>

        Reviewed by Gustavo Noronha Silva.

        [GTK] Separate DerivedSources per-project
        https://bugs.webkit.org/show_bug.cgi?id=41109

        Separate WebKitGTK+ DerivedSources into per-project subdirectories to prepare
        for properly building WebKit2.

        * GNUmakefile.am:

2010-07-01  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Fix a comment in WebKit.pri.

        * WebKit.pri:

2010-06-16  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Fix qmake vcproj generation for QtWebKit.

        qmake use TARGET=/LIBS+= -lTARGET to create dependencies
        between projects in a subdir template.

        Since when compiling outside of Qt we hijack the target name of
        QtWebKit to add the configuration and version suffix to the binary
        filename, qmake can't establish the WebCore project as a dependency
        to QtTestBrowser.

        This patch makes sure that the target is not hijacked on the
        first of the three passes where the dependencies are determined.

        * WebKit.pri:

2010-07-01  Simon Hausmann  <simon.hausmann@nokia.com>

        Rubber-stamped by Laszlo Gombos.

        [Qt][Symbian] Bumped up the maximum heap size to 96MB

        * WebKit.pri:

2010-06-30  Leandro Pereira  <leandro@profusion.mobi>

        Unreviewed.

        Generate CSSValueKeywords.cpp instead of CSSValueKeywords.c to avoid
        recompilation and relinking of WebCore when no files were changed.

        * cmake/WebKitGenerators.cmake:

2010-06-29  Antoine Labour  <piman@chromium.org>

        Reviewed by Dimitri Glazkov.

        Only call Windows-specific PlatformSkiaContext functions on Windows.

        * WebCore/platform/graphics/chromium/LayerChromium.cpp:
        * WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:

2010-06-28  John Gregg  <johnnyg@google.com>

        Reviewed by Kent Tamura.

        add ENABLE_DIRECTORY_UPLOAD build support
        https://bugs.webkit.org/show_bug.cgi?id=41100

        * configure.ac:

2010-06-28  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Bump version to 1.3.2.

        * configure.ac:

2010-06-28  Xan Lopez  <xlopez@igalia.com>

        Rubber-stamped by Gustavo Noronha.

        Bump gobject-introspection required version to 0.6.15, since we
        are now shipping version 1.1 gir files.

        * configure.ac:

2010-06-28  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Unreviewed build fix.

        [EFL] Build fix for latest version of Ecore library.
        Ecore recently changed return type of callbacks from int to Eina_Bool.

        * cmake/FindEFL.cmake: Bump version of Ecore dependency.

2010-06-28  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        [GTK] Does not compile with -DGSEAL_ENABLE
        https://bugs.webkit.org/show_bug.cgi?id=37851

        Add automake flag to signal whether we are building with GTK+ 2.x
        or 3.x.

        * configure.ac:

2010-06-28  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        [GTK] Add support for GTK+3
        https://bugs.webkit.org/show_bug.cgi?id=41253

        Add --with-gtk configure flag, defaulting to support for GTK+ 2.x.

        * GNUmakefile.am:
        * configure.ac:

2010-06-26  Tony Gentilcore  <tonyg@chromium.org>

        Reviewed by Dimitri Glazkov.

        Add an --enable-web-timing flag which guards Web Timing support.
        https://bugs.webkit.org/show_bug.cgi?id=38924

        This flag is disabled by default.
        See: http://dev.w3.org/2006/webapi/WebTiming/

        * configure.ac:

2010-06-25  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>

        Reviewed by Simon Hausmann.

        Introduce to QtScript benchmarks.

        The QtScript performance should be tested regularly. The patch introduces
        micro benchmarks for existing API.

        [Qt] Performance of the QtScript API is not tested.
        https://bugs.webkit.org/show_bug.cgi?id=40911

        * WebKit.pro:

2010-06-25  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Kenneth Rohde Christiansen.

        [CMake] Add option to enable JIT.
        JIT is disabled by default, but now it's possible to enable it through
        an option to CMake: -DENABLE_JIT will enable it.
        https://bugs.webkit.org/show_bug.cgi?id=40936

        * cmake/OptionsEfl.cmake: add new -DENABLE_JIT option.
        * cmakeconfig.h.cmake: use new -DENABLE_JIT option.

2010-06-23  Leandro Pereira  <leandro@profusion.mobi>

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Add support to CPack (to generate source tarballs)
        https://bugs.webkit.org/show_bug.cgi?id=41009
        
        * CMakeLists.txt:
        * cmake/OptionsEfl.cmake: Define the default source generator for
        the EFL port.
        * cmake/WebKitPackaging.cmake: Added. This file filters the source
        files so that only files relevant to the selected port are included
        in the source tarball. See comments for details.

2010-06-22  Eric Seidel  <eric@webkit.org>

        Unreviewed.  Test commit for commit-queue@webkit.org.

2010-06-21  Prasad Tammana  <prasadt@chromium.org>

        Reviewed by Darin Adler.

        DumpRenderTree should allow tests with modal dialogs
        https://bugs.webkit.org/show_bug.cgi?id=35350

        * DumpRenderTree/LayoutTestController.cpp:
        (abortModalCallback):
        (LayoutTestController::staticFunctions):
        * DumpRenderTree/LayoutTestController.h:
        * DumpRenderTree/mac/LayoutTestControllerMac.mm:
        (LayoutTestController::abortModal):
        Add abortModal method to LayoutTestController and make it available from script.

        * DumpRenderTree/mac/UIDelegate.mm: Add support for showModalDialog.
        (-[UIDelegate modalWindowWillClose:]): Observer for NSWindowWillCloseNotifications to call
        abortModal from when modal window closes.
        (-[UIDelegate webViewRunModal:]): Delegate method for showModalDialog to run the modal loop.

2010-06-21  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Unreviewed debug build fix.

        [CMake] Do not force build type to Release
        https://bugs.webkit.org/show_bug.cgi?id=40566

        * CMakeLists.txt:

2010-06-21  Satish Sampath  <satish@chromium.org>

        Reviewed by Steve Block.

        Speech Input Patch 0: Added compilation argument to conditionally compile pending patches.
        https://bugs.webkit.org/show_bug.cgi?id=40878

        * configure.ac:

2010-06-17  Shu Chang  <chang.shu@nokia.com>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Fix the link error on symbian with ENABLE_JIT=0.
        1. Add "#if ENABLE(JIT)" in the header file;
        2. Put feature enable/disable logic to a common.pri so
        that both JavaScriptCore.pri and WebCore.pri can share.

        https://bugs.webkit.org/show_bug.cgi?id=40780

        * common.pri: Added.

2010-06-17  Alexis Menard  <alexis.menard@nokia.com>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Upstream the WebKit QML integration plugin
        https://bugs.webkit.org/show_bug.cgi?id=40050

        Add to the build the QML WebKit integration plugin.

        * WebKit.pro:

2010-06-17  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Gustavo Noronha.

        Update CMake build system to use new script for generating source files
        with gperf (r61091).
        https://bugs.webkit.org/show_bug.cgi?id=40628

        * cmake/WebKitGenerators.cmake:

2010-06-17  Mark Brand  <mabrand@mabrand.nl>

        Reviewed by Simon Hausmann.

        [Qt] use "win32-g++*" scope to match all MinGW makespecs

        The scope "win32-g++" comes from the name of the makespec. However, it
        is frequently used to check for MinGW. This works fine as long as
        win32-g++ is the only makespec for MinGW. Now we need the wildcard
        to cover "win32-g++-cross" as well.

        * WebKit.pri:

2010-06-15  Xan Lopez  <xlopez@igalia.com>

        Unreviewed build fix.

        Remove GSEAL from the debug config since the bots have a GTK+
        version too old, duh.

        * GNUmakefile.am:

2010-06-15  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        [GTK] Does not compile with -DGSEAL_ENABLE
        https://bugs.webkit.org/show_bug.cgi?id=37851

        Add GSEAL_ENABLE flag when doing debug builds.

        * GNUmakefile.am:

2010-06-13  Tony Chang  <tony@chromium.org>

        Reviewed by Darin Fisher.

        Chromium shouldn't build inside the source directory
        https://bugs.webkit.org/show_bug.cgi?id=40489

        Ignore Chromium Linux build files.

        * .: Added property svn:ignore. Modified property svn:ignore.

2010-06-09  Leandro Pereira  <leandro@profusion.mobi>

        Reviewed by Adam Treat.

        [EFL] Allow building core libraries as shared objects to speed up
        linking time on machines with small amounts of memory.
        http://webkit.org/b/39899

        * CMakeLists.txt: Add SHARED_CORE option.
        * cmake/FindGlib.cmake: Add GObject to the list of GLib libraries to
        search.
        * cmake/OptionsEfl.cmake: Remove default library type definitions.
        * cmake/WebKitHelpers.cmake: -fvisibility=hidden did not behave well
        when SHARED_CORE is used.

2010-06-08  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        [GTK] Unit testing for WebKitDOMNode hierarchy walk
        https://bugs.webkit.org/show_bug.cgi?id=40171

        Add DOM node test to the build system.

        * GNUmakefile.am:

2010-06-02  Sterling Swigart  <sswigart@google.com>

        Reviewed by David Levin.

        Image Resizer Patch 0: Added compilation argument to conditionally compile pending patches.
        https://bugs.webkit.org/show_bug.cgi?id=39906

        * configure.ac:

2010-05-31  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Copy the NEWS file to the toplevel when creating the release
        tarballs, otherwise it's a bit hard to find.

        * GNUmakefile.am:

2010-05-27  Gustavo Noronha Silva  <gns@gnome.org>

        Final make distcheck fix - clean up generated GDOM files on distclean.

        * GNUmakefile.am:

2010-05-27  Xan Lopez  <xlopez@igalia.com>

        More GTK+ distcheck fixes.

        * GNUmakefile.am:

2010-05-27  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Bump for 1.3.1 release.

        * configure.ac:

2010-05-27  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed by Xan Lopez.

        Build fix for introspection support - make sure DOM headers are
        included by the GI scanner.

        * GNUmakefile.am:

2010-05-26  Gustavo Noronha Silva  <gns@gnome.org>

        Build fixes for make distcheck.

        * GNUmakefile.am:

2010-05-26  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        [GTK] Add support for DOM events in the GObject DOM bindings
        https://bugs.webkit.org/show_bug.cgi?id=38844

        Add new test to the build.

        * GNUmakefile.am:

2010-05-22  Leandro Pereira  <leandro@profusion.mobi>

        Reviewed by Eric Seidel.

        [EFL] Build fix (always compile libraries with -fPIC when compiler
        is gcc; always define WTF_USE_PTHREADS).
        http://webkit.org/b/39235

        * cmake/OptionsCommon.cmake:
        * cmake/OptionsEfl.cmake:
        * cmake/WebKitHelpers.cmake:

2010-05-19  Dan Winship  <danw@gnome.org>

        Reviewed by Xan Lopez.

        [GTK] Install introspection files in our prefix, not
        gobject-introspection's prefix

        * GNUmakefile.am:
        * configure.ac:

2010-05-15  Leandro Pereira  <leandro@profusion.mobi>

        Reviewed by Adam Treat.

        [EFL] Add build system for the EFL port.
        http://webkit.org/b/37945

        * CMakeLists.txt: Added.
        * cmake/FindCFLite.cmake: Added.
        * cmake/FindCairo.cmake: Added.
        * cmake/FindEFL.cmake: Added.
        * cmake/FindFreetype.cmake: Added.
        * cmake/FindGDK-PixBuf.cmake: Added.
        * cmake/FindGDK.cmake: Added.
        * cmake/FindGIO.cmake: Added.
        * cmake/FindGlib.cmake: Added.
        * cmake/FindICU.cmake: Added.
        * cmake/FindLibSoup2.cmake: Added.
        * cmake/FindLibXlst.cmake: Added.
        * cmake/FindPango.cmake: Added.
        * cmake/FindSqlite.cmake: Added.
        * cmake/LibFindMacros.cmake: Added.
        * cmake/OptionsCommon.cmake: Added.
        * cmake/OptionsEfl.cmake: Added.
        * cmake/WebKitEfl.cmake: Added.
        * cmake/WebKitFS.cmake: Added.
        * cmake/WebKitFeatures.cmake: Added.
        * cmake/WebKitGenerators.cmake: Added.
        * cmake/WebKitHelpers.cmake: Added.
        * cmake/WebKitMacros.cmake: Added.
        * cmakeconfig.h.cmake: Added.

2010-05-14  Simon Hausmann  <simon.hausmann@nokia.com>

        Rubber-stamped by Antti Koivisto.

        [Qt] Rename QtLauncher to QtTestBrowser
        https://bugs.webkit.org/show_bug.cgi?id=37665

        * WebKit.pro:

2010-05-12  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Link error in debug mode without debug_and_release config
        https://bugs.webkit.org/show_bug.cgi?id=39006

        * WebKit.pri: Unnecessary build_pass guard removed.

2010-05-12  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Detect debug mode consistently
        https://bugs.webkit.org/show_bug.cgi?id=38863

        * WebKit.pri:

2010-05-08  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Build the ImageDiff tool for all platforms including Windows and Symbian
        https://bugs.webkit.org/show_bug.cgi?id=38706

        * WebKit.pro:

2010-05-07  Simon Hausmann  <simon.hausmann@nokia.com>

        Add a few more files with Windows linefeeds to the .gitattributes file.

        * .gitattributes:

2010-05-05  Alejandro G. Castro  <alex@igalia.com>

        Reviewed by Xan Lopez.

        Fixed the gobject introspection compilation with the new DOM
        bindings, we needed to add DOM objects.

        * GNUmakefile.am:

2010-05-04  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Unreviewed, build fix for Symbian.

        [Symbian] Symbian builds does not support shadow builds

        Revision r54715 broke the Symbian build. For Symbian
        the include directory is generated in the root of the source tree.
        This patch sets the INCLUDEPATH accordingly for Symbian.

        * WebKit.pri:

2010-05-03  Adam Barth  <abarth@webkit.org>

        Reviewed by Dimitri Glazkov.

        Add some more Chromium-specific files to gitignore
        https://bugs.webkit.org/show_bug.cgi?id=38469

        These files are generated as part of the update-webkit --chromium
        script.

        * .gitignore:

2010-05-02  Geoff Levand  <geoff.levand@am.sony.com>

        Reviewed by Eric Seidel.

        [GTK] Fix out of source build failure
        https://bugs.webkit.org/show_bug.cgi?id=38051

        Add a preprocessor include path for generated GTK header files.
        Fixes build errors like these when building GTK out of source:

          webkit.h: error: webkit/webkitversion.h: No such file or directory

        * GNUmakefile.am:

2010-05-02  Kartikaya Gupta  <kagupta@rim.com>

        Reviewed by George Staikos.

        When running the IDL file through the preprocessor, wait for the preprocessor subcommand to fully terminate before continuing. Without this, if multiple IDL files are parsed in a tight loop, the code dies after 64 IDL files because it exhausts the available system resources.

        https://bugs.webkit.org/show_bug.cgi?id=37888

        No new tests. None needed.

        * bindings/scripts/IDLParser.pm:

2010-04-29  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        [GTK] GObject DOM bindings
        https://bugs.webkit.org/show_bug.cgi?id=33590

        Add WebKitDOMDocument tests to the build.

        * GNUmakefile.am:

2010-04-28  Sam Weinig  <sam@webkit.org>

        Reviewed by Mark Rowe.

        Add WebKit2 to the lists of modules to build.

        * Makefile:

2010-04-21  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Adam Barth.

        [GTK] GObject DOM bindings
        https://bugs.webkit.org/show_bug.cgi?id=33590

        Add build bits for the GObject DOM bindings.

        * GNUmakefile.am:

2010-04-20  Xan Lopez  <xlopez@igalia.com>

        Build fix?

        * autotools/webkit.m4:

2010-04-19  Diego Escalante Urrelo  <descalante@igalia.com>

        Reviewed by Xan Lopez.

        [Gtk] Evaluate and create tests for all the AtkRole's implemented by
        WebKitGtk
        https://bugs.webkit.org/show_bug.cgi?id=34449

        Add and enable the build of testatkroles to test ATK non form roles.

        * GNUmakefile.am:

2010-04-18  Michael Forney  <michael@mforney.org>

        Reviewed by Laszlo Gombos.

        https://bugs.webkit.org/show_bug.cgi?id=37762

        Fixes the sandbox option in configure.

        * configure.ac: Fix cut and paste error in the sandbox option causing
        --{enable,disable}-sandbox to be ineffective, and it to be controlled
        by the ruby flag.

2010-04-09  Simon Hausmann  <simon.hausmann@nokia.com>

        Unreviewed crash fix.

        Revert part of 57320 that would remove NDEBUG in release builds for
        DRT, etc.

        * WebKit.pri:

2010-04-09  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Fix crashes with package builds in release

        * WebKit.pri: Don't randomly add NDEBUG to the defines.

2010-04-07  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Fix trunk (non-standalone) builds for Symbian
        https://bugs.webkit.org/show_bug.cgi?id=37136

        Test for source files before building instead of relying on
        standalone_package config.

        * WebKit.pro:

2010-04-01  Kinuko Yasuda  <kinuko@chromium.org>

        Reviewed by Dmitry Titov.

        Add FileThread for async file operation support in FileReader and FileWriter
        https://bugs.webkit.org/show_bug.cgi?id=36896

        Add EANBEL_FILE_READER and ENABLE_FILE_WRITER flags.

        * configure.ac:

2010-04-01  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Adam Barth.

        autoinstalled should be git ignored
        https://bugs.webkit.org/show_bug.cgi?id=36970

        * .gitignore:

2010-04-01  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt]Add -Wextra warning level to the QtWebKit build
        https://bugs.webkit.org/show_bug.cgi?id=36971

        * WebKit.pri:

2010-04-01  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Holger Freyther.

        [GTK] webkit_get_default_session() should make sure webkit_init() is called
        https://bugs.webkit.org/show_bug.cgi?id=36754

        New API test.

        * GNUmakefile.am:

2010-03-26  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Build JavaScriptCore as a static library.
        https://bugs.webkit.org/show_bug.cgi?id=36590

        This patch takes what was left of the unused JavaScriptCore.pro
        and moved the compilation logic from JavaScriptCore.pri to
        JavaScriptCore.pro.

        * WebKit.pro:

2010-03-16  Xan Lopez  <xlopez@igalia.com>

        Rubber-stamped by Gustavo Noronha.

        Update library version for 1.1.90 release.

        * configure.ac:

2010-03-16  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Bump version for 1.1.90 release.

        * configure.ac:

2010-03-16  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Add support for Fast Mobile Scrolling in the build system.

        * configure.ac:

2010-03-16  Simon Hausmann  <simon.hausmann@nokia.com>

        Add WebKitTools/TestResultServer/index.yaml to gitattributes to ignore for crlf conversion.

        * .gitattributes:

2010-03-12  Scott Byer  <scottbyer@chromium.org>

        Reviewed by David Levin.

        Popup font size needs to be exposed to clients.
        https://bugs.webkit.org/show_bug.cgi?id=35990

        Add function to expose the popup menu font size, add a field to
        WebPopupMenuInfo that receives that information to convey that to
        the web view client's createPopupMenu() call.

        * WebCore/platform/chromium/PopupMenuChromium.cpp:
        * WebCore/platform/chromium/PopupMenuChromium.h:
        * WebKit/chromium/public/WebPopupMenuInfo.h:
        * WebKit/chromium/src/ChromeClientImpl.cpp:

2010-03-11  Adam Roben  <aroben@apple.com>

        Teach git about ObjC files

        Fixes <http://webkit.org/b/36015>.

        Reviewed by Tim Hatcher.

        * .gitattributes: Set the diff attribute for .m and .mm files, and .h
        files in Mac-specific directories. This can be used to generate
        more-readable diffs of ObjC files.

2010-03-09  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed. Versioning for 1.1.23.

        * configure.ac:

2010-03-09  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed distcheck fix.

        * GNUmakefile.am:

2010-03-08  Jian Li  <jianli@chromium.org>

        Reviewed by Dmitry Titov.

        Blob.slice support.
        https://bugs.webkit.org/show_bug.cgi?id=32993

        Add ENABLE_BLOB_SLICE feature define.

        * configure.ac:

2010-03-04  Fridrich Strba  <fridrich.strba@bluewin.ch>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=35726
        Remove orphaned #ifdef WTF_USE_GLIB_ICU_UNICODE_HYBRID

        Removing orphaned #if USE.

        * GNUmakefile.am:

2010-03-04  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        Reviewed by Tor Arne Vestbø.

        [Qt] Make the OUTPUT_DIR variable in qmake projects independent of build-webkit's logic.

        This also allows shadow builds relying only on qmake to work properly.

        * WebKit.pri:

2010-03-03  Fridrich Strba  <fridrich.strba@bluewin.ch>

        Reviewed by Xan Lopez.

        Miscellaneous little fixes for the windows build of webkit-gtk
        https://bugs.webkit.org/show_bug.cgi?id=35640

        * GNUmakefile.am: On Windows with GCC, presence of
        __declspec(dllexport) on some symbols disables the autoexport/autoimport
        feature for all others. Using regex here assures that all symbols that 
        need to be exported in the dll are actually exported.

2010-03-02  Arno Renevier  <arno@renevier.net>

        Reviewed by Gustavo Noronha Silva.

        [Gtk] implements ChromeClient::requestGeolocationPermissionForFrame
        https://bugs.webkit.org/show_bug.cgi?id=35210

        * GNUmakefile.am:

2010-03-02  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Alexey Proskuryakov.

        Ignore compiled Java test cases in .gitignore.
        https://bugs.webkit.org/show_bug.cgi?id=35559

        * .gitignore:

2010-02-26  Arno Renevier  <arno@renevier.net>

        Reviewed by Gustavo Noronha Silva.

        [Gtk] ignore WebKit/gtk/docs/GNUmakefile.in in .gitignore
        https://bugs.webkit.org/show_bug.cgi?id=35424

        * .gitignore:

2010-02-24  Sam Kerner  <skerner@chromium.org>

        Reviewed by Darin Fisher.

        Expose WebFrame::setCanHaveScrollbars().  This allows a view
        which is being resized to not need scroll bars to ensure that
        they are not drawn.

        Existing function setAllowsScrolling() was renamed
        setCanHaveScrollbars(), to be consistant with change 37159:
        http://trac.webkit.org/changeset/37159

        https://bugs.webkit.org/show_bug.cgi?id=35257

        * WebKit/chromium/public/WebFrame.h:
        * WebKit/chromium/src/ChromeClientImpl.cpp:
        * WebKit/chromium/src/WebFrameImpl.cpp:
        * WebKit/chromium/src/WebFrameImpl.h:

2010-02-19  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Remove QGVLauncher

        https://bugs.webkit.org/show_bug.cgi?id=35292

        * WebKit.pro:

2010-02-24  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Enable SharedWorkers by default, since that's been the default for
        a long time in our build-webkit configuration.

        * configure.ac:

2010-02-23  James Choi  <jchoi42@pha.jhu.edu>

        Add Solaris definitions
        https://bugs.webkit.org/show_bug.cgi?id=35214

        * WebKit/chromium/src/WebViewImpl.cpp
        * WebKit/chromium/src/WebFrameImpl.cpp

2010-02-23  Arno Renevier  <arno@renevier.net>

        Reviewed by Gustavo Noronha Silva.

        [Gtk]: testwebview does not work when called with absolute path
        https://bugs.webkit.org/show_bug.cgi?id=34940

        When testwebview is called as absolute path, chdir to executable
        directory before searching resource files.

        * GNUmakefile.am:

2010-02-23  Leandro Pereira  <leandro@profusion.mobi>

        Reviewed by Gustavo Noronha Silva.

        Changes references of GOwnPtr to reflect their new place.
        http://webkit.org/b/35084

        * JavaScriptCore/JavaScriptCore.gypi:
        * JavaScriptCore/wtf/Threading.h:
        * JavaScriptCore/wtf/unicode/glib/UnicodeGLib.h:

2010-02-23  Leandro Pereira  <leandro@profusion.mobi>

        Reviewed by Gustavo Noronha Silva.

        Fixes references to GOwnPtr and GRefPtr so the GTK+ port builds
        again.
        http://webkit.org/b/35084

        * GNUmakefile.am:

2010-02-23  Diego Escalante Urrelo  <descalante@igalia.com>

        Reviewed by Eric Seidel.

        [gtk] missing libsoup-2.4 package in gir generation
        https://bugs.webkit.org/show_bug.cgi?id=35199

        Include libsoup-2.4 package in gobject introspection .gir generation.

        * GNUmakefile.am:

2010-02-22  Huahui Wu  <hwu@google.com>

        Reviewed by Eric Seidel.

        Add code that enables SquirrelFish Extreme (a.k.a JSCX, JSC JIT)
        in Android. It's disabled by default, but is enabled when the 
        enveronment variable ENABLE_JSC_JIT is set to true.
        https://bugs.webkit.org/show_bug.cgi?id=34855

        * Android.mk:

2010-02-22  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Bump library versioning for 1.1.22 release.

        * configure.ac:

2010-02-22  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Add support for layout tests on Symbian
        https://bugs.webkit.org/show_bug.cgi?id=31589

        * WebKit.pro:

2010-02-20  Noam Rosenthal  <noam.rosenthal@nokia.com>

        Reviewed by Laszlo Gombos.

        [Qt] ENABLE_3D_RENDERING should be optional
        https://bugs.webkit.org/show_bug.cgi?id=35100

        * WebKit.pri: ENABLE_3D_RENDERING moved to a proper feature test

2010-02-19  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by David Levin.

        Add an ENABLE flag for sandboxed iframes to make it possible to disable it in releases
        https://bugs.webkit.org/show_bug.cgi?id=35147

        * configure.ac:

2010-02-18  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Eric Seidel.

        Add .gitattributes file for custom ChangeLog merge-driver

        * .gitattributes: Added.

2010-02-17  Noam Rosenthal  <noam.rosenthal@nokia.com>

        Reviewed by Ariya Hidayat.

        [Qt] GraphicsLayer: support perspective and 3D transforms
        https://bugs.webkit.org/show_bug.cgi?id=34960

        * WebKit.pri: added appropriate define: ENABLED_3D_RENDERING

2010-02-15  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Gustavo Noronha Silva.

        [GStreamer] Should handle BUFFERING messages
        https://bugs.webkit.org/show_bug.cgi?id=30004

        * configure.ac: Bump gstreamer -core/-plugins-base requirements to
        0.10.25 which is the minimum required version for on-disk buffering.

2010-02-16  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Bump version to 1.1.22 so we can depend on it in applications.

        * configure.ac:

2010-02-12  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Holger Freyther.

        Removed WMLInputElement.* from .gitattributes as the file is
        now CRLF clean.

        * .gitattributes:

2010-02-10  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        Reviewed by Tor Arne Vestbø.

        [Qt] Make qtlauncher and qgvlauncher use the generated headers
        path to make sure they are correctly generated.

        * WebKit.pri:

2010-02-10  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        Reviewed by Tor Arne Vestbø.

        [Qt] Manually add support for the install target on Symbian.

        This is required to copy the headers over the ones in Qt.

        * WebKit.pro:

2010-02-11  Fridrich Strba  <fridrich.strba@bluewin.ch>

        Reviewed by Gustavo Noronha Silva.

        Detect properly different versions of libpng out there.

        * configure.ac:

2010-02-11  Xan Lopez  <xlopez@igalia.com>

        Try to fix GTK+ build.

        * configure.ac:

2010-02-11  Antonio Gomes  <tonikitoo@webkit.org>

        Reviewed by Xan Lopez.

        Adjust gstreamer-plugins-base minimum version check (from 0.10 to 0.10.23).

        * configure.ac:

2010-02-08  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Cameron Zwarich.

        Restore ENABLE_RUBY flag so vendors can ship with Ruby disabled if they choose.
        https://bugs.webkit.org/show_bug.cgi?id=34698

        * configure.ac:

2010-02-08  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Xan Lopez.

        Bump version to 1.1.21, and adjust library versioning accordingly.

        * configure.ac:

2010-02-05  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

        Reviewed by Gustavo Noronha.

        Add gstreamer-app-0.10 to configure.ac
        https://bugs.webkit.org/show_bug.cgi?id=34317

        * configure.ac:

2010-02-05  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Tor Arne Vestbø.

        Add .gitattributes file to tell git about files with Windows linefeeds
        https://bugs.webkit.org/show_bug.cgi?id=34645

        On Windows git defaults to "true" for core.autocrlf, meaning all text
        files in the working directory are converted from CRLF to LF on checkin
        time. Some files present in the repository have been checked in with
        CRLF linefeeds and git should not try to convert them. The added
        .gitattributes file tells git to not do any CRLF conversion.

        * .gitattributes: Added.

2010-02-05  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Generate convenience headers (QWebView, etc) using qmake

        In Qt this is done using syncqt, but we use a pro-file instead
        that generates makefile-rules for each of the extra headers.

        These extra headers are installed alongside the normal headers.

        * DerivedSources.pro: Include API-DerivedSources

2010-02-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Lars Knoll.

        [Qt] Make 'make -f Makefile.DerivedSources qmake' work

        Previously this target ended up generating a file named
        Makefile.DerivedSources.DerivedSources, and so on.

        * DerivedSources.pro:

2010-02-04  Christian Dywan  <christian@twotasts.de>

        Reviewed by Xan Lopez.

        Require either libsoup 2.28.2 or 2.29.90.

        * configure.ac:

2010-02-04  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Bump minimum libsoup requirement to 2.29.90

        * configure.ac:

2010-02-02  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed by Xan Lopez.

        Bump version, and adjust library versioning for 1.1.20.

        * configure.ac:

2010-01-29  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Dimitri Glazkov.

        A first step towards the Indexed Database API
        https://bugs.webkit.org/show_bug.cgi?id=34342

        Add Indexed Database API

        * configure.ac:

2010-01-27  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Don't build the tests in packages, only the launcher(s)

        * WebKit.pro:

2010-01-27  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        Reviewed by Tor Arne Vestbø.

        [Qt] Add the "d" suffix to QtWebKit's dll on Windows.

        * WebKit.pri:

2010-01-27  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        Unreviewed build fix

        [Qt] Build fix for windows when QTDIR contains release libraries.

        * WebKit.pri: Use the <name>.lib syntax for linking instead of qmake's -l<name> emulation

2010-01-26  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>

        Reviewed by Simon Hausmann.

        First steps of the QtScript API.
        
        Two new classes were created; QScriptEngine and QScriptValue.
        The first should encapsulate a javascript context and the second a script
        value.
        
        This API is still in development, so it isn't compiled by default.
        To trigger compilation, pass --qmakearg="CONFIG+=build-qtscript" to
        build-webkit.

        https://bugs.webkit.org/show_bug.cgi?id=32565

        * WebKit.pro:

2010-01-25  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Laszlo Gombos.

        [Qt] Fix the build on Maemo5.

        https://bugs.webkit.org/show_bug.cgi?id=34051

        * WebKit.pri: Disable the use of uitools, just like it's done for Symbian.

2010-01-21  No'am Rosenthal  <noam.rosenthal@nokia.com>

        Reviewed by Antti Koivisto.

        [Qt] Implement GraphicsLayer for accelerated layer compositing
        https://bugs.webkit.org/show_bug.cgi?id=33514

        * WebKit.pri: Addded compile flags to enable accelerated compositing
        on versions higher than 4.5

2010-01-20  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Make DumpRenderTree build on Windows

        * WebKit.pro:

2010-01-20  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Fix the recursive generated_files target to work with qmake -r -o

        * DerivedSources.pro:

2010-01-20  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Tor Arne Vestbø.

        [Qt] Make it possible (on *nix at least) to recursively call "make generated_files"

        * DerivedSources.pro:

2010-01-19  Gustavo Noronha Silva  <gns@gnome.org>

        Unreviewed. Shared library versioning update for 1.1.19.

        * configure.ac:

2010-01-15  Gustavo Noronha Silva  <gns@gnome.org>

        Rubber-stamped by Xan Lopez.

        Bump version to 1.1.19.

        * configure.ac:

2010-01-14  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Eric Seidel.

        [Qt] Defective dependencies caused build failing on QtBuildBot.
        https://bugs.webkit.org/show_bug.cgi?id=33693

        * WebKit.pri: CONFIG += depend_includepath added.

2010-01-14  Steve Block  <steveblock@google.com>

        Reviewed by David Levin.

        Moves general includes before bindings includes in Android build system.
        https://bugs.webkit.org/show_bug.cgi?id=33623

        This avoids problems with collisions between WebCore/platform/text/StringBuilder.h
        and the new JavaScriptCore/runtime/StringBuilder.h. This change puts
        JavaScriptCore/runtime and other bindings includes after the WebCore and other
        general includes, so that the WebCore StringBuilder.h is picked up when building
        WebCore.

        * Android.mk: Modified.

2010-01-13  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Split the build process in two different .pro files.
        This allows qmake to be run once all source files are available.

        * DerivedSources.pro: Added.
        * WebKit.pri:

2010-01-07  Daniel Bates  <dbates@rim.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=32987

        Added ENABLE_XHTMLMP flag. Disabled by default.

        * configure.ac:

2010-01-05  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed by Xan Lopez.

        Based on idea and original patch by Evan Martin.

        Remove libWebCore intermediate library, to improve link time.

        [GTK] Build time must be reduced
        https://bugs.webkit.org/show_bug.cgi?id=32921

        * GNUmakefile.am:

2010-01-05  Xan Lopez  <xlopez@igalia.com>

        Bump for 1.1.18 release.

        * configure.ac:

2010-01-04  Gustavo Noronha Silva  <gns@gnome.org>

        Fix JSCore-1.0.gir path to fix make distcheck.

        * GNUmakefile.am:

2010-01-04  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Tor Arne Vestbø.

        [Qt] Fix standalone package builds.

        * WebKit.pri: Add logic for detecting standalone builds. Set OUTPUT_DIR to the top-level dir in that case.
        * WebKit.pro: Don't build JSC and DRT for package builds.

2010-01-04  Eric Seidel  <eric@webkit.org>

        Reviewed by Adam Barth.

        bugzilla-tool should not require users to install mechanize
        https://bugs.webkit.org/show_bug.cgi?id=32635

        * .gitignore: Ignore autoinstall.cache.d directory created by autoinstall.py

2009-12-28  Estêvão Samuel Procópio  <tevaum@gmail.com>

        Reviewed by Gustavo Noronha Silva.

        Bug 32940: [GTK] Changing the download throttle conditions.
        https://bugs.webkit.org/show_bug.cgi?id=32716

        The WebKitDownload progress notification was taking long to
        update. This fix makes notification happens each 0.7 secs
        or when the progress ups in 1%.

        * WebKit/gtk/webkit/webkitdownload.cpp:

2009-12-22  Simon Hausmann  <simon.hausmann@nokia.com>

        Rubber-stamped by Holger Freyther.

        Adjusted path to QtLauncher.

        * WebKit.pro:

2009-12-19  Evan Martin  <evan@chromium.org>

        Reviewed by Gustavo Noronha Silva.

        Add a couple of WebKitGtk files to .gitignore.

        * .gitignore:

2009-12-18  Benjamin Otte  <otte@gnome.org>

        Reviewed by Xan Lopez.

        [GTK] RemoveDashboard support. It's useless.

        * configure.ac:

2009-12-18  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Tor Arne Vestbø.

        [Qt] Clean up the qmake build system to distinguish between trunk builds and package builds

        https://bugs.webkit.org/show_bug.cgi?id=32716

        * WebKit.pri: Use standalone_package instead of QTDIR_build

2009-12-17  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed. Build fixes for make distcheck.

        * GNUmakefile.am:

2009-12-16  Dan Winship  <danw@gnome.org>

        Reviewed by Gustavo Noronha Silva.

        [Gtk] Content-Encoding support

        https://bugs.webkit.org/show_bug.cgi?id=522772

        * configure.ac: require libsoup 2.28.2 for SoupContentDecoder

2009-12-13  Eric Seidel  <eric@webkit.org>

        Reviewed by Gavin Barraclough.

        string-base64 test does not compute a valid base64 string
        http://bugs.webkit.org/show_bug.cgi?id=16806

        * tests/string-base64.js: change str[i] to str.charCodeAt(i)

2009-12-10  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Xan Lopez.

        [GTK] Should provide an API to control the IconDatabase
        https://bugs.webkit.org/show_bug.cgi?id=32334

        Add test to make sure favicon reporting works.

        * GNUmakefile.am:

2009-12-09  Steve Block  <steveblock@google.com>

        Reviewed by Adam Barth.

        Adds Android Makefiles for building with V8.
        https://bugs.webkit.org/show_bug.cgi?id=32278

        * Android.mk: Modified. Includes Makefiles for V8.

2009-12-08  Steve Block  <steveblock@google.com>

        Reviewed by Adam Barth.

        [Android] Adds Makefiles for Android port.
        https://bugs.webkit.org/show_bug.cgi?id=31325

        * Android.mk: Added.

2009-12-08  Christian Dywan  <christian@twotoasts.de>

        Reviewed by Xan Lopez.

        * configure.ac: Require only libSoup 2.27.91 but check for 2.29.3
        and define HAVE_LIBSOUP_2_29_3 in that case.

2009-12-08  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Rubber-stamped by Xan Lopez.

        Late post-release version bump.

        * configure.ac:

2009-12-08  Dominik Röttsches  <dominik.roettsches@access-company.com>

        Reviewed by Gustavo Noronha Silva.

        [Gtk] Create a TextBreakIterator implementation based on GLib (without ICU)
        https://bugs.webkit.org/show_bug.cgi?id=31469

        Removing hybrid configuration for --with-unicode-backend=glib
        ICU not required anymore.

        * autotools/webkit.m4:

2009-12-08  Nikolas Zimmermann  <nzimmermann@rim.com>

        Rubber-stamped by Maciej Stachowiak.

        Turn on (SVG) Filters for Gtk.
        https://bugs.webkit.org/show_bug.cgi?id=32224

        * configure.ac:

2009-12-07  Dmitry Titov  <dimich@chromium.org>

        Rubber-stamped by Darin Adler.

        Remove ENABLE_SHARED_SCRIPT flags
        https://bugs.webkit.org/show_bug.cgi?id=32245
        This patch was obtained by "git revert" command and then un-reverting of ChangeLog files.

        * configure.ac:

2009-12-06  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed by Xan Lopez.

        Build the new API test.

        [GTK] REGRESSION: webkit thinks it can render PDFs
        https://bugs.webkit.org/show_bug.cgi?id=32183

        * GNUmakefile.am:

2009-12-05  Vincent Untz <vuntz@gnome.org>

        Reviewed by Gustavo Noronha.

        Fixes race for builds with introspection enabled, and parallel
        make.

        * GNUmakefile.am:

2009-12-04  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        [GTK]Enable DNS prefetching
        https://bugs.webkit.org/show_bug.cgi?id=23846

        Bump libsoup required version to 2.29.3 for DNS prefetching.

        * configure.ac:

2009-11-30  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Rubber-stamped by Xan Lopez.

        Make sure we distribute and install GObject Introspection files.

        * GNUmakefile.am:

2009-11-30  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Build fix. Make sure JSCore-1.0.gir is added to the distributed
        tarball.

        * GNUmakefile.am:

2009-11-30  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Bump versions for 1.1.17 release.

        * configure.ac:

2009-11-30  Jan-Arve Sæther  <jan-arve.saether@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Fix compilation with win32-icc

        Include os-win32 for stdint.h since MS does not ship that in their PSDK.

        * WebKit.pri:

2009-11-26  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Oliver Hunt.

        Move GOwnPtr* from wtf to wtf/gtk
        https://bugs.webkit.org/show_bug.cgi?id=31793

        * GNUmakefile.am: Add JavaScriptCore/wtf/gtk to 
          the include path.

2009-11-24  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Eric Seidel.

        Add ENABLE_SHARED_SCRIPT feature define and flag for build-webkit
        https://bugs.webkit.org/show_bug.cgi?id=31444

        * configure.ac:

2009-11-24  Jason Smith  <dark.panda@gmail.com>

        Reviewed by Alexey Proskuryakov.

        RegExp#exec's returned Array-like object behaves differently from
        regular Arrays
        https://bugs.webkit.org/show_bug.cgi?id=31689

        * LayoutTests/fast/js/regexp-in-and-foreach-handling.html: Added.
        * LayoutTests/fast/js/script-tests/regexp-in-and-foreach-handling.js: Added.
        * LayoutTests/fast/js/regexp-in-and-foreach-handling-expected.txt: Added.

2009-11-24  Jens Alfke  <snej@chromium.org>

        Reviewed by David Levin.

        Ignore Chromium's Xcode projects that are auto-generated from .gyp files.
        https://bugs.webkit.org/show_bug.cgi?id=31847
        
        * .gitignore:  Add three .xcodeproj files.

2009-11-09  Priit Laes  <plaes@plaes.org>

        Reviewed by Oliver Hunt.

        [Gtk] Build from tarball fails with --enable-introspection
        https://bugs.webkit.org/show_bug.cgi?id=31261

        We need to enable gobject-introspection during distcheck otherwise
        some of the required files are missing in tarball.

        * GNUmakefile.am:

2009-11-05  Priit Laes  <plaes@plaes.org>

        Reviewed by Jan Alonzo.

        [Gtk] Build failure with --enable-introspection
        https://bugs.webkit.org/show_bug.cgi?id=31102

        Add search and include paths for JSCore-1.0.gir required by
        gobject-introspection tools.

        * GNUmakefile.am:

2009-11-04  Benjamin Otte  <otte@gnome.org>

        Reviewed by Gustavo Noronha.

        Update Cairo requirement to 1.6.
        
        https://bugs.webkit.org/show_bug.cgi?id=19266

        * configure.ac:

2009-11-02  Estêvão Samuel Procópio  <tevaum@gmail.com>

        Reviewed by Gustavo Noronha.

        [Build] make install ignores --prefix option for gobject-introspection.
        https://bugs.webkit.org/show_bug.cgi?id=31025

        Make the build system use the --prefix path also when installing
        gobject-introspection files.

        * configure.ac: use --prefix path in GITDIR and GIRTYPELIBDIR

2009-11-02  Xan Lopez  <xlopez@igalia.com>

        Bump version before release (or post-release, depending on your
        point of view) so that we can make applications depending on
        unreleased APIs in WebKit svn fail at configure time when the
        requirements are not met.

        * configure.ac:

2009-11-01  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Eric Seidel.

        Turn on warnings for QtWebKit for gcc
        https://bugs.webkit.org/show_bug.cgi?id=30958

        * WebKit.pri: Turn on warnings for the GCC compiler

2009-10-30  Adam Barth  <abarth@webkit.org>

        Reviewed by Mark Rowe.

        Teach git to ignore some files
        https://bugs.webkit.org/show_bug.cgi?id=30951

        Ignore WebKitBuild because we never want to version that directory.
        Also, ignore the xcode project files so git clean doesn't blow away
        your project settings.  Finally, ignore the compiled python files in
        WebKitTools/Script modules because they clutter up git status.

        * .gitignore: Added.

2009-10-30  Roland Steiner  <rolandsteiner@chromium.org>

        Reviewed by Eric Seidel.

        Remove ENABLE_RUBY guards as discussed with Dave Hyatt and Maciej Stachowiak.

        Bug 28420 -  Implement HTML5 <ruby> rendering
        (https://bugs.webkit.org/show_bug.cgi?id=28420)

        No new tests (no functional change).

        * configure.ac:

2009-10-26  Holger Hans Peter Freyther  <zecke@selfish.org>

        Rubber-stamped by Darin Adler.

        Export fastMalloc, fastCalloc, fastRealloc and fastFree
        https://bugs.webkit.org/show_bug.cgi?id=30769

        Export the FastMalloc functions outside of the libwebkit library
        to be able to instrument memory allocations. These are C++ symbols
        but do not require the C++ runtime to be useful and should be of
        no harm to plain C code.

        * autotools/symbols.filter:

2009-10-26  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Jan Alonzo.

        Alternative solution to regression introduced in r48672.

        * GNUmakefile.am:

2009-10-26  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Update for 1.1.16 release.

        * configure.ac:

2009-10-24  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Holger Freyther.

        [Qt] [Symbian] Set the capability and memory required to run QtWebKit for Symbian
        https://bugs.webkit.org/show_bug.cgi?id=30476

        Set the stack size to 80 Kb and heap size to the 128kB - 32MB range
        to all executables linking against WebKit library.

        * WebKit.pri:

2009-10-18  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Holger Freyther.

        [GTK] Add MathML to the build system
        https://bugs.webkit.org/show_bug.cgi?id=30487

        Add --enable-mathml to configure.

        * configure.ac:

2009-10-15  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez.

        [GTK] marshal stamp files are not cleaned after a distclean
        https://bugs.webkit.org/show_bug.cgi?id=30156

        Add the stamp files directly to cleanfiles. Also rearrange the
        variable declarations so we don't miss any files that need to be
        cleaned up during the clean targets.

        * GNUmakefile.am:

2009-10-15  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed. Help text fix - Web Sockets default is no, not yes.

        * configure.ac:

2009-10-12  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Rubberstamped by Eric Seidel.

        [Gtk] Fix icu CFLAG for Darwin
        https://bugs.webkit.org/show_bug.cgi?id=29517

        Don't escape the srcdir variable. Also use $host instead of the
        os_foo variables.

        * autotools/webkit.m4:

2009-10-12  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Gustavo Noronha.

        [Gtk] Use the SQLite3 headers from WebKitLibraries if sqlite3 is undetected
        https://bugs.webkit.org/show_bug.cgi?id=29518

        * configure.ac:

2009-10-05  Zoltan Horvath  <zoltan@webkit.org>

        Reviewed by Simon Hausmann.

        [Qt] Disable TCmalloc for Windows port at the present, because MinGW
        hasn't got built-in pthread library.

        * WebKit.pri:

2009-10-02  Prasanth Ullattil  <prasanth.ullattil@nokia.com>

        Reviewed by Simon Hausmann.

        Disable a few more harmless MSVC warnings.

        * WebKit.pri:

2009-10-01  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Unreviewed, build fix.

        [Qt] Symbian build break after r48976.
        unix is set for Symbian in the Qt build system.

        * WebKit.pri:

2009-10-01  Zoltan Horvath  <zoltan@webkit.org>

        Reviewed by Simon Hausmann.

        [Qt] Enable TCmalloc for the Linux, Mac and Windows Qt-port
        https://bugs.webkit.org/show_bug.cgi?id=27029

        Remove USE_SYSTEM_MALLOC for Linux, Mac and Windows Qt-port from WebKit.pri,
        so these Qt-ports will use TCmalloc as other ports.

        * WebKit.pri:

2009-10-01  Martin Robinson  <martin.james.robinson@gmail.com>

        Reviewed by Xan Lopez.

        [GTK] GtkIMContext filtering interferes with DOM key events
        https://bugs.webkit.org/show_bug.cgi?id=28733

        Add new key event test ensuring that IME keypresses are handled.

        * GNUmakefile.am:

2009-10-01  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Xan Lopez.

        [GTK] data: uri support in media player
        https://bugs.webkit.org/show_bug.cgi?id=29842

        Check presence of gstreamer-pbutils-0.10.

        * configure.ac:

2009-09-26  David Kilzer  <ddkilzer@apple.com>

        GTK BUILD FIX: add ENABLE_ORIENTATION_EVENTS support to configure.ac

        * configure.ac: Added support for ENABLE_ORIENTATION_EVENTS.

2009-09-23  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Do not add unneeded include paths for gir files, and add the
        include paths for headers manually instead of relying on our own
        pc file and installed headers, since that adds a circular
        dependency.

        * GNUmakefile.am:

2009-09-23  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez.

        Minor reorganization to the patch landed in
        http://trac.webkit.org/changeset/48670. Also move JSCore-1.0.gir
        in the gtk directory as that's only useful to the Gtk port at the
        moment.

        * GNUmakefile.am:
        * configure.ac:

2009-09-23  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        [GTK] We should generate our own gir file for introspection
        https://bugs.webkit.org/show_bug.cgi?id=29603

        Generate gir and typelib files for WebKit and JSCore. The JSCore
        gir file is handwritten (since it's only useful, for now, as a
        dependency of the WebKit gir file), the WebKit one is
        autogenerated from the headers.

        * GNUmakefile.am:
        * JSCore-1.0.gir: Added.
        * configure.ac:

2009-09-22  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Xan Lopez.

        link errors due to wrong UNICODE_LIBS on Ubuntu Jaunty
        https://bugs.webkit.org/show_bug.cgi?id=29638

        Call icu-cconfig with ldflags-libsonly to prevent having a -L
        statement that could override libs installed in another prefix.

        * autotools/webkit.m4:

2009-09-21  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Bump version for 1.1.15 release.

        * configure.ac:

2009-09-18  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha and Jan Alonzo.

        [GTK] context menu overriding API is very limited
        https://bugs.webkit.org/show_bug.cgi?id=27546

        Add new tests to the build.

        * GNUmakefile.am:

2009-09-18  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha and Jan Alonzo.

        [GTK] context menu overriding API is very limited
        https://bugs.webkit.org/show_bug.cgi?id=27546

        Add WebKitHitTestResult to the build.

        * GNUmakefile.am:

2009-09-10  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Ariya Hidayat.

        Disable some ARM compiler warnings
        https://bugs.webkit.org/show_bug.cgi?id=29083

        The following ARM compiler warnings are disabled

        - #68-D: integer conversion resulted in a change of sign
        - #111-D: statement is unreachable
        - #177-D: variable XXX was declared but never referenced
        - #368-D: class XXX defines no constructor to initialize the following: YYY
        - #830-D: function XXX "XXX::operator new" has no corresponding operator delete
        - #1293-D: assignment in condition

        * WebKit.pri:

2009-09-09  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Reviewed by Simon Hausmann.

        [Qt] Add the alternative QtLauncher (based on QGraphicsView) to the build.

        https://bugs.webkit.org/show_bug.cgi?id=28862

        * WebKit.pro:

2009-09-07  Xan Lopez  <xlopez@igalia.com>

        Rubber-stamped by Gustavo Noronha.

        Bump versions in preparation for 1.1.14 release.

        * configure.ac:

2009-09-07  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Xan Lopez.

        https://bugs.webkit.org/show_bug.cgi?id=26854
        [GTK] Needs API to allow more control over outgoing requests

        * GNUmakefile.am: new files added to the build for new class
        WebKitNetworkResponse

2009-09-06  Martin Robinson  <martin.james.robinson@gmail.com>

        Reviewed by Gustavo Noronha, Jan Alonzo and Xan Lopez.

        [Gtk] Expose a database API
        https://bugs.webkit.org/show_bug.cgi?id=27899

        Expose an HTML5 database API for GTK+.

        * GNUmakefile.am:

2009-09-04  Albert Bachand  <albertb@google.com>

        Reviewed by Eric Seidel.

        Modify the condition regarding the key modifier for opening combo
        boxes under GTK from just PLATFORM(GTK) to also look for
        (PLATFORM(CHROMIUM) && PLATFORM(LINUX)).

        * WebCore/dom/SelectElement.cpp:
        * WebCore/manual-tests/select-popup-on-spacebar.html:

2009-09-02  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez and Gustavo Noronha.

        [Gtk] Implement a WebDataSource for the gtk port
        https://bugs.webkit.org/show_bug.cgi?id=24758

        Add WebKitWebDataSource unit test to the build script

        * GNUmakefile.am:

2009-09-02  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez and Gustavo Noronha.

        [Gtk] Implement a WebDataSource for the gtk port
        https://bugs.webkit.org/show_bug.cgi?id=24758

        Add WebKitWebDataSource and DocumentLoaderGtk to the build script.

        * GNUmakefile.am:

2009-09-01  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez and Gustavo Noronha.

        [Gtk] Implement a WebDataSource for the gtk port
        https://bugs.webkit.org/show_bug.cgi?id=24758

        Add WebKitWebResource to the build script.

        * GNUmakefile.am:

2009-08-28  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Oliver Hunt.

        Gtk Build broken for OSX Quartz
        https://bugs.webkit.org/show_bug.cgi?id=28727

        Define XP_UNIX for non-Win OS builds.

        * GNUmakefile.am:

2009-08-28  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=25889
        [GTK] scrollbar policy for main frame is not implementable

        Adding files for the new test for window-related issues (starting
        with scrollbar policy).

        * GNUmakefile.am:

2009-08-27  Priit Laes  <plaes@plaes.org>

        Reviewed by Xan Lopez.

        [GTK] Out-of-srcdir build problem
        https://bugs.webkit.org/show_bug.cgi?id=28741

        * GNUmakefile.am, autotools/webkit.m4:
        Fix problem with out-of-srcdir builds. Also bump required glib version.

2009-08-24  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Xan Lopez.

        Bump package and so versions for 1.1.13 release.

        * configure.ac:

2009-08-22 Javier Jardón <javierjc1982@gmail.com>

        [GTK] Not use deprecated symbols in WebKitWebView example code.
        https://bugs.webkit.org/show_bug.cgi?id=28651

        * WebKit/gtk/webkit/webkitwebview.cpp

2009-08-18  Xan Lopez  <xlopez@igalia.com>

        Rubber-stamped by Holger Freyther.

        Require at least libsoup 2.27.91 for the new password
        manager/authentication APIs.

        * configure.ac:

2009-08-18  Drew Wilson  <atwilson@google.com>

        Reviewed by NOBODY (Build Break).

        Speculative fix for GTK DumpRenderTree.

        * GNUmakefile.am:

2009-08-18  Kent Tamura  <tkent@chromium.org>

        Reviewed by Eric Seidel.

        Add --enable-datalist option.

        * configure.ac:

2009-08-14  Adam Bergkvist  <adam.bergkvist@ericsson.com>

        Reviewed by Sam Weinig.

        [GTK] Added EventSource to the build (default on).
        https://bugs.webkit.org/show_bug.cgi?id=14997 

        * configure.ac:

2009-08-14  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Rubber-stamped by Gustavo Noronha.

        Initialize CFLAGS and CXXFLAGS before the main body of the
        WEBKIT_INIT macro so C files don't get built with "-g -O2".

        * autotools/webkit.m4:

2009-08-12  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Jan Alonzo.

        [GTK] Remove keyring optional features
        https://bugs.webkit.org/show_bug.cgi?id=28173

        Remove keyring support, we now do authentication storage through
        libsoup. We depend on libsoup master now, will bump the dependency
        when there's a new release.

        * GNUmakefile.am:
        * configure.ac:

2009-08-11  Drew Wilson  <atwilson@google.com>

        Reviewed by NOBODY (Build break).

        Speculative fix for GTK build break.

        * WebKit.pro:

2009-08-11  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Simon Hausmann.

        Build the TestNetscapePlugin on Qt/Mac

        * WebKit.pro:

2009-08-11  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Jan Alonzo.

        Prefix lengthy commands with AM_V_GEN so that they produce an
        output like 'GEN <filename>' when in silent mode.

        * GNUmakefile.am:

2009-08-05  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez.

        [Gtk] macros in webkit.m4 should be defined once only
        https://bugs.webkit.org/show_bug.cgi?id=27929

        The macros in webkit.m4 are not meant to be called multiple times
        so we'll make them AC_DEFUN_ONCE. Also make AC_HEADER_STDC and AC_PROG_CXX
        AC_REQUIRE to remove the automake warnings when doing autogen.sh.

        Lastly, make sure CXXFLAGS and CFLAGS are defined before
        AC_PROG_CXX gets expanded so it doesn't add "-g -O2" on Release builds.

        * autotools/webkit.m4:

2009-08-05  Xan Lopez  <xlopez@igalia.com>

        Revert r46714, it was making us build debug images by default.

        * autotools/webkit.m4:

2009-08-03  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Eric Seidel.

        [Qt] Consolidate common gcc flags to WebKit.pri
        https://bugs.webkit.org/show_bug.cgi?id=27934

        * WebKit.pri:

2009-08-03  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Rubber-stamped by Eric Seidel.

        [Gtk] macros in webkit.m4 should be defined once only
        https://bugs.webkit.org/show_bug.cgi?id=27929

        The macros in webkit.m4 are not meant to be called multiple times
        so we'll make them AC_DEFUN_ONCE. Also make AC_HEADER_STDC and AC_PROG_CXX
        AC_REQUIRE to remove the automake warnings when doing autogen.sh.

        * autotools/webkit.m4:

2009-07-29  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Reviewed by Simon Hausmann.

        Adding ImageDiff project file.

        https://bugs.webkit.org/show_bug.cgi?id=27813

        * WebKit.pro: Added ImageDiff.pro.

2009-07-29  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Eric Seidel and Xan Lopez.

        [Gtk] Enable http/tests/appcache tests
        https://bugs.webkit.org/show_bug.cgi?id=27674

        * GNUmakefile.am: Add webkit/webkitapplicationcache.cpp

2009-07-28  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Use automake 1.11 SILENT_RULES when present, for cleaner build
        output. You can disable it by passing --disable-silent-rules to
        configure or V=1 to make.

        * autotools/dolt.m4:
        * configure.ac:

2009-07-28  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Disable some compiler warnings for the win build
        https://bugs.webkit.org/show_bug.cgi?id=27709

        * WebKit.pri:

2009-07-28  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        * configure.ac: bump version for 1.1.12 release.

2009-07-24  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Remove unneeded commas from PKG_CHECK_MODULES.

        * configure.ac:

2009-07-24  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez.

        Bump pango version requirement to 1.12 which is the version that
        came with Gtk 2.10.

        * configure.ac:

2009-07-21  Roland Steiner  <rolandsteiner@google.com>

        Reviewed by David Levin.

        Add ENABLE_RUBY to list of build options
        https://bugs.webkit.org/show_bug.cgi?id=27324

        * configure.ac: Added flag ENABLE_RUBY.

2009-07-20  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Holger Freyther.

        [Qt] Add an option for QtLauncher to build without QtUiTools dependency
        https://bugs.webkit.org/show_bug.cgi?id=27438

        Based on Norbert Leser's work.

        * WebKit.pri: Symbian does not have UiTools

2009-07-16  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by David Levin.

        Add --web-sockets flag and ENABLE_WEB_SOCKETS define.
        https://bugs.webkit.org/show_bug.cgi?id=27206

        Add --enable-web-sockets in configure.ac

        * configure.ac:

2009-07-16  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Enable GNU compiler extensions to the ARM compiler 
        for all Qt ports using RVCT
        https://bugs.webkit.org/show_bug.cgi?id=27348

        * WebKit.pri:

2009-07-15  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Rubber-stamped by Simon Hausmann.

        Fix the Qt/Mac build by disabling TestNetscapePlugin

        We should fix and enable this once we run DRT for Qt/Mac

        * WebKit.pro:

2009-07-13  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed build fix. Require the correct libsoup version now that
        it's released.

        * configure.ac:

2009-07-13  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Tor Arne Vestbø.

        [Qt] Build fix for QtWebKit on Win
        https://bugs.webkit.org/show_bug.cgi?id=27205

        * WebKit.pri: Include the major version number in the QtWebKit
        library file for Win.

2009-07-13  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Ariya Hidayat.

        Add the test netscape plugin for the Qt DRT to the build.

        * WebKit.pro:

2009-07-13  Drew Wilson  <atwilson@google.com>

        Reviewed by David Levin.

        Add ENABLE(SHARED_WORKERS) flag and define SharedWorker APIs
        https://bugs.webkit.org/show_bug.cgi?id=26932

        Added ENABLE(SHARED_WORKERS) flag.

       * configure.ac:

2009-07-12  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Bump version in preparation for 1.1.11 release.

        * configure.ac:

2009-07-07  Norbert Leser  <norbert.leser@nokia.com>

        Reviewed by Simon Hausmann.

        Exclude DumpRenderTree.pro from symbian build

        * WebKit.pro:

2009-07-09  Drew Wilson  <atwilson@google.com>

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=26903

        Turned on CHANNEL_MESSAGING by default because the MessageChannel API
        can now be implemented for Web Workers and is reasonably stable.

        * configure.ac: enable CHANNEL_MESSAGING.

2009-07-03  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez and Gustavo Noronha.

        Set user-agent from application
        https://bugs.webkit.org/show_bug.cgi?id=17375

        Define UA version macros to be used by the UA string.
        Add new WebSettings unit test for the User-Agent string API.

        * GNUmakefile.am:
        * configure.ac:

2009-06-20  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed by Jan Alonzo.

        Adding files for the new test case for loading statuses.

        * GNUmakefile.am:

2009-06-15  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Version bump in preparation for 1.1.10 release.

        * configure.ac:

2009-06-12  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Xan Lopez.

        Refactor handling of options in the build-webkit script
        
        Options are now defined in one place, and then reused when creating
        the usage help text, the arguments to GetOptions(), and when passing
        the options on to the underlying port-dependent build systems.
        
        This allows the Qt port to read the defaults for the options from the
        pro file (dynamically), and to pass the options on to qmake at build.

        * configure.ac:

2009-06-11  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Holger Freyther.

        [Qt] Fix release build detection
        https://bugs.webkit.org/show_bug.cgi?id=26267

        * WebKit.pri:

2009-06-10  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed by Xan Lopez.

        Add unit tests for our WebKitNetworkRequest object.

        * GNUmakefile.am:

2009-06-10  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Version bump in preparation for 1.1.9 release.

        * configure.ac:

2009-06-10  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Jan Alonzo.

        https://bugs.webkit.org/show_bug.cgi?id=25415
        [GTK][ATK] Please implement support for get_text_at_offset

        Add new dependency on the Gail utils library, needed for our a11y
        implementation.

        * GNUmakefile.am:
        * configure.ac:

2009-05-29  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed by Jan Alonzo.

        Add a test-case for our HTTP backend, currently checking the
        ref-counting of the SoupMessage.

        * GNUmakefile.am:

2009-05-28  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Enable the new build flag --filters for Gtk. More details in WebCore/ChangeLog.

        * configure.ac:

2009-05-19  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Jan Alonzo and Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=25415
        [GTK][ATK] Please implement support for get_text_at_offset

        Add new test file for ATK.

        * GNUmakefile.am:

2009-05-28  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Rubber-stamped by Xan Lopez.

        Fix webkitgtk_cleanfiles to clean gtk-doc-related files in the
        correct directory, so that we pass make distcheck.

        * GNUmakefile.am:

2009-05-28  Xan Lopez  <xlopez@igalia.com>

        Bump version numbers in preparation for 1.1.8 release.

        * configure.ac:

2009-05-23  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Unreviewed build fix. Add gstreamer-video-0.10 libs to
        GSTREAMER_LIBS to resolve an undefined reference to gst_video_get_size
        - symbol used in MediaPlayerPrivateGstreamer.

        * configure.ac:

2009-05-23  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez.

        [Gtk] Various autotools build refactoring and fixes
        https://bugs.webkit.org/show_bug.cgi?id=25286

        Refactor library LIBS. Move third-party libs in libwebkit instead
        of libWebCore.

        * GNUmakefile.am:

2009-05-22  Antonio Gomes  <antonio.gomes@openbossa.org>

        Reviewed by Gustavo Noronha.

        Make Gtk build not bail out if gtk-doc-tools is not installed.

        Warning message shown instead.

        * autogen.sh:

2009-05-22  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Xan Lopez.

        Add big warnings about the glib unicode backend being slow and
        incomplete, since it is a work in progress.

        * autotools/webkit.m4:
        * configure.ac:

2009-05-22  Dominik Röttsches  <dominik.roettsches@access-company.com>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=15914
        [GTK] Implement Unicode functionality using GLib

        Initial version of this patch by Jürg Billeter.

        Adding options for --with-unicode-backend=icu|glib
        and checking for pango version >= 1.21.0 if GLib backend
        is selected. Temporarily, until remaining parts of
        this patch are committed, introduce WTF_USE_GLIB_ICU_UNICODE_HYBRID
        macro to allow for a mixed compilation with WTF Unicode
        backend based on GLib while text codecs and TextBreakIterator
        remain ICU dependent.

        * GNUmakefile.am:
        * configure.ac:

2009-05-18  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Gavin Barraclough.

        Enable YARR, and disable WREC for GTK+.

        * configure.ac:

2009-05-18  Jan Michael Alonzo  <jmalonzo@webkit.org>

         Reviewed by Xan Lopez.

         [Gtk] Various autotools build refactoring and fixes
         https://bugs.webkit.org/show_bug.cgi?id=25286

         Add support for running unit tests. Also run the tests whenever
         the 'check' target runs.

         * GNUmakefile.am:

2009-05-18  Jan Michael Alonzo  <jmalonzo@webkit.org>

         Reviewed by Xan Lopez.

         [Gtk] Various autotools build refactoring and fixes
         https://bugs.webkit.org/show_bug.cgi?id=25286

         Style fixes

         * GNUmakefile.am:

2009-05-18  Jan Michael Alonzo  <jmalonzo@webkit.org>

         Reviewed by Xan Lopez.

         [Gtk] Various autotools build refactoring and fixes
         https://bugs.webkit.org/show_bug.cgi?id=25286

         Add -no-install and -no-fast-install to programs and tests that we
         don't install. Also remove -O2 since this is already handled at
         configure time.

         * GNUmakefile.am:

2009-05-17  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez.

        [Gtk] Various autotools build refactoring and fixes
        https://bugs.webkit.org/show_bug.cgi?id=25286

        Refactor library cflags

        * GNUmakefile.am:

2009-05-15  Fridrich Strba  <fridrich.strba@bluewin.ch>

        Reviewed by Jan Alonzo.

        Use AC_CANONICAL_HOST instead of AC_CANONICAL_SYSTEM, since
        the JIT compiler is not a cross-compiler

        * configure.ac:

2009-05-13  Xan Lopez  <xlopez@igalia.com>

        Unreviewed: bump versions in preparation for 1.1.7 release.

        * configure.ac:

2009-05-13  Xan Lopez  <xlopez@igalia.com>

        Rubber-stamped by Gustavo Noronha.

        Revert commit r43563, since it breaks WebKitGTK+ when compiled
        with gcc 4.4.

        * GNUmakefile.am:

2009-05-12  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Holger Freyther.

        [Gtk] Various autotools build refactoring and fixes
        https://bugs.webkit.org/show_bug.cgi?id=25286

        Refactor use of CFLAGS, CXXFLAGS, LIBADD and LDFLAGS.

        * GNUmakefile.am:

2009-05-09  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Gustavo Noronha.

        WebKit-r43163 won't build for gtk-directfb
        https://bugs.webkit.org/show_bug.cgi?id=25538

        Move the ENCHANT check out of the with_target conditional since it
        applies to all targets

        * configure.ac:

2009-05-09  Mike Hommey  <glandium@debian.org>

        Reviewed by Geoffrey Garen. Landed by Jan Alonzo.

        Enable JIT on x86-64 gtk+
        https://bugs.webkit.org/show_bug.cgi?id=24724

        * configure.ac:

2009-05-08  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Xan Lopez.

        Ship the gtk-doc.make file, so as to not depend on gtkdoc-tools.

        * GNUmakefile.am:
        * autogen.sh:

2009-05-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Simon Hausmann.

        Build QtWebKit as a framework on Mac

        This implies both debug and release build by default, unless
        one of the --debug or --release config options are passed to
        the build-webkit script.

        Frameworks can be disabled by passing CONFIG+=webkit_no_framework
        to the build-webkit script.

        To be able to build both debug and release targets in parallel
        we have to use separate output directories for the generated
        sources, which is not optimal, but required to avoid race conditions.

        An optimization would be to only require this spit-up on Mac.

        * WebKit.pri:

2009-04-30  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Unreviewed build GTK build fix

        * configure.ac: typo fix - javascript_debugger should be enable_javascript_debugger

2009-04-30  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, build fix.

        https://bugs.webkit.org/show_bug.cgi?id=25470
        Extend the cover of ENABLE_JAVASCRIPT_DEBUGGER to profiler.

        * configure.ac: Add autoconfig options, missed in the first commit.

2009-04-28  Xan Lopez  <xlopez@igalia.com>

        Unreviewed: bump versions in preparation for 1.1.6 release.

        * configure.ac:

2009-04-25  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez.

        [GTK] Error reporting
        https://bugs.webkit.org/show_bug.cgi?id=18344

        Add webkiterror to the build.

        * GNUmakefile.am:

2009-04-25  Jan Michael Alonzo  <jmalonzo@webkit.org>

         Reviewed by Xan Lopez.

         [GTK] Error reporting
         https://bugs.webkit.org/show_bug.cgi?id=18344

         Add the default error page for installation.

         * GNUmakefile.am:

2009-04-24  Diego Escalante Urrelo  <diegoe@gnome.org>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=15616
        [GTK] Add spell checking

        Add enchant support for spell-checking-languages property to work
        properly.

        * GNUmakefile.am:
        * configure.ac:

2009-04-24  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Ariya Hidayat.

        Added support for generating API docs in the Qt build using "make docs"

        * WebKit.pro: Include docs.pri for "make docs" target.

2009-04-14  Xan Lopez  <xlopez@igalia.com>

        Unreviewed version bump in preparation for 1.1.5 release.

        * configure.ac:

2009-04-06  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Rubber-stamped by Sam Weinig.

        Added rules to maintain the localization support. We cannot simply
        use whatever gettextize gives us because our build system is
        non-recursive.

        * GNUmakefile.am:
        * configure.ac:

2009-04-05  Mike Hommey  <glandium@debian.org>

        Reviewed by Holger Freyther.

        Filter out all C++ symbols
        https://bugs.webkit.org/show_bug.cgi?id=24960

        Considering the public API is all C, we can just filter out all
        C++ mangled symbols, which will avoid exporting symbols in some
        corner cases such as gcc bugs on specific architectures, etc.

        * autotools/symbols.filter:

2009-04-03  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Holger Freyther.

        Require GTK+ >= 2.10; 2.8 is already very old, and some very
        useful APIs are only available since 2.10.

        * configure.ac:

2009-04-01  Christian Dywan  <christian@twotoasts.de>

        Reviewed by Holger Freyther.

        Unit test WebKitDownload
        http://bugs.webkit.org/show_bug.cgi?id=24844

        * GNUmakefile.am: Add a unit test for downloading.

2009-04-01  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed build fix. Fix make distcheck, after the gtk-doc
        integration.

        * GNUmakefile.am:

2009-03-30  Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>

        Reviewed by Holger Freyther.

        Integrate gtk-doc into the Gtk+ buildsystem.

        * autogen.sh:
        * configure.ac:

2009-03-30  Xan Lopez  <xlopez@igalia.com>

        Unreviewed: bump version to 1.1.4 for release.

        * configure.ac:

2009-03-21  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Holger Freyther.

        Require gnome-keyring 2.26.0, since we were depending on an
        unreleased trunk revision between 2.25.91 and 2.26.0.

        * configure.ac:

2009-03-20  Jan Michael Alonzo  <jmalonzo@gmail.com>

        Reviewed by Holger Freyther.

        [GTK] Misc patches for WebKitWebHistoryItem
        https://bugs.webkit.org/show_bug.cgi?id=24493

        Added build support for build the WebKitWebHistoryItem unit test.

        * GNUmakefile.am:

2009-03-20  Jan Michael Alonzo  <jmalonzo@gmail.com>

        Reviewed by Holger Freyther.

        Separate gtk unit tests
        https://bugs.webkit.org/show_bug.cgi?id=24039

        Build the unit tests accordingly.

        * GNUmakefile.am:

2009-03-17  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed by Mark Rowe.

        Enable HTML5 media elements support by default in the GTK+ port.

        * configure.ac:

2009-03-17  Mike Hommey <glandium@debian.org>

        Reviewed by Holger Freyther.

        Do not export cti* symbols.
        See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=519924.

        * autotools/symbols.filter:

2009-03-15  Xan Lopez  <xlopez@igalia.com>

        Bump version to 1.1.3 for release and fix soversion
        calculation (oops). Thanks to Frederik Himpe for pointing this
        out.

        * configure.ac:

2009-03-15  Xan Lopez  <xlopez@igalia.com>

        Bump version and libtool version for release.

        * configure.ac:

2009-03-14  Xan Lopez  <xlopez@igalia.com>

        No review, build fix.

        Split clean rules to make distcheck pass.

        * GNUmakefile.am:

2009-03-13  Mark Rowe  <mrowe@apple.com>

        Reviewed by Dan Bernstein.

        Remove rarely used Makefile targets from the Makefile.

        There are many situations in which the targets don't work as expected,
        and their primary use is addressed by having the build system default
        to building the appropriate architecture.

        * Makefile.shared:

2009-03-11  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Holger Freyther.

        [Gtk] Fix make clean targets
        https://bugs.webkit.org/show_bug.cgi?id=24450

        Fix 'make' clean targets. We shouldn't be removing DerivedSources
        if it's only clean. Only remove it if it's distclean or
        maintainer-clean. Also remove build-related auxillary files on
        dist/maintainer clean.

        * GNUmakefile.am:

2009-03-11  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Holger Freyther

        [GTK]DumpRenderTree doesn't compile for non-X11 GTK ports anymore
        https://bugs.webkit.org/show_bug.cgi?id=2260

        pangoft2 is also used in directfb builds so use it for all targets

        * configure.ac:

2009-03-02  Xan Lopez  <xan@gnome.org>

        Reviewed by Mark Rowe.

        https://bugs.webkit.org/show_bug.cgi?id=24287
        [GTK] Move auth dialog feature to WebKit/

        Add WebKitSoupAuthDialog files to build.

        * GNUmakefile.am:

2009-03-03  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=16826
        [Gtk] Implement WebKitDownload

        Adding new files related to WebKitDownload to the GTK+ port.

        * GNUmakefile.am:

2009-03-02  Gustavo Noronha Silva  <gns@gnome.org>

        Unreviewed build fix; adding missing files to EXTRA_DIST, so that
        they show up in the tarball.

        * GNUmakefile.am:

2009-03-01  Christian Dywan  <christian@twotoasts.de>

        * configure.ac: Bump GTK port version to 1.1.1.

2009-02-27  Gustavo Noronha Silva  <gns@gnome.org>

        Unreviewed build fix. Adding the WebKit/gtk/webkitmarshal.list
        file to EXTRA_DIST to fix make dist.

        * GNUmakefile.am:

2009-02-26  Xan Lopez  <xan@gnome.org>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=16947
        [GTK] Missing HTTP Auth challenge

        Add HTTP authentication dialog with optional GNOME Keyring
        storage.

        * GNUmakefile.am:
        * configure.ac:

2009-02-26  Xan Lopez  <xan@gnome.org>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=16947
        [GTK] Missing HTTP Auth challenge

        Take marshallers to be built from a manually maintained list
        instead of grepping the sources.

        It's much faster, especially so now that we want to add
        marshallers from WebCore too. A system to only take into account
        the modified files when generating the marshallers from sources
        could be hacked, but I think it's overkill considering how rarely
        a new marshaller is added.

        * GNUmakefile.am:

2009-02-24  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Alexey Proskuryakov.

        [Gtk] add options for 3D transforms and HTML5 channel messaging to the build
        https://bugs.webkit.org/show_bug.cgi?id=24072

        Add options for toggling 3D transforms and HTML5 channel messaging
        support on or off.

        Also fix the web-workers option. It should be web-workers and not workers.

        * configure.ac:

2009-02-23  Xan Lopez  <xan@gnome.org>

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=22624
        [SOUP][GTK] Need API to get SoupSession from WebKit.

        Remove CURL support, the only supported HTTP backend is SOUP now.

        * GNUmakefile.am:
        * configure.ac:

2009-02-19  Christian Dywan  <christian@twotoasts.de>

        Rubber-stamped by Holger Freyther.

        http://bugs.webkit.org/show_bug.cgi?id=22811
        Underlinking in Programs_UnitTests (GTK+ build)

        * GNUmakefile.am: Add GLIB_LIBS to unit test library flags.

2009-02-18  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed by Holger Freyther.

        Fix symbols.filter location, and add other missing files to the
        autotools build, so that make dist works.

        * GNUmakefile.am:

2009-02-17  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=23939
        Release build being built with debugging symbols

        * configure.ac: Revert change done in revision 40790, since we
        already have a AC_PROG_CXX macro call as part of WEBKIT_INIT

2009-02-12  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed by Eric Seidel.

        * configure.ac: Make soup the default HTTP backend for the Gtk port.

2009-02-09  Calvin Walton  <calvin.walton@gmail.com>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=23823

        [Gtk] Fix build with recent autotools

        Current versions of automake/libtool don't assume you want C++ enabled
        by default any more, so explicitly check for a C++ compiler.

        * configure.ac: Add AC_PROG_CXX macro

2009-02-02  Christian Dywan  <christian@twotoasts.de>

        Rubber-stamped by Holger Freyther.

        Don't require Geolocation by default.

        * configure.ac:

2009-01-30  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Nikolas Zimmermann.

        [Gtk] Refactor autoconf/configure.ac in preparation for jsc and webkit build splits
        https://bugs.webkit.org/show_bug.cgi?id=22136

        * GNUmakefile.am:
        * acinclude.m4: Removed.
        * autogen.sh:
        * autotools/acinclude.m4: Added.
        * autotools/dolt.m4: Added.
        * autotools/symbols.filter: Renamed from symbols.filter.
        * autotools/webkit.m4: Added.
        * configure.ac:

2009-01-30  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Nikolas Zimmermann.

        [GTK] Implement GeolocationService using the Geoclue library

        https://bugs.webkit.org/show_bug.cgi?id=22022

        Untested implementation of the GeolocationService using the geoclue
        library. Velocity handling is completely missing and the accuracy
        handling might be wrong.

        * GNUmakefile.am:
        * configure.ac:

2009-01-11  Xan Lopez  <xan@gnome.org>

        Reviewed by Holger Freyther.

        Bump version to 1.1.0 since we are breaking ABI and adding new
        major features.

        * configure.ac:

2008-12-19  Marco Barisione  <marco.barisione@collabora.co.uk>

        Reviewed by Holger Freyther.

        http://bugs.webkit.org/show_bug.cgi?id=16562
        [gtk] Implement WebPolicyDelegate methods

        Original work by Pierre-Luc Beaudoin. Final touches by Gustavo
        Noronha.

        This implements the delegates methods of WebPolicyDelegate.
        Since Gtk+/C doesn't have delegate methods, they are replaced with
        signals.

        A new object WebKitWebPolicyDecision allows the browser to delay its
        response in certain cases. WebKitWebNavigationAction contains the
        information about what caused a navigation request.

        * GNUmakefile.am: Add new files

2008-12-19  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed by Holger Freyther.

        Use ustar tar format for WebKit/GTK+'s make dist target, so that
        storing files whose filenames are > 99 is possible.

        * configure.ac:

2008-12-19  Holger Hans Peter Freyther  <zecke@selfish.org>

        [GTK] Build fix by defining WTF_USE_JIT_STUB_ARGUMENT_VA_LIST

        Fix the jit compilation on i*686 on Linux by using the va_list
        to pass arguments to the CTI. This is done on the MAC as well
        and sunspider and javascriptcore seem to work with that.

        * configure.ac:

2008-12-18  Pamela Greene  <pam@chromium.org>

        Submitted without review.
        Right, remove the whole misplaced directory, not just the tests.

        * fast: Removed.
        * fast/dom: Removed.

2008-12-18  Pamela Greene  <pam@chromium.org>

        Submitted without review.
        Moving layout test into LayoutTests where it belongs.

        * fast/dom/setter-type-enforcement-expected.txt: Removed.
        * fast/dom/setter-type-enforcement.html: Removed.

2008-12-15  Daniel Macks  <dmacks@netspace.org>

        Reviewed by Darin Adler.

        Default to use external libicu-config if avail on all platforms.
        https://bugs.webkit.org/show_bug.cgi?id=22713

        * configure.ac:

2008-12-12  Holger Hans Peter Freyther  <zecke@selfish.org>

        Back out r39222 as this is breaking the build on Gentoo (aclocal-1.10)

        The m4 directory does not exist and we now have a compile issue on
        Gentoo systems.

        * GNUmakefile.am:
        * configure.ac:

2008-12-11  Daniel Macks  <dmacks@netspace.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=22714

        Put libtool macro files in subdir that it wants.

        * GNUmakefile.am:
        * configure.ac:

2008-12-07  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Eric Seidel.

        [Gtk+] Use glib's unit test facilities to test the WebKit/Gtk+ API

        https://bugs.webkit.org/show_bug.cgi?id=22491

        Add the skeleton to WebKit/gtk/tests and integrate that into the
        buildsystem. Testing support was added in glib 2.16. For versions
        using glib < 2.16 we compile an empty application.

        * GNUmakefile.am:

2008-12-07  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Cameron Zwarich.

        [GTK] Define ENABLE_JIT_OPTIMIZE_CALL, ENABLE_JIT_OPTIMIZE_PROPERTY_ACCESS, ENABLE_JIT_OPTIMIZE_ARITHMETIC

        When building the jit on i*86 also enable the above optimizations.

        * configure.ac:

2008-12-03  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Tor Arne Vestbø.

        Fix the build of WebKit inside Qt by making sure that qmake generators
        that do not produce generated sources (i.e. cpp files) are not
        included in SOURCES.

        * WebKit.pri:

2008-12-02  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Tor Arne Vestbø.

        Removed JavaScriptCore from SUBDIRS as it's not built separately
        anymore.

        * WebKit.pro:

2008-11-28  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed and slightly modified by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=19130

        Added the new WebKitGtk files to be built:
        WebKit/gtk/webkit/webkitwebwindowfeatures.{cpp,h}

        * GNUmakefile.am:

2008-11-26  Kalle Vahlman  <kalle.vahlman@movial.com>

        Reviewed by Darin Adler. Landed by Jan Alonzo.

        Bison versions under 2.2 produce crashing CSSGrammar code for ARM
        https://bugs.webkit.org/show_bug.cgi?id=22456

        Check for bison version 2.2 or greater on ARM. Earlier versions produce
        code that crashes on ARM devices.

        * configure.ac:

2008-11-25  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by David Kilzer.

        https://bugs.webkit.org/show_bug.cgi?id=22022

        Add Geolocation support to the configure.ac

        Add an option to build WebKit/Gtk+ with Geolocation. The
        implementation will be using Gypsy.

        * configure.ac:

2008-11-24  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Mark Rowe.

        [Gtk+] Add configure option to enable Web Workers and enable it by default

        Add --enable-workers to the buildsystem (used by build-webkit) add
        the to be build files to the GNUmakefile.am and change build-webkit
        to enable Web Workers by default.

        * configure.ac:

2008-09-09  Joerg Bornemann  <joerg.bornemann@trolltech.com>

        Reviewed by Simon Hausmann.

        Steps towards making the Qt port of WebKit compile on Windows CE

        https://bugs.webkit.org/show_bug.cgi?id=20746

        * WebKit.pro: don't build DumpRenderTree on all Win32 platforms

2008-11-17  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        Add WML build support for Gtk as well.

        * configure.ac:

2008-11-16  Geoffrey Garen  <ggaren@apple.com>

        Not reviewed.

        Try to fix gtk build.

        * configure.ac:

2008-11-10  Tor Arne Vestbø  <tavestbo@trolltech.com>

        Rubber-stamped by Simon Hausmann.

        Distinguish between building from trunk and as part of Qt

        * WebKit.pri:

2008-11-10  Morten Sørvig  <msorvig@trolltech.com>

        Reviewed by Simon Hausmann.

        Make tests/auto/qwebframe compile on Qt/Mac.

        * WebKit.pri: Fix linkage against QtWebKit when compiled as framework.

2008-11-06  Cameron Zwarich  <zwarich@apple.com>

        Not reviewed.

        Speculatively fix the GTK build.

        * GNUmakefile.am:

2008-11-06  Alp Toker  <alp@nuanti.com>

        GTK build fix for r38155. create_hash_table was moved out of kjs/

        * GNUmakefile.am:

2008-11-06  Cameron Zwarich  <zwarich@apple.com>

        Rubber-stamped by Sam Weinig.

        Correct the reference to jsc.pro in WebKit.pro to match its new
        location in the root directory of JavaScriptCore.

        * WebKit.pro:

2008-11-03  Alp Toker  <alp@nuanti.com>

        autotools distcleancheck fix. Add dolt-generated files and
        webkitenumtypes.h to the list of files that need to be cleaned.
        Unreviewed.

        * GNUmakefile.am:

2008-11-03  Alp Toker  <alp@nuanti.com>

        Rubber-stamped by Holger Freyther.

        Do not enable RTTI or exceptions in debug builds, matching release
        builds. They don't help much with debugging and significantly slow
        down and increase the size of the debug build.

        * GNUmakefile.am:

2008-11-03  Alp Toker  <alp@nuanti.com>

        Rubber-stamped by Holger Freyther.

        Add mingw32 case to dolt for faster GTK+ Windows builds.

        * acinclude.m4:

2008-11-02  Xan Lopez  <xan@gnome.org>

        Reviewed by Holger Freyther

        https://bugs.webkit.org/show_bug.cgi?id=22009
        HTML5 Video with GStreamer pulls gnome-vfs without using it.

        * configure.ac:
        Remove gnome-vfs from configure.ac, it's unused.

2008-10-30  Alp Toker  <alp@nuanti.com>

        https://bugs.webkit.org/show_bug.cgi?id=19395
        doltlibtool bug with bash 3.0

        autotools dolt build fix for bash version 3.0 and older. Remove
        concatenation syntax from doltlibtool to support the older versions
        which don't have '+='.

        * acinclude.m4:

2008-10-30  Alp Toker  <alp@nuanti.com>

        Rubber-stamped by Oliver Hunt.

        autotools build system change to enable JIT features by default. Can
        be disabled with --disable-jit (and is disabled automatically on
        unsupported platforms).

        * configure.ac:

2008-10-30  Alp Toker  <alp@nuanti.com>

        Bump WebKit GTK+ version to 1.0.3.

        * configure.ac:

2008-10-29  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed by Holger Freyther.

        Added all the files that need to be installed for the Inspector to
        work.

2008-10-29  Mike Hommey  <glandium@debian.org>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=21884
        Test presence and link against libpng.

        * GNUmakefile.am:
        * configure.ac:

2008-10-29  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Holger Freyther.

        Add --enable-optimizations to enable optimized builds. The default
        is to enable it for release builds, and disabled for debug builds.
        This option will allow builders to have a debug as well as
        optimized builds.

        * GNUmakefile.am:
        * configure.ac:

2008-10-28  Mike Hommey  <glandium@debian.org>

        Reviewed by Alp Toker.

        https://bugs.webkit.org/show_bug.cgi?id=21885
        [GTK] libwebkit doesn't link against libpangoft2

        Add pkg-config check for pangoft2 which provides
        pango_fc_font_description_from_pattern() used in the FreeType font
        backend.

        * configure.ac:

2008-10-28  Alp Toker  <alp@nuanti.com>

        Include copyright license files in the autotools dist target.

        Change suggested by Mike Hommey.

        * GNUmakefile.am:

2008-10-25  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Gtk build fix: add '-' to Wl which was missed in r36845

        * GNUmakefile.am:

2008-10-22  Alp Toker  <alp@nuanti.com>

        Fix build for Cairo 1.2.

        * configure.ac:

2008-10-20  Alp Toker  <alp@nuanti.com>

        Partial GTK+/Win32 build fix. Lowercase library name to enable linking
        when cross-compiling Windows binaries from Linux: -lWs2_32 -> -lws2_32

        * configure.ac:

2008-10-13  Alp Toker  <alp@nuanti.com>

        GTK+ build fix: Ensure correct builds when debugging is
        enabled/disabled by defining NDEBUG in autotoolsconfig.h as needed.
        It's still passed as a compiler flag since some sources (DRT) don't
        use config.h yet.

        * configure.ac:

2008-10-09  Alp Toker  <alp@nuanti.com>

        Reviewed by Mark Rowe.

        https://bugs.webkit.org/show_bug.cgi?id=20760
        Implement support for x86 Linux in CTI

        Prepare to enable CTI/WREC on supported architectures. Will be
        switched on when the crasher introduced in r37386 is resolved.

        * configure.ac:

2008-10-07  Alp Toker  <alp@nuanti.com>

        GTK+ build fix for older automake versions (1.7). Discussed in bug
        #21392.

        * GNUmakefile.am:

2008-10-07  Alp Toker  <alp@nuanti.com>

        Reviewed by Mark Rowe.

        https://bugs.webkit.org/show_bug.cgi?id=21392
        [GTK] Auto-generate JS DOM binding sources list

        Remove the huge lists of generated DOM binding sources and headers in
        the build system. These are difficult to maintain and can be derived
        automatically.

        The new strategy is to re-use the existing lists of IDL sources (which
        are needed for dist support anyway). This will also ease the addition
        of new language bindings.

        * GNUmakefile.am:

2008-09-27  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=20287
        [Gtk] disable plugins for gtk/directfb target

        Introduce WTF_PLATFORM_X11 for X11 builds.
        Also use target-specific packages when building the port

        * configure.ac: Do not check for cairo-ft for directfb builds.

2008-09-27  Marco Barisione  <marco.barisione@collabora.co.uk>

        Reviewed by Holger Freyther.

        http://bugs.webkit.org/show_bug.cgi?id=21174
        [GTK][AUTOTOOLS] Enable large file support at configure time

        * configure.ac: Enable large file support with AC_SYS_LARGEFILE.

2008-09-23  Richard Hult  <richard@imendio.com>

        Reviewed by Alp Toker. Landed by Jan Alonzo.

        http://bugs.webkit.org/show_bug.cgi?id=20582
        [Gtk] Link error on Mac OS X

        * GNUmakefile.am: Only use the -version-script flag for the gnu
        linker.
        * configure.ac: Check for GNU OSes.

2008-09-19  Alp Toker  <alp@nuanti.com>

        Build fix for the 'gold' linker and recent binutils. New behaviour
        requires that we link to used libraries explicitly.

        * GNUmakefile.am:
        * configure.ac:

2008-09-04  Marco Barisione  <marco.barisione@collabora.co.uk>

        Reviewed by Eric Seidel.

        http://bugs.webkit.org/show_bug.cgi?id=20380
        [GTK][AUTOTOOLS] Include autotoolsconfig.h from config.h

        * configure.ac: Rename the configuration header from aconfig.h to autotoolsconfig.h.

2008-08-28  Alp Toker  <alp@nuanti.com>

        GTK+ dist/build fix. List newly added header files.

        * GNUmakefile.am:

2008-08-27  Mike Hommey <glandium@debian.org>

        Reviewed by Holger.

        * GNUmakefile.am:
        * symbols.filter: Added.

2008-08-10  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed (and updated) by Alp Toker.

        https://bugs.webkit.org/show_bug.cgi?id=16620
        [GTK] Autotools make dist and make check support

        Get make dist working.

        Note that not all possible configurations have been tested yet.

        * GNUmakefile.am:

2008-08-09  Marco Barisione  <marco.barisione@collabora.co.uk>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=19045
        [gtk] ./configure doesn't check for x toolkit availability

        Some old versions of Xt do not provide xt.pc, in this case use
        AC_CHECK_LIB to check if the library is installed and then fall back
        to using just -lXt.

        * configure.ac:

2008-08-09  Alp Toker  <alp@nuanti.com>

        GTK+ build fixes.

        Back out r20338 libxslt check (conditional check already exists and
        this broke the build).

        Make the flex version check a warning rather than fatal to fix the
        build bot.

        * configure.ac:

2008-08-08  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Mark Rowe.

        http://bugs.webkit.org/show_bug.cgi?id=20338
        [Gtk] Autotools should check for libxslt

        Autotools check for libxslt

        * configure.ac:

2008-08-07  Kalle Vahlman  <zuh@iki.fi>

        Reviewed by David Kilzer.

        Check for correct flex version to avoid faulty builds

        A correct Webkit build requires flex 2.5.33 but autotools build doesn't check for it
        https://bugs.webkit.org/show_bug.cgi?id=20253

        acinclude.m4: Import AX_COMPARE_VERSION macro
        configure.ac: Check for flex version

        * acinclude.m4:
        * configure.ac:

2008-08-07  Simon Hausmann  <hausmann@webkit.org>

        Rubber-stamped by Lars.

        Added API tests for QWebPage/QWebFrame based on QTestLib.

        * WebKit.pro: Add WebKit/qt/tests to the build.

2008-08-06  Marco Barisione  <marco.barisione@collabora.co.uk>

        Reviewed by Eric Seidel.

        http://bugs.webkit.org/show_bug.cgi?id=20276
        [GTK] Makefile rules for the enum GTypes files depend on Makefile
        instead of GNUmakefile

        The patch committed in revision 34649 added the code needed to
        generate GTypes for enums but the makefile rules for
        stamp-webkitenumtypes.h and webkitenumtypes.cpp were depending on
        Makefile (used by other ports) instead of GNUmakefile.

        * GNUmakefile.am: Depend on GNUmakefile instead of Makefile.

2008-08-05  Marco Barisione  <marco.barisione@collabora.co.uk>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=19045
        [gtk] ./configure doesn't check for x toolkit availability

        Check for the .pc file for Xt instead of hard coding -lXt in the
        GNUmakefile.am.

        Thanks to Dominik Röttsches for the initial patch.

        * GNUmakefile.am:
        * configure.ac:

2008-07-30  Marco Barisione  <marco.barisione@collabora.co.uk>

        Reviewed by Holger.

        http://bugs.webkit.org/show_bug.cgi?id=19742
        [GTK] Auto generate webkitmarshal.list

        Auto generate webkitmarshal.list from source files to reduce the
        number of conflicts when merging git branches or when applying
        patches.
        Also rename webkit-marshal.* to webkitmarshal.* for consistency.

        * GNUmakefile.am:

2008-07-25  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Mark Rowe.

        Copy the way Gtk detects jpeglib. Hinted by Wouter Bolsterlee.

        [Gtk] Improve detection jpeglib
        https://bugs.webkit.org/show_bug.cgi?id=17865

        * GNUmakefile.am:
        * configure.ac:

2008-07-25  Simon Hausmann  <hausmann@webkit.org>

        Discussed with and rubber-stamped by Lars.

        Fix the build system for the Qt port.

        Recent JavaScriptCore changes require the addition of JavaScriptCore/API to the
        include search path. With a build process that combines JavaScriptCore and
        WebCore in one build process/Makefile the existance of
        JavaScriptCore/API/Node.h and WebCore/dom/Node.h causes include conflicts.

        This commit solves this by introducing a separate build of JavaScriptCore into
        a static library.

        As a result of the split-up a race-condition due to broken dependencies of
        regular source files to header files of generated sources showed up very
        frequently when doing parallel builds (which the buildbot does). This commit at
        the same time tries to address the dependency problem by making the
        addExtraCompiler() function also generate a pseudo extra compiler that
        represents the header file output, so that qmake is aware of the creation of
        the header file for dependency calculation.

        At the same time I removed a lot of cruft from the pro files to ease maintenance.

        * WebKit.pri:
        * WebKit.pro:

2008-06-18  Marco Barisione  <marco.barisione@collabora.co.uk>

        Reviewed by Alp Toker.

        https://bugs.webkit.org/show_bug.cgi?id=19171
        [GTK] GTypes for enumerations

        Generate GTypes for public enumerations so they can be used as
        properties.

        * GNUmakefile.am: Generate webkit-enum-types.cpp and
        webkit-enum-types.h.

2008-06-16  Simon Hausmann  <hausmann@webkit.org>

        Fix the Qt build. testkjs.pro is now called jsc.pro.

        * WebKit.pro:

2008-06-15  Alp Toker  <alp@nuanti.com>

        Rubber-stamped by Maciej.

        Install 'jsc' application by default.

        * GNUmakefile.am:

2008-06-08  Alp Toker  <alp@nuanti.com>

        autotools/GTK+ build system cleanup. Don't include WebKit API in the
        WebCore build as it's no longer needed since r34426.

        * GNUmakefile.am:

2008-06-08  Alp Toker  <alp@nuanti.com>

        Rubber-stamped by Mark Rowe.

        Bring back -fstrict-aliasing for JavaScriptCore which was removed in
        r31821, since aliasing issues have now been fixed.

        Use -O3, not -O2 for the JavaScriptCore build.

        * GNUmakefile.am:
        * configure.ac:

2008-06-05  Christian Dywan  <christian@twotoasts.de>

        Reviewed by Alp Toker.

        https://bugs.webkit.org/show_bug.cgi?id=14141
        Please add a version to the Gtk port

        * GNUmakefile.am:

2008-06-02  Alp Toker  <alp@nuanti.com>

        GTK+/autotools Windows build system fixes.

        * GNUmakefile.am:
        * configure.ac:

2008-06-02  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Alp Toker.

        Build WebCore GTK+ sources as part of WebCore, not WebKit.
        Split common and GTK+-specific sources into separate file lists.

        * GNUmakefile.am:

2008-06-01  Josh Triplett  <josh@freedesktop.org>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16891
        [GTK] autotools build is slow

        Add dolt revision 5e9eef10 to the autotools build system. Speeds up
        the build, often by a factor of two or more on supported platforms,
        otherwise falls back to libtool.

        See http://dolt.freedesktop.org for details.

        * acinclude.m4: Added.
        * configure.ac:

2008-05-25  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=19142
        [Gtk] Remove build options --svg-experimental and --cross-document-messaging

        * configure.ac:

2008-05-24  Alp Toker  <alp@nuanti.com>

        GTK+/Win32 build fixes. Link against Windows ICU without using
        icu-config since it's not available on that platform.

        Link against Ws2_32 when the curl http backend is chosen since we
        use select() directly.

        * configure.ac:

2008-05-23  Alp Toker  <alp@nuanti.com>

        GTK+ fixes for building without database support.

        * configure.ac:

2008-05-20  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Alp Toker.

        Fix for previous autotools change.

        * configure.ac:

2008-05-20  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Alp.

        http://bugs.webkit.org/show_bug.cgi?id=18483
        [Gtk] Autotools should match build-webkit default flags

        * configure.ac:

2008-05-19  Alp Toker  <alp@nuanti.com>

        GTK+ build fix for Mac/Win. Don't check for FreeType/FontConfig when
        the Pango font backend is selected.

        * GNUmakefile.am:
        * configure.ac:

2008-05-16  Julien Chaffraix  <jchaffraix@webkit.org>

        Reviewed by Eric.

        Preparatory work for bug 9191: JS*ElementWrapperFactory should be autogenerated

        * configure.ac: Add HTML_FLAGS and set it when video is enabled.

2008-05-15  Ariya Hidayat  <ariya.hidayat@trolltech.com>

        Reviewed by Simon.

        Since WebKitGtk is fully using autotools now, clean-up the .pro/.pri files
        from gtk-port.

        * WebKit.pri:
        * WebKit.pro:

2008-05-09  Anders Carlsson  <andersca@apple.com>

        Reviewed by Mark.

        Add x86_64 rule.

        * Makefile:

2008-05-09  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger.

        Removed explicit linkage against libxml and libxslt on Qt/Mac builds.

        This dependency is completely unnecessary here and creates only problems by
        propagating through WebCore.pro over libQtWebKit.prl right now customer
        applications.


        * WebKit.pri:

2008-05-02  Anders Carlsson  <andersca@apple.com>

        Reviewed by Mark.

        Add an "x86_64" make rule.

        * Makefile.shared:

2008-05-02  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Eric.

        https://bugs.webkit.org/show_bug.cgi?id=18811
        Enable dashboard and offline web apps in autotools

        * configure.ac:

2008-05-01  Marc Ordinas i Llopis  <marc.ordinasillopis@collabora.co.uk>

        Reviewed by Alp Toker.

        https://bugs.webkit.org/show_bug.cgi?id=14750
        Added support for NPAPI plugins on Gtk and Qt-x11 ports.

        * GNUmakefile.am: Added Xt library.

2008-04-29  David Kilzer  <ddkilzer@apple.com>

        BUILD FIX for ENABLE(DASHBOARD_SUPPORT)

        * configure.ac: Added conditional for ENABLE_DASHBOARD_SUPPORT.

2008-04-22  Alp Toker  <alp@nuanti.com>

        GTK+ debug build fix for changes in r32257.

        * GNUmakefile.am:

2008-04-18  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16620
        [GTK] Autotools make dist and make check support

        Cleanups.

        * GNUmakefile.am:

2008-04-11  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Antti Koivisto.

        * GNUmakefile.am: Disable a warning that GCC 4.3 triggers all over the show.

2008-04-17  Alp Toker  <alp@atoker.com>

        GTK+ build fix. Back out the libjpeg check part of r32008 from bug
        #17865 (reopened).

        * configure.ac:

2008-04-17  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=17865
        [Gtk] Improve detection of jpeglib and glib tools

        Improve detecting jpeglib and glib tools

        * configure.ac: Throw an error if the dependencies above are
        currently not installed

2008-04-14  Xan Lopez  <xan@gnome.org>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=17917
        Bug 17917: Cookie support for HTTP soup backend

        Bumped the libsoup required version to 2.23 for cookie support.

        * configure.ac:

2008-04-11  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Anders Carlsson.

        Fix https://bugs.webkit.org/show_bug.cgi?id=18430
        Bug 18430: SIGSEGV on amd64 when built with gcc 4.3

        GCC 4.3 generates bad code in some instances when working with our HashTables
        as some of the HashTable code violates the strict aliasing requirements.  Since
        GCC 4.2 this code has generated warnings when -fstrict-aliasing is enabled. Until
        the code can be fixed to be safe with strict aliasing enabled, we will disable
        strict aliasing.

        * GNUmakefile.am:

2008-03-12  Michael Emmel  <mike.emmel@gmail.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=18397
        Fix leaving spaces before parens in functions

        * WebKitTools/Scripts/wkstyle:

2008-04-07  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Build fix, rubber-stamped and landed by ap.

        * configure.ac: Add autoconf flag for HTML5 client-side session and persistent storage support.

2008-03-21  Rodney Dawes  <dobey@wayofthemonkey.com>

        Reviewed by Holger.

        Remove the JSCore include path options from global_cppflags.
        Place JSCore include path options in javascriptcore_cppflags.
        Add javascriptcore_cppflags to libWebCore_la_CPPFLAGS.

        * GNUmakefile.am:

2008-03-20  Jasper Bryant-Greene  <jasper@unix.geek.nz>

        Reviewed by Anders.

        Resolves http://bugs.webkit.org/show_bug.cgi?id=16092
        "[GTK] Middle-mouse click should allow opening a URL in a new tab"

        Added WebKitNavigationAction object to GTK API

        * GNUmakefile.am:

2008-03-12  Xan Lopez  <xan@gnome.org>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=15229

        Add optional font backend support with freetype and pango
        backends. Default is freetype for now.

        Original patch by Sven Herzberg <sven@imendio.com>

        * configure.ac:

2008-03-11  Xan Lopez  <xan@gnome.org>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16476

        Add support for multiple http backends, and add soup backend (off by default).

        * GNUmakefile.am:
        * configure.ac:

2008-03-07  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Darin Adler.

        Done with Lars.

        Added plugins subdirectory to the include path.

        * WebKit.pri:

2008-03-09  Alp Toker  <alp@atoker.com>

        GTK+ build fix for r30913.

        Use UNICODE_CFLAGS for C++ sources as well as C sources.

        * GNUmakefile.am:

2008-03-09  Jörg Billeter  <j@bitron.ch>

        Reviewed by Alp Toker.

        Conditionalise ICU for Unicode in the GTK+ port.

        * GNUmakefile.am:
        * configure.ac:

2008-03-03  Brent Fulgham  <bfulgham@gmail.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=17644
        Build GTK on Mac OS X using native ICU library

        Use Apple native ICU libraries when building GTK
        webkit on Mac OS.

        * configure.ac:

2008-03-02  Brent Fulgham  <bfulgham@gmail.com>

        Reviewed by Alp Toker.

        Add ICU_CPPFLAGS earlier in include path for WebCore
        so that we find $(icu_cppflags)/unicode/utf8.h, rather than
        the wtf/unicode/UTF8.h on case-insensitive file systems.

        * GNUmakefile.am:

2008-03-02  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Split the WebKit GTK+ build out of the WebCore build and change the
        shared object name to match the package name.

        * GNUmakefile.am:

2008-02-28  Alp Toker  <alp@atoker.com>

        Fix a configure script typo spotted by Kalle Vahlman.

        * configure.ac:

2008-02-26  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin Adler.

        Add "64" and "64u" make rules to allow easy building of 64-bit versions.

        make 64: will build Intel-only 64-bit.
        make 64u: will build 4-way universal for PPC and Intel.

        * Makefile:
        * Makefile.shared:

2008-02-23  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Rubber stamped by Darin Adler.

        Add separator '\' after libJavaScriptCore_la_LIBADD and cleanup
        whitespaces introduced in the previous commit.

        * GNUmakefile.am:

2008-02-23  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Rubber-stamped by Darin Adler.

        * GNUmakefile.am: Add both GLOBALDEPS and WEBKITDEPS instead of DEPENDENCIES.
        * configure.ac: Break dependent modules into GLOBALDEPS and WEBKITDEPS.

2008-02-21  Alp Toker  <alp@atoker.com>

        Fix a configure script typo.

        * configure.ac:

2008-02-21  Alp Toker  <alp@atoker.com>

        GTK+/autotools SVG experimental build fix

        Don't enable SVG filters in --enable-svg-experimental.

        This feature isn't supported at all yet. Developers can enable it
        explicitly by passing --enable-svg-filters if needed.

        * configure.ac:

2008-02-21  Mike Auty  <mike.auty@gmail.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=17445
        [GTK] WebKit doesn't compile with LDFLAGS="-Wl,--as-needed"

        The GNUmakefile.am files make use of the LDFLAGS variable to include library
        additions such as -ljpeg etc.  Unfortunately, if these inclusions aren't made
        in LIBADD/LDADD variables, then they are mis-ordered during the linking.

        The as-needed flag discards libraries whose functions have not been needed by
        earlier libraries, which therefore makes the ordering important.

        This moves all -l library inclusion statements from LDFLAGS variables to
        LIBADD/LDADD variables.

        * GNUmakefile.am:

2008-02-15  Alp Toker  <alp@atoker.com>

        Reviewed by Holger.

        GTK+ configure script cleanups

        Categorize the configuration summary printout.
        Bump GTK+ requirement to 2.8.
        Rename 'webkit_target' to just 'target'.
        Don't check for pthread on Win32.

        * configure.ac:

2008-02-14  Adam Roben  <aroben@apple.com>

        Turn on cross-document messaging support by default

        Reviewed by Darin Adler.

        * configure.ac:

2008-02-14  Adam Roben  <aroben@apple.com>

        Conditionalize cross-document messaging support

        The cross-document messaging parts of HTML 5 are in flux and we want
        ports to be able to turn off the support as needed.

        Note that the support is turned off by default right now. A subsequent
        commit will turn it on by default.

        Reviewed by Darin Adler.

        * configure.ac:

2008-02-12  Rodney Dawes  <dobey@wayofthemonkey.com>

        Reviewed by Alp Toker.

        Add a --with-hildon argument to configure.ac for adding MAEMO_CHANGES
        to the CPPFLAGS for WebCore and WebKit
        Add a pkgconfig check for hildon-1 when --with-hildon specified
        Output the use of Hildon support in the summary
        Add HILDON_CPPFLAGS to webkitgtk_cppflags
        Add HILDON_CFLAGS to libWebKitGtk_la_CFLAGS
        Add HILDON_LIBS to libWebKitGtk_la_LDFLAGS

        * configure.ac:
        * GNUmakefile.am:

2008-02-08  Alp Toker  <alp@atoker.com>

        Rubber-stamped by Maciej.

        Bump autoconf CAIRO_REQUIRED_VERSION up to 1.4.

        * configure.ac:

2008-02-06  Timothy Hatcher  <timothy@apple.com>

        Rubber-stamped by Mark Rowe.

        Dump of bugs.webkit.org's Bugzilla instance.

        * BugsSite: Added.
        * BugsSite/.htaccess: Added.
        * BugsSite/Bugzilla: Added.
        * BugsSite/Bugzilla.pm: Added.
        * BugsSite/Bugzilla/.cvsignore: Added.
        * BugsSite/Bugzilla/.htaccess: Added.
        * BugsSite/Bugzilla/Attachment.pm: Added.
        * BugsSite/Bugzilla/Auth: Added.
        * BugsSite/Bugzilla/Auth.pm: Added.
        * BugsSite/Bugzilla/Auth/Login: Added.
        * BugsSite/Bugzilla/Auth/Login/WWW: Added.
        * BugsSite/Bugzilla/Auth/Login/WWW.pm: Added.
        * BugsSite/Bugzilla/Auth/Login/WWW/CGI: Added.
        * BugsSite/Bugzilla/Auth/Login/WWW/CGI.pm: Added.
        * BugsSite/Bugzilla/Auth/Login/WWW/CGI/Cookie.pm: Added.
        * BugsSite/Bugzilla/Auth/Login/WWW/Env.pm: Added.
        * BugsSite/Bugzilla/Auth/README: Added.
        * BugsSite/Bugzilla/Auth/Verify: Added.
        * BugsSite/Bugzilla/Auth/Verify/DB.pm: Added.
        * BugsSite/Bugzilla/Auth/Verify/LDAP.pm: Added.
        * BugsSite/Bugzilla/Bug.pm: Added.
        * BugsSite/Bugzilla/BugMail.pm: Added.
        * BugsSite/Bugzilla/CGI.pm: Added.
        * BugsSite/Bugzilla/Chart.pm: Added.
        * BugsSite/Bugzilla/Config.pm: Added.
        * BugsSite/Bugzilla/Constants.pm: Added.
        * BugsSite/Bugzilla/DB: Added.
        * BugsSite/Bugzilla/DB.pm: Added.
        * BugsSite/Bugzilla/DB/Mysql.pm: Added.
        * BugsSite/Bugzilla/DB/Pg.pm: Added.
        * BugsSite/Bugzilla/DB/Schema: Added.
        * BugsSite/Bugzilla/DB/Schema.pm: Added.
        * BugsSite/Bugzilla/DB/Schema/Mysql.pm: Added.
        * BugsSite/Bugzilla/DB/Schema/Pg.pm: Added.
        * BugsSite/Bugzilla/Error.pm: Added.
        * BugsSite/Bugzilla/Flag.pm: Added.
        * BugsSite/Bugzilla/FlagType.pm: Added.
        * BugsSite/Bugzilla/Group.pm: Added.
        * BugsSite/Bugzilla/Search.pm: Added.
        * BugsSite/Bugzilla/Series.pm: Added.
        * BugsSite/Bugzilla/Template: Added.
        * BugsSite/Bugzilla/Template.pm: Added.
        * BugsSite/Bugzilla/Template/Plugin: Added.
        * BugsSite/Bugzilla/Template/Plugin/Bugzilla.pm: Added.
        * BugsSite/Bugzilla/Template/Plugin/Hook.pm: Added.
        * BugsSite/Bugzilla/Template/Plugin/User.pm: Added.
        * BugsSite/Bugzilla/Token.pm: Added.
        * BugsSite/Bugzilla/User: Added.
        * BugsSite/Bugzilla/User.pm: Added.
        * BugsSite/Bugzilla/User/Setting.pm: Added.
        * BugsSite/Bugzilla/Util.pm: Added.
        * BugsSite/CGI.pl: Added.
        * BugsSite/PrettyPatch: Added.
        * BugsSite/PrettyPatch/PrettyPatch.rb: Added.
        * BugsSite/PrettyPatch/prettify.rb: Added.
        * BugsSite/QUICKSTART: Added.
        * BugsSite/README: Added.
        * BugsSite/UPGRADING: Added.
        * BugsSite/UPGRADING-pre-2.8: Added.
        * BugsSite/ant.jpg: Added.
        * BugsSite/attachment-aroben.cgi: Added.
        * BugsSite/attachment.cgi: Added.
        * BugsSite/buglist.cgi: Added.
        * BugsSite/bugzilla.dtd: Added.
        * BugsSite/chart.cgi: Added.
        * BugsSite/checksetup.pl: Added.
        * BugsSite/colchange.cgi: Added.
        * BugsSite/collectstats.pl: Added.
        * BugsSite/config.cgi: Added.
        * BugsSite/contrib: Added.
        * BugsSite/contrib/BugzillaEmail.pm: Added.
        * BugsSite/contrib/README: Added.
        * BugsSite/contrib/README.Mailif: Added.
        * BugsSite/contrib/bug_email.pl: Added.
        * BugsSite/contrib/bugmail_help.html: Added.
        * BugsSite/contrib/bugzilla-submit: Added.
        * BugsSite/contrib/bugzilla-submit/README: Added.
        * BugsSite/contrib/bugzilla-submit/bugdata.txt: Added.
        * BugsSite/contrib/bugzilla-submit/bugzilla-submit: Added.
        * BugsSite/contrib/bugzilla-submit/bugzilla-submit.xml: Added.
        * BugsSite/contrib/bugzilla.procmailrc: Added.
        * BugsSite/contrib/bugzilla_email_append.pl: Added.
        * BugsSite/contrib/bugzilla_ldapsync.rb: Added.
        * BugsSite/contrib/bzdbcopy.pl: Added.
        * BugsSite/contrib/cmdline: Added.
        * BugsSite/contrib/cmdline/bugcount: Added.
        * BugsSite/contrib/cmdline/bugids: Added.
        * BugsSite/contrib/cmdline/buglist: Added.
        * BugsSite/contrib/cmdline/bugs: Added.
        * BugsSite/contrib/cmdline/bugslink: Added.
        * BugsSite/contrib/cmdline/makequery: Added.
        * BugsSite/contrib/cmdline/query.conf: Added.
        * BugsSite/contrib/cvs-update.pl: Added.
        * BugsSite/contrib/gnats2bz.pl: Added.
        * BugsSite/contrib/gnatsparse: Added.
        * BugsSite/contrib/gnatsparse/README: Added.
        * BugsSite/contrib/gnatsparse/gnatsparse.py: Added.
        * BugsSite/contrib/gnatsparse/magic.py: Added.
        * BugsSite/contrib/gnatsparse/specialuu.py: Added.
        * BugsSite/contrib/jb2bz.py: Added.
        * BugsSite/contrib/mysqld-watcher.pl: Added.
        * BugsSite/contrib/sendbugmail.pl: Added.
        * BugsSite/contrib/sendunsentbugmail.pl: Added.
        * BugsSite/contrib/syncLDAP.pl: Added.
        * BugsSite/contrib/yp_nomail.sh: Added.
        * BugsSite/createaccount.cgi: Added.
        * BugsSite/data: Added.
        * BugsSite/data/.htaccess: Added.
        * BugsSite/data/attachments: Added.
        * BugsSite/data/attachments/.htaccess: Added.
        * BugsSite/data/duplicates: Added.
        * BugsSite/data/mail: Added.
        * BugsSite/data/mimedump-tmp: Added.
        * BugsSite/data/mining: Added.
        * BugsSite/data/nomail: Added.
        * BugsSite/data/params: Added.
        * BugsSite/data/template: Added.
        * BugsSite/data/template/template: Added.
        * BugsSite/data/template/template/en: Added.
        * BugsSite/data/template/template/en/custom: Added.
        * BugsSite/data/template/template/en/custom/account: Added.
        * BugsSite/data/template/template/en/custom/account/auth: Added.
        * BugsSite/data/template/template/en/custom/account/auth/ldap-error.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/account/auth/login-small.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/account/auth/login.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/account/cancel-token.txt.tmpl: Added.
        * BugsSite/data/template/template/en/custom/account/create.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/account/created.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/account/email: Added.
        * BugsSite/data/template/template/en/custom/account/email/change-new.txt.tmpl: Added.
        * BugsSite/data/template/template/en/custom/account/email/change-old.txt.tmpl: Added.
        * BugsSite/data/template/template/en/custom/account/email/confirm.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/account/exists.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/account/password: Added.
        * BugsSite/data/template/template/en/custom/account/password/forgotten-password.txt.tmpl: Added.
        * BugsSite/data/template/template/en/custom/account/password/set-forgotten-password.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/account/prefs: Added.
        * BugsSite/data/template/template/en/custom/account/prefs/account.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/account/prefs/email.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/account/prefs/footer.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/account/prefs/permissions.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/account/prefs/prefs.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/account/prefs/saved-searches.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/account/prefs/settings.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin: Added.
        * BugsSite/data/template/template/en/custom/admin/classifications: Added.
        * BugsSite/data/template/template/en/custom/admin/classifications/add.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/classifications/del.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/classifications/delete.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/classifications/edit.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/classifications/new.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/classifications/reclassify.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/classifications/select.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/classifications/update.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/components: Added.
        * BugsSite/data/template/template/en/custom/admin/components/confirm-delete.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/components/create.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/components/created.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/components/deleted.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/components/edit.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/components/footer.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/components/list.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/components/select-product.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/components/updated.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/fieldvalues: Added.
        * BugsSite/data/template/template/en/custom/admin/fieldvalues/confirm-delete.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/fieldvalues/create.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/fieldvalues/created.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/fieldvalues/deleted.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/fieldvalues/edit.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/fieldvalues/footer.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/fieldvalues/list.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/fieldvalues/select-field.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/fieldvalues/updated.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/flag-type: Added.
        * BugsSite/data/template/template/en/custom/admin/flag-type/confirm-delete.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/flag-type/edit.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/flag-type/list.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/groups: Added.
        * BugsSite/data/template/template/en/custom/admin/groups/change.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/groups/create.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/groups/created.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/groups/delete.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/groups/deleted.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/groups/edit.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/groups/list.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/groups/remove.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/keywords: Added.
        * BugsSite/data/template/template/en/custom/admin/keywords/confirm-delete.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/keywords/create.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/keywords/created.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/keywords/edit.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/keywords/list.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/keywords/rebuild-cache.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/milestones: Added.
        * BugsSite/data/template/template/en/custom/admin/milestones/confirm-delete.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/milestones/create.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/milestones/created.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/milestones/deleted.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/milestones/edit.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/milestones/footer.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/milestones/list.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/milestones/select-product.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/milestones/updated.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/products: Added.
        * BugsSite/data/template/template/en/custom/admin/products/confirm-delete.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/products/deleted.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/products/footer.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/products/groupcontrol: Added.
        * BugsSite/data/template/template/en/custom/admin/products/groupcontrol/confirm-edit.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/products/groupcontrol/edit.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/products/list-classifications.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/products/list.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/settings: Added.
        * BugsSite/data/template/template/en/custom/admin/settings/edit.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/settings/updated.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/table.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/users: Added.
        * BugsSite/data/template/template/en/custom/admin/users/confirm-delete.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/users/create.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/users/edit.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/users/list.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/users/listselectvars.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/users/search.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/users/userdata.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/versions: Added.
        * BugsSite/data/template/template/en/custom/admin/versions/confirm-delete.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/versions/create.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/versions/created.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/versions/deleted.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/versions/edit.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/versions/footer.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/versions/list.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/versions/select-product.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/admin/versions/updated.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/attachment: Added.
        * BugsSite/data/template/template/en/custom/attachment/choose.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/attachment/content-types.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/attachment/create.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/attachment/created.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/attachment/diff-file.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/attachment/diff-footer.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/attachment/diff-header.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/attachment/edit.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/attachment/list.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/attachment/show-multiple.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/attachment/updated.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug: Added.
        * BugsSite/data/template/template/en/custom/bug/activity: Added.
        * BugsSite/data/template/template/en/custom/bug/activity/show.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/activity/table.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/choose.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/comments.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/create: Added.
        * BugsSite/data/template/template/en/custom/bug/create/comment-guided.txt.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/create/comment.txt.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/create/create-guided.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/create/create.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/create/created.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/create/make-template.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/create/user-message.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/dependency-graph.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/dependency-tree.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/edit.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/knob.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/navigate.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/process: Added.
        * BugsSite/data/template/template/en/custom/bug/process/bugmail.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/process/confirm-duplicate.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/process/header.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/process/midair.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/process/next.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/process/results.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/process/verify-new-product.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/show-multiple.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/show.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/show.xml.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/summarize-time.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/time.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/votes: Added.
        * BugsSite/data/template/template/en/custom/bug/votes/delete-all.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/votes/list-for-bug.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/bug/votes/list-for-user.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/config.js.tmpl: Added.
        * BugsSite/data/template/template/en/custom/config.rdf.tmpl: Added.
        * BugsSite/data/template/template/en/custom/flag: Added.
        * BugsSite/data/template/template/en/custom/flag/list.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global: Added.
        * BugsSite/data/template/template/en/custom/global/banner.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/choose-classification.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/choose-product.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/code-error.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/confirm-user-match.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/field-descs.none.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/footer.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/header.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/help-header.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/help.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/hidden-fields.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/initialize.none.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/message.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/messages.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/select-menu.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/setting-descs.none.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/site-navigation.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/useful-links.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/user-error.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/userselect.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/global/variables.none.tmpl: Added.
        * BugsSite/data/template/template/en/custom/index.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/list: Added.
        * BugsSite/data/template/template/en/custom/list/change-columns.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/list/edit-multiple.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/list/list-simple.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/list/list.csv.tmpl: Added.
        * BugsSite/data/template/template/en/custom/list/list.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/list/list.ics.tmpl: Added.
        * BugsSite/data/template/template/en/custom/list/list.js.tmpl: Added.
        * BugsSite/data/template/template/en/custom/list/list.rdf.tmpl: Added.
        * BugsSite/data/template/template/en/custom/list/list.rss.tmpl: Added.
        * BugsSite/data/template/template/en/custom/list/quips.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/list/server-push.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/list/table.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/pages: Added.
        * BugsSite/data/template/template/en/custom/pages/bug-writing.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/pages/fields.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/pages/linked.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/pages/linkify.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/pages/voting.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports: Added.
        * BugsSite/data/template/template/en/custom/reports/chart.csv.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/chart.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/chart.png.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/components.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/create-chart.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/duplicates-simple.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/duplicates-table.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/duplicates.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/duplicates.rdf.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/edit-series.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/keywords.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/menu.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/report-bar.png.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/report-line.png.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/report-pie.png.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/report-simple.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/report-table.csv.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/report-table.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/report.csv.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/report.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/series-common.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/reports/series.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/request: Added.
        * BugsSite/data/template/template/en/custom/request/email.txt.tmpl: Added.
        * BugsSite/data/template/template/en/custom/request/queue.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/search: Added.
        * BugsSite/data/template/template/en/custom/search/boolean-charts.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/search/form.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/search/knob.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/search/search-advanced.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/search/search-create-series.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/search/search-help.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/search/search-report-graph.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/search/search-report-select.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/search/search-report-table.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/search/search-specific.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/search/tabs.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/sidebar.xul.tmpl: Added.
        * BugsSite/data/template/template/en/custom/whine: Added.
        * BugsSite/data/template/template/en/custom/whine/mail.html.tmpl: Added.
        * BugsSite/data/template/template/en/custom/whine/mail.txt.tmpl: Added.
        * BugsSite/data/template/template/en/custom/whine/multipart-mime.txt.tmpl: Added.
        * BugsSite/data/template/template/en/custom/whine/schedule.html.tmpl: Added.
        * BugsSite/data/template/template/en/default: Added.
        * BugsSite/data/template/template/en/default/attachment: Added.
        * BugsSite/data/template/template/en/default/attachment/edit-aroben.html.tmpl: Added.
        * BugsSite/data/template/template/en/default/list: Added.
        * BugsSite/data/template/template/en/default/list/list.atom.tmpl: Added.
        * BugsSite/data/versioncache: Added.
        * BugsSite/data/versioncache.13P9L: Added.
        * BugsSite/data/versioncache.1lH1E: Added.
        * BugsSite/data/versioncache.3AnHd: Added.
        * BugsSite/data/versioncache.3Jmjt: Added.
        * BugsSite/data/versioncache.3JzIL: Added.
        * BugsSite/data/versioncache.77b4y: Added.
        * BugsSite/data/versioncache.7VzyU: Added.
        * BugsSite/data/versioncache.EQdAm: Added.
        * BugsSite/data/versioncache.EouAG: Added.
        * BugsSite/data/versioncache.LJ5n1: Added.
        * BugsSite/data/versioncache.Lb0fW: Added.
        * BugsSite/data/versioncache.PyAd8: Added.
        * BugsSite/data/versioncache.SFyse: Added.
        * BugsSite/data/versioncache.SkTTg: Added.
        * BugsSite/data/versioncache.VVO7E: Added.
        * BugsSite/data/versioncache.XbxgU: Added.
        * BugsSite/data/versioncache.Yezqr: Added.
        * BugsSite/data/versioncache.dtzIv: Added.
        * BugsSite/data/versioncache.jzpeh: Added.
        * BugsSite/data/versioncache.pbn6U: Added.
        * BugsSite/data/versioncache.qyixS: Added.
        * BugsSite/data/versioncache.sBMdb: Added.
        * BugsSite/data/versioncache.xNi34: Added.
        * BugsSite/data/webdot: Added.
        * BugsSite/data/webdot/.htaccess: Added.
        * BugsSite/data/webdot/0ZLH3QpFd8.dot: Added.
        * BugsSite/data/webdot/3s6e7eC2Dy.dot: Added.
        * BugsSite/data/webdot/6MW0q54cyY.dot: Added.
        * BugsSite/data/webdot/A2RlhPdO2Q.dot: Added.
        * BugsSite/data/webdot/DuBX4I4946.dot: Added.
        * BugsSite/data/webdot/GudTgvrKBX.dot: Added.
        * BugsSite/data/webdot/I1mCbLtAzQ.dot: Added.
        * BugsSite/data/webdot/JtKgvWGVb4.dot: Added.
        * BugsSite/data/webdot/RFk4bjAwYc.dot: Added.
        * BugsSite/data/webdot/YQ1pWFVfqt.dot: Added.
        * BugsSite/data/webdot/YcFUepShZI.dot: Added.
        * BugsSite/data/webdot/a9i00KgTQk.dot: Added.
        * BugsSite/data/webdot/c412GYaHch.dot: Added.
        * BugsSite/data/webdot/hjYnYr3tV1.dot: Added.
        * BugsSite/data/webdot/pq3Qw7wynI.dot: Added.
        * BugsSite/data/webdot/tL7GjA7bqH.dot: Added.
        * BugsSite/defparams.pl: Added.
        * BugsSite/describecomponents.cgi: Added.
        * BugsSite/describekeywords.cgi: Added.
        * BugsSite/describekeywords.cgi.bak: Added.
        * BugsSite/docs: Added.
        * BugsSite/docs/.cvsignore: Added.
        * BugsSite/docs/README.docs: Added.
        * BugsSite/docs/html: Added.
        * BugsSite/docs/html/Bugzilla-Guide.html: Added.
        * BugsSite/docs/html/about.html: Added.
        * BugsSite/docs/html/administration.html: Added.
        * BugsSite/docs/html/bug_page.html: Added.
        * BugsSite/docs/html/bugreports.html: Added.
        * BugsSite/docs/html/cmdline-bugmail.html: Added.
        * BugsSite/docs/html/cmdline.html: Added.
        * BugsSite/docs/html/components.html: Added.
        * BugsSite/docs/html/configuration.html: Added.
        * BugsSite/docs/html/conventions.html: Added.
        * BugsSite/docs/html/copyright.html: Added.
        * BugsSite/docs/html/credits.html: Added.
        * BugsSite/docs/html/cust-change-permissions.html: Added.
        * BugsSite/docs/html/cust-hooks.html: Added.
        * BugsSite/docs/html/cust-templates.html: Added.
        * BugsSite/docs/html/customization.html: Added.
        * BugsSite/docs/html/dbdoc.html: Added.
        * BugsSite/docs/html/dbmodify.html: Added.
        * BugsSite/docs/html/disclaimer.html: Added.
        * BugsSite/docs/html/extraconfig.html: Added.
        * BugsSite/docs/html/faq.html: Added.
        * BugsSite/docs/html/flags-overview.html: Added.
        * BugsSite/docs/html/flags.html: Added.
        * BugsSite/docs/html/general-advice.html: Added.
        * BugsSite/docs/html/gfdl-0.html: Added.
        * BugsSite/docs/html/gfdl-1.html: Added.
        * BugsSite/docs/html/gfdl-10.html: Added.
        * BugsSite/docs/html/gfdl-2.html: Added.
        * BugsSite/docs/html/gfdl-3.html: Added.
        * BugsSite/docs/html/gfdl-4.html: Added.
        * BugsSite/docs/html/gfdl-5.html: Added.
        * BugsSite/docs/html/gfdl-6.html: Added.
        * BugsSite/docs/html/gfdl-7.html: Added.
        * BugsSite/docs/html/gfdl-8.html: Added.
        * BugsSite/docs/html/gfdl-9.html: Added.
        * BugsSite/docs/html/gfdl-howto.html: Added.
        * BugsSite/docs/html/gfdl.html: Added.
        * BugsSite/docs/html/glossary.html: Added.
        * BugsSite/docs/html/groups.html: Added.
        * BugsSite/docs/html/hintsandtips.html: Added.
        * BugsSite/docs/html/index.html: Added.
        * BugsSite/docs/html/install-perlmodules-manual.html: Added.
        * BugsSite/docs/html/installation.html: Added.
        * BugsSite/docs/html/installing-bugzilla.html: Added.
        * BugsSite/docs/html/integration.html: Added.
        * BugsSite/docs/html/lifecycle.html: Added.
        * BugsSite/docs/html/list.html: Added.
        * BugsSite/docs/html/milestones.html: Added.
        * BugsSite/docs/html/modules-manual-download.html: Added.
        * BugsSite/docs/html/modules-manual-instructions.html: Added.
        * BugsSite/docs/html/modules-manual-optional.html: Added.
        * BugsSite/docs/html/myaccount.html: Added.
        * BugsSite/docs/html/newversions.html: Added.
        * BugsSite/docs/html/nonroot.html: Added.
        * BugsSite/docs/html/os-specific.html: Added.
        * BugsSite/docs/html/parameters.html: Added.
        * BugsSite/docs/html/paranoid-security.html: Added.
        * BugsSite/docs/html/patches.html: Added.
        * BugsSite/docs/html/patchviewer.html: Added.
        * BugsSite/docs/html/products.html: Added.
        * BugsSite/docs/html/query.html: Added.
        * BugsSite/docs/html/quips.html: Added.
        * BugsSite/docs/html/reporting.html: Added.
        * BugsSite/docs/html/security-bugzilla.html: Added.
        * BugsSite/docs/html/security-mysql.html: Added.
        * BugsSite/docs/html/security-os.html: Added.
        * BugsSite/docs/html/security-webserver.html: Added.
        * BugsSite/docs/html/security.html: Added.
        * BugsSite/docs/html/trbl-bundlebugzilla.html: Added.
        * BugsSite/docs/html/trbl-dbdsponge.html: Added.
        * BugsSite/docs/html/trbl-index.html: Added.
        * BugsSite/docs/html/trbl-passwd-encryption.html: Added.
        * BugsSite/docs/html/trbl-perlmodule.html: Added.
        * BugsSite/docs/html/trbl-relogin-everyone.html: Added.
        * BugsSite/docs/html/trbl-testserver.html: Added.
        * BugsSite/docs/html/trouble-filetemp.html: Added.
        * BugsSite/docs/html/troubleshooting.html: Added.
        * BugsSite/docs/html/upgrading.html: Added.
        * BugsSite/docs/html/useradmin.html: Added.
        * BugsSite/docs/html/userpreferences.html: Added.
        * BugsSite/docs/html/using-intro.html: Added.
        * BugsSite/docs/html/using.html: Added.
        * BugsSite/docs/html/versions.html: Added.
        * BugsSite/docs/html/voting.html: Added.
        * BugsSite/docs/html/whining.html: Added.
        * BugsSite/docs/html/x3190.html: Added.
        * BugsSite/docs/images: Added.
        * BugsSite/docs/images/bzLifecycle.png: Added.
        * BugsSite/docs/images/bzLifecycle.xml: Added.
        * BugsSite/docs/images/callouts: Added.
        * BugsSite/docs/images/callouts/1.gif: Added.
        * BugsSite/docs/images/callouts/2.gif: Added.
        * BugsSite/docs/images/callouts/3.gif: Added.
        * BugsSite/docs/images/caution.gif: Added.
        * BugsSite/docs/images/note.gif: Added.
        * BugsSite/docs/images/tip.gif: Added.
        * BugsSite/docs/images/warning.gif: Added.
        * BugsSite/docs/makedocs.pl: Added.
        * BugsSite/docs/pdf: Added.
        * BugsSite/docs/pdf/Bugzilla-Guide.pdf: Added.
        * BugsSite/docs/rel_notes.txt: Added.
        * BugsSite/docs/txt: Added.
        * BugsSite/docs/txt/Bugzilla-Guide.txt: Added.
        * BugsSite/docs/xml: Added.
        * BugsSite/docs/xml/Bugzilla-Guide.xml: Added.
        * BugsSite/docs/xml/about.xml: Added.
        * BugsSite/docs/xml/administration.xml: Added.
        * BugsSite/docs/xml/conventions.xml: Added.
        * BugsSite/docs/xml/customization.xml: Added.
        * BugsSite/docs/xml/dbschema.mysql: Added.
        * BugsSite/docs/xml/faq.xml: Added.
        * BugsSite/docs/xml/filetemp.patch: Added.
        * BugsSite/docs/xml/gfdl.xml: Added.
        * BugsSite/docs/xml/glossary.xml: Added.
        * BugsSite/docs/xml/index.xml: Added.
        * BugsSite/docs/xml/installation.xml: Added.
        * BugsSite/docs/xml/integration.xml: Added.
        * BugsSite/docs/xml/introduction.xml: Added.
        * BugsSite/docs/xml/modules.xml: Added.
        * BugsSite/docs/xml/patches.xml: Added.
        * BugsSite/docs/xml/requiredsoftware.xml: Added.
        * BugsSite/docs/xml/security.xml: Added.
        * BugsSite/docs/xml/troubleshooting.xml: Added.
        * BugsSite/docs/xml/using.xml: Added.
        * BugsSite/doeditparams.cgi: Added.
        * BugsSite/duplicates.cgi: Added.
        * BugsSite/duplicates.xul: Added.
        * BugsSite/editclassifications.cgi: Added.
        * BugsSite/editcomponents.cgi: Added.
        * BugsSite/editflagtypes.cgi: Added.
        * BugsSite/editgroups.cgi: Added.
        * BugsSite/editkeywords.cgi: Added.
        * BugsSite/editmilestones.cgi: Added.
        * BugsSite/editparams.cgi: Added.
        * BugsSite/editproducts.cgi: Added.
        * BugsSite/editsettings.cgi: Added.
        * BugsSite/editusers.cgi: Added.
        * BugsSite/editvalues.cgi: Added.
        * BugsSite/editversions.cgi: Added.
        * BugsSite/editwhines.cgi: Added.
        * BugsSite/enter_bug.cgi: Added.
        * BugsSite/favicon.ico: Added.
        * BugsSite/globals.pl: Added.
        * BugsSite/graphs: Added.
        * BugsSite/images: Added.
        * BugsSite/images/padlock.png: Added.
        * BugsSite/importxml.pl: Added.
        * BugsSite/index.cgi: Added.
        * BugsSite/js: Added.
        * BugsSite/js/duplicates.js: Added.
        * BugsSite/js/productform.js: Added.
        * BugsSite/localconfig.js: Added.
        * BugsSite/long_list.cgi: Added.
        * BugsSite/move.pl: Added.
        * BugsSite/page.cgi: Added.
        * BugsSite/post_bug.cgi: Added.
        * BugsSite/process_bug.cgi: Added.
        * BugsSite/productmenu.js: Added.
        * BugsSite/query.cgi: Added.
        * BugsSite/quicksearch.html: Added.
        * BugsSite/quicksearch.js: Added.
        * BugsSite/quicksearchhack.html: Added.
        * BugsSite/quips.cgi: Added.
        * BugsSite/relogin.cgi: Added.
        * BugsSite/report.cgi: Added.
        * BugsSite/reports.cgi: Added.
        * BugsSite/request.cgi: Added.
        * BugsSite/robots.txt: Added.
        * BugsSite/runtests.pl: Added.
        * BugsSite/sanitycheck.cgi: Added.
        * BugsSite/show_activity.cgi: Added.
        * BugsSite/show_bug.cgi: Added.
        * BugsSite/showattachment.cgi: Added.
        * BugsSite/showdependencygraph.cgi: Added.
        * BugsSite/showdependencytree.cgi: Added.
        * BugsSite/sidebar.cgi: Added.
        * BugsSite/skins: Added.
        * BugsSite/skins/.cvsignore: Added.
        * BugsSite/skins/custom: Added.
        * BugsSite/skins/custom/admin.css: Added.
        * BugsSite/skins/custom/buglist.css: Added.
        * BugsSite/skins/custom/duplicates.css: Added.
        * BugsSite/skins/custom/editusers.css: Added.
        * BugsSite/skins/custom/global.css: Added.
        * BugsSite/skins/custom/index.css: Added.
        * BugsSite/skins/custom/opendarwin.gif: Added.
        * BugsSite/skins/custom/panel.css: Added.
        * BugsSite/skins/custom/show_multiple.css: Added.
        * BugsSite/skins/custom/summarize-time.css: Added.
        * BugsSite/skins/custom/voting.css: Added.
        * BugsSite/skins/standard: Added.
        * BugsSite/skins/standard/admin.css: Added.
        * BugsSite/skins/standard/buglist.css: Added.
        * BugsSite/skins/standard/duplicates.css: Added.
        * BugsSite/skins/standard/editusers.css: Added.
        * BugsSite/skins/standard/global: Added.
        * BugsSite/skins/standard/global.css: Added.
        * BugsSite/skins/standard/global/body-back.gif: Added.
        * BugsSite/skins/standard/global/header.png: Added.
        * BugsSite/skins/standard/index: Added.
        * BugsSite/skins/standard/index.css: Added.
        * BugsSite/skins/standard/index/front.jpg: Added.
        * BugsSite/skins/standard/index/front.png: Added.
        * BugsSite/skins/standard/panel.css: Added.
        * BugsSite/skins/standard/show_multiple.css: Added.
        * BugsSite/skins/standard/summarize-time.css: Added.
        * BugsSite/skins/standard/voting.css: Added.
        * BugsSite/summarize_time.cgi: Added.
        * BugsSite/t: Added.
        * BugsSite/t/001compile.t: Added.
        * BugsSite/t/002goodperl.t: Added.
        * BugsSite/t/003safesys.t: Added.
        * BugsSite/t/004template.t: Added.
        * BugsSite/t/005no_tabs.t: Added.
        * BugsSite/t/006spellcheck.t: Added.
        * BugsSite/t/007util.t: Added.
        * BugsSite/t/008filter.t: Added.
        * BugsSite/t/009bugwords.t: Added.
        * BugsSite/t/011pod.t: Added.
        * BugsSite/t/Support: Added.
        * BugsSite/t/Support/Files.pm: Added.
        * BugsSite/t/Support/Systemexec.pm: Added.
        * BugsSite/t/Support/Templates.pm: Added.
        * BugsSite/t/testchart.gif: Added.
        * BugsSite/t/testchart.png: Added.
        * BugsSite/t/testgd.png: Added.
        * BugsSite/template: Added.
        * BugsSite/template/.cvsignore: Added.
        * BugsSite/template/.htaccess: Added.
        * BugsSite/template/en: Added.
        * BugsSite/template/en/.cvsignore: Added.
        * BugsSite/template/en/custom: Added.
        * BugsSite/template/en/custom/account: Added.
        * BugsSite/template/en/custom/account/auth: Added.
        * BugsSite/template/en/custom/account/auth/ldap-error.html.tmpl: Added.
        * BugsSite/template/en/custom/account/auth/login-small.html.tmpl: Added.
        * BugsSite/template/en/custom/account/auth/login.html.tmpl: Added.
        * BugsSite/template/en/custom/account/cancel-token.txt.tmpl: Added.
        * BugsSite/template/en/custom/account/create.html.tmpl: Added.
        * BugsSite/template/en/custom/account/created.html.tmpl: Added.
        * BugsSite/template/en/custom/account/email: Added.
        * BugsSite/template/en/custom/account/email/change-new.txt.tmpl: Added.
        * BugsSite/template/en/custom/account/email/change-old.txt.tmpl: Added.
        * BugsSite/template/en/custom/account/email/confirm.html.tmpl: Added.
        * BugsSite/template/en/custom/account/exists.html.tmpl: Added.
        * BugsSite/template/en/custom/account/password: Added.
        * BugsSite/template/en/custom/account/password/forgotten-password.txt.tmpl: Added.
        * BugsSite/template/en/custom/account/password/set-forgotten-password.html.tmpl: Added.
        * BugsSite/template/en/custom/account/prefs: Added.
        * BugsSite/template/en/custom/account/prefs/account.html.tmpl: Added.
        * BugsSite/template/en/custom/account/prefs/email.html.tmpl: Added.
        * BugsSite/template/en/custom/account/prefs/footer.html.tmpl: Added.
        * BugsSite/template/en/custom/account/prefs/permissions.html.tmpl: Added.
        * BugsSite/template/en/custom/account/prefs/prefs.html.tmpl: Added.
        * BugsSite/template/en/custom/account/prefs/saved-searches.html.tmpl: Added.
        * BugsSite/template/en/custom/account/prefs/settings.html.tmpl: Added.
        * BugsSite/template/en/custom/admin: Added.
        * BugsSite/template/en/custom/admin/classifications: Added.
        * BugsSite/template/en/custom/admin/classifications/add.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/classifications/del.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/classifications/delete.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/classifications/edit.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/classifications/new.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/classifications/reclassify.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/classifications/select.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/classifications/update.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/components: Added.
        * BugsSite/template/en/custom/admin/components/confirm-delete.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/components/create.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/components/created.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/components/deleted.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/components/edit.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/components/footer.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/components/list.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/components/select-product.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/components/updated.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/fieldvalues: Added.
        * BugsSite/template/en/custom/admin/fieldvalues/confirm-delete.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/fieldvalues/create.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/fieldvalues/created.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/fieldvalues/deleted.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/fieldvalues/edit.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/fieldvalues/footer.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/fieldvalues/list.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/fieldvalues/select-field.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/fieldvalues/updated.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/flag-type: Added.
        * BugsSite/template/en/custom/admin/flag-type/confirm-delete.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/flag-type/edit.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/flag-type/list.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/groups: Added.
        * BugsSite/template/en/custom/admin/groups/change.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/groups/create.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/groups/created.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/groups/delete.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/groups/deleted.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/groups/edit.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/groups/list.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/groups/remove.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/keywords: Added.
        * BugsSite/template/en/custom/admin/keywords/confirm-delete.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/keywords/create.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/keywords/created.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/keywords/edit.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/keywords/list.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/keywords/rebuild-cache.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/milestones: Added.
        * BugsSite/template/en/custom/admin/milestones/confirm-delete.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/milestones/create.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/milestones/created.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/milestones/deleted.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/milestones/edit.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/milestones/footer.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/milestones/list.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/milestones/select-product.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/milestones/updated.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/products: Added.
        * BugsSite/template/en/custom/admin/products/confirm-delete.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/products/deleted.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/products/footer.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/products/groupcontrol: Added.
        * BugsSite/template/en/custom/admin/products/groupcontrol/confirm-edit.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/products/groupcontrol/edit.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/products/list-classifications.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/products/list.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/settings: Added.
        * BugsSite/template/en/custom/admin/settings/edit.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/settings/updated.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/table.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/users: Added.
        * BugsSite/template/en/custom/admin/users/confirm-delete.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/users/create.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/users/edit.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/users/list.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/users/listselectvars.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/users/search.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/users/userdata.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/versions: Added.
        * BugsSite/template/en/custom/admin/versions/confirm-delete.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/versions/create.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/versions/created.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/versions/deleted.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/versions/edit.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/versions/footer.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/versions/list.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/versions/select-product.html.tmpl: Added.
        * BugsSite/template/en/custom/admin/versions/updated.html.tmpl: Added.
        * BugsSite/template/en/custom/attachment: Added.
        * BugsSite/template/en/custom/attachment/choose.html.tmpl: Added.
        * BugsSite/template/en/custom/attachment/content-types.html.tmpl: Added.
        * BugsSite/template/en/custom/attachment/create.html.tmpl: Added.
        * BugsSite/template/en/custom/attachment/created.html.tmpl: Added.
        * BugsSite/template/en/custom/attachment/diff-file.html.tmpl: Added.
        * BugsSite/template/en/custom/attachment/diff-footer.html.tmpl: Added.
        * BugsSite/template/en/custom/attachment/diff-header.html.tmpl: Added.
        * BugsSite/template/en/custom/attachment/edit.html.tmpl: Added.
        * BugsSite/template/en/custom/attachment/list.html.tmpl: Added.
        * BugsSite/template/en/custom/attachment/show-multiple.html.tmpl: Added.
        * BugsSite/template/en/custom/attachment/updated.html.tmpl: Added.
        * BugsSite/template/en/custom/bug: Added.
        * BugsSite/template/en/custom/bug/activity: Added.
        * BugsSite/template/en/custom/bug/activity/show.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/activity/table.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/choose.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/comments.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/create: Added.
        * BugsSite/template/en/custom/bug/create/comment-guided.txt.tmpl: Added.
        * BugsSite/template/en/custom/bug/create/comment.txt.tmpl: Added.
        * BugsSite/template/en/custom/bug/create/create-guided.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/create/create.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/create/created.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/create/make-template.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/create/user-message.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/dependency-graph.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/dependency-tree.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/edit.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/knob.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/navigate.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/process: Added.
        * BugsSite/template/en/custom/bug/process/bugmail.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/process/confirm-duplicate.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/process/header.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/process/midair.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/process/next.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/process/results.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/process/verify-new-product.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/show-multiple.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/show.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/show.xml.tmpl: Added.
        * BugsSite/template/en/custom/bug/summarize-time.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/time.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/votes: Added.
        * BugsSite/template/en/custom/bug/votes/delete-all.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/votes/list-for-bug.html.tmpl: Added.
        * BugsSite/template/en/custom/bug/votes/list-for-user.html.tmpl: Added.
        * BugsSite/template/en/custom/config.js.tmpl: Added.
        * BugsSite/template/en/custom/config.rdf.tmpl: Added.
        * BugsSite/template/en/custom/filterexceptions.pl: Added.
        * BugsSite/template/en/custom/flag: Added.
        * BugsSite/template/en/custom/flag/list.html.tmpl: Added.
        * BugsSite/template/en/custom/global: Added.
        * BugsSite/template/en/custom/global/banner.html.tmpl: Added.
        * BugsSite/template/en/custom/global/choose-classification.html.tmpl: Added.
        * BugsSite/template/en/custom/global/choose-product.html.tmpl: Added.
        * BugsSite/template/en/custom/global/code-error.html.tmpl: Added.
        * BugsSite/template/en/custom/global/confirm-user-match.html.tmpl: Added.
        * BugsSite/template/en/custom/global/field-descs.none.tmpl: Added.
        * BugsSite/template/en/custom/global/footer.html.tmpl: Added.
        * BugsSite/template/en/custom/global/header.html.tmpl: Added.
        * BugsSite/template/en/custom/global/help-header.html.tmpl: Added.
        * BugsSite/template/en/custom/global/help.html.tmpl: Added.
        * BugsSite/template/en/custom/global/hidden-fields.html.tmpl: Added.
        * BugsSite/template/en/custom/global/initialize.none.tmpl: Added.
        * BugsSite/template/en/custom/global/message.html.tmpl: Added.
        * BugsSite/template/en/custom/global/messages.html.tmpl: Added.
        * BugsSite/template/en/custom/global/select-menu.html.tmpl: Added.
        * BugsSite/template/en/custom/global/setting-descs.none.tmpl: Added.
        * BugsSite/template/en/custom/global/site-navigation.html.tmpl: Added.
        * BugsSite/template/en/custom/global/useful-links.html.tmpl: Added.
        * BugsSite/template/en/custom/global/user-error.html.tmpl: Added.
        * BugsSite/template/en/custom/global/userselect.html.tmpl: Added.
        * BugsSite/template/en/custom/global/variables.none.tmpl: Added.
        * BugsSite/template/en/custom/index.html.tmpl: Added.
        * BugsSite/template/en/custom/list: Added.
        * BugsSite/template/en/custom/list/change-columns.html.tmpl: Added.
        * BugsSite/template/en/custom/list/edit-multiple.html.tmpl: Added.
        * BugsSite/template/en/custom/list/list-simple.html.tmpl: Added.
        * BugsSite/template/en/custom/list/list.csv.tmpl: Added.
        * BugsSite/template/en/custom/list/list.html.tmpl: Added.
        * BugsSite/template/en/custom/list/list.ics.tmpl: Added.
        * BugsSite/template/en/custom/list/list.js.tmpl: Added.
        * BugsSite/template/en/custom/list/list.rdf.tmpl: Added.
        * BugsSite/template/en/custom/list/list.rss.tmpl: Added.
        * BugsSite/template/en/custom/list/quips.html.tmpl: Added.
        * BugsSite/template/en/custom/list/server-push.html.tmpl: Added.
        * BugsSite/template/en/custom/list/table.html.tmpl: Added.
        * BugsSite/template/en/custom/pages: Added.
        * BugsSite/template/en/custom/pages/bug-writing.html.tmpl: Added.
        * BugsSite/template/en/custom/pages/fields.html.tmpl: Added.
        * BugsSite/template/en/custom/pages/linked.html.tmpl: Added.
        * BugsSite/template/en/custom/pages/linkify.html.tmpl: Added.
        * BugsSite/template/en/custom/pages/voting.html.tmpl: Added.
        * BugsSite/template/en/custom/reports: Added.
        * BugsSite/template/en/custom/reports/chart.csv.tmpl: Added.
        * BugsSite/template/en/custom/reports/chart.html.tmpl: Added.
        * BugsSite/template/en/custom/reports/chart.png.tmpl: Added.
        * BugsSite/template/en/custom/reports/components.html.tmpl: Added.
        * BugsSite/template/en/custom/reports/create-chart.html.tmpl: Added.
        * BugsSite/template/en/custom/reports/duplicates-simple.html.tmpl: Added.
        * BugsSite/template/en/custom/reports/duplicates-table.html.tmpl: Added.
        * BugsSite/template/en/custom/reports/duplicates.html.tmpl: Added.
        * BugsSite/template/en/custom/reports/duplicates.rdf.tmpl: Added.
        * BugsSite/template/en/custom/reports/edit-series.html.tmpl: Added.
        * BugsSite/template/en/custom/reports/keywords.html.tmpl: Added.
        * BugsSite/template/en/custom/reports/menu.html.tmpl: Added.
        * BugsSite/template/en/custom/reports/report-bar.png.tmpl: Added.
        * BugsSite/template/en/custom/reports/report-line.png.tmpl: Added.
        * BugsSite/template/en/custom/reports/report-pie.png.tmpl: Added.
        * BugsSite/template/en/custom/reports/report-simple.html.tmpl: Added.
        * BugsSite/template/en/custom/reports/report-table.csv.tmpl: Added.
        * BugsSite/template/en/custom/reports/report-table.html.tmpl: Added.
        * BugsSite/template/en/custom/reports/report.csv.tmpl: Added.
        * BugsSite/template/en/custom/reports/report.html.tmpl: Added.
        * BugsSite/template/en/custom/reports/series-common.html.tmpl: Added.
        * BugsSite/template/en/custom/reports/series.html.tmpl: Added.
        * BugsSite/template/en/custom/request: Added.
        * BugsSite/template/en/custom/request/email.txt.tmpl: Added.
        * BugsSite/template/en/custom/request/queue.html.tmpl: Added.
        * BugsSite/template/en/custom/search: Added.
        * BugsSite/template/en/custom/search/boolean-charts.html.tmpl: Added.
        * BugsSite/template/en/custom/search/form.html.tmpl: Added.
        * BugsSite/template/en/custom/search/knob.html.tmpl: Added.
        * BugsSite/template/en/custom/search/search-advanced.html.tmpl: Added.
        * BugsSite/template/en/custom/search/search-create-series.html.tmpl: Added.
        * BugsSite/template/en/custom/search/search-help.html.tmpl: Added.
        * BugsSite/template/en/custom/search/search-report-graph.html.tmpl: Added.
        * BugsSite/template/en/custom/search/search-report-select.html.tmpl: Added.
        * BugsSite/template/en/custom/search/search-report-table.html.tmpl: Added.
        * BugsSite/template/en/custom/search/search-specific.html.tmpl: Added.
        * BugsSite/template/en/custom/search/tabs.html.tmpl: Added.
        * BugsSite/template/en/custom/sidebar.xul.tmpl: Added.
        * BugsSite/template/en/custom/whine: Added.
        * BugsSite/template/en/custom/whine/mail.html.tmpl: Added.
        * BugsSite/template/en/custom/whine/mail.txt.tmpl: Added.
        * BugsSite/template/en/custom/whine/multipart-mime.txt.tmpl: Added.
        * BugsSite/template/en/custom/whine/schedule.html.tmpl: Added.
        * BugsSite/template/en/default: Added.
        * BugsSite/template/en/default/account: Added.
        * BugsSite/template/en/default/account/auth: Added.
        * BugsSite/template/en/default/account/auth/ldap-error.html.tmpl: Added.
        * BugsSite/template/en/default/account/auth/login-small.html.tmpl: Added.
        * BugsSite/template/en/default/account/auth/login.html.tmpl: Added.
        * BugsSite/template/en/default/account/cancel-token.txt.tmpl: Added.
        * BugsSite/template/en/default/account/create.html.tmpl: Added.
        * BugsSite/template/en/default/account/created.html.tmpl: Added.
        * BugsSite/template/en/default/account/email: Added.
        * BugsSite/template/en/default/account/email/change-new.txt.tmpl: Added.
        * BugsSite/template/en/default/account/email/change-old.txt.tmpl: Added.
        * BugsSite/template/en/default/account/email/confirm.html.tmpl: Added.
        * BugsSite/template/en/default/account/exists.html.tmpl: Added.
        * BugsSite/template/en/default/account/password: Added.
        * BugsSite/template/en/default/account/password/forgotten-password.txt.tmpl: Added.
        * BugsSite/template/en/default/account/password/set-forgotten-password.html.tmpl: Added.
        * BugsSite/template/en/default/account/prefs: Added.
        * BugsSite/template/en/default/account/prefs/account.html.tmpl: Added.
        * BugsSite/template/en/default/account/prefs/email.html.tmpl: Added.
        * BugsSite/template/en/default/account/prefs/footer.html.tmpl: Added.
        * BugsSite/template/en/default/account/prefs/permissions.html.tmpl: Added.
        * BugsSite/template/en/default/account/prefs/prefs.html.tmpl: Added.
        * BugsSite/template/en/default/account/prefs/saved-searches.html.tmpl: Added.
        * BugsSite/template/en/default/account/prefs/settings.html.tmpl: Added.
        * BugsSite/template/en/default/admin: Added.
        * BugsSite/template/en/default/admin/classifications: Added.
        * BugsSite/template/en/default/admin/classifications/add.html.tmpl: Added.
        * BugsSite/template/en/default/admin/classifications/del.html.tmpl: Added.
        * BugsSite/template/en/default/admin/classifications/delete.html.tmpl: Added.
        * BugsSite/template/en/default/admin/classifications/edit.html.tmpl: Added.
        * BugsSite/template/en/default/admin/classifications/new.html.tmpl: Added.
        * BugsSite/template/en/default/admin/classifications/reclassify.html.tmpl: Added.
        * BugsSite/template/en/default/admin/classifications/select.html.tmpl: Added.
        * BugsSite/template/en/default/admin/classifications/update.html.tmpl: Added.
        * BugsSite/template/en/default/admin/components: Added.
        * BugsSite/template/en/default/admin/components/confirm-delete.html.tmpl: Added.
        * BugsSite/template/en/default/admin/components/create.html.tmpl: Added.
        * BugsSite/template/en/default/admin/components/created.html.tmpl: Added.
        * BugsSite/template/en/default/admin/components/deleted.html.tmpl: Added.
        * BugsSite/template/en/default/admin/components/edit.html.tmpl: Added.
        * BugsSite/template/en/default/admin/components/footer.html.tmpl: Added.
        * BugsSite/template/en/default/admin/components/list.html.tmpl: Added.
        * BugsSite/template/en/default/admin/components/select-product.html.tmpl: Added.
        * BugsSite/template/en/default/admin/components/updated.html.tmpl: Added.
        * BugsSite/template/en/default/admin/fieldvalues: Added.
        * BugsSite/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl: Added.
        * BugsSite/template/en/default/admin/fieldvalues/create.html.tmpl: Added.
        * BugsSite/template/en/default/admin/fieldvalues/created.html.tmpl: Added.
        * BugsSite/template/en/default/admin/fieldvalues/deleted.html.tmpl: Added.
        * BugsSite/template/en/default/admin/fieldvalues/edit.html.tmpl: Added.
        * BugsSite/template/en/default/admin/fieldvalues/footer.html.tmpl: Added.
        * BugsSite/template/en/default/admin/fieldvalues/list.html.tmpl: Added.
        * BugsSite/template/en/default/admin/fieldvalues/select-field.html.tmpl: Added.
        * BugsSite/template/en/default/admin/fieldvalues/updated.html.tmpl: Added.
        * BugsSite/template/en/default/admin/flag-type: Added.
        * BugsSite/template/en/default/admin/flag-type/confirm-delete.html.tmpl: Added.
        * BugsSite/template/en/default/admin/flag-type/edit.html.tmpl: Added.
        * BugsSite/template/en/default/admin/flag-type/list.html.tmpl: Added.
        * BugsSite/template/en/default/admin/groups: Added.
        * BugsSite/template/en/default/admin/groups/change.html.tmpl: Added.
        * BugsSite/template/en/default/admin/groups/create.html.tmpl: Added.
        * BugsSite/template/en/default/admin/groups/created.html.tmpl: Added.
        * BugsSite/template/en/default/admin/groups/delete.html.tmpl: Added.
        * BugsSite/template/en/default/admin/groups/deleted.html.tmpl: Added.
        * BugsSite/template/en/default/admin/groups/edit.html.tmpl: Added.
        * BugsSite/template/en/default/admin/groups/list.html.tmpl: Added.
        * BugsSite/template/en/default/admin/groups/remove.html.tmpl: Added.
        * BugsSite/template/en/default/admin/keywords: Added.
        * BugsSite/template/en/default/admin/keywords/confirm-delete.html.tmpl: Added.
        * BugsSite/template/en/default/admin/keywords/create.html.tmpl: Added.
        * BugsSite/template/en/default/admin/keywords/created.html.tmpl: Added.
        * BugsSite/template/en/default/admin/keywords/edit.html.tmpl: Added.
        * BugsSite/template/en/default/admin/keywords/list.html.tmpl: Added.
        * BugsSite/template/en/default/admin/keywords/rebuild-cache.html.tmpl: Added.
        * BugsSite/template/en/default/admin/milestones: Added.
        * BugsSite/template/en/default/admin/milestones/confirm-delete.html.tmpl: Added.
        * BugsSite/template/en/default/admin/milestones/create.html.tmpl: Added.
        * BugsSite/template/en/default/admin/milestones/created.html.tmpl: Added.
        * BugsSite/template/en/default/admin/milestones/deleted.html.tmpl: Added.
        * BugsSite/template/en/default/admin/milestones/edit.html.tmpl: Added.
        * BugsSite/template/en/default/admin/milestones/footer.html.tmpl: Added.
        * BugsSite/template/en/default/admin/milestones/list.html.tmpl: Added.
        * BugsSite/template/en/default/admin/milestones/select-product.html.tmpl: Added.
        * BugsSite/template/en/default/admin/milestones/updated.html.tmpl: Added.
        * BugsSite/template/en/default/admin/products: Added.
        * BugsSite/template/en/default/admin/products/confirm-delete.html.tmpl: Added.
        * BugsSite/template/en/default/admin/products/deleted.html.tmpl: Added.
        * BugsSite/template/en/default/admin/products/footer.html.tmpl: Added.
        * BugsSite/template/en/default/admin/products/groupcontrol: Added.
        * BugsSite/template/en/default/admin/products/groupcontrol/confirm-edit.html.tmpl: Added.
        * BugsSite/template/en/default/admin/products/groupcontrol/edit.html.tmpl: Added.
        * BugsSite/template/en/default/admin/products/list-classifications.html.tmpl: Added.
        * BugsSite/template/en/default/admin/products/list.html.tmpl: Added.
        * BugsSite/template/en/default/admin/settings: Added.
        * BugsSite/template/en/default/admin/settings/edit.html.tmpl: Added.
        * BugsSite/template/en/default/admin/settings/updated.html.tmpl: Added.
        * BugsSite/template/en/default/admin/table.html.tmpl: Added.
        * BugsSite/template/en/default/admin/users: Added.
        * BugsSite/template/en/default/admin/users/confirm-delete.html.tmpl: Added.
        * BugsSite/template/en/default/admin/users/create.html.tmpl: Added.
        * BugsSite/template/en/default/admin/users/edit.html.tmpl: Added.
        * BugsSite/template/en/default/admin/users/list.html.tmpl: Added.
        * BugsSite/template/en/default/admin/users/listselectvars.html.tmpl: Added.
        * BugsSite/template/en/default/admin/users/search.html.tmpl: Added.
        * BugsSite/template/en/default/admin/users/userdata.html.tmpl: Added.
        * BugsSite/template/en/default/admin/versions: Added.
        * BugsSite/template/en/default/admin/versions/confirm-delete.html.tmpl: Added.
        * BugsSite/template/en/default/admin/versions/create.html.tmpl: Added.
        * BugsSite/template/en/default/admin/versions/created.html.tmpl: Added.
        * BugsSite/template/en/default/admin/versions/deleted.html.tmpl: Added.
        * BugsSite/template/en/default/admin/versions/edit.html.tmpl: Added.
        * BugsSite/template/en/default/admin/versions/footer.html.tmpl: Added.
        * BugsSite/template/en/default/admin/versions/list.html.tmpl: Added.
        * BugsSite/template/en/default/admin/versions/select-product.html.tmpl: Added.
        * BugsSite/template/en/default/admin/versions/updated.html.tmpl: Added.
        * BugsSite/template/en/default/attachment: Added.
        * BugsSite/template/en/default/attachment/choose.html.tmpl: Added.
        * BugsSite/template/en/default/attachment/content-types.html.tmpl: Added.
        * BugsSite/template/en/default/attachment/create.html.tmpl: Added.
        * BugsSite/template/en/default/attachment/created.html.tmpl: Added.
        * BugsSite/template/en/default/attachment/diff-file.html.tmpl: Added.
        * BugsSite/template/en/default/attachment/diff-footer.html.tmpl: Added.
        * BugsSite/template/en/default/attachment/diff-header.html.tmpl: Added.
        * BugsSite/template/en/default/attachment/edit-aroben.html.tmpl: Added.
        * BugsSite/template/en/default/attachment/edit.html.tmpl: Added.
        * BugsSite/template/en/default/attachment/list.html.tmpl: Added.
        * BugsSite/template/en/default/attachment/show-multiple.html.tmpl: Added.
        * BugsSite/template/en/default/attachment/updated.html.tmpl: Added.
        * BugsSite/template/en/default/bug: Added.
        * BugsSite/template/en/default/bug/activity: Added.
        * BugsSite/template/en/default/bug/activity/show.html.tmpl: Added.
        * BugsSite/template/en/default/bug/activity/table.html.tmpl: Added.
        * BugsSite/template/en/default/bug/choose.html.tmpl: Added.
        * BugsSite/template/en/default/bug/comments.html.tmpl: Added.
        * BugsSite/template/en/default/bug/create: Added.
        * BugsSite/template/en/default/bug/create/comment-guided.txt.tmpl: Added.
        * BugsSite/template/en/default/bug/create/comment.txt.tmpl: Added.
        * BugsSite/template/en/default/bug/create/create-guided.html.tmpl: Added.
        * BugsSite/template/en/default/bug/create/create.html.tmpl: Added.
        * BugsSite/template/en/default/bug/create/created.html.tmpl: Added.
        * BugsSite/template/en/default/bug/create/make-template.html.tmpl: Added.
        * BugsSite/template/en/default/bug/create/user-message.html.tmpl: Added.
        * BugsSite/template/en/default/bug/dependency-graph.html.tmpl: Added.
        * BugsSite/template/en/default/bug/dependency-tree.html.tmpl: Added.
        * BugsSite/template/en/default/bug/edit.html.tmpl: Added.
        * BugsSite/template/en/default/bug/knob.html.tmpl: Added.
        * BugsSite/template/en/default/bug/navigate.html.tmpl: Added.
        * BugsSite/template/en/default/bug/process: Added.
        * BugsSite/template/en/default/bug/process/bugmail.html.tmpl: Added.
        * BugsSite/template/en/default/bug/process/confirm-duplicate.html.tmpl: Added.
        * BugsSite/template/en/default/bug/process/header.html.tmpl: Added.
        * BugsSite/template/en/default/bug/process/midair.html.tmpl: Added.
        * BugsSite/template/en/default/bug/process/next.html.tmpl: Added.
        * BugsSite/template/en/default/bug/process/results.html.tmpl: Added.
        * BugsSite/template/en/default/bug/process/verify-new-product.html.tmpl: Added.
        * BugsSite/template/en/default/bug/show-multiple.html.tmpl: Added.
        * BugsSite/template/en/default/bug/show.html.tmpl: Added.
        * BugsSite/template/en/default/bug/show.xml.tmpl: Added.
        * BugsSite/template/en/default/bug/summarize-time.html.tmpl: Added.
        * BugsSite/template/en/default/bug/time.html.tmpl: Added.
        * BugsSite/template/en/default/bug/votes: Added.
        * BugsSite/template/en/default/bug/votes/delete-all.html.tmpl: Added.
        * BugsSite/template/en/default/bug/votes/list-for-bug.html.tmpl: Added.
        * BugsSite/template/en/default/bug/votes/list-for-user.html.tmpl: Added.
        * BugsSite/template/en/default/config.js.tmpl: Added.
        * BugsSite/template/en/default/config.rdf.tmpl: Added.
        * BugsSite/template/en/default/filterexceptions.pl: Added.
        * BugsSite/template/en/default/flag: Added.
        * BugsSite/template/en/default/flag/list.html.tmpl: Added.
        * BugsSite/template/en/default/global: Added.
        * BugsSite/template/en/default/global/banner.html.tmpl: Added.
        * BugsSite/template/en/default/global/choose-classification.html.tmpl: Added.
        * BugsSite/template/en/default/global/choose-product.html.tmpl: Added.
        * BugsSite/template/en/default/global/code-error.html.tmpl: Added.
        * BugsSite/template/en/default/global/confirm-user-match.html.tmpl: Added.
        * BugsSite/template/en/default/global/field-descs.none.tmpl: Added.
        * BugsSite/template/en/default/global/footer.html.tmpl: Added.
        * BugsSite/template/en/default/global/header.html.tmpl: Added.
        * BugsSite/template/en/default/global/help-header.html.tmpl: Added.
        * BugsSite/template/en/default/global/help.html.tmpl: Added.
        * BugsSite/template/en/default/global/hidden-fields.html.tmpl: Added.
        * BugsSite/template/en/default/global/initialize.none.tmpl: Added.
        * BugsSite/template/en/default/global/message.html.tmpl: Added.
        * BugsSite/template/en/default/global/messages.html.tmpl: Added.
        * BugsSite/template/en/default/global/select-menu.html.tmpl: Added.
        * BugsSite/template/en/default/global/setting-descs.none.tmpl: Added.
        * BugsSite/template/en/default/global/site-navigation.html.tmpl: Added.
        * BugsSite/template/en/default/global/useful-links.html.tmpl: Added.
        * BugsSite/template/en/default/global/user-error.html.tmpl: Added.
        * BugsSite/template/en/default/global/userselect.html.tmpl: Added.
        * BugsSite/template/en/default/global/variables.none.tmpl: Added.
        * BugsSite/template/en/default/index.html.tmpl: Added.
        * BugsSite/template/en/default/list: Added.
        * BugsSite/template/en/default/list/change-columns.html.tmpl: Added.
        * BugsSite/template/en/default/list/edit-multiple.html.tmpl: Added.
        * BugsSite/template/en/default/list/list-simple.html.tmpl: Added.
        * BugsSite/template/en/default/list/list.atom.tmpl: Added.
        * BugsSite/template/en/default/list/list.csv.tmpl: Added.
        * BugsSite/template/en/default/list/list.html.tmpl: Added.
        * BugsSite/template/en/default/list/list.ics.tmpl: Added.
        * BugsSite/template/en/default/list/list.js.tmpl: Added.
        * BugsSite/template/en/default/list/list.rdf.tmpl: Added.
        * BugsSite/template/en/default/list/quips.html.tmpl: Added.
        * BugsSite/template/en/default/list/server-push.html.tmpl: Added.
        * BugsSite/template/en/default/list/table.html.tmpl: Added.
        * BugsSite/template/en/default/pages: Added.
        * BugsSite/template/en/default/pages/bug-writing.html.tmpl: Added.
        * BugsSite/template/en/default/pages/fields.html.tmpl: Added.
        * BugsSite/template/en/default/pages/linked.html.tmpl: Added.
        * BugsSite/template/en/default/pages/linkify.html.tmpl: Added.
        * BugsSite/template/en/default/pages/voting.html.tmpl: Added.
        * BugsSite/template/en/default/reports: Added.
        * BugsSite/template/en/default/reports/chart.csv.tmpl: Added.
        * BugsSite/template/en/default/reports/chart.html.tmpl: Added.
        * BugsSite/template/en/default/reports/chart.png.tmpl: Added.
        * BugsSite/template/en/default/reports/components.html.tmpl: Added.
        * BugsSite/template/en/default/reports/create-chart.html.tmpl: Added.
        * BugsSite/template/en/default/reports/duplicates-simple.html.tmpl: Added.
        * BugsSite/template/en/default/reports/duplicates-table.html.tmpl: Added.
        * BugsSite/template/en/default/reports/duplicates.html.tmpl: Added.
        * BugsSite/template/en/default/reports/duplicates.rdf.tmpl: Added.
        * BugsSite/template/en/default/reports/edit-series.html.tmpl: Added.
        * BugsSite/template/en/default/reports/keywords.html.tmpl: Added.
        * BugsSite/template/en/default/reports/menu.html.tmpl: Added.
        * BugsSite/template/en/default/reports/report-bar.png.tmpl: Added.
        * BugsSite/template/en/default/reports/report-line.png.tmpl: Added.
        * BugsSite/template/en/default/reports/report-pie.png.tmpl: Added.
        * BugsSite/template/en/default/reports/report-simple.html.tmpl: Added.
        * BugsSite/template/en/default/reports/report-table.csv.tmpl: Added.
        * BugsSite/template/en/default/reports/report-table.html.tmpl: Added.
        * BugsSite/template/en/default/reports/report.csv.tmpl: Added.
        * BugsSite/template/en/default/reports/report.html.tmpl: Added.
        * BugsSite/template/en/default/reports/series-common.html.tmpl: Added.
        * BugsSite/template/en/default/reports/series.html.tmpl: Added.
        * BugsSite/template/en/default/request: Added.
        * BugsSite/template/en/default/request/email.txt.tmpl: Added.
        * BugsSite/template/en/default/request/queue.html.tmpl: Added.
        * BugsSite/template/en/default/search: Added.
        * BugsSite/template/en/default/search/boolean-charts.html.tmpl: Added.
        * BugsSite/template/en/default/search/form.html.tmpl: Added.
        * BugsSite/template/en/default/search/knob.html.tmpl: Added.
        * BugsSite/template/en/default/search/search-advanced.html.tmpl: Added.
        * BugsSite/template/en/default/search/search-create-series.html.tmpl: Added.
        * BugsSite/template/en/default/search/search-help.html.tmpl: Added.
        * BugsSite/template/en/default/search/search-report-graph.html.tmpl: Added.
        * BugsSite/template/en/default/search/search-report-select.html.tmpl: Added.
        * BugsSite/template/en/default/search/search-report-table.html.tmpl: Added.
        * BugsSite/template/en/default/search/search-specific.html.tmpl: Added.
        * BugsSite/template/en/default/search/tabs.html.tmpl: Added.
        * BugsSite/template/en/default/sidebar.xul.tmpl: Added.
        * BugsSite/template/en/default/whine: Added.
        * BugsSite/template/en/default/whine/mail.html.tmpl: Added.
        * BugsSite/template/en/default/whine/mail.txt.tmpl: Added.
        * BugsSite/template/en/default/whine/multipart-mime.txt.tmpl: Added.
        * BugsSite/template/en/default/whine/schedule.html.tmpl: Added.
        * BugsSite/template/en/extension: Added.
        * BugsSite/template/en/extension/filterexceptions.pl: Added.
        * BugsSite/testagent.cgi: Added.
        * BugsSite/testserver.pl: Added.
        * BugsSite/token.cgi: Added.
        * BugsSite/userprefs.cgi: Added.
        * BugsSite/votes.cgi: Added.
        * BugsSite/whine.pl: Added.
        * BugsSite/whineatnews.pl: Added.
        * BugsSite/xml.cgi: Added.

2008-02-04  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp Toker and Mark Rowe.

        http://bugs.webkit.org/show_bug.cgi?id=16618
        [GTK] build-webkit and run-webkit-tests autootools support

        Add support for the autotools build to the WebKit build and test
        scripts.

2008-02-04  Rodney Dawes  <dobey@wayofthemonkey.com>

        Reviewed by Alp Toker and Mark Rowe.

        Fix http://bugs.webkit.org/show_bug.cgi?id=17175.
        Bug 17175: Use of C++ compiler flags in CFLAGS

        Add global_cxxflags definition for inclusion in CXXFLAGS variables.
        Only use -fno-rtti and $(SYMBOL_VISIBILITY_INLINES) with global_cxxflags as gcc complains they aren't valid for C.

        * GNUmakefile.am:

2008-02-04  Alp Toker  <alp@atoker.com>

        Rubber-stamped by Mark Rowe.

        Remove all trailing whitespace in the GTK+ port and related
        components.

        * GNUmakefile.am:
        * configure.ac:

2008-01-31  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Fix the pkg-config file to follow GTK+ package naming and versioning
        conventions.

        Remove unneeded dependency listings.

        * GNUmakefile.am:
        * configure.ac:

2008-01-31  Alp Toker  <alp@atoker.com>

        Rubber-stamped by Adam Roben.

        http://bugs.webkit.org/show_bug.cgi?id=17006
        [GTK] Header path should be webkit/webkit.h

        Move the GTK+ API sources as needed and update the build systems.

        * GNUmakefile.am:
        * WebKit.pri:

2008-01-27  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=14811
        [gtk] [request] add a webkit_gtk_page_go_to_history_item function

        * GNUmakefile.am: Added webkitwebbackforwardlist and webkitwebhistoryitem

2008-01-26  Mark Rowe  <mrowe@apple.com>

        Reviewed by Alp Toker.

        Fix http://bugs.webkit.org/show_bug.cgi?id=17007.
        Bug 17007: [GTK] autogen.sh attempts to use "libtoolize" on the Mac

        libtoolize is installed as glibtoolize on Mac OS X to avoid naming conflicts
        with other system commands.  Check for the presence of glibtoolize if libtoolize
        cannot be found.

        * autogen.sh:

2008-01-23  Alp Toker  <alp@atoker.com>

        Rubber-stamped by Mark Rowe.

        Remove whitespace after -I in automake include lists.

        * GNUmakefile.am:

2008-01-22  Christian Dywan  <christian@imendio.com>

        Reviewed by Alp Toker.

        [GTK] API: WebKitWebSettings is not usable
        http://bugs.webkit.org/show_bug.cgi?id=16219

        Implement WebKitWebSettings.

        * GNUmakefile.am:

2008-01-22  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Lars.

        Don't compile the ICO plugin when building against Qt >= 4.4


        * WebKit.pro:

2008-01-21  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16955
        Get errors when cross-compile webkit-gtk

        * GNUmakefile.am: added ICU_CPPFLAGS
        * configure.ac: added ICU_CPPFLAGS, removed ICU_CFLAGS

2008-01-19  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp Toker.

        Add svg foreign object and svg experimental to the GTK+/autotools
        build system.

        * configure.ac:

2008-01-15  Alp Toker  <alp@atoker.com>

        Rubber-stamped by Anders.

        Make the HTTP backend configurable in the GTK+ port. curl is currently
        the only option.

        * GNUmakefile.am:
        * WebKit.pri:
        * configure.ac:

2008-01-15  Alp Toker  <alp@atoker.com>

        GTK+/autotools build fix for GCC < 4. Use the -fvisibility compiler
        flags only when they're available.

        Additionally, use -fvisibility-inlines-hidden in both debug and
        release builds when available to match the Mac build.

        * GNUmakefile.am:
        * configure.ac:

2008-01-12  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Hide non-public symbols in GTK+/autotools release builds.

        * GNUmakefile.am:

2008-01-11  Alp Toker  <alp@atoker.com>

        Reviewed by Oliver Hunt.

        Enable FastMalloc by default in GTK+/autotools and add a configure
        switch.

        * GNUmakefile.am:
        * configure.ac:

2008-01-11  Luca Bruno  <lethalman88@gmail.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16838
        [GTK] Bad autotools debug and video options

        Fix some configure options.

        * configure.ac:

2008-01-11  Mark Rowe  <mrowe@apple.com>

        Attempt to fix the GTK+ and Qt builds.

        * WebKit.pro:

2008-01-10  Alp Toker  <alp@atoker.com>

        SVG font build fix for GTK+/autotools.

        * configure.ac:

2008-01-05  Alp Toker  <alp@atoker.com>

        Rubber-stamped by Mark Rowe.

        Fix configure script output with correct descriptions of the default
        configuration options.

        * configure.ac:

2008-01-05  Sylvain Pasche  <sylvain.pasche@gmail.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16736
        Allow autogen.sh invocation from a separate build directory.

        * autogen.sh:

2008-01-04  Alp Toker  <alp@atoker.com>

        Rubber-stamped by Mark Rowe.

        Remove AM_MAINTAINER_MODE, as recommended by the automake manual. The
        "rebuild rules" will now be enabled by default.

        This obviates the need to pass '--enable-maintainer-mode' to
        configure.

        * configure.ac:

2008-01-02  Holger Hans Peter Freyther  <zecke@selfish.org>

        Rubber stamped by Alp.

        Remove GDK_MULTIHEAD_SAFE and GTK_MULTIHEAD_SAFE because they break
        the build. At least people doing a debug build on Ubuntu Hardy will see
        the breakage. I was asked to leave the flags inside the files to ease future
        debugging.

        * GNUmakefile.am:
        * WebKit.pri:

2008-01-01  Alp Toker  <alp@atoker.com>

        GTK+ autotools build fix. Track changes in r29051, r29058 and pass the
        correct parameter to AM_INIT_AUTOMAKE.

        * configure.ac:

2007-12-30  Alp Toker  <alp@atoker.com>

        Build fix for older autoconf versions.

        * configure.ac:

2007-12-29  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp Toker.

        Enable Database, XPath and XSLT features by default

        * configure.ac:

2007-12-29  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16669
        autotools update and fixes

        Various fixes to the autotools build

        * GNUmakefile.am:
          - Remove ICU_FLAGS because it adds -g in the CFLAGS/CXXFLAGS
          - Fix clean rules (Rodney Dawes)
          - Added webcore specific variables, remove STDINT_H and
            PTHREAD_NP_H checks (already included in config.h)
        * autogen.sh:
          - Loosen automake and aclocal requirement
        * configure.ac:
          - Workaround AC_PROG_CXX putting -g in CXXFLAGS. Only use -g
            when doing a debug build (Rodney Dawes)
          - Fix webkit target and remove traces of XBL

2007-12-27  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16353
        [GTK] Check for deprecated API use (G_DISABLE_DEPRECATED etc.)

        Added the flags mentioned in the bug only when doing 'debug'
        builds. -DGST_DISABLE_DEPRECATED only added when video is enabled.

        * GNUmakefile.am:
        * WebKit.pri:

2007-12-26  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16390
        Use autotools or GNU make as the build system for the GTK port

        * GNUmakefile.am: Added.
        * autogen.sh: Added.
        * configure.ac: Added.

2007-12-20  Alp Toker  <alp@atoker.com>

        Rubber-stamped by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=16542
        [GTK] Text is missing with old Pango version

        Back out commits r28880, r28876, r28865, r28864 which added Pango font
        selection support. These changes caused a regression where no text was
        displayed with older Pango versions.

        * WebKit.pri:

2007-12-19  Alp Toker  <alp@atoker.com>

        Remove the cairo-ft pkg-config check. The GTK+ port doesn't use
        cairo-ft directly following changes in r28864.

        * WebKit.pri:

2007-12-12  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        http://bugs.webkit.org/show_bug.cgi?id=16302
        [GTK] Compiler flags for optimization

        Use the compiler flags -fno-exceptions -fno-rtti.

        This patch does not add all the flags discussed in the bug report,
        only these two.

        * WebKit.pri:

2007-12-04  Xan Lopez  <xan@gnome.org>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=15561
        GTK port needs DumpRenderTree implementation

        Start work on the GTK+ DRT.

        * WebKit.pro:

2007-11-30  Alp Toker  <alp@atoker.com>

        Reviewed by Adam Roben.

        http://bugs.webkit.org/show_bug.cgi?id=15691
        [GTK] Public API does not follow GTK+ conventions

        Refactor the WebKit/GTK+ public API. Changes:
          WebKitPage -> WebKitWebView
          WebKitFrame -> WebKitWebFrame

        Public API source and header names have been updated to mirror the API
        changes.

        The API is now kept in WebKit/gtk/WebView to match other ports in the
        same class such as Mac and Win.

        * WebKit.pri:

2007-11-26  Rodney Dawes  <dobey@wayofthemonkey.com>

        Reviewed by Mark Rowe.

        Set CONFIG option for the window system GTK+ is using

        * WebKit.pri:

2007-11-22  Alp Toker  <alp@atoker.com>

        GTK+ build fix. Pass a correct LIBDIR value.

        * WebKit.pri:

2007-11-20  Mark Rowe  <mrowe@apple.com>

        Reviewed by Alp Toker.

        * WebKit.pri: Add in -Wno-unused-parameter to silence warnings in WebCore.

2007-11-20  Alp Toker  <alp@atoker.com>

        Reviewed by Simon Hausmann.

        Clean up GTK+ port configuration.

        Use similar compiler warning flags to the Mac build.

        Add the qmake changes needed for DirectFB support.

        * WebKit.pri:

2007-11-07  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Mark.

        Add WebKit/qt/Api to the dependency path when building QtLauncher and DumpRenderTree.
        That means that changes to the public API of the Qt port also trigger a rebuild of the tools.

        * WebKit.pri:

2007-10-03  Lars Knoll  <lars@trolltech.com>

        Signed off by olliej.

        move WebKitQt to WebKit/qt for consistency with the other ports.

        * WebKit.pri:
        * WebKit.pro:

2007-10-03  Lars Knoll  <lars@trolltech.com>

        Reviewed by olliej.

        Move the Qt version of DRT into the correct place and put the binary into BUILDDIR/bin.

        * WebKit.pro:

2007-09-29  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Mark.

        -Fix http://bugs.webkit.org/show_bug.cgi?id=13226.
        Remove Bakefiles from svn.

        * Bakefiles/Bakefiles.bkgen: Removed.
        * Bakefiles/ChangeLog: Removed.
        * Bakefiles/Readme.txt: Removed.
        * Bakefiles/presets.bkl: Removed.
        * Bakefiles/update-file-lists.py: Removed.

2007-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>

        Rubber stamped by Adam.

        Renamed files from *Gdk to *Gtk (see #14732) using the
        work of Juan A. Suarez Romero as a base.

        GDK -> GTK

        * WebKit.pri:
        * WebKit.pro:

2007-07-29  Brian Mastenbrook  <brian@mastenbrook.net>

        Build fix for WebKit/Gtk to compile on Fedora 7 as described in
        http://bugs.webkit.org/show_bug.cgi?id=14557

        * WebKit.pri: cairo-ft is used by the WebKit/Gtk port

2007-07-27  Simon Hausmann  <hausmann@kde.org>

        Done with and reviewed by Lars and Zack.

        Exclude DumpRenderTree from the Qt build on Windows for now.

        * WebKit.pro:

2007-07-27  Simon Hausmann  <hausmann@kde.org>

        Done with and reviewed by Lars and Zack.

        Temporarily disable the ICO support for the Qt build on Windows.

        * WebKit.pro:

2007-07-26  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Use QMAKE_LIBDIR instead of QMAKE_LFLAGS to specify the library search path for QtWebKit, as the former is portable and correctly transformed to /LIBPATH: with msvc for example.

        * WebKit.pri:

2007-07-22  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Adam.

        Add WebKit/gtk/Api and WebCoreSupport API to the INCLUDEPATH to allow GdkLauncher to be
        build against it.

        * WebKit.pri:

2007-07-18  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Zack.

        Don't call gcc directly when building the dftables tool but use a separate .pro file for the Qt build.

        * WebKit.pro:

2007-07-18  Timothy Hatcher  <timothy@apple.com>

        Add a SCRIPTS_PATH variable so Makefiles of differnet nested directories can
        still use this one Makefile.shared as an include.

        * Makefile.shared:

2007-07-12  George Staikos  <staikos@kde.org>

        Fix build in debug mode.

        * WebKit.pri:

2007-07-11  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Darin Adler.

        As of http://bugs.webkit.org/show_bug.cgi?id=14527 move the
        WebCore/ForwardingHeader/JavaScriptCore to JavaScriptCore

        * WebKit.pri: Adjust INCLUDEPATH

2007-06-25  Adam Roben  <aroben@apple.com>

        Really remove LayoutTestResults.

        * LayoutTestResults: Removed.

2007-06-25  Adam Roben  <aroben@apple.com>

        Fix Bug 14405: LayoutTestResults/qt should be in LayoutTests/qt
        http://bugs.webkit.org/show_bug.cgi?id=14405

        Reviewed by Anders.

        * LayoutTestResults: Removed.

2007-06-25  Alp Toker  <alp.toker@collabora.co.uk>

        Reviewed by Mark.

        http://bugs.webkit.org/show_bug.cgi?id=13975
        Use system-provided libjpeg and libpng

        * WebKit.pri: Link against external libjpeg and libpng.

2007-06-20  Adam Roben  <aroben@apple.com>

        Reviewed by Simon Hausmann.

        More Gdk build fixing.

        * WebKit.pro:

2007-06-15  Adam Treat  <adam@staikos.net>

        Reviewed by George Staikos.

        Add ICO support to the Qt build.

        * WebKit.pro:

2007-06-13  George Staikos  <staikos@kde.org>

        Reviewed by Lars.

        Compile without self-linking.

        * WebKit.pri:

2007-06-13  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        * WebKit.pri: WebKitQt is now called QtWebKit.

2007-05-31  Alp Toker  <alp.toker@collabora.co.uk>

        Reviewed by Eric Seidel.

        http://bugs.webkit.org/show_bug.cgi?id=13941
        Rename WebCore/platform/network/gdk to WebCore/platform/network/curl

        * WebKit.pri:

2007-05-18  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Mark Rowe.

        * WebKit.pro: Build testkjs for Gdk and Qt

2007-05-11  Holger Freyther <freyther@kde.org>

        Reviewed by Mark Rowe.

        Move libcurl configuration into WebKit.pri so it will be used by GdkLauncher,
        and add ICU configuration to QMAKE_CXXFLAGS.

        * WebKit.pri:

2007-05-06  Erik Bunce  <kde@bunce.us>

        Reviewed by Mark Rowe.

        * WebKit.pri:
        Removed unnecessary dependency on MacPorts (/opt/local)

2007-05-03  Holger Freyther <freyther@kde.org>

        Reviewed by Zack, landed by Simon.
        This is bugzilla bug 13499.

        * WebKit.pri: Place Qt into a scope, start sharing qmake with the Gdk
        port
        * WebKit.pro: Place Qt into a scope, start sharing qmake with the Gdk
        port

2007-04-27  Holger Freyther <freyther@kde.org>

        Reviewed by Maciej.

        Remove unmaintained CMake build system.

        * CMakeLists.txt: Removed.

2007-01-30  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Zack.

        * WebKit.pri: libJavaScriptCore is gone with the Qt build
        * WebKit.pro:

2007-01-26  George Staikos  <staikos@kde.org>

        Remove headers - not needed now.

        * WebKit.pri:

2007-01-23  George Staikos <staikos@kde.org>

        Put everything back since we can't build everything without it yet.

        * WebKit.pri:

2007-01-16  Lars Knoll <lars@trolltech.com>

        Reviewed by Zack

        Remove everything but the new public API from
        the include path.

        * WebKit.pri:

2007-01-11  George Staikos  <staikos@kde.org>

        Fix the Qt build

        * WebKit.pri:

2007-01-03  Lars Knoll <lars@trolltech.com>

        Fix the Qt build

        * WebKit.pri:

2006-12-17  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Rob Buis.

        * WebKit.pro: Build testkjs.

2006-12-14  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Brady.

        * Makefile.shared: use $PIPESTATUS[0] and a sub-shell to exit with xcodebuild's exit status

2006-12-13  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Brady and Anders.

        * Makefile.shared: Stop spewing the environment all the time, at least for command-line builds.

2006-12-10  Zack Rusin  <zack@kde.org>

        Client classes have been moved to WebKitQt/WebCoreSupport so
        adjusting the pri file.

        * WebKit.pri:

2006-12-10  George Staikos  <staikos@kde.org>

        Reviewed by Zack.

        Add WebKitBuild/Release back to the output dir for external build cases.

        * WebKit.pri:

2006-12-10  Zack Rusin  <zack@kde.org>

        Fix the link directory location.

        * WebKit.pri:

2006-12-10  Lars Knoll <lars@trolltech.com>

        Reviewed by Zack

        Include DumpRenderTree in the Qt build

        * WebKit.pro:

2006-12-09  George Staikos  <staikos@kde.org>

        Reviewed by Zack.

        Correct the path to the libraries for QMake.

        * WebKit.pri:

2006-12-09  Lars Knoll <lars@trolltech.com>

        Reviewed by Zack

        Make it possible to build WebKit with qmake.

        * WebKit.pri: Added.
        * WebKit.pro: Added.

2006-11-19  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Zack.

        http://bugs.webkit.org/show_bug.cgi?id=11649

        * CMakeLists.txt: Fix Qt-only build without KDE cmake files

2006-10-30  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Brady.

        Make the universal build return non-zero when module make fails.

        * Makefile:

2006-10-30  Stephanie Lewis  <slewis@apple.com>

        Reviewed by Darin Adler.

        Change Makefiles to return non-zero when module make fails.

        * Makefile:

2006-10-27  Brady Eidson  <beidson@apple.com>

        Rubber stamped by Tim Hatcher

        Added "make universal" to build universal binaries

        * Makefile:
        * Makefile.shared:

2006-10-01  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by eseidel.

        * CMakeLists.txt: add option to disable colored output when building on the buildbot

