2012-05-22  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] EFL's DRT needs to print information about received Web Intents
        https://bugs.webkit.org/show_bug.cgi?id=86864

        Reviewed by Adam Barth.

        Enable Web Intents by default on EFL port.

        * Source/cmake/OptionsEfl.cmake:

2012-05-21  Raphael Kubo da Costa  <rakuco@webkit.org>

        [EFL] Unreviewed build fix when ENABLE_VIDEO is off and ENABLE_VIDEO_TRACK is not.

        Do not enable VIDEO_TRACK if VIDEO itself has been disabled.

        * Source/cmake/OptionsEfl.cmake:

2012-05-21  Raphael Kubo da Costa  <rakuco@webkit.org>

        [EFL] Do not enable Web Audio support by default at build time.
        https://bugs.webkit.org/show_bug.cgi?id=86982

        Reviewed by Philippe Normand.

        Follow-up to r115800. Even though Web Audio support is disabled by
        default in build-webkit, enabling it in OptionsEfl.cmake will turn
        it on when building the port without build-webkit.

        Since Web Audio support for the EFL port does not seem to be fully
        working yet, it is better to disable it in all cases.

        * Source/cmake/OptionsEfl.cmake: Remove option override for
        ENABLE_WEB_AUDIO.

2012-05-21  Dominic Mazzoni  <dmazzoni@google.com>

        AX: A disabled select element should not be exposed as focusable
        https://bugs.webkit.org/show_bug.cgi?id=86949

        Reviewed by Chris Fleizach.

        * LayoutTests/accessibility/disabled-controls-not-focusable-expected.txt: Added.
        * LayoutTests/accessibility/disabled-controls-not-focusable.html: Added.
        * Source/WebCore/accessibility/AccessibilityListBox.h:
        (AccessibilityListBox):
        * Source/WebCore/accessibility/AccessibilityMenuList.cpp:
        (WebCore::AccessibilityMenuList::canSetFocusAttribute):
        (WebCore):
        * Source/WebCore/accessibility/AccessibilityMenuList.h:
        (AccessibilityMenuList):

2012-05-20  George Staikos  <staikos@webkit.org>

        [BlackBerry] Define navigator.vendor for BlackBerry.
        https://bugs.webkit.org/show_bug.cgi?id=86975

        Reviewed by Antonio Gomes.

        * Source/cmake/OptionsBlackBerry.cmake:

2012-05-20  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed build fix. Clean up no longer used files in DerivedSources.

        * wscript:

2012-05-19  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed build fix. Remove a couple files wx doesn't use from the build.

        * wscript:

2012-05-18  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Web Intents code is not compiling
        https://bugs.webkit.org/show_bug.cgi?id=85364

        Reviewed by Adam Barth.

        Remove broken CMake directive for WEB_INTENTS.

        * Source/cmake/OptionsEfl.cmake:

2012-05-18  Adrian Bunk  <bunk@stusta.de>

        [GTK] Remove the obsolete AM_PROG_CC_STDC
        https://bugs.webkit.org/show_bug.cgi?id=85250

        Reviewed by Martin Robinson.

        * configure.ac:

2012-05-18  Raphael Kubo da Costa  <rakuco@webkit.org>

        [CMake] Unreviewed, remove ENABLE_CSS_GRID_LAYOUT option after r117613.

        * Source/cmake/WebKitFeatures.cmake:

2012-05-18  Shezan Baig  <shezbaig.wk@gmail.com>

        Expose FrameSelection::absoluteCaretBounds via window.internals
        https://bugs.webkit.org/show_bug.cgi?id=86390

        Reviewed by Ryosuke Niwa.

        Exports necessary symbols.

        * Source/autotools/symbols.filter:

2012-05-18  Martin Robinson  <mrobinson@igalia.com>

        Get IndexedDB closer to building for GTK+.

        Reviewed by Philippe Normand.

        * configure.ac: Make out the IndexedDB imply USE_LEVELDB, as LevelDB is the
        only IndexedDB backend at the moment. Also mark IndexedDB as incomplete.

2012-05-18  Zalan Bujtas  <zbujtas@gmail.com>

        [Qt] Gesture tap highlighter needs to take overflow clip into account.
        https://bugs.webkit.org/show_bug.cgi?id=84989

        Reviewed by Kenneth Rohde Christiansen.

        * ManualTests/qt/tap-highlighting-overflow-hidden.html: Added.

2012-05-18  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Add simple implementation of Web Intents
        https://bugs.webkit.org/show_bug.cgi?id=86354

        Reviewed by Eric Seidel.

        Enable WEB_INTENTS flag by default on EFL port.

        * Source/cmake/OptionsEfl.cmake:

2012-05-17  Dan Bernstein  <mitz@apple.com>

        REGRESSION (r117428): WebKit API/SPI was removed
        https://bugs.webkit.org/show_bug.cgi?id=86748

        Reverted r117428.

        * Source/autotools/symbols.filter:

2012-05-17  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        [EFL] Fix link error caused by not directly linking with edbus
        https://bugs.webkit.org/show_bug.cgi?id=86747

        Unreviewed build fix.

        * Source/cmake/FindEFL.cmake:

2012-05-17  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Convert setDomainRelaxationForbiddenForURLScheme to use InternalSettings interface
        https://bugs.webkit.org/show_bug.cgi?id=86704

        Reviewed by Eric Seidel.

        * Source/autotools/symbols.filter: Add setDomainRelaxationForbiddenForURLScheme symbol filter.

2012-05-16  Kihong Kwon  <kihong.kwon@samsung.com>

        [EFL] Support for Battery Status API on the WebKit-Efl
        https://bugs.webkit.org/show_bug.cgi?id=83254

        Reviewed by Chang Shu.

        Add dependency check for e_ukit package which is in the e_dbus library.

        * Source/cmake/FindEFL.cmake:

2012-05-16  Varun Jain  <varunjain@google.com>

        [chromium] No modifier flags (shift/ctrl/alt) in drag&drop events on chromium linux
        https://bugs.webkit.org/show_bug.cgi?id=86236

        Reviewed by Tony Chang.

        * ManualTests/chromium/modifiers-during-drag-and-drop.html: Added.

2012-05-16  Keishi Hattori  <keishi@webkit.org>

        [chromium] Add WebKit API to access inner text value of input element
        https://bugs.webkit.org/show_bug.cgi?id=85353

        Reviewed by Kent Tamura.

        * Source/autotools/symbols.filter: Added HTMLInputElement::setEditingValue

2012-05-15  Kihong Kwon  <kihong.kwon@samsung.com>

        [EFL] Enable Fullscreen API
        https://bugs.webkit.org/show_bug.cgi?id=85870

        Reviewed by Antonio Gomes.

        Enable FULLSCREEN_API on the Efl port.

        * Source/cmake/OptionsEfl.cmake:

2012-05-14  Shinya Kawanaka  <shinyak@chromium.org>

        document.execCommand('Indent') in the direct child of ShadowRoot causes a crash.
        https://bugs.webkit.org/show_bug.cgi?id=86341

        Reviewed by Ryosuke Niwa.

        Exports necessary symbols.

        * Source/autotools/symbols.filter:

2012-05-14  Luke Macpherson  <macpherson@chromium.org>

        Introduce ENABLE_CSS_VARIABLES compile flag.
        https://bugs.webkit.org/show_bug.cgi?id=86338

        Reviewed by Dimitri Glazkov.

        Add a configuration option for CSS Variables support, disabling it by default.

        * Source/cmake/WebKitFeatures.cmake:

2012-05-14  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed build fix. Fix wxMSW build, and make sure we properly
        define WebKitVersion.h as a build target for all platforms to avoid
        unnecessary rebuilds.
        
        * wscript:

2012-05-11  Jeffrey Pfau  <jpfau@apple.com>

        REGRESSION (r114170): Scroll areas in nested frames improperly placed when tiled drawing is enabled
        https://bugs.webkit.org/show_bug.cgi?id=86239

        Reviewed by Anders Carlsson.

        * ManualTests/resources/frame-textarea.html: Added.
        * ManualTests/scrollable-positioned-frame.html: Added.
        * ManualTests/scrollable-positioned-nested-frame.html: Added.

2012-05-11  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed build fix, exclude some files we don't use from the build.

        * wscript:

2012-05-11  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Fix a reference counting issue in UserMediaRequest
        https://bugs.webkit.org/show_bug.cgi?id=86210

        Reviewed by Abhishek Arya.

        * ManualTests/user-media-request-crash.html: Added.

2012-05-11  Christophe Dumez  <christophe.dumez@intel.com>

        Web Intents code only supports V8
        https://bugs.webkit.org/show_bug.cgi?id=85954

        Reviewed by Adam Barth.

        Add ENABLE_WEB_INTENTS flag to CMake.

        * Source/cmake/WebKitFeatures.cmake:
        * Source/cmakeconfig.h.cmake:

2012-05-11  Xiaobo Wang  <xbwang@torchmobile.com.cn>

        [BlackBerry] Update DumpRenderTree.cpp to also run ref-tests if there're any
        https://bugs.webkit.org/show_bug.cgi?id=86055

        Reviewed by Rob Buis.

        Ref-tests are tests with suffix "-expected", "-expected-mismatch" and a valid
        extension(".html", ".htm", etc.).
        Currently torch-launcher only run tests parsed by NRWT, with ref-tests
        excluded. As a result, if a test have ref-tests (which were not run), our
        DumpRenderTree Perl script will think there's a crash and exit with code 1.
        So NRWT will report the result as CRASH.
        We need to update DumpRenderTree.cpp to try to find ref-tests and run them.

        * DumpRenderTree/blackberry/DumpRenderTree.cpp:
        (BlackBerry::WebKit::DumpRenderTree::DumpRenderTree):
        (BlackBerry::WebKit::DumpRenderTree::getRefTests):
        (WebKit):
        (BlackBerry::WebKit::DumpRenderTree::runCurrentTest):
        (BlackBerry::WebKit::DumpRenderTree::runRemainingTests):
        (BlackBerry::WebKit::DumpRenderTree::runTests):
        * DumpRenderTree/blackberry/DumpRenderTreeBlackBerry.h:
        (DumpRenderTree):

2012-05-10  MORITA Hajime  <morrita@google.com>

        ElementShadow should minimize the usage of "ShadowRoot" name
        https://bugs.webkit.org/show_bug.cgi?id=85970

        Reviewed by Dimitri Glazkov.

        Removed symbols which no longer exists

        * Source/autotools/symbols.filter:

2012-05-10  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Move resumeAnimations to use Internals interface
        https://bugs.webkit.org/show_bug.cgi?id=86063

        Reviewed by Alexey Proskuryakov.

        * Source/autotools/symbols.filter: Add a symbol filter for resumeAnimations. 

2012-05-10  Zan Dobersek  <zandobersek@gmail.com>

        [GTK] ENABLE_IFRAME_SEAMLESS support
        https://bugs.webkit.org/show_bug.cgi?id=85843

        Reviewed by Eric Seidel.

        Add a configuration option for enabling the iframe seamless
        attribute support, enabling it by default.

        * configure.ac:

2012-05-09  Stephen Chenney  <schenney@chromium.org>

        SVG Filters allow invalid elements as children
        https://bugs.webkit.org/show_bug.cgi?id=83979

        Reviewed by Nikolas Zimmermann.

        This test will crash upon load in Chromium, unless the associated fix is in.

        * ManualTests/bugzilla-83979.svg: Added.

2012-05-09  Kent Tamura  <tkent@chromium.org>

        Calendar Picker: Fix a crash by changing input type.
        https://bugs.webkit.org/show_bug.cgi?id=86007

        Reviewed by Hajime Morita.

        * ManualTests/forms/calendar-picker-crash-by-type-change.html: Added.

2012-05-09  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Move suspendAnimations to use Internals interface.
        https://bugs.webkit.org/show_bug.cgi?id=85986

        Reviewed by Ryosuke Niwa.

        * Source/autotools/symbols.filter: Add a symbol filter for suspendAnimations. 

2012-05-09  Hugo Parente Lima  <hugo.lima@openbossa.org>

        Use suitable viewport values on XHTML-MP pages.
        https://bugs.webkit.org/show_bug.cgi?id=85425

        Reviewed by Kenneth Rohde Christiansen.

        Add LEGACY_VIEWPORT_ADAPTION use feature to cmake build system,
        this feature will enable the use of a suitable viewport size
        on legacy XHTML-MP pages.

        * Source/cmake/WebKitFeatures.cmake:

2012-05-09  Crystal Zhang  <haizhang@rim.com>

        [BlackBerry] Enable PAGE_POPUP in make file, and implement required methods
        https://bugs.webkit.org/show_bug.cgi?id=85907

        Reviewed by Rob Buis.

        Enable PAGE_POPUP option in make files.

        Internal reviewed by Yong Li.

        * Source/cmake/OptionsBlackBerry.cmake:
        * Source/cmakeconfig.h.cmake:

2012-05-09  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Split WebKit2 Makefile moving source code listings to GNUmakefile.list.am
        https://bugs.webkit.org/show_bug.cgi?id=85985

        Reviewed by Gustavo Noronha Silva.

        * GNUmakefile.am:

2012-05-09  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Use independent version numbers for public libraries
        https://bugs.webkit.org/show_bug.cgi?id=85984

        Reviewed by Gustavo Noronha Silva.

        * configure.ac: Define LIBJAVASCRIPTCOREGTK_VERSION and
        LIBWEBKIT2GTK_VERSION using the same version as
        LIBWEBKITGTK_VERSION for backwards compatibility.

2012-05-08  Raphael Kubo da Costa  <rakuco@webkit.org>

        [CMake] FindGStreamer: Fix the build with static WebCore.
        https://bugs.webkit.org/show_bug.cgi?id=85930

        Reviewed by Daniel Bates.

        Building WebCore statically was failing because files in
        WebCore/platform/gstreamer when ENABLE_VIDEO was set required
        gstreamer-base, which was not being linked to after r116453.

        Fix that by looking for gstreamer-base, requiring and linking
        against it if GStreamer is used.

        * Source/cmake/FindGStreamer.cmake:

2012-05-08  Raphael Kubo da Costa  <rakuco@webkit.org>

        [CMake] Rewrite FindGStreamer.cmake.
        https://bugs.webkit.org/show_bug.cgi?id=85857

        Reviewed by Daniel Bates.

        We are currently kind of duplicating the same
        FindGStreamer-Foo.cmake file whenever a new GStreamer plugin needs
        to be found. Besides this approach not scaling very well, it
        relies on pkg-config for version checking, uses the LibFindMacros
        package that we should deprecate and all the find files could be
        merged into one, with users using the COMPONENTS feature of the
        FIND_PACKAGE() call to find the desired plugins.

        FindGStreamer.cmake has then been rewritten to take all that into
        account:
        - The LibFindMacros.cmake package is not used anymore.
        - Version check is performed in the CMake file itself by parsing
        the gstversion.h header.
        - All GStreamer plugins are searched and the COMPONENTS keyword
        used in the FIND_PACKAGE() call is used to check which plugins are
        required.
        - The plugins-base and base GStreamer plugins are not searched, as
        they were not used anywhere in the build system.

        * Source/cmake/FindGStreamer-App.cmake: Removed.
        * Source/cmake/FindGStreamer-Audio.cmake: Removed.
        * Source/cmake/FindGStreamer-Base.cmake: Removed.
        * Source/cmake/FindGStreamer-FFT.cmake: Removed.
        * Source/cmake/FindGStreamer-Interfaces.cmake: Removed.
        * Source/cmake/FindGStreamer-Pbutils.cmake: Removed.
        * Source/cmake/FindGStreamer-Plugins-Base.cmake: Removed.
        * Source/cmake/FindGStreamer-Video.cmake: Removed.
        * Source/cmake/FindGStreamer.cmake: Rewrite as described above.
        * Source/cmake/OptionsEfl.cmake: Use COMPONENTS to specify which
        GStreamer plugins to look for.

2012-05-08  Ryosuke Niwa  <rniwa@webkit.org>

        perf-o-matic fix attempt for dashboard images.

        Rubber-stamped by Antti Koivisto.

        Also stop generating images for 30, 90, and 365 days since they have been timing out.

        * Websites/webkit-perf.appspot.com/controller.py:
        (schedule_runs_update):
        * Websites/webkit-perf.appspot.com/models.py:
        (Runs.chart_params):

2012-05-08  Christophe Dumez  <christophe.dumez@intel.com>

        [CMake] Add ENABLE_IFRAME_SEAMLESS flag
        https://bugs.webkit.org/show_bug.cgi?id=85838

        Reviewed by Eric Seidel.

        Add ENABLE_IFRAME_SEAMLESS flag to CMake and enable it by default.
        This flag was introduced by r116356.

        * Source/cmake/WebKitFeatures.cmake:
        * Source/cmakeconfig.h.cmake:

2012-05-08  Balazs Kelemen  <kbalazs@webkit.org>

        [Qt] X11 plugins need to be reworked for Qt5+WK1
        https://bugs.webkit.org/show_bug.cgi?id=80691

        Reviewed by Simon Hausmann.

        Implement basic windowless plugin support with Qt5.

        * Source/api.pri: Need private API's to be able
        to use QApplicationPrivate::windowForWidget.

2012-05-07  Dave Tu  <dtu@chromium.org>

        Adjust flakiness dashboard gpu_tests image diff URLs.
        https://bugs.webkit.org/show_bug.cgi?id=85423

        Reviewed by Ojan Vafai.

        * Tools/TestResultServer/static-dashboards/flakiness_dashboard.js:

2012-05-07  Liam Quinn  <lquinn@rim.com>

        [BlackBerry] WWW-Authenticate header on 200 response pops up authentication dialog
        https://bugs.webkit.org/show_bug.cgi?id=85643

        Reviewed by George Staikos.

        RIM PR: 151992
        Added manual test for WWW-Authenticate header on a 200 response.

        * ManualTests/blackberry/http-auth-on-200.php: Added.

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

        [Qt] Unreviewed trivial build fix: Don't include bytearraytestdata.h in the QtWebKit
        module header.

        * Source/sync.profile:

2012-05-06  MORITA Hajime  <morrita@google.com>

        https://bugs.webkit.org/show_bug.cgi?id=85265
        [Shadow DOM] ShadowTree needs a better name

        Reviewed by Dimitri Glazkov.

        * Source/autotools/symbols.filter: Updated exported symbol names according to the rename.

2012-05-06  Dan Bernstein  <mitz@apple.com>

        Part of: Building and debugging WebKit in the Xcode IDE requires a lot of setup
        https://bugs.webkit.org/show_bug.cgi?id=85739

        Reviewed by Daniel Bates.

        * WebKit.xcworkspace: Added.
        * WebKit.xcworkspace/contents.xcworkspacedata: Added.
        * WebKit.xcworkspace/xcshareddata: Added.
        * WebKit.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: Added.
        * WebKit.xcworkspace/xcshareddata/xcschemes: Added.
        * WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme: Added
        this scheme, which builds all source projects and runs WebProcess with
        Safari as the client executable.
        * WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme: Added
        this scheme, which builds all source projects and runs Safari.
        * WebKit.xcworkspace/xcshareddata/xcschemes/All Tools.xcscheme: Added
        this scheme, which builds all tools projects and runs DumpRenderTree.

2012-05-06  Gustavo Noronha Silva  <gns@gnome.org>

        [GTK] Enable WebKit2 build by default (again)
        https://bugs.webkit.org/show_bug.cgi?id=85750

        * configure.ac: enable wk2 build by default.

2012-05-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Convert isPageBoxVisible to use Internals interface.
        https://bugs.webkit.org/show_bug.cgi?id=85692

        Reviewed by Darin Adler.

        * Source/autotools/symbols.filter: Add isPageBoxVisible symbol filter.

2012-05-06  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>

        [BlackBerry] Enable credential persistance and auto fill
        https://bugs.webkit.org/show_bug.cgi?id=85572

        Reviewed by Rob Buis.

        Enable credential persistance and auto fill feature by adding
        ENABLE_BLACKBERRY_CREDENTIAL_PERSIST=1.

        * Source/cmake/OptionsBlackBerry.cmake:

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

        Unreviewed preparation for 1.9.2.

        * configure.ac: bump version to 1.9.2 and bump libtool version.

2012-05-04  Jer Noble  <jer.noble@apple.com>

        Flash of white when exiting full screen HTML5 video
        https://bugs.webkit.org/show_bug.cgi?id=85438

        Reviewed by Sam Weinig.

        * ManualTests/fullscreen/full-screen-flash.html: Added.

2012-05-04  Jer Noble  <jer.noble@apple.com>

        Taking a visibility:hidden element full screen causes full screen window to disappear.
        https://bugs.webkit.org/show_bug.cgi?id=85432

        Reviewed by Maciej Stachowiak.

        * ManualTests/fullscreen/full-screen-zero-width.html: Added.

2012-05-04  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed, rolling out r116075.
        http://trac.webkit.org/changeset/116075

        WebKit2 build was broken while WebKit2 build was disabled in bots,
        so nobody noticed it. Disable the WebKit2 build for now to keep
        the bots green again until we find the actual commit that
        broke the WebKit2 build.

        * configure.ac:

2012-05-04  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Enable WebKit2 by default in configure.

        This was removed in r115624 to make sure release 1.9.1 didn't have
        WebKit2 enabled by default, because we are using the same library
        versions for WebKit1 and WebKit2.

        * configure.ac: Enable WebKit2 by default.

2012-05-03  Raphael Kubo da Costa  <rakuco@webkit.org>

        [CMake] Rewrite FindCairo.cmake.
        https://bugs.webkit.org/show_bug.cgi?id=84895

        Reviewed by Daniel Bates.

        The old approach relied on pkg-config for finding Cairo (which
        introduced a dependency on pkg-config that could be avoided), used
        the LibFindMacros code that we should probably remove in the
        future and did not use the FindPackageHandleStandardArguments
        module.

        Change all that by rewriting the module.
        - Use the pkg-config output optionally instead of requiring it
        like LibFindMacros did.
        - Remove the implicit dependency on FreeType which often found it
        the wrong way via pkg-config and without considering
        CMAKE_PREFIX_PATH.
        - Retrieve the Cairo version by looking at cairo-version.h instead
        of relying on pkg-config. It requires some additional code for
        checking if the desired version has been found, but that will not
        be needed once we start depending on CMake 2.8.3 or later.

        The only downside is that FPHSA sets <UPPERCASED_NAME>_FOUND
        instead of <Name>_FOUND, and to keep things consistent
        Cairo_LIBRARIES and Cairo_INCLUDE_DIRS have become CAIRO_LIBRARIES
        and CAIRO_INCLUDE_DIRS.

        * Source/cmake/FindCairo.cmake:

2012-05-03  Mike Fenton  <mifenton@rim.com>

        Rename attribute.

        [BlackBerry] Add special attribute for alternate selection touch handling.
        https://bugs.webkit.org/show_bug.cgi?id=85284

        Reviewed by Rob Buis.

        * ManualTests/blackberry/selection-touch-override.html:

2012-05-03  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [CMAKE] Remove unneeded keyword in WebKitFeatures.cmake
        https://bugs.webkit.org/show_bug.cgi?id=85461

        Reviewed by Eric Seidel.

        DEFAULT keyword wasn't removed on Bug 72815.

        * Source/cmake/WebKitFeatures.cmake: Remove DEFAULT keyword in ENABLE_DRAG_SUPPORT field.

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

        [Qt] Unreviewed prospective QtMobility build fix.

        * Source/api.pri: The Qt 4 equivalent of QT += sensors should be handled by
        WebCore.pri, but somehow it isn't.

2012-05-02  Lars Knudsen  <lars.knudsen@nokia.com>

        [Qt] Make DeviceMotion and DeviceOrientation work with WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=64595

        Reviewed by Kenneth Rohde Christiansen.

        Moving DeviceMotion and DeviceOrientation clients and providers
        to WebCore.  This is done to allow clean dependencies when
        statically linking WK2.

        * Source/api.pri:

2012-05-02  Dongwoo Im  <dw.im@samsung.com>

        [EFL] Implement the Web Audio API feature.
        https://bugs.webkit.org/show_bug.cgi?id=78688

        Reviewed by Philippe Normand.

        Implement the Web Audio API feature on the EFL port.
        https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html

        * Source/cmake/FindGStreamer-Audio.cmake: Added. Find the pkgconfig of the GStreamer-audio.
        * Source/cmake/FindGStreamer-FFT.cmake: Added. Find the pkgconfig of the GStreamer-fft.
        * Source/cmake/OptionsEfl.cmake: Add the ENABLE_WEB_AUDIO option.
        * Source/cmakeconfig.h.cmake: Add the ENABLE_WEB_AUDIO option.

2012-05-01  Landry Breuil  <landry@openbsd.org>

        [GTK] Fix gstreamer detection during configure
        https://bugs.webkit.org/show_bug.cgi?id=84325

        Reviewed by Philippe Normand.

        * configure.ac: Fix GSTREAMER_REQUIRED_VERSION and
        GSTREAMER_PLUGINS_BASE_REQUIRED_VERSION assignments.

2012-05-01  Mike Fenton  <mifenton@rim.com>

        Add special attribute for alternate selection touch handling.
        https://bugs.webkit.org/show_bug.cgi?id=85284

        Reviewed by Antonio Gomes.

        PR 152975.

        Add manual test for -bb-selection-touchoverride.

        Reviewed Internally by Gen Mak.

        * ManualTests/blackberry/selection-touch-override.html: Added.

2012-04-25  Raphael Kubo da Costa  <rakuco@webkit.org>

        [CMake] Add a proper license to FindSqlite.cmake.
        https://bugs.webkit.org/show_bug.cgi?id=84901

        Reviewed by Daniel Bates.

        FindSqlite.cmake referenced COPYING-CMAKE-SCRIPTS, which was
        supposed to contain its license. This file, however, was not
        imported with FindSqlite.cmake into the tree.

        Add it from kdelibs (where the Find file came from) at git
        revision [1]. Also worth mentioning is that Alexander Neundorf
        added Gilles Caulier as the script author in revision [2].

        [1] https://projects.kde.org/projects/kde/kdelibs/repository/revisions/c27925edf98b9952aeada677dfc74ce9c809c48a
        [2] https://projects.kde.org/projects/kde/kdelibs/repository/revisions/14d0a92e04e1a200d6e58397e57a29194a0819cf

        * Source/cmake/FindSqlite.cmake:

2012-04-30  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Update NEWS and configure.ac for 1.9.1 release
        https://bugs.webkit.org/show_bug.cgi?id=85175

        Reviewed by Philippe Normand.

        * configure.ac: Bumped version number. Disable WebKit2 by default
        for now, since we still don't use a different libtool version for
        libwebkit2gtk. It will be enabled again after the release and the
        library version will be reworked for the next release.

2012-04-30  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix make distcheck.

        * GNUmakefile.am: Add ALL_MOFILES declaration.

2012-04-28  Yury Semikhatsky  <yurys@chromium.org>

        Unreviewed. Gtk build fix after r115553.

        * Source/autotools/symbols.filter:

2012-04-26  Carlos Garcia Campos  <cgarcia@igalia.com>

        [SOUP] Add a way to register custom uri schemes in WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=84130

        Reviewed by Martin Robinson.

        * GNUmakefile.am: Add BUILDING_SOUP__ macro to compilation.

2012-04-26  Antonio Gomes  <agomes@rim.com>

        [BlackBerry] properly disable DRAG_SUPPORT
        https://bugs.webkit.org/show_bug.cgi?id=84952

        Reviewed by Daniel Bates.

        Add CMake build options to toggle DRAG_SUPPORT on/off,
        and set its value for BlackBerry port.

        * Source/cmake/OptionsBlackBerry.cmake: Toggled in ON.
        * Source/cmake/OptionsBlackBerry.cmake: Toggled OFF.
        * Source/cmake/OptionsWinCE.cmake: Toggled it OFF.
        * Source/cmake/OptionsWindows.cmake: Toggled it ON.
        * Source/cmakeconfig.h.cmake:

2012-04-26  Antonio Gomes  <agomes@rim.com>

        [BlackBerry] Add smooth_scrolling options to CMAKE and enable it for Blackberry
        https://bugs.webkit.org/show_bug.cgi?id=84954

        Reviewed by Daniel Bates.

        * Source/cmakeconfig.h.cmake: Make it possible for CMake builds to
          toggle SMOOTH_SCROLLING on/off
        * Source/cmake/OptionsBlackBerry.cmake: ... and set it to ON by defualt
          for the Blackberry port.

2012-04-26  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Enable VIDEO_TRACK feature
        https://bugs.webkit.org/show_bug.cgi?id=84830

        Reviewed by Gustavo Noronha Silva.

        Enable VIDEO_TRACK feature by default on EFL port.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/WebKitFeatures.cmake:
        * Source/cmakeconfig.h.cmake:

2012-04-24  Kent Tamura  <tkent@chromium.org>

        Calendar Picker: Resize to minimal size to fit the content
        https://bugs.webkit.org/show_bug.cgi?id=84826

        Reviewed by Hajime Morita.

        * ManualTests/forms/calendar-picker.html:
        Sync with the size specified in CalendarPickerElement.cpp.

2012-04-25  Allan Sandfeld Jensen  <allan.jensen@nokia.com>

        [Qt] Zoom back can overscroll document edges.
        https://bugs.webkit.org/show_bug.cgi?id=84851

        Reviewed by Kenneth Rohde Christiansen.

        Manual test for overscroll on zoom-back. Needs to be manual since we do not yet
        have automatic testing for this type of UI-side behaviour.

        * ManualTests/qt/double-tap-overscroll.html: Added.

2012-04-24  Yael Aharon  <yael.aharon@nokia.com>

        Fixed background is scrolling in http://www.nieuwecode.nl/ in Qt webkit2
        https://bugs.webkit.org/show_bug.cgi?id=83980

        Reviewed by Simon Fraser.

        * ManualTests/fixed-position-no-z-index.html: Added.

2012-04-24  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Build and run TestWebKitAPI unit tests
        https://bugs.webkit.org/show_bug.cgi?id=84325

        Reviewed by Philippe Normand.

        * GNUmakefile.am: Include makefiles to build gtest and
        TestWebKitAPI. Add BUILDING_WEBKIT2__ macro to compilation when
        building WebKit2.

2012-04-24  Charles Wei  <charles.wei@torchmobile.com.cn>

        [BlackBerry] Input Range element expects mouse events
        https://bugs.webkit.org/show_bug.cgi?id=84571

        Reviewed by Antonio Gomes.

        Input element with Range type expects mouse events to
        drag the handle. Note that Input Range could appear
        in both the web page directly, or in some shadow tree,
        like the MediaControlTimeline and MediaControlVolume.
        * ManualTests/blackberry/slider-thumb-consumes-event.html: Added.

2012-04-24  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Enable Web Timing
        https://bugs.webkit.org/show_bug.cgi?id=84705

        Reviewed by Tony Gentilcore.

        Enable Web Timing in EFL port for for performance profiling and
        improvement.

        * Source/cmake/OptionsEfl.cmake:

2012-04-23  Kent Tamura  <tkent@chromium.org>

        Add test function to get placeholder string
        https://bugs.webkit.org/show_bug.cgi?id=84536

        Reviewed by Ryosuke Niwa.

        * Source/autotools/symbols.filter:
        Expose Node::textContent and HTMLTextFormControlElement::placeholderShouldBeVisible.

2012-04-22  Sriram Neelakandan  <sriram.neelakandan@gmail.com>

        [Gtk] Added MOZ_X11 build flag for TARGET_X11
        [Qt]  Added MOZ_X11 build flag for !embedded
        [CMake]  Added MOZ_X11 build flag for WTF_OS_UNIX
        https://bugs.webkit.org/show_bug.cgi?id=40785

        Reviewed by Anders Carlsson.

        * GNUmakefile.am:
        * Source/cmake/OptionsCommon.cmake:

2012-04-22  Adrian Bunk  <bunk@stusta.de>

        [GTK] Remove the obsolete Hildon UI extensions
        https://bugs.webkit.org/show_bug.cgi?id=83420

        Reviewed by Martin Robinson.

        * configure.ac:

2012-04-18  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        [CMake] Use jsc target instead of ONLY_BUILD_JAVASCRIPTCORE
        https://bugs.webkit.org/show_bug.cgi?id=84229

        CMake caches ONLY_BUILD_JAVASCRIPTCORE=1 and will reuse the setting for
        subsequent builds, stopping WebCore from being built ever again.

        Instead of trying to emulate a build target using command line options,
        just build the existing jsc target directly.

        Reviewed by Rob Buis.

        * CMakeLists.txt:

2012-04-18  Jason Liu  <jason.liu@torchmobile.com.cn>

        [BlackBerry] HTTP GET header has a "Cookie" when refreshing a page after cookies have been cleared.
        https://bugs.webkit.org/show_bug.cgi?id=84223

        Reviewed by George Staikos.

        * ManualTests/blackberry/clear-cookie-refresh-result.php: Added.
        * ManualTests/blackberry/clear-cookie-refresh.php: Added.

2012-04-17  Yong Li  <yoli@rim.com>

        REGRESSION (r105453): Crash when handling touch events
        https://bugs.webkit.org/show_bug.cgi?id=81958

        Reviewed by Antonio Gomes.

        Add a manual test for this issue because DumpRenderTree
        currently cannot send a group of touch points with
        different touch states in one shot.

        * ManualTests/resources/iframe-reloaded-on-touch.html: Added.
        * ManualTests/touch-stale-iframe-crash.html: Added.

2012-04-17  Kent Tamura  <tkent@chromium.org>

        Calendar Picker: Support RTL layout
        https://bugs.webkit.org/show_bug.cgi?id=83668

        Reviewed by Hajime Morita.

        * ManualTests/forms/calendar-picker.html:
        Add Arabic parameters.
        Add <select> to select a locale.

2012-04-16  Dave Tu  <dtu@chromium.org>

        Re-add GPU DEPS builders to flakiness dashboard.
        https://bugs.webkit.org/show_bug.cgi?id=84056

        Reviewed by Ojan Vafai.

        * Tools/TestResultServer/static-dashboards/builders.js:

2012-04-16  Gustavo Noronha Silva  <gns@gnome.org>

        [GTK] Bump dependency on GTK+ 3.x to match reality
        https://bugs.webkit.org/show_bug.cgi?id=84060

        Rubber-stamped by Martin Robinson.

        * configure.ac: Bump GTK+ 3 requirement to 3.4.0. In practice we
        already depend on this version because of our dependency on a recent
        glib, which causes linking issues with older GTK+; also bump glib to
        its earliest version.

2012-04-16  Philippe Normand  <pnormand@igalia.com>

        [GTK] GStreamer 1.0 support in configure.ac
        https://bugs.webkit.org/show_bug.cgi?id=84029

        Reviewed by Martin Robinson.

        The GStreamer version was recently changed to 1.0 in the git
        repositories of the project so we need to reflect this change in
        configure.ac.

        * configure.ac:

2012-04-16  Yael Aharon  <yael.aharon@nokia.com>

        [Qt][WK2] Fixed elements position is wrong after zooming.
        https://bugs.webkit.org/show_bug.cgi?id=83981

        Reviewed by Kenneth Rohde Christiansen.

        * ManualTests/remove-add-fixed-position.html: Added.

2012-04-13  Jason Liu  <jason.liu@torchmobile.com.cn>

        [BlackBerry] Sign in cookie for ESPN.com does not retain login account (for fantasy sports).
        https://bugs.webkit.org/show_bug.cgi?id=83760

        Reviewed by George Staikos.

        * ManualTests/blackberry/http-cookie-database-set.php: Added.
        * ManualTests/blackberry/http-cookie-database-update.php: Added.

2012-04-13  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        [EFL] Add API for color chooser
        https://bugs.webkit.org/show_bug.cgi?id=83692

        Enables INPUT_TYPE_COLOR by default on the EFL port.

        Reviewed by Kenneth Rohde Christiansen.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/WebKitFeatures.cmake:
        * Source/cmakeconfig.h.cmake:

2012-04-12  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Enable WebKit2 by default in configure
        https://bugs.webkit.org/show_bug.cgi?id=83753

        Reviewed by Martin Robinson.

        * configure.ac:

2012-04-12  Bear Travis  <betravis@adobe.com>

        [CSS Exclusions] Add flag to enable / disable exclusions at runtime
        https://bugs.webkit.org/show_bug.cgi?id=83313

        Reviewed by Ryosuke Niwa.

        Adding the GTK symbols

        * Source/autotools/symbols.filter:

2012-04-12  George Staikos  <staikos@webkit.org>

        Enable the fullscreen API for BlackBerry.
        https://bugs.webkit.org/show_bug.cgi?id=83757

        Reviewed by Antonio Gomes.

        * Source/cmake/OptionsBlackBerry.cmake:

2012-04-12  Yael Aharon  <yael.aharon@nokia.com>

        [Qt][WK2] Nested fixed elements scroll too fast
        https://bugs.webkit.org/show_bug.cgi?id=83720

        Reviewed by Noam Rosenthal.

        * ManualTests/nested-fixed-position.html: Added.

2012-03-15  Martin Robinson  <mrobinson@igalia.com>

        [CAIRO] Make GLContextGLX a subclass of GLContext
        https://bugs.webkit.org/show_bug.cgi?id=81285

        Reviewed by Gustavo Noronha Silva.

        * GNUmakefile.am: Add a configuration option for activating GLX.
        This is selected automatically now, but in the future there will be
        the choice to turn on EGL and turn off GLX at compilation time.
        * configure.ac: Ditto.

2012-04-10  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        [Qt] InspectorServer: Add an API level auto test
        https://bugs.webkit.org/show_bug.cgi?id=83594

        Reviewed by Kenneth Rohde Christiansen.

        * Source/tests.pri:

2012-04-11  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Add WEBKIT_CREATE_FORWARDING_HEADERS macro
        https://bugs.webkit.org/show_bug.cgi?id=83574

        Reviewed by Daniel Bates.

        This new macro generates forwarding headers with absolute paths to the original files.
        It accepts a list of files and/or a list of directories as input.

        * Source/cmake/WebKitMacros.cmake:

2012-04-10  Yael Aharon  <yael.aharon@nokia.com>

        Initial support for fixed position elements in Qt WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=81786

        Reviewed by Noam Rosenthal.

        * ManualTests/fixed-position.html: Added.

2012-04-10  Raphael Kubo da Costa  <rakuco@webkit.org>

        [CMake] Do not pass -P to the preprocessor when running make_names.pl.
        https://bugs.webkit.org/show_bug.cgi?id=83225

        Reviewed by Rob Buis.

        This is necessary to make CMake-based ports build with the
        recently-released GCC 4.7.0, whose preprocessor seems to ignore
        empty lines when -P is passed to it.  Such behavior breaks
        make_names.pl (in fact, InFilesParser.pm), which expects an empty
        line to separate common and specific sections in .in files.

        A fix for this same problem has been supposedly done in r84123,
        but as the CMake-based ports always pass --preprocessor to the
        Perl tools the fix never reached us.

        The idea is to define CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS
        for (!MSVC && !QNX) and use it in the macros which call
        make_names.pl.

        * Source/cmake/OptionsCommon.cmake:
        * Source/cmake/WebKitMacros.cmake:

2012-04-10  Patrick Gansterer  <paroga@webkit.org>

        [CMake][WIN] Add /MP flag when using a compiler with support for it
        https://bugs.webkit.org/show_bug.cgi?id=83577

        Reviewed by Daniel Bates.

        * Source/cmake/OptionsWindows.cmake:

2012-04-10  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Add missing DERIVED_SOURCES_WEBKIT_DIR variable
        https://bugs.webkit.org/show_bug.cgi?id=83573

        Reviewed by Daniel Bates.

        We need this variable when ports want to generate files in the WebKit target.

        * CMakeLists.txt:

2012-04-10  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Enable USE_FOLDERS property
        https://bugs.webkit.org/show_bug.cgi?id=83571

        Reviewed by Daniel Bates.

        Setting the FOLDER property on targets gives more structure
        to the generated Visual Studio solutions.
        This does not affect other CMake generators.

        * Source/cmake/OptionsCommon.cmake:

2012-04-06  Ryosuke Niwa  <rniwa@webkit.org>

        Update perf-o-matic config.js per upstream change.

        * Websites/webkit-perf.appspot.com/js/config.js:
        (var):

2012-04-09  Dale Curtis  <dalecurtis@chromium.org>

        Remove unworkable video-buffering-repaints-controls test.
        https://bugs.webkit.org/show_bug.cgi?id=83097

        Replaces the automated test for progress bar repaints during buffering
        with a manual test entry.

        Reviewed by Eric Carlson.

        * ManualTests/media-controls.html:

2012-04-09  Ming Xie  <mxie@rim.com>

        [BlackBerry] Allow simulator to use GLES2 acceleration
        https://bugs.webkit.org/show_bug.cgi?id=81672

        Reviewed by Rob Buis.

        * Source/cmake/OptionsBlackBerry.cmake:

2012-04-09  Zalan Bujtas  <zbujtas@gmail.com>

        [Qt][WK2] Fail to activate links after double tap gesture.
        https://bugs.webkit.org/show_bug.cgi?id=83468

        Reviewed by Kenneth Rohde Christiansen.

        * ManualTests/link-activation-fails-after-double-tap-gesture.html: Added.

2012-04-09  Martin Robinson  <mrobinson@igalia.com>

        [soup] Crash while loading http://www.jusco.cn
        https://bugs.webkit.org/show_bug.cgi?id=68238

        Reviewed by Philippe Normand.

        * configure.ac: Bumped the libsoup dependency to 2.37.90.

2012-04-09  Abhishek Arya  <inferno@chromium.org>

        Crash due to floats not cleared before starting SVG <text> layout.
        https://bugs.webkit.org/show_bug.cgi?id=83021

        Reviewed by Dirk Schulze.

        * ManualTests/svg-text-float-not-removed-crash.html: Added.

2012-04-09  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Build fix for USE_SYSTEM_MALLOC after r113570.

        * Source/cmakeconfig.h.cmake:

2012-04-09  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Share build system options across ports
        https://bugs.webkit.org/show_bug.cgi?id=72815

        Reviewed by Daniel Bates.

        Don't define the generic features for every port again.
        Add a few macros for reusing the central defined options.

        * CMakeLists.txt:
        * Source/cmake/OptionsBlackBerry.cmake:
        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmake/WebKitFeatures.cmake:

2012-04-07  Rob Buis  <rbuis@rim.com>

        [BlackBerry] Add Battery Status API support
        https://bugs.webkit.org/show_bug.cgi?id=82615

        Reviewed by George Staikos.

        Enable BATTERY_STATUS.

        * Source/cmake/OptionsBlackBerry.cmake:

2012-04-06  Martin Robinson  <mrobinson@igalia.com>

        Fix the GTK+ debug build.

        * Source/autotools/symbols.filter: Add a missing symbol to the symbols.list file.

2012-04-05  George Staikos  <staikos@webkit.org>

        Compile the vibration module for BlackBerry.
        https://bugs.webkit.org/show_bug.cgi?id=83340

        Reviewed by Rob Buis.

        * Source/cmake/OptionsBlackBerry.cmake:

2012-04-05  Ryosuke Niwa  <rniwa@webkit.org>

        perf-o-matic should include unit in runs JSON responses
        https://bugs.webkit.org/show_bug.cgi?id=83294

        Reviewed by Tony Chang.

        This is a follow up to r112829. Report the unit in /api/test/runs so that the frontend can show it.
        Fixed a bug in Test.update_or_insert that it didn't store the unit when it first created the Test object.

        Also increment perf-o-matic's version to 18.

        * Websites/webkit-perf.appspot.com/app.yaml: Incremented the version.
        * Websites/webkit-perf.appspot.com/models.py:
        (Test.update_or_insert.execute): Store unit when creating a test.
        (Runs.to_json): Include unit.
        * Websites/webkit-perf.appspot.com/models_unittest.py: Added tests.
        (TestModelTests.test_update_or_insert_with_unit):
        (RunsTest.test_to_json_without_results):
        (RunsTest.test_to_json_with_results):
        (RunsTest.test_to_json_with_unit):

2012-03-14  Antonio Gomes  <agomes@rim.com>

        Extend HitTestResult to support not "discarding" shadow content in favor of its DOM ancestor
        https://bugs.webkit.org/show_bug.cgi?id=80847

        Reviewed by David Hyatt.

        Exporting Internals::nodesFromRect symbols for the Gtk build.

        * Source/autotools/symbols.filter:

2012-04-05  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>

        [BlackBerry] Clear local storage won't take effect until browser exit and relaunch
        https://bugs.webkit.org/show_bug.cgi?id=83253

        Reviewed by Rob Buis.

        RIM PR: #146871
        Added a manual test case to test the behavior when press
        button "Clear Local Storage" from browser settings.
        It has to be a manual test as it requires user interaction.

        * ManualTests/blackberry/clear-localstorage.html: Added.

2012-04-04  Kent Tamura  <tkent@chromium.org>

        Add JavaScript and CSS code for the calendar picker implementation
        https://bugs.webkit.org/show_bug.cgi?id=83011

        Reviewed by Hajime Morita.

        * ManualTests/forms/calendar-picker.html: Added.

2012-04-04  Hayato Ito  <hayato@chromium.org>

        Remove ReifiedTreeTraversal.
        https://bugs.webkit.org/show_bug.cgi?id=83110

        Reviewed by Dimitri Glazkov.

        * Source/autotools/symbols.filter:

2012-04-04  Shinya Kawanaka  <shinyak@chromium.org>

        Shadow DOM is exposed in JS.
        https://bugs.webkit.org/show_bug.cgi?id=82607

        Reviewed by Hajime Morita.

        * Source/autotools/symbols.filter:

2012-04-03  Tony Chang  <tony@chromium.org>

        remove WebKit files from .gitattributes
        https://bugs.webkit.org/show_bug.cgi?id=82966

        Reviewed by Adam Barth.

        * .gitattributes: These entries were never updated from the move to
        Source/WebKit so they're probably not needed.

2012-04-03  Keishi Hattori  <keishi@webkit.org>

        Disable ENABLE_DATALIST for now
        https://bugs.webkit.org/show_bug.cgi?id=82871

        Reviewed by Kent Tamura.

        We should disable ENABLE_DATALIST because
        - We need platform-dependent implementation, and non-BlackBerry platforms don't have it.
        - We need to hide the content of <datalist>, but it is shown for now.

        * Source/cmake/OptionsEfl.cmake: Disabled ENABLE_DATALIST.

2012-04-02  Balazs Kelemen  <kbalazs@webkit.org>

        [Qt][WK2] Set up plugin process on Unix
        https://bugs.webkit.org/show_bug.cgi?id=72121

        Reviewed by Simon Hausmann.

        * Source/QtWebKit.pro: Add PluginProcess subproject.

2012-04-02  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r112868, r112879, and r112881.
        http://trac.webkit.org/changeset/112868
        http://trac.webkit.org/changeset/112879
        http://trac.webkit.org/changeset/112881
        https://bugs.webkit.org/show_bug.cgi?id=82901

        "Build fail on bots." (Requested by kbalazs on #webkit).

        * Source/QtWebKit.pro:

2012-04-02  Balazs Kelemen  <kbalazs@webkit.org>

        [Qt][WK2] Set up plugin process on Unix
        https://bugs.webkit.org/show_bug.cgi?id=72121

        Reviewed by Simon Hausmann.

        * Source/QtWebKit.pro: Add PluginProcess subproject.

2012-04-02  Hayato Ito  <hayato@chromium.org>

        [Shadow DOM] Introduce ComposedShadowTreeWalker as a successor of ReifiedTreeTraversal APIs
        https://bugs.webkit.org/show_bug.cgi?id=82009

        Reviewed by Dimitri Glazkov.

        * Source/autotools/symbols.filter:

2012-04-01  Ryosuke Niwa  <rniwa@webkit.org>

        Perf-o-matic build fix after 112829 for Chromium-style tests.

        * Websites/webkit-perf.appspot.com/report_process_handler.py:
        (ReportProcessHandler.post):

2012-04-01  Ryosuke Niwa  <rniwa@webkit.org>

        perf-o-matic should store test results' units
        https://bugs.webkit.org/show_bug.cgi?id=82852

        Reviewed by Kentaro Hara.

        * Websites/webkit-perf.appspot.com/models.py:
        (Test):
        (Test.update_or_insert): Added "unit" to the argument list.
        (Test.update_or_insert.execute): Store the unit.
        (ReportLog.results_are_well_formed): Moved from ReportHandler.
        (ReportLog.results_are_well_formed._is_float_convertible): Ditto.
        * Websites/webkit-perf.appspot.com/models_unittest.py:
        (TestModelTests.test_update_or_insert): Added a test case for "unit" argument.
        (TestModelTests.test_update_or_insert_to_update): Ditto.
        (ReportLogTests.test_results_are_well_formed): Added.
        (ReportLogTests.test_results_are_well_formed.assert_results_are_well_formed): Added.
        * Websites/webkit-perf.appspot.com/report_handler.py:
        (ReportHandler.post): Calls ReportLog.results_are_well_formed.
        * Websites/webkit-perf.appspot.com/report_process_handler.py:
        (ReportProcessHandler.post): Passes results['unit'] to Test.update_or_insert.

2012-04-01  Ryosuke Niwa  <rniwa@webkit.org>

        Admin page should lexicologically sort tests
        https://bugs.webkit.org/show_bug.cgi?id=82849

        Rubber-stamped by Hajime Morita.

        * Websites/webkit-perf.appspot.com/js/admin.js:
        * Websites/webkit-perf.appspot.com/js/config.js:
        (sortProperties):
        (fetchDashboardManifest):

2012-04-01  Ryosuke Niwa  <rniwa@webkit.org>

        Revert an inadvertently committed change.

        * Websites/webkit-perf.appspot.com/app.yaml:

2012-04-01  Ryosuke Niwa  <rniwa@webkit.org>

        perf-o-matic should have a way to hide some platforms and tests
        https://bugs.webkit.org/show_bug.cgi?id=82842

        Reviewed by Hajime Morita.

        * Websites/webkit-perf.appspot.com/admin.html:
        * Websites/webkit-perf.appspot.com/admin_handlers.py:
        (AdminDashboardHandler.get_branches): Change the json format to allow platforms and tests to have
        "hidden" boolean states.
        (AdminDashboardHandler.get_platforms): Ditto.
        (AdminDashboardHandler.get_builders): Just a cleanup. There is no clean for it to have a limit.
        (AdminDashboardHandler.get_tests): Change the json format to add "hidden" boolean states.
        (ChangeVisibilityHandler): Added.
        (ChangeVisibilityHandler.post): Added. Changes the hidden-state (visibility) of a platform and a test.
        * Websites/webkit-perf.appspot.com/app.yaml: Make sure everything under /admin/ requires admin privilege.
        * Websites/webkit-perf.appspot.com/create_handler.py:
        (CreateHandler.post): Don't emit LF after 'OK'.
        * Websites/webkit-perf.appspot.com/css/admin.css: Added a bunch of rules for hide/show button.
        * Websites/webkit-perf.appspot.com/js/admin.js:
        (submitXHR): Extracted.
        (createKeyNameReloader): Added hide/show button on each item and the corresponding ajax request.
        * Websites/webkit-perf.appspot.com/json_generators.py:
        (DashboardJSONGenerator.__init__): Skip hidden tests and platforms.
        (ManifestJSONGenerator.__init__): Ditto.
        * Websites/webkit-perf.appspot.com/json_generators_unittest.py: Added tests to ensure perf-o-matic
        doesn't include hidden tests and platforms in dashboard and manifest json responses.
        (DashboardJSONGeneratorTest.test_value_with_hidden_platform_and_tesst):
        (ManifestJSONGeneratorTest.test_value_two_tests):
        (ManifestJSONGeneratorTest.test_value_with_hidden_platform_and_test):
        * Websites/webkit-perf.appspot.com/main.py:
        * Websites/webkit-perf.appspot.com/models.py:
        (Platform): Added the "hidden" property.
        (Test): Ditto. Also removed the comment about this class only exists for efficiency purposes since that's
        no longer true.

2012-04-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Support the Network Information API
        https://bugs.webkit.org/show_bug.cgi?id=73528

        Reviewed by Adam Barth.

        Add network information API feature.

        * Source/cmake/OptionsEfl.cmake: Add NETWORK_INFO feature.
        * Source/cmakeconfig.h.cmake: Add NETWORK_INFO feature.

2012-03-31  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>

        [BlackBerry] http authenticate dialog popup only once no matter authentication pass or fail
        https://bugs.webkit.org/show_bug.cgi?id=80135

        Reviewed by Rob Buis.

        RIM PR: 145660
        Added manual test for testing the behavior of http authentication
        challenge dialog. Both of these two files should be served over http.

        * ManualTests/blackberry/http-auth-challenge.html: Added.
        * ManualTests/blackberry/http-auth-challenge.php: Added.

2012-03-30  Eli Fidler  <efidler@rim.com>

        Enable OpenType Sanitizer for BlackBerry port.
        https://bugs.webkit.org/show_bug.cgi?id=82782

        Reviewed by Eric Seidel.

        * Source/cmake/OptionsBlackBerry.cmake: define USE(OPENTYPE_SANITIZER)

2012-03-30  Zalan Bujtas  <zbujtas@gmail.com>

        Fix defective size_t overflow in GestureTapHighlighter.
        https://bugs.webkit.org/show_bug.cgi?id=82605

        Reviewed by Kenneth Rohde Christiansen.

        * ManualTests/tap-gesture-in-iframe-with-tap-highlight-crash.html: Added.

2012-03-30  David Barr  <davidbarr@chromium.org>

        Split up top-level .gitignore and .gitattributes
        https://bugs.webkit.org/show_bug.cgi?id=82687

        Reviewed by Tor Arne Vestbø.

        Jeff King <peff@peff.net> suggested this on the git mailing list.
        http://article.gmane.org/gmane.comp.version-control.git/194294
        He reported a 1.6 times speed up for 'git status'.

        * .gitattributes:
        * .gitignore:
        * ManualTests/.gitattributes: Added.
        * Source/.gitignore: Added.
        * Websites/.gitattributes: Added.

2012-03-30  Keishi Hattori  <keishi@webkit.org>

        Change ENABLE_INPUT_COLOR to ENABLE_INPUT_TYPE_COLOR and enable it for chromium
        https://bugs.webkit.org/show_bug.cgi?id=80972

        Reviewed by Kent Tamura.

        * Source/cmake/OptionsBlackBerry.cmake:
        * configure.ac:

2012-03-30  Charles Wei  <charles.wei@torchmobile.com.cn>

        [BlackBerry] Add more ENABLERS to cmakeconfig.h.cmake
        https://bugs.webkit.org/show_bug.cgi?id=82594

        Reviewed by Rob Buis.

        Upstreaming feature enablers in cmakeconfig.h.cmake for BlackBerry porting,
        and clean up obsolete MACROs in OptionsBlackBerry.cmake.

        * Source/cmake/OptionsBlackBerry.cmake:
        * Source/cmakeconfig.h.cmake:

2012-03-29  Dave Tu  <dtu@chromium.org>

        Add new chrome.webkit GPU bot to flakiness dashboard.
        https://bugs.webkit.org/show_bug.cgi?id=82562

        Reviewed by Ojan Vafai.

        * Tools/TestResultServer/static-dashboards/builders.js:

2012-03-29  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed build fix. Remove a couple sources wx
        should not build.

        * wscript:

2012-03-29  Zalan Bujtas  <zbujtas@gmail.com>

        Remove redundant updateViewportArguments() call when page is restored from page cache.
        https://bugs.webkit.org/show_bug.cgi?id=82500

        Reviewed by Kenneth Rohde Christiansen.

        Add manual test for history navigation with viewport width check.

        * ManualTests/viewport-width-test-after-history-navigation.html: Added.

2012-03-28  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed. Build fix, move WTF back into JSCore target
        until issues with JSCore not linking in all WTF symbols are resolved.

        * wscript:

2012-03-28  Sergio Villar Senin  <svillar@igalia.com>

        [Soup] DNS prefetching spams resolver, shoots self in the foot
        https://bugs.webkit.org/show_bug.cgi?id=41630

        Reviewed by Martin Robinson.

        Bump libsoup and glib dependencies.

        * Source/cmake/OptionsEfl.cmake:
        * configure.ac:

2012-03-28  Xan Lopez  <xlopez@igalia.com>

        [GTK] Respect NOCONFIGURE option in autogen.sh
        https://bugs.webkit.org/show_bug.cgi?id=82447

        Reviewed by Philippe Normand.

        Make autogen.sh follow the new build-api for GNOME, see
        http://people.gnome.org/~walters/docs/build-api.txt

        * autogen.sh: respect the NOCONFIGURE environment flag, per the
        new GNOME build-api.

2012-03-27  Ryosuke Niwa  <rniwa@webkit.org>

        Perf-o-matic build fix.

        * Websites/webkit-perf.appspot.com/controller.py:
        (RunsChartHandler.post):
        * Websites/webkit-perf.appspot.com/models.py:
        (Runs.chart_params):

2012-03-27  Dave Tu  <dtu@chromium.org>

        Show image diffs for gpu_tests on flakiness dashboard
        https://bugs.webkit.org/show_bug.cgi?id=81848

        Reviewed by Ojan Vafai.

        Add a new results layout for gpu_tests that pulls the image diffs in
        addition to the text output. Also add new gpu_tests builders.

        * Tools/TestResultServer/static-dashboards/builders.js: Update
        gpu_tests builders.
        * Tools/TestResultServer/static-dashboards/dashboard_base.js: Add a
        function to check for GPU test type.
        * Tools/TestResultServer/static-dashboards/flakiness_dashboard.html:
        Add new GPU results layout.

2012-03-26  Ryosuke Niwa  <rniwa@webkit.org>

        Trigger a build on Chromium Linux boxes to see if clean builds succeed or not.

2012-03-26  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Skeleton code of AsyncFileSystemBlackBerry.cpp
        https://bugs.webkit.org/show_bug.cgi?id=82157

        Reviewed by Rob Buis.

        * Source/cmake/OptionsBlackBerry.cmake: Turn on ENABLE_FILE_SYSTEM for blackberry.

2012-03-25  Hayato Ito  <hayato@chromium.org>

        [Shadow DOM] Add Reified DOM Tree traversal internal APIs.
        https://bugs.webkit.org/show_bug.cgi?id=79197

        Reviewed by Dimitri Glazkov.

        Add internal APIs which can be used to traverse Reified DOM tree, which is
        a result of node distribution algorithm explained in Shadow DOM spec.
        https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html

        Every public functions defined in ReifiedTreeTraversal are static
        functions and are named in a similar way to ones defined in WebCore::Node class.
        The only difference is that ReifiedTreeTraversal APIs consider shadow
        hosts and also traverse nodes is Shadow DOM subtrees, crossing shadow's upper and lower boundary
        transparently.

        There is no actual client which uses these APIs. Follow-up patches for FocusNavigation
        and EventDispatcher will use the APIs so that they can traverse node in reified tree order.

        * Source/autotools/symbols.filter:

2012-03-25  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed build fix. Move WTF to its own static lib build.
        
        * wscript:

2012-03-24  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed. Fix the build after WTF move.

        * wscript:

2012-03-23  Dave Michael  <dmichael@chromium.org>

        Relanding(r111754): HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called
        https://bugs.webkit.org/show_bug.cgi?id=80428

Reviewed by Eric Seidel and Ryosuke Niwa.

        Test: plugins/netscape-dom-access-and-reload.html

        * Source/autotools/symbols.filter: Export a symbol for InspectorCounters::counterValue.

2012-03-23  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r111754): plugins/reloadplugins-and-pages.html fails on all platforms
        https://bugs.webkit.org/show_bug.cgi?id=82035

        * Source/autotools/symbols.filter:

2012-03-22  Raphael Kubo da Costa  <rakuco@FreeBSD.org>

        [CMake] Unreviewed build fix after r111778.

        * Source/CMakeLists.txt: Build WTF/.

2012-03-22  Martin Robinson  <mrobinson@igalia.com>

        Fixed the GTK+ WTF/JavaScriptCore build after r111778.

        * GNUmakefile.am: Remove a couple unnecessary gnumake variables.

2012-03-22  Csaba Osztrogonác  <ossy@webkit.org>

        Actually move WTF files to their new home
        https://bugs.webkit.org/show_bug.cgi?id=81844

        [Qt] Unreviewed buildfix after r111778.

        * Source/api.pri:

2012-03-22  Ming Xie  <mxie@rim.com>

        OLD_COMPILE_FLAGS was set incorrectly in WebKitHelpers.cmake
        https://bugs.webkit.org/show_bug.cgi?id=81961

        Reviewed by Rob Buis.

        This fixes the regression introduced by r109292

        * Source/cmake/WebKitHelpers.cmake:

2012-03-22  Dave Michael  <dmichael@chromium.org>

        HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called
        https://bugs.webkit.org/show_bug.cgi?id=80428

        Reviewed by Eric Seidel.

        Test: plugins/netscape-dom-access-and-reload.html

        * Source/autotools/symbols.filter: Export a symbol for InspectorCounters::counterValue.

2012-03-22  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed. Adding Source/WTF to the build and updating
        waf port list.

        * wscript:

2012-03-21  Ryosuke Niwa  <rniwa@webkit.org>

        Add the forgotten admin.html after r108917.

        * Websites/webkit-perf.appspot.com/admin.html: Added.

2012-03-21  Ryosuke Niwa  <rniwa@webkit.org>

        Increment the perf-o-matic app version.

        * Websites/webkit-perf.appspot.com/app.yaml:

2012-03-20  Eric Seidel  <eric@webkit.org>

        Move wtf/Platform.h from JavaScriptCore to Source/WTF/wtf
        https://bugs.webkit.org/show_bug.cgi?id=80911

        Reviewed by Adam Barth.

        * CMakeLists.txt: Define WTF_DIR

2012-03-20  Ryosuke Niwa  <rniwa@webkit.org>

        Perf-o-matic: don't query datastore to generate chart API urls
        https://bugs.webkit.org/show_bug.cgi?id=81499

        Reviewed by Hajime Morita.

        Parse json text to extract timestamps and test values instead of iterating
        through the data store.

        * Websites/webkit-perf.appspot.com/create_handler.py:
        (CreateHandler.post):
        * Websites/webkit-perf.appspot.com/models.py:
        (Runs._timestamp_and_value_from_json_entry):
        (Runs):
        (Runs.to_json):
        (Runs.chart_params):

2012-03-20  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Convert hasSpellingMarker to use Internals interface.
        https://bugs.webkit.org/show_bug.cgi?id=81300

        Reviewed by Ryosuke Niwa.

        * Source/autotools/symbols.filter: Export a symbol for hasSpellingMarker.

2012-03-19  Tony Chang  <tony@chromium.org>

        clean up gitignore
        https://bugs.webkit.org/show_bug.cgi?id=81594

        Reviewed by James Robinson.

        * .gitignore: .suo files are per-user files used by VS2010. .ninja
        files are no longer generated in the tree-- they are generated in the
        build directory.

2012-03-17  Charles Wei  <charles.wei@torchmobile.com.cn>

        [BlackBerry] Enable Web Timing for performance profiling and improvement.
        https://bugs.webkit.org/show_bug.cgi?id=81085

        Reviewed by Rob Buis.

        * Source/cmake/OptionsBlackBerry.cmake:
        * Source/cmakeconfig.h.cmake:

2012-03-16  Kihong Kwon  <kihong.kwon@samsung.com>

        Support for Battery Status API.
        https://bugs.webkit.org/show_bug.cgi?id=62698

        Enable BATTERY_STATUS for WebKit-Efl.
        http://www.w3.org/TR/battery-status/

        Reviewed by Adam Barth.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmakeconfig.h.cmake:

2012-03-15  Patrick Gansterer  <paroga@webkit.org>

        [EFL] Make zlib a general build requirement
        https://bugs.webkit.org/show_bug.cgi?id=80153

        Reviewed by Hajime Morita.

        After r109538 WebSocket module needs zlib to support deflate-frame extension.

        * Source/cmake/OptionsEfl.cmake:

2012-03-15  Rob Buis  <rbuis@rim.com>

        [BlackBerry] Remove some features that we do not have anymore
        https://bugs.webkit.org/show_bug.cgi?id=81274

        Reviewed by Antonio Gomes.

        Remove some features that we do not have anymore, code was removed some time ago.

        * Source/cmake/OptionsBlackBerry.cmake:

2012-03-14  Matt Falkenhagen  <falken@chromium.org>

        Allow per-script font settings to be specified in layout tests
        https://bugs.webkit.org/show_bug.cgi?id=78184

        Reviewed by Hajime Morita.

        This adds per-script font settings to InternalSettings, so it can be used in layout tests instead of
        the per-script font settings support in DumpRenderTree overridePreference, which has only been implemented
        for Chromium so far.

        * Source/autotools/symbols.filter: Added symbols.

2012-03-14  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        [EFL] Enable HTML5 Summary and Details elements
        https://bugs.webkit.org/show_bug.cgi?id=81027

        Enabling Summary and Details elements by default and removing related
        tests from skip list since they should pass now.

        Reviewed by Antonio Gomes.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmakeconfig.h.cmake:

2012-03-14  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: add didCancelFrame timeline event
        https://bugs.webkit.org/show_bug.cgi?id=80994

        Reviewed by Pavel Feldman.

        * Source/autotools/symbols.filter:

2012-03-14  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Deal with multiple paths in QMAKE_EXTRA_MODULE_FORWARDS

        Reviewed by Simon Hausmann.

        * Source/api.pri:

2012-03-14  Max Vujovic  <mvujovic@adobe.com>

        GTK 32-bit Linux Release build failing after r110580 (from bug 80338)
        https://bugs.webkit.org/show_bug.cgi?id=81063

        Prospective build fix for GTK 32-bit Linux Release.

        Reviewed by Martin Robinson.

        * Source/autotools/symbols.filter: Adding symbol for ClientRectList(Vector<FloatQuad>) for
        GTK 32-bit.

2012-03-13  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/11025225> Assertion failure in RenderView::computeRectForRepaint() (!repaintContainer || repaintContainer == this) at store.apple.com
        https://bugs.webkit.org/show_bug.cgi?id=81051

        Reviewed by Simon Fraser.

        * ManualTests/inline-repaint-container.html: Added.

2012-03-13  Adam Barth  <abarth@webkit.org> && Benjamin Poulain  <bpoulain@apple.com>

        Always enable ENABLE(CLIENT_BASED_GEOLOCATION)
        https://bugs.webkit.org/show_bug.cgi?id=78853

        Reviewed by Adam Barth.

        * Source/cmake/OptionsBlackBerry.cmake:
        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmakeconfig.h.cmake:

2012-03-13  Max Vujovic  <mvujovic@adobe.com>

        Add a method to window.internals to enable testing of inspector highlight rects
        https://bugs.webkit.org/show_bug.cgi?id=80338

        Reviewed by Pavel Feldman.

        * Source/autotools/symbols.filter: Export symbols for GTK.

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

        Cleanup obsolete files.
        https://bugs.webkit.org/show_bug.cgi?id=80737

        Reviewed by James Robinson.

        * wscript:

2012-03-12  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Make sure we set the right library version for Qt 4

        r110272 accedentally pruned the variable that ensures this.

        Reviewed by Simon Hausmann.

        * Source/api.pri:

2012-03-10  Ryosuke Niwa  <rniwa@webkit.org>

        Increment the perf-o-matic app version.

        * Websites/webkit-perf.appspot.com/app.yaml:

2012-03-09  Jon Lee  <jonlee@apple.com>

        Add support for ENABLE(LEGACY_NOTIFICATIONS)
        https://bugs.webkit.org/show_bug.cgi?id=80497

        Reviewed by Adam Barth.

        Prep for b80472: Update API for Web Notifications
        * Source/cmake/OptionsBlackBerry.cmake:
        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmakeconfig.h.cmake:
        * configure.ac:

2012-03-09  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Disable WebGL performance tests temporarily.
        https://bugs.webkit.org/show_bug.cgi?id=80503

        Rubber-stamped by Simon Hausmann.

        * Source/tests.pri:

2012-03-09  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r110191, r110202, and r110279.
        http://trac.webkit.org/changeset/110191
        http://trac.webkit.org/changeset/110202
        http://trac.webkit.org/changeset/110279
        https://bugs.webkit.org/show_bug.cgi?id=80694

        They broke !ENABLE(INSPECTOR) builds (Requested by Ossy on
        #webkit).

        * Source/autotools/symbols.filter:

2012-03-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Use Qt's module system for install rules and depending on QtWebKit

        Instead of rolling our own install rules we now use the same approach as
        every other Qt module, by loading qt_module.prf and qt_module_config.prf.

        This ensures that we follow the same semantics as the rest of Qt on
        what sort of config options are enabled by default (create_cmake eg.).
        It also allows us to use QT += webkit instead of the workaround we had
        with CONFIG += qtwebkit.

        We do however force Qt to always treat our build as a non-developer build,
        so the libraries will end up in the WebKit lib directory instead of the
        qtbase directory (as with a normal developer-build). This allows us to
        keep the webkit-build self-contained. If Qt is a developer build we still
        copy the module file manually to Qt, so that you don't have to install
        WebKit to make it available.

        For non-developer builds of Qt, it is still possible to use the built
        WebKit libraries without having to install them, by having the variable
        QMAKE_EXTRA_MODULE_FORWARDS set in the project's .qmake.cache file,
        pointing to $WEBKITOUTUTDIR/$CONFIGURATION/modules.

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

        Reviewed by Simon Hausmann.

        * Source/api.pri:
        * Source/sync.profile:

2012-03-08  Ryosuke Niwa  <rniwa@webkit.org>

        perf-o-matic should incrementally update JSON responses
        https://bugs.webkit.org/show_bug.cgi?id=79898

        Reviewed by Eric Seidel.

        Now that Runs object store test_runs and averages separately,
        we can update JSON data incrementally without degrading values.

        Also fixed the order of arguments passed to DashboardImage.needs_update
        in schedule_runs_update. This bug had caused all chart images to be
        updated on every new report.

        * Websites/webkit-perf.appspot.com/controller.py:
        (schedule_runs_update):
        * Websites/webkit-perf.appspot.com/models.py:
        (Runs.update_or_insert):
        (Runs.update_incrementally):
        (Runs):
        (Runs.get_by_objects):
        * Websites/webkit-perf.appspot.com/models_unittest.py:
        (RunsTest._create_results):
        (RunsTest.test_generate_runs):
        (RunsTest.test_update_or_insert):
        (RunsTest.test_update_incrementally):
        (RunsTest.test_to_json_with_results):
        * Websites/webkit-perf.appspot.com/report_process_handler.py:
        (ReportProcessHandler.post):

2012-03-08  Max Vujovic  <mvujovic@adobe.com>

        Add a method to window.internals to enable testing of inspector highlight rects
        https://bugs.webkit.org/show_bug.cgi?id=80338

        Reviewed by Pavel Feldman.

        * Source/autotools/symbols.filter: Export symbols for GTK.

2012-03-05  Ryosuke Niwa  <rniwa@webkit.org>

        Turn Runs class into a proper model to implement incremental JSON update
        https://bugs.webkit.org/show_bug.cgi?id=80364

        Reviewed by Hajime Morita.

        Move Runs from json_generators.py to models.py and turn it into a proper Model.

        Now most JSON responses are held by Runs objects instead of PersistentCache.
        Added some tests around update_or_insert and json_by_ids to test PersistentCache-like
        behavior but there should be no user-visible behavioral differences.

        * Websites/webkit-perf.appspot.com/controller.py:
        (RunsUpdateHandler.post):
        (CachedRunsHandler.get):
        (RunsChartHandler.post):
        * Websites/webkit-perf.appspot.com/json_generators.py:
        (ManifestJSONGenerator.value):
        * Websites/webkit-perf.appspot.com/json_generators_unittest.py:
        (ManifestJSONGeneratorTest.test_value_two_tests):
        * Websites/webkit-perf.appspot.com/models.py:
        (Test):
        (Runs):
        (Runs._generate_runs):
        (Runs._entry_from_build_and_result):
        (Runs._key_name):
        (Runs.update_or_insert):
        (Runs.json_by_ids):
        (Runs.to_json):
        (Runs.chart_params):
        * Websites/webkit-perf.appspot.com/models_unittest.py:
        (RunsTest):
        (RunsTest.setUp):
        (RunsTest._create_results):
        (RunsTest.test_generate_runs):
        (RunsTest.test_update_or_insert):
        (RunsTest.test_json_by_ids):
        (RunsTest.test_to_json_without_results):
        (RunsTest.test_to_json_with_results):
        (RunsTest._assert_entry):
        (RunsTest.test_run_from_build_and_result):
        (RunsTest.test_run_from_build_and_result.create_build):
        (RunsTest.test_chart_params_with_value):
        (RunsTest.test_chart_params_with_value.split_as_int):

2012-03-07  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Fix compilation without QtQuick1
        https://bugs.webkit.org/show_bug.cgi?id=80503

        Reviewed by Tor Arne Vestbø.

        * Source/tests.pri: Compile qml1 tests only with Qt 4 for the moment.

2012-03-07  Mark Rowe  <mrowe@apple.com>

        Teach make to build WTF.

        * Source/Makefile:

2012-03-06  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [CMake] Make the removal of transitive library dependencies work with CMake < 2.8.7.
        https://bugs.webkit.org/show_bug.cgi?id=80469

        Reviewed by Antonio Gomes.

        * CMakeLists.txt: Do not set the CMAKE_LINK_INTERFACE_LIBRARIES
        variable here; it was introduced in CMake 2.8.7 so we can't depend
        on it as we actually support CMake >= 2.8.0.

2012-03-06  Hajime Morrita  <morrita@chromium.org>

        https://bugs.webkit.org/show_bug.cgi?id=79935
        REGRESSION: <content> element is not HTMLUnknownElement when Shadow DOM API is disabled

        Reviewed by Adam Barth.

        Added a newly exported symbol.

        * Source/autotools/symbols.filter:

2012-03-06  Raphael Kubo da Costa  <kubo@profusion.mobi>

        undefined reference to JSC::IdentifierTable::~IdentifierTable() on EFL port
        https://bugs.webkit.org/show_bug.cgi?id=80282

        Reviewed by Antonio Gomes.

        Remove transitive library dependencies; they are especially
        dangerous when one ends up linking against WTF, JSC and then WTF
        again, since some symbols will not be defined.

        Passing --no-copy-dt-needed-entries and --as-needed to the linker
        (which some recent Linux distros do by default) makes the issue
        even more evident.

        * CMakeLists.txt: Set CMAKE_LINK_INTERFACE_LIBRARIES to an empty
        list to prevent implicit transitive library dependencies from
        being created by default.

2012-03-05  Ryosuke Niwa  <rniwa@webkit.org>

        Perf-o-matic should memcache dashboard images
        https://bugs.webkit.org/show_bug.cgi?id=80349

        Reviewed by Eric Seidel.

        Added DashboardImage.create and DashboardImage.get_image to encapsulate memcache.
        Also replaced transaction in DashboardImage.set_cache by a single put since it duplicates
        what put does by default.

        Also removed redundant cache_* functions and merged them into handler code.

        * Websites/webkit-perf.appspot.com/controller.py:
        (ManifestUpdateHandler.post):
        (CachedManifestHandler.get):
        (DashboardUpdateHandler.post):
        (CachedDashboardHandler.get):
        (RunsUpdateHandler):
        (RunsUpdateHandler.post):
        (RunsChartHandler):
        (RunsChartHandler.post):
        (DashboardImageHandler.get):
        * Websites/webkit-perf.appspot.com/models.py:
        (PersistentCache.set_cache):
        (DashboardImage):
        (DashboardImage.create):
        (DashboardImage.get_image):
        * Websites/webkit-perf.appspot.com/models_unittest.py:
        (PersistentCacheTests.setUp):
        (PersistentCacheTests.test_set_cache):
        (PersistentCacheTests.test_get_cache):
        (DashboardImageTests.setUp):
        (DashboardImageTests):
        (DashboardImageTests.test_create):
        (DashboardImageTests.test_get):

2012-03-05  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r109760.
        http://trac.webkit.org/changeset/109760
        https://bugs.webkit.org/show_bug.cgi?id=80320

        Caused many GTK+ tests to crash (Requested by mrobinson on
        #webkit).

        * configure.ac:

2012-03-05  Kangil Han  <kangil.han@samsung.com>

        [CMake][DRT] Add WebCoreTestSupport.
        https://bugs.webkit.org/show_bug.cgi?id=79896

        Reviewed by Daniel Bates.

        Add WebCoreTestSupport library for DRT in CMake.
        We will use internals object by linking this library on DRT.

        * CMakeLists.txt:

2012-03-05  Martin Robinson  <mrobinson@igalia.com>

        [soup] Crash while loading http://www.jusco.cn
        https://bugs.webkit.org/show_bug.cgi?id=68238

        Reviewed by Philippe Normand.

        * configure.ac: Bumped the libsoup dependency to 2.37.90.

2012-03-04  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [CMake] Libraries are installed to /usr/lib and not /usr/lib64 on x86_64
        https://bugs.webkit.org/show_bug.cgi?id=71507

        Reviewed by Antonio Gomes.

        * Source/cmake/OptionsCommon.cmake: Provide two variables which
        can be changed via CMake: LIB_SUFFIX, which is often used in CMake
        projects to let the user choose whether a suffix should be added
        to the library installation directory (such as 32 or 64), and
        LIB_INSTALL_DIR, which takes LIB_SUFFIX into account to determine
        whether to install libraries.

2012-03-03  Hans Wennborg  <hans@chromium.org>

        Implement Speech JavaScript API
        https://bugs.webkit.org/show_bug.cgi?id=80019

        Reviewed by Adam Barth.

        Add ENABLE_SCRIPTED_SPEECH.

        * configure.ac:

2012-03-02  Alexandre Rostovtsev  <tetromino@gentoo.org>

        Make webkit-gtk translations respect LINGUAS
        https://bugs.webkit.org/show_bug.cgi?id=79605

        Reviewed by Martin Robinson.

        PO_LINGUAS, USER_LINGUAS, and USE_LINGUAS added to root
        GNUmakefile.am to ensure that they can be used in the definition of
        MOFILES that will be generated by automake.

        * GNUmakefile.am:

2012-03-02  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Remove deleted file from api.pro

        Reviewed by Noam Rosenthal.

        * Source/api.pri:

2012-03-02  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Compile WebCore without QtWidgets
        https://bugs.webkit.org/show_bug.cgi?id=80141

        Reviewed by Tor Arne Vestbø.

        * Source/api.pri: Use QT += opengl for the WebKit1 bits, such as the QGLWidget
        usage in PageClientQt.cpp. Previously this dependency came implicitly through WebCore.pri.

2012-03-02  Byungwoo Lee  <bw80.lee@samsung.com>

        [EFL] Build warning : comparison between signed and unsigned integer expressions.
        https://bugs.webkit.org/show_bug.cgi?id=79860

        Reviewed by Hajime Morita.

        Fixed build warnings which are getting generated when comparing signed
        and unsigned integer expressions.

        * Source/WebCore/bindings/js/JSDocumentCustom.cpp:
        * Source/WebCore/platform/ContextMenu.cpp:
        * Source/WebKit/efl/ewk/ewk_view_single.cpp:

2012-03-02  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Move QStyle theming code out of WebCore into WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=80128

        Reviewed by Kenneth Rohde Christiansen.

        * Source/api.pri: Adjust to moving source files.

2012-03-01  Ryosuke Niwa  <rniwa@webkit.org>

        Perf-o-matic: generate dashboard images for 30, 90, and 365 days
        https://bugs.webkit.org/show_bug.cgi?id=80016

        Reviewed by Eric Seidel.

        Add the ability to generate graphs for 30, 90, and 365 day graphs but only occasionally
        according to the heuristics in DashboardImage.needs_update.

        Also fix a bug in Runs.chart_params that y-axis grid was set to an incorrect value.
 
        * Websites/webkit-perf.appspot.com/controller.py:
        (schedule_runs_update):
        (RunsChartHandler.post):
        * Websites/webkit-perf.appspot.com/json_generators.py:
        (Runs.chart_params):
        * Websites/webkit-perf.appspot.com/json_generators_unittest.py:
        (RunsTest.test_chart_params_with_value):
        * Websites/webkit-perf.appspot.com/models.py:
        (DashboardImage):
        (DashboardImage.needs_update):
        * Websites/webkit-perf.appspot.com/models_unittest.py:
        (HelperTests._assert_there_is_exactly_one_id_holder_and_matches):
        (HelperTests.test_create_in_transaction_with_numeric_id_holder.execute):
        (HelperTests.test_create_in_transaction_with_numeric_id_holder):
        (HelperTests.test_failing_in_create_in_transaction_with_numeric_id_holder):
        (HelperTests.test_raising_in_create_in_transaction_with_numeric_id_holder):
        (HelperTests.test_delete_model_with_numeric_id_holder.execute):
        (HelperTests.test_delete_model_with_numeric_id_holder):
        (HelperTests.test_model_from_numeric_id.execute):
        (HelperTests):
        (HelperTests.test_model_from_numeric_id):
        (BranchTests.test_create_if_possible):
        (PlatformTests.test_create_if_possible):
        (BuilderTests.test_create):
        (BuilderTests.test_update_password):
        (BuilderTests.test_hashed_password):
        (BuilderTests.test_authenticate):
        (_create_some_builder):
        (_create_build):
        (BuildTests.test_get_or_insert_from_log):
        (TestModelTests.test_update_or_insert):
        (TestModelTests.test_update_or_insert_to_update):
        (TestModelTests.test_merge):
        (TestResultTests.test_get_or_insert_value):
        (TestResultTests.test_get_or_insert_stat_value):
        (TestResultTests.test_replace_to_change_test_name):
        (TestResultTests.test_replace_to_change_test_name_with_stat_value):
        (TestResultTests.test_replace_to_change_test_name_overrides_conflicting_result):
        (ReportLogTests._create_log_with_payload):
        (ReportLogTests.test_builder):
        (ReportLogTests.test_branch):
        (ReportLogTests.test_platform):
        (PersistentCacheTests._assert_persistent_cache):
        (PersistentCacheTests.test_set):
        (PersistentCacheTests.test_get):
        (DashboardImageTests):
        (DashboardImageTests.test_needs_update):

2012-03-01  Kangil Han  <kangil.han@samsung.com>

        [DRT] Remove all PlainTextController usages in existing tests by adding internal API
        https://bugs.webkit.org/show_bug.cgi?id=78570

        Reviewed by Hajime Morita.

        This patch will remove all PlainTextController usages
        in existing DRT tests by adding internal API to WebCore/testing/Internals

        * Source/autotools/symbols.filter:

2012-02-29  Ryosuke Niwa  <rniwa@webkit.org>

        Perf-o-matic build fix. Also toggle the switch to start using ping images on the dashboard after r109190.

        * Websites/webkit-perf.appspot.com/controller.py:
        (schedule_runs_update):
        (schedule_report_process):
        * Websites/webkit-perf.appspot.com/js/admin.js:
        (bind):
        * Websites/webkit-perf.appspot.com/js/config.js:

2012-02-29  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [CMake] Unreviewed, fix build on 64-bit platforms with SHARED_CORE=ON after r109197.
        https://bugs.webkit.org/show_bug.cgi?id=79965

        This partially reverts r66714, in that whether -fPIC is passed to
        the compiler does not depend on the value of SHARED_CORE anymore:
        since we always build WTF as a static library, it will always need
        -fPIC because our shared libraries are built with it.

        * Source/cmake/WebKitHelpers.cmake: Always pass -fPIC to
        STATIC_LIBRARY targets.

2012-02-29  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [CMake] Unreviewed, fix build on 64-bit platforms with SHARED_CORE=ON after r109197.

        This partially reverts r66714, in that whether -fPIC is passed to
        the compiler does not depend on the value of SHARED_CORE anymore:
        since we always build WTF as a static library, it will always need
        -fPIC because our shared libraries are built with it.

        * Source/cmake/WebKitHelpers.cmake: Always pass -fPIC to
        STATIC_LIBRARY targets.

2012-02-29  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Bump WebKitGTK+ version number.

        * configure.ac: Bump version number to 1.9.0 now that we branched
        for 1.8.

2012-02-29  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix GTK+ build.

        * Source/autotools/symbols.filter: Add symbol.

2012-02-28  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [CMake] Always build wtf as a static library.
        https://bugs.webkit.org/show_bug.cgi?id=79857

        Reviewed by Eric Seidel.

        * CMakeLists.txt: Put static libraries in ${CMAKE_BINARY_DIR} too
        to have them grouped with the shared ones.

2012-02-28  Ryosuke Niwa  <rniwa@webkit.org>

        perf-o-matic: generate dashboard images using Google Chart Tools
        https://bugs.webkit.org/show_bug.cgi?id=79838

        Reviewed by Hajime Morita.

        Rename RunsJSONGenerator to Runs and added an ability to generate parameters for Google chart tool.
        Also added RunsChartHandler to make url-fetches these images and DashboardImageHandler to serve them.
        The image is stored in DashboardImage model.

        We can't enable flip the switch to use images yet because we don't create images on fly (they're
        generated when runs are updated; i.e. bots upload new results). We should be able to flip the switch
        once this patch lands and all perf bots cycle.

        We probably make way too many calls to Google chart tool's server with this preliminary design but we
        can easily move this task into the backend and run it via a cron job once we know it works.

        * Websites/webkit-perf.appspot.com/controller.py:
        (schedule_runs_update):
        (RunsUpdateHandler.post):
        (RunsChartHandler):
        (RunsChartHandler.get):
        (RunsChartHandler.post):
        (DashboardImageHandler):
        (DashboardImageHandler.get):
        (schedule_report_process):
        * Websites/webkit-perf.appspot.com/json_generators.py:
        (ManifestJSONGenerator.value):
        (Runs):
        (Runs.__init__):
        (Runs.value):
        (Runs.chart_params):
        * Websites/webkit-perf.appspot.com/json_generators_unittest.py:
        (RunsTest):
        (RunsTest._create_results):
        (RunsTest.test_generate_runs):
        (RunsTest.test_value_without_results):
        (RunsTest.test_value_with_results):
        (RunsTest.test_run_from_build_and_result):
        (RunsTest.test_chart_params_with_value):
        (RunsTest.test_chart_params_with_value.split_as_int):
        * Websites/webkit-perf.appspot.com/main.py:
        * Websites/webkit-perf.appspot.com/models.py:
        (PersistentCache.get_cache):
        (DashboardImage):
        (DashboardImage.key_name):

2012-02-28  Dave Tu  <dtu@chromium.org>

        Add new GPU builders to flakiness dashboard.
        https://bugs.webkit.org/show_bug.cgi?id=79839

        Reviewed by Ojan Vafai.

        * Tools/TestResultServer/static-dashboards/builders.js:

2012-02-28  Shinya Kawanaka  <shinyak@chromium.org>

        Element should be able to have multiple shadow roots.
        https://bugs.webkit.org/show_bug.cgi?id=77931

        Reviewed by Hajime Morita.

        * Source/autotools/symbols.filter:

2012-02-27  Shinya Kawanaka  <shinyak@chromium.org>

        Element::removeShadowRoot() and setShadowRoot() should be moved into ShadowTree.
        https://bugs.webkit.org/show_bug.cgi?id=78313

        Reviewed by Hajime Morita.

        * Source/autotools/symbols.filter:

2012-02-27  Dave Tu  <dtu@chromium.org>

        Update flakiness dashboard unit test.
        https://bugs.webkit.org/show_bug.cgi?id=79711

        Reviewed by Ojan Vafai.

        * Tools/TestResultServer/static-dashboards/flakiness_dashboard_tests.js:

2012-02-27  Ryosuke Niwa  <rniwa@webkit.org>

        Extract the logic to merge tests from MergeTestsHandler and add unit tests
        https://bugs.webkit.org/show_bug.cgi?id=79602

        Reviewed by Hajime Morita.

        Extracted Test.merge and TestResult.replace_to_change_test_name out of MergeTestsHandler,
        and moved MergeTestsHandler into admin_handlers.py where it belongs.

        Added new backend "model-manipulator" to execute tasks to merge tests.

        Also revive the inadvertently removed manual submission form on the admin page.

        * Websites/webkit-perf.appspot.com/admin_handlers.py:
        (AdminDashboardHandler.get_tests):
        (MergeTestsHandler):
        (MergeTestsHandler.post):
        * Websites/webkit-perf.appspot.com/app.yaml:
        * Websites/webkit-perf.appspot.com/backends.yaml: Added.
        * Websites/webkit-perf.appspot.com/css/admin.css:
        * Websites/webkit-perf.appspot.com/js/admin.js:
        * Websites/webkit-perf.appspot.com/main.py:
        * Websites/webkit-perf.appspot.com/merge_tests_handler.py: Removed.
        * Websites/webkit-perf.appspot.com/models.py:
        (Test):
        (Test.merge):
        (TestResult.replace_to_change_test_name):
        * Websites/webkit-perf.appspot.com/models_unittest.py:
        (DataStoreTestsBase.assertOnlyInstance):
        (DataStoreTestsBase):
        (DataStoreTestsBase.assertOnlyInstances):
        (DataStoreTestsBase.assertEqualUnorderedModelList):
        (DataStoreTestsBase.assertEqualUnorderedList):
        (_create_build):
        (TestModelTests.test_merge):
        (TestResultTests):
        (TestResultTests.test_get_or_insert_value):
        (TestResultTests.test_get_or_insert_stat_value):
        (TestResultTests.test_replace_to_change_test_name):
        (TestResultTests.test_replace_to_change_test_name_with_stat_value):
        (TestResultTests.test_replace_to_change_test_name_overrides_conflicting_result):

2012-02-27  ChangSeok Oh  <shivamidow@gmail.com>

        [EFL] Support mutation observers
        https://bugs.webkit.org/show_bug.cgi?id=79603

        Reviewed by Eric Seidel.

        Added a build-option for the mutation observers feature.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmakeconfig.h.cmake:

2012-02-26  Shinya Kawanaka  <shinyak@chromium.org>

        Rename ShadowRootList to ShadowTree.
        https://bugs.webkit.org/show_bug.cgi?id=79342

        Reviewed by Hajime Morita.

        * Source/autotools/symbols.filter:

2012-02-26  Chang Wan Hong  <jourmoon@company100.net>

        Update .gitignore for project property files generated by Eclipse.
        https://bugs.webkit.org/show_bug.cgi?id=79463

        Reviewed by Andreas Kling.

        * .gitignore: Ignore .project and .cproject

2012-02-25  Ryosuke Niwa  <rniwa@webkit.org>

        Perf-o-matic build fix after r108917. I need a scrollbar in order see all the tests.

        * Websites/webkit-perf.appspot.com/css/admin.css:
        (html):

2012-02-25  Ryosuke Niwa  <rniwa@webkit.org>

        perf-o-matic needs a better admin page
        https://bugs.webkit.org/show_bug.cgi?id=79585

        Reviewed by Sam Weinig.
        
        Add admin/ to replace admin/create-models.html and admin/merge-tests.

        Also update MergeTestHandler to accept JSON requests and add "Admin" navigation link on all pages.

        * Websites/webkit-perf.appspot.com/admin_handlers.py: Added.
        * Websites/webkit-perf.appspot.com/controller.py:
        (RunsUpdateHandler.post): Fix a regression from r108399.
        * Websites/webkit-perf.appspot.com/css/admin.css: Added.
        * Websites/webkit-perf.appspot.com/js/admin.js: Added.
        * Websites/webkit-perf.appspot.com/js/config.js:
        * Websites/webkit-perf.appspot.com/main.py:
        * Websites/webkit-perf.appspot.com/merge_tests.html: Removed.
        * Websites/webkit-perf.appspot.com/merge_tests_handler.py:
        (MergeTestsHandler):
        (MergeTestsHandler.post):
        * Websites/webkit-perf.appspot.com/static: Removed.
        * Websites/webkit-perf.appspot.com/static/create-models.html: Removed.

2012-02-24  Ryosuke Niwa  <rniwa@webkit.org>

        Increment perf-o-matic version.

        * Websites/webkit-perf.appspot.com/app.yaml:

2012-02-23  Konrad Piascik  <kpiascik@rim.com>

        Upstream BlackBerry Cookie Management Classes
        https://bugs.webkit.org/show_bug.cgi?id=73654

        Reviewed by Rob Buis.

        Manual test to see in milliseconds how quickly 100 writes followed by 100 reads take.
        This test is ran twice and the average read and write for each of the 2 runs is shown.

        * ManualTests/cookieSpeedTest.html: Added.

2012-02-23  Dave Tu  <dtu@chromium.org>

        Add Chromium gpu_tests to the flakiness dashboard
        https://bugs.webkit.org/show_bug.cgi?id=79300

        Reviewed by Ojan Vafai.

        * Tools/TestResultServer/static-dashboards/builders.js:
        * Tools/TestResultServer/static-dashboards/dashboard_base.js:

2012-02-23  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Add WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS macro
        https://bugs.webkit.org/show_bug.cgi?id=79371

        Reviewed by Daniel Bates.

        Add a new macro to handle the inclusion of the platform specific *.cmake files.
        In the future this macro should get expanded to also handle feature specifc
        files, like the UseJSC.cmake in WebCore we already have.

        * Source/cmake/WebKitMacros.cmake:

2012-02-23  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Add FindDirectX
        https://bugs.webkit.org/show_bug.cgi?id=79344

        Reviewed by Adam Roben.

        * Source/cmake/FindDirectX.cmake: Added.

2012-02-23  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Add FindQuickTimeSDK
        https://bugs.webkit.org/show_bug.cgi?id=79345

        Reviewed by Adam Roben.

        * Source/cmake/FindQuickTimeSDK.cmake: Added.

2012-02-22  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [CMake] Remove FindGDK.cmake and FindGDK-PixBuf.cmake
        https://bugs.webkit.org/show_bug.cgi?id=79292

        Reviewed by Daniel Bates.

        These files were committed when the EFL port's buildsystem code
        was upstreamed, but are currently not being used anywhere, as the EFL
        port has not depended on GDK for a long time.

        * Source/cmake/FindGDK-PixBuf.cmake: Removed.
        * Source/cmake/FindGDK.cmake: Removed.

2012-02-22  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Clean build is broken when using make -j
        https://bugs.webkit.org/show_bug.cgi?id=76388

        * GNUmakefile.am: Add new global source list variables.

2012-02-20  Ryosuke Niwa  <rniwa@webkit.org>

        perf-o-matic: Extract logic to generate JSON responses as classes to unit test
        https://bugs.webkit.org/show_bug.cgi?id=79018

        Rubber-stamped by Adam Barth.

        Extracted DashboardJSONGenerator, ManifestJSONGenerator, and RunsJSONGenerator
        into json_generators.py from DashboardHandler, ManifestHandler, and RunsHandler
        and added unit tests for the former three classes.

        Merged the latter three classes into controler.py since they have become too trivial
        to have their own files.

        * Websites/webkit-perf.appspot.com/controller.py:
        (ManifestUpdateHandler):
        (ManifestUpdateHandler.get):
        (ManifestUpdateHandler.post):
        (DashboardUpdateHandler):
        (DashboardUpdateHandler.get):
        (DashboardUpdateHandler.post):
        (_get_test_branch_platform_ids):
        (RunsUpdateHandler):
        (RunsUpdateHandler.get):
        (CachedRunsHandler.get):
        * Websites/webkit-perf.appspot.com/dashboard_handler.py: Removed.
        * Websites/webkit-perf.appspot.com/json_generators.py: Added.
        (JSONGeneratorBase):
        (JSONGeneratorBase.to_json):
        (DashboardJSONGenerator):
        (DashboardJSONGenerator.__init__):
        (DashboardJSONGenerator.value):
        (ManifestJSONGenerator):
        (ManifestJSONGenerator.__init__):
        (ManifestJSONGenerator.value):
        (RunsJSONGenerator):
        (RunsJSONGenerator.__init__):
        (RunsJSONGenerator._generate_runs):
        (RunsJSONGenerator._entry_from_build_and_result):
        (RunsJSONGenerator.value):
        * Websites/webkit-perf.appspot.com/json_generators_unittest.py: Added.
        (_create_results):
        (JSONGeneratorBaseTest):
        (JSONGeneratorBaseTest.test_to_json):
        (JSONGeneratorBaseTest.test_to_json.AJSONGenerator):
        (JSONGeneratorBaseTest.test_to_json.AJSONGenerator.value):
        (DashboardJSONGeneratorTest):
        (DashboardJSONGeneratorTest.test_value_no_branch):
        (DashboardJSONGeneratorTest.test_value_no_plaforms):
        (DashboardJSONGeneratorTest.test_value_single_platform):
        (DashboardJSONGeneratorTest.test_value_two_platforms):
        (ManifestJSONGeneratorTest):
        (ManifestJSONGeneratorTest.test_value_no_branch):
        (ManifestJSONGeneratorTest.test_value_no_plaforms):
        (ManifestJSONGeneratorTest._assert_single_test):
        (ManifestJSONGeneratorTest.test_value_single_platform):
        (ManifestJSONGeneratorTest.test_value_two_platforms):
        (ManifestJSONGeneratorTest.test_value_two_tests):
        (RunsJSONGeneratorTest):
        (RunsJSONGeneratorTest._create_results):
        (RunsJSONGeneratorTest.test_generate_runs):
        (RunsJSONGeneratorTest.test_value_without_results):
        (RunsJSONGeneratorTest.test_value_with_results):
        (RunsJSONGeneratorTest._assert_entry):
        (RunsJSONGeneratorTest.test_run_from_build_and_result):
        (RunsJSONGeneratorTest.test_run_from_build_and_result.create_build):
        * Websites/webkit-perf.appspot.com/main.py:
        * Websites/webkit-perf.appspot.com/manifest_handler.py: Removed.
        * Websites/webkit-perf.appspot.com/models.py:
        (Test.update_or_insert.execute):
        (Test):
        (TestResult.get_or_insert_from_parsed_json):
        * Websites/webkit-perf.appspot.com/models_unittest.py:
        (TestModelTests.test_update_or_insert_to_update):
        (TestResultTests.test_get_or_insert_stat_value):
        * Websites/webkit-perf.appspot.com/runs_handler.py: Removed.

2012-02-20  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Turn on requestAnimationFrame for release builds
        https://bugs.webkit.org/show_bug.cgi?id=79038

        Reviewed by Gustavo Noronha Silva.

        * configure.ac: Turn on requestAnimationFrame by default.

2012-02-20  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Geolocation support should be on by default
        https://bugs.webkit.org/show_bug.cgi?id=79037

        Reviewed by Gustavo Noronha Silva.

        * configure.ac: Turn on geolocation support in release builds.

2012-02-20  Kihong Kwon  <kihong.kwon@samsung.com>

        Add a new API for the Vibration API(W3C).
        https://bugs.webkit.org/show_bug.cgi?id=72010

        Reviewed by Hajime Morita.

        Add Implementation for the Vibration API to the WebKit-EFL port.
        http://dev.w3.org/2009/dap/vibration/

        * Source/cmake/OptionsEfl.cmake: Add ENABLE_VIBRATION feature.
        * Source/cmakeconfig.h.cmake:

2012-02-19  Ryosuke Niwa  <rniwa@webkit.org>

        Move more logic from handler classes to model classes and add unit tests
        https://bugs.webkit.org/show_bug.cgi?id=78989

        Reviewed by Hajime Morita.

        Extracted various functions from CreateHandler, ReportHanlder, and RunsHanlder to model classes
        in order to unit-test them, added DataStoreTestsBase to reduce the code duplication in tests,
        and added a whole bunch of unit tests in models_unittest.py.

        * Websites/webkit-perf.appspot.com/create_handler.py:
        (CreateHandler._create_branch):
        (CreateHandler._create_platform):
        * Websites/webkit-perf.appspot.com/models.py:
        (_create_if_possible):
        (_create_if_possible.execute):
        (Branch):
        (Branch.create_if_possible):
        (Platform):
        (Platform.create_if_possible):
        (Build):
        (Build.get_or_insert_from_log):
        (Test):
        (Test.update_or_insert):
        (Test.update_or_insert.execute):
        (TestResult):
        (TestResult.get_or_insert_from_parsed_json):
        (TestResult.get_or_insert_from_parsed_json._float_or_none):
        (TestResult.generate_runs):
        * Websites/webkit-perf.appspot.com/models_unittest.py:
        (DataStoreTestsBase):
        (DataStoreTestsBase.assertThereIsNoInstanceOf):
        (DataStoreTestsBase.assertOnlyInstance):
        (DataStoreTestsBase.assertEqualUnorderedList):
        (HelperTests):
        (HelperTests.test_create_in_transaction_with_numeric_id_holder):
        (HelperTests.test_failing_in_create_in_transaction_with_numeric_id_holder):
        (HelperTests.test_raising_in_create_in_transaction_with_numeric_id_holder):
        (HelperTests.test_delete_model_with_numeric_id_holder):
        (BranchTests):
        (BranchTests.test_create_if_possible):
        (PlatformTests):
        (PlatformTests.test_create_if_possible):
        (BuilderTests):
        (_create_some_builder):
        (BuildTests):
        (BuildTests.test_get_or_insert_from_log):
        (TestModelTests):
        (TestModelTests.test_update_or_insert):
        (TestModelTests.test_update_or_insert_to_update):
        (TestResultTests):
        (TestResultTests._create_build):
        (TestResultTests.test_get_or_insert_value):
        (TestResultTests.test_get_or_insert_stat_value):
        (TestResultTests._create_results):
        (TestResultTests.test_generate_runs):
        (ReportLogTests):
        (ReportLogTests.test_branch):
        (ReportLogTests.test_platform):
        (PersistentCacheTests):
        (PersistentCacheTests.setUp):
        (PersistentCacheTests.test_set):
        * Websites/webkit-perf.appspot.com/report_process_handler.py:
        (ReportProcessHandler.post):
        * Websites/webkit-perf.appspot.com/runs_handler.py:
        (RunsHandler.get):
        (RunsHandler.post):

2012-02-20  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Fix PLATFORM() define for Windows.

        Define WTF_PLATFORM_WIN instead of WTF_PLATFORM_WINDOWS.

        * Source/cmake/OptionsWindows.cmake:

2012-02-20  Martin Robinson  <mrobinson@igalia.com>

        Fix WebKit2GTK+ for 'make distcheck'.

        Instead of conditionally including WebKit2 GNUmakefiles, always
        include them and conditionally activate the final targets.

        * GNUmakefile.am:

2012-02-19  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [CMAKE] Check gstreamer minimum required version.
        https://bugs.webkit.org/show_bug.cgi?id=79005

        Reviewed by Daniel Bates.

        To enable video, Gstreamer version requires to be above 0.10.30.
        This patch checks whether Gstreamer version is greater than 0.10.30.

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

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

        [GTK] Remove unused GSettings stuff
        https://bugs.webkit.org/show_bug.cgi?id=78995

        Reviewed by Martin Robinson.

        * configure.ac: remove gsettings schema file creation.

2012-02-19  Ryosuke Niwa  <rniwa@webkit.org>

        Perf-o-matic should show both WebKit and Chromium revisions
        https://bugs.webkit.org/show_bug.cgi?id=78955

        Reviewed by Andreas Kling.

        Include Chromium revision numbers in runs responses when available.

        * Websites/webkit-perf.appspot.com/js/config.js:
        (urlForChangeset):
        (urlForChangesetList):
        * Websites/webkit-perf.appspot.com/runs_handler.py:
        (RunsHandler.post):

2012-02-18  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Exclude a couple unused bindings files from the build
        as they do not compile currently.

        * wscript:

2012-02-17  Ryosuke Niwa  <rniwa@webkit.org>

        perf-o-matic needs model unit tests
        https://bugs.webkit.org/show_bug.cgi?id=78885

        Reviewed by Adam Barth.

        Added unit tests for models.py.

        Also renamed modelFromNumericId to model_from_numeric_id and moved set_persitent_cache and get_persistent_cache
        from controller to PersistentCache.set_cache and PersistentCahce.set_cache respectively.

        * Websites/webkit-perf.appspot.com/controller.py:
        (cache_manifest):
        (CachedManifestHandler.get):
        (cache_dashboard):
        (CachedDashboardHandler.get):
        (cache_runs):
        (CachedRunsHandler.get):
        * Websites/webkit-perf.appspot.com/create_handler.py:
        (CreateHandler._create_builder):
        (CreateHandler._create_builder.execute):
        * Websites/webkit-perf.appspot.com/models.py:
        (create_in_transaction_with_numeric_id_holder):
        (model_from_numeric_id):
        (Builder):
        (Builder.create):
        (Builder.update_password):
        (Builder._hashed_password):
        (TestResult.key_name):
        (ReportLog.get_value):
        (ReportLog._integer_in_payload):
        (ReportLog):
        (ReportLog.timestamp):
        (PersistentCache):
        (PersistentCache.set_cache):
        (PersistentCache.set_cache.execute):
        (PersistentCache.get_cache):
        * Websites/webkit-perf.appspot.com/models_unittest.py: Added.
        (HelperTests):
        (HelperTests.setUp):
        (HelperTests.tearDown):
        (HelperTests._assert_there_is_exactly_one_id_holder_and_matches):
        (HelperTests.test_create_in_transaction_with_numeric_id_holder):
        (HelperTests.test_create_in_transaction_with_numeric_id_holder.execute):
        (HelperTests.test_failing_in_create_in_transaction_with_numeric_id_holder):
        (HelperTests.test_failing_in_create_in_transaction_with_numeric_id_holder.execute):
        (HelperTests.test_raising_in_create_in_transaction_with_numeric_id_holder):
        (HelperTests.test_raising_in_create_in_transaction_with_numeric_id_holder.execute):
        (HelperTests.test_delete_model_with_numeric_id_holder):
        (HelperTests.test_delete_model_with_numeric_id_holder.execute):
        (HelperTests.test_model_from_numeric_id):
        (HelperTests.test_model_from_numeric_id.execute):
        (BuilderTests):
        (BuilderTests.setUp):
        (BuilderTests.tearDown):
        (BuilderTests.test_create):
        (BuilderTests.test_update_password):
        (BuilderTests.test_hashed_password):
        (BuilderTests.test_authenticate):
        (ReportLog):
        (ReportLog.setUp):
        (ReportLog.tearDown):
        (ReportLog._create_log_with_payload):
        (ReportLog.test_parsed_payload):
        (ReportLog.test_get_value):
        (ReportLog.test_results):
        (ReportLog.test_builder):
        (ReportLog.test_build_number):
        (ReportLog.test_webkit_revision):
        (ReportLog.chromium_revision):
        (PersistentCacheTests):
        (PersistentCacheTests.setUp):
        (PersistentCacheTests.tearDown):
        (PersistentCacheTests._assert_persistent_cache):
        (PersistentCacheTests.test_set):
        (PersistentCacheTests.test_get):
        * Websites/webkit-perf.appspot.com/runs_handler.py:
        (RunsHandler.post):

2012-02-17  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix GTK+ build after r108003.

        * Source/autotools/symbols.filter: Add missing symbol.

2012-02-16  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Move event conversion functions from WebCore to WebKit
        https://bugs.webkit.org/show_bug.cgi?id=78788

        Reviewed by Kenneth Rohde Christiansen.

        * Source/api.pri: Add new files to the build.

2012-02-14  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [CMake] Remove unused PkgConfig module import from FindCFLite.cmake.
        https://bugs.webkit.org/show_bug.cgi?id=78600

        Reviewed by Adam Roben.

        * Source/cmake/FindCFLite.cmake:

2012-02-15  Roland Steiner  <rolandsteiner@chromium.org>

        <style scoped>: Allow <style scoped> as a direct child of a ShadowRoot
        https://bugs.webkit.org/show_bug.cgi?id=77853

        numberOfScopedHTMLStyleChildren got moved from Element into Node.

        Reviewed by Dimitri Glazkov.

        * Source/autotools/symbols.filter:

2012-02-13  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [CMake] Merge WebKitEfl.cmake into FindEFL.cmake.
        https://bugs.webkit.org/show_bug.cgi?id=78566

        Reviewed by Daniel Bates.

        * Source/cmake/FindEFL.cmake: Move the code to find edje_cc here from
        WebKitEfl.cmake.
        * Source/cmake/WebKitEfl.cmake: Removed.

2012-02-14  Shinya Kawanaka  <shinyak@google.com>

        Use youngestShadowRoot and oldestShadowRoot instead of Element::shadowRoot().
        https://bugs.webkit.org/show_bug.cgi?id=78455

        Reviewed by Hajime Morita.

        Exports necessary symbols.

        * Source/autotools/symbols.filter:

2012-02-13  Ryosuke Niwa  <rniwa@webkit.org>

        Yet another perf-o-matic build fix. It turns out that a task of the same name can't be
        queued for days after the first task is completed. So don't use it. Updating persistent
        caches more often than necessary is better than never updating them.

        * Websites/webkit-perf.appspot.com/controller.py:
        (schedule_manifest_update):
        (schedule_dashboard_update):
        (schedule_runs_update):

2012-02-13  ChangSeok Oh  <shivamidow@gmail.com>

        [GTK] Revise configuration for MHTML
        https://bugs.webkit.org/show_bug.cgi?id=78364

        Reviewed by Gustavo Noronha Silva.

        Added some lines to show checking messages, whether mhtml is enabled or not
        during configuration and the configuration result for mhtml.
        MHTML is a web page archive format used to combine resources
        that are typically represented by external links (such as images, Flash animations,
        Java applets, audio files) together with HTML code into a single file.
        http://en.wikipedia.org/wiki/MHTML

        * configure.ac:

2012-02-06  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [EFL] Drop support for the Curl network backend.
        https://bugs.webkit.org/show_bug.cgi?id=77874

        Reviewed by Eric Seidel.

        Nobody seems to be maintaining the Curl backend in WebCore, the
        EFL port developers all seem to be using the Soup backend and the
        port itself has many features which are only implemented for the
        latter.

        * Source/cmake/OptionsEfl.cmake: Remove network backend selection
        checks and unconditionally require Glib and Libsoup, bump the
        required LibSoup version to the same one the GTK+ port looks for,
        since we share the same network backend.

2012-02-12  Ryosuke Niwa  <rniwa@webkit.org>

        Another perf-o-matic build fix.

        * Websites/webkit-perf.appspot.com/report_process_handler.py:
        (ReportProcessHandler._create_build_if_possible):

2012-02-12  Ryosuke Niwa  <rniwa@webkit.org>

        Perf-o-matic build fix.

        * Websites/webkit-perf.appspot.com/report_handler.py:
        (ReportHandler.post):

2012-02-10  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION: Perf-o-matic adds duplicated test results
        https://bugs.webkit.org/show_bug.cgi?id=78373

        Reviewed by Hajime Morita.

        Add TestResult inside a transaction. We use high replication databsae but this should prevent
        the duplication in the most of the time.

        Also fixed random bugs in Controller and ReportHandler.

        * Websites/webkit-perf.appspot.com/controller.py:
        (get_persistent_cache):
        * Websites/webkit-perf.appspot.com/report_handler.py:
        (ReportHandler.post):
        * Websites/webkit-perf.appspot.com/report_process_handler.py:
        (ReportProcessHandler.post):
        (ReportProcessHandler._add_test_if_needed):
        (ReportProcessHandler):
        (ReportProcessHandler._add_test_result_if_needed):
        (ReportProcessHandler._add_test_result_if_needed._float_or_none):
        (ReportProcessHandler._add_test_result_if_needed.execute):

2012-02-12  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix GTK+ build after r107454.

        * configure.ac: Disable Mutation observers build on GTK+ until it
        can actually build.

2012-02-10  Adam Klein  <adamk@chromium.org>

        Enable MUTATION_OBSERVERS by default on all platforms
        https://bugs.webkit.org/show_bug.cgi?id=78196

        Reviewed by Ojan Vafai.

        * configure.ac:

2012-02-10  Ryosuke Niwa  <rniwa@webkit.org>

        Perf-o-matic build fix after r107386.

        * Websites/webkit-perf.appspot.com/app.yaml:
        * Websites/webkit-perf.appspot.com/controller.py:
        (schedule_manifest_update):
        (schedule_dashboard_update):
        (schedule_runs_update):
        * Websites/webkit-perf.appspot.com/merge_tests_handler.py:
        (MergeTestsHandler.get):
        * Websites/webkit-perf.appspot.com/report_logs_handler.py:
        (ReportLogsHandler.get):
        (ReportLogsHandler.post):

2012-02-10  Ryosuke Niwa  <rniwa@webkit.org>

        Perf-o-matic should process reports in background
        https://bugs.webkit.org/show_bug.cgi?id=78309

        Reviewed by Hajime Morita.

        Split the logic to create Build, Test, and TestResult objects from ReportHandler into ReportProcessHandler.
        ReportHandler now merely creates ReportLog and schedules a task to process it.

        Also added ReportLogHandler to manage stale ReportLogs.

        * Websites/webkit-perf.appspot.com/app.yaml:
        * Websites/webkit-perf.appspot.com/controller.py:
        (schedule_manifest_update):
        (schedule_dashboard_update):
        (schedule_runs_update):
        (CachedRunsHandler.get):
        (schedule_report_process):
        * Websites/webkit-perf.appspot.com/main.py:
        * Websites/webkit-perf.appspot.com/merge_tests.html: Renamed from Websites/webkit-perf.appspot.com/merge_tests.yaml.
        * Websites/webkit-perf.appspot.com/models.py:
        (ReportLog):
        (ReportLog._parsed_payload):
        (ReportLog.get_value):
        (ReportLog.results):
        (ReportLog.builder):
        (ReportLog.branch):
        (ReportLog.platform):
        (ReportLog.build_number):
        (ReportLog.webkit_revision):
        (ReportLog.chromium_revision):
        (ReportLog._model_by_key_name_in_payload):
        (ReportLog._integer_in_payload):
        (ReportLog.timestamp):
        * Websites/webkit-perf.appspot.com/report_handler.py:
        (ReportHandler.post):
        (ReportHandler._output):
        (ReportHandler._results_are_valid):
        (ReportHandler._results_are_valid._is_float_convertible):
        (ReportHandler):
        * Websites/webkit-perf.appspot.com/report_logs.html: Added.
        * Websites/webkit-perf.appspot.com/report_logs_handler.py: Added.
        (ReportLogsHandler):
        (ReportLogsHandler.get):
        (ReportLogsHandler.post):
        (ReportLogsHandler._error):
        * Websites/webkit-perf.appspot.com/report_process_handler.py: Copied from Websites/webkit-perf.appspot.com/report_handler.py.
        (ReportProcessHandler):
        (ReportProcessHandler.post):
        (ReportProcessHandler._create_build_if_possible):
        (ReportProcessHandler._create_build_if_possible.execute):
        (ReportProcessHandler._add_test_if_needed):

2012-02-09  Ryosuke Niwa  <rniwa@webkit.org>

        Perf-o-matic shouldn't rely on memcache to store cached JSON responses
        https://bugs.webkit.org/show_bug.cgi?id=78306

        Reviewed by Adam Barth.

        Added PersistentCache model that stores the generated JSON responses.

        * Websites/webkit-perf.appspot.com/controller.py:
        (set_persistent_cache):
        (set_persistent_cache.execute):
        (get_persistent_cache):
        (cache_manifest):
        (CachedManifestHandler.get):
        (cache_dashboard):
        (CachedDashboardHandler.get):
        (cache_runs):
        (CachedRunsHandler.get):
        * Websites/webkit-perf.appspot.com/models.py:
        (TestResult):
        (ReportLog):
        (PersistentCache):

2012-02-09  Ryosuke Niwa  <rniwa@webkit.org>

        Perf-o-matic should update memcache in taskqueue
        https://bugs.webkit.org/show_bug.cgi?id=78209

        Reviewed by Adam Barth.

        Update dashboard, manifest, and runs memcaches in taskqueue.
        Also centralized the management of caches in controller.py.

        * Websites/webkit-perf.appspot.com/app.yaml:
        * Websites/webkit-perf.appspot.com/controller.py: Added.
        (cache_manifest):
        (schedule_manifest_update):
        (CachedManifestHandler):
        (CachedManifestHandler.get):
        (cache_dashboard):
        (schedule_dashboard_update):
        (CachedDashboardHandler):
        (CachedDashboardHandler.get):
        (cache_runs):
        (schedule_runs_update):
        (CachedRunsHandler):
        (CachedRunsHandler.get):
        * Websites/webkit-perf.appspot.com/create_handler.py:
        (CreateHandler.post):
        * Websites/webkit-perf.appspot.com/dashboard_handler.py:
        (DashboardHandler.post):
        * Websites/webkit-perf.appspot.com/main.py:
        * Websites/webkit-perf.appspot.com/manifest_handler.py:
        (ManifestHandler.post):
        * Websites/webkit-perf.appspot.com/merge_tests_handler.py:
        (MergeTestsHandler.post):
        * Websites/webkit-perf.appspot.com/report_handler.py:
        (ReportHandler.post):
        * Websites/webkit-perf.appspot.com/runs_handler.py:
        (RunsHandler.post):

2012-02-09  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Add WebKitWebView::mouse-target-changed signal to WebKit2 GTK+ API
        https://bugs.webkit.org/show_bug.cgi?id=78097

        Reviewed by Martin Robinson.

        * Source/autotools/symbols.filter: Add freeOwnedGPtr<_GdkEvent>
        symbol to be able to use GOwnPtr<GdkEvent> in WebKit2 GTK+ unit
        tests.

2012-02-09  Kent Tamura  <tkent@chromium.org>

        Do not localize numbers in scientific notation
        https://bugs.webkit.org/show_bug.cgi?id=78208

        Reviewed by Hajime Morita.

        * ManualTests/input-number-localization.html: Updated for scientific notation.

2012-02-09  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [CMAKE] Change lowercase variable with uppercase's.
        https://bugs.webkit.org/show_bug.cgi?id=78198

        Reviewed by Daniel Bates.

        CMake variable is only written by uppercase.

        * CMakeLists.txt:

2012-02-07  MORITA Hajime  <morrita@google.com>

        Replacement text should be available from the marker.
        https://bugs.webkit.org/show_bug.cgi?id=77934

        Reviewed by Kent Tamura.

        * Source/autotools/symbols.filter: Added an exporting symbol.

2012-02-07  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [CMAKE] Use *bin* and *lib* directories for executable and libraries.
        https://bugs.webkit.org/show_bug.cgi?id=77928

        Reviewed by Daniel Bates.

        CMake has used *Programs* directory for executable. In addition, shared libraries are being
        built in source directory. It is better to set common places in order to maintain executable
        and libraries. *bin* is for executable and *lib* is for library.

        * CMakeLists.txt: Set library output path.
        * Source/cmake/WebKitFS.cmake: Remove *Programs* creation.

2012-02-07  Priit Laes  <plaes@plaes.org>

        Get rid of Source/autotools/webkit.m4
        https://bugs.webkit.org/show_bug.cgi?id=77833

        Reviewed by Martin Robinson.

        Move checks from webkit.m4 to configure.ac and modernize macros:
          . Check for visibility flags after CXX has been defined
          . Use PKG_PROG_PKG_CONFIG for pkg-config lookup
          . Drop unused LIBFFTW_REQUIRED_VERSION
          . Update ICU libs for mingw (bug 77837).
          . Require Pango 1.21.0 (as per unicode backend)
          . Bump minimum glib version due to g_thread_init changes

        * Source/autotools/webkit.m4: Removed.
        * configure.ac:

2012-02-07  Ryosuke Niwa  <rniwa@webkit.org>

        Dashboard on perf-o-matic should be sorted
        https://bugs.webkit.org/show_bug.cgi?id=77924

        Reviewed by Tony Chang.

        Sort tests in the frontend using the fact ES5 keeps the property order in the insertion order.

        * Websites/webkit-perf.appspot.com/js/config.js:
        (fetchDashboardManifest):

2012-02-07  Frederik Gladhorn  <frederik.gladhorn@nokia.com>

        Update .gitignore for Qt Creator/KDevelop.
        https://bugs.webkit.org/show_bug.cgi?id=77984

        Reviewed by Simon Hausmann.

        * .gitignore: Ignore temp files created by Qt Creator and KDevelop.

2012-02-07  Priit Laes  <plaes@plaes.org>

        [GTK] Broken "HTML5 <scoped style>" detection
        https://bugs.webkit.org/show_bug.cgi?id=77979

        Reviewed by Gustavo Noronha Silva.

        * configure.ac: Fix wrong variable for HTML5 <style scoped> detection

2012-02-06  Shinya Kawanaka  <shinyak@google.com>

        Remove Element::ensureShadowRoot export.
        https://bugs.webkit.org/show_bug.cgi?id=77932

        Reviewed by Hajime Morita.

        * Source/autotools/symbols.filter:

2012-02-06  Martin Robinson  <mrobinson@igalia.com> and Nayan Kumar K  <nayankk@motorola.com>

        [GTK] Add TextureMapperGL implementation
        https://bugs.webkit.org/show_bug.cgi?id=75308

        Reviewed by Alejandro G. Castro.

        * GNUmakefile.am: TextureMapperGL implies USE(TEXTURE_MAPPER)
        * configure.ac: Only allow enabling the GL version of TextureMapper on X11.

2012-02-06  Ryosuke Niwa  <rniwa@webkit.org>

        Perf-o-matic should show min/max/stdev on graphs
        https://bugs.webkit.org/show_bug.cgi?id=77702

        Reviewed by Andreas Kling.

        Include min/max/stdev in test runs when available to be shown on the perf-o-matic.

        Also merge a change to config.js and increment the version number by 1 (unreviewed).

        * Websites/webkit-perf.appspot.com/app.yaml:
        * Websites/webkit-perf.appspot.com/js/config.js:
        * Websites/webkit-perf.appspot.com/runs_handler.py:
        (RunsHandler.get):

2012-02-06  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Update NEWS and configure.ac for 1.7.5 release
        https://bugs.webkit.org/show_bug.cgi?id=77859

        Reviewed by Philippe Normand.

        * configure.ac: Bumped version number.

2012-02-05  ChangSeok Oh  <shivamidow@gmail.com>

        [EFL] Enable WebGL with glx backend
        https://bugs.webkit.org/show_bug.cgi?id=77308

        Reviewed by Martin Robinson.

        Enabled WebGL feature for EFL port. The way is very similar to the one of GTK port.

        * Source/cmake/OptionsEfl.cmake: Added feature option for WebGL.

2012-02-05  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [CMAKE] Support javascriptcore test for EFL port. 
        https://bugs.webkit.org/show_bug.cgi?id=77425

        Reviewed by Daniel Bates.

        Efl and WinCE as well as Blackberry port are now using Cmake as its build system
        and they are share the make file to create jsc excutable. In order to run
        "run-javascriptcore-tests", EFL port needs to change jsc installation configuration
        with executable output directory(e.g. Programs). So, this patch change jsc installation
        configuration only for EFL port.

        * Source/cmake/OptionsEfl.cmake: Change *jsc_efl* name with *jsc*.

2012-02-05  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [CMAKE] Do not build Tools when building jsc only. 
        https://bugs.webkit.org/show_bug.cgi?id=77826

        Reviewed by Daniel Bates.

        Do not build Tools when jsc is only built. Build breaks occur because
        Tools is built together when building jsc.

        * CMakeLists.txt: Build Tools directory when ENABLE_TOOLS is on.

2012-02-04  Philip Rogers  <pdr@google.com>

        Fix bug in svg-link-hover-use.svg
        https://bugs.webkit.org/show_bug.cgi?id=77768

        Reviewed by Eric Seidel.

        * ManualTests/svg-link-hover-use.svg:

2012-02-04  Kalev Lember  <kalevlember@gmail.com>

        [GTK] Use the wide character version of win32 API by default
        https://bugs.webkit.org/show_bug.cgi?id=77809

        Reviewed by Martin Robinson.

        Certain win32-specific files (like PluginDatabaseWin.cpp) make the
        assumption that the wide character version of win32 API is the default.
        Define _UNICODE and UNICODE to do this, similar to what other win32
        ports are doing.

        * GNUmakefile.am:

2012-02-03  Kalev Lember  <kalevlember@gmail.com>

        [GTK] configure: Print out the -Wno-c++0x-compat test result
        https://bugs.webkit.org/show_bug.cgi?id=77757

        Reviewed by Martin Robinson.

        The check whether -Wno-c++0x-compat flag is needed didn't print out
        the test result (and newline), which caused the following test to be
        displayed on the same line.

        checking if we have to disable C++0x compat warnings for GCC >= 4.6.0... checking pthread.h usability... yes

        * configure.ac:

2012-02-03  Ryosuke Niwa  <rniwa@webkit.org>

        perf-o-matic should store chromium svn revision
        https://bugs.webkit.org/show_bug.cgi?id=77725

        Reviewed by Dirk Pranke.

        Store both WebKit and Chromium revisions when both are reported.

        * Websites/webkit-perf.appspot.com/models.py:
        (Build):
        * Websites/webkit-perf.appspot.com/report_handler.py:
        (ReportHandler.post):
        (ReportHandler._create_build_if_possible):
        (ReportHandler._create_build_if_possible.execute):
        * Websites/webkit-perf.appspot.com/static/manual-submit.html:

2012-02-03  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Replace GNU linker script for exports with export macros in WTF/JSC
        https://bugs.webkit.org/show_bug.cgi?id=77723

        Reviewed by Tor Arne Vestbø.

        * Source/api.pri: Remove use of GNU linker script on Linux.
        * Source/qtwebkit-export.map: Removed.

2012-02-03  Shinya Kawanaka  <shinyak@google.com>

        Stop calling Element::ensureShadowRoot in Internals.
        https://bugs.webkit.org/show_bug.cgi?id=77612

        Reviewed by Hajime Morita.

        * Source/autotools/symbols.filter:

2012-02-02  Mark Rowe  <mrowe@apple.com>

        <http://webkit.org/b/77717> Makefile should provide control over output verbosity

        Allow the filtering of the output of our Makefile to be configured via a user default
        and overriden via a command-line argument to make.

        The Makefile takes the verbosity from BuildTranscriptVerbosity default in the
        org.webkit.BuildConfiguration domain. The supported values are "default", "quiet"
        and "noisy". "default" maintains the existing behavior of only filtering out
        the setenv lines from Xcode's shell script build phases. "quiet" filters all output
        through filter-build-webkit. "noisy" provides unfiltered output. The verbosity can
        be overriden for a single invocation of make by specifying the VERBOSITY variable
        on the make command line.

        To always get full output:
        defaults write org.webkit.BuildConfiguration BuildTranscriptVerbosity noisy

        To always get filtered ouptut:
        defaults write org.webkit.BuildConfiguration BuildTranscriptVerbosity quiet

        To get full output for a single build:
        make VERBOSITY=noisy

        Reviewed by Dan Bernstein.

        * Makefile.shared:

2012-02-02  Rakesh KN  <rakesh.kn@motorola.com>

        hidden attribute on <input type=file /> suppresses the file selection dialog
        https://bugs.webkit.org/show_bug.cgi?id=58208

        Reviewed by Ryosuke Niwa.

        * ManualTests/input-file-hidden-open-dialog-on-click.html: Added.
        Adding manual test as the file dialog opens only in User gesture.

2012-02-01  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] FFTFrame implementation
        https://bugs.webkit.org/show_bug.cgi?id=73545

        Reviewed by Chris Rogers.

        * configure.ac: Enable the WebAudio option again and remove
        libfftw checks.

2012-01-31  Ryosuke Niwa  <rniwa@webkit.org>

        webkit-perf.appspot.com should accept test results without medians
        https://bugs.webkit.org/show_bug.cgi?id=77513

        Reviewed by Hajime Morita.

        Don't store 0s when values are not in JSON.

        * Websites/webkit-perf.appspot.com/report_handler.py:
        (ReportHandler.post._float_or_none):
        (ReportHandler.post):

2012-01-31  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Tap highlighting: Support better outlines for multiline inlines
        https://bugs.webkit.org/show_bug.cgi?id=77428

        Reviewed by Simon Hausmann.

        Update the test to use a transform.

        * ManualTests/qt/tap-highlighting-inlines.html:

2012-01-31  Nayan Kumar K  <nayankk@motorola.com>

        [GTK] Remove V8 compilation option.
        https://bugs.webkit.org/show_bug.cgi?id=77405

        Reviewed by Philippe Normand.

        Revert the changes introduced as part of bug 69469
        to provide an option to compile V8 as JavaScript engine.

        * GNUmakefile.am: Remove defining USE_JSC macro.
        * configure.ac: Remove --with-jsengine option.

2012-01-25  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] 0.11 build support
        https://bugs.webkit.org/show_bug.cgi?id=77085

        Reviewed by Martin Robinson.

        * configure.ac: New --with-gstreamer option, defaulting to 0.10.

2012-01-30  Ryosuke Niwa  <rniwa@webkit.org>

        Build fix after r106321.

        * Websites/webkit-perf.appspot.com/report_handler.py:
        * Websites/webkit-perf.appspot.com/manifest_handler.py:
        (ManifestHandler.get):

2012-01-30  Ryosuke Niwa  <rniwa@webkit.org>

        Python code in webkit-perf.appspot.com uses camelCase
        https://bugs.webkit.org/show_bug.cgi?id=77392

        Reviewed by Adam Barth.

        Use PEP8 style naming conventions instead of camelCase.

        * Websites/webkit-perf.appspot.com/create_handler.py:
        (CreateHandler.post):
        (CreateHandler._create_builder):
        (CreateHandler._create_branch):
        (CreateHandler._create_platform):
        * Websites/webkit-perf.appspot.com/dashboard_handler.py:
        (DashboardHandler.get):
        * Websites/webkit-perf.appspot.com/manifest_handler.py:
        (ManifestHandler.get):
        * Websites/webkit-perf.appspot.com/merge_tests_handler.py:
        (MergeTestsHandler.post):
        * Websites/webkit-perf.appspot.com/models.py:
        (create_in_transaction_with_numeric_id_holder):
        (delete_model_with_numeric_id_holder):
        (modelFromNumericId):
        (Builder.authenticate):
        (Builder.hashed_password):
        (Test.cache_key):
        * Websites/webkit-perf.appspot.com/report_handler.py:
        (ReportHandler.post):
        (ReportHandler._model_by_key_name_in_body_or_error):
        (ReportHandler._integer_in_body):
        (ReportHandler._timestamp_in_body):
        (ReportHandler.bypass_authentication):
        (ReportHandler._results_are_valid):
        (ReportHandler._results_are_valid._is_float_convertible):
        (ReportHandler._create_build_if_possible):
        (ReportHandler._create_build_if_possible.execute):
        (ReportHandler._add_test_if_needed):
        (ReportHandler._add_test_if_needed.execute):
        (ReportHandler):
        (AdminReportHandler.bypass_authentication):
        * Websites/webkit-perf.appspot.com/runs_handler.py:
        (RunsHandler.get):

2012-01-30  Ryosuke Niwa  <rniwa@webkit.org>

        Enable memcache on webkit-perf.appspot.com
        https://bugs.webkit.org/show_bug.cgi?id=77378

        Reviewed by Adam Barth.

        Eanble memcache on dashboard, manifest, and runs handlers. Clear appropriate caches when new runs are reported,
        or new models are created. We flush all caches when tests are merged since it's hard to figure out dependencies
        in that case. Luckily, we merge tests only occassionally and manually (or hope so) so this shouldn't be an issue.

        * Websites/webkit-perf.appspot.com/create_handler.py:
        (CreateHandler.post):
        * Websites/webkit-perf.appspot.com/dashboard_handler.py:
        (DashboardHandler.get):
        * Websites/webkit-perf.appspot.com/manifest_handler.py:
        (ManifestHandler.get):
        * Websites/webkit-perf.appspot.com/merge_tests_handler.py:
        (MergeTestsHandler.post):
        * Websites/webkit-perf.appspot.com/models.py:
        (createInTransactionWithNumericIdHolder):
        (Test):
        (Test.cacheKey):
        * Websites/webkit-perf.appspot.com/report_handler.py:
        (ReportHandler.post):
        (ReportHandler._addTestIfNeeded):
        * Websites/webkit-perf.appspot.com/runs_handler.py:
        (RunsHandler.get):

2012-01-30  Ryosuke Niwa  <rniwa@webkit.org>

        webkit-perf.appspot.com should have an ability to merge tests
        https://bugs.webkit.org/show_bug.cgi?id=77250

        Reviewed by Adam Barth.

        Added admin/merge-tests. This page allows administrators to easily merge test objects.

        Also add the forgotten title.png and rename api/create to admin/create since we don't allow
        non-admins to create new models anyway.

        * Websites/webkit-perf.appspot.com/app.yaml:
        * Websites/webkit-perf.appspot.com/css: Added.
        * Websites/webkit-perf.appspot.com/css/title.png: Added.
        * Websites/webkit-perf.appspot.com/main.py:
        * Websites/webkit-perf.appspot.com/merge_tests.yaml: Added.
        * Websites/webkit-perf.appspot.com/merge_tests_handler.py: Added.
        (MergeTestHandler):
        (MergeTestHandler.get):
        (MergeTestHandler.post):
        * Websites/webkit-perf.appspot.com/models.py:
        (deleteModelWithNumericIdHolder):
        * Websites/webkit-perf.appspot.com/static/create-models.html:

2012-01-30  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Add manual tests for tap highlighting

        Rubberstamped by Simon Hausmann.

        * ManualTests/qt/tap-highlighting-colors.html: Added.
        * ManualTests/qt/tap-highlighting-images.html: Added.
        * ManualTests/qt/tap-highlighting-inlines.html: Added.

2012-01-30  Allan Sandfeld Jensen  <allan.jensen@nokia.com>

        Manual test of number of resize events emitted during page generation.
        https://bugs.webkit.org/show_bug.cgi?id=77212

        Is needed to test if too many resize events are send when using fixed
        layout, and needs to be a manual test because the test framework does
        not currently support testing fixed layout.

        Reviewed by Kenneth Rohde Christiansen.

        * ManualTests/resize-events.html: Added.

2012-01-29  Zoltan Herczeg  <zherczeg@webkit.org>

        Custom written CSS lexer
        https://bugs.webkit.org/show_bug.cgi?id=70107

        Reviewed by Antti Koivisto and Oliver Hunt.

        Remove tokenizer.cpp from intermediate sources.

        * wscript:

2012-01-27  Fady Samuel  <fsamuel@chromium.org>

        Rename shouldLayoutFixedElementsRelativeToFrame and make it a setting
        https://bugs.webkit.org/show_bug.cgi?id=76459

        Reviewed by Darin Fisher.

        * Source/autotools/symbols.filter:

2012-01-26  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Add basic printing support to WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=76172

        Reviewed by Gustavo Noronha Silva.

        * configure.ac: Check whether GTK+ UNIX printing is available.

2012-01-27  ChangSeok Oh  <shivamidow@gmail.com>

        [EFL] SVG_FONT is not disabled when SVG is disabled.
        https://bugs.webkit.org/show_bug.cgi?id=77174

        Reviewed by Eric Seidel.

        SVG_FONTS should be disabled when SVG is disabled. Or else it causes build-break.
        Relocated checking ENABLE_GLIB_SUPPORT & ENABLE_VIDEO to avoid duplication.

        * Source/cmake/OptionsEfl.cmake:

2012-01-26  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed. Build fix, don't build some sources
        which appear to no longer be needed.

        * wscript:

2012-01-24  Ryosuke Niwa  <rniwa@webkit.org>

        Port Mozilla's Graph Server
        https://bugs.webkit.org/show_bug.cgi?id=76312

        Reviewed by Adam Barth.

        Add the app engine backend for the Mozilla's graph server used on perf-webkit.appspot.com.

        To deploy webkit-perf.appspot.com, you also need to pull index.html, embed.html, graph.html, jq,
        js (except config.js), and css (except title.png) from https://github.com/mozilla/graphs.

        * Websites/perf-webkit.appspot.com: Added.
        * Websites/perf-webkit.appspot.com/app.yaml: Added.
        * Websites/perf-webkit.appspot.com/create_handler.py: Added.
        (CreateHandler):
        (CreateHandler.post):
        (CreateHandler._createBuilder):
        (CreateHandler._createBuilder.execute):
        (CreateHandler._createBranch):
        (CreateHandler._createBranch.execute):
        (CreateHandler._createPlatform):
        (CreateHandler._createPlatform.execute):
        * Websites/perf-webkit.appspot.com/dashboard_handler.py: Added.
        (DashboardHandler):
        (DashboardHandler.get):
        * Websites/perf-webkit.appspot.com/index.yaml: Added.
        * Websites/perf-webkit.appspot.com/main.py: Added.
        (main):
        * Websites/perf-webkit.appspot.com/manifest_handler.py: Added.
        (ManifestHandler):
        (ManifestHandler.get):
        * Websites/perf-webkit.appspot.com/models.py: Added.
        (NumericIdHolder):
        (NumericIdHolder.whose):
        (createInTransactionWithNumericIdHolder):
        (modelFromNumericId):
        (Branch):
        (Platform):
        (Builder):
        (Builder.authenticate):
        (Builder.hashedPassword):
        (Build):
        (Test):
        (TestResult):
        (ReportLog):
        * Websites/perf-webkit.appspot.com/report_handler.py: Added.
        (ReportHandler):
        (ReportHandler.post):
        (ReportHandler._modelByKeyNameInBodyOrError):
        (ReportHandler._integerInBody):
        (ReportHandler._timestampInBody):
        (ReportHandler._output):
        (ReportHandler._resultsAreValid):
        (ReportHandler._createBuildIfPossible):
        (ReportHandler._createBuildIfPossible.execute):
        (ReportHandler._addTestIfNeeded):
        (ReportHandler._addTestIfNeeded.execute):
        * Websites/perf-webkit.appspot.com/runs_handler.py: Added.
        (RunsHandler):
        (RunsHandler.get):
        * Websites/perf-webkit.appspot.com/static: Added.
        * Websites/perf-webkit.appspot.com/static/create-models.html: Added.
        * Websites/perf-webkit.appspot.com/static/manual-submit.html: Added.

2012-01-25  Hajime Morita  <morrita@google.com>>

        ENABLE_SHADOW_DOM should be available via build-webkit --shadow-dom
        https://bugs.webkit.org/show_bug.cgi?id=76863

        Reviewed by Dimitri Glazkov.

        Added a feature flag.

        * Source/cmake/OptionsBlackBerry.cmake:
        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * configure.ac:

2012-01-25  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        [Qt] Implement tap feedback respecting -webkit-tap-highlight-color
        https://bugs.webkit.org/show_bug.cgi?id=76914

        Reviewed by Simon Hausmann.

        Add a manual test.

        * ManualTests/qt/tap-highlighting.html: Added.

2012-01-25  Roland Steiner  <rolandsteiner@chromium.org>

        <style scoped>: Implement registering of <style scoped> with the scoping element
        https://bugs.webkit.org/show_bug.cgi?id=67790

        windows.internals updates

        Reviewed by Dimitri Glazkov.

        * Source/autotools/symbols.filter:

2012-01-24  Mark Rowe  <mrowe@apple.com>

        Death to JavaScriptGlue.

        Rubber-stamped by Geoffrey Garen.

        * Source/JavaScriptGlue: Removed.
        * Source/Makefile: Stop building JavaScriptGlue.

2012-01-24  Simon Hausmann  <simon.hausmann@nokia.com>

        Some qmake build files must include Qt5's "quick" module.
        https://bugs.webkit.org/show_bug.cgi?id=76671

        Unreviewed build fix.

        * Source/api.pri:

2012-01-21  Priit Laes  <plaes@plaes.org>

        [GTK][PATCH] Enable MathML support by default
        https://bugs.webkit.org/show_bug.cgi?id=76790

        Reviewed by Martin Robinson.

        * configure.ac: Enable MathML by default.

2012-01-20  Marc-Andre Decoste  <mad@chromium.org>

        Add proper offset to position right click to simulate a context menu invocation.
        https://bugs.webkit.org/show_bug.cgi?id=76421

        Reviewed by Ojan Vafai.

        * ManualTests/win/contextmenu-key3.html: Added.

2012-01-20  Kinuko Yasuda  <kinuko@chromium.org>

        Unreviewed; Windows buildbot update failure fix.

        * ../ManualTests/data-transfer-items-file-dragout.html: Removed the notion of test:lorem-text.html.
        * ../ManualTests/resources/test:lorem-text.html: Removed as this doesn't work on Windows.

2012-01-20  Kinuko Yasuda  <kinuko@chromium.org>

        Add DataTransferItems support for drag-and-drop'ed files and texts
        https://bugs.webkit.org/show_bug.cgi?id=76367

        Reviewed by Tony Chang.

        * ManualTests/data-transfer-items-file-dragout.html: Added.
        * ManualTests/test:lorem-text.html: Added.

2012-01-20  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Expose accessibility hierarchy in WebKit2 to ATK/AT-SPI based ATs
        https://bugs.webkit.org/show_bug.cgi?id=72589

        Reviewed by Martin Robinson.

        New optional dependency for WK2's accessibility unit test: AT-SPI2.

        * configure.ac: Check for AT-SPI2 when building with WK2 support.

2012-01-19  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        [Qt] Public API watch dog auto test.
        https://bugs.webkit.org/show_bug.cgi?id=73922

        Reviewed by Simon Hausmann.

        This test aims to prevent unintended/unapproved
        modifications to the public QML API.

        * Source/tests.pri:

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

        Rubber-stamped by Martin Robinson.

        * Source/autotools/symbols.filter: try to fix the 32 bits release
        bot by also adding the symbol it generates

2012-01-19  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Make build-webkit always do safe incremental builds after update-webkit

        When building against Qt5 with GCC we would just run 'make' in the build dir,
        and rely on the dependency files output by GCC (-MD) to handle dependency
        tracking, but that fails for special-cases like adding a Q_OBJECT macro
        to a header.

        To guarantee that an incrmental build will work, we have to run 'make qmake',
        which we now do on every build-webkit that's followed by a successful run
        of update-webkit. The reasoning is that update-webkit can result in such
        potential corner-cases being applied, and since we can't know for sure
        unless we inspect the diff and account for all the corner cases we assume
        the worst and always run 'make qmake'.

        After a succesful run of build-webkit we proceed to do just 'make' for any
        subsequent runs, since we assume that the developer knows what kind of
        changes he/she is doing, and when a 'make qmake' is needed.

        Reviewed by Simon Hausmann.

        * .gitignore:

2012-01-18  Dirk Pranke  <dpranke@chromium.org>

        [chromium] move Tools.gyp, switch build-webkit --chromium to All.gyp
        https://bugs.webkit.org/show_bug.cgi?id=76505

        Reviewed by Tony Chang.

        Update with newly-generated files.

        * .gitignore:

2012-01-18  Eric Carlson  <eric.carlson@apple.com>

        Provide access to user's list of preferred languages
        https://bugs.webkit.org/show_bug.cgi?id=76138

        Reviewed by Alexey Proskuryakov.

        * Source/autotools/symbols.filter: List the new functions.

2012-01-18  Luciano Wolf  <luciano.wolf@openbossa.org>

        [Qt][WK2] Broken build with undefined reference to shm_open and shm_unlink
        https://bugs.webkit.org/show_bug.cgi?id=76538

        Reviewed by Tor Arne Vestbø.

        The -lrt parameter was coming before -lWebKit2 during linkage.

        Moved rt lib inclusion from Source/api.pri to WebKit2.pri as it should be aware
        of its own dependencies instead of letting WebKit guess about. Letting
        it on api.pri can lead to a wrong parameter's order during linker phase.
        Ubuntu 11.10 was giving errors about SharedMemory (shm_open and
        shm_unlink undefined symbols).

        * Source/api.pri:

2012-01-18  Balazs Kelemen  <kbalazs@webkit.org>

        [Qt] Consolidate layout test crash logging
        https://bugs.webkit.org/show_bug.cgi?id=75088

        Reviewed by Simon Hausmann.

        Move backtrace generating logic into WTFReportBacktrace
        and add a way to deinstall signal handlers if we know
        that we have already printed the backtrace.

        * Source/qtwebkit-export.map:

2012-01-18  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Move OTHER_FILES from WebKit.pro to Tools.pro

        Reviewed by Simon Hausmann.

        * WebKit.pro:

2012-01-18  Shinya Kawanaka  <shinyak@google.com>

        Move ShadowContentElement from dom/ to html/ and make ShadowContentElement subclass of HTMLElement.
        https://bugs.webkit.org/show_bug.cgi?id=76241

        Reviewed by Dimitri Glazkov.

        * Source/autotools/symbols.filter: Exposed necessary symbols.

2012-01-18  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix GTK+ build after r105245.

        * Source/autotools/symbols.filter: Fix symbol name.

2012-01-17  Hajime Morrita  <morrita@chromium.org>

        [Internals] Should be able to access corresponding Document object.
        https://bugs.webkit.org/show_bug.cgi?id=76425

        Added exported symbols.

        Reviewed by Adam Barth.

        * Source/autotools/symbols.filter:

2012-01-17  Stephen Chenney  <schenney@chromium.org>

        NULL ptr in WebCore::RenderSVGInlineText::localCaretRect
        https://bugs.webkit.org/show_bug.cgi?id=75851

        Reviewed by Ryosuke Niwa.

        Added a check for null box in localCaretRect, to match test in other
        implementations. Adding a manual test because the crash is not
        reproducible in DRT.

        * ManualTests/svg-modify-deleted-selection.svg: Added.

2012-01-17  Raul Hudea  <rhudea@adobe.com>

        Move tests out of WebCore/manual-tests to toplevel ManualTests.
        It looks like the manual-tests folder wasn't noticed by git (or me :).

        Move some SVG manual tests from deprecated WebCore/manual-tests to toplevel ManualTests
        https://bugs.webkit.org/show_bug.cgi?id=76437

        Reviewed by Daniel Bates.

        * ManualTests/svg-animation-css-transform.html: Renamed from Source/WebCore/manual-tests/svg-animation-css-transform.html.
        * ManualTests/svg-css-animate-compound.html: Renamed from Source/WebCore/manual-tests/svg-css-animate-compound.html.
        * ManualTests/svg-css-transition-compound.html: Renamed from Source/WebCore/manual-tests/svg-css-transition-compound.html.

2012-01-16  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Add more files to project-files for easier navigation in Qt Creator

        Reviewed by Simon Hausmann.

        * WebKit.pro:

2012-01-16  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Update NEWS and configure.ac for 1.7.4 release
        https://bugs.webkit.org/show_bug.cgi?id=76375

        Reviewed by Philippe Normand.

        * configure.ac: Bumped version number.

2012-01-16  Shinya Kawanaka  <shinyak@google.com>

        [crash] Renderer crashes when spell checking a disabled input field.
        https://bugs.webkit.org/show_bug.cgi?id=75941

        Reviewed by Hajime Morita.

        * ManualTests/editing-disabled-node-replace-crash.html: Added.

2012-01-13  Simon Fraser  <simon.fraser@apple.com>

        Unmatched transparency layer begin/end on a filtered element with an opacity ancestor
        https://bugs.webkit.org/show_bug.cgi?id=76329

        Reviewed by Dan Bernstein.
        
        Manual test with a filtered element as a descendant of an element with
        opacity. Doing a Find is necessary to exercise the test.

        * ManualTests/filters/opacity-above-filter.html: Added.

2012-01-13  Eli Fidler  <efidler@rim.com>

        GCC compiler version is not detected properly for QNX qcc variant
        https://bugs.webkit.org/show_bug.cgi?id=76288

        Reviewed by Rob Buis.

        Provide an alternative way of getting the compiler version for GCC variants
        that don't support -dumpversion (such as qcc).

        * Source/cmake/WebKitHelpers.cmake:

2012-01-13  Gregg Tavares  <gman@google.com>

        Add WebGLContextGroup as step toward sharing WebGL resources
        https://bugs.webkit.org/show_bug.cgi?id=75906

        The WebGL Working Group will soon add the ability to share
        WebGL resources among WebGL contexts. This is the necessary
        prep work. NO API changes.

        Added WebGLSharedObject for objects that are shared vs
        WebGLContextObject for objects that are not.

        Reviewed by Kenneth Russell.

        No new tests. No change in behavior.

        * GNUmakefile.list.am:
        * WebCore.gypi:
        * html/canvas/OESVertexArrayObject.cpp:
        (WebCore::OESVertexArrayObject::createVertexArrayOES):
        (WebCore::OESVertexArrayObject::deleteVertexArrayOES):
        (WebCore::OESVertexArrayObject::isVertexArrayOES):
        (WebCore::OESVertexArrayObject::bindVertexArrayOES):
        * html/canvas/WebGLBuffer.cpp:
        (WebCore::WebGLBuffer::WebGLBuffer):
        (WebCore::WebGLBuffer::~WebGLBuffer):
        (WebCore::WebGLBuffer::deleteObjectImpl):
        * html/canvas/WebGLBuffer.h:
        * html/canvas/WebGLContextGroup.cpp: Added.
        (WebCore::WebGLContextGroup::create):
        (WebCore::WebGLContextGroup::WebGLContextGroup):
        (WebCore::WebGLContextGroup::~WebGLContextGroup):
        (WebCore::WebGLContextGroup::getAGraphicsContext3D):
        (WebCore::WebGLContextGroup::addContext):
        (WebCore::WebGLContextGroup::removeContext):
        (WebCore::WebGLContextGroup::removeObject):
        (WebCore::WebGLContextGroup::addObject):
        (WebCore::WebGLContextGroup::detachAndRemoveAllObjects):
        (WebCore::WebGLContextGroup::loseContextGroup):
        * html/canvas/WebGLContextGroup.h: Copied from Source/WebCore/html/canvas/WebGLShader.h.
        * html/canvas/WebGLContextObject.cpp: Copied from Source/WebCore/html/canvas/WebGLShader.cpp.
        (WebCore::WebGLContextObject::WebGLContextObject):
        (WebCore::WebGLContextObject::~WebGLContextObject):
        (WebCore::WebGLContextObject::detachContext):
        (WebCore::WebGLContextObject::getAGraphicsContext3D):
        * html/canvas/WebGLContextObject.h: Copied from Source/WebCore/html/canvas/WebGLShader.h.
        (WebCore::WebGLContextObject::context):
        (WebCore::WebGLContextObject::validate):
        (WebCore::WebGLContextObject::hasGroupOrContext):
        * html/canvas/WebGLFramebuffer.cpp:
        (WebCore::WebGLFramebuffer::WebGLFramebuffer):
        (WebCore::WebGLFramebuffer::~WebGLFramebuffer):
        (WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer):
        (WebCore::WebGLFramebuffer::getAttachment):
        (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
        (WebCore::WebGLFramebuffer::checkStatus):
        (WebCore::WebGLFramebuffer::onAccess):
        (WebCore::WebGLFramebuffer::deleteObjectImpl):
        (WebCore::WebGLFramebuffer::initializeRenderbuffers):
        * html/canvas/WebGLFramebuffer.h:
        * html/canvas/WebGLObject.cpp:
        (WebCore::WebGLObject::WebGLObject):
        (WebCore::WebGLObject::~WebGLObject):
        (WebCore::WebGLObject::deleteObject):
        (WebCore::WebGLObject::detach):
        (WebCore::WebGLObject::onDetached):
        * html/canvas/WebGLObject.h:
        * html/canvas/WebGLProgram.cpp:
        (WebCore::WebGLProgram::WebGLProgram):
        (WebCore::WebGLProgram::~WebGLProgram):
        (WebCore::WebGLProgram::deleteObjectImpl):
        (WebCore::WebGLProgram::cacheActiveAttribLocations):
        * html/canvas/WebGLProgram.h:
        * html/canvas/WebGLRenderbuffer.cpp:
        (WebCore::WebGLRenderbuffer::~WebGLRenderbuffer):
        (WebCore::WebGLRenderbuffer::WebGLRenderbuffer):
        (WebCore::WebGLRenderbuffer::deleteObjectImpl):
        * html/canvas/WebGLRenderbuffer.h:
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::WebGLRenderingContext):
        (WebCore::WebGLRenderingContext::initializeNewContext):
        (WebCore::WebGLRenderingContext::~WebGLRenderingContext):
        (WebCore::WebGLRenderingContext::clearIfComposited):
        (WebCore::WebGLRenderingContext::checkObjectToBeBound):
        (WebCore::WebGLRenderingContext::clear):
        (WebCore::WebGLRenderingContext::copyTexImage2D):
        (WebCore::WebGLRenderingContext::copyTexSubImage2D):
        (WebCore::WebGLRenderingContext::createBuffer):
        (WebCore::WebGLRenderingContext::createFramebuffer):
        (WebCore::WebGLRenderingContext::createTexture):
        (WebCore::WebGLRenderingContext::createProgram):
        (WebCore::WebGLRenderingContext::createRenderbuffer):
        (WebCore::WebGLRenderingContext::createShader):
        (WebCore::WebGLRenderingContext::deleteObject):
        (WebCore::WebGLRenderingContext::deleteRenderbuffer):
        (WebCore::WebGLRenderingContext::deleteTexture):
        (WebCore::WebGLRenderingContext::detachShader):
        (WebCore::WebGLRenderingContext::validateElementArraySize):
        (WebCore::WebGLRenderingContext::validateIndexArrayConservative):
        (WebCore::WebGLRenderingContext::validateIndexArrayPrecise):
        (WebCore::WebGLRenderingContext::validateWebGLObject):
        (WebCore::WebGLRenderingContext::drawArrays):
        (WebCore::WebGLRenderingContext::drawElements):
        (WebCore::WebGLRenderingContext::framebufferRenderbuffer):
        (WebCore::WebGLRenderingContext::framebufferTexture2D):
        (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
        (WebCore::WebGLRenderingContext::linkProgram):
        (WebCore::WebGLRenderingContext::readPixels):
        (WebCore::WebGLRenderingContext::useProgram):
        (WebCore::WebGLRenderingContext::removeSharedObject):
        (WebCore::WebGLRenderingContext::addSharedObject):
        (WebCore::WebGLRenderingContext::removeContextObject):
        (WebCore::WebGLRenderingContext::addContextObject):
        (WebCore::WebGLRenderingContext::detachAndRemoveAllObjects):
        (WebCore::WebGLRenderingContext::initVertexAttrib0):
        (WebCore::WebGLRenderingContext::loseContext):
        (WebCore::WebGLRenderingContext::loseContextImpl):
        * html/canvas/WebGLRenderingContext.h:
        (WebCore::WebGLRenderingContext::contextGroup):
        * html/canvas/WebGLShader.cpp:
        (WebCore::WebGLShader::WebGLShader):
        (WebCore::WebGLShader::~WebGLShader):
        (WebCore::WebGLShader::deleteObjectImpl):
        * html/canvas/WebGLShader.h:
        * html/canvas/WebGLSharedObject.cpp: Copied from Source/WebCore/html/canvas/WebGLRenderbuffer.cpp.
        (WebCore::WebGLSharedObject::WebGLSharedObject):
        (WebCore::WebGLSharedObject::~WebGLSharedObject):
        (WebCore::WebGLSharedObject::detachContextGroup):
        (WebCore::WebGLSharedObject::getAGraphicsContext3D):
        * html/canvas/WebGLSharedObject.h: Copied from Source/WebCore/html/canvas/WebGLShader.h.
        (WebCore::WebGLSharedObject::contextGroup):
        (WebCore::WebGLSharedObject::isBuffer):
        (WebCore::WebGLSharedObject::isFramebuffer):
        (WebCore::WebGLSharedObject::isProgram):
        (WebCore::WebGLSharedObject::isRenderbuffer):
        (WebCore::WebGLSharedObject::isShader):
        (WebCore::WebGLSharedObject::isTexture):
        (WebCore::WebGLSharedObject::validate):
        (WebCore::WebGLSharedObject::hasGroupOrContext):
        * html/canvas/WebGLTexture.cpp:
        (WebCore::WebGLTexture::WebGLTexture):
        (WebCore::WebGLTexture::~WebGLTexture):
        (WebCore::WebGLTexture::deleteObjectImpl):
        * html/canvas/WebGLTexture.h:
        * html/canvas/WebGLVertexArrayObjectOES.cpp:
        (WebCore::WebGLVertexArrayObjectOES::WebGLVertexArrayObjectOES):
        (WebCore::WebGLVertexArrayObjectOES::~WebGLVertexArrayObjectOES):
        (WebCore::WebGLVertexArrayObjectOES::deleteObjectImpl):
        * html/canvas/WebGLVertexArrayObjectOES.h:

2012-01-12  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r104805.
        http://trac.webkit.org/changeset/104805
        https://bugs.webkit.org/show_bug.cgi?id=76180

        Breaks apple win compilation. (Requested by vsevik on
        #webkit).

        * Source/autotools/symbols.filter:

2012-01-12  Simon Hausmann  <simon.hausmann@nokia.com>

        Make the new WTF module build on Qt
        https://bugs.webkit.org/show_bug.cgi?id=76163

        Reviewed by Tor Arne Vestbø.

        * WebKit.pro: Build the new WTF instead of the old one.

2012-01-12  Shinya Kawanaka  <shinyak@google.com>

        ShadowContentElement should be able to use query.
        https://bugs.webkit.org/show_bug.cgi?id=75302

        Reviewed by Hajime Morita.

        * Source/autotools/symbols.filter: Exposed necessary symbols.

2012-01-11  Ulan Degenbaev  <ulan@chromium.org>

        [v8] Int16Array.set(array, offset) fails on first execution
        https://bugs.webkit.org/show_bug.cgi?id=76040

        Reviewed by Kenneth Russell.

        * LayoutTests/fast/canvas/webgl/array-set-with-offset-expected.txt: Added.
        * LayoutTests/fast/canvas/webgl/array-set-with-offset.html: Added.
        * Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
        * Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h:

2012-01-11  Eli Fidler  <efidler@rim.com>

        Fix OpenGL dependency in CMake build system
        https://bugs.webkit.org/show_bug.cgi?id=73559

        Reviewed by Daniel Bates.

        Apparently the EFL port uses desktop OpenGL to implement WebGL, but
        other ports such as BlackBerry use other libraries like OpenGL ES 2.0 or
        ANGLE.

        * Source/cmake/OptionsCommon.cmake:
        * Source/cmake/OptionsEfl.cmake:

2012-01-09  Martin Robinson  <mrobinson@igalia.com>

        [GTK] [AC] Simplify accelerated compositing build options
        https://bugs.webkit.org/show_bug.cgi?id=75518

        Reviewed by Gustavo Noronha Silva.

        * configure.ac: Remove the --enable-3d-rendering option. It's enabled by
        default now when accelerated compositing is enabled.
        * GNUmakefile.am: Automatically enable 3D rendering when accelerated compositing
        is turned on.

2012-01-04  Jon Lee  <jonlee@apple.com>

        Clicking on the cancel button on readonly and disabled search fields darkens as if the search field was editable
        https://bugs.webkit.org/show_bug.cgi?id=69886
        <rdar://problem/10070187>

        Reviewed by Adele Peterson.

        * ManualTests/search-cancel-button.html: Added.

2012-01-06  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Fix compilation of app code against QtWebKit master header file

        Unreviewed trivial build fix.

        * Source/sync.profile: Exclude util.h and testwindow.h from the master header
        file, because it cannot be used outside of the WebKit source tree.

2012-01-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Move listing of include paths and libs to pri files in sources

        Includepaths are sometimes modified by non-Qt contributors so keeping
        them in files inside Sources makes it more likely that they are updated
        along with project files for the other ports.

        Using pri files instead of prf files for this also has the benefit that
        the include() from the main target file can be parsed and followed by
        Qt Creator -- something that does not work with load().

        Dependency from a target to a library through the WEBKIT variable are
        handled through forwarding-files in Tools/qmake/mkspecs/modules, which
        set the source root of the module and include the right pri file.

        Ideally we'd use the variant of include() that takes an optional
        namespace to read the variables into, or the fromfile() function,
        but both of these add an overhead of about 40% on the total qmake
        runtime, due to making a deep copy of all the variables in the
        project or re-reading all the prf files from scratch.

        Reviewed by Simon Hausmann.
        Reviewed by Ossy.

        * WebKit.pro:

2012-01-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Add a few more files ot OTHER_FILES

        Rubber-stamped by Simon Hausmann.

        * WebKit.pro:

2012-01-05  Ulan Degenbaev  <ulan@chromium.org>

        [v8] Null pointer exception if a typed array constructor set to a primitive value.
        https://bugs.webkit.org/show_bug.cgi?id=75532

        Make sure that V8ArrayBufferViewCustomScript.js does not throw exception.

        Reviewed by Kenneth Russell.

        * LayoutTests/fast/canvas/webgl/array-buffer-view-crash-when-reassigned-expected.txt: Added.
        * LayoutTests/fast/canvas/webgl/array-buffer-view-crash-when-reassigned.html: Added.
        * Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
        * Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustomScript.js:

2012-01-05  Zeno Albisser  <zeno@webkit.org>

        [Qt][WK2] Implement custom URL schemes defined in QML.
        https://bugs.webkit.org/show_bug.cgi?id=74931

        Add new classes to the export map.

        Reviewed by Kenneth Rohde Christiansen.

        * Source/qtwebkit-export.map:

2012-01-05  Fady Samuel  <fsamuel@chromium.org>

        Move scalePageBy from eventSender to window.internals
        https://bugs.webkit.org/show_bug.cgi?id=64512

        Reviewed by Simon Fraser.

        * Source/autotools/symbols.filter:

2012-01-04  James Robinson  <jamesr@chromium.org>

        [chromium] Move WebMimeRegistry and dependencies to Source/Platform
        https://bugs.webkit.org/show_bug.cgi?id=74583

        Reviewed by Darin Fisher.

        Update .gitignore for Source/Platform/Platform.gyp/ generated project files.

        * .gitignore:

2012-01-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Introduce new qmake variable 'WEBKIT' for signaling dependencies

        The custom qmake variable 'WEBKIT' is used for signaling that a
        target depends in some way on other subproject of the WebKit
        project. For now this is limited to the set of intermediate
        libraries: wtf, javascriptcore, webcore, and webkit2.

        This replaces the previous convension of using load(foo) for
        just include paths, and CONFIG += foo to also link against foo.

        Adding a dependency results in additional include paths being
        available, and potentially linking to the library. This is
        decided by the build system based on conditions such as what
        kind of target is being built and the general build config.

        An advantage to his approach is that it simplifies the individual
        foo.prf files, for example by allowing us to use INCLUDEPATH +=
        and LIBS += as normal instead of prepending.

        Reviewed by Simon Hausmann.

        * Source/api.pri:

2012-01-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Move use of $$qtLibraryTarget() to a single place

        Reviewed by Kenneth Rohde Christiansen.

        * Source/api.pri:

2012-01-04  Mary Wu  <mary.wu@torchmobile.com.cn>

        Enable DOWNLOAD_ATTRIBUTE in BlackBerry porting
        https://bugs.webkit.org/show_bug.cgi?id=75238

        Reviewed by Antonio Gomes.

        * Source/cmakeconfig.h.cmake: Modified to add a new cmakedefine ENABLE_DOWNLOAD_ATTRIBUTE.

2012-01-03  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Clean up detection of fontconfig

        We decide in features.prf whether or not fontconfig is available, and
        set the HAVE_FONTCONFIG define accordingly. All leaf project files
        should use this define to decide whether or not to link against
        fontconfig, not do their own detection.

        We don't need to add link_pkgconfig to CONFIG in each project file,
        as we selectivly enable that configuration in defaults_post when
        needed.

        Reviewed by Ossy.

        * Source/api.pri:

2012-01-02  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Add a way to change web view settings in MiniBrowser
        https://bugs.webkit.org/show_bug.cgi?id=71568

        Reviewed by Philippe Normand.

        * GNUmakefile.am: Initialize minibrowser_built_sources.

2011-12-28  ChangSeok Oh  <shivamidow@gmail.com>

        [GTK] Fix compilation issue when selecting opengl for Accelerated compositing
        https://bugs.webkit.org/show_bug.cgi?id=75309

        Reviewed by Martin Robinson.

        Replace WTF_USE_TEXTURE_MAPPER_OPENGL to WTF_USE_TEXTURE_MAPPER_GL

        * GNUmakefile.am:

2011-12-28  Dan Bernstein  <mitz@apple.com>

        Entering "make" in Source builds only JavaScriptGlue and ANGLE
        https://bugs.webkit.org/show_bug.cgi?id=75318

        Reviewed by Anders Carlsson.

        * Makefile: Changed to make Source and Tools.
        * Source/Makefile: Changed to make all projects in Source.

2011-12-27  Kentaro Hara  <haraken@chromium.org>

        WIP: Enable the [Supplemental] IDL on Gtk
        https://bugs.webkit.org/show_bug.cgi?id=74972

        Reviewed by Adam Barth.

        This patch adds dom_binding_idls, which is used in Source/WebCore/GNUmakefile.list.am.

        * GNUmakefile.am:

2011-12-22  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Enable blob for the BlackBerry porting
        https://bugs.webkit.org/show_bug.cgi?id=75074

        Reviewed by George Staikos.

        * Source/cmake/OptionsBlackBerry.cmake:

2011-12-22  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] Add an option to build WebKit2.
        https://bugs.webkit.org/show_bug.cgi?id=61999

        Reviewed by Eric Seidel.

        * Source/cmake/OptionsEfl.cmake: Set WebKit2_LIBRARY_NAME.

2011-12-22  Daniel Jalkut  <jalkut@red-sweater.com>

        ManualTests HTML template should be simplified
        https://bugs.webkit.org/show_bug.cgi?id=75025

        Reviewed by Ryosuke Niwa.

        * ManualTests/template.html:

2011-12-22  Daniel Jalkut  <jalkut@red-sweater.com>

        WebKit editing throws exception when monochrome color dragged onto text
        https://bugs.webkit.org/show_bug.cgi?id=74775

        Reviewed by Ryosuke Niwa.

        * ManualTests/drag-color-to-contenteditable.html: Added.

2011-12-21  Daniel Bates  <dbates@webkit.org>

        Add CMake option to only build JavaScriptCore
        https://bugs.webkit.org/show_bug.cgi?id=74979

        Reviewed by Rob Buis.

        Towards adding CMake support to script Tools/Scripts/build-jsc, add a CMake
        option to only build JavaScriptCore.

        * CMakeLists.txt: Defined ENABLE_WEBCORE to build WebCore. If the option
        ONLY_BUILD_JAVASCRIPTCORE is specified then don't build WebCore, WebKit, or WebKit2.
        * Source/CMakeLists.txt:
        * Source/cmake/WebKitFS.cmake:

2011-12-20  Ilya Tikhonovsky  <loislo@chromium.org>

        emacs: unreviewed. add settings for editing js files.

        * .dir-locals.el:

2011-12-20  Rafael Brandao  <rafael.lobo@openbossa.org>

        [Qt][WK2] Implement favicon support
        https://bugs.webkit.org/show_bug.cgi?id=71082

        Reviewed by Simon Hausmann.

        * Source/qtwebkit-export.map: Added new classes.

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

        Rename EditCommandQt to UndoStepQt
        https://bugs.webkit.org/show_bug.cgi?id=74754

        Reviewed by Ryosuke Niwa.

        * Source/api.pri:

2011-12-16  Mark Hahnenberg  <mhahnenberg@apple.com>

        De-virtualize destructors
        https://bugs.webkit.org/show_bug.cgi?id=74331

        Reviewed by Geoffrey Garen.

        * Source/autotools/symbols.filter: Removed symbol no longer present.

2011-12-16  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Update NEWS and configure.ac for 1.7.3 release
        https://bugs.webkit.org/show_bug.cgi?id=74699

        Reviewed by Philippe Normand.

        * configure.ac: Bumped version number.

2011-12-15  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [CMake] Remove ENABLE_DATAGRID from the buildsystem.
        https://bugs.webkit.org/show_bug.cgi?id=74640

        Reviewed by Antonio Gomes.

        r84991 removed Datagrid from the tree, but the options in CMake were
        kept.

        * Source/cmake/OptionsBlackBerry.cmake:
        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmakeconfig.h.cmake:

2011-12-15  Ulan Degenbaev  <ulan@chromium.org>

        Web Inspector: [Chromium]  Call LowMemoryNotification instead of IdleNotification
        https://bugs.webkit.org/show_bug.cgi?id=71821

        Reviewed by Yury Semikhatsky.

        * Source/WebCore/bindings/v8/ScriptProfiler.cpp:

2011-12-15  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Don't add WebCoreSupport and WebKit APIs to include WebCore's include path

        Reviewed Simon Hausmann.

        * Source/api.pri:

2011-12-15  Michael Brüning  <michael.bruning@nokia.com>

        [QT][WK2]Add (experimental) viewport info view to Minibrowser/qt.
        https://bugs.webkit.org/show_bug.cgi?id=72893

        Reviewed by Kenneth Rohde Christiansen.

        This patch extends QQuickWebViewExperimental by a property named
        viewportInfo, which contains the viewport scalability and
        layout and contents size information. This property is exposed to
        QML through the experimental extension for QQuickWebView.

        * Source/qtwebkit-export.map:

2011-12-14  Ryosuke Niwa  <rniwa@webkit.org>

        Add a manual test for caret blinking during forward deletion
        https://bugs.webkit.org/show_bug.cgi?id=74494

        Reviewed by Dan Bernstein.

        Add a test to forward delete 200 characters. Caret should not blink during the deletion.
        This is a follow up for r102413.

        * ManualTests/caret-blink-during-forward-delete.html: Added.

2011-12-14  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Rollout r102769, because it broke Qt-4.8 builds.

        * Source/api.pri:

2011-12-14  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Don't add WebCoreSupport and WebKit APIs to include WebCore's include path

        Followup to r102679

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

        Reviewed by Simon Hausmann.

        * Source/api.pri:

2011-12-14  Alexander Færøy  <alexander.faeroy@nokia.com>

        [Qt] Fix compilation of QtWebKit with --orientation-events without ENABLE_DEVICE_ORIENTATION
        https://bugs.webkit.org/show_bug.cgi?id=74492

        Reviewed by Simon Hausmann.

        * Source/api.pri:

2011-12-14  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>

        [Qt] [WK2] Linking fails if GStreamer not installed after r102493
        https://bugs.webkit.org/show_bug.cgi?id=74412

        Reviewed by Simon Hausmann.

        Add -lrt to fix WK2 linking when gstreamer is not used.

        * Source/api.pri:

2011-12-14  Alexander Færøy  <alexander.faeroy@nokia.com>

        [Qt] DeviceOrientationClientMockQt should be removed in favor of DeviceOrientationClientMock
        https://bugs.webkit.org/show_bug.cgi?id=74417

        Reviewed by Simon Hausmann.

        Based on original patch by Kenneth Christiansen.

        * Source/api.pri:

2011-12-14  Jacky Jiang  <zhajiang@rim.com>

        [BlackBerry] Switch to libjpeg for decoding
        https://bugs.webkit.org/show_bug.cgi?id=74475

        Reviewed by Daniel Bates.

        Find libjpeg instead of libimg.

        * Source/cmake/OptionsBlackBerry.cmake:

2011-12-13  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Get rid of layering violations in includes

        WebKit/qt/API and WebKit/qt/WebCoreSupport should not be included
        in the webcore.prf, but rather in each target that specificly needs
        headers in these location. We used to include them directly in webcore
        since we had layering violations between WebCore and WebKit, but now
        that they are gone there's no reason to do that.

        Reviewed by Simon Hausmann.

        * Source/api.pri:

2011-12-12  Andy Wingo  <wingo@igalia.com>

        Simplify autotools configure.ac
        https://bugs.webkit.org/show_bug.cgi?id=74312

        Reviewed by Martin Robinson.

        * configure.ac: Don't AC_DEFINE so many things.  Many of the
        defines were stale (ENABLE_YARR, ENABLE_JIT_OPTIMIZE_CALL, etc),
        and with Platform.h we don't need to make an explicit decision
        here.  If the user does pass --enable-jit or --disable-jit, effect
        that choice via setting JSC_CPPFLAGS.

2011-12-12  Alexis Menard  <alexis.menard@openbossa.org>

        [Qt][WK2] History is not accessible in QML.
        https://bugs.webkit.org/show_bug.cgi?id=73016

        Reviewed by Simon Hausmann.

        Add the new QWebNavigationHistory in the map file.

        * Source/qtwebkit-export.map:

2011-12-09  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>

        [Qt] request parameter of QQuickWebView::navigationRequested is not a registered type
        https://bugs.webkit.org/show_bug.cgi?id=73826

        Reviewed by Tor Arne Vestbø.

        * Source/qtwebkit-export.map: Adding QWebNavigationRequest

2011-12-09  Joone Hur  <joone.hur@collabora.co.uk>

        [GTK] Initial implementation of Accelerated Compositing using Clutter
        https://bugs.webkit.org/show_bug.cgi?id=73319

        Reviewed by Gustavo Noronha Silva.

        * GNUmakefile.am: Export new compilation macros.
        * configure.ac: Add clutter backend for Accelerated Compositing.

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

        Unreviewed, rolling out r102323.
        http://trac.webkit.org/changeset/102323
        https://bugs.webkit.org/show_bug.cgi?id=74069

        Caused Chromium and GTK build failure (Requested by bashi on
        #webkit).

        * Source/autotools/symbols.filter:

2011-12-08  Fady Samuel  <fsamuel@chromium.org>

        Move scalePageBy from eventSender to window.internals
        https://bugs.webkit.org/show_bug.cgi?id=64512

        Reviewed by Simon Fraser.

        * Source/autotools/symbols.filter:

2011-12-06  Dirk Pranke  <dpranke@chromium.org>

        Add Tools/Tool.xcodeproj,
        Source/WebKit/chromium/WebKitUnitTests.xcodeproj,
        Source/WebKit/chromium/All.xcodeproj to .gitignore

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

        Reviewed by Tony Chang.

        * .gitignore:

2011-12-06  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] build-jsc script doesn't work
        https://bugs.webkit.org/show_bug.cgi?id=73910

        Reviewed by Tor Arne Vestbø.

        * WebKit.pro: Move WTF SUBDIR stuff out of here and
        straight into JavaScriptCore/JavaScriptCore.pro.
        Unconditionally "recurse" into JavaScriptCore now,
        as we'll do the v8 scoping there to only build WTF.

2011-12-05  Alexander Færøy  <alexander.faeroy@nokia.com>

        [Qt] Add Source/qtwebkitversion.h to .gitignore
        https://bugs.webkit.org/show_bug.cgi?id=73823

        Reviewed by Tor Arne Vestbø.

        * .gitignore:

2011-12-03  Dan Winship  <danw@gnome.org>

        [GTK] Update required libsoup version
        https://bugs.webkit.org/show_bug.cgi?id=71611

        Reviewed by Martin Robinson.

        * configure.ac: require libsoup 2.37.2.1 for SoupRequestHTTP API
        changes

2011-12-02  Fady Samuel  <fsamuel@chromium.org>

        When page scaling is in use position:fixed has incorrect results
        https://bugs.webkit.org/show_bug.cgi?id=68617

        Reviewed by Simon Fraser.

        * Source/autotools/symbols.filter:

2011-12-02  Martin Robinson  <mrobinson@igalia.com>

        Try to fix the GTK+ debug bot. As discussed with other GTK+
        hackers recently. It makes sense to just remove G_DISABLE_DEPRECATIONS
        now in WebKit. The flag itself is now deprecated in GLib in favor of
        the gcc attribute.

        * GNUmakefile.am: Remove G_DISABLE_DEPRECATED.

2011-12-02  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed build fixes for Windows build.

        * wscript:

2011-12-02  Alejandro G. Castro  <alex@igalia.com>

        [GTK] Fix TextureMapperCairo compilation
        https://bugs.webkit.org/show_bug.cgi?id=73655

        Reviewed by Martin Robinson.

        * GNUmakefile.am: The variables need the USE part in the name.
        * configure.ac: We can not define the variable twice.

2011-12-02  Raphael Kubo da Costa  <kubo@profusion.mobi>

        Unreviewed, revert r101347.
        https://bugs.webkit.org/show_bug.cgi?id=73580

        It breaks the linking of Tools/ targets due to missing functions.

        * Source/cmake/OptionsEfl.cmake:

2011-12-02  Alejandro G. Castro  <alex@igalia.com>

        [GTK] Improve  C++0x compat warnings check
        https://bugs.webkit.org/show_bug.cgi?id=73642

        Reviewed by Martin Robinson.

        * configure.ac:

2011-12-01  Nayan Kumar K  <nayankk@motorola.com>

        [GTK] Add compilation options to enable/disable Accelerated Compositing and to choose texture mapper implementation.
        https://bugs.webkit.org/show_bug.cgi?id=73458

        Reviewed by Martin Robinson.

        * GNUmakefile.am: Export new compilation macros.
        * configure.ac: Provide option to choose accelerated compositing and texture mapper variations.

2011-12-01  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Make the feature defines for DOM names explicit
        https://bugs.webkit.org/show_bug.cgi?id=72812

        Reviewed by Daniel Bates.

        Preprocessor defines used in WebCore/dom/make_names.pl are set via WEBKIT_FEATURE
        for every port in the correspondig platform file. Pass an explicit list of defines
        to the CMake macro, so we need to maintain the list only once.

        * Source/cmake/OptionsBlackBerry.cmake:
        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmake/WebKitFeatures.cmake:

2011-11-30  Alejandro G. Castro  <alex@igalia.com>

        [GTK] Add accelerated compositing compilation option
        https://bugs.webkit.org/show_bug.cgi?id=73298

        Compile whatever we have inside the USE(ACCELERATED_COMPOSITING)
        define. Add the build compilation option
        --with-accelerated-compositing and use it in the makefile.

        Reviewed by Martin Robinson.

        * GNUmakefile.am:
        * configure.ac:

2011-11-30  Mary Wu  <mary.wu@torchmobile.com.cn>

        remove buildinformation from BlackBerry porting build system
        https://bugs.webkit.org/show_bug.cgi?id=73276

        Reviewed by Daniel Bates.

        * Source/cmake/OptionsBlackBerry.cmake: remove script file generate-buildinfo

2011-11-30  Andrew Wason  <rectalogic@rectalogic.com>

        Replace Qt QThread threading back-end with pthread/Win32 threading back-ends
        https://bugs.webkit.org/show_bug.cgi?id=72155

        Reviewed by Simon Hausmann.

        Add additional WebCoreSupport files for Qt.

        * Source/api.pri:

2011-11-30  Adenilson Cavalcanti  <adenilson.silva@openbossa.org>

        [Qt][WK2] Implement permission API for Qt port
        https://bugs.webkit.org/show_bug.cgi?id=59200

        Permission API hookup for Geolocation, it allows to receive in WebView
        a signal when a permission request is done (e.g. to grant permission
        for accessing geolocation information) and set it accordingly.

        Reviewed by Simon Hausmann.

        * Source/qtwebkit-export.map:

2011-11-29  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed build fix for Leopard compilation.

        * wscript:

2011-11-29  Philippe Normand  <pnormand@igalia.com>

        [GTK] hide WebAudio build option until support for FFTW is removed
        https://bugs.webkit.org/show_bug.cgi?id=73295

        Reviewed by Martin Robinson.

        * configure.ac: Disable WebAudio until the FFTW dependency is removed.

2011-11-29  Hyowon Kim  <hw1008.kim@samsung.com>

        [Texmap][EFL] Accelerated compositing support using TextureMapper on EFL port
        https://bugs.webkit.org/show_bug.cgi?id=73111

        Add feature define for TextureMapper and OpenGL package.

        Reviewed by Noam Rosenthal.

        * Source/cmake/OptionsEfl.cmake:

2011-11-29  Roland Steiner  <rolandsteiner@chromium.org>

        <style scoped>: add ENABLE(STYLE_SCOPED) flag to WebKit
        https://bugs.webkit.org/show_bug.cgi?id=72848

        Add flag and description.

        Reviewed by Dimitri Glazkov.

        * configure.ac:

2011-11-28  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Build system fixes against V8.

        Reviewed by Tor Arne Vestbø.

        * Source/api.pri: Get rid of old v8 cruft.
        * WebKit.pro: Don't build JavaScriptCore when configured with v8.

2011-11-28  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] WTF should be built as separate static library
        https://bugs.webkit.org/show_bug.cgi?id=73201

        Reviewed by Tor Arne Vestbø.

        * Source/api.pri: Require wtf.
        * WebKit.pro: Build WTF.

2011-11-17  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Integrate build-gtkdoc into build-webkit and make
        https://bugs.webkit.org/show_bug.cgi?id=72626

        Reviewed by Philippe Normand.

        * GNUmakefile.am: Remove references to old gtkdoc files. Update
        the dist-hook to include copying documentation into the distribution.
        This also means that the build will fail if documentation hasn't been
        generated before 'make dist.'
        * configure.ac: Ditto.

2011-11-23  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Re-generate QtWebKit API forwarding headers when API changes

        The forwarding headers are generated by syncqt, and syncqt is run by qmake,
        so we need sync.profile to live in the same directory as the project file
        that will be touched when adding/removing API (api.pri in our case).

        Since the WebKit2 APIs live in a separate static library, we have to
        add the project file for WebKit2 as a dependency of the api.pri file
        as well, so that any changes to the WebKit2 API will still trigger a
        run of qmake (and then syncqt).

        Lastly, we use the new QMAKE_SYNCQT_OUTDIR variable in Qt 5 to ensure
        that the forwarding headers are still generated in the root build dir,
        not in the Source dir along with the internal forwarding headers.

        Reviewed by Andreas Kling.

        * Source/QtWebKit.pro:
        * Source/api.pri:
        * Source/sync.profile: Renamed from sync.profile.

2011-11-23  Halton Huo  <halton.huo@intel.com>

        [EFL] Add zlib depend when freetype is used.
        https://bugs.webkit.org/show_bug.cgi?id=66365

        Unreviewed build fix.

        When freetype is enabled, uncompress() function is used by
        WOFFFileFormat.cpp. Since zlib is not required by freetype, we need to
        add libz as dependency for fix linking issue.

        * Source/cmake/OptionsEfl.cmake: search for ZLIB

2011-10-08  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Enable WebGL by default
        https://bugs.webkit.org/show_bug.cgi?id=69706

        Reviewed by Xan Lopez.

        * configure.ac: Enable WebGL by default if the build target is X11.

2011-11-23  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [CMake] Move the top-level logic to the top-level directory.
        https://bugs.webkit.org/show_bug.cgi?id=72685

        Reviewed by Brent Fulgham.

        Move most of the top-level code in Source/CMakeLists.txt to
        CMakeLists.txt. This allows us to replace some INCLUDE() hacks with
        proper ADD_SUBDIRECTORY() calls, and actually moves non-Source related
        to a non-Source directory.

        * CMakeLists.txt: Copied from Source/CMakeLists.txt.

2011-11-22  Adam Klein  <adamk@chromium.org>

        Add new WebKit/chromium/dbus directory to .gitignore.

        * .gitignore:

2011-11-22  Adam Klein  <adamk@chromium.org>

        Ignore more gyp-generated build files in WTF.gyp.

        * .gitignore:

2011-11-22  Andy Wingo  <wingo@igalia.com>

        Fix .dir-locals.el to only apply to specific modes
        https://bugs.webkit.org/show_bug.cgi?id=72963

        Reviewed by Xan Lopez.

        * .dir-locals.el: Remove `nil' block, as it was causing
        makefile-mode not to insert tabs.

2011-11-21  Adam Klein  <adamk@chromium.org>

        Add GYP-generated WTF.xcodeproj to .gitignore after r100851.

        * .gitignore:

2011-11-21  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>

        [Qt] [WK2] WebKitTestRunner doesn't build in debug
        https://bugs.webkit.org/show_bug.cgi?id=72827

        Reviewed by Andreas Kling.

        Add exports to fix WebKitTestRunner debug build.

        * Source/qtwebkit-export.map:

2011-11-21  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        [Qt] Add WebView.view attached property support for dialogs in QML
        https://bugs.webkit.org/show_bug.cgi?id=72825

        Reviewed by Simon Hausmann.

        Export QQuickWebViewAttached.

        * Source/qtwebkit-export.map:

2011-11-21  Noel Gordon  <noel.gordon@gmail.com>

        Update .gitignore for latest WebKitLibraries
        https://bugs.webkit.org/show_bug.cgi?id=72851

        Reviewed by Andreas Kling.

        * .gitignore: updates to silence 'git status' about WebKitLibraries files.

2011-11-21  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Update NEWS and configure.ac for 1.7.2 release
        https://bugs.webkit.org/show_bug.cgi?id=72868

        Reviewed by Xan Lopez.

        * configure.ac: Bumped version number.

2011-11-19  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Build fix after GeneratedImage refactoring.

        * wscript:

2011-11-19  Alexis Menard  <alexis.menard@openbossa.org>

        [Qt] Add the map file symbols export as a dependency of the final qmake target.
        https://bugs.webkit.org/show_bug.cgi?id=72740

        Reviewed by Simon Hausmann.

        Add the symbols file part of the target dependencies.

        * Source/api.pri:

2011-11-18  Daniel Bates  <dbates@rim.com>

        Add CMake build infrastructure for the BlackBerry port
        https://bugs.webkit.org/show_bug.cgi?id=72768

        Reviewed by Adam Barth and Antonio Gomes.

        * Source/CMakeLists.txt: Add the BlackBerry port and support for building on QNX.
        * Source/cmake/OptionsBlackBerry.cmake: Added.
        * Source/cmake/OptionsCommon.cmake: Add QNX QCC-variant of CODE_GENERATOR_PREPROCESSOR.
          We may be able to fold this into the non-MSVC CODE_GENERATOR_PREPROCESSOR.

2011-11-18  Adam Barth  <abarth@webkit.org>

        Prepare to move manual-tests out of WebCore
        https://bugs.webkit.org/show_bug.cgi?id=72782

        Reviewed by Eric Seidel.

        Update these files to refer to the new location of ManualTests.

        * .gitattributes:
        * Source/cmake/WebKitPackaging.cmake:

2011-11-18  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Add possibility to overwrite WEBKIT_PORT_DIR in platform specific files
        https://bugs.webkit.org/show_bug.cgi?id=72710

        Reviewed by Brent Fulgham.

        * Source/CMakeLists.txt:

2011-11-18  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Unreviewed build fix: Export QQuickWebPage/Preferences private API
        needed for the qml plugin.

        * Source/qtwebkit-export.map:

2011-11-18  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Unreviewed build fix: Export QQuickWebViewExperimental private API
        that was added since I made the export patch.

        * Source/qtwebkit-export.map:

2011-11-18  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] WTR and InjectedBundle should not link statically against JSC/WTF
        https://bugs.webkit.org/show_bug.cgi?id=72697

        Reviewed by Kenneth Rohde Christiansen.

        * Source/api.pri: On Linux, use a GNU LD version script to manage the
        symbol exports, which includes the public WK1/WK2 API as well as a bunch
        of private WTF symbols needed for WTR and the Injected Bundle.
        * Source/qtwebkit-export.map: Added.

2011-11-17  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [EFL] Clean up the use of DATA_DIR in the buildsystem
        https://bugs.webkit.org/show_bug.cgi?id=72681

        Reviewed by Daniel Bates.

        * Source/cmake/OptionsEfl.cmake: Rename DATA_DIR to DATA_INSTALL_DIR
        and add it to the cache; add a variable with the path of the generated
        theme and remove the -DDATA_DIR definition, it was moved to
        PlatformEFL.cmake in WebCore.

2011-11-17  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Add ENABLE_CLIENT_BASED_GEOLOCATION to cmakeconfig.h
        https://bugs.webkit.org/show_bug.cgi?id=72643

        Reviewed by Brent Fulgham.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmakeconfig.h.cmake:

2011-11-17  Kelly Norton  <knorton@google.com>

       Several void functions in FrameView and RenderObject actually return values.
       https://bugs.webkit.org/show_bug.cgi?id=72640

        Reviewed by Adam Barth.

        * ../../Source/WebCore/page/FrameView.cpp:
        * ../../Source/WebCore/rendering/RenderObject.cpp:

2011-11-17  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Make CODE_GENERATOR_PREPROCESSOR more useable
        https://bugs.webkit.org/show_bug.cgi?id=72516

        Reviewed by Brent Fulgham.

        On windows some code generators fail, if the path to the preprocessor contains spaces.
        Use only the executable name to avoid this issue for now.

        * Source/cmake/OptionsCommon.cmake:

2011-11-17  Jochen Eisinger  <jochen@chromium.org>

        [chromium] add gyp-mac-tool to .gitignore
        https://bugs.webkit.org/show_bug.cgi?id=72603

        Reviewed by Tony Gentilcore.

        This file is generated by the make-based build of the chromium/mac port

        * .: Modified property svn:ignore.
        * .gitignore:

2011-11-17  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Move WebKit2 C++ APIs to private API and build QML extension plugin on top of that

        A new extension object has been added to QQuickWebView (the same approach should be used
        for other API classes that need experimental APIs). The QML extension mechanism is then
        built on top of the experimental object.

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

        Reviewed by Simon Hausmann.

        * Source/QtWebKit.pro:
        * Source/api.pri:

2011-11-11  Adrienne Walker  <enne@google.com>

        [chromium] Expose mock scrollbars to window.internals
        https://bugs.webkit.org/show_bug.cgi?id=72195

        Reviewed by James Robinson.

        * Source/autotools/symbols.filter:

2011-11-15  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Centralize hide_symbols and ensure all libs are built with symbol visibility & bsymbolic_functions

        Reviewed by Tor Arne Vestbø.

        * Source/api.pri: Eliminate duplicated symbol stuff that lives now in default_post.prf.

2011-11-16  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Fix path to module file in root project file

        Reviewed by Simon Hausmann.

        * WebKit.pro:

2011-11-16  Simon Hausmann  <simon.hausmann@nokia.com>

        Unreviewed, rolling out r100266.
        http://trac.webkit.org/changeset/100266

        Broke WTR.

        * Source/api.pri:

2011-11-15  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Centralize hide_symbols and ensure all libs are built with symbol visibility & bsymbolic_functions

        Reviewed by Tor Arne Vestbø.

        * Source/api.pri: Eliminate duplicated symbol stuff that lives now in default_post.prf.

2011-11-14  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Move the QtWebKit module file to match the layout of Qt's mkspecs

        Reviewed by Simon Hausmann.

        * Source/api.pri:

2011-11-12  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Use MAIN_DEPENDENCY in GENERATE_* macros
        https://bugs.webkit.org/show_bug.cgi?id=71365

        Reviewed by Daniel Bates.

        Use the MAIN_DEPENDENCY instead of DEPENDS in the custom build commands.
        This adds better IDE support for such targets.

        * Source/cmake/WebKitMacros.cmake:

2011-11-11  Shinya Kawanaka  <shinyak@google.com>

        Implement legacy text check emulation in unified text check interface.
        https://bugs.webkit.org/show_bug.cgi?id=70299

        Reviewed by Hajime Morita.

        * Source/autotools/symbols.filter:

2011-11-11  Alexis Menard  <alexis.menard@openbossa.org>

        [Qt] Build fix of the private QML module with --no-webkit2.
        https://bugs.webkit.org/show_bug.cgi?id=67707

        Reviewed by Tor Arne Vestbø.

        * Source/QtWebKit.pro:

2011-11-11  Alexis Menard  <alexis.menard@openbossa.org>

        [Qt] Add a way to have experimental features in WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=67707

        Reviewed by Kenneth Rohde Christiansen.

        Add the new private QML module in the build.

        * Source/QtWebKit.pro:

2011-11-10  Balazs Kelemen  <kbalazs@webkit.org>

        [Qt] X11 plugins need to be reworked for Qt5
        https://bugs.webkit.org/show_bug.cgi?id=70023

        Reviewed by Simon Hausmann.

        Rework our basic plugin support in a way that does
        not need a bridge between Qt and X. The solution is
        based on getting the content drawed by the plugin
        from the server as an image and creating a QImage
        from it.

        * Source/api.pri: Link to xlib if necessary.

2011-11-10  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Clean up build system

        Reviewed by Tor Arne Vestbø.

        * Source/api.pri: Eliminate use of WebKit2.pri.

2011-11-10  Alexis Menard  <alexis.menard@openbossa.org>

        [Qt] Merge QTouchWebView and QDesktopWebView into one class
        https://bugs.webkit.org/show_bug.cgi?id=71355

        Reviewed by Kenneth Rohde Christiansen.

        Remove old tests and merge them into the new QQuickWebView directory.

        * Source/tests.pri:

2011-11-10  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Change semantics of the haveQt() function to match API promises

        Having Qt 5 does not imply that we have Qt 4, from an API point of
        view, as a major version can in theory break BC/SC. Our minimum
        version of Qt 4 will always be the latest released version of Qt 4,
        so the only place we should use haveQt(4, x) is when checking for
        the minimum requirements.

        Reviewed by Simon Hausmann.

        * Source/QtWebKit.pro:

2011-11-10  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Make sure headers.pri has the right relative paths for install

        The install rules are generated from api.pri which lives in Source,
        which means the paths in headers.pri, which is the basis for the
        install rules, needs to be relative to Source as well.

        We were also installing the headers from the forwarding headers
        directory, which was wrong, as those headers contained relative paths.

        We now install the actual headers, by using headers.pri as a basis.

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

        Reviewed by Simon Hausmann.

        * Source/QtWebKit.pro:
        * Source/api.pri:
        * sync.profile:

2011-11-09  Shinya Kawanaka  <shinyak@google.com>

        Internals.markerRangeForNode should be able to take markers by specifying a marker type.
        https://bugs.webkit.org/show_bug.cgi?id=71792

        Reviewed by Hajime Morita.

        * Source/autotools/symbols.filter: Exposed necessary symbols.

2011-11-09  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed build fix. Update project files.

        * wscript:

2011-11-09  Philippe Normand  <pnormand@igalia.com>

        [GTK][DRT] window internals object is not reset after each test
        https://bugs.webkit.org/show_bug.cgi?id=71890

        Reviewed by Martin Robinson.

        * Source/autotools/symbols.filter: Revert un-needed symbol.

2011-11-09  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, attempt to fix GTK 32-bits Release build after r99691.

        * Source/autotools/symbols.filter: Add the missing symbol for resetInternalsObject.

2011-11-09  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Only copy framework headers once when debug_and_release is enabled

        Otherwise we might end up in a race condition where we try to symlink
        the headers directory in the makefile for debug and release at the same
        time.

        Reviewed by Simon Hausmann.

        * Source/api.pri:

2011-11-08  Martin Robinson  <mrobinson@igalia.com>

        Take another stab at fixing the GTK+ build.

        * Source/autotools/symbols.filter: The symbols.filter file was missing a semicolon.

2011-11-08  Daniel Bates  <dbates@webkit.org>

        Attempt to fix the GTK build after <http://trac.webkit.org/changeset/99613>
        (https://bugs.webkit.org/show_bug.cgi?id=71840)

        * Source/autotools/symbols.filter: Add symbol _ZN7WebCore4Page13setPaginationERKNS0_10PaginationE.

2011-11-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Use qmake's builtin rules for copying framework headers on Mac OS

        Now that we generate the forwarding headers eiher as part of QtWebKit.pro
        (for Qt 4.8), or as part of the root project file (for Qt 5), we can assume
        that the files are there and use $$files() to list the files to be copied.

        Reviewed by Csaba Osztrogonác.

        * Source/api.pri:

2011-11-08  Yuqiang Xian  <yuqiang.xian@intel.com>

        Enable DFG JIT by default on X86 Linux and Mac platforms
        https://bugs.webkit.org/show_bug.cgi?id=71686

        Reviewed by Filip Pizlo.

        Remove the DFG cmake option for Efl port as we'll determine whether to
        switch on DFG or not based on build target platforms.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmakeconfig.h.cmake:

2011-11-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Ensure forwarding headers are generated before generating install rules

        The install rule for headers depends on qmake being able to walk the list of
        headers in the $build_root/include/QtWebKit directory, but this directory is
        empty until we've generated the forwarding headers. So we need to make sure
        the forwarding headers are generated _before_ we run qmake on the api project
        file. This applies to Qt 4.8 only, as Qt 5 will run synqt as part of the
        root project file (due to the sync.profile file).

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

        Reviewed by Simon Hausmann.

        * Source/QtWebKit.pro:
        * Source/api.pri:

2011-11-07  ChangSeok Oh  <shivamidow@gmail.com>

        [EFL] Support requestAnimationFrame API
        https://bugs.webkit.org/show_bug.cgi?id=67112

        Reviewed by Andreas Kling.

        Add build-option for requestAnimationFrame feature.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmakeconfig.h.cmake:

2011-11-07  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Ensure we always export symbols for the QtWebKit API when building WebKit

        Reviewed-by Simon Hausmann.

        * Source/api.pri:

2011-11-04  Philippe Normand  <pnormand@igalia.com>

        [GTK] Disable VIDEO_TRACK for now
        https://bugs.webkit.org/show_bug.cgi?id=71547

        Reviewed by Gustavo Noronha Silva.

        * configure.ac: VIDEO_TRACK is still a moving target, it's best to
        disable it for now.

2011-11-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Don't build all of webkit when running build-jsc

        In case the whole webkit project was built, but we then subsequently
        want to build only JSC, we need to run make in the proper subdirectory.

        This also means the incremental target needs to be added to all
        makefiles.

        Reviewed by Simon Hausmann.

        * WebKit.pro:

2011-11-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Refactor and clean up the qmake build system

        The qmake build system has accumulated a bit of cruft and redundancy
        over time. There's also a fairly tight coupling between how to build
        the various targets, and _what_ to build, making it harder to add new
        rules or sources. This patch aims to elevate these issues somewhat.

        This is a short-list of the changes:

          * The rules for how to build targets are now mostly contained as
            prf-files in Tools/qmake/mkspecs/features. Using mkspecs also
            allows us to do pre- and post-processing of each project file,
            which helps to clean up the actual project files.

          * Derived sources are no longer generated as a separate make-step
            but is part of each target's project file as a subdir. Makefile
            rules are used to ensure that we run make on the derived sources
            before running qmake on the actual target makefile. This makes
            it easier to keep a proper dependency between derived sources
            and the target.

          * We use GNU make and the compiler to generate dependencies on
            UNIX-based systems running Qt 5. This allows us to lessen the
            need to run qmake, which should reduce compile time.

          * WebKit2 is now build by default if building with Qt 5. It can
            be disabled by passing --no-webkit2 to build-webkit.

        The result of these changes are hopefully a cleaner and easier
        build system to modify, and faster build times due to no longer
        running qmake on every single build. It's also a first step
        towards possibly generating the list of sources using another
        build system.

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

        Reviewed by Simon Hausmann.

        * Source/DerivedSources.pro: Removed.
        * Source/QtWebKit.pro: Added.
        * Source/WebKit.pri: Removed.
        * Source/WebKit.pro: Removed.
        * Source/api.pri: Added.
        * Source/tests.pri: Added.
        * WebKit.pro: Added.
        * sync.profile: Renamed from Source/sync.profile.

2011-11-03  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Remove Maemo specific code paths
        https://bugs.webkit.org/show_bug.cgi?id=71476

        Reviewed by Kenneth Rohde Christiansen.

        * Source/WebKit.pri:

2011-11-03  Dongwoo Im  <dw.im@samsung.com>

        [EFL] Enable the Page Visibility API.
        https://bugs.webkit.org/show_bug.cgi?id=69127

        Reviewed by Adam Barth.

        Build system changes to support ENABLE(PAGE_VISIBILITY_API) on EFL port.

        * Source/cmake/OptionsEfl.cmake: Add enabled ENABLE_PAGE_VISIBILITY_API definition.
        * Source/cmakeconfig.h.cmake: ditto.

2011-10-28  Adam Barth  <abarth@webkit.org>

        Rename ExceptionCodeDescription.in to DOMExceptions.in
        https://bugs.webkit.org/show_bug.cgi?id=71157

        Reviewed by Eric Seidel.

        * Source/cmake/WebKitMacros.cmake:

2011-10-28  Adam Barth  <abarth@webkit.org>

        ExceptionCode.cpp shouldn't need to know about every feature that throws exceptions
        https://bugs.webkit.org/show_bug.cgi?id=70890

        Reviewed by Eric Seidel.

        Add a code generation step.

        * Source/cmake/WebKitMacros.cmake:

2011-10-27  Priit Laes  <plaes@plaes.org>

        [GTK] Create .xz tarballs during distcheck
        https://bugs.webkit.org/show_bug.cgi?id=71001

        Reviewed by Martin Robinson.

        * configure.ac: Switched tarballs to use .xz compression.

2011-10-27  Daniel Bates  <dbates@rim.com>

        CMake: Add support to optionally install the built JavaScript shell
        https://bugs.webkit.org/show_bug.cgi?id=71062

        Reviewed by Antonio Gomes.

        Adds a CMake option, called SHOULD_INSTALL_JS_SHELL, that when
        defined will generate an installation rule to install the built
        JavaScript shell into /bin (with respect to the prefix path).

        By default, we don't define this option and hence don't generate
        an installation rule for the JavaScript shell.

        * Source/CMakeLists.txt:

2011-10-27  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r98556.
        http://trac.webkit.org/changeset/98556
        https://bugs.webkit.org/show_bug.cgi?id=71031

        The test added by the patch doesn't pass on Snow Leopard
        (Requested by rniwa on #webkit).

        * Source/autotools/symbols.filter:

2011-10-27  Shinya Kawanaka  <shinyak@google.com>

        Implement legacy text check emulation in unified text check interface.
        https://bugs.webkit.org/show_bug.cgi?id=70299

        Reviewed by Hajime Morita.

        * Source/autotools/symbols.filter:

2011-10-27  Philippe Normand  <pnormand@igalia.com> and Zan Dobersek  <zandobersek@gmail.com>

        [GStreamer] WebAudio AudioFileReader implementation
        https://bugs.webkit.org/show_bug.cgi?id=69834

        Reviewed by Martin Robinson.

        * configure.ac: Check for libfftw and gstreamer-audio if WebAudio
        build is enabled.

2011-10-26  Alejandro G. Castro  <alex@igalia.com>

        [GTK] Update NEWS and configure.ac for 1.7.1 release
        https://bugs.webkit.org/show_bug.cgi?id=70932

        Reviewed by Martin Robinson.

        * configure.ac: Bumped version number.

2011-10-26  Alejandro G. Castro  <alex@igalia.com>

        [GTK] [WK2] Add WebKit2 distcheck support
        https://bugs.webkit.org/show_bug.cgi?id=70933

        Reviewed by Martin Robinson.

        * GNUmakefile.am: Added WebKit2 compilation to the distcheck.
        * configure.ac: Removed WebKit2 doc generation for the moment.

2011-10-21  Simon Hausmann  <simon.hausmann@nokia.com>

        Remove QtScript source code from WebKit.
        https://bugs.webkit.org/show_bug.cgi?id=64088

        Reviewed by Tor Arne Vestbø.

        Removed dead code that isn't developed anymore.

        * Source/WebKit.pro:

2011-10-19  Gustavo Noronha Silva  <gns@gnome.org>

        [GTK] Streamline wk1 documentation build
        https://bugs.webkit.org/show_bug.cgi?id=70447

        Reviewed by Martin Robinson.

        * GNUmakefile.am: include the documentation's GNUmakefile.am;
        * autogen.sh: we no longer call gtkdocize, since we now ship
          a modified gtk-doc.make;
        * configure.ac: no longer generate a separate GNUmakefile for
          the documentation build.

2011-10-18  Adam Barth  <abarth@webkit.org>

        Always enable ENABLE(XPATH)
        https://bugs.webkit.org/show_bug.cgi?id=70217

        Reviewed by Eric Seidel.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmakeconfig.h.cmake:
        * configure.ac:

2011-10-18  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Merge QML plugin for WebKit2 with the original WebKit1 plugin

        We don't need a sepearate plugin, as we no longer expose the WK2
        APIs under QtWebKit.experimental, but now use QtWebKit. The version
        was also changed to 3.0 instead of 5.0, as the original plugin was
        versioned 1.0, and bumping to 3.0 fits the scheme used by QtWebKit releases.

        Reviewed by Andreas Kling.

        * Source/WebKit.pro:

2011-10-18  Zan Dobersek  <zandobersek@gmail.com>

        [Gtk] Support for client-based geolocation
        https://bugs.webkit.org/show_bug.cgi?id=64970

        Reviewed by Martin Robinson.

        Remove flag for enabling client-based geolocation since
        it is used by default on Gtk port and hence not configurable.

        * configure.ac:

2011-10-17  Leandro Pereira  <leandro@profusion.mobi>

        Unreviewed; actually enable/disable microdata support in CMake.

        Follow-up to r97471, which did not plug the option to enable/disable
        microdata into the buildsystem.

        * Source/cmake/OptionsEfl.cmake: Add ENABLE_MICRODATA feature, turned off by default.
        * Source/cmake/OptionsWinCE.cmake: Ditto.
        * Source/cmakeconfig.h.cmake: Add ENABLE_MICRODATA #cmakedefine.

2011-10-17  Ryosuke Niwa  <rniwa@webkit.org>

        GTK build fix patch by Gustavo Noronha Silva.

        * Source/autotools/symbols.filter:

2011-10-17  Vamshikrishna Yellenki  <vamshi@motorola.com>

        [webkit]Debug Build Bot failure
        https://bugs.webkit.org/show_bug.cgi?id=70222

        Reviewed by Xan Lopez.

        * Source/autotools/symbols.filter: Corrected the filter name for getLocationAndLengthFronRange

2011-10-16  Adam Barth  <abarth@webkit.org>

        Always enable ENABLE(DOM_STORAGE)
        https://bugs.webkit.org/show_bug.cgi?id=70189

        Reviewed by Eric Seidel.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmakeconfig.h.cmake:
        * configure.ac:

2011-10-15  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        [Qt] [Symbian] Remove support for the Symbian platform for the QtWebKit port
        https://bugs.webkit.org/show_bug.cgi?id=69920

        Reviewed by Kenneth Rohde Christiansen.

        * Source/WebKit.pri:
        * Source/WebKit.pro:

2011-10-14  Mark Hahnenberg  <mhahnenberg@apple.com>

        Rename virtual put to putVirtual
        https://bugs.webkit.org/show_bug.cgi?id=69851

        Reviewed by Darin Adler.

        Renamed virtual versions of put to putVirtual in prepration for 
        adding the static put to the MethodTable in ClassInfo since the 
        compiler gets mad if the virtual and static versions have the same 
        name.

        * Source/autotools/symbols.filter:

2011-10-14  Mark Hahnenberg  <mhahnenberg@apple.com>

        Rename virtual put to putVirtual
        https://bugs.webkit.org/show_bug.cgi?id=69851

        Reviewed by Darin Adler.

        Renamed virtual versions of put to putVirtual in prepration for 
        adding the static put to the MethodTable in ClassInfo since the 
        compiler gets mad if the virtual and static versions have the same 
        name.

        * Source/autotools/symbols.filter:

2011-10-13  Arko Saha  <arko@motorola.com>

        Microdata: Basic implementation of document.getItems() method.
        https://bugs.webkit.org/show_bug.cgi?id=68610

        Reviewed by Ryosuke Niwa.

        Added ENABLE(MICRODATA) feature flag.

        * configure.ac:

2011-10-14  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [EFL] Add DumpRenderTreeSupportEfl
        https://bugs.webkit.org/show_bug.cgi?id=68458

        Reviewed by Kenneth Rohde Christiansen.

        * Source/cmake/eflsymbols.filter: Export DumpRenderTreeSupportEfl
        symbols so that DumpRenderTree can link to them.

2011-10-12  Adam Barth  <abarth@webkit.org>

        Remove ENABLE(XHTMLMP) and associated code
        https://bugs.webkit.org/show_bug.cgi?id=69729

        Reviewed by David Levin.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmakeconfig.h.cmake:
        * configure.ac:

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

        Fix build with GLib 2.31
        https://bugs.webkit.org/show_bug.cgi?id=69840

        Reviewed by Martin Robinson.

        * configure.ac: add check for pthread rwlock support.

2011-10-10  Martin Robinson  <mrobinson@igalia.com>

        [GTK] [WebKit2] Make adding another unit test easier
        https://bugs.webkit.org/show_bug.cgi?id=69409

        Reviewed by Gustavo Noronha Silva.

        * GNUmakefile.am: Include the new testing makefile.

2011-10-11  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Remove all references to QTDIR_build and standalone_package

        Qt is now modularized, which means we no longer import WebKit into
        the Qt source tree. Instead we use git submodules, and building
        QtWebKit as "part of Qt" is really building QtWebKit as from trunk.

        To decrease the number of buildsystem configurations we also remove
        the standalone_package code-path used when we were providing tarballs
        with the derived sources pre-generated.

        Reviewed by Simon Hausmann.

        * Source/WebKit.pri:
        * Source/WebKit.pro:

2011-10-06  Fady Samuel  <fsamuel@chromium.org>

        Code clean-up: Make RenderObject::absoluteBoundingBoxRect and associated methods const and make its parameter useTransforms no longer default to false
        https://bugs.webkit.org/show_bug.cgi?id=69009

        Reviewed by Simon Fraser.

        * Source/autotools/symbols.filter:

2011-10-06  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt][Wk2] Fix build with Qt 5 when QtScript is built as standalone module
        https://bugs.webkit.org/show_bug.cgi?id=69520

        Reviewed by Csaba Osztrogonác.

        * Source/WebKit.pri: Introduce convenience qt5 scope.
        * Source/WebKit.pro: Replace QT_MAJOR_VERSION stuff with qt5 scope.

2011-10-06  Nayan Kumar K  <nayankk@motorola.com>

        Provide configure option to switch between JSC and V8.
        https://bugs.webkit.org/show_bug.cgi?id=69469

        Reviewed by Philippe Normand.

        This is first of the patches to support building of V8 with
        WebKit GTK. With this patch, new command line switch named
        '--with-jsengine' is introduced, using which we can choose to
        build either jsc or v8.

        * GNUmakefile.am:
        * configure.ac:

2011-10-04  Scott Graham  <scottmg@chromium.org>

        Add GAMEPAD feature flag
        https://bugs.webkit.org/show_bug.cgi?id=66859

        Reviewed by Darin Fisher.

        * configure.ac:

2011-10-04  Varun Jain  <varunjain@chromium.org>

        Fix position check for double tap gesture detection. A double tap
        should not be detected if the two taps are far from each other.
        https://bugs.webkit.org/show_bug.cgi?id=69270

        Reviewed by Darin Fisher.

        Test: Source/WebKit/chromium/tests/InnerGestureRecognizerTest.cpp

        * platform/chromium/GestureRecognizerChromium.cpp:
        (WebCore::GestureRecognizerChromium::isSecondClickInsideManhattanSquare):
        (WebCore::GestureRecognizerChromium::updateValues):
        (WebCore::GestureRecognizerChromium::click):
        * platform/chromium/GestureRecognizerChromium.h:

2011-10-04  Nayan Kumar K  <nayankk@motorola.com>

        [WebKit2][gtk] Generate gtk-doc for WebKit2-GTK.
        https://bugs.webkit.org/show_bug.cgi?id=69325

        Reviewed by Gustavo Noronha Silva.

        Documentation generation for WebKit2-GTK+ APIs
        using gtk-doc.

        * configure.ac:

2011-10-04  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Remove http/tests/inspector/network/disabled-cache-crash.html.
        https://bugs.webkit.org/show_bug.cgi?id=69332

        Reviewed by Pavel Feldman.

        * Source/autotools/symbols.filter:

2011-09-23  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Fix build against Qt5 after refactor of widgets out of QtGUi

        QWidget and friends now live in the QtWidgets library. We update
        includes in implementation files and private headers to us the
        non-module-prefixed path, and leave the lookup for the include
        path. For public headers we have to ifdef the includes as the
        user might now have the modules we need in his QT config.

        Finally, QSGCanvas is no longer a QWidget but a QWindow, so we
        have to update our code and use windowHandle() for setting the
        parent relationships.

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

        Reviewed by Andreas Kling.

        * Source/WebKit.pro:

2011-09-29  Sergio Villar Senin  <svillar@igalia.com>

        [GTK] Bump version to 1.7.0
        https://bugs.webkit.org/show_bug.cgi?id=69082

        Reviewed by Martin Robinson.

        Apart from bumping the library version to 1.7.0 this patch also
        sets the libtool version to the same one we have for the stable
        branch.

        * configure.ac:

2011-09-28  Martin Robinson  <mrobinson@igalia.com>

        Fix the WebKit2 WebGL build.

        * configure.ac: Add -ldl to the OPENGL_LIBS.

2011-09-28  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Bump minimum requirement for eina.
        https://bugs.webkit.org/show_bug.cgi?id=68994

        Reviewed by Ryosuke Niwa.

        * Source/cmake/FindEFL.cmake:

2011-09-27  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Unreviewed. Fix a build error in WebKit EFL.

        When web socket is disabled, there is a build break in WebKit EFL port.
        Currently, web socket is enabled by default in build-webkit script.
        Thus, the web socket is also enabled in EFL script of cmake build system for now.
        Because, WebKit EFL developers can't work on latest WebKit trunk.

        However, IMO, we should fix build errors when web socket is disabled.

        * Source/cmake/OptionsEfl.cmake:

2011-09-27  Ulan Degenbaev  <ulan@chromium.org>

        [v8] Code calling the typed array optimization script is fragile, depends on typed array hierarchy.

        Install the flag, which indicates whether or not the optimization
        script was executed, on the global object.

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

        Reviewed by Kenneth Russell.

        * Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.cpp:

2011-09-27  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r96108, r96111, r96113, and r96116.
        http://trac.webkit.org/changeset/96108
        http://trac.webkit.org/changeset/96111
        http://trac.webkit.org/changeset/96113
        http://trac.webkit.org/changeset/96116
        https://bugs.webkit.org/show_bug.cgi?id=68913

        Wait for working Qt5 (Requested by ossy on #webkit).

        * Source/WebKit.pro:

2011-09-23  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Fix build against Qt5 after refactor of widgets out of QtGUi

        QWidget and friends now live in the QtWidgets library. We update
        includes in implementation files and private headers to us the
        non-module-prefixed path, and leave the lookup for the include
        path. For public headers we have to ifdef the includes as the
        user might now have the modules we need in his QT config.

        Finally, QSGCanvas is no longer a QWidget but a QWindow, so we
        have to update our code and use windowHandle() for setting the
        parent relationships.

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

        Reviewed by Andreas Kling.

        * Source/WebKit.pro:

2011-09-27  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Reorganize header files
        https://bugs.webkit.org/show_bug.cgi?id=65616

        Reviewed by Martin Robinson.

        * GNUmakefile.am: Initialize $libwebkitgtkincludedir to
        $(prefix)/include/webkitgtk-<api-version>

2011-09-26  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [CMake] Remove FindFreetype.cmake
        https://bugs.webkit.org/show_bug.cgi?id=68778

        Reviewed by Adam Barth.

        CMake has provided its own FindFreetype.cmake forever, so there is no
        need to have another implementation in WebKit.

        * Source/cmake/FindCairo.cmake: Use FREETYPE_{LIBRARIES,INCLUDE_DIRS}
        instead of Freetype_{LIBRARIES,INCLUDE_DIRS}.
        * Source/cmake/FindFreetype.cmake: Removed.
        * Source/cmake/FindPango.cmake: Use FREETYPE_{LIBRARIES,INCLUDE_DIRS}
        instead of Freetype_{LIBRARIES,INCLUDE_DIRS}.
        * Source/cmake/OptionsEfl.cmake: Remove minimum required version
        check, it has never been checked and Freetype 2.1.10 from 2005 is
        already > 9.0.

2011-09-26  Alejandro G. Castro  <alex@igalia.com>

        [GTK] pot file is not properly remove during distcheck
        https://bugs.webkit.org/show_bug.cgi?id=68797

        Defined DOMAIN variable before DISTCLEANFILES because we are using
        it there to identify the .pot file.

        Reviewed by Martin Robinson.

        * GNUmakefile.am:

2011-09-26  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [CMake] Detect the operating system in a more generic way.
        https://bugs.webkit.org/show_bug.cgi?id=67482

        Reviewed by Adam Barth.

        So far the buildsystem only considered Windows, Linux and Mac OS X as
        valid operating systems, but any Unix (or at least the BSDs) should also
        work fine.

        By using the OS values CMake itself defines we can check for Unix
        systems in a more generic fashion.

        * Source/CMakeLists.txt:

2011-09-26  Jay Soffian  <jaysoffian@gmail.com>

        chrome.dll!WebCore::ApplyStyleCommand::applyBlockStyle ReadAV@NULL (64db547804532a84be2e53721e499e9e)
        https://bugs.webkit.org/show_bug.cgi?id=51639

        Reviewed by Ryosuke Niwa.

        Add missing window.layoutTestController.dumpAsText so that test output matches expectation.

        * LayoutTests/editing/style/justify-without-enclosing-block.xhtml:

2011-09-25  Adam Barth  <abarth@webkit.org>

        Finish removing PLATFORM(BREWMP) by removing associated code
        https://bugs.webkit.org/show_bug.cgi?id=68779

        Reviewed by Sam Weinig.

        * Source/cmake/WebKitPackaging.cmake:
        * wscript:

2011-09-25  Adam Barth  <abarth@webkit.org>

        Remove PLATFORM(HAIKU) and associated code
        https://bugs.webkit.org/show_bug.cgi?id=68774

        Reviewed by Sam Weinig.

        * Source/cmake/WebKitPackaging.cmake:
        * wscript:

2011-09-25  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [CMake] Remove FindLibXlst.cmake
        https://bugs.webkit.org/show_bug.cgi?id=68770

        Reviewed by Adam Barth.

        This file should have never been committed -- the library it looks for
        is called libxslt, not libxlst, so it has never really been used. When
        the buildsystem looked for libxslt, it used CMake's own LibXslt.cmake
        instead.

        * Source/cmake/FindLibXlst.cmake: Removed.

2011-09-24  Adam Barth  <abarth@webkit.org>

        Always enable ENABLE(OFFLINE_WEB_APPLICATIONS)
        https://bugs.webkit.org/show_bug.cgi?id=68767

        Reviewed by Eric Seidel.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmakeconfig.h.cmake:
        * configure.ac:

2011-09-24  Adam Barth  <abarth@webkit.org>

        Remove ENABLE(WCSS) and associated code
        https://bugs.webkit.org/show_bug.cgi?id=68759

        Reviewed by Darin Adler.

        * configure.ac:

2011-09-23  Yuqiang Xian  <yuqiang.xian@intel.com>

        Add JSVALUE32_64 support to DFG JIT
        https://bugs.webkit.org/show_bug.cgi?id=67460

        Reviewed by Gavin Barraclough.

        Add cmake options to enable DFG JIT compilation for EFL port

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmakeconfig.h.cmake:

2011-09-23  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [CMake] Detect amd64 as a valid 64-bit architecture.
        https://bugs.webkit.org/show_bug.cgi?id=67481

        Reviewed by Oliver Hunt.

        Some operating systems (generally the BSDs) use amd64 instead of x86_64
        to report they're running on 64 bits, so consider it a valid value.

        * Source/CMakeLists.txt:

2011-09-23  Adam Klein  <adamk@chromium.org>

        Add ENABLE_MUTATION_OBSERVERS feature flag
        https://bugs.webkit.org/show_bug.cgi?id=68732

        Reviewed by Ojan Vafai.

        This flag will guard an implementation of the "Mutation Observers" proposed in
        http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1622.html

        * configure.ac:

2011-09-23  Varun Jain  <varunjain@google.com>

        Refactor WebViewImpl::scrollFocusedNodeIntoRect to a better place and add tests
        https://bugs.webkit.org/show_bug.cgi?id=68198

        Reviewed by Dimitri Glazkov.

        * Source/autotools/symbols.filter:

2011-09-23  Mark Hahnenberg  <mhahnenberg@apple.com>

        Add static version of JSCell::visitChildren
        https://bugs.webkit.org/show_bug.cgi?id=68404

        Reviewed by Darin Adler.

        In this patch we just extract the bodies of the virtual visitChildren methods
        throughout the JSCell inheritance hierarchy out into static methods, which are 
        now called from the virtual methods.  This is an intermediate step in trying to 
        move the virtual-ness of visitChildren into our own custom vtable stored in 
        ClassInfo.  We need to convert the methods to static methods in order to be 
        able to more easily store and refer to them in our custom vtable since normal 
        member methods store some implicit information in their types, making it 
        impossible to store them generically in ClassInfo.

        * Source/autotools/symbols.filter:

2011-09-21  Julien Chaffraix  <jchaffraix@webkit.org>

        Crash in RenderBox::paintMaskImages when GraphicsContext's painting is disabled
        https://bugs.webkit.org/show_bug.cgi?id=68133

        Reviewed by Darin Adler.

        * Source/autotools/symbols.filter: Added the mangled symbols needed for window.internals

2011-09-21  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: compare strings without decoding
        https://bugs.webkit.org/show_bug.cgi?id=68554

        Reviewed by Tony Chang.

        Resolves a FIXME in IndexedDB that was also identified as a hotspot
        during profiling. Yields a small performance improvement.

        * Source/WebCore/storage/IDBLevelDBCoding.cpp:
        * Source/WebCore/storage/IDBLevelDBCoding.h:
        * Source/WebKit/chromium/tests/IDBLevelDBCodingTest.cpp:

011-09-21  Leandro Pereira  <leandro@profusion.mobi>

        Unreviewed. Remove unused ENABLE_AS_IMAGE flag after r95234 from
        Options{Efl,WinCE}.cmake.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:

2011-09-20  ChangSeok Oh  <shivamidow@gmail.com>

        [GTK] requestAnimationFrame support for gtk port
        https://bugs.webkit.org/show_bug.cgi?id=66280

        Reviewed by Martin Robinson.

        * configure.ac: Add an option to enable requestAnimationFrame for gtk port.

2011-09-20  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Update NEWS and configure.ac for 1.5.90 release

        Reviewed by Martin Robinson.

        * configure.ac:

2011-09-19  Adam Barth  <abarth@webkit.org>

        Always enable ENABLE(EVENTSOURCE)
        https://bugs.webkit.org/show_bug.cgi?id=68414

        Reviewed by Eric Seidel.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmakeconfig.h.cmake:
        * configure.ac:

2011-09-17  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Bump minimum requirement for cairo to 1.10.
        https://bugs.webkit.org/show_bug.cgi?id=68226

        Reviewed by Adam Barth.

        * Source/cmake/FindCairo.cmake: Check required version.
        * Source/cmake/OptionsEfl.cmake:

2011-09-16  Ulan Degenbaev  <ulan@chromium.org>

        [V8] REGRESSION(94783): calling the binding script during V8 context creation slows down page loads
        https://bugs.webkit.org/show_bug.cgi?id=68237

        Reviewed by Kenneth Russell.

        Call the binding script lazily on the first run of the set() method of
        a typed array.

        * ../../Source/WebCore/WebCore.gypi:
        * ../../Source/WebCore/bindings/v8/V8BindingScripts.cpp: Removed.
        * ../../Source/WebCore/bindings/v8/V8BindingScripts.h: Removed.
        * ../../Source/WebCore/bindings/v8/V8DOMWindowShell.cpp:
        * ../../Source/WebCore/bindings/v8/WorkerContextExecutionProxy.cpp:
        * ../../Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
        * ../../Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h:
        * ../../Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustomScript.js:

2011-09-16  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Disable WebKit2 by default in configure.ac, but enable it with build-webkit
        https://bugs.webkit.org/show_bug.cgi?id=68178

        Reviewed by Xan Lopez.

        * configure.ac: Do not build WebKit2 by default. Re-add pkgconfig support
        for WebKit2.

2011-09-15  Adam Barth  <abarth@webkit.org>

        Rename ENABLE(DATABASE) to ENABLE(SQL_DATABASE)
        https://bugs.webkit.org/show_bug.cgi?id=68205

        Reviewed by Eric Seidel.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmakeconfig.h.cmake:
        * configure.ac:

2011-09-15  Varun Jain  <varunjain@google.com>

        Add method to scroll current node to specific position in Chromium WebKit API
        https://bugs.webkit.org/show_bug.cgi?id=68192

        Reviewed by Dimitri Glazkov.

        *  Source/WebKit/chromium/public/WebView.h:
        *  Source/WebKit/chromium/src/WebViewImpl.cpp:
        *  Source/WebKit/chromium/src/WebViewImpl.h:

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

        Remove ENABLE(SVG_AS_IMAGE) since all major ports have it on by default
        https://bugs.webkit.org/show_bug.cgi?id=68182

        Reviewed by Adam Barth.

        * configure.ac:

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

        Remove ENABLE_SVG_ANIMATION as all major ports have it on by default
        https://bugs.webkit.org/show_bug.cgi?id=68022

        Reviewed by Ryosuke Niwa.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmakeconfig.h.cmake:
        * configure.ac:

2011-09-15  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r95163.
        http://trac.webkit.org/changeset/95163
        https://bugs.webkit.org/show_bug.cgi?id=68180

        [Qt] The QT_GCC_X variables were removed in Qt5 by accident.
        (Requested by darktears on #webkit).

        * Source/WebKit.pri:

2011-09-14  Alexis Menard  <alexis.menard@openbossa.org>

        [Qt] Replace QT_GCC_X as they don't exist in Qt5 anymore.
        https://bugs.webkit.org/show_bug.cgi?id=68114

        Reviewed by Kenneth Rohde Christiansen.

        Replace QT_GCC_X variables, they have been removed in Qt5. It was
        actually wrong to use them because they tell about which GCC version
        Qt has been compiled, not the current version of GCC use to build webkit.
        I use gcc -dumpversion to get it.

        * Source/WebKit.pri:

2011-09-14  Ulan Degenbaev  <ulan@chromium.org>

        [v8] Improve performance of typed array copy constructor taking Array
        https://bugs.webkit.org/show_bug.cgi?id=68015

        Reviewed by Kenneth Russell.

        Invoke the 'set' method of the constructed array instead of
        copying the elements of the source array one by one.

        Copy constructor tests already exist.

        * ../../Source/WebCore/WebCore.gypi:
        * ../../Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.cpp: Added.
        * ../../Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h:

2011-09-14  Csaba Osztrogonác  <ossy@webkit.org>

        [GTK] Unreviewed buildfix after r95107.

        * configure.ac:

2011-09-13  Eric Seidel  <eric@webkit.org>

        Remove ENABLE_SVG_USE as <use> is required by HTML5
        https://bugs.webkit.org/show_bug.cgi?id=68019

        Reviewed by Ryosuke Niwa.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmakeconfig.h.cmake:
        * configure.ac:

2011-09-13  Eric Seidel  <eric@webkit.org>

        Remove ENABLE_SVG_FOREIGN_OBJECT as it is a required part of HTML5
        https://bugs.webkit.org/show_bug.cgi?id=68018

        Reviewed by Ryosuke Niwa.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmakeconfig.h.cmake:
        * configure.ac:

2011-09-09  Rafael Antognolli  <antognolli@profusion.mobi>

        Add replacement functions for gdk ones.
        https://bugs.webkit.org/show_bug.cgi?id=66323

        Reviewed by Martin Robinson.

        * Source/cmake/FindPango.cmake:

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

        [Qt] Remove common.pri
        https://bugs.webkit.org/show_bug.cgi?id=67814

        Reviewed by Andreas Kling.

        * Source/WebKit.pri: Move rules from common.pri to WebKit.pri.
        * Source/common.pri: Removed.

2011-09-08  Mark Pilgrim  <pilgrim@chromium.org>

        Test how HTMLAnchorElement.getParameter reacts to too few arguments
        https://bugs.webkit.org/show_bug.cgi?id=66522

        Reviewed by Adam Barth.

        * LayoutTests/fast/dom/HTMLAnchorElement/get-parameter-expected.txt: Added.
        * LayoutTests/fast/dom/HTMLAnchorElement/get-parameter.html: Added.

2011-09-08  Varun Jain  <varunjain@google.com>

        Implement double tap detection in GestureRecognizerChromium
        https://bugs.webkit.org/show_bug.cgi?id=67709

        Reviewed by Dimitri Glazkov.

        *  Source/WebCore/page/EventHandler.cpp:
        *  Source/WebCore/platform/PlatformGestureEvent.h:

2011-09-08  Ulan Degenbaev  <ulan@chromium.org>

        [v8] Improve performance of typed array set() taking Array
        https://bugs.webkit.org/show_bug.cgi?id=63644

        Reviewed by Kenneth Russell.

        Overwrite the native 'set' method of the type arrays with JS
        implementation after initialization of the global context.

        Add tests for invalid and boundary offsets. No performance tests.

        * LayoutTests/fast/canvas/webgl/array-unit-tests-expected.txt:
        * LayoutTests/fast/canvas/webgl/array-unit-tests.html:
        * Source/WebCore/WebCore.gyp/WebCore.gyp:
        * Source/WebCore/WebCore.gypi:
        * Source/WebCore/bindings/v8/V8BindingScripts.cpp: Added.
        * Source/WebCore/bindings/v8/V8BindingScripts.h: Added.
        * Source/WebCore/bindings/v8/V8DOMWindowShell.cpp:
        * Source/WebCore/bindings/v8/WorkerContextExecutionProxy.cpp:
        * Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustomScript.js: Added.

2011-09-08  Varun Jain  <varunjain@google.com>

        Split Tap gesture detection into TapDown and Tap.
        We need this distinction to highlight links when they are first touched. The link is
        followed only if the tap is completed, otherwise, if a scroll is detected, the highlight
        goes away.
        https://bugs.webkit.org/show_bug.cgi?id=67645

        Reviewed by Dimitri Glazkov.

        *  Source/WebCore/page/EventHandler.cpp:
        *  Source/WebCore/platform/PlatformGestureEvent.h:

2011-09-07  Alexei Svitkine  <asvitkine@chromium.org>

        Add test infrastructure to test rubber-banding overhang drawing along with layout tests for existing Chromium Mac overhang drawing in the non-gpu path.
        https://bugs.webkit.org/show_bug.cgi?id=67511

        Reviewed by Dimitri Glazkov.

        * Source/autotools/symbols.filter:

2011-09-06  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r94274): FormManagerTest.PreviewForm and FillFormNonEmptyField fail on chromium
        https://bugs.webkit.org/show_bug.cgi?id=67453

        Reviewed by Kent Tamura.

        Add symbols for internals.

        * Source/autotools/symbols.filter:

2011-09-04  Robin Dunn  <robin@alldunn.com>

        [wx] Enable wxWebKit to run using the wxGC Cairo backend on platforms other than GTK.
        https://bugs.webkit.org/show_bug.cgi?id=67577

        Reviewed by Kevin Ollivier.

        * wscript:

2011-08-30  Aaron Colwell  <acolwell@chromium.org>

        Add MediaSource API to HTMLMediaElement
        https://bugs.webkit.org/show_bug.cgi?id=64731

        Reviewed by Eric Carlson.

        * configure.ac:

2011-08-30  Ryosuke Niwa  <rniwa@webkit.org>

        Cleanup after r94050 and r94054.

        * Source/autotools/symbols.filter:

2011-08-30  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, another attempt to fix GTK build after r94038.

        * Source/autotools/symbols.filter:

2011-08-29  Ryosuke Niwa  <rniwa@webkit.org>

        Build fix attempt after r94038.

        * Source/autotools/symbols.filter:

2011-08-26  Varun Jain  <varunjain@google.com>

        WebViewImpl::selectionRange should return range in the right order.
        https://bugs.webkit.org/show_bug.cgi?id=66973

        Reviewed by Darin Fisher.

        *  Source/WebKit/chromium/public/WebWidget.h:
        *  Source/WebKit/chromium/src/WebViewImpl.cpp:

2011-08-25  Martin Robinson  <mrobinson@igalia.com>

        Reviewed by Xan Lopez.

        [GTK] Switch to GTK+ 3.x by default
        https://bugs.webkit.org/show_bug.cgi?id=63047

        * configure.ac: Modify the default value of the --with-gtk option to be 3.0.

2011-08-24  Philippe Normand  <pnormand@igalia.com>

        [GTK] bump GStreamer requirement to 0.10.30
        https://bugs.webkit.org/show_bug.cgi?id=66860

        Reviewed by Martin Robinson.

        * configure.ac:

2011-08-23  Steve Block  <steveblock@google.com>

        Remove all mention of removed Android files from build scripts
        https://bugs.webkit.org/show_bug.cgi?id=66755

        Reviewed by Tony Gentilcore.

        * Source/cmake/WebKitPackaging.cmake:

2011-08-19  MORITA Hajime  <morrita@google.com>

        Spell-checking doesn't recognize word boundaries on contests inserted by execCommand('insertHTML')
        https://bugs.webkit.org/show_bug.cgi?id=65902

        Reviewed by Ryosuke Niwa.
        
        Add export for window.internals object.

        * Source/autotools/symbols.filter:

2011-08-16  Andras Becsi  <abecsi@webkit.org>

        Reviewed by Csaba Osztrogonác.

        Need AtomicStrings for the various font family names
        https://bugs.webkit.org/show_bug.cgi?id=28024

        * Source/cmake/WebKitMacros.cmake: Add new macro.

2011-08-11  Xan Lopez  <xlopez@igalia.com>

        [GTK] Update NEWS and configure.ac for 1.5.2 release

        Reviewed by Gustavo Noronha.

        * configure.ac: update for release.

2011-08-10  Varun Jain  <varunjain@google.com>

        WebViewImpl::selectionRange should return false if there is no selection
        https://bugs.webkit.org/show_bug.cgi?id=66012

        Reviewed by Darin Fisher.

        *  Source/WebKit/chromium/src/WebViewImpl.cpp:

2011-08-10  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed build fix. Do not build LocaleToScriptMappingICU.cpp for now
        as ICU on Leopard is too old to build this.
        
        * wscript:

2011-08-08  Adrienne Walker  <enne@google.com>

        Add testing for --force-compositing-mode to windows.internal
        https://bugs.webkit.org/show_bug.cgi?id=65777

        Reviewed by Adam Barth.

        Add exports for Document::settings().

        * Source/autotools/symbols.filter:

2011-08-09  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r92683.
        http://trac.webkit.org/changeset/92683
        https://bugs.webkit.org/show_bug.cgi?id=65921

         "Breaks Qt --minimal build. Revert pending update of the Qt
        minimal configuration" (Requested by simathur on #webkit).

        * Source/WebKit.pri:

2011-08-09  Siddharth Mathur  <siddharth.mathur@nokia.com>

        [Qt] Simplify code by removing QT_NO_DESKTOPSERVICES and QT_NO_NETWORKDISKCACHE
        https://bugs.webkit.org/show_bug.cgi?id=65880

        Reviewed by Andreas Kling.

        QDesktopServices and QNetworkDiskCache have been around for a while now. Kill flags which 
        check for their feature flags. Assume that any reasonable Qt build provides them. 

        * Source/WebKit.pri:

2011-08-06  Aron Rosenberg  <arosenberg@logitech.com>

        Reviewed by Benjamin Poulain.

        [Qt] Fix build with Intel compiler on Windows
        https://bugs.webkit.org/show_bug.cgi?id=65088

        Disable Intel Compiler warning 873 - function "" has no corresponding operator
        delete (to be called if an exception is thrown during initialization of an
        allocated object).

        * Source/WebKit.pri:

2011-08-03  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed build fix after gesture recognizer changes.

        * wscript:

2011-08-02  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        [Qt] [WK2] Expose web view classes to QML
        https://bugs.webkit.org/show_bug.cgi?id=65339

        Reviewed by Benjamin Poulain.

        * Source/WebKit.pro: Include QML plugin subdir in the build system for WK2.

2011-08-03  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Install web and plugin processes in libexecdir instead of bindir
        https://bugs.webkit.org/show_bug.cgi?id=65600

        Reviewed by Martin Robinson.

        * GNUmakefile.am: Initialize libexec_PROGRAMS, only used by
        WebKit2 in this moment.

2011-08-03  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Reorganize pkg-config files
        https://bugs.webkit.org/show_bug.cgi?id=65548

        Reviewed by Martin Robinson.

        * GNUmakefile.am: Initialize pkgconfigdir and pkgconfig_DATA which
        are common to all libraries.
        * configure.ac: Update pkg-config files.

2011-08-02  Varun Jain  <varunjain@google.com>

        Missing null check in WebViewImpl::selectionRange
        https://bugs.webkit.org/show_bug.cgi?id=65561

        Reviewed by Darin Fisher.

        *  Source/WebKit/chromium/src/WebViewImpl.cpp:

2011-08-01  Scott Graham  <scottmg@chromium.org>

        REGRESSION (r39725?): Resources removed from document can not be freed until the document is deleted
        https://bugs.webkit.org/show_bug.cgi?id=61006

        Reviewed by Antti Koivisto.

        Update exports for test harness.

        * Source/autotools/symbols.filter:

2011-08-01  Hayato Ito  <hayato@chromium.org>

        Add support for getting an element in shadow root by its id into a window.internals object.
        https://bugs.webkit.org/show_bug.cgi?id=64587

        Reviewed by Hajime Morita.

        * Source/autotools/symbols.filter:

2011-08-01  Neil Roberts  <neil@linux.intel.com>

        build: Fix finding the headers for GStreamer

        The cmake files to find the various GStreamer packages were all
        checking for the header gst/gst.h. However if gst-plugins-base is
        installed into a separate prefix from gstreamer then all of these
        tests would only pick up the gstreamer include path so the build
        would fail. This patch changes it to try and find a file
        appropriate to each package.

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

        Reviewed by Martin Robinson.

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

2011-07-31  Daniel Bates  <dbates@webkit.org>

        Add missing semicolons to build fix attempt in <http://trac.webkit.org/changeset/92080>.

        * Source/autotools/symbols.filter:

2011-07-31  Daniel Bates  <dbates@webkit.org>

        Some more fixes to the GTK build after r92059 (https://bugs.webkit.org/show_bug.cgi?id=65419).

        * Source/autotools/symbols.filter: Export symbols needed by Internals.

2011-07-27  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        [Qt] Fix build in Qt 5 of QDeclarativeWebView
        https://bugs.webkit.org/show_bug.cgi?id=65258

        Reviewed by Andreas Kling.

        In Qt 5, the QGraphicsView-based classes for QtQuick are in the
        qtquick1 module, including QDeclarativeItem and QDeclarativeView.

        * Source/WebKit.pro:

2011-07-26  Andras Becsi  <abecsi@webkit.org>

        [Qt] [WK2] Disable the build with Qt versions older than 5.0
        https://bugs.webkit.org/show_bug.cgi?id=65189

        Reviewed by Csaba Osztrogonác.

        * Source/WebKit.pro: Abort if not using Qt5.

2011-07-20  Pierre Rossi  <pierre.rossi@gmail.com>

        [Qt] Qt5 Build Fix: Disable the legacy mac assert macros.

        This is done in order to prevent collision with the recently
        introduced function QSslCertificate::verify() in Qt5.

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

        Reviewed by Simon Hausmann.

        * Source/WebKit.pri:

2011-07-19  Robert Sesek  <rsesek@chromium.org>

        [Chromium] Need to remove app/ from DEPS
        https://bugs.webkit.org/show_bug.cgi?id=64750

        Reviewed by Tony Chang.

        Remove Source/WebKit/chromium/app/ from .gitignore.

        * .gitignore:

2011-07-18  MORITA Hajime  <morrita@google.com>

        [ShadowContentElement] forwarded node should be able to access its hosting content element.
        https://bugs.webkit.org/show_bug.cgi?id=64251

        Reviewed by Dimitri Glazkov.

        Added GTK symbols for new window.internals methods.
        
        * Source/autotools/symbols.filter:

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

        Build fixes for WebKit2. Ensure that all generated sources are
        on nodist primaries, that they are on forward declared variables
        so that BUILT_SOURCES is calculated properly and that zlib is 
        included during linking (for WOFF support).

        * GNUmakefile.am:
        * Source/autotools/webkit.m4: Include test for zlib.

2011-07-15  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Build plugin process by default when building WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=64592

        Reviewed by Philippe Normand.

        * configure.ac:

2011-07-14  Carlos Garcia Campos  <cgarcia@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] Implement Plugin Process
        https://bugs.webkit.org/show_bug.cgi?id=60546

        * configure.ac: Always check for gtk2 when building the plugin
        process.

2011-07-14  MORITA Hajime  <morrita@google.com>

        Unreviewed, rolling out r90976, r90981, and r90985.
        http://trac.webkit.org/changeset/90976
        http://trac.webkit.org/changeset/90981
        http://trac.webkit.org/changeset/90985
        https://bugs.webkit.org/show_bug.cgi?id=64251

        build break

        * Source/autotools/symbols.filter:

2011-07-14  MORITA Hajime <morrita@google.com>

        Unreviewed attempt to build fix.
        
        * Source/autotools/symbols.filter:

2011-07-13  MORITA Hajime  <morrita@google.com>

        [ShadowContentElement] forwarded node should be able to access its hosting content element.
        https://bugs.webkit.org/show_bug.cgi?id=64251

        Reviewed by Dimitri Glazkov.

        Added GTK symbols for new window.internals methods.
        
        * Source/autotools/symbols.filter:

2011-07-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL] Add Fullscreen API feature
        https://bugs.webkit.org/show_bug.cgi?id=63975

        This is just to add disabled ENABLE_FULLSCREEN_API to OptionEFl.cmake.
        ENABLE_FULLSCREEN_API will be enabled after finishing missing implementations.

        Reviewed by Adam Barth.

        * Source/cmake/OptionsEfl.cmake: Add disabled ENABLE_FULLSCREEN_API feature.
        * Source/cmakeconfig.h.cmake: ditto.

2011-07-05  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Show content for plugin requests in network panel.
        https://bugs.webkit.org/show_bug.cgi?id=30080

        Added GTK symbols for new window.internals methods.

        Reviewed by Pavel Feldman.

        * Source/autotools/symbols.filter:

2011-07-04  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r90373.
        http://trac.webkit.org/changeset/90373
        https://bugs.webkit.org/show_bug.cgi?id=63917

        Breaks Qt Linux Release minimal (Requested by vsevik on
        #webkit).

        * Source/autotools/symbols.filter:

2011-07-04  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Show content for plugin requests in network panel.
        https://bugs.webkit.org/show_bug.cgi?id=30080

        Reviewed by Pavel Feldman.

        * Source/autotools/symbols.filter:

2011-07-01  Tony Chang  <tony@chromium.org>

        Add chromium sql directory to git ignore.

        * .gitignore:

2011-07-01  Patrick Gansterer  <paroga@webkit.org>

        Reviewed by Daniel Bates.

        [CMake] Add cpu detection for MIPS
        https://bugs.webkit.org/show_bug.cgi?id=63693

        * Source/CMakeLists.txt:

2011-07-01  Joone Hur  <joone.hur@collabora.co.uk>

        Reviewed by Martin Robinson.

        [GTK] Add DeviceOrientation feature
        https://bugs.webkit.org/show_bug.cgi?id=63720

        Add configure option to enable/disable DeviceOrientation feature.

        * configure.ac:

2011-06-28  Joone Hur  <joone.hur@collabora.co.uk>

        Reviewed by Martin Robinson.

        [GTK] Rename 3D transforms to 3D rendering
        https://bugs.webkit.org/show_bug.cgi?id=63508

        WebKitGtk+ provides the 3D transforms feature, but it was
        renamed to 3D Rendering. This features supports CSS 3D trasnforms.

        * configure.ac: Rename ENABLE_3D_TRANSFORMS to ENABLE_3D_RENDERING.

2011-06-27  Alexis Menard  <alexis.menard@openbossa.org>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Remove Phonon MediaPlayer from the tree.
        https://bugs.webkit.org/show_bug.cgi?id=63448

        Remvove from the build.

        * Source/WebKit.pri:

2011-06-24  Dominic Cooney  <dominicc@chromium.org>

        Reviewed by Dimitri Glazkov.

        Convert shadow DOM-related tests to use window.internals
        https://bugs.webkit.org/show_bug.cgi?id=61671

        * Source/autotools/symbols.filter: Export symbols for GTK.

2011-06-24  Carlos Garcia Campos  <cgarcia@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] Add more debug options to compilation
        https://bugs.webkit.org/show_bug.cgi?id=63318

        Add --enable-debug-symbols to enable/disable compilation with
        debug symbols and --enable-debug-features to enable/disable debug
        features. Both options are unconditionally enabled for debug
        builds.

        * configure.ac:

2011-06-23  Oliver Hunt  <oliver@apple.com>

        Qt build-fix: remove warning that no other platform appears to use.
        Someone can add it back if they really feel it's needed.

        * Source/WebKit.pri:

2011-06-22  Ryuan Choi  <ryuan.choi@samsung.com>

        Reviewed by Antonio Gomes.

        [EFL] Add an option to enable Device Orientation Event.
        https://bugs.webkit.org/show_bug.cgi?id=63120

        ADD ENABLE_DEVICE_ORIENTATION.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmakeconfig.h.cmake:

2011-06-22  Nate Chapin  <japhet@chromium.org>

        Reviewed by Adam Barth.

        Add symbols required for window.internals.
        https://bugs.webkit.org/show_bug.cgi?id=62066

        * Source/autotools/symbols.filter:

2011-06-22  Martin Robinson  <mrobinson@igalia.com>

        Reviewed by Adam Roben.

        [GTK] Implement pixel dump support for WebKitTestRunner
        https://bugs.webkit.org/show_bug.cgi?id=58242

        * GNUmakefile.am: Reference the new ImageDiff GNUmakefile.

2011-06-21  MORITA Hajime  <morrita@google.com>

        Unreviewed, rolling out r89401 and r89403.
        http://trac.webkit.org/changeset/89401
        http://trac.webkit.org/changeset/89403
        https://bugs.webkit.org/show_bug.cgi?id=62970

        Breaks mac build and mistakenly enables the spellcheck API

        * configure.ac:

2011-06-20  MORITA Hajime <morrita@google.com>

        Reviewed by Kent Tamura.
        
        Spellcheck API should be build-able.
        https://bugs.webkit.org/show_bug.cgi?id=62970

        * configure.ac:

2011-06-20  MORITA Hajime  <morrita@google.com>

        Unreviewed GTK build fix.
        This change corrected syntax error on symbols.filter.

        * Source/autotools/symbols.filter:

2011-06-19  MORITA Hajime <morrita@google.com>

        Unreviewed GTK build fix.

        * Source/autotools/symbols.filter:

2011-06-19  MORITA Hajime  <morrita@google.com>

        Reviewed by Dimitri Glazkov.

        The internals object should have createShadowContentElement()
        https://bugs.webkit.org/show_bug.cgi?id=62432

        * Source/autotools/symbols.filter: Added some more symbols necessary for
        window.internals to function to the global symbol list.
        

2011-06-19  Adam Bergkvist  <adam.bergkvist@ericsson.com>

        Reviewed by Martin Robinson.

        [GTK] Enable Media Stream feature and make it default on
        https://bugs.webkit.org/show_bug.cgi?id=60394

        * configure.ac:

2011-06-17  Joone Hur  <joone.hur@collabora.co.uk>

        Reviewed by Martin Robinson.

        [GTK] Replace GdkRectangle by cairo_rectangle_int_t
        https://bugs.webkit.org/show_bug.cgi?id=60687

        Replace GdkRectangle by cairo_rectangle_int_t.

        * configure.ac: Check whether Cairo version is higher than 1.10.

2011-06-16  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Reviewed by Eric Seidel.

        [CMAKE] Enable METER_TAG of HTML5
        https://bugs.webkit.org/show_bug.cgi?id=62697

        Support for meter tag of html5 in CMake build system. However, this feature is
        only enabled on EFL port now. 

        * Source/cmake/OptionsEfl.cmake: Add ENABLE_METER_TAG.
        * Source/cmakeconfig.h.cmake:ditto.

2011-06-16  Carlos Garcia Campos  <cgarcia@igalia.com>

        Reviewed by Xan Lopez.

        [GTK] Remove support for GTK+2 in WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=62794

        * configure.ac: Make WebKit2 require GTK+ 3.x.

2011-06-15  Ryuan Choi  <ryuan.choi@samsung.com>

        Rubber stamped by Eric Seidel.

        [CMAKE][WK2] Add an option to build webkit2.
        https://bugs.webkit.org/show_bug.cgi?id=62260

        Add ENABLE_WEBKIT2 to build WebKit2 using CMake and ENABLE_WEBKIT to disable
        WebKit.

        * Source/CMakeLists.txt:
        * Source/cmake/WebKitFS.cmake:

2011-06-14  Ryuan Choi  <ryuan.choi@samsung.com>

        Reviewed by Eric Seidel.

        [CMAKE] Add ENABLE_TOUCH_ICON_LOADING feature.
        https://bugs.webkit.org/show_bug.cgi?id=62604

        Add feature to enable or disable ENABLE_TOUCH_ICON which supports
        apple-touch-icon and apple-touch-icon-precomposed in link tag.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmakeconfig.h.cmake:

2011-06-13  Joone Hur  <joone.hur@collabora.co.uk>

        Reviewed by Martin Robinson.

        [GTK] Add configure option to enable/disable register protocol handler
        https://bugs.webkit.org/show_bug.cgi?id=62534

        This patch just adds configure option to enable/disable register protocol handler.
        So, it needs more code to use register protocol handler.

        * configure.ac: Add configure option to enable/disable register protocol handler.

2011-06-13  Joone Hur  <joone.hur@collabora.co.uk>

        Reviewed by Martin Robinson.

        [GTK] Need to report whether touch icon loading is enabled
        https://bugs.webkit.org/show_bug.cgi?id=62532

        It needs to report whether touch icon loading is enabled.

        * configure.ac: Updated option parsing code for loading touch icons.

2011-06-13  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Eric Seidel.

        [CMAKE] Conditionally generate DerivedSources
        https://bugs.webkit.org/show_bug.cgi?id=62277

        Speedup build by not generating DerivedSources of features that are
        disabled. This was already been done for some features like ENABLE_SVG
        and now it's extended the following features: ENABLE_DATABASE,
        ENABLE_INDEXED_DATABASE, ENABLE_DOM_STORAGE, ENABLE_XPATH,
        ENABLE_OFFLINE_WEB_APPLICATIONS, ENABLE_WEB_SOCKETS,
        ENABLE_DATA_TRANSFER_ITEMS.

        * Source/cmakeconfig.h.cmake: add definition for INDEXED_DATABASE

2011-06-10  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Kenneth Rohde Christiansen.

        [CMAKE] Add generic support for building with WebGL
        https://bugs.webkit.org/show_bug.cgi?id=62376

        Add files that need to be compiled in every port for supporting WebGL.
        Each port still needs to add its specific files to
        CMakeLists${PORT}.txt. Therefore we do not enable WebGL in any port
        yet.

        * Source/CMakeLists.txt: Add files needed to support WebGL.
        * Source/cmake/OptionsCommon.cmake: Find required OpenGL package.
        * Source/cmakeconfig.h.cmake: define ENABLE_WEBGL this feature is
        enabled.

2011-06-09  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Antonio Gomes.

        [CMAKE] Never let USER_AGENT defined to nothing
        https://bugs.webkit.org/show_bug.cgi?id=62410

        This patch is similar to r88342, but sets WEBKIT_USER_AGENT_*
        definitions only if that port defined it. A port might prefer to set it
        in other place, e.g. a header that is part of the public API (like GTK
        does).

        By using #cmakedefine instead of #define, if that variable is not set
        in CMake it will expand to:

        /* #define WEBKIT_USER_AGENT_MAJOR_VERSION */

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmakeconfig.h.cmake:

2011-06-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Reviewed by Antonio Gomes.

        [EFL] Enable PROGRESS_TAG feature
        https://bugs.webkit.org/show_bug.cgi?id=62212

        * Source/cmake/OptionsEfl.cmake: Turn on PROGRESS_TAG by default.

2011-06-08  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Kenneth Rohde Christiansen.

        [CMAKE] Never let a WTF_FEATURE defined to nothing
        https://bugs.webkit.org/show_bug.cgi?id=60820

        If a port doesn't want to give the user some configure options,
        nevertheless it would have to define this feature as OFF. Otherwise
        there's a build error because the generated cmakeconfig.h is not
        parsed correctly by ENABLE macro, which expects each feature to be
        either undefined or defined to TRUE/FALSE.

        * Source/cmake/WebKitFeatures.cmake: Use a variable with the same name
        of the feature, which allows CONFIGURE_FILE() to replace it in the new
        cmakeconfig.h.cmake.
        * Source/cmakeconfig.h.cmake: use #cmakedefine01 instead of #define
        with another variable. This way the feature will always be 0 or 1 and
        it will never be left undefined.

2011-06-07  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Antonio Gomes.

        [EFL] Remove Ecore_X bits from PlatformScreenEfl
        https://bugs.webkit.org/show_bug.cgi?id=61649

        Remove the need for Ecore_X and some X calls by always using
        new functions available in EFL to get the screen size.

        * Source/cmake/FindEFL.cmake: Bump ecore and ecore-evas versions.

2011-06-07  Andreas Kling  <andreas.kling@nokia.com>

        Reviewed by Laszlo Gombos.

        [Qt] Fix Symbian build with RVCT 2.x
        https://bugs.webkit.org/show_bug.cgi?id=62205

        RVCT 2.x doesn't support (or need) the --signed_bitfields command-line
        option, so restrict it to version 4.x of the compiler.

        * Source/WebKit.pri:

2011-06-06  Martin Robinson  <mrobinson@igalia.com>

        Fix the GTK+ build by ensuring that the autogenerated sources
        necessary for libWebCoreInternals are recorded in a predeclared
        variable before assigning to BUILT_SOURCES.

        * GNUmakefile.am: Assign libWebCoreInternals built sources to
        libwebcoreinternals_built_sources before adding to the source list
        and to BUILT_SOURCES.

2011-06-06  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix the GTK+ build.

        * GNUmakefile.am: Add javascriptcore_cflags variable.

2011-06-04  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed build fix. Restore the PPC build and allow users to specify architectures
        to build on Mac.

        * wscript:

2011-06-04  Adam Barth  <abarth@webkit.org>

        Configure new commit-queue instance.  (Please ignore.)

2011-06-03  Martin Robinson  <mrobinson@igalia.com>

        Reviewed by Dimitri Glazkov.

        Teach Gtk build about window.internals
        https://bugs.webkit.org/show_bug.cgi?id=61071

        * Source/autotools/symbols.filter: Added some symbols necessary for
        window.internals to function to the global symbol list.

2011-06-03  Alexis Menard  <alexis.menard@openbossa.org>

        Reviewed by Benjamin Poulain.

        [Qt] Build fix of QtWebKit 2.2 when inside Qt tree with GCC 4.6.
        https://bugs.webkit.org/show_bug.cgi?id=61957

        When building inside the Qt source tree, qmake always append the mkspecs
        defines after ours. We have to workaround and make sure that we append
        our flags after the qmake variable used inside Qt. This workaround was provided
        by our qmake folks. We need to append in both case because qmake behave differently
        when called with -spec or via SUBDIR+=.

        * Source/WebKit.pri:

2011-06-02  Alexis Menard  <alexis.menard@openbossa.org>

        Reviewed by Andreas Kling.

        [Qt] Build fix of QtWebKit 2.2 when inside Qt tree with GCC 4.6.
        https://bugs.webkit.org/show_bug.cgi?id=61957

        When building inside the Qt source tree, qmake always append the mkspecs
        defines after ours. We have to workaround and make sure that we append 
        our flags after the qmake variable used inside Qt. This workaround was provided 
        by our qmake folks.

        * Source/WebKit.pri:

2011-03-30  Martin Robinson  <mrobinson@igalia.com>

        Reviewed by Adam Roben.

        [GTK] [WebKit2] Implement a basic WebKitTestRunner
        https://bugs.webkit.org/show_bug.cgi?id=57068

        * GNUmakefile.am: Added reference to WebKitTestRunner GNUmakefile.

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

        Reviewed by Martin Robinson.

        Bump version to 1.5.1.

        * configure.ac:

2011-05-25  Gregg Tavares  <gman@chromium.org>

        Reviewed by Kenneth Russell.

        Add 'noExtensions' option to Web/GraphicsContext3D attributes.
        https://bugs.webkit.org/show_bug.cgi?id=61460

        * Source/WebCore/html/canvas/WebGLRenderingContext.cpp:
        * Source/WebCore/platform/graphics/GraphicsContext3D.h:
        * Source/WebKit/chromium/public/WebGraphicsContext3D.h:
        * Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp:

2011-05-24  Keishi Hattori  <keishi@webkit.org>

        Reviewed by Kent Tamura.

        Disable textfield implementation of <input type=color>. Add INPUT_COLOR feature flag. Add input color sanitizer.
        https://bugs.webkit.org/show_bug.cgi?id=61273

        * configure.ac: Added INPUT_COLOR feature flag.

2011-05-24  Jay Civelli  <jcivelli@chromium.org>

        Reviewed by Adam Barth.

        Adding MHTML reading support.
        https://bugs.webkit.org/show_bug.cgi?id=7168

        * configure.ac:

2011-05-23  Ryuan Choi  <ryuan.choi@samsung.com>

        Rubber stamped by Eric Seidel.

        [CMAKE] Refactoring wtf related code.
        https://bugs.webkit.org/show_bug.cgi?id=60146

        Move WTF_INCLUDE_DIRECTORIES to Source/JavaScriptCore/wtf/CMakeLists.txt.

        * Source/cmake/OptionsCommon.cmake:
        * Source/cmake/OptionsEfl.cmake:

2011-05-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Unreviewed. Fix build break.

        * Source/cmake/WebKitMacros.cmake: Add -i option in order to include Lookup.h

2011-05-16  Carlos Garcia Campos  <cgarcia@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] Enable building GTK port with ENABLE_PLUGIN_PROCESS=1
        https://bugs.webkit.org/show_bug.cgi?id=58223

        * configure.ac: Add configure option to enable/disable plugin
        process.

2011-05-12  Gregg Tavares  <gman@chromium.org>

        Reviewed by Kenneth Russell.

        Add option to select GraphicsContext3D implementation.
        https://bugs.webkit.org/show_bug.cgi?id=60297

        * Source/WebKit/chromium/DEPS:
        * Tools/DumpRenderTree/chromium/DumpRenderTree.cpp:

2011-05-12  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Antonio Gomes.

        [CMAKE] Add option to unconditionally enable/disable a feature
        https://bugs.webkit.org/show_bug.cgi?id=60643

        Create an argument to be used in WEBKIT_FEATURE macro, allowing a port
        to enable a feature without showing to user that it can be disabled.
        This is useful if a port needs an option to be always ON/OFF and
        changing it will break the build.

        This way it's possible to add mandatory features to each port without
        touching the cmakeconfig.cmake file.

        * Source/cmake/WebKitFeatures.cmake:

2011-05-11  Dmitry Lomov  <dslomov@google.com>

        Reviewed by David Levin.

        https://bugs.webkit.org/show_bug.cgi?id=59561
        Switch TestWebKitAPI to GTest

        Fixes Makefiles and WinCairo build as well

        * Source/ThirdParty/gtest/README.WebKit:
        * Source/ThirdParty/gtest/msvc/gtest-md.vcproj:
        * Source/ThirdParty/gtest/xcode/Config/General.xcconfig:
        * Source/ThirdParty/gtest/xcode/Makefile: Added.

2011-05-09  Dmitry Lomov  <dslomov@google.com>

        Reviewed by Sam Weinig.
        
        Switch TestWebKitAPI to GTest
        https://bugs.webkit.org/show_bug.cgi?id=59561

        * Source/ThirdParty/gtest/README.WebKit:
        * Source/ThirdParty/gtest/msvc/gtest-md.vcproj:

2011-05-09  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Fix logic in GCC version detection, it was reversed.

        * configure.ac:

2011-05-09  Alexis Menard  <alexis.menard@openbossa.org>

        Reviewed by Andreas Kling.

        [Qt] Fix the build on Embedded Linux.
        https://bugs.webkit.org/show_bug.cgi?id=60347

        qpa is the name for lighthouse but the old name for Qt for Embedded Linux should
        still be used in order to build properly.

        * Source/WebKit.pri:

2011-05-05  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed build fix. Add LocalizedDateNone.cpp to the build.

        * wscript:

2011-05-05  Prasanth Ullattil  <prasanth.ullattil@nokia.com>

        Reviewed by Simon Hausmann.

        Install correct header files for webkit.

        Since WebKit is no longer inside Qt, we can remove the detection for
        that.

        [Qt] Install targets are not working correctly for modularized Qt and QtWebkit
        https://bugs.webkit.org/show_bug.cgi?id=57621

        * Source/sync.profile:

2011-05-05  Adam Barth  <abarth@webkit.org>

        Remove a couple stray mentions of WML that I missed before.

        * configure.ac:

2011-05-05  Alexis Menard  <alexis.menard@openbossa.org>

        Reviewed by Benjamin Poulain.

        [Qt] Make QtWebKit build when using gcc 4.6.0
        https://bugs.webkit.org/show_bug.cgi?id=60265

        If QtWebKit is compiled with gcc 4.6.0 and the build is not done
        with c++0x support we need to deactivate warnings about compatibility.
        Some WebKit types have names which conflicts with upcoming c++0x
        types. If QtWebKit is built with c++0x support, WebKit has code to
        fallback to the standard type rather than the WebKit implementation.
        For example nullptr will be the one of the std if build options turns on
        c++0x support.

        * Source/WebKit.pri:

2011-05-04  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] Fix warnings in webkit.m4 with autoconf 2.68
        https://bugs.webkit.org/show_bug.cgi?id=60189

        Use AC_LANG_SOURCE when passing source code to AC_COMPILE_IFELSE
        to remove warnings.

        * Source/autotools/webkit.m4: ditto.

2011-05-04  Martin Robinson  <mrobinson@igalia.com>

        Fix the WebKitGTK+ build.

        * configure.ac: Added option parsing code for loading touch icons.

2011-05-03  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Xan Lopez.

        [CMAKE] Remove C++0x compat mode warnings for GCC >= 4.6.0
        https://bugs.webkit.org/show_bug.cgi?id=60041

        Hardcode -Wno-c++0x-compat for the default compiler (if version >=
        4.6.0) until our codebase is ready. This is the same as done for
        autotools.

        * Source/cmake/WebKitHelpers.cmake: ditto.

2011-05-03  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Unreviewed, rolling out r85624.
        http://trac.webkit.org/changeset/85624

        The same command is used also for make_names.pl, which breaks
        the build.

        * Source/cmake/OptionsCommon.cmake: ditto.

2011-05-03  Leandro Pereira  <leandro@profusion.mobi>

        [EFL] Unreviewed build fix for NETWORK_BACKEND=curl.

        Force linking with zlib so that uncompress() exists.

        * Source/cmake/OptionsEfl.cmake: Find zlib.

2011-05-03  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        [CMAKE] Unreviewed build fix for gcc >= 4.6

        Same fix as done in r84123. CMake explicitly pass the arguments to
        make_names.pl, so let's make them the same.

        * Source/cmake/OptionsCommon.cmake: ditto.

2011-05-02  Adam Klein  <adamk@chromium.org>

        Reviewed by Tony Chang.

        Roll chromium DEPS to r83722, add new crypto directory to DEPS
        https://bugs.webkit.org/show_bug.cgi?id=59992

        * .gitignore:
        Ignore new chromium/crypto directory.

2011-05-03  Carlos Garcia Campos  <cgarcia@igalia.com>

        Reviewed by Eric Seidel.

        [GTK] Build webkit1 even when webkit2 is enabled
        https://bugs.webkit.org/show_bug.cgi?id=59695

        * GNUmakefile.am:
        * configure.ac:

2011-05-01  ojab  <ojab@ojab.ru>

        Reviewed by Eric Seidel.

        --disable-video-track if --disable-video
        https://bugs.webkit.org/show_bug.cgi?id=59605

        * configure.ac:

2011-04-29  Dean Jackson  <dino@apple.com>

        Reviewed by Simon Fraser.

        Add ENABLE macro for WebKitAnimation
        https://bugs.webkit.org/show_bug.cgi?id=59729

        Add new feature to toggle WebKit Animation API.

        * configure.ac:

2011-04-29  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed build fix. Fix library copying logic for wxMSW 2.9.x.

        * wscript:

2011-04-28  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Remove WML
        https://bugs.webkit.org/show_bug.cgi?id=59678

        Remove WML configuration option from the CMake build system.

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmakeconfig.h.cmake:

2011-04-28  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Martin Robinson.

        [Gtk] Split JSC and WebCore builds
        https://bugs.webkit.org/show_bug.cgi?id=19428

        Add a pkg-config file for JavaScriptCoreGTK+.

        * configure.ac: generate the final pkg-config file from our .in
        file.

2011-04-28  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Martin Robinson.

        [Gtk] Split JSC and WebCore builds
        https://bugs.webkit.org/show_bug.cgi?id=19428

        Build JavaScriptCore as a libtool shared library instead of a
        private convenience library.

        * GNUmakefile.am: remove convenience library definition for jsc.

2011-04-28  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] Remove C++0x compat mode warnings for GCC >= 4.6.0
        https://bugs.webkit.org/show_bug.cgi?id=59718

        Hardcode -Wno-c++0x-compat for the default compiler (if version >=
        4.6.0) until our codebase is ready.

        * configure.ac: do that.

2011-04-27  Yi Shen  <yi.4.shen@nokia.com>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Upstream Symbian platform plugin
        https://bugs.webkit.org/show_bug.cgi?id=58435

        Upstream Symbian platform plugin.

        * Source/WebKit.pro: Add platformplugin path to the SUBDIRS.

2011-04-27  Steve Block  <steveblock@google.com>

        Reviewed by David Levin.

        Remove Android build system
        https://bugs.webkit.org/show_bug.cgi?id=48111

        This is to avoid the maintenance burden until the Android port is
        fully upstreamed.

        * Source/Android.mk: Removed.

2011-04-26  Kevin Ollivier  <kevino@theolliviers.com>

        Rubberstamped by Eric Seidel.

        Enable waf to be used to build other ports
        https://bugs.webkit.org/show_bug.cgi?id=58213

        * wscript:

2011-04-22  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r84627.
        http://trac.webkit.org/changeset/84627
        https://bugs.webkit.org/show_bug.cgi?id=59271

        It broke Symbian build (Requested by Ossy on #webkit).

        * Source/WebKit.pro:

2011-04-22  Yi Shen  <yi.4.shen@nokia.com>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Upstream Symbian platform plugin
        https://bugs.webkit.org/show_bug.cgi?id=58435

        Upstream Symbian platform plugin.

        * Source/WebKit.pro: Add platformplugin path to the SUBDIRS.

2011-04-21  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Adam Roben.

        Add a feature define to allow <details> and <summary> to be disabled
        https://bugs.webkit.org/show_bug.cgi?id=59118
        <rdar://problem/9257045>

        * configure.ac:

2011-04-18  Evan Martin  <evan@chromium.org>

        Reviewed by Eric Seidel.

        [chromium] expose title direction to webkit client
        https://bugs.webkit.org/show_bug.cgi?id=58823

        *  Tools/DumpRenderTree/chromium/LayoutTestController.cpp:
        *  Tools/DumpRenderTree/chromium/LayoutTestController.h:
        Adapt to new API.  Expose title direction to JS so it can be tested.

        *  Tools/DumpRenderTree/chromium/WebViewHost.cpp:
        *  Tools/DumpRenderTree/chromium/WebViewHost.h:
        Provide new API.

2011-04-18  Hans Wennborg  <hans@chromium.org>

        Reviewed by Steve Block.

        LevelDB backend for IndexedDB
        https://bugs.webkit.org/show_bug.cgi?id=57372

        Add LevelDB wrappers to Android.mk.

        * Source/Android.mk:

2011-04-18  Patrick Gansterer  <paroga@webkit.org>

        Reviewed by Pavel Feldman.

        REGRESSION (r81479): generate-inspector-idl fails on native win32
        https://bugs.webkit.org/show_bug.cgi?id=58315

        Disable git autocrlf for Inspector.json.

        * .gitattributes:

2011-04-16  Patrick Gansterer  <paroga@webkit.org>

        Reviewed by Eric Seidel.

        Rename PLATFORM(CAIRO) to USE(CAIRO)
        https://bugs.webkit.org/show_bug.cgi?id=55192

        * Source/cmake/OptionsEfl.cmake:

2011-04-15  Shishir Agrawal  <shishir@chromium.org>

        Reviewed by James Robinson.

        Add a flag to guard Page Visibility API changes.
        https://bugs.webkit.org/show_bug.cgi?id=58464

        Initial draft at:
        http://lists.w3.org/Archives/Public/public-webapps/2011JanMar/0175.html

        * configure.ac:

2011-04-15  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Martin Robinson.

        * configure.ac: bump to 1.5.0, 1.4.0 will be released from a
        branch and was already cut off.

2011-04-15  Anna Cavender  <annacc@chromium.org>

        Reviewed by Eric Carlson.

        Renaming TRACK feature define to VIDEO_TRACK
        https://bugs.webkit.org/show_bug.cgi?id=53556

        * configure.ac:

2011-04-13  Dmitry Lomov  <dslomov@google.com>

        Reviewed by David Levin.

        Add GTest unit-testing framework to WebKit
        https://bugs.webkit.org/show_bug.cgi?id=58507

        * Source/ThirdParty/gtest/CHANGES: Added.
        * Source/ThirdParty/gtest/CMakeLists.txt: Added.
        * Source/ThirdParty/gtest/CONTRIBUTORS: Added.
        * Source/ThirdParty/gtest/COPYING: Added.
        * Source/ThirdParty/gtest/Makefile.am: Added.
        * Source/ThirdParty/gtest/README: Added.
        * Source/ThirdParty/gtest/README.WebKit: Added.
        * Source/ThirdParty/gtest/codegear/gtest.cbproj: Added.
        * Source/ThirdParty/gtest/codegear/gtest.groupproj: Added.
        * Source/ThirdParty/gtest/codegear/gtest_all.cc: Added.
        * Source/ThirdParty/gtest/codegear/gtest_link.cc: Added.
        * Source/ThirdParty/gtest/codegear/gtest_main.cbproj: Added.
        * Source/ThirdParty/gtest/codegear/gtest_unittest.cbproj: Added.
        * Source/ThirdParty/gtest/configure.ac: Added.
        * Source/ThirdParty/gtest/include/gtest/gtest-death-test.h: Added.
        * Source/ThirdParty/gtest/include/gtest/gtest-message.h: Added.
        * Source/ThirdParty/gtest/include/gtest/gtest-param-test.h: Added.
        * Source/ThirdParty/gtest/include/gtest/gtest-param-test.h.pump: Added.
        * Source/ThirdParty/gtest/include/gtest/gtest-spi.h: Added.
        * Source/ThirdParty/gtest/include/gtest/gtest-test-part.h: Added.
        * Source/ThirdParty/gtest/include/gtest/gtest-typed-test.h: Added.
        * Source/ThirdParty/gtest/include/gtest/gtest.h: Added.
        * Source/ThirdParty/gtest/include/gtest/gtest_pred_impl.h: Added.
        * Source/ThirdParty/gtest/include/gtest/gtest_prod.h: Added.
        * Source/ThirdParty/gtest/include/gtest/internal/gtest-death-test-internal.h: Added.
        * Source/ThirdParty/gtest/include/gtest/internal/gtest-filepath.h: Added.
        * Source/ThirdParty/gtest/include/gtest/internal/gtest-internal.h: Added.
        * Source/ThirdParty/gtest/include/gtest/internal/gtest-linked_ptr.h: Added.
        * Source/ThirdParty/gtest/include/gtest/internal/gtest-param-util-generated.h: Added.
        * Source/ThirdParty/gtest/include/gtest/internal/gtest-param-util-generated.h.pump: Added.
        * Source/ThirdParty/gtest/include/gtest/internal/gtest-param-util.h: Added.
        * Source/ThirdParty/gtest/include/gtest/internal/gtest-port.h: Added.
        * Source/ThirdParty/gtest/include/gtest/internal/gtest-string.h: Added.
        * Source/ThirdParty/gtest/include/gtest/internal/gtest-tuple.h: Added.
        * Source/ThirdParty/gtest/include/gtest/internal/gtest-tuple.h.pump: Added.
        * Source/ThirdParty/gtest/include/gtest/internal/gtest-type-util.h: Added.
        * Source/ThirdParty/gtest/include/gtest/internal/gtest-type-util.h.pump: Added.
        * Source/ThirdParty/gtest/m4/acx_pthread.m4: Added.
        * Source/ThirdParty/gtest/m4/gtest.m4: Added.
        * Source/ThirdParty/gtest/make/Makefile: Added.
        * Source/ThirdParty/gtest/msvc/gtest-md.sln: Added.
        * Source/ThirdParty/gtest/msvc/gtest-md.vcproj: Added.
        * Source/ThirdParty/gtest/msvc/gtest.sln: Added.
        * Source/ThirdParty/gtest/msvc/gtest.vcproj: Added.
        * Source/ThirdParty/gtest/msvc/gtest_main-md.vcproj: Added.
        * Source/ThirdParty/gtest/msvc/gtest_main.vcproj: Added.
        * Source/ThirdParty/gtest/msvc/gtest_prod_test-md.vcproj: Added.
        * Source/ThirdParty/gtest/msvc/gtest_prod_test.vcproj: Added.
        * Source/ThirdParty/gtest/msvc/gtest_unittest-md.vcproj: Added.
        * Source/ThirdParty/gtest/msvc/gtest_unittest.vcproj: Added.
        * Source/ThirdParty/gtest/run_tests.py: Added.
        * Source/ThirdParty/gtest/samples/prime_tables.h: Added.
        * Source/ThirdParty/gtest/samples/sample1.cc: Added.
        * Source/ThirdParty/gtest/samples/sample1.h: Added.
        * Source/ThirdParty/gtest/samples/sample10_unittest.cc: Added.
        * Source/ThirdParty/gtest/samples/sample1_unittest.cc: Added.
        * Source/ThirdParty/gtest/samples/sample2.cc: Added.
        * Source/ThirdParty/gtest/samples/sample2.h: Added.
        * Source/ThirdParty/gtest/samples/sample2_unittest.cc: Added.
        * Source/ThirdParty/gtest/samples/sample3-inl.h: Added.
        * Source/ThirdParty/gtest/samples/sample3_unittest.cc: Added.
        * Source/ThirdParty/gtest/samples/sample4.cc: Added.
        * Source/ThirdParty/gtest/samples/sample4.h: Added.
        * Source/ThirdParty/gtest/samples/sample4_unittest.cc: Added.
        * Source/ThirdParty/gtest/samples/sample5_unittest.cc: Added.
        * Source/ThirdParty/gtest/samples/sample6_unittest.cc: Added.
        * Source/ThirdParty/gtest/samples/sample7_unittest.cc: Added.
        * Source/ThirdParty/gtest/samples/sample8_unittest.cc: Added.
        * Source/ThirdParty/gtest/samples/sample9_unittest.cc: Added.
        * Source/ThirdParty/gtest/scripts/fuse_gtest_files.py: Added.
        * Source/ThirdParty/gtest/scripts/gen_gtest_pred_impl.py: Added.
        * Source/ThirdParty/gtest/scripts/gtest-config.in: Added.
        * Source/ThirdParty/gtest/scripts/pump.py: Added.
        * Source/ThirdParty/gtest/scripts/test/Makefile: Added.
        * Source/ThirdParty/gtest/scripts/upload.py: Added.
        * Source/ThirdParty/gtest/scripts/upload_gtest.py: Added.
        * Source/ThirdParty/gtest/src/gtest-all.cc: Added.
        * Source/ThirdParty/gtest/src/gtest-death-test.cc: Added.
        * Source/ThirdParty/gtest/src/gtest-filepath.cc: Added.
        * Source/ThirdParty/gtest/src/gtest-internal-inl.h: Added.
        * Source/ThirdParty/gtest/src/gtest-port.cc: Added.
        * Source/ThirdParty/gtest/src/gtest-test-part.cc: Added.
        * Source/ThirdParty/gtest/src/gtest-typed-test.cc: Added.
        * Source/ThirdParty/gtest/src/gtest.cc: Added.
        * Source/ThirdParty/gtest/src/gtest_main.cc: Added.
        * Source/ThirdParty/gtest/test/gtest-death-test_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest-filepath_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest-linked_ptr_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest-listener_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest-message_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest-options_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest-param-test2_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest-param-test_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest-param-test_test.h: Added.
        * Source/ThirdParty/gtest/test/gtest-port_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest-test-part_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest-tuple_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest-typed-test2_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest-typed-test_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest-typed-test_test.h: Added.
        * Source/ThirdParty/gtest/test/gtest-unittest-api_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_all_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_break_on_failure_unittest.py: Added.
        * Source/ThirdParty/gtest/test/gtest_break_on_failure_unittest_.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_color_test.py: Added.
        * Source/ThirdParty/gtest/test/gtest_color_test_.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_env_var_test.py: Added.
        * Source/ThirdParty/gtest/test/gtest_env_var_test_.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_environment_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_filter_unittest.py: Added.
        * Source/ThirdParty/gtest/test/gtest_filter_unittest_.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_help_test.py: Added.
        * Source/ThirdParty/gtest/test/gtest_help_test_.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_list_tests_unittest.py: Added.
        * Source/ThirdParty/gtest/test/gtest_list_tests_unittest_.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_main_unittest.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_nc.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_nc_test.py: Added.
        * Source/ThirdParty/gtest/test/gtest_no_test_unittest.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_output_test.py: Added.
        * Source/ThirdParty/gtest/test/gtest_output_test_.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_output_test_golden_lin.txt: Added.
        * Source/ThirdParty/gtest/test/gtest_output_test_golden_win.txt: Added.
        * Source/ThirdParty/gtest/test/gtest_pred_impl_unittest.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_prod_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_repeat_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_shuffle_test.py: Added.
        * Source/ThirdParty/gtest/test/gtest_shuffle_test_.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_sole_header_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_stress_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_test_utils.py: Added.
        * Source/ThirdParty/gtest/test/gtest_throw_on_failure_ex_test.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_throw_on_failure_test.py: Added.
        * Source/ThirdParty/gtest/test/gtest_throw_on_failure_test_.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_uninitialized_test.py: Added.
        * Source/ThirdParty/gtest/test/gtest_uninitialized_test_.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_unittest.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_xml_outfile1_test_.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_xml_outfile2_test_.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_xml_outfiles_test.py: Added.
        * Source/ThirdParty/gtest/test/gtest_xml_output_unittest.py: Added.
        * Source/ThirdParty/gtest/test/gtest_xml_output_unittest_.cc: Added.
        * Source/ThirdParty/gtest/test/gtest_xml_test_utils.py: Added.
        * Source/ThirdParty/gtest/test/production.cc: Added.
        * Source/ThirdParty/gtest/test/production.h: Added.
        * Source/ThirdParty/gtest/test/run_tests_util.py: Added.
        * Source/ThirdParty/gtest/test/run_tests_util_test.py: Added.
        * Source/ThirdParty/gtest/xcode/Config/DebugProject.xcconfig: Added.
        * Source/ThirdParty/gtest/xcode/Config/FrameworkTarget.xcconfig: Added.
        * Source/ThirdParty/gtest/xcode/Config/General.xcconfig: Added.
        * Source/ThirdParty/gtest/xcode/Config/ReleaseProject.xcconfig: Added.
        * Source/ThirdParty/gtest/xcode/Config/StaticLibraryTarget.xcconfig: Added.
        * Source/ThirdParty/gtest/xcode/Config/TestTarget.xcconfig: Added.
        * Source/ThirdParty/gtest/xcode/Resources/Info.plist: Added.
        * Source/ThirdParty/gtest/xcode/Samples/FrameworkSample/Info.plist: Added.
        * Source/ThirdParty/gtest/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj: Added.
        * Source/ThirdParty/gtest/xcode/Samples/FrameworkSample/runtests.sh: Added.
        * Source/ThirdParty/gtest/xcode/Samples/FrameworkSample/widget.cc: Added.
        * Source/ThirdParty/gtest/xcode/Samples/FrameworkSample/widget.h: Added.
        * Source/ThirdParty/gtest/xcode/Samples/FrameworkSample/widget_test.cc: Added.
        * Source/ThirdParty/gtest/xcode/Scripts/runtests.sh: Added.
        * Source/ThirdParty/gtest/xcode/Scripts/versiongenerate.py: Added.
        * Source/ThirdParty/gtest/xcode/gtest.xcodeproj/project.pbxproj: Added.

2011-04-13  Ryuan Choi  <ryuan.choi@samsung.com>

        Reviewed by Kenneth Rohde Christiansen.

        [CMAKE] Separate DerivedSources.
        https://bugs.webkit.org/show_bug.cgi?id=58427

        Seperate DerivedSources/ to DerivedSources/WebCore and
        DerivedSources/JavaScriptCore.

        * Source/CMakeLists.txt:
        * Source/cmake/OptionsCommon.cmake:
        * Source/cmake/WebKitFS.cmake:
        * Source/cmake/WebKitHelpers.cmake:
        * Source/cmake/WebKitMacros.cmake:

2011-04-13  Tony Chang  <tony@chromium.org>

        Ignore files generated from glu.gyp.

        * .gitignore:

2011-03-28  Adam Barth  <abarth@webkit.org>

        Reviewed by Kenneth Russell.

        Move libtess from WebCore/thirdparty to ThirdParty
        https://bugs.webkit.org/show_bug.cgi?id=57288

        We're putting third party code in Source/ThirdParty these days.

        * Source/ThirdParty/glu: Copied from Source/WebCore/thirdparty/glu.
        * Source/ThirdParty/glu/glu.gyp: Added.

2011-04-12  Thouraya ANDOLSI  <thouraya.andolsi@st.com>

        Reviewed by Eric Seidel.

        [QT] Enable JIT build for SH4 platforms.
        https://bugs.webkit.org/show_bug.cgi?id=58317
        add disable_uitools for SH4 platforms.

        * Source/WebKit.pri:

2011-04-11  Anna Cavender  <annacc@chromium.org>

        Reviewed by Eric Carlson.

        Setup ENABLE(TRACK) feature define
        https://bugs.webkit.org/show_bug.cgi?id=53556

        * configure.ac:

2011-04-11  Varun Jain  <varunjain@chromium.org>

        Reviewed by Darin Fisher.

        Resolving FIXME to make new WebWidget method pure virtual since all downstream classes have implemented the method.
        https://bugs.webkit.org/show_bug.cgi?id=58245

        *  Source/WebKit/chromium/public/WebWidget.h:

2011-04-11  Thouraya ANDOLSI  <thouraya.andolsi@st.com>

        Reviewed by Oliver Hunt.

        SH4 JIT SUPPORT.
        https://bugs.webkit.org/show_bug.cgi?id=44329

        Enable JIT support for SH4 platforms.

        * configure.ac:

2011-04-11  Andreas Kling  <andreas.kling@nokia.com>

        Unreviewed Qt build fix, QT_CONFIG doesn't have uitools on bots.

        * Source/WebKit.pri:

2011-04-09  Keith Kyzivat  <keith.kyzivat@nokia.com>

        Reviewed by Laszlo Gombos.

        [Qt] Don't link against fontconfig or X11 if embedded
        https://bugs.webkit.org/show_bug.cgi?id=58104

        * Source/WebKit.pri: Add qpa=>embedded as it should be across all builds.

2011-04-08  Alpha Lam  <hclam@chromium.org>

        Unreviewed, rolling out r83335.
        http://trac.webkit.org/changeset/83335
        https://bugs.webkit.org/show_bug.cgi?id=53556

        GTK and QT bots are broken.

        * configure.ac:

2011-04-08  Kristian Amlie  <kristian.amlie@nokia.com>

        Reviewed by Andreas Kling.

        [Qt] Remove modular references after support for the flag was removed.
        https://bugs.webkit.org/show_bug.cgi?id=57018

        Removed modular references after support for the flag was removed.

        Support was removed because the Qt Modularization project decided we
        don't need it. It's better to base decisions on the available
        information, as demonstrated in the patch by checking
        QT.phonon.includes.

        * Source/WebKit.pri:

2011-04-07  Anna Cavender  <annacc@chromium.org>

        Reviewed by Eric Carlson.

        Setup ENABLE(TRACK) feature define
        https://bugs.webkit.org/show_bug.cgi?id=53556

        * configure.ac:

2011-04-08  Varun Jain  <varunjain@chromium.org>

        Reviewed by Darin Fisher.

        Need to extend WebKit chromium API to access text selection
        https://bugs.webkit.org/show_bug.cgi?id=57888

        *  Source/WebKit/chromium/public/WebFrame.h:
        *  Source/WebKit/chromium/public/WebWidget.h:
        *  Source/WebKit/chromium/src/WebFrameImpl.cpp:
        *  Source/WebKit/chromium/src/WebFrameImpl.h:
        *  Source/WebKit/chromium/src/WebPopupMenuImpl.h:
        *  Source/WebKit/chromium/src/WebViewImpl.cpp:
        *  Source/WebKit/chromium/src/WebViewImpl.h:
        *  Source/WebKit/chromium/tests/PopupMenuTest.cpp:

2011-04-08  Jon Lee  <jonlee@apple.com>

        Reviewed by David Levin.

        adding *.vcproj.*.user to .gitignore for Visual Studio development
        https://bugs.webkit.org/show_bug.cgi?id=58097

        * .gitignore:

2011-04-07  Eric Seidel  <eric@webkit.org>

        Reviewed by Adam Barth.

        Add stub support for generating Gtk build system from gyp
        https://bugs.webkit.org/show_bug.cgi?id=58086

        This adds support for a new --port argument and plumbs through
        the necessary paths to allow generating for a port other than Mac.

        * Source/gyp/configure:

2011-04-07  Andrew Scherkus  <scherkus@chromium.org>

        Revert ENABLE_TRACK patch due to compile failures.

        * configure.ac:

2011-04-06  Dai Mikurube  <dmikurube@chromium.org>

        Reviewed by David Levin.

        Add QUOTA build flag for unified quota API
        https://bugs.webkit.org/show_bug.cgi?id=57918

        * configure.ac: Added QUOTA build flag

2011-04-04  Martin Robinson  <mrobinson@igalia.com>

        Build fix for GTK+ after r82876.

        * Source/autotools/symbols.filter: Update the symbol filter to include new symbols
        from WTF that DRT uses.

2011-04-04  Martin Robinson  <mrobinson@igalia.com>

        Reviewed by Gustavo Noronha Silva.

        [GTK] WebGL support
        https://bugs.webkit.org/show_bug.cgi?id=31517

        * configure.ac: Update configure.ac to ensure that GL/GLX headers exist.

2011-04-04  Jon Lee  <jonlee@apple.com>

        Reviewed by Eric Seidel.

        add some directories to .gitignore (and svn:ignore) when opening projects in xcode4
        https://bugs.webkit.org/show_bug.cgi?id=57646

        * .gitignore: added xcode 4 related project and workspace directories that are not needed for checkin

2011-03-31  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] Link explicitly with XRender on Linux/Unix
        https://bugs.webkit.org/show_bug.cgi?id=57558

        Some linkers, like GNU Gold, require explicit linkage of all the
        libraries used instead of relying on our dependencies to bring
        them in. In this case, the build fails because we use XRender in
        the plugin code but don't link directly to it.

        * configure.ac: check for XRender on UNIX.

2011-03-31  Vamshikrishna.Yellenki  <vamshi@motorola.com> and Alejandro G. Castro  <alex@igalia.com>

        Reviewed by Martin Robinson.

        Implement MiniBrowser for Gtk port.
        https://bugs.webkit.org/show_bug.cgi?id=48512

        Initial implementation of the Gtk MiniBrowser.

        * GNUmakefile.am:

2011-03-30  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Typo fix, remove an accidentally added line.

        * Source/WebKit.pri:

2011-03-30  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Rollout r82240 and r82232, because they broke 2 plugin tests.

        * Source/WebKit.pri:

2011-03-29  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Andreas Kling.

        [Qt] Remove modular references after support for the flag was removed.
        https://bugs.webkit.org/show_bug.cgi?id=57018

        Symbian buildfix after r82232.

        * Source/WebKit.pri: Readd uitools option.

2011-03-29  Kristian Amlie  <kristian.amlie@nokia.com>

        Reviewed by Andreas Kling.

        Removed modular references after support for the flag was removed.

        Support was removed because the Qt Modularization project decided we
        don't need it. It's better to base decisions on the available
        information, as demonstrated in the patch by checking
        QT.phonon.includes.

        In addition, remove the reference to uitools. It has been moved to
        QtKernel now, and therefore is always available.

        [Qt] Remove modular references after support for the flag was removed.
        https://bugs.webkit.org/show_bug.cgi?id=57018

        * Source/WebKit.pri:

2011-03-28  Benjamin Poulain  <benjamin.poulain@nokia.com>

        Reviewed by Andreas Kling.

        [Qt] QtWebKit will not compile with QT_ASCII_CAST_WARNINGS enabled
        https://bugs.webkit.org/show_bug.cgi?id=57087

        Enable QT_ASCII_CAST_WARNINGS by default in webkit.pri to catch the errors early on.

        * Source/WebKit.pri:

2011-03-26  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        We shouldn't bother running GYP if the generated files are newer than the GYP files
        https://bugs.webkit.org/show_bug.cgi?id=57146

        In the common case, this check will avoid any overhead from processing
        the GYP files.  Another approach to doing this is to add the feature to
        GYP directly, but GYP's approach to this problem is to compute the
        output in its entirety and compare it byte-for-byte against the output
        file.  In the future, it might make sense to add this approach as an
        alternative approach for GYP itself.

        I also removed JavaScriptGlue from the script because we're not really
        going to change JavaScriptGlue over to GYP.  We were using
        JavaScriptGlue as a learning experience.

        * Source/gyp/configure:

2011-03-25  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Build fix, don't use the new FPD implementation yet, until we can merge ours with it.

        * wscript:

2011-03-23  George Guo  <George.Guo@nokia.com>

        Reviewed by Darin Adler.

        Webkit warning: converting to 'unsigned int' from 'double'
        https://bugs.webkit.org/show_bug.cgi?id=56865

        With -Werr enabled, this cause the build failure on RedHat Linux. 
        Add a cast helped.  

        * Source/JavaScriptCore/runtime/TimeoutChecker.cpp:
        (JSC::getCPUTime):

2011-03-23  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        GYP build should default to Production configuration
        https://bugs.webkit.org/show_bug.cgi?id=56899

        * Source/gyp/common.gypi:

2011-03-22  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        gyp/configure shouldn&apos;t require GYP to be in your path
        https://bugs.webkit.org/show_bug.cgi?id=56873

        Now that GYP is on Source/ThirdParty/gyp, we can just use that copy
        instead of requiring GYP to be in the user's path.

        * Source/gyp/configure:

2011-03-22  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Add GYP to Source/ThirdParty
        https://bugs.webkit.org/show_bug.cgi?id=56870

        We probably don't need all the test files, but it seems cleaner to just
        check in the whole GYP tree.  GYP is BSD licensed, so it is compatible
        with the WebKit license.

        * Source/ThirdParty/gyp: Added.

2011-03-21  Alejandro G. Castro  <alex@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] 1.3.13 release bump
        https://bugs.webkit.org/show_bug.cgi?id=56795

        Version bump for 1.3.13 and updated NEWS file with release notes.

        * configure.ac:

2011-03-21  Ryuan Choi  <ryuan.choi@samsung.com>

        Reviewed by Antonio Gomes.

        [CMAKE] Add exception handling when PORT was missing.
        https://bugs.webkit.org/show_bug.cgi?id=56728

        * Source/CMakeLists.txt:

2011-03-10  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>

        Reviewed by Laszlo Gombos.

        [Qt] Text layout is broken on Symbian
        https://bugs.webkit.org/show_bug.cgi?id=56046

        Change integers included into bitfields to be signed by default on RVCT
        compiler as a lot of other compilers do (gcc, msvc, winsc).
        There are a lot of places in webkit where integers included in bitfield
        are assumed to be signed.

        * Source/WebKit.pri:

2011-03-10  Alejandro G. Castro  <alex@igalia.com>

        Unreviewed, fixed Efl compilation after r80744.

        * Source/cmake/OptionsEfl.cmake:

2011-03-10  Martin Robinson  <mrobinson@igalia.com>

        Fixed the help message for WebGL support on GTK+ to reflect the fact that
        it's turned off by default and is experimental.

        * configure.ac: Fix WebGL help message.

2011-03-04  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Adam Barth.

        Add skeletal WebCore.gyp
        https://bugs.webkit.org/show_bug.cgi?id=55802

        * Source/gyp/configure: Added WebCore.

2011-03-04  Adam Barth  <abarth@webkit.org>

        Reviewed by Dimitri Glazkov.

        Add a basic configure script for the GYP build
        https://bugs.webkit.org/show_bug.cgi?id=55791

        This script just calls GYP on the various gyp projects.  As we add more
        build systems, this script should be able to select which of them you'd
        like to generate the project for.

        * Source/gyp/configure: Added.

2011-03-04  Adam Barth  <abarth@webkit.org>

        Reviewed by Dimitri Glazkov.

        Use target_defaults to reduce boilerplate in GYP build system
        https://bugs.webkit.org/show_bug.cgi?id=55790

        This file contains GYP declarations that are shared by all the modules.
        Currently, we use this to set up the configurations, albeit primitively.

        * Source/gyp/common.gypi: Added.

2011-03-03  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Build fix. Ensure the ICU include dir comes before JavaScriptCore/wtf on Win
        to make sure the proper unicode/utf8.h header is included.

        * wscript:

2011-03-02  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Build fix, don't use LocalizedNumberICU.cpp yet, headers that it needs are not
        included in the ICU headers used by WebKit.

        * wscript:

2011-03-02  Daniel Cheng  <dcheng@chromium.org>

        Reviewed by David Levin.

        Add feature define for data transfer items
        https://bugs.webkit.org/show_bug.cgi?id=55510

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmakeconfig.h.cmake:
        * configure.ac:

>>>>>>> .r80188
2011-03-02  Andras Becsi  <abecsi@webkit.org>

        Reviewed by Laszlo Gombos.

        [Qt][WK2] generate-forwarding-headers.pl should generate paths with framework names
        https://bugs.webkit.org/show_bug.cgi?id=55478

        On case insensitive systems the generated forwarding headers cause build problems.

        * Source/WebKit.pri: Adjust INCLUDEPATH for the project.

2011-03-01  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r80079.
        http://trac.webkit.org/changeset/80079
        https://bugs.webkit.org/show_bug.cgi?id=55547

        "Broke the Win debug build?" (Requested by dcheng on #webkit).

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmakeconfig.h.cmake:

2011-03-01  Daniel Cheng  <dcheng@chromium.org>

        Reviewed by David Levin.

        Add feature define for data transfer items
        https://bugs.webkit.org/show_bug.cgi?id=55510

        * Source/cmake/OptionsEfl.cmake:
        * Source/cmake/OptionsWinCE.cmake:
        * Source/cmakeconfig.h.cmake:

2011-03-01  Andras Becsi  <abecsi@webkit.org>

        Reviewed by Csaba Osztrogonác.

        [Qt] Clean up the project files and move common options to WebKit.pri.

        Mac related changes suggested by Prasanth Ullattil <prasanth.ullattil@nokia.com>

        * Source/WebKit.pri: Common options should be here.
        Also move Mac options to this file to fix the Mac build.

2011-03-01  Andras Becsi  <abecsi@webkit.org>

        Unreviewed build fix.

        [Qt] Fix minimal build.

        * Source/WebKit.pri: Move the XP_UNIX define back to WebCore.pri.

2011-02-28  Adam Barth  <abarth@webkit.org>

        Reviewed by Dimitri Glazkov.

        Teach JavaScriptGlue gyp build about DEPTH
        https://bugs.webkit.org/show_bug.cgi?id=55421

        Moves the previously JavaScriptGlue-specific GYP helper shell scripts
        to the gyp directory in Source, where they can be shared by multiple
        frameworks.

        * Source/gyp: Added.
        * Source/gyp/remove-headers-if-needed.sh: Copied from Source/JavaScriptGlue/gyp/remove-headers-if-needed.sh.
        * Source/gyp/run-if-exists.sh: Copied from Source/JavaScriptGlue/gyp/run-if-exists.sh.
        * Source/gyp/update-info-plist.sh: Copied from Source/JavaScriptGlue/gyp/update-info-plist.sh.

2011-02-28  Benjamin Poulain  <benjamin.poulain@nokia.com>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt][WK2] Add a way to test the WebKit 2 APIs
        https://bugs.webkit.org/show_bug.cgi?id=55408

        Add the build file for test to the build system.

        * Source/WebKit.pri: Add the include path for WebKit 2 APIs.
        * Source/WebKit.pro: Add the dependency to build the new test project.

2011-02-28  Balazs Kelemen  <kbalazs@webkit.org>

        Reviewed by Anders Carlsson.

        [Qt][WK2] Plugin initialization
        https://bugs.webkit.org/show_bug.cgi?id=48127

        * Source/WebKit.pri: Lift the definition of the XP_UNIX macro
        from WebCore.pri to WebKit.pri to apply it to WebKit2 as well.

2011-02-28  Kristian Amlie  <kristian.amlie@nokia.com>

        Reviewed by Andreas Kling.

        Added full webkit module profile and a syncqt profile.

        This is for modularized Qt.

        [Qt] WebKit patches required to work with a modularized version of Qt
        https://bugs.webkit.org/show_bug.cgi?id=53916

        * Source/sync.profile: Added.

2011-02-26  Dihan Wickremasuriya  <dihan.wickremasuriya@nokia.com>

        Reviewed by Laszlo Gombos.

        [Qt] [Symbian] Disable dependency to a specific version of a Qt package for
        non-production builds.
        https://bugs.webkit.org/show_bug.cgi?id=55313

        * Source/WebKit.pri:

2011-02-24  Alejandro G. Castro  <alex@igalia.com>

        Rubber-stamped by Martin Robinson.

        Fixed compilation after r79537, added a bug to solve webkit2
        translations:
        https://bugs.webkit.org/show_bug.cgi?id=55153

        * GNUmakefile.am:

2011-02-24  Christian Dywan  <christian@lanedo.com>

        Rubber-stamped by Eric Seidel.

        [GTK] webkitgtk 1.3.7 build without translations
        https://bugs.webkit.org/show_bug.cgi?id=50612

        * GNUmakefile.am: Require stamp-po target for all-local so
            that po files are built before they install.

2011-02-22  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] 1.3.12 release preparation
        https://bugs.webkit.org/show_bug.cgi?id=54967

        Version bump for 1.3.12 and updated NEWS file with release notes.
        Also bumped libsoup requirement to 2.33.6 as agreed with Sergio
        and Martin.

        * Source/WebKit/gtk/NEWS:
        * configure.ac:

2011-02-22  Andras Becsi  <abecsi@webkit.org>

        Reviewed by Laszlo Gombos.

        [Qt] Redesign the build system
        https://bugs.webkit.org/show_bug.cgi?id=51339

        Part 2.

        Build WebCore as a static library, compile the WebKit API and WebKit2 API
        in a final step and link to WebKit2, WebCore and JSC libraries to fix
        linking issues resulting from stripped away symbols.

        * Source/WebKit.pri: Add common include paths
        * Source/WebKit.pro: Add new project file to SUBDIRS

2011-02-20  Carlos Garcia Campos  <cgarcia@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] Bump GTK+3 dependency to 3.0
        https://bugs.webkit.org/show_bug.cgi?id=54394

        * configure.ac:

2011-02-19  Ryuan Choi  <ryuan.choi@samsung.com>

        Reviewed by Martin Robinson.

        [GTK] Remove mandatory Enchant dependency
        https://bugs.webkit.org/show_bug.cgi?id=51587

        Add enable-spellcheck option which decides whether to use enchant.
        If disabled, WebKitGTK+ will not use enchant library.

        * configure.ac:

2011-02-18  Zan Dobersek  <zandobersek@gmail.com>

        Reviewed by Martin Robinson.

        [Gtk] Re-enable meter tag support
        https://bugs.webkit.org/show_bug.cgi?id=54762

        Enable meter tag support in the configure.ac. This feature was
        previously enabled by default in the makefile, but should be
        enabled here after changes in r78981.

        * configure.ac:

2011-02-18  Kristian Amlie  <kristian.amlie@nokia.com>

        Reviewed by Kenneth Rohde Christiansen.

        Avoided UiTools dependency if the module is not present.

        [Qt] WebKit patches required to work with a modularized version of Qt
        https://bugs.webkit.org/show_bug.cgi?id=53916

        * Source/WebKit.pri:

2011-02-18  Ryuan Choi  <ryuan.choi@samsung.com>

        Reviewed by Kent Tamura.

        [EFL] Remove GDK dependency.
        https://bugs.webkit.org/show_bug.cgi?id=53978

        Remove checking GDK library.

        * Source/cmake/OptionsEfl.cmake:

2011-02-18  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, build fix after r78981

        * configure.ac: datagrid is datagrid, it is not database. Also
        meter is not progress. Fixed copy/paste mistakes.

2011-02-18  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] minimal build unrecognized options
        https://bugs.webkit.org/show_bug.cgi?id=50890

        * configure.ac: added new configure options to enable/disable the
        meter element, progress element, datagrid and client-based
        geolocation support.

2011-02-17  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Build fix after introduction of JavaScriptCore/collector.
        
        * wscript:

2011-02-17  Kristian Amlie  <kristian.amlie@nokia.com>

        Reviewed by Laszlo Gombos.

        Updated include paths for phonon.

        [Qt] WebKit patches required to work with a modularized version of Qt
        https://bugs.webkit.org/show_bug.cgi?id=53916

        * Source/WebKit.pri:

2011-02-13  Hayato Ito  <hayato@chromium.org>

        Reviewed by Kent Tamura.

        Update .gitignore to ignore files which Ninja build system generates.

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

        * .gitignore:

2011-02-10  Peter Varga  <pvarga@webkit.org>

        Reviewed by Csaba Osztrogonác.

        Remove PCRE source from trunk
        https://bugs.webkit.org/show_bug.cgi?id=54188

        * Source/cmake/WebKitFS.cmake:

2011-02-09  Adam Barth  <abarth@webkit.org>

        Reviewed by Steve Block.

        Move Android.mk into Source
        https://bugs.webkit.org/show_bug.cgi?id=53751

        A somewhat blind attempt to move Android.mk into the Source directory.
        I'm sure I've goofed this up in some way.  The Android folks have
        kindly volunteered to fix this up once they merge past this revision.

        * Android.mk: Removed.
        * Source/Android.mk: Copied from Android.mk.

2011-02-08  Alejandro G. Castro  <alex@igalia.com>

        Reviewed by Martin Robinson.

        WebKit2 GTK Fails to Build #include nested too deeply
        https://bugs.webkit.org/show_bug.cgi?id=52219

        Removed the __STDC_FORMAT_MACROS definition, it is already defined
        in the file where PRIxx64 is used before the inclusion so we are
        safe.

        * configure.ac:

2011-02-08  Kristian Amlie  <kristian.amlie@nokia.com>

        Reviewed by Eric Seidel.

        Added include paths for QtScript.

        WebKit patches required to work with a modularized version of Qt
        https://bugs.webkit.org/show_bug.cgi?id=53916

        * Source/WebKit.pri:

2011-02-03  Martin Robinson  <mrobinson@igalia.com>

        Fix GTK+ WebGL build after r76600.

        * configure.ac: Make sure to respect configure.ac conventions 
        consistently when it comes to capitalization. Remove an old
        reference to enable_3d_canvas.

2011-02-02  Alejandro G. Castro  <alex@igalia.com>

        Reviewed by Martin Robinson.

        Bump the WebKitGTK+ versions in preparation for development release.

        * configure.ac: Bump the library, libtool and user agent version.

2011-02-02  Steve Lacey  <sjl@chromium.org>

        Reviewed by Eric Carlson.

        Implement basic media statistics on media elements.
        https://bugs.webkit.org/show_bug.cgi?id=53322

        * configure.ac:

2011-02-02  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Build fixes for wxWebKit.

        * wscript:

2010-01-28  Commit Queue  <commit-queue@webkit.org>

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

2010-01-28  Commit Queue  <commit-queue@webkit.org>

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

2010-01-28  Commit Queue  <commit-queue@webkit.org>

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

2011-01-31  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Xan Lopez.

        [GTK] REGRESSION:  http/tests/media/video-{cookie,referer}.html failing
        https://bugs.webkit.org/show_bug.cgi?id=53379

        Remove left over mentions of HAVE_SOUP_2_29_90, and apply the
        dependency on newer soup to efl as well.

        * Source/cmake/OptionsEfl.cmake:

2011-01-29  Daniel Bates  <dbates@rim.com>

        Reviewed by Maciej Stachowiak.

        Remove reference to ${CMAKE_SOURCE_DIR}/Source in CMake files
        https://bugs.webkit.org/show_bug.cgi?id=53382

        Our file system hierarchy ensures that CMAKE_SOURCE_DIR is defined to be /Source.
        So, ${CMAKE_SOURCE_DIR}/Source evaluates to the non-existent directory /Source/Source.
        Therefore, we should remove such references.

        * Source/cmake/OptionsCommon.cmake:

2011-01-29  Daniel Bates  <dbates@rim.com>

        Reviewed by Eric Seidel.

        Move wince/mt19937ar.c to ThirdParty and make it a policy choice
        https://bugs.webkit.org/show_bug.cgi?id=53253

        Move implementation of Mersenne Twister pseudorandom number generator to
        ThirdParty since it is a third party library.

        * Source/ThirdParty/mt19937ar.c: Copied from Source/JavaScriptCore/wtf/wince/mt19937ar.c.

2011-01-29  Dan Winship  <danw@gnome.org>

        Reviewed by Xan Lopez.

        [GTK] Require the latest glib and libsoup, and remove conditional
        support for older versions
        https://bugs.webkit.org/show_bug.cgi?id=50675

        * autotools/webkit.m4: use AM_PATH_GLIB_2_0 rather than doing
        basically the same work by hand
        * configure.ac:

2011-01-28  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Build failure with --enable-indexed-database
        https://bugs.webkit.org/show_bug.cgi?id=50954

        Build fix for IndexedDB support.

        * configure.ac: Change the autogen.sh option --enable-indexeddb to
        --enable-indexed-database to match the build-webkit option.

2010-01-28  Commit Queue  <commit-queue@webkit.org>

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

2010-01-28  Commit Queue  <commit-queue@webkit.org>

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

2011-01-26  Yael Aharon  <yael.aharon@nokia.com>

        Reviewed by Laszlo Gombos.

        [Qt][Symbian] Fix --minimal build
        https://bugs.webkit.org/show_bug.cgi?id=52839

        Move definition of USE_SYSTEM_MALLOC out of pri file.
        Put it in platform.h instead.

        * Source/WebKit.pri:

2011-01-26  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Andreas Kling.

        [Qt] Fix qt_minimal build
        https://bugs.webkit.org/show_bug.cgi?id=53172

        * Source/WebKit.pri:

2011-01-25  Patrick Gansterer  <paroga@webkit.org>

        Reviewed by Adam Barth.

        Move main CMakeLists.txt into Source directory
        https://bugs.webkit.org/show_bug.cgi?id=52888

        * CMakeLists.txt: Removed.
        * Source/CMakeLists.txt: Copied from CMakeLists.txt.
        * Source/cmakeconfig.h.cmake: Copied from cmakeconfig.h.cmake.
        * cmakeconfig.h.cmake: Removed.

2011-01-24  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Eric Seidel.

        Change ENABLE_3D_CANVAS to ENABLE_WEBGL
        https://bugs.webkit.org/show_bug.cgi?id=53041

        * configure.ac:
        
2011-01-24  Peter Gal  <galpeter@inf.u-szeged.hu>

        Rubber-stamped by Csaba Osztrogonác.

        * runtime: Removed. It was accidentally created by r76457.

2011-01-24  Andras Becsi  <abecsi@webkit.org>

        Reviewed by Csaba Osztrogonác.

        [Qt] Move project files into Source
        https://bugs.webkit.org/show_bug.cgi?id=52891

        * Source/DerivedSources.pro: Copied from DerivedSources.pro.
        * Source/WebKit.pri: Renamed from WebKit.pri.
        * Source/WebKit.pro: Added.
        * Source/common.pri: Renamed from common.pri.
        * WebKit.pro: Removed.

2011-01-20  Siddharth Mathur  <siddharth.mathur@nokia.com>

        Reviewed by Laszlo Gombos.

        [Qt][Symbian] Smaller debug symbol size when using RVCT 4.x
        https://bugs.webkit.org/show_bug.cgi?id=52835

        * WebKit.pri: Use --remove_unneeded_entities for RVCT 4.x compilers

2011-01-20  Alejandro G. Castro  <alex@igalia.com>

        Reviewed by Andreas Kling.

        [GTK] Fix typo in the webkit2 section of the configure.ac file
        https://bugs.webkit.org/show_bug.cgi?id=52801

        Fixed typo in the GTK WebKit2 compilation.

        * configure.ac:

2011-01-19  Kimmo Kinnunen  <kimmo.t.kinnunen@nokia.com>

        Reviewed by Andreas Kling.

        Enable usage of Google ld if it exist but is not on by default.

        [Qt] Enable the google ld if it exist but is not on by default
        https://bugs.webkit.org/show_bug.cgi?id=52625

        * common.pri: flip the test.

2011-01-18  Mihai Parparita  <mihaip@chromium.org>

        Unreviewed. Update .gitignore to reflect that WebKit is now in Source.
        
        * .gitignore:

2011-01-18  Krithigassree Sambamurthy  <krithigassree.sambamurthy@nokia.com>

        Reviewed by Simon Fraser.

        Support background-clip: content-box
        https://bugs.webkit.org/show_bug.cgi?id=48771

        Addded content-box as a valid background-clip value.

        * WebCore/css/CSSParser.cpp:
        (WebCore::parseBackgroundClip):

2011-01-18  Hayato Ito  <hayato@chromium.org>

        Reviewed by Kent Tamura.

        Update .gitignore file to reflect a recent WebKit directory movement.

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

        * .gitignore:

2011-01-16  Adam Barth  <abarth@webkit.org>

        Rubber-stamped by Eric Seidel.

        Move WebKit into Source
        https://bugs.webkit.org/show_bug.cgi?id=52530

        * Android.mk:
        * CMakeLists.txt:
        * DerivedSources.pro:
        * GNUmakefile.am:
        * Makefile:
        * WebKit.pri:
        * WebKit.pro:
        * configure.ac:
        * wscript:

2011-01-15  Adam Barth  <abarth@webkit.org>

        Rubber-stamped by Eric Seidel.

        Move WebKit2 into Source
        https://bugs.webkit.org/show_bug.cgi?id=52438

        Update reference to WebKit2.

        * DerivedSources.pro:
        * GNUmakefile.am:
        * Makefile:
        * Source/cmake/WebKitPackaging.cmake:
        * WebKit.pro:
        * configure.ac:

2011-01-14  Ahmad Sharif  <asharif.tools@gmail.com>

        Reviewed by Darin Fisher.

        When inlining is performed, the progress variable is
        declared as uninitialized.
        https://bugs.webkit.org/show_bug.cgi?id=51084

        * WebCore: Copied from WebCore.
        * WebCore/page/animation/KeyframeAnimation.cpp:
        (WebCore::KeyframeAnimation::animate):
        (WebCore::KeyframeAnimation::getAnimatedStyle):

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

        Reviewed by Csaba Osztrogonác.

        [Qt] Add QT_NO_CONCURRENT to the qt_minimal configuration
        https://bugs.webkit.org/show_bug.cgi?id=52223

        Add QT_NO_CONCURRENT to the qt_minimal configuration to make sure
        that QtWebKit builds with QT_NO_CONCURRENT defined.

        * WebKit.pri:

2011-01-11  Mihai Parparita  <mihaip@chromium.org>

        Unreviewed. Update .gitignore with new Chromium dependency.
        
        ui/ was added with http://crrev.com/70743, we picked that up with a
        Chromium roll in r75311.
        
        Also alphabetizes the dependency list.

        * .gitignore:

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

        Reviewed by Csaba Osztrogonác.

        [Qt] Baseline qt_minimal configuration
        https://bugs.webkit.org/show_bug.cgi?id=51313

        * WebKit.pri: List the supported QT_NO_FEATURE flags
        under qt_minimal configuration.

2011-01-10  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Reviewed by Eric Seidel.

        [EFL] Enable JIT for WebKit EFL
        https://bugs.webkit.org/show_bug.cgi?id=52140

        Enable JIT option for WebKit EFL. Enabled JIT's JS performance is 
        3 ~ 6 times faster than before.

        * Source/cmake/OptionsEfl.cmake:

2011-01-10  Martin Robinson  <mrobinson@igalia.com>

        Reviewed by Gustavo Noronha.

        Bump the WebKitGTK+ versions in preparation for development release.

        * configure.ac: Bump the library, libtool and user agent version.

2011-01-10  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] Create intermediate libWebCore library
        https://bugs.webkit.org/show_bug.cgi?id=52116

        * GNUmakefile.am: add XP_UNIX to the global CPP flags, since it's
        used by both libWebCore and libwebkitgtk now.

2011-01-08  Patrick Gansterer  <paroga@webkit.org>

        Unreviewed wx build fix for r75313.

        * wscript: Added missing brace.

2011-01-07  Adam Barth  <abarth@webkit.org>

        Rubber-stamped by Eric Seidel.

        Move WebCore to Source
        https://bugs.webkit.org/show_bug.cgi?id=52050

        Update build files and metadata to point to WebCore's new location.

        * .gitattributes:
        * .gitignore:
        * Android.mk:
        * CMakeLists.txt:
        * DerivedSources.pro:
        * GNUmakefile.am:
        * Makefile:
        * Source/autotools/webkit.m4:
        * Source/cmake/OptionsEfl.cmake:
        * WebKit.pri:
        * WebKit.pro:
        * configure.ac:
        * wscript:

2011-01-06  Martin Robinson  <mrobinson@igalia.com>

        Reviewed by Eric Seidel.

        [GTK] Initial build support for WebGL
        https://bugs.webkit.org/show_bug.cgi?id=51716

        * configure.ac: Add a configure option for WebGL.

2011-01-06  Michael Saboff  <msaboff@apple.com>

        Reviewed by Gavin Barraclough.

        Enhancement: Add Regexp Debug Compare between JIT and Interpreter
        https://bugs.webkit.org/show_bug.cgi?id=51834

        * JavaScriptCore: Copied from JavaScriptCore.

2011-01-06  Martin Robinson  <mrobinson@igalia.com>

        Reviewed by Xan Lopez.

        [GTK] Enable blob support by default
        https://bugs.webkit.org/show_bug.cgi?id=51994

        * configure.ac: Enable Blob support by default.

2011-01-05  Patrick Gansterer  <paroga@webkit.org>

        Reviewed by Andreas Kling.

        [CMake] Fix the usage of SOURCE_GROUP
        https://bugs.webkit.org/show_bug.cgi?id=51739

        * Source/cmake/WebKitMacros.cmake:

2011-01-05  Patrick Gansterer  <paroga@webkit.org>

        Reviewed by Andreas Kling.

        [WINCE] Remove CMake warning
        https://bugs.webkit.org/show_bug.cgi?id=51921

        * Source/cmake/WebKitHelpers.cmake:

2011-01-04  Martin Robinson  <mrobinson@igalia.com>

        Reviewed by David Levin.

        .gitignore should be updated to reflect Sources rename to Source
        https://bugs.webkit.org/show_bug.cgi?id=51893

        * .gitignore: Change all paths that reference the "Sources" directory to say "Source".

2011-01-04  Dihan Wickremasuriya  <dihan.wickremasuriya@nokia.com>

        Reviewed by Laszlo Gombos.

        [Qt] [Symbian] Build system cleanup

        After r74811 special handling for the Symbian build is no longer needed.
        This patch reverts r58756.

        * WebKit.pri:

2011-01-03  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Martin Robinson.

        * autogen.sh: also pass $ACLOCAL_FLAGS for tools that set that env
        variable (like jhbuild).

2011-01-03  Patrick Gansterer  <paroga@webkit.org>

        Reviewed by Darin Adler.

        [WINCE] Provide third party directory via environment variable
        https://bugs.webkit.org/show_bug.cgi?id=51643

        * Source/cmake/OptionsWinCE.cmake:

2011-01-03  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Martin Robinson.

        Use autoreconf instead of calling manually all the usual commands.

        * autogen.sh: call autoreconf instead of
        aclocal/autoheader/autoconf/automake/libtoolize.

2011-01-03  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] Disable superfluous GNU make built-in implicit rules
        https://bugs.webkit.org/show_bug.cgi?id=51826

        GNU make ships some superflous built-in rules that we never use
        and that end up adding up to a very significant portion of our
        total Makefile processing time. Disable them completely by
        defining the rule without any recipe, as suggested by the GNU make
        manual (10.5.6, Cancelling Implicit Rules).

        In my system the null-build goes from:

        make  43.51s user 12.77s system 99% cpu 56.628 total

        to:

        make  31.45s user 11.59s system 99% cpu 43.227 total

        * GNUmakefile.am: disable implicit built-in rules.

2011-01-03  Mihai Parparita  <mihaip@chromium.org>

        Unreviewed. Update .gitignore with new JavaScriptCore location.

        * .gitignore:

2011-01-02  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Unreviewed build fix.

        * CMakeLists.txt:
        * Source/cmake/OptionsCommon.cmake:

2011-01-01  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Move JavaScriptCore to Source
        https://bugs.webkit.org/show_bug.cgi?id=51604

        Update references to JavaScriptCore to point to the new location.

        * Android.mk:
        * CMakeLists.txt:
        * DerivedSources.pro:
        * GNUmakefile.am:
        * Makefile:
        * WebKit.pri:
        * WebKit.pro:
        * wscript:

2011-01-01  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Move Sources to Source
        https://bugs.webkit.org/show_bug.cgi?id=51794

        Update build files to point to the new location.

        * CMakeLists.txt:
        * GNUmakefile.am:
        * Makefile:
        * autogen.sh:
        * configure.ac:

2010-12-31  Adam Barth  <abarth@webkit.org>

        Rubber-stamped by Eric Seidel.

        Move HTML and XML parser benchmarks into PerformanceTests/Parser
        https://bugs.webkit.org/show_bug.cgi?id=51772

        Actually move the directory.

        * PerformanceTests/Parser: Copied from WebCore/benchmarks/parser.

2010-12-31  Adam Barth  <abarth@webkit.org>

        Rubber-stamped by Eric Seidel.

        Move PageLoadTests to PerformanceTests/PageLoad
        https://bugs.webkit.org/show_bug.cgi?id=51771

        Actually move the directory.

        * PageLoadTests: Removed.
        * PageLoadTests/svg: Removed.
        * PageLoadTests/svg/LICENSES: Removed.
        * PageLoadTests/svg/files: Removed.
        * PageLoadTests/svg/files/33041-Samurai.svg: Removed.
        * PageLoadTests/svg/files/42450-under the see.svg: Removed.
        * PageLoadTests/svg/files/42470-flower_from_my_garden_v2.svg: Removed.
        * PageLoadTests/svg/files/44057-drops on a blade.svg: Removed.
        * PageLoadTests/svg/files/Harvey_Rayner.svg: Removed.
        * PageLoadTests/svg/files/az-lizard_benji_park_01.svg: Removed.
        * PageLoadTests/svg/files/bamboo_01.svg: Removed.
        * PageLoadTests/svg/files/cacuts_01.svg: Removed.
        * PageLoadTests/svg/files/cowboy.svg: Removed.
        * PageLoadTests/svg/files/crawfish2_ganson.svg: Removed.
        * PageLoadTests/svg/files/deb9frac1.svg: Removed.
        * PageLoadTests/svg/files/food_leif_lodahl_01.svg: Removed.
        * PageLoadTests/svg/files/france.svg: Removed.
        * PageLoadTests/svg/files/francobollo_gnome_ezechi_02.svg: Removed.
        * PageLoadTests/svg/files/gearflowers.svg: Removed.
        * PageLoadTests/svg/files/hereGear4.svg: Removed.
        * PageLoadTests/svg/files/mtsthelens.svg: Removed.
        * PageLoadTests/svg/files/mtsthelens0.jpg: Removed.
        * PageLoadTests/svg/files/world-iso.svg: Removed.
        * PageLoadTests/svg/files/worldcup.svg: Removed.
        * PageLoadTests/svg/svg.pltsuite: Removed.
        * PerformanceTests/PageLoad: Copied from PageLoadTests.
        * Sources/cmake/WebKitPackaging.cmake:

2010-12-31  Adam Barth  <abarth@webkit.org>

        Rubber-stamped by Eric Seidel.

        Move SunSpider into PerformanceTests
        https://bugs.webkit.org/show_bug.cgi?id=51769

        Actually move the directory.

        * PerformanceTests: Added.
        * PerformanceTests/SunSpider: Copied from SunSpider.
        * Sources/cmake/WebKitPackaging.cmake:
        * SunSpider: Removed.
        * SunSpider/SunSpider.make: Removed.
        * SunSpider/TODO: Removed.
        * SunSpider/UNCOVERED: Removed.
        * SunSpider/hosted: Removed.
        * SunSpider/hosted/json2.js: Removed.
        * SunSpider/hosted/sunspider.css: Removed.
        * SunSpider/hosted/sunspider.html: Removed.
        * SunSpider/hosted/versions.html: Removed.
        * SunSpider/make-hosted: Removed.
        * SunSpider/resources: Removed.
        * SunSpider/resources/TEMPLATE.html: Removed.
        * SunSpider/resources/driver-TEMPLATE.html: Removed.
        * SunSpider/resources/results-TEMPLATE.html: Removed.
        * SunSpider/resources/sunspider-analyze-results.js: Removed.
        * SunSpider/resources/sunspider-compare-results.js: Removed.
        * SunSpider/resources/sunspider-standalone-compare.js: Removed.
        * SunSpider/resources/sunspider-standalone-driver.js: Removed.
        * SunSpider/sunspider: Removed.
        * SunSpider/sunspider-compare-results: Removed.
        * SunSpider/tests: Removed.
        * SunSpider/tests/parse-only: Removed.
        * SunSpider/tests/parse-only/LIST: Removed.
        * SunSpider/tests/parse-only/concat-jquery-mootools-prototype.js: Removed.
        * SunSpider/tests/parse-only/jquery-1.3.2.js: Removed.
        * SunSpider/tests/parse-only/mootools-1.2.2-core-nc.js: Removed.
        * SunSpider/tests/parse-only/prototype-1.6.0.3.js: Removed.
        * SunSpider/tests/sunspider-0.9: Removed.
        * SunSpider/tests/sunspider-0.9.1: Removed.
        * SunSpider/tests/sunspider-0.9.1/3d-cube.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/3d-morph.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/3d-raytrace.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/LIST: Removed.
        * SunSpider/tests/sunspider-0.9.1/access-binary-trees.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/access-fannkuch.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/access-nbody.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/access-nsieve.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/bitops-3bit-bits-in-byte.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/bitops-bits-in-byte.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/bitops-bitwise-and.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/bitops-nsieve-bits.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/controlflow-recursive.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/crypto-aes.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/crypto-md5.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/crypto-sha1.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/date-format-tofte.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/date-format-xparb.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/math-cordic.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/math-partial-sums.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/math-spectral-norm.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/regexp-dna.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/string-base64.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/string-fasta.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/string-tagcloud.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/string-unpack-code.js: Removed.
        * SunSpider/tests/sunspider-0.9.1/string-validate-input.js: Removed.
        * SunSpider/tests/sunspider-0.9/3d-cube.js: Removed.
        * SunSpider/tests/sunspider-0.9/3d-morph.js: Removed.
        * SunSpider/tests/sunspider-0.9/3d-raytrace.js: Removed.
        * SunSpider/tests/sunspider-0.9/LIST: Removed.
        * SunSpider/tests/sunspider-0.9/access-binary-trees.js: Removed.
        * SunSpider/tests/sunspider-0.9/access-fannkuch.js: Removed.
        * SunSpider/tests/sunspider-0.9/access-nbody.js: Removed.
        * SunSpider/tests/sunspider-0.9/access-nsieve.js: Removed.
        * SunSpider/tests/sunspider-0.9/bitops-3bit-bits-in-byte.js: Removed.
        * SunSpider/tests/sunspider-0.9/bitops-bits-in-byte.js: Removed.
        * SunSpider/tests/sunspider-0.9/bitops-bitwise-and.js: Removed.
        * SunSpider/tests/sunspider-0.9/bitops-nsieve-bits.js: Removed.
        * SunSpider/tests/sunspider-0.9/controlflow-recursive.js: Removed.
        * SunSpider/tests/sunspider-0.9/crypto-aes.js: Removed.
        * SunSpider/tests/sunspider-0.9/crypto-md5.js: Removed.
        * SunSpider/tests/sunspider-0.9/crypto-sha1.js: Removed.
        * SunSpider/tests/sunspider-0.9/date-format-tofte.js: Removed.
        * SunSpider/tests/sunspider-0.9/date-format-xparb.js: Removed.
        * SunSpider/tests/sunspider-0.9/math-cordic.js: Removed.
        * SunSpider/tests/sunspider-0.9/math-partial-sums.js: Removed.
        * SunSpider/tests/sunspider-0.9/math-spectral-norm.js: Removed.
        * SunSpider/tests/sunspider-0.9/regexp-dna.js: Removed.
        * SunSpider/tests/sunspider-0.9/string-base64.js: Removed.
        * SunSpider/tests/sunspider-0.9/string-fasta.js: Removed.
        * SunSpider/tests/sunspider-0.9/string-tagcloud.js: Removed.
        * SunSpider/tests/sunspider-0.9/string-unpack-code.js: Removed.
        * SunSpider/tests/sunspider-0.9/string-validate-input.js: Removed.
        * SunSpider/tests/ubench: Removed.
        * SunSpider/tests/ubench/LIST: Removed.
        * SunSpider/tests/ubench/function-closure.js: Removed.
        * SunSpider/tests/ubench/function-correct-args.js: Removed.
        * SunSpider/tests/ubench/function-empty.js: Removed.
        * SunSpider/tests/ubench/function-excess-args.js: Removed.
        * SunSpider/tests/ubench/function-missing-args.js: Removed.
        * SunSpider/tests/ubench/function-sum.js: Removed.
        * SunSpider/tests/ubench/loop-empty-resolve.js: Removed.
        * SunSpider/tests/ubench/loop-empty.js: Removed.
        * SunSpider/tests/ubench/loop-sum.js: Removed.
        * SunSpider/tests/v8-v4: Removed.
        * SunSpider/tests/v8-v4/LIST: Removed.
        * SunSpider/tests/v8-v4/v8-crypto.js: Removed.
        * SunSpider/tests/v8-v4/v8-deltablue.js: Removed.
        * SunSpider/tests/v8-v4/v8-earley-boyer.js: Removed.
        * SunSpider/tests/v8-v4/v8-raytrace.js: Removed.
        * SunSpider/tests/v8-v4/v8-regexp.js: Removed.
        * SunSpider/tests/v8-v4/v8-richards.js: Removed.
        * SunSpider/tests/v8-v4/v8-splay.js: Removed.
        * SunSpider/tests/v8-v5: Removed.
        * SunSpider/tests/v8-v5/LIST: Removed.
        * SunSpider/tests/v8-v5/v8-crypto.js: Removed.
        * SunSpider/tests/v8-v5/v8-deltablue.js: Removed.
        * SunSpider/tests/v8-v5/v8-earley-boyer.js: Removed.
        * SunSpider/tests/v8-v5/v8-raytrace.js: Removed.
        * SunSpider/tests/v8-v5/v8-regexp.js: Removed.
        * SunSpider/tests/v8-v5/v8-richards.js: Removed.
        * SunSpider/tests/v8-v5/v8-splay.js: Removed.
        * SunSpider/tests/v8-v6: Removed.
        * SunSpider/tests/v8-v6/LIST: Removed.
        * SunSpider/tests/v8-v6/v8-crypto.js: Removed.
        * SunSpider/tests/v8-v6/v8-deltablue.js: Removed.
        * SunSpider/tests/v8-v6/v8-earley-boyer.js: Removed.
        * SunSpider/tests/v8-v6/v8-raytrace.js: Removed.
        * SunSpider/tests/v8-v6/v8-regexp.js: Removed.
        * SunSpider/tests/v8-v6/v8-richards.js: Removed.
        * SunSpider/tests/v8-v6/v8-splay.js: Removed.
        * SunSpider/xcopy.excludes: Removed.

2010-12-30  Konstantin Tokarev  <annulen@yandex.ru>

        Reviewed by David Kilzer.

        [Qt] Don't build wtf/TCSystemAlloc.cpp if --system-malloc option is
        used
        https://bugs.webkit.org/show_bug.cgi?id=51672

        * WebKit.pri: Replaced USE_SYSTEM_MALLOC with USE_SYSTEM_MALLOC=1

2010-12-29  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] minimal build fails at link time due to missing sqlite3 symbols
        https://bugs.webkit.org/show_bug.cgi?id=51327

        * configure.ac: Error out if SQLite3 wasn't found while at least
        one of the features depending on it has been enabled.

2010-12-29  Patrick Gansterer  <paroga@webkit.org>

        Unreviewed. Use gcc as default preprocessor.

        * Sources/cmake/OptionsCommon.cmake:

2010-12-27  Ryuan Choi  <ryuan.choi@samsung.com>

        Reviewed by David Levin.

        [EFL] Change path of eflsymbols.filter
        https://bugs.webkit.org/show_bug.cgi?id=51659

        * Sources/cmake/OptionsEfl.cmake: 

2010-12-26  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Siedel.

        Move autotools into Sources
        https://bugs.webkit.org/show_bug.cgi?id=51630

        * .gitignore:
        * GNUmakefile.am:
        * Sources/autotools: Copied from autotools.
        * autogen.sh:
        * autotools: Removed.
        * autotools/acinclude.m4: Removed.
        * autotools/dolt.m4: Removed.
        * autotools/gsettings.m4: Removed.
        * autotools/symbols.filter: Removed.
        * autotools/webkit.m4: Removed.
        * configure.ac:

2010-12-26  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Move cmake into Sources
        https://bugs.webkit.org/show_bug.cgi?id=51631

        * CMakeLists.txt:
        * Sources/cmake: Copied from cmake.
        * cmake: Removed.
        * cmake/FindCFLite.cmake: Removed.
        * cmake/FindCairo.cmake: Removed.
        * cmake/FindEFL.cmake: Removed.
        * cmake/FindFontconfig.cmake: Removed.
        * cmake/FindFreetype.cmake: Removed.
        * cmake/FindGDK-PixBuf.cmake: Removed.
        * cmake/FindGDK.cmake: Removed.
        * cmake/FindGIO.cmake: Removed.
        * cmake/FindGStreamer-App.cmake: Removed.
        * cmake/FindGStreamer-Base.cmake: Removed.
        * cmake/FindGStreamer-Interfaces.cmake: Removed.
        * cmake/FindGStreamer-Pbutils.cmake: Removed.
        * cmake/FindGStreamer-Plugins-Base.cmake: Removed.
        * cmake/FindGStreamer-Video.cmake: Removed.
        * cmake/FindGStreamer.cmake: Removed.
        * cmake/FindGlib.cmake: Removed.
        * cmake/FindGperf.cmake: Removed.
        * cmake/FindGthread.cmake: Removed.
        * cmake/FindICU.cmake: Removed.
        * cmake/FindLibSoup2.cmake: Removed.
        * cmake/FindLibXlst.cmake: Removed.
        * cmake/FindPango.cmake: Removed.
        * cmake/FindSqlite.cmake: Removed.
        * cmake/LibFindMacros.cmake: Removed.
        * cmake/OptionsCommon.cmake: Removed.
        * cmake/OptionsEfl.cmake: Removed.
        * cmake/OptionsWinCE.cmake: Removed.
        * cmake/OptionsWindows.cmake: Removed.
        * cmake/WebKitEfl.cmake: Removed.
        * cmake/WebKitFS.cmake: Removed.
        * cmake/WebKitFeatures.cmake: Removed.
        * cmake/WebKitHelpers.cmake: Removed.
        * cmake/WebKitMacros.cmake: Removed.
        * cmake/WebKitPackaging.cmake: Removed.
        * cmake/eflsymbols.filter: Removed.

2010-12-26  Adam Barth  <abarth@webkit.org>

        Fix some references to the old location of the WebKit website in git
        metadata files.

        * .gitattributes:

2010-12-25  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Move ANGLE to Sources/ThirdParty
        https://bugs.webkit.org/show_bug.cgi?id=51605

        Actually move ANGLE and update the Makefile.

        * ANGLE: Removed.
        * ANGLE/ANGLE.xcodeproj: Removed.
        * ANGLE/ANGLE.xcodeproj/project.pbxproj: Removed.
        * ANGLE/Configurations: Removed.
        * ANGLE/Configurations/ANGLE.xcconfig: Removed.
        * ANGLE/Configurations/Base.xcconfig: Removed.
        * ANGLE/Configurations/DebugRelease.xcconfig: Removed.
        * ANGLE/Makefile: Removed.
        * ANGLE/include: Removed.
        * ANGLE/include/EGL: Removed.
        * ANGLE/include/EGL/egl.h: Removed.
        * ANGLE/include/EGL/eglext.h: Removed.
        * ANGLE/include/EGL/eglplatform.h: Removed.
        * ANGLE/include/GLES2: Removed.
        * ANGLE/include/GLES2/gl2.h: Removed.
        * ANGLE/include/GLES2/gl2ext.h: Removed.
        * ANGLE/include/GLES2/gl2platform.h: Removed.
        * ANGLE/include/GLSLANG: Removed.
        * ANGLE/include/GLSLANG/ShaderLang.h: Removed.
        * ANGLE/include/KHR: Removed.
        * ANGLE/include/KHR/khrplatform.h: Removed.
        * ANGLE/src: Removed.
        * ANGLE/src/build_angle.xcodeproj: Removed.
        * ANGLE/src/build_angle.xcodeproj/project.pbxproj: Removed.
        * ANGLE/src/common: Removed.
        * ANGLE/src/common/angleutils.h: Removed.
        * ANGLE/src/common/debug.cpp: Removed.
        * ANGLE/src/common/debug.h: Removed.
        * ANGLE/src/compiler: Removed.
        * ANGLE/src/compiler/BaseTypes.h: Removed.
        * ANGLE/src/compiler/CodeGenGLSL.cpp: Removed.
        * ANGLE/src/compiler/CodeGenHLSL.cpp: Removed.
        * ANGLE/src/compiler/Common.h: Removed.
        * ANGLE/src/compiler/ConstantUnion.h: Removed.
        * ANGLE/src/compiler/InfoSink.cpp: Removed.
        * ANGLE/src/compiler/InfoSink.h: Removed.
        * ANGLE/src/compiler/Initialize.cpp: Removed.
        * ANGLE/src/compiler/Initialize.h: Removed.
        * ANGLE/src/compiler/InitializeDll.cpp: Removed.
        * ANGLE/src/compiler/InitializeDll.h: Removed.
        * ANGLE/src/compiler/InitializeGlobals.h: Removed.
        * ANGLE/src/compiler/InitializeParseContext.h: Removed.
        * ANGLE/src/compiler/IntermTraverse.cpp: Removed.
        * ANGLE/src/compiler/Intermediate.cpp: Removed.
        * ANGLE/src/compiler/MMap.h: Removed.
        * ANGLE/src/compiler/OutputGLSL.cpp: Removed.
        * ANGLE/src/compiler/OutputGLSL.h: Removed.
        * ANGLE/src/compiler/OutputHLSL.cpp: Removed.
        * ANGLE/src/compiler/OutputHLSL.h: Removed.
        * ANGLE/src/compiler/ParseHelper.cpp: Removed.
        * ANGLE/src/compiler/ParseHelper.h: Removed.
        * ANGLE/src/compiler/PoolAlloc.cpp: Removed.
        * ANGLE/src/compiler/PoolAlloc.h: Removed.
        * ANGLE/src/compiler/QualifierAlive.cpp: Removed.
        * ANGLE/src/compiler/QualifierAlive.h: Removed.
        * ANGLE/src/compiler/RemoveTree.cpp: Removed.
        * ANGLE/src/compiler/RemoveTree.h: Removed.
        * ANGLE/src/compiler/ShHandle.h: Removed.
        * ANGLE/src/compiler/ShaderLang.cpp: Removed.
        * ANGLE/src/compiler/SymbolTable.cpp: Removed.
        * ANGLE/src/compiler/SymbolTable.h: Removed.
        * ANGLE/src/compiler/TranslatorGLSL.cpp: Removed.
        * ANGLE/src/compiler/TranslatorGLSL.h: Removed.
        * ANGLE/src/compiler/TranslatorHLSL.cpp: Removed.
        * ANGLE/src/compiler/TranslatorHLSL.h: Removed.
        * ANGLE/src/compiler/Types.h: Removed.
        * ANGLE/src/compiler/UnfoldSelect.cpp: Removed.
        * ANGLE/src/compiler/UnfoldSelect.h: Removed.
        * ANGLE/src/compiler/debug.cpp: Removed.
        * ANGLE/src/compiler/debug.h: Removed.
        * ANGLE/src/compiler/glslang.l: Removed.
        * ANGLE/src/compiler/glslang.y: Removed.
        * ANGLE/src/compiler/intermOut.cpp: Removed.
        * ANGLE/src/compiler/intermediate.h: Removed.
        * ANGLE/src/compiler/localintermediate.h: Removed.
        * ANGLE/src/compiler/osinclude.h: Removed.
        * ANGLE/src/compiler/ossource_posix.cpp: Removed.
        * ANGLE/src/compiler/ossource_win.cpp: Removed.
        * ANGLE/src/compiler/parseConst.cpp: Removed.
        * ANGLE/src/compiler/preprocessor: Removed.
        * ANGLE/src/compiler/preprocessor/atom.c: Removed.
        * ANGLE/src/compiler/preprocessor/atom.h: Removed.
        * ANGLE/src/compiler/preprocessor/compile.h: Removed.
        * ANGLE/src/compiler/preprocessor/cpp.c: Removed.
        * ANGLE/src/compiler/preprocessor/cpp.h: Removed.
        * ANGLE/src/compiler/preprocessor/cppstruct.c: Removed.
        * ANGLE/src/compiler/preprocessor/memory.c: Removed.
        * ANGLE/src/compiler/preprocessor/memory.h: Removed.
        * ANGLE/src/compiler/preprocessor/parser.h: Removed.
        * ANGLE/src/compiler/preprocessor/preprocess.h: Removed.
        * ANGLE/src/compiler/preprocessor/scanner.c: Removed.
        * ANGLE/src/compiler/preprocessor/scanner.h: Removed.
        * ANGLE/src/compiler/preprocessor/slglobals.h: Removed.
        * ANGLE/src/compiler/preprocessor/symbols.c: Removed.
        * ANGLE/src/compiler/preprocessor/symbols.h: Removed.
        * ANGLE/src/compiler/preprocessor/tokens.c: Removed.
        * ANGLE/src/compiler/preprocessor/tokens.h: Removed.
        * ANGLE/src/compiler/tools: Removed.
        * ANGLE/src/compiler/unistd.h: Removed.
        * ANGLE/src/libEGL: Removed.
        * ANGLE/src/libEGL/Config.cpp: Removed.
        * ANGLE/src/libEGL/Config.h: Removed.
        * ANGLE/src/libEGL/Display.cpp: Removed.
        * ANGLE/src/libEGL/Display.h: Removed.
        * ANGLE/src/libEGL/Surface.cpp: Removed.
        * ANGLE/src/libEGL/Surface.h: Removed.
        * ANGLE/src/libEGL/libEGL.cpp: Removed.
        * ANGLE/src/libEGL/libEGL.def: Removed.
        * ANGLE/src/libEGL/libEGL.vcproj: Removed.
        * ANGLE/src/libEGL/main.cpp: Removed.
        * ANGLE/src/libEGL/main.h: Removed.
        * ANGLE/src/libGLESv2: Removed.
        * ANGLE/src/libGLESv2/Blit.cpp: Removed.
        * ANGLE/src/libGLESv2/Blit.h: Removed.
        * ANGLE/src/libGLESv2/Buffer.cpp: Removed.
        * ANGLE/src/libGLESv2/Buffer.h: Removed.
        * ANGLE/src/libGLESv2/Context.cpp: Removed.
        * ANGLE/src/libGLESv2/Context.h: Removed.
        * ANGLE/src/libGLESv2/Framebuffer.cpp: Removed.
        * ANGLE/src/libGLESv2/Framebuffer.h: Removed.
        * ANGLE/src/libGLESv2/Program.cpp: Removed.
        * ANGLE/src/libGLESv2/Program.h: Removed.
        * ANGLE/src/libGLESv2/RefCountObject.cpp: Removed.
        * ANGLE/src/libGLESv2/RefCountObject.h: Removed.
        * ANGLE/src/libGLESv2/Renderbuffer.cpp: Removed.
        * ANGLE/src/libGLESv2/Renderbuffer.h: Removed.
        * ANGLE/src/libGLESv2/ResourceManager.cpp: Removed.
        * ANGLE/src/libGLESv2/ResourceManager.h: Removed.
        * ANGLE/src/libGLESv2/Shader.cpp: Removed.
        * ANGLE/src/libGLESv2/Shader.h: Removed.
        * ANGLE/src/libGLESv2/Texture.cpp: Removed.
        * ANGLE/src/libGLESv2/Texture.h: Removed.
        * ANGLE/src/libGLESv2/geometry: Removed.
        * ANGLE/src/libGLESv2/geometry/IndexDataManager.cpp: Removed.
        * ANGLE/src/libGLESv2/geometry/IndexDataManager.h: Removed.
        * ANGLE/src/libGLESv2/geometry/VertexDataManager.cpp: Removed.
        * ANGLE/src/libGLESv2/geometry/VertexDataManager.h: Removed.
        * ANGLE/src/libGLESv2/geometry/backend.cpp: Removed.
        * ANGLE/src/libGLESv2/geometry/backend.h: Removed.
        * ANGLE/src/libGLESv2/geometry/dx9.cpp: Removed.
        * ANGLE/src/libGLESv2/geometry/dx9.h: Removed.
        * ANGLE/src/libGLESv2/geometry/vertexconversion.h: Removed.
        * ANGLE/src/libGLESv2/libGLESv2.cpp: Removed.
        * ANGLE/src/libGLESv2/libGLESv2.def: Removed.
        * ANGLE/src/libGLESv2/libGLESv2.vcproj: Removed.
        * ANGLE/src/libGLESv2/main.cpp: Removed.
        * ANGLE/src/libGLESv2/main.h: Removed.
        * ANGLE/src/libGLESv2/mathutil.h: Removed.
        * ANGLE/src/libGLESv2/utilities.cpp: Removed.
        * ANGLE/src/libGLESv2/utilities.h: Removed.
        * Makefile:
        * Sources/ThirdParty: Added.
        * Sources/ThirdParty/ANGLE: Copied from ANGLE.

2010-12-26  Patrick Gansterer  <paroga@webkit.org>

        Unreviewed WinCE buildfix after r74626.

        * cmake/OptionsWinCE.cmake:

2010-12-24  Darin Adler  <darin@apple.com>

        Updated makefiles used by Apple engineers to fix build with the
        new JavaScriptGlue location.

        * Makefile: Told this to build JavaScriptGlue. Some day we might
        want it to descend into Sources instead and use the Makefile there,
        but there are problems with sequencing the project builds, so that
        can wait.
        * Sources/Makefile.shared: Added.

2010-12-24  Ryuan Choi  <ryuan.choi@samsung.com>

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Add option to enable Touch Events.
        https://bugs.webkit.org/show_bug.cgi?id=49125

        Add ENABLE_TOUCH_EVENTS option.

        * cmake/OptionsEfl.cmake:
        * cmakeconfig.h.cmake:

2010-12-23  Adam Barth  <abarth@webkit.org>

        Rubber-stamped by Eric Seidel.

        Move JavaScriptGlue into Sources
        https://bugs.webkit.org/show_bug.cgi?id=51583

        Actually perform the move.

        * JavaScriptGlue: Removed.
        * JavaScriptGlue/Configurations: Removed.
        * JavaScriptGlue/Configurations/Base.xcconfig: Removed.
        * JavaScriptGlue/Configurations/DebugRelease.xcconfig: Removed.
        * JavaScriptGlue/Configurations/JavaScriptGlue.xcconfig: Removed.
        * JavaScriptGlue/Configurations/Version.xcconfig: Removed.
        * JavaScriptGlue/English.lproj: Removed.
        * JavaScriptGlue/English.lproj/InfoPlist.strings: Removed.
        * JavaScriptGlue/ForwardingHeaders: Removed.
        * JavaScriptGlue/ForwardingHeaders/masm: Removed.
        * JavaScriptGlue/ForwardingHeaders/masm/X86Assembler.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/profiler: Removed.
        * JavaScriptGlue/ForwardingHeaders/profiler/Profiler.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/runtime: Removed.
        * JavaScriptGlue/ForwardingHeaders/runtime/CallFrame.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/ASCIICType.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/AlwaysInline.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/Assertions.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/Atomics.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/Bitmap.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/BumpPointerAllocator.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/CrossThreadRefCounted.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/CurrentTime.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/DateInstanceCache.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/DateMath.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/FastAllocBase.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/FastMalloc.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/FixedArray.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/Forward.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/HashCountedSet.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/HashFunctions.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/HashMap.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/HashSet.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/HashTraits.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/ListHashSet.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/ListRefPtr.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/Locker.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/MainThread.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/MathExtras.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/Noncopyable.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/NotFound.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/OSAllocator.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/OwnArrayPtr.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/OwnArrayPtrCommon.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/OwnFastMallocPtr.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/OwnPtr.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/OwnPtrCommon.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/PageAllocation.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/PageAllocationAligned.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/PageBlock.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/PageReservation.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/PassOwnArrayPtr.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/PassOwnPtr.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/PassRefPtr.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/Platform.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/PossiblyNull.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/PtrAndFlags.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/RandomNumber.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/RefCounted.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/RefPtr.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/StackBounds.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/StdLibExtras.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/StringHasher.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/ThreadSafeShared.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/ThreadSpecific.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/Threading.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/ThreadingPrimitives.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/UnusedParam.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/VMTags.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/ValueCheck.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/Vector.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/VectorTraits.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/WTFThreadData.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/text: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/text/CString.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/text/StringHash.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/text/StringImpl.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/text/StringImplBase.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/text/TextPosition.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/text/WTFString.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/unicode: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/unicode/Unicode.h: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/unicode/icu: Removed.
        * JavaScriptGlue/ForwardingHeaders/wtf/unicode/icu/UnicodeIcu.h: Removed.
        * JavaScriptGlue/Info.plist: Removed.
        * JavaScriptGlue/JSBase.cpp: Removed.
        * JavaScriptGlue/JSBase.h: Removed.
        * JavaScriptGlue/JSObject.cpp: Removed.
        * JavaScriptGlue/JSObject.h: Removed.
        * JavaScriptGlue/JSRun.cpp: Removed.
        * JavaScriptGlue/JSRun.h: Removed.
        * JavaScriptGlue/JSUtils.cpp: Removed.
        * JavaScriptGlue/JSUtils.h: Removed.
        * JavaScriptGlue/JSValueWrapper.cpp: Removed.
        * JavaScriptGlue/JSValueWrapper.h: Removed.
        * JavaScriptGlue/JavaScriptGlue.cpp: Removed.
        * JavaScriptGlue/JavaScriptGlue.exp: Removed.
        * JavaScriptGlue/JavaScriptGlue.h: Removed.
        * JavaScriptGlue/JavaScriptGlue.xcodeproj: Removed.
        * JavaScriptGlue/JavaScriptGlue.xcodeproj/project.pbxproj: Removed.
        * JavaScriptGlue/LICENSE: Removed.
        * JavaScriptGlue/Makefile: Removed.
        * JavaScriptGlue/UserObjectImp.cpp: Removed.
        * JavaScriptGlue/UserObjectImp.h: Removed.
        * JavaScriptGlue/config.h: Removed.
        * JavaScriptGlue/icu: Removed.
        * JavaScriptGlue/icu/LICENSE: Removed.
        * JavaScriptGlue/icu/README: Removed.
        * JavaScriptGlue/icu/unicode: Removed.
        * JavaScriptGlue/icu/unicode/platform.h: Removed.
        * JavaScriptGlue/icu/unicode/putil.h: Removed.
        * JavaScriptGlue/icu/unicode/uchar.h: Removed.
        * JavaScriptGlue/icu/unicode/ucnv.h: Removed.
        * JavaScriptGlue/icu/unicode/ucnv_err.h: Removed.
        * JavaScriptGlue/icu/unicode/uconfig.h: Removed.
        * JavaScriptGlue/icu/unicode/uenum.h: Removed.
        * JavaScriptGlue/icu/unicode/uiter.h: Removed.
        * JavaScriptGlue/icu/unicode/umachine.h: Removed.
        * JavaScriptGlue/icu/unicode/urename.h: Removed.
        * JavaScriptGlue/icu/unicode/ustring.h: Removed.
        * JavaScriptGlue/icu/unicode/utf.h: Removed.
        * JavaScriptGlue/icu/unicode/utf16.h: Removed.
        * JavaScriptGlue/icu/unicode/utf8.h: Removed.
        * JavaScriptGlue/icu/unicode/utf_old.h: Removed.
        * JavaScriptGlue/icu/unicode/utypes.h: Removed.
        * JavaScriptGlue/icu/unicode/uversion.h: Removed.
        * JavaScriptGlue/testjsglue.cpp: Removed.
        * Makefile:
        * Sources: Added.
        * Sources/JavaScriptGlue: Copied from JavaScriptGlue.
        * Sources/Makefile: Added.

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

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Fix ContextMenu removal
        https://bugs.webkit.org/show_bug.cgi?id=51530

        Fix ContextMenu removal

        In r74207 the support for ContextMenu was removed from EFL while the
        code is being ported to the new CROSS_PLATFORM_MENUS due to build
        breakage.  However there were some missing removals in the shutdown
        logic that introduced a bug, leading to a segmentation fault when
        ContexController was destroyed.

        The best way to effectively disable the ContextMenu is to conditionally
        compile the meaningful stuff by surrounding with "#if
        ENABLE(CONTEXT_MENUS)" and then disabling it in CMake.

        * cmake/OptionsEfl.cmake: Disable ContextMenu and don't pretend we
        implement CROSS_PLATFORM_MENUS yet.

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

        Reviewed by Gustavo Noronha.

        * configure.ac: bump version to 1.3.9.

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

        Reviewed by Gustavo Noronha.

        [GTK] Compilation fixes with GTK+ 2.91.7
        https://bugs.webkit.org/show_bug.cgi?id=51487

        * configure.ac: depend on GTK+ 2.91.7 when using GTK+ 3.x.

2010-12-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Reviewed by Antonio Gomes.

        [EFL] Sets default user agent
        https://bugs.webkit.org/show_bug.cgi?id=47903

        Add macros for WebKit EFL and User Agent.

        * cmake/OptionsEfl.cmake:
        * cmakeconfig.h.cmake:

2010-12-20  Adam Barth  <abarth@webkit.org>

        Move web sites to Websites directory
        https://bugs.webkit.org/show_bug.cgi?id=51323

        This patch was never officially reviewed (because it was too large to
        upload to bugs.webkit.org), but it was discussed on webkit-dev and Mark
        Rowe gave me the green light.

        * BugsSite: Removed.
        * BugsSite/.cvsignore: Removed.
        * BugsSite/.htaccess: Removed.
        * BugsSite/Bugzilla: Removed.
        * BugsSite/Bugzilla.pm: Removed.
        * BugsSite/Bugzilla/.cvsignore: Removed.
        * BugsSite/Bugzilla/.htaccess: Removed.
        * BugsSite/Bugzilla/Attachment: Removed.
        * BugsSite/Bugzilla/Attachment.pm: Removed.
        * BugsSite/Bugzilla/Attachment/PatchReader.pm: Removed.
        * BugsSite/Bugzilla/Auth: Removed.
        * BugsSite/Bugzilla/Auth.pm: Removed.
        * BugsSite/Bugzilla/Auth/Login: Removed.
        * BugsSite/Bugzilla/Auth/Login.pm: Removed.
        * BugsSite/Bugzilla/Auth/Login/CGI.pm: Removed.
        * BugsSite/Bugzilla/Auth/Login/Cookie.pm: Removed.
        * BugsSite/Bugzilla/Auth/Login/Env.pm: Removed.
        * BugsSite/Bugzilla/Auth/Login/Stack.pm: Removed.
        * BugsSite/Bugzilla/Auth/Login/WWW: Removed.
        * BugsSite/Bugzilla/Auth/Login/WWW/CGI: Removed.
        * BugsSite/Bugzilla/Auth/Persist: Removed.
        * BugsSite/Bugzilla/Auth/Persist/Cookie.pm: Removed.
        * BugsSite/Bugzilla/Auth/Verify: Removed.
        * BugsSite/Bugzilla/Auth/Verify.pm: Removed.
        * BugsSite/Bugzilla/Auth/Verify/DB.pm: Removed.
        * BugsSite/Bugzilla/Auth/Verify/LDAP.pm: Removed.
        * BugsSite/Bugzilla/Auth/Verify/RADIUS.pm: Removed.
        * BugsSite/Bugzilla/Auth/Verify/Stack.pm: Removed.
        * BugsSite/Bugzilla/Bug.pm: Removed.
        * BugsSite/Bugzilla/BugMail.pm: Removed.
        * BugsSite/Bugzilla/CGI.pm: Removed.
        * BugsSite/Bugzilla/Chart.pm: Removed.
        * BugsSite/Bugzilla/Classification.pm: Removed.
        * BugsSite/Bugzilla/Component.pm: Removed.
        * BugsSite/Bugzilla/Config: Removed.
        * BugsSite/Bugzilla/Config.pm: Removed.
        * BugsSite/Bugzilla/Config/Admin.pm: Removed.
        * BugsSite/Bugzilla/Config/Attachment.pm: Removed.
        * BugsSite/Bugzilla/Config/Auth.pm: Removed.
        * BugsSite/Bugzilla/Config/BugChange.pm: Removed.
        * BugsSite/Bugzilla/Config/BugFields.pm: Removed.
        * BugsSite/Bugzilla/Config/BugMove.pm: Removed.
        * BugsSite/Bugzilla/Config/Common.pm: Removed.
        * BugsSite/Bugzilla/Config/Core.pm: Removed.
        * BugsSite/Bugzilla/Config/DependencyGraph.pm: Removed.
        * BugsSite/Bugzilla/Config/GroupSecurity.pm: Removed.
        * BugsSite/Bugzilla/Config/LDAP.pm: Removed.
        * BugsSite/Bugzilla/Config/MTA.pm: Removed.
        * BugsSite/Bugzilla/Config/PatchViewer.pm: Removed.
        * BugsSite/Bugzilla/Config/Query.pm: Removed.
        * BugsSite/Bugzilla/Config/RADIUS.pm: Removed.
        * BugsSite/Bugzilla/Config/ShadowDB.pm: Removed.
        * BugsSite/Bugzilla/Config/UserMatch.pm: Removed.
        * BugsSite/Bugzilla/Constants.pm: Removed.
        * BugsSite/Bugzilla/DB: Removed.
        * BugsSite/Bugzilla/DB.pm: Removed.
        * BugsSite/Bugzilla/DB/Mysql.pm: Removed.
        * BugsSite/Bugzilla/DB/Oracle.pm: Removed.
        * BugsSite/Bugzilla/DB/Pg.pm: Removed.
        * BugsSite/Bugzilla/DB/Schema: Removed.
        * BugsSite/Bugzilla/DB/Schema.pm: Removed.
        * BugsSite/Bugzilla/DB/Schema/Mysql.pm: Removed.
        * BugsSite/Bugzilla/DB/Schema/Oracle.pm: Removed.
        * BugsSite/Bugzilla/DB/Schema/Pg.pm: Removed.
        * BugsSite/Bugzilla/Error.pm: Removed.
        * BugsSite/Bugzilla/Field.pm: Removed.
        * BugsSite/Bugzilla/Flag.pm: Removed.
        * BugsSite/Bugzilla/FlagType.pm: Removed.
        * BugsSite/Bugzilla/Group.pm: Removed.
        * BugsSite/Bugzilla/Hook.pm: Removed.
        * BugsSite/Bugzilla/Install: Removed.
        * BugsSite/Bugzilla/Install.pm: Removed.
        * BugsSite/Bugzilla/Install/CPAN.pm: Removed.
        * BugsSite/Bugzilla/Install/DB.pm: Removed.
        * BugsSite/Bugzilla/Install/Filesystem.pm: Removed.
        * BugsSite/Bugzilla/Install/Localconfig.pm: Removed.
        * BugsSite/Bugzilla/Install/Requirements.pm: Removed.
        * BugsSite/Bugzilla/Install/Util.pm: Removed.
        * BugsSite/Bugzilla/Keyword.pm: Removed.
        * BugsSite/Bugzilla/Mailer.pm: Removed.
        * BugsSite/Bugzilla/Milestone.pm: Removed.
        * BugsSite/Bugzilla/Object.pm: Removed.
        * BugsSite/Bugzilla/Product.pm: Removed.
        * BugsSite/Bugzilla/Search: Removed.
        * BugsSite/Bugzilla/Search.pm: Removed.
        * BugsSite/Bugzilla/Search/Quicksearch.pm: Removed.
        * BugsSite/Bugzilla/Search/Saved.pm: Removed.
        * BugsSite/Bugzilla/Series.pm: Removed.
        * BugsSite/Bugzilla/Status.pm: Removed.
        * BugsSite/Bugzilla/Template: Removed.
        * BugsSite/Bugzilla/Template.pm: Removed.
        * BugsSite/Bugzilla/Template/Parser.pm: Removed.
        * BugsSite/Bugzilla/Template/Plugin: Removed.
        * BugsSite/Bugzilla/Template/Plugin/Bugzilla.pm: Removed.
        * BugsSite/Bugzilla/Template/Plugin/Hook.pm: Removed.
        * BugsSite/Bugzilla/Template/Plugin/User.pm: Removed.
        * BugsSite/Bugzilla/Token.pm: Removed.
        * BugsSite/Bugzilla/Update.pm: Removed.
        * BugsSite/Bugzilla/User: Removed.
        * BugsSite/Bugzilla/User.pm: Removed.
        * BugsSite/Bugzilla/User/Setting: Removed.
        * BugsSite/Bugzilla/User/Setting.pm: Removed.
        * BugsSite/Bugzilla/User/Setting/Lang.pm: Removed.
        * BugsSite/Bugzilla/User/Setting/Skin.pm: Removed.
        * BugsSite/Bugzilla/Util.pm: Removed.
        * BugsSite/Bugzilla/Version.pm: Removed.
        * BugsSite/Bugzilla/WebService: Removed.
        * BugsSite/Bugzilla/WebService.pm: Removed.
        * BugsSite/Bugzilla/WebService/Bug.pm: Removed.
        * BugsSite/Bugzilla/WebService/Bugzilla.pm: Removed.
        * BugsSite/Bugzilla/WebService/Constants.pm: Removed.
        * BugsSite/Bugzilla/WebService/Product.pm: Removed.
        * BugsSite/Bugzilla/WebService/User.pm: Removed.
        * BugsSite/PrettyPatch: Removed.
        * BugsSite/PrettyPatch/PrettyPatch.rb: Removed.
        * BugsSite/PrettyPatch/diff.rb: Removed.
        * BugsSite/PrettyPatch/prettify.rb: Removed.
        * BugsSite/QUICKSTART: Removed.
        * BugsSite/README: Removed.
        * BugsSite/UPGRADING: Removed.
        * BugsSite/UPGRADING-pre-2.8: Removed.
        * BugsSite/admin.cgi: Removed.
        * BugsSite/attachment.cgi: Removed.
        * BugsSite/buglist.cgi: Removed.
        * BugsSite/bugzilla.dtd: Removed.
        * BugsSite/chart.cgi: Removed.
        * BugsSite/checksetup.pl: Removed.
        * BugsSite/code-review.js: Removed.
        * BugsSite/colchange.cgi: Removed.
        * BugsSite/collectstats.pl: Removed.
        * BugsSite/committers-autocomplete.js: Removed.
        * BugsSite/config.cgi: Removed.
        * BugsSite/contrib: Removed.
        * BugsSite/contrib/README: Removed.
        * BugsSite/contrib/bugzilla-submit: Removed.
        * BugsSite/contrib/bugzilla-submit/README: Removed.
        * BugsSite/contrib/bugzilla-submit/bugdata.txt: Removed.
        * BugsSite/contrib/bugzilla-submit/bugzilla-submit: Removed.
        * BugsSite/contrib/bugzilla-submit/bugzilla-submit.xml: Removed.
        * BugsSite/contrib/bugzilla_ldapsync.rb: Removed.
        * BugsSite/contrib/bz_webservice_demo.pl: Removed.
        * BugsSite/contrib/bzdbcopy.pl: Removed.
        * BugsSite/contrib/cmdline: Removed.
        * BugsSite/contrib/cmdline/bugcount: Removed.
        * BugsSite/contrib/cmdline/bugids: Removed.
        * BugsSite/contrib/cmdline/buglist: Removed.
        * BugsSite/contrib/cmdline/bugs: Removed.
        * BugsSite/contrib/cmdline/bugslink: Removed.
        * BugsSite/contrib/cmdline/makequery: Removed.
        * BugsSite/contrib/cmdline/query.conf: Removed.
        * BugsSite/contrib/cvs-update.pl: Removed.
        * BugsSite/contrib/gnats2bz.pl: Removed.
        * BugsSite/contrib/gnatsparse: Removed.
        * BugsSite/contrib/gnatsparse/README: Removed.
        * BugsSite/contrib/gnatsparse/gnatsparse.py: Removed.
        * BugsSite/contrib/gnatsparse/magic.py: Removed.
        * BugsSite/contrib/gnatsparse/specialuu.py: Removed.
        * BugsSite/contrib/jb2bz.py: Removed.
        * BugsSite/contrib/merge-users.pl: Removed.
        * BugsSite/contrib/mysqld-watcher.pl: Removed.
        * BugsSite/contrib/recode-overrides.txt: Removed.
        * BugsSite/contrib/recode.pl: Removed.
        * BugsSite/contrib/sendbugmail.pl: Removed.
        * BugsSite/contrib/sendunsentbugmail.pl: Removed.
        * BugsSite/contrib/syncLDAP.pl: Removed.
        * BugsSite/contrib/yp_nomail.sh: Removed.
        * BugsSite/createaccount.cgi: Removed.
        * BugsSite/data: Removed.
        * BugsSite/data/.htaccess: Removed.
        * BugsSite/data/attachments: Removed.
        * BugsSite/data/attachments/.htaccess: Removed.
        * BugsSite/data/duplicates: Removed.
        * BugsSite/data/mail: Removed.
        * BugsSite/data/mimedump-tmp: Removed.
        * BugsSite/data/mining: Removed.
        * BugsSite/data/params: Removed.
        * BugsSite/data/template: Removed.
        * BugsSite/data/webdot: Removed.
        * BugsSite/data/webdot/.htaccess: Removed.
        * BugsSite/describecomponents.cgi: Removed.
        * BugsSite/describekeywords.cgi: Removed.
        * BugsSite/docs: Removed.
        * BugsSite/docs/en: Removed.
        * BugsSite/docs/en/.cvsignore: Removed.
        * BugsSite/docs/en/README.docs: Removed.
        * BugsSite/docs/en/images: Removed.
        * BugsSite/docs/en/images/bzLifecycle.png: Removed.
        * BugsSite/docs/en/images/bzLifecycle.xml: Removed.
        * BugsSite/docs/en/images/callouts: Removed.
        * BugsSite/docs/en/images/callouts/1.gif: Removed.
        * BugsSite/docs/en/images/callouts/2.gif: Removed.
        * BugsSite/docs/en/images/callouts/3.gif: Removed.
        * BugsSite/docs/en/images/caution.gif: Removed.
        * BugsSite/docs/en/images/note.gif: Removed.
        * BugsSite/docs/en/images/tip.gif: Removed.
        * BugsSite/docs/en/images/warning.gif: Removed.
        * BugsSite/docs/en/rel_notes.txt: Removed.
        * BugsSite/docs/en/xml: Removed.
        * BugsSite/docs/en/xml/.cvsignore: Removed.
        * BugsSite/docs/en/xml/Bugzilla-Guide.xml: Removed.
        * BugsSite/docs/en/xml/about.xml: Removed.
        * BugsSite/docs/en/xml/administration.xml: Removed.
        * BugsSite/docs/en/xml/conventions.xml: Removed.
        * BugsSite/docs/en/xml/customization.xml: Removed.
        * BugsSite/docs/en/xml/gfdl.xml: Removed.
        * BugsSite/docs/en/xml/glossary.xml: Removed.
        * BugsSite/docs/en/xml/index.xml: Removed.
        * BugsSite/docs/en/xml/installation.xml: Removed.
        * BugsSite/docs/en/xml/integration.xml: Removed.
        * BugsSite/docs/en/xml/introduction.xml: Removed.
        * BugsSite/docs/en/xml/modules.xml: Removed.
        * BugsSite/docs/en/xml/patches.xml: Removed.
        * BugsSite/docs/en/xml/requiredsoftware.xml: Removed.
        * BugsSite/docs/en/xml/security.xml: Removed.
        * BugsSite/docs/en/xml/troubleshooting.xml: Removed.
        * BugsSite/docs/en/xml/using.xml: Removed.
        * BugsSite/docs/html: Removed.
        * BugsSite/docs/html/api: Removed.
        * BugsSite/docs/images: Removed.
        * BugsSite/docs/images/callouts: Removed.
        * BugsSite/docs/lib: Removed.
        * BugsSite/docs/lib/Pod: Removed.
        * BugsSite/docs/lib/Pod/Simple: Removed.
        * BugsSite/docs/lib/Pod/Simple/HTML: Removed.
        * BugsSite/docs/lib/Pod/Simple/HTML/Bugzilla.pm: Removed.
        * BugsSite/docs/lib/Pod/Simple/HTMLBatch: Removed.
        * BugsSite/docs/lib/Pod/Simple/HTMLBatch/Bugzilla.pm: Removed.
        * BugsSite/docs/makedocs.pl: Removed.
        * BugsSite/docs/pdf: Removed.
        * BugsSite/docs/style.css: Removed.
        * BugsSite/docs/txt: Removed.
        * BugsSite/docs/xml: Removed.
        * BugsSite/duplicates.cgi: Removed.
        * BugsSite/editclassifications.cgi: Removed.
        * BugsSite/editcomponents.cgi: Removed.
        * BugsSite/editfields.cgi: Removed.
        * BugsSite/editflagtypes.cgi: Removed.
        * BugsSite/editgroups.cgi: Removed.
        * BugsSite/editkeywords.cgi: Removed.
        * BugsSite/editmilestones.cgi: Removed.
        * BugsSite/editparams.cgi: Removed.
        * BugsSite/editproducts.cgi: Removed.
        * BugsSite/editsettings.cgi: Removed.
        * BugsSite/editusers.cgi: Removed.
        * BugsSite/editvalues.cgi: Removed.
        * BugsSite/editversions.cgi: Removed.
        * BugsSite/editwhines.cgi: Removed.
        * BugsSite/editworkflow.cgi: Removed.
        * BugsSite/email_in.pl: Removed.
        * BugsSite/enter_bug.cgi: Removed.
        * BugsSite/extensions: Removed.
        * BugsSite/extensions/example: Removed.
        * BugsSite/extensions/example/code: Removed.
        * BugsSite/extensions/example/code/bug-end_of_update.pl: Removed.
        * BugsSite/extensions/example/code/buglist-columns.pl: Removed.
        * BugsSite/extensions/example/code/colchange-columns.pl: Removed.
        * BugsSite/extensions/example/code/config.pl: Removed.
        * BugsSite/extensions/example/code/flag-end_of_update.pl: Removed.
        * BugsSite/extensions/example/code/install-before_final_checks.pl: Removed.
        * BugsSite/extensions/example/code/product-confirm_delete.pl: Removed.
        * BugsSite/extensions/example/code/webservice-error_codes.pl: Removed.
        * BugsSite/extensions/example/code/webservice.pl: Removed.
        * BugsSite/extensions/example/disabled: Removed.
        * BugsSite/extensions/example/info.pl: Removed.
        * BugsSite/extensions/example/lib: Removed.
        * BugsSite/extensions/example/lib/ConfigExample.pm: Removed.
        * BugsSite/extensions/example/lib/WSExample.pm: Removed.
        * BugsSite/extensions/example/template: Removed.
        * BugsSite/extensions/example/template/en: Removed.
        * BugsSite/extensions/example/template/en/default: Removed.
        * BugsSite/extensions/example/template/en/default/admin: Removed.
        * BugsSite/extensions/example/template/en/default/admin/params: Removed.
        * BugsSite/extensions/example/template/en/default/admin/params/example.html.tmpl: Removed.
        * BugsSite/extensions/example/template/en/global: Removed.
        * BugsSite/extensions/example/template/en/global/user-error-errors.html.tmpl: Removed.
        * BugsSite/graphs: Removed.
        * BugsSite/images: Removed.
        * BugsSite/images/favicon.ico: Removed.
        * BugsSite/images/padlock.png: Removed.
        * BugsSite/importxml.pl: Removed.
        * BugsSite/index.cgi: Removed.
        * BugsSite/install-module.pl: Removed.
        * BugsSite/js: Removed.
        * BugsSite/js/TUI.js: Removed.
        * BugsSite/js/attachment.js: Removed.
        * BugsSite/js/expanding-tree.js: Removed.
        * BugsSite/js/field.js: Removed.
        * BugsSite/js/help.js: Removed.
        * BugsSite/js/params.js: Removed.
        * BugsSite/js/productform.js: Removed.
        * BugsSite/js/util.js: Removed.
        * BugsSite/js/yui: Removed.
        * BugsSite/js/yui/calendar.js: Removed.
        * BugsSite/js/yui/yahoo-dom-event.js: Removed.
        * BugsSite/lib: Removed.
        * BugsSite/lib/.htaccess: Removed.
        * BugsSite/lib/README: Removed.
        * BugsSite/long_list.cgi: Removed.
        * BugsSite/mod_perl.pl: Removed.
        * BugsSite/page.cgi: Removed.
        * BugsSite/post_bug.cgi: Removed.
        * BugsSite/process_bug.cgi: Removed.
        * BugsSite/query.cgi: Removed.
        * BugsSite/quips.cgi: Removed.
        * BugsSite/relogin.cgi: Removed.
        * BugsSite/report.cgi: Removed.
        * BugsSite/reports.cgi: Removed.
        * BugsSite/request.cgi: Removed.
        * BugsSite/robots.txt: Removed.
        * BugsSite/runtests.pl: Removed.
        * BugsSite/sanitycheck.cgi: Removed.
        * BugsSite/sanitycheck.pl: Removed.
        * BugsSite/search_plugin.cgi: Removed.
        * BugsSite/show_activity.cgi: Removed.
        * BugsSite/show_bug.cgi: Removed.
        * BugsSite/showattachment.cgi: Removed.
        * BugsSite/showdependencygraph.cgi: Removed.
        * BugsSite/showdependencytree.cgi: Removed.
        * BugsSite/sidebar.cgi: Removed.
        * BugsSite/skins: Removed.
        * BugsSite/skins/.cvsignore: Removed.
        * BugsSite/skins/contrib: Removed.
        * BugsSite/skins/contrib/Dusk: Removed.
        * BugsSite/skins/contrib/Dusk/.cvsignore: Removed.
        * BugsSite/skins/contrib/Dusk/IE-fixes.css: Removed.
        * BugsSite/skins/contrib/Dusk/admin.css: Removed.
        * BugsSite/skins/contrib/Dusk/buglist.css: Removed.
        * BugsSite/skins/contrib/Dusk/create_attachment.css: Removed.
        * BugsSite/skins/contrib/Dusk/dependency-tree.css: Removed.
        * BugsSite/skins/contrib/Dusk/duplicates.css: Removed.
        * BugsSite/skins/contrib/Dusk/editusers.css: Removed.
        * BugsSite/skins/contrib/Dusk/global.css: Removed.
        * BugsSite/skins/contrib/Dusk/help.css: Removed.
        * BugsSite/skins/contrib/Dusk/index.css: Removed.
        * BugsSite/skins/contrib/Dusk/panel.css: Removed.
        * BugsSite/skins/contrib/Dusk/params.css: Removed.
        * BugsSite/skins/contrib/Dusk/release-notes.css: Removed.
        * BugsSite/skins/contrib/Dusk/show_bug.css: Removed.
        * BugsSite/skins/contrib/Dusk/show_multiple.css: Removed.
        * BugsSite/skins/contrib/Dusk/summarize-time.css: Removed.
        * BugsSite/skins/contrib/Dusk/voting.css: Removed.
        * BugsSite/skins/contrib/Dusk/yui: Removed.
        * BugsSite/skins/contrib/Dusk/yui/calendar.css: Removed.
        * BugsSite/skins/custom: Removed.
        * BugsSite/skins/custom/IE-fixes.css: Removed.
        * BugsSite/skins/custom/admin.css: Removed.
        * BugsSite/skins/custom/buglist.css: Removed.
        * BugsSite/skins/custom/create_attachment.css: Removed.
        * BugsSite/skins/custom/dependency-tree.css: Removed.
        * BugsSite/skins/custom/duplicates.css: Removed.
        * BugsSite/skins/custom/editusers.css: Removed.
        * BugsSite/skins/custom/global.css: Removed.
        * BugsSite/skins/custom/help.css: Removed.
        * BugsSite/skins/custom/index.css: Removed.
        * BugsSite/skins/custom/opendarwin.gif: Removed.
        * BugsSite/skins/custom/panel.css: Removed.
        * BugsSite/skins/custom/params.css: Removed.
        * BugsSite/skins/custom/release-notes.css: Removed.
        * BugsSite/skins/custom/show_bug.css: Removed.
        * BugsSite/skins/custom/show_multiple.css: Removed.
        * BugsSite/skins/custom/summarize-time.css: Removed.
        * BugsSite/skins/custom/voting.css: Removed.
        * BugsSite/skins/custom/yui: Removed.
        * BugsSite/skins/custom/yui/calendar.css: Removed.
        * BugsSite/skins/standard: Removed.
        * BugsSite/skins/standard/IE-fixes.css: Removed.
        * BugsSite/skins/standard/admin.css: Removed.
        * BugsSite/skins/standard/buglist.css: Removed.
        * BugsSite/skins/standard/create_attachment.css: Removed.
        * BugsSite/skins/standard/dependency-tree: Removed.
        * BugsSite/skins/standard/dependency-tree.css: Removed.
        * BugsSite/skins/standard/dependency-tree/bug-item.png: Removed.
        * BugsSite/skins/standard/dependency-tree/tree-closed.png: Removed.
        * BugsSite/skins/standard/dependency-tree/tree-open.png: Removed.
        * BugsSite/skins/standard/dependency-tree/tree.png: Removed.
        * BugsSite/skins/standard/duplicates.css: Removed.
        * BugsSite/skins/standard/editusers.css: Removed.
        * BugsSite/skins/standard/global: Removed.
        * BugsSite/skins/standard/global.css: Removed.
        * BugsSite/skins/standard/global/body-back.gif: Removed.
        * BugsSite/skins/standard/global/calendar.png: Removed.
        * BugsSite/skins/standard/global/header.png: Removed.
        * BugsSite/skins/standard/help.css: Removed.
        * BugsSite/skins/standard/index: Removed.
        * BugsSite/skins/standard/index.css: Removed.
        * BugsSite/skins/standard/index/front.png: Removed.
        * BugsSite/skins/standard/panel.css: Removed.
        * BugsSite/skins/standard/params.css: Removed.
        * BugsSite/skins/standard/release-notes.css: Removed.
        * BugsSite/skins/standard/show_bug.css: Removed.
        * BugsSite/skins/standard/show_multiple.css: Removed.
        * BugsSite/skins/standard/summarize-time.css: Removed.
        * BugsSite/skins/standard/voting.css: Removed.
        * BugsSite/skins/standard/yui: Removed.
        * BugsSite/skins/standard/yui/calendar.css: Removed.
        * BugsSite/skins/standard/yui/sprite.png: Removed.
        * BugsSite/summarize_time.cgi: Removed.
        * BugsSite/t: Removed.
        * BugsSite/t/001compile.t: Removed.
        * BugsSite/t/002goodperl.t: Removed.
        * BugsSite/t/003safesys.t: Removed.
        * BugsSite/t/004template.t: Removed.
        * BugsSite/t/005no_tabs.t: Removed.
        * BugsSite/t/006spellcheck.t: Removed.
        * BugsSite/t/007util.t: Removed.
        * BugsSite/t/008filter.t: Removed.
        * BugsSite/t/009bugwords.t: Removed.
        * BugsSite/t/010dependencies.t: Removed.
        * BugsSite/t/011pod.t: Removed.
        * BugsSite/t/012throwables.t: Removed.
        * BugsSite/t/Support: Removed.
        * BugsSite/t/Support/Files.pm: Removed.
        * BugsSite/t/Support/Systemexec.pm: Removed.
        * BugsSite/t/Support/Templates.pm: Removed.
        * BugsSite/template: Removed.
        * BugsSite/template/.cvsignore: Removed.
        * BugsSite/template/.htaccess: Removed.
        * BugsSite/template/en: Removed.
        * BugsSite/template/en/.cvsignore: Removed.
        * BugsSite/template/en/custom: Removed.
        * BugsSite/template/en/custom/account: Removed.
        * BugsSite/template/en/custom/account/auth: Removed.
        * BugsSite/template/en/custom/account/email: Removed.
        * BugsSite/template/en/custom/account/password: Removed.
        * BugsSite/template/en/custom/account/prefs: Removed.
        * BugsSite/template/en/custom/admin: Removed.
        * BugsSite/template/en/custom/admin/classifications: Removed.
        * BugsSite/template/en/custom/admin/components: Removed.
        * BugsSite/template/en/custom/admin/fieldvalues: Removed.
        * BugsSite/template/en/custom/admin/flag-type: Removed.
        * BugsSite/template/en/custom/admin/groups: Removed.
        * BugsSite/template/en/custom/admin/keywords: Removed.
        * BugsSite/template/en/custom/admin/milestones: Removed.
        * BugsSite/template/en/custom/admin/products: Removed.
        * BugsSite/template/en/custom/admin/products/groupcontrol: Removed.
        * BugsSite/template/en/custom/admin/settings: Removed.
        * BugsSite/template/en/custom/admin/users: Removed.
        * BugsSite/template/en/custom/admin/versions: Removed.
        * BugsSite/template/en/custom/attachment: Removed.
        * BugsSite/template/en/custom/attachment/content-types.html.tmpl: Removed.
        * BugsSite/template/en/custom/attachment/create.html.tmpl: Removed.
        * BugsSite/template/en/custom/attachment/created.html.tmpl: Removed.
        * BugsSite/template/en/custom/attachment/edit.html.tmpl: Removed.
        * BugsSite/template/en/custom/attachment/list.html.tmpl: Removed.
        * BugsSite/template/en/custom/attachment/review.html.tmpl: Removed.
        * BugsSite/template/en/custom/attachment/reviewform.html.tmpl: Removed.
        * BugsSite/template/en/custom/attachment/rietveldreview.html.tmpl: Removed.
        * BugsSite/template/en/custom/bug: Removed.
        * BugsSite/template/en/custom/bug/activity: Removed.
        * BugsSite/template/en/custom/bug/create: Removed.
        * BugsSite/template/en/custom/bug/edit.html.tmpl: Removed.
        * BugsSite/template/en/custom/bug/navigate.html.tmpl: Removed.
        * BugsSite/template/en/custom/bug/process: Removed.
        * BugsSite/template/en/custom/bug/votes: Removed.
        * BugsSite/template/en/custom/flag: Removed.
        * BugsSite/template/en/custom/flag/list.html.tmpl: Removed.
        * BugsSite/template/en/custom/global: Removed.
        * BugsSite/template/en/custom/global/choose-product.html.tmpl: Removed.
        * BugsSite/template/en/custom/global/header.html.tmpl: Removed.
        * BugsSite/template/en/custom/list: Removed.
        * BugsSite/template/en/custom/list/list.html.tmpl: Removed.
        * BugsSite/template/en/custom/pages: Removed.
        * BugsSite/template/en/custom/reports: Removed.
        * BugsSite/template/en/custom/request: Removed.
        * BugsSite/template/en/custom/request/email.txt.tmpl: Removed.
        * BugsSite/template/en/custom/request/queue.html.tmpl: Removed.
        * BugsSite/template/en/custom/search: Removed.
        * BugsSite/template/en/custom/whine: Removed.
        * BugsSite/template/en/default: Removed.
        * BugsSite/template/en/default/account: Removed.
        * BugsSite/template/en/default/account/auth: Removed.
        * BugsSite/template/en/default/account/auth/login-small.html.tmpl: Removed.
        * BugsSite/template/en/default/account/auth/login.html.tmpl: Removed.
        * BugsSite/template/en/default/account/cancel-token.txt.tmpl: Removed.
        * BugsSite/template/en/default/account/create.html.tmpl: Removed.
        * BugsSite/template/en/default/account/created.html.tmpl: Removed.
        * BugsSite/template/en/default/account/email: Removed.
        * BugsSite/template/en/default/account/email/change-new.txt.tmpl: Removed.
        * BugsSite/template/en/default/account/email/change-old.txt.tmpl: Removed.
        * BugsSite/template/en/default/account/email/confirm-new.html.tmpl: Removed.
        * BugsSite/template/en/default/account/email/confirm.html.tmpl: Removed.
        * BugsSite/template/en/default/account/email/request-new.txt.tmpl: Removed.
        * BugsSite/template/en/default/account/password: Removed.
        * BugsSite/template/en/default/account/password/forgotten-password.txt.tmpl: Removed.
        * BugsSite/template/en/default/account/password/set-forgotten-password.html.tmpl: Removed.
        * BugsSite/template/en/default/account/prefs: Removed.
        * BugsSite/template/en/default/account/prefs/account.html.tmpl: Removed.
        * BugsSite/template/en/default/account/prefs/email.html.tmpl: Removed.
        * BugsSite/template/en/default/account/prefs/permissions.html.tmpl: Removed.
        * BugsSite/template/en/default/account/prefs/prefs.html.tmpl: Removed.
        * BugsSite/template/en/default/account/prefs/saved-searches.html.tmpl: Removed.
        * BugsSite/template/en/default/account/prefs/settings.html.tmpl: Removed.
        * BugsSite/template/en/default/account/profile-activity.html.tmpl: Removed.
        * BugsSite/template/en/default/admin: Removed.
        * BugsSite/template/en/default/admin/admin.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/classifications: Removed.
        * BugsSite/template/en/default/admin/classifications/add.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/classifications/del.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/classifications/edit.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/classifications/reclassify.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/classifications/select.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/components: Removed.
        * BugsSite/template/en/default/admin/components/confirm-delete.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/components/create.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/components/edit.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/components/footer.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/components/list.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/components/select-product.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/confirm-action.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/custom_fields: Removed.
        * BugsSite/template/en/default/admin/custom_fields/confirm-delete.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/custom_fields/create.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/custom_fields/edit.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/custom_fields/list.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/fieldvalues: Removed.
        * BugsSite/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/fieldvalues/create.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/fieldvalues/edit.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/fieldvalues/footer.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/fieldvalues/list.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/fieldvalues/select-field.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/flag-type: Removed.
        * BugsSite/template/en/default/admin/flag-type/confirm-delete.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/flag-type/edit.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/flag-type/list.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/groups: Removed.
        * BugsSite/template/en/default/admin/groups/confirm-remove.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/groups/create.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/groups/delete.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/groups/edit.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/groups/list.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/keywords: Removed.
        * BugsSite/template/en/default/admin/keywords/confirm-delete.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/keywords/create.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/keywords/edit.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/keywords/list.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/milestones: Removed.
        * BugsSite/template/en/default/admin/milestones/confirm-delete.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/milestones/create.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/milestones/edit.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/milestones/footer.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/milestones/list.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/milestones/select-product.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params: Removed.
        * BugsSite/template/en/default/admin/params/admin.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params/attachment.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params/auth.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params/bugchange.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params/bugfields.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params/bugmove.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params/common.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params/core.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params/dependencygraph.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params/editparams.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params/groupsecurity.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params/index.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params/ldap.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params/mta.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params/patchviewer.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params/query.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params/radius.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params/shadowdb.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/params/usermatch.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/products: Removed.
        * BugsSite/template/en/default/admin/products/confirm-delete.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/products/create.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/products/edit-common.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/products/edit.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/products/footer.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/products/groupcontrol: Removed.
        * BugsSite/template/en/default/admin/products/groupcontrol/confirm-edit.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/products/groupcontrol/edit.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/products/groupcontrol/updated.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/products/list-classifications.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/products/list.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/products/updated.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/sanitycheck: Removed.
        * BugsSite/template/en/default/admin/sanitycheck/list.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/sanitycheck/messages.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/settings: Removed.
        * BugsSite/template/en/default/admin/settings/edit.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/sudo.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/table.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/users: Removed.
        * BugsSite/template/en/default/admin/users/confirm-delete.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/users/create.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/users/edit.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/users/list.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/users/listselectvars.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/users/responsibilities.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/users/search.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/users/userdata.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/versions: Removed.
        * BugsSite/template/en/default/admin/versions/confirm-delete.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/versions/create.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/versions/edit.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/versions/footer.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/versions/list.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/versions/select-product.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/workflow: Removed.
        * BugsSite/template/en/default/admin/workflow/comment.html.tmpl: Removed.
        * BugsSite/template/en/default/admin/workflow/edit.html.tmpl: Removed.
        * BugsSite/template/en/default/attachment: Removed.
        * BugsSite/template/en/default/attachment/cancel-create-dupe.html.tmpl: Removed.
        * BugsSite/template/en/default/attachment/choose.html.tmpl: Removed.
        * BugsSite/template/en/default/attachment/confirm-delete.html.tmpl: Removed.
        * BugsSite/template/en/default/attachment/content-types.html.tmpl: Removed.
        * BugsSite/template/en/default/attachment/create.html.tmpl: Removed.
        * BugsSite/template/en/default/attachment/created.html.tmpl: Removed.
        * BugsSite/template/en/default/attachment/createformcontents.html.tmpl: Removed.
        * BugsSite/template/en/default/attachment/delete_reason.txt.tmpl: Removed.
        * BugsSite/template/en/default/attachment/diff-file.html.tmpl: Removed.
        * BugsSite/template/en/default/attachment/diff-footer.html.tmpl: Removed.
        * BugsSite/template/en/default/attachment/diff-header.html.tmpl: Removed.
        * BugsSite/template/en/default/attachment/edit.html.tmpl: Removed.
        * BugsSite/template/en/default/attachment/list.html.tmpl: Removed.
        * BugsSite/template/en/default/attachment/midair.html.tmpl: Removed.
        * BugsSite/template/en/default/attachment/show-multiple.html.tmpl: Removed.
        * BugsSite/template/en/default/attachment/updated.html.tmpl: Removed.
        * BugsSite/template/en/default/bug: Removed.
        * BugsSite/template/en/default/bug/activity: Removed.
        * BugsSite/template/en/default/bug/activity/show.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/activity/table.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/choose.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/comments.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/create: Removed.
        * BugsSite/template/en/default/bug/create/comment-guided.txt.tmpl: Removed.
        * BugsSite/template/en/default/bug/create/comment.txt.tmpl: Removed.
        * BugsSite/template/en/default/bug/create/confirm-create-dupe.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/create/create-guided.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/create/create.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/create/created.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/create/make-template.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/create/user-message.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/dependency-graph.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/dependency-tree.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/edit.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/field.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/knob.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/navigate.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/process: Removed.
        * BugsSite/template/en/default/bug/process/bugmail.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/process/confirm-duplicate.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/process/header.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/process/midair.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/process/results.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/process/verify-new-product.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/show-multiple.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/show.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/show.xml.tmpl: Removed.
        * BugsSite/template/en/default/bug/summarize-time.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/time.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/votes: Removed.
        * BugsSite/template/en/default/bug/votes/delete-all.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/votes/list-for-bug.html.tmpl: Removed.
        * BugsSite/template/en/default/bug/votes/list-for-user.html.tmpl: Removed.
        * BugsSite/template/en/default/config.js.tmpl: Removed.
        * BugsSite/template/en/default/config.rdf.tmpl: Removed.
        * BugsSite/template/en/default/email: Removed.
        * BugsSite/template/en/default/email/newchangedmail.txt.tmpl: Removed.
        * BugsSite/template/en/default/email/sanitycheck.txt.tmpl: Removed.
        * BugsSite/template/en/default/email/sudo.txt.tmpl: Removed.
        * BugsSite/template/en/default/email/votes-removed.txt.tmpl: Removed.
        * BugsSite/template/en/default/email/whine.txt.tmpl: Removed.
        * BugsSite/template/en/default/filterexceptions.pl: Removed.
        * BugsSite/template/en/default/flag: Removed.
        * BugsSite/template/en/default/flag/list.html.tmpl: Removed.
        * BugsSite/template/en/default/global: Removed.
        * BugsSite/template/en/default/global/banner.html.tmpl: Removed.
        * BugsSite/template/en/default/global/choose-classification.html.tmpl: Removed.
        * BugsSite/template/en/default/global/choose-product.html.tmpl: Removed.
        * BugsSite/template/en/default/global/code-error.html.tmpl: Removed.
        * BugsSite/template/en/default/global/common-links.html.tmpl: Removed.
        * BugsSite/template/en/default/global/confirm-action.html.tmpl: Removed.
        * BugsSite/template/en/default/global/confirm-user-match.html.tmpl: Removed.
        * BugsSite/template/en/default/global/docslinks.html.tmpl: Removed.
        * BugsSite/template/en/default/global/field-descs.none.tmpl: Removed.
        * BugsSite/template/en/default/global/footer.html.tmpl: Removed.
        * BugsSite/template/en/default/global/header.html.tmpl: Removed.
        * BugsSite/template/en/default/global/help.html.tmpl: Removed.
        * BugsSite/template/en/default/global/hidden-fields.html.tmpl: Removed.
        * BugsSite/template/en/default/global/initialize.none.tmpl: Removed.
        * BugsSite/template/en/default/global/js-products.html.tmpl: Removed.
        * BugsSite/template/en/default/global/message.html.tmpl: Removed.
        * BugsSite/template/en/default/global/message.txt.tmpl: Removed.
        * BugsSite/template/en/default/global/messages.html.tmpl: Removed.
        * BugsSite/template/en/default/global/per-bug-queries.html.tmpl: Removed.
        * BugsSite/template/en/default/global/select-menu.html.tmpl: Removed.
        * BugsSite/template/en/default/global/setting-descs.none.tmpl: Removed.
        * BugsSite/template/en/default/global/site-navigation.html.tmpl: Removed.
        * BugsSite/template/en/default/global/tabs.html.tmpl: Removed.
        * BugsSite/template/en/default/global/textarea.html.tmpl: Removed.
        * BugsSite/template/en/default/global/useful-links.html.tmpl: Removed.
        * BugsSite/template/en/default/global/user-error.html.tmpl: Removed.
        * BugsSite/template/en/default/global/userselect.html.tmpl: Removed.
        * BugsSite/template/en/default/global/variables.none.tmpl: Removed.
        * BugsSite/template/en/default/index.html.tmpl: Removed.
        * BugsSite/template/en/default/list: Removed.
        * BugsSite/template/en/default/list/change-columns.html.tmpl: Removed.
        * BugsSite/template/en/default/list/edit-multiple.html.tmpl: Removed.
        * BugsSite/template/en/default/list/list-simple.html.tmpl: Removed.
        * BugsSite/template/en/default/list/list.atom.tmpl: Removed.
        * BugsSite/template/en/default/list/list.csv.tmpl: Removed.
        * BugsSite/template/en/default/list/list.html.tmpl: Removed.
        * BugsSite/template/en/default/list/list.ics.tmpl: Removed.
        * BugsSite/template/en/default/list/list.js.tmpl: Removed.
        * BugsSite/template/en/default/list/list.rdf.tmpl: Removed.
        * BugsSite/template/en/default/list/quips.html.tmpl: Removed.
        * BugsSite/template/en/default/list/server-push.html.tmpl: Removed.
        * BugsSite/template/en/default/list/table.html.tmpl: Removed.
        * BugsSite/template/en/default/pages: Removed.
        * BugsSite/template/en/default/pages/bug-writing.html.tmpl: Removed.
        * BugsSite/template/en/default/pages/fields.html.tmpl: Removed.
        * BugsSite/template/en/default/pages/linked.html.tmpl: Removed.
        * BugsSite/template/en/default/pages/linkify.html.tmpl: Removed.
        * BugsSite/template/en/default/pages/quicksearch.html.tmpl: Removed.
        * BugsSite/template/en/default/pages/quicksearchhack.html.tmpl: Removed.
        * BugsSite/template/en/default/pages/release-notes.html.tmpl: Removed.
        * BugsSite/template/en/default/pages/sudo.html.tmpl: Removed.
        * BugsSite/template/en/default/pages/voting.html.tmpl: Removed.
        * BugsSite/template/en/default/reports: Removed.
        * BugsSite/template/en/default/reports/chart.csv.tmpl: Removed.
        * BugsSite/template/en/default/reports/chart.html.tmpl: Removed.
        * BugsSite/template/en/default/reports/chart.png.tmpl: Removed.
        * BugsSite/template/en/default/reports/components.html.tmpl: Removed.
        * BugsSite/template/en/default/reports/create-chart.html.tmpl: Removed.
        * BugsSite/template/en/default/reports/duplicates-simple.html.tmpl: Removed.
        * BugsSite/template/en/default/reports/duplicates-table.html.tmpl: Removed.
        * BugsSite/template/en/default/reports/duplicates.html.tmpl: Removed.
        * BugsSite/template/en/default/reports/edit-series.html.tmpl: Removed.
        * BugsSite/template/en/default/reports/keywords.html.tmpl: Removed.
        * BugsSite/template/en/default/reports/menu.html.tmpl: Removed.
        * BugsSite/template/en/default/reports/old-charts.html.tmpl: Removed.
        * BugsSite/template/en/default/reports/report-bar.png.tmpl: Removed.
        * BugsSite/template/en/default/reports/report-line.png.tmpl: Removed.
        * BugsSite/template/en/default/reports/report-pie.png.tmpl: Removed.
        * BugsSite/template/en/default/reports/report-simple.html.tmpl: Removed.
        * BugsSite/template/en/default/reports/report-table.csv.tmpl: Removed.
        * BugsSite/template/en/default/reports/report-table.html.tmpl: Removed.
        * BugsSite/template/en/default/reports/report.csv.tmpl: Removed.
        * BugsSite/template/en/default/reports/report.html.tmpl: Removed.
        * BugsSite/template/en/default/reports/series-common.html.tmpl: Removed.
        * BugsSite/template/en/default/reports/series.html.tmpl: Removed.
        * BugsSite/template/en/default/request: Removed.
        * BugsSite/template/en/default/request/email.txt.tmpl: Removed.
        * BugsSite/template/en/default/request/queue.html.tmpl: Removed.
        * BugsSite/template/en/default/search: Removed.
        * BugsSite/template/en/default/search/boolean-charts.html.tmpl: Removed.
        * BugsSite/template/en/default/search/form.html.tmpl: Removed.
        * BugsSite/template/en/default/search/knob.html.tmpl: Removed.
        * BugsSite/template/en/default/search/search-advanced.html.tmpl: Removed.
        * BugsSite/template/en/default/search/search-create-series.html.tmpl: Removed.
        * BugsSite/template/en/default/search/search-help.html.tmpl: Removed.
        * BugsSite/template/en/default/search/search-plugin.xml.tmpl: Removed.
        * BugsSite/template/en/default/search/search-report-graph.html.tmpl: Removed.
        * BugsSite/template/en/default/search/search-report-select.html.tmpl: Removed.
        * BugsSite/template/en/default/search/search-report-table.html.tmpl: Removed.
        * BugsSite/template/en/default/search/search-specific.html.tmpl: Removed.
        * BugsSite/template/en/default/search/tabs.html.tmpl: Removed.
        * BugsSite/template/en/default/setup: Removed.
        * BugsSite/template/en/default/setup/strings.txt.pl: Removed.
        * BugsSite/template/en/default/sidebar.xul.tmpl: Removed.
        * BugsSite/template/en/default/welcome-admin.html.tmpl: Removed.
        * BugsSite/template/en/default/whine: Removed.
        * BugsSite/template/en/default/whine/mail.html.tmpl: Removed.
        * BugsSite/template/en/default/whine/mail.txt.tmpl: Removed.
        * BugsSite/template/en/default/whine/multipart-mime.txt.tmpl: Removed.
        * BugsSite/template/en/default/whine/schedule.html.tmpl: Removed.
        * BugsSite/template/en/extension: Removed.
        * BugsSite/template/en/extension/filterexceptions.pl: Removed.
        * BugsSite/testagent.cgi: Removed.
        * BugsSite/testserver.pl: Removed.
        * BugsSite/token.cgi: Removed.
        * BugsSite/userprefs.cgi: Removed.
        * BugsSite/votes.cgi: Removed.
        * BugsSite/whine.pl: Removed.
        * BugsSite/whineatnews.pl: Removed.
        * BugsSite/xml.cgi: Removed.
        * BugsSite/xmlrpc.cgi: Removed.
        * PlanetWebKit: Removed.
        * PlanetWebKit/README: Removed.
        * PlanetWebKit/config.ini: Removed.
        * PlanetWebKit/planet: Removed.
        * PlanetWebKit/planet/AUTHORS: Removed.
        * PlanetWebKit/planet/INSTALL: Removed.
        * PlanetWebKit/planet/LICENCE: Removed.
        * PlanetWebKit/planet/NEWS: Removed.
        * PlanetWebKit/planet/PKG-INFO: Removed.
        * PlanetWebKit/planet/README: Removed.
        * PlanetWebKit/planet/THANKS: Removed.
        * PlanetWebKit/planet/TODO: Removed.
        * PlanetWebKit/planet/examples: Removed.
        * PlanetWebKit/planet/examples/atom.xml.tmpl: Removed.
        * PlanetWebKit/planet/examples/basic: Removed.
        * PlanetWebKit/planet/examples/basic/config.ini: Removed.
        * PlanetWebKit/planet/examples/basic/index.html.tmpl: Removed.
        * PlanetWebKit/planet/examples/fancy: Removed.
        * PlanetWebKit/planet/examples/fancy/config.ini: Removed.
        * PlanetWebKit/planet/examples/fancy/index.html.tmpl: Removed.
        * PlanetWebKit/planet/examples/foafroll.xml.tmpl: Removed.
        * PlanetWebKit/planet/examples/opml.xml.tmpl: Removed.
        * PlanetWebKit/planet/examples/output: Removed.
        * PlanetWebKit/planet/examples/output/images: Removed.
        * PlanetWebKit/planet/examples/output/images/edd.png: Removed.
        * PlanetWebKit/planet/examples/output/images/evolution.png: Removed.
        * PlanetWebKit/planet/examples/output/images/feed-icon-10x10.png: Removed.
        * PlanetWebKit/planet/examples/output/images/jdub.png: Removed.
        * PlanetWebKit/planet/examples/output/images/keybuk.png: Removed.
        * PlanetWebKit/planet/examples/output/images/logo.png: Removed.
        * PlanetWebKit/planet/examples/output/images/opml.png: Removed.
        * PlanetWebKit/planet/examples/output/images/planet.png: Removed.
        * PlanetWebKit/planet/examples/output/images/thom.png: Removed.
        * PlanetWebKit/planet/examples/output/planet.css: Removed.
        * PlanetWebKit/planet/examples/rss10.xml.tmpl: Removed.
        * PlanetWebKit/planet/examples/rss20.xml.tmpl: Removed.
        * PlanetWebKit/planet/planet: Removed.
        * PlanetWebKit/planet/planet-cache.py: Removed.
        * PlanetWebKit/planet/planet.py: Removed.
        * PlanetWebKit/planet/planet/__init__.py: Removed.
        * PlanetWebKit/planet/planet/atomstyler.py: Removed.
        * PlanetWebKit/planet/planet/cache.py: Removed.
        * PlanetWebKit/planet/planet/compat_logging: Removed.
        * PlanetWebKit/planet/planet/compat_logging/__init__.py: Removed.
        * PlanetWebKit/planet/planet/compat_logging/config.py: Removed.
        * PlanetWebKit/planet/planet/compat_logging/handlers.py: Removed.
        * PlanetWebKit/planet/planet/feedparser.py: Removed.
        * PlanetWebKit/planet/planet/htmltmpl.py: Removed.
        * PlanetWebKit/planet/planet/sanitize.py: Removed.
        * PlanetWebKit/planet/planet/tests: Removed.
        * PlanetWebKit/planet/planet/tests/__init__.py: Removed.
        * PlanetWebKit/planet/planet/tests/data: Removed.
        * PlanetWebKit/planet/planet/tests/data/simple.tmpl: Removed.
        * PlanetWebKit/planet/planet/tests/data/simple2.tmpl: Removed.
        * PlanetWebKit/planet/planet/tests/test_channel.py: Removed.
        * PlanetWebKit/planet/planet/tests/test_main.py: Removed.
        * PlanetWebKit/planet/planet/tests/test_sanitize.py: Removed.
        * PlanetWebKit/planet/planet/tests/test_sub.py: Removed.
        * PlanetWebKit/planet/planet/timeoutsocket.py: Removed.
        * PlanetWebKit/planet/runtests.py: Removed.
        * PlanetWebKit/planet/setup.py: Removed.
        * PlanetWebKit/templates: Removed.
        * PlanetWebKit/templates/atom.xml.tmpl: Removed.
        * PlanetWebKit/templates/foafroll.xml.tmpl: Removed.
        * PlanetWebKit/templates/index.html.tmpl: Removed.
        * PlanetWebKit/templates/opml.xml.tmpl: Removed.
        * PlanetWebKit/templates/rss10.xml.tmpl: Removed.
        * PlanetWebKit/templates/rss20.xml.tmpl: Removed.
        * PlanetWebKit/update.pl: Removed.
        * PlanetWebKit/wwwroot: Removed.
        * PlanetWebKit/wwwroot/ie.css: Removed.
        * PlanetWebKit/wwwroot/images: Removed.
        * PlanetWebKit/wwwroot/images/feed-icon-10x10.png: Removed.
        * PlanetWebKit/wwwroot/images/ie-nav-blue.png: Removed.
        * PlanetWebKit/wwwroot/images/planet-webkit.png: Removed.
        * PlanetWebKit/wwwroot/images/planet.png: Removed.
        * PlanetWebKit/wwwroot/planet.css: Removed.
        * PlanetWebKit/wwwroot/planetwebkit.css: Removed.
        * Sites: Added.
        * Sites/bugs.webkit.org: Copied from BugsSite.
        * Sites/planet.webkit.org: Copied from PlanetWebKit.
        * Sites/webkit.org: Copied from WebKitSite.
        * WebKitSite: Removed.
        * WebKitSite/.htaccess: Removed.
        * WebKitSite/asking_questions.html: Removed.
        * WebKitSite/blog: Removed.
        * WebKitSite/blog-files: Removed.
        * WebKitSite/blog-files/3d-transforms: Removed.
        * WebKitSite/blog-files/3d-transforms/image-flip.html: Removed.
        * WebKitSite/blog-files/3d-transforms/mighty-cubes.png: Removed.
        * WebKitSite/blog-files/3d-transforms/morphing-cubes.html: Removed.
        * WebKitSite/blog-files/3d-transforms/perspective-by-example.html: Removed.
        * WebKitSite/blog-files/3d-transforms/poster-circle.html: Removed.
        * WebKitSite/blog-files/3d-transforms/poster-circle.png: Removed.
        * WebKitSite/blog-files/3d-transforms/transform-style.html: Removed.
        * WebKitSite/blog-files/InspectElementMenu.png: Removed.
        * WebKitSite/blog-files/InspectorCSSEditing.png: Removed.
        * WebKitSite/blog-files/InspectorDatabaseBrowser.png: Removed.
        * WebKitSite/blog-files/InspectorFonts.png: Removed.
        * WebKitSite/blog-files/acid3-100.png: Removed.
        * WebKitSite/blog-files/acid3-full-rendering-pass.png: Removed.
        * WebKitSite/blog-files/acid3-rendering-reference.png: Removed.
        * WebKitSite/blog-files/acid3-screenshot.png: Removed.
        * WebKitSite/blog-files/acid3-timing-screenshot.png: Removed.
        * WebKitSite/blog-files/acid3-timing.png: Removed.
        * WebKitSite/blog-files/animation-demo.svg: Removed.
        * WebKitSite/blog-files/bounce.html: Removed.
        * WebKitSite/blog-files/bounce.png: Removed.
        * WebKitSite/blog-files/circle.svg: Removed.
        * WebKitSite/blog-files/cubes-7.svg: Removed.
        * WebKitSite/blog-files/gebcnspeedtest.html: Removed.
        * WebKitSite/blog-files/gebcnwebkitonly.png: Removed.
        * WebKitSite/blog-files/inspector: Removed.
        * WebKitSite/blog-files/inspector-closure-scope.png: Removed.
        * WebKitSite/blog-files/inspector-console-autocomplete.png: Removed.
        * WebKitSite/blog-files/inspector-databases-panel-query-view.png: Removed.
        * WebKitSite/blog-files/inspector-databases-panel.png: Removed.
        * WebKitSite/blog-files/inspector-disabling-properties.png: Removed.
        * WebKitSite/blog-files/inspector-elements-panel.png: Removed.
        * WebKitSite/blog-files/inspector-event-scope.png: Removed.
        * WebKitSite/blog-files/inspector-numeric-style-stepping.gif: Removed.
        * WebKitSite/blog-files/inspector-profiles-panel.png: Removed.
        * WebKitSite/blog-files/inspector-resources-panel.png: Removed.
        * WebKitSite/blog-files/inspector-scripts-panel.png: Removed.
        * WebKitSite/blog-files/inspector-searching-elements.png: Removed.
        * WebKitSite/blog-files/inspector-searching-profiles.png: Removed.
        * WebKitSite/blog-files/inspector-status-bar-with-errors.png: Removed.
        * WebKitSite/blog-files/inspector-toolbar.png: Removed.
        * WebKitSite/blog-files/inspector-with-scope.png: Removed.
        * WebKitSite/blog-files/inspector/audits_launcher.png: Removed.
        * WebKitSite/blog-files/inspector/audits_panel.png: Removed.
        * WebKitSite/blog-files/inspector/breakpoints.png: Removed.
        * WebKitSite/blog-files/inspector/colors.png: Removed.
        * WebKitSite/blog-files/inspector/console_panel.png: Removed.
        * WebKitSite/blog-files/inspector/context_menu.png: Removed.
        * WebKitSite/blog-files/inspector/cookies.png: Removed.
        * WebKitSite/blog-files/inspector/css_highlighted_line.png: Removed.
        * WebKitSite/blog-files/inspector/css_line_number_snippet.png: Removed.
        * WebKitSite/blog-files/inspector/css_line_numbers.png: Removed.
        * WebKitSite/blog-files/inspector/css_selectors.png: Removed.
        * WebKitSite/blog-files/inspector/css_syntax_highlight.png: Removed.
        * WebKitSite/blog-files/inspector/deactivate_breakpoints.png: Removed.
        * WebKitSite/blog-files/inspector/dom_storage.png: Removed.
        * WebKitSite/blog-files/inspector/edit_attributes.png: Removed.
        * WebKitSite/blog-files/inspector/enable.png: Removed.
        * WebKitSite/blog-files/inspector/evaluate_on_hover.png: Removed.
        * WebKitSite/blog-files/inspector/evaluate_on_hover_2.png: Removed.
        * WebKitSite/blog-files/inspector/event_listeners.png: Removed.
        * WebKitSite/blog-files/inspector/form_data.png: Removed.
        * WebKitSite/blog-files/inspector/inherited_styles.png: Removed.
        * WebKitSite/blog-files/inspector/inline_highlight.png: Removed.
        * WebKitSite/blog-files/inspector/inorder.png: Removed.
        * WebKitSite/blog-files/inspector/inspect_inspector.png: Removed.
        * WebKitSite/blog-files/inspector/inspect_inspector_small.png: Removed.
        * WebKitSite/blog-files/inspector/large_dom.png: Removed.
        * WebKitSite/blog-files/inspector/large_resources.png: Removed.
        * WebKitSite/blog-files/inspector/load_lines.png: Removed.
        * WebKitSite/blog-files/inspector/nodelist.png: Removed.
        * WebKitSite/blog-files/inspector/pseudo_elements.png: Removed.
        * WebKitSite/blog-files/inspector/redirect_headers.png: Removed.
        * WebKitSite/blog-files/inspector/redirect_headers_full.png: Removed.
        * WebKitSite/blog-files/inspector/redirects.png: Removed.
        * WebKitSite/blog-files/inspector/redirects_full.png: Removed.
        * WebKitSite/blog-files/inspector/scope_bar.png: Removed.
        * WebKitSite/blog-files/inspector/timeline_overview.png: Removed.
        * WebKitSite/blog-files/inspector/timeline_panel.png: Removed.
        * WebKitSite/blog-files/inspector/timeline_record_details.png: Removed.
        * WebKitSite/blog-files/inspector/watched_expression.png: Removed.
        * WebKitSite/blog-files/kate-circle.png: Removed.
        * WebKitSite/blog-files/kate-gradient-rounded.png: Removed.
        * WebKitSite/blog-files/kate-gradient.png: Removed.
        * WebKitSite/blog-files/kate-reflected.png: Removed.
        * WebKitSite/blog-files/kate-vignette-mask.png: Removed.
        * WebKitSite/blog-files/kate.png: Removed.
        * WebKitSite/blog-files/leaves: Removed.
        * WebKitSite/blog-files/leaves-screenshot-small.jpg: Removed.
        * WebKitSite/blog-files/leaves-screenshot.jpg: Removed.
        * WebKitSite/blog-files/leaves/images: Removed.
        * WebKitSite/blog-files/leaves/images/apple-touch-icon.png: Removed.
        * WebKitSite/blog-files/leaves/images/backgroundLeaves.jpg: Removed.
        * WebKitSite/blog-files/leaves/images/realLeaf1.png: Removed.
        * WebKitSite/blog-files/leaves/images/realLeaf2.png: Removed.
        * WebKitSite/blog-files/leaves/images/realLeaf3.png: Removed.
        * WebKitSite/blog-files/leaves/images/realLeaf4.png: Removed.
        * WebKitSite/blog-files/leaves/images/textBackground.png: Removed.
        * WebKitSite/blog-files/leaves/index.html: Removed.
        * WebKitSite/blog-files/leaves/leaves.css: Removed.
        * WebKitSite/blog-files/leaves/leaves.js: Removed.
        * WebKitSite/blog-files/load-unload-example.html: Removed.
        * WebKitSite/blog-files/loader-diagram.svg: Removed.
        * WebKitSite/blog-files/maskspeedracer.png: Removed.
        * WebKitSite/blog-files/number-morph.svg: Removed.
        * WebKitSite/blog-files/pageshow-pagehide-example.html: Removed.
        * WebKitSite/blog-files/prototype-for-gebcn-test.js: Removed.
        * WebKitSite/blog-files/pulse.html: Removed.
        * WebKitSite/blog-files/pulse.png: Removed.
        * WebKitSite/blog-files/riemann-screenshot.png: Removed.
        * WebKitSite/blog-files/scrollbarpicture.png: Removed.
        * WebKitSite/blog-files/sfx-perf.png: Removed.
        * WebKitSite/blog-files/squirrelfish-link-animated.svg: Removed.
        * WebKitSite/blog-files/squirrelfish-webkit-graph.png: Removed.
        * WebKitSite/blog-files/squirrelfish.png: Removed.
        * WebKitSite/blog-files/timeline-blocking-script.png: Removed.
        * WebKitSite/blog-files/timeline-defer-script.png: Removed.
        * WebKitSite/blog-files/touch-poster.png: Removed.
        * WebKitSite/blog-files/vignette-mask.png: Removed.
        * WebKitSite/blog-files/webgl: Removed.
        * WebKitSite/blog-files/webgl/Earth.html: Removed.
        * WebKitSite/blog-files/webgl/ManyPlanetsDeep.html: Removed.
        * WebKitSite/blog-files/webgl/SpinningBox.html: Removed.
        * WebKitSite/blog-files/webgl/SpiritBox.html: Removed.
        * WebKitSite/blog-files/webgl/TeapotPerPixel.html: Removed.
        * WebKitSite/blog-files/webgl/TeapotPerVertex.html: Removed.
        * WebKitSite/blog-files/webgl/WebGL+CSS.html: Removed.
        * WebKitSite/blog-files/webgl/resources: Removed.
        * WebKitSite/blog-files/webgl/resources/BambooBridge.jpg: Removed.
        * WebKitSite/blog-files/webgl/resources/EarthThumb.jpg: Removed.
        * WebKitSite/blog-files/webgl/resources/J3DI.js: Removed.
        * WebKitSite/blog-files/webgl/resources/J3DIMath.js: Removed.
        * WebKitSite/blog-files/webgl/resources/ManyPlanetsDeepThumb.jpg: Removed.
        * WebKitSite/blog-files/webgl/resources/SpinningBoxThumb.jpg: Removed.
        * WebKitSite/blog-files/webgl/resources/SpiritBox.jpg: Removed.
        * WebKitSite/blog-files/webgl/resources/TeapotPerPixelThumb.jpg: Removed.
        * WebKitSite/blog-files/webgl/resources/TeapotPerVertexThumb.jpg: Removed.
        * WebKitSite/blog-files/webgl/resources/WebGL+CSSThumb.jpg: Removed.
        * WebKitSite/blog-files/webgl/resources/blogpost.css: Removed.
        * WebKitSite/blog-files/webgl/resources/earthmap1k.jpg: Removed.
        * WebKitSite/blog-files/webgl/resources/mars500x250.png: Removed.
        * WebKitSite/blog-files/webgl/resources/spirit.jpg: Removed.
        * WebKitSite/blog-files/webgl/resources/teapot.obj: Removed.
        * WebKitSite/blog-files/wsj-nopreload.png: Removed.
        * WebKitSite/blog-files/wsj-preload.png: Removed.
        * WebKitSite/blog-files/wsj-vs.png: Removed.
        * WebKitSite/blog/.htaccess: Removed.
        * WebKitSite/blog/index.php: Removed.
        * WebKitSite/blog/license.txt: Removed.
        * WebKitSite/blog/wp-admin: Removed.
        * WebKitSite/blog/wp-admin/admin-ajax.php: Removed.
        * WebKitSite/blog/wp-admin/admin-footer.php: Removed.
        * WebKitSite/blog/wp-admin/admin-functions.php: Removed.
        * WebKitSite/blog/wp-admin/admin-header.php: Removed.
        * WebKitSite/blog/wp-admin/admin-post.php: Removed.
        * WebKitSite/blog/wp-admin/admin.php: Removed.
        * WebKitSite/blog/wp-admin/async-upload.php: Removed.
        * WebKitSite/blog/wp-admin/categories.php: Removed.
        * WebKitSite/blog/wp-admin/comment.php: Removed.
        * WebKitSite/blog/wp-admin/css: Removed.
        * WebKitSite/blog/wp-admin/css/colors-classic-rtl.css: Removed.
        * WebKitSite/blog/wp-admin/css/colors-classic.css: Removed.
        * WebKitSite/blog/wp-admin/css/colors-fresh-rtl.css: Removed.
        * WebKitSite/blog/wp-admin/css/colors-fresh.css: Removed.
        * WebKitSite/blog/wp-admin/css/dashboard-rtl.css: Removed.
        * WebKitSite/blog/wp-admin/css/dashboard.css: Removed.
        * WebKitSite/blog/wp-admin/css/farbtastic-rtl.css: Removed.
        * WebKitSite/blog/wp-admin/css/farbtastic.css: Removed.
        * WebKitSite/blog/wp-admin/css/global-rtl.css: Removed.
        * WebKitSite/blog/wp-admin/css/global.css: Removed.
        * WebKitSite/blog/wp-admin/css/ie-rtl.css: Removed.
        * WebKitSite/blog/wp-admin/css/ie.css: Removed.
        * WebKitSite/blog/wp-admin/css/install-rtl.css: Removed.
        * WebKitSite/blog/wp-admin/css/install.css: Removed.
        * WebKitSite/blog/wp-admin/css/login-rtl.css: Removed.
        * WebKitSite/blog/wp-admin/css/login.css: Removed.
        * WebKitSite/blog/wp-admin/css/media-rtl.css: Removed.
        * WebKitSite/blog/wp-admin/css/media.css: Removed.
        * WebKitSite/blog/wp-admin/css/plugin-install-rtl.css: Removed.
        * WebKitSite/blog/wp-admin/css/plugin-install.css: Removed.
        * WebKitSite/blog/wp-admin/css/press-this-rtl.css: Removed.
        * WebKitSite/blog/wp-admin/css/press-this.css: Removed.
        * WebKitSite/blog/wp-admin/css/theme-editor-rtl.css: Removed.
        * WebKitSite/blog/wp-admin/css/theme-editor.css: Removed.
        * WebKitSite/blog/wp-admin/css/theme-install.css: Removed.
        * WebKitSite/blog/wp-admin/css/widgets-rtl.css: Removed.
        * WebKitSite/blog/wp-admin/css/widgets.css: Removed.
        * WebKitSite/blog/wp-admin/custom-header.php: Removed.
        * WebKitSite/blog/wp-admin/edit-attachment-rows.php: Removed.
        * WebKitSite/blog/wp-admin/edit-category-form.php: Removed.
        * WebKitSite/blog/wp-admin/edit-comments.php: Removed.
        * WebKitSite/blog/wp-admin/edit-form-advanced.php: Removed.
        * WebKitSite/blog/wp-admin/edit-form-comment.php: Removed.
        * WebKitSite/blog/wp-admin/edit-link-categories.php: Removed.
        * WebKitSite/blog/wp-admin/edit-link-category-form.php: Removed.
        * WebKitSite/blog/wp-admin/edit-link-form.php: Removed.
        * WebKitSite/blog/wp-admin/edit-page-form.php: Removed.
        * WebKitSite/blog/wp-admin/edit-pages.php: Removed.
        * WebKitSite/blog/wp-admin/edit-post-rows.php: Removed.
        * WebKitSite/blog/wp-admin/edit-tag-form.php: Removed.
        * WebKitSite/blog/wp-admin/edit-tags.php: Removed.
        * WebKitSite/blog/wp-admin/edit.php: Removed.
        * WebKitSite/blog/wp-admin/export.php: Removed.
        * WebKitSite/blog/wp-admin/gears-manifest.php: Removed.
        * WebKitSite/blog/wp-admin/images: Removed.
        * WebKitSite/blog/wp-admin/images/align-center.png: Removed.
        * WebKitSite/blog/wp-admin/images/align-left.png: Removed.
        * WebKitSite/blog/wp-admin/images/align-none.png: Removed.
        * WebKitSite/blog/wp-admin/images/align-right.png: Removed.
        * WebKitSite/blog/wp-admin/images/archive-link.png: Removed.
        * WebKitSite/blog/wp-admin/images/blue-grad.png: Removed.
        * WebKitSite/blog/wp-admin/images/browse-happy.gif: Removed.
        * WebKitSite/blog/wp-admin/images/bubble_bg-rtl.gif: Removed.
        * WebKitSite/blog/wp-admin/images/bubble_bg.gif: Removed.
        * WebKitSite/blog/wp-admin/images/button-grad-active-vs.png: Removed.
        * WebKitSite/blog/wp-admin/images/button-grad-active.png: Removed.
        * WebKitSite/blog/wp-admin/images/button-grad-vs.png: Removed.
        * WebKitSite/blog/wp-admin/images/button-grad.png: Removed.
        * WebKitSite/blog/wp-admin/images/comment-grey-bubble.png: Removed.
        * WebKitSite/blog/wp-admin/images/date-button.gif: Removed.
        * WebKitSite/blog/wp-admin/images/ed-bg-vs.gif: Removed.
        * WebKitSite/blog/wp-admin/images/ed-bg.gif: Removed.
        * WebKitSite/blog/wp-admin/images/fade-butt.png: Removed.
        * WebKitSite/blog/wp-admin/images/fav-arrow-rtl.gif: Removed.
        * WebKitSite/blog/wp-admin/images/fav-arrow-vs.gif: Removed.
        * WebKitSite/blog/wp-admin/images/fav-arrow.gif: Removed.
        * WebKitSite/blog/wp-admin/images/fav-top-vs.gif: Removed.
        * WebKitSite/blog/wp-admin/images/fav-top.png: Removed.
        * WebKitSite/blog/wp-admin/images/fav-vs.png: Removed.
        * WebKitSite/blog/wp-admin/images/fav.png: Removed.
        * WebKitSite/blog/wp-admin/images/generic.png: Removed.
        * WebKitSite/blog/wp-admin/images/gray-grad.png: Removed.
        * WebKitSite/blog/wp-admin/images/icons32-vs.png: Removed.
        * WebKitSite/blog/wp-admin/images/icons32.png: Removed.
        * WebKitSite/blog/wp-admin/images/list-vs.png: Removed.
        * WebKitSite/blog/wp-admin/images/list.png: Removed.
        * WebKitSite/blog/wp-admin/images/loading-publish.gif: Removed.
        * WebKitSite/blog/wp-admin/images/loading.gif: Removed.
        * WebKitSite/blog/wp-admin/images/logo-ghost.png: Removed.
        * WebKitSite/blog/wp-admin/images/logo-login.gif: Removed.
        * WebKitSite/blog/wp-admin/images/logo.gif: Removed.
        * WebKitSite/blog/wp-admin/images/marker.png: Removed.
        * WebKitSite/blog/wp-admin/images/mask.png: Removed.
        * WebKitSite/blog/wp-admin/images/media-button-image.gif: Removed.
        * WebKitSite/blog/wp-admin/images/media-button-music.gif: Removed.
        * WebKitSite/blog/wp-admin/images/media-button-other.gif: Removed.
        * WebKitSite/blog/wp-admin/images/media-button-video.gif: Removed.
        * WebKitSite/blog/wp-admin/images/menu-arrows.gif: Removed.
        * WebKitSite/blog/wp-admin/images/menu-bits-rtl-vs.gif: Removed.
        * WebKitSite/blog/wp-admin/images/menu-bits-rtl.gif: Removed.
        * WebKitSite/blog/wp-admin/images/menu-bits-vs.gif: Removed.
        * WebKitSite/blog/wp-admin/images/menu-bits.gif: Removed.
        * WebKitSite/blog/wp-admin/images/menu-dark-rtl.gif: Removed.
        * WebKitSite/blog/wp-admin/images/menu-dark.gif: Removed.
        * WebKitSite/blog/wp-admin/images/menu-vs.png: Removed.
        * WebKitSite/blog/wp-admin/images/menu.png: Removed.
        * WebKitSite/blog/wp-admin/images/no.png: Removed.
        * WebKitSite/blog/wp-admin/images/required.gif: Removed.
        * WebKitSite/blog/wp-admin/images/resize.gif: Removed.
        * WebKitSite/blog/wp-admin/images/screen-options-left.gif: Removed.
        * WebKitSite/blog/wp-admin/images/screen-options-right-up.gif: Removed.
        * WebKitSite/blog/wp-admin/images/screen-options-right.gif: Removed.
        * WebKitSite/blog/wp-admin/images/se.png: Removed.
        * WebKitSite/blog/wp-admin/images/star.gif: Removed.
        * WebKitSite/blog/wp-admin/images/toggle-arrow-rtl.gif: Removed.
        * WebKitSite/blog/wp-admin/images/toggle-arrow.gif: Removed.
        * WebKitSite/blog/wp-admin/images/visit-site-button-grad-vs.gif: Removed.
        * WebKitSite/blog/wp-admin/images/visit-site-button-grad.gif: Removed.
        * WebKitSite/blog/wp-admin/images/wheel.png: Removed.
        * WebKitSite/blog/wp-admin/images/white-grad-active.png: Removed.
        * WebKitSite/blog/wp-admin/images/white-grad.png: Removed.
        * WebKitSite/blog/wp-admin/images/wordpress-logo.png: Removed.
        * WebKitSite/blog/wp-admin/images/wp-logo-vs.gif: Removed.
        * WebKitSite/blog/wp-admin/images/wp-logo.gif: Removed.
        * WebKitSite/blog/wp-admin/images/wpspin_dark.gif: Removed.
        * WebKitSite/blog/wp-admin/images/wpspin_light.gif: Removed.
        * WebKitSite/blog/wp-admin/images/xit.gif: Removed.
        * WebKitSite/blog/wp-admin/images/yes.png: Removed.
        * WebKitSite/blog/wp-admin/import: Removed.
        * WebKitSite/blog/wp-admin/import.php: Removed.
        * WebKitSite/blog/wp-admin/import/blogger.php: Removed.
        * WebKitSite/blog/wp-admin/import/blogware.php: Removed.
        * WebKitSite/blog/wp-admin/import/dotclear.php: Removed.
        * WebKitSite/blog/wp-admin/import/greymatter.php: Removed.
        * WebKitSite/blog/wp-admin/import/livejournal.php: Removed.
        * WebKitSite/blog/wp-admin/import/mt.php: Removed.
        * WebKitSite/blog/wp-admin/import/opml.php: Removed.
        * WebKitSite/blog/wp-admin/import/rss.php: Removed.
        * WebKitSite/blog/wp-admin/import/stp.php: Removed.
        * WebKitSite/blog/wp-admin/import/textpattern.php: Removed.
        * WebKitSite/blog/wp-admin/import/utw.php: Removed.
        * WebKitSite/blog/wp-admin/import/wordpress.php: Removed.
        * WebKitSite/blog/wp-admin/import/wp-cat2tag.php: Removed.
        * WebKitSite/blog/wp-admin/includes: Removed.
        * WebKitSite/blog/wp-admin/includes/admin.php: Removed.
        * WebKitSite/blog/wp-admin/includes/bookmark.php: Removed.
        * WebKitSite/blog/wp-admin/includes/class-ftp-pure.php: Removed.
        * WebKitSite/blog/wp-admin/includes/class-ftp-sockets.php: Removed.
        * WebKitSite/blog/wp-admin/includes/class-ftp.php: Removed.
        * WebKitSite/blog/wp-admin/includes/class-pclzip.php: Removed.
        * WebKitSite/blog/wp-admin/includes/class-wp-filesystem-base.php: Removed.
        * WebKitSite/blog/wp-admin/includes/class-wp-filesystem-direct.php: Removed.
        * WebKitSite/blog/wp-admin/includes/class-wp-filesystem-ftpext.php: Removed.
        * WebKitSite/blog/wp-admin/includes/class-wp-filesystem-ftpsockets.php: Removed.
        * WebKitSite/blog/wp-admin/includes/class-wp-filesystem-ssh2.php: Removed.
        * WebKitSite/blog/wp-admin/includes/class-wp-upgrader.php: Removed.
        * WebKitSite/blog/wp-admin/includes/comment.php: Removed.
        * WebKitSite/blog/wp-admin/includes/continents-cities.php: Removed.
        * WebKitSite/blog/wp-admin/includes/dashboard.php: Removed.
        * WebKitSite/blog/wp-admin/includes/export.php: Removed.
        * WebKitSite/blog/wp-admin/includes/file.php: Removed.
        * WebKitSite/blog/wp-admin/includes/image.php: Removed.
        * WebKitSite/blog/wp-admin/includes/import.php: Removed.
        * WebKitSite/blog/wp-admin/includes/manifest.php: Removed.
        * WebKitSite/blog/wp-admin/includes/media.php: Removed.
        * WebKitSite/blog/wp-admin/includes/misc.php: Removed.
        * WebKitSite/blog/wp-admin/includes/plugin-install.php: Removed.
        * WebKitSite/blog/wp-admin/includes/plugin.php: Removed.
        * WebKitSite/blog/wp-admin/includes/post.php: Removed.
        * WebKitSite/blog/wp-admin/includes/schema.php: Removed.
        * WebKitSite/blog/wp-admin/includes/taxonomy.php: Removed.
        * WebKitSite/blog/wp-admin/includes/template.php: Removed.
        * WebKitSite/blog/wp-admin/includes/theme-install.php: Removed.
        * WebKitSite/blog/wp-admin/includes/theme.php: Removed.
        * WebKitSite/blog/wp-admin/includes/update-core.php: Removed.
        * WebKitSite/blog/wp-admin/includes/update.php: Removed.
        * WebKitSite/blog/wp-admin/includes/upgrade.php: Removed.
        * WebKitSite/blog/wp-admin/includes/user.php: Removed.
        * WebKitSite/blog/wp-admin/includes/widgets.php: Removed.
        * WebKitSite/blog/wp-admin/index-extra.php: Removed.
        * WebKitSite/blog/wp-admin/index.php: Removed.
        * WebKitSite/blog/wp-admin/install-helper.php: Removed.
        * WebKitSite/blog/wp-admin/install.php: Removed.
        * WebKitSite/blog/wp-admin/js: Removed.
        * WebKitSite/blog/wp-admin/js/cat.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/cat.js: Removed.
        * WebKitSite/blog/wp-admin/js/categories.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/categories.js: Removed.
        * WebKitSite/blog/wp-admin/js/comment.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/comment.js: Removed.
        * WebKitSite/blog/wp-admin/js/common.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/common.js: Removed.
        * WebKitSite/blog/wp-admin/js/custom-fields.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/custom-fields.js: Removed.
        * WebKitSite/blog/wp-admin/js/dashboard.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/dashboard.js: Removed.
        * WebKitSite/blog/wp-admin/js/edit-comments.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/edit-comments.js: Removed.
        * WebKitSite/blog/wp-admin/js/editor.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/editor.js: Removed.
        * WebKitSite/blog/wp-admin/js/farbtastic.js: Removed.
        * WebKitSite/blog/wp-admin/js/gallery.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/gallery.js: Removed.
        * WebKitSite/blog/wp-admin/js/inline-edit-post.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/inline-edit-post.js: Removed.
        * WebKitSite/blog/wp-admin/js/inline-edit-tax.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/inline-edit-tax.js: Removed.
        * WebKitSite/blog/wp-admin/js/link.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/link.js: Removed.
        * WebKitSite/blog/wp-admin/js/media-upload.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/media-upload.js: Removed.
        * WebKitSite/blog/wp-admin/js/media.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/media.js: Removed.
        * WebKitSite/blog/wp-admin/js/page.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/page.js: Removed.
        * WebKitSite/blog/wp-admin/js/password-strength-meter.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/password-strength-meter.js: Removed.
        * WebKitSite/blog/wp-admin/js/plugin-install.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/plugin-install.js: Removed.
        * WebKitSite/blog/wp-admin/js/post.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/post.js: Removed.
        * WebKitSite/blog/wp-admin/js/postbox.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/postbox.js: Removed.
        * WebKitSite/blog/wp-admin/js/revisions-js.php: Removed.
        * WebKitSite/blog/wp-admin/js/slug.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/slug.js: Removed.
        * WebKitSite/blog/wp-admin/js/tags.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/tags.js: Removed.
        * WebKitSite/blog/wp-admin/js/theme-preview.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/theme-preview.js: Removed.
        * WebKitSite/blog/wp-admin/js/user-profile.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/user-profile.js: Removed.
        * WebKitSite/blog/wp-admin/js/utils.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/utils.js: Removed.
        * WebKitSite/blog/wp-admin/js/widgets.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/widgets.js: Removed.
        * WebKitSite/blog/wp-admin/js/word-count.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/word-count.js: Removed.
        * WebKitSite/blog/wp-admin/js/wp-gears.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/wp-gears.js: Removed.
        * WebKitSite/blog/wp-admin/js/xfn.dev.js: Removed.
        * WebKitSite/blog/wp-admin/js/xfn.js: Removed.
        * WebKitSite/blog/wp-admin/link-add.php: Removed.
        * WebKitSite/blog/wp-admin/link-category.php: Removed.
        * WebKitSite/blog/wp-admin/link-manager.php: Removed.
        * WebKitSite/blog/wp-admin/link-parse-opml.php: Removed.
        * WebKitSite/blog/wp-admin/link.php: Removed.
        * WebKitSite/blog/wp-admin/load-scripts.php: Removed.
        * WebKitSite/blog/wp-admin/load-styles.php: Removed.
        * WebKitSite/blog/wp-admin/media-new.php: Removed.
        * WebKitSite/blog/wp-admin/media-upload.php: Removed.
        * WebKitSite/blog/wp-admin/media.php: Removed.
        * WebKitSite/blog/wp-admin/menu-header.php: Removed.
        * WebKitSite/blog/wp-admin/menu.php: Removed.
        * WebKitSite/blog/wp-admin/moderation.php: Removed.
        * WebKitSite/blog/wp-admin/options-discussion.php: Removed.
        * WebKitSite/blog/wp-admin/options-general.php: Removed.
        * WebKitSite/blog/wp-admin/options-head.php: Removed.
        * WebKitSite/blog/wp-admin/options-media.php: Removed.
        * WebKitSite/blog/wp-admin/options-misc.php: Removed.
        * WebKitSite/blog/wp-admin/options-permalink.php: Removed.
        * WebKitSite/blog/wp-admin/options-privacy.php: Removed.
        * WebKitSite/blog/wp-admin/options-reading.php: Removed.
        * WebKitSite/blog/wp-admin/options-writing.php: Removed.
        * WebKitSite/blog/wp-admin/options.php: Removed.
        * WebKitSite/blog/wp-admin/page-new.php: Removed.
        * WebKitSite/blog/wp-admin/page.php: Removed.
        * WebKitSite/blog/wp-admin/plugin-editor.php: Removed.
        * WebKitSite/blog/wp-admin/plugin-install.php: Removed.
        * WebKitSite/blog/wp-admin/plugins.php: Removed.
        * WebKitSite/blog/wp-admin/post-new.php: Removed.
        * WebKitSite/blog/wp-admin/post.php: Removed.
        * WebKitSite/blog/wp-admin/press-this.php: Removed.
        * WebKitSite/blog/wp-admin/profile.php: Removed.
        * WebKitSite/blog/wp-admin/revision.php: Removed.
        * WebKitSite/blog/wp-admin/rtl.css: Removed.
        * WebKitSite/blog/wp-admin/setup-config.php: Removed.
        * WebKitSite/blog/wp-admin/sidebar.php: Removed.
        * WebKitSite/blog/wp-admin/theme-editor.php: Removed.
        * WebKitSite/blog/wp-admin/theme-install.php: Removed.
        * WebKitSite/blog/wp-admin/themes.php: Removed.
        * WebKitSite/blog/wp-admin/tools.php: Removed.
        * WebKitSite/blog/wp-admin/update-core.php: Removed.
        * WebKitSite/blog/wp-admin/update-links.php: Removed.
        * WebKitSite/blog/wp-admin/update.php: Removed.
        * WebKitSite/blog/wp-admin/upgrade-functions.php: Removed.
        * WebKitSite/blog/wp-admin/upgrade.php: Removed.
        * WebKitSite/blog/wp-admin/upload.php: Removed.
        * WebKitSite/blog/wp-admin/user-edit.php: Removed.
        * WebKitSite/blog/wp-admin/user-new.php: Removed.
        * WebKitSite/blog/wp-admin/users.php: Removed.
        * WebKitSite/blog/wp-admin/widgets.php: Removed.
        * WebKitSite/blog/wp-admin/wp-admin.css: Removed.
        * WebKitSite/blog/wp-app.php: Removed.
        * WebKitSite/blog/wp-atom.php: Removed.
        * WebKitSite/blog/wp-blog-header.php: Removed.
        * WebKitSite/blog/wp-comments-post.php: Removed.
        * WebKitSite/blog/wp-commentsrss2.php: Removed.
        * WebKitSite/blog/wp-config-sample.php: Removed.
        * WebKitSite/blog/wp-config.php: Removed.
        * WebKitSite/blog/wp-content: Removed.
        * WebKitSite/blog/wp-content/Picture9.png: Removed.
        * WebKitSite/blog/wp-content/cache: Removed.
        * WebKitSite/blog/wp-content/chrome.jpg: Removed.
        * WebKitSite/blog/wp-content/chucknorris.png: Removed.
        * WebKitSite/blog/wp-content/databaseexample.png: Removed.
        * WebKitSite/blog/wp-content/drosera.png: Removed.
        * WebKitSite/blog/wp-content/hitlist.png: Removed.
        * WebKitSite/blog/wp-content/index.php: Removed.
        * WebKitSite/blog/wp-content/plugins: Removed.
        * WebKitSite/blog/wp-content/plugins/SK2: Removed.
        * WebKitSite/blog/wp-content/plugins/SK2/sk2_plugins: Removed.
        * WebKitSite/blog/wp-content/plugins/akismet: Removed.
        * WebKitSite/blog/wp-content/plugins/akismet/akismet.gif: Removed.
        * WebKitSite/blog/wp-content/plugins/akismet/akismet.php: Removed.
        * WebKitSite/blog/wp-content/plugins/akismet/readme.txt: Removed.
        * WebKitSite/blog/wp-content/plugins/commentcontrol.php: Removed.
        * WebKitSite/blog/wp-content/plugins/hello.php: Removed.
        * WebKitSite/blog/wp-content/plugins/index.php: Removed.
        * WebKitSite/blog/wp-content/plugins/wp-cache: Removed.
        * WebKitSite/blog/wp-content/rotate.png: Removed.
        * WebKitSite/blog/wp-content/rotate.svg: Removed.
        * WebKitSite/blog/wp-content/svgtext.png: Removed.
        * WebKitSite/blog/wp-content/svgtextmini.png: Removed.
        * WebKitSite/blog/wp-content/svgtextmini_01.png: Removed.
        * WebKitSite/blog/wp-content/textfield_screenshot.jpg: Removed.
        * WebKitSite/blog/wp-content/themes: Removed.
        * WebKitSite/blog/wp-content/themes/classic: Removed.
        * WebKitSite/blog/wp-content/themes/classic/comments-popup.php: Removed.
        * WebKitSite/blog/wp-content/themes/classic/comments.php: Removed.
        * WebKitSite/blog/wp-content/themes/classic/footer.php: Removed.
        * WebKitSite/blog/wp-content/themes/classic/functions.php: Removed.
        * WebKitSite/blog/wp-content/themes/classic/header.php: Removed.
        * WebKitSite/blog/wp-content/themes/classic/index.php: Removed.
        * WebKitSite/blog/wp-content/themes/classic/rtl.css: Removed.
        * WebKitSite/blog/wp-content/themes/classic/screenshot.png: Removed.
        * WebKitSite/blog/wp-content/themes/classic/sidebar.php: Removed.
        * WebKitSite/blog/wp-content/themes/classic/style.css: Removed.
        * WebKitSite/blog/wp-content/themes/default: Removed.
        * WebKitSite/blog/wp-content/themes/default/404.php: Removed.
        * WebKitSite/blog/wp-content/themes/default/archive.php: Removed.
        * WebKitSite/blog/wp-content/themes/default/archives.php: Removed.
        * WebKitSite/blog/wp-content/themes/default/comments-popup.php: Removed.
        * WebKitSite/blog/wp-content/themes/default/comments.php: Removed.
        * WebKitSite/blog/wp-content/themes/default/footer.php: Removed.
        * WebKitSite/blog/wp-content/themes/default/functions.php: Removed.
        * WebKitSite/blog/wp-content/themes/default/header.php: Removed.
        * WebKitSite/blog/wp-content/themes/default/image.php: Removed.
        * WebKitSite/blog/wp-content/themes/default/images: Removed.
        * WebKitSite/blog/wp-content/themes/default/images/audio.jpg: Removed.
        * WebKitSite/blog/wp-content/themes/default/images/header-img.php: Removed.
        * WebKitSite/blog/wp-content/themes/default/images/kubrickbg-ltr.jpg: Removed.
        * WebKitSite/blog/wp-content/themes/default/images/kubrickbg-rtl.jpg: Removed.
        * WebKitSite/blog/wp-content/themes/default/images/kubrickbgcolor.jpg: Removed.
        * WebKitSite/blog/wp-content/themes/default/images/kubrickbgwide.jpg: Removed.
        * WebKitSite/blog/wp-content/themes/default/images/kubrickfooter.jpg: Removed.
        * WebKitSite/blog/wp-content/themes/default/images/kubrickheader.jpg: Removed.
        * WebKitSite/blog/wp-content/themes/default/index.php: Removed.
        * WebKitSite/blog/wp-content/themes/default/links.php: Removed.
        * WebKitSite/blog/wp-content/themes/default/page.php: Removed.
        * WebKitSite/blog/wp-content/themes/default/rtl.css: Removed.
        * WebKitSite/blog/wp-content/themes/default/screenshot.png: Removed.
        * WebKitSite/blog/wp-content/themes/default/search.php: Removed.
        * WebKitSite/blog/wp-content/themes/default/sidebar.php: Removed.
        * WebKitSite/blog/wp-content/themes/default/single.php: Removed.
        * WebKitSite/blog/wp-content/themes/default/style.css: Removed.
        * WebKitSite/blog/wp-content/themes/index.php: Removed.
        * WebKitSite/blog/wp-content/themes/webkit: Removed.
        * WebKitSite/blog/wp-content/themes/webkit/404.php: Removed.
        * WebKitSite/blog/wp-content/themes/webkit/archive.php: Removed.
        * WebKitSite/blog/wp-content/themes/webkit/archives.php: Removed.
        * WebKitSite/blog/wp-content/themes/webkit/comments-popup.php: Removed.
        * WebKitSite/blog/wp-content/themes/webkit/comments.php: Removed.
        * WebKitSite/blog/wp-content/themes/webkit/footer.php: Removed.
        * WebKitSite/blog/wp-content/themes/webkit/header.php: Removed.
        * WebKitSite/blog/wp-content/themes/webkit/index.php: Removed.
        * WebKitSite/blog/wp-content/themes/webkit/links.php: Removed.
        * WebKitSite/blog/wp-content/themes/webkit/page.php: Removed.
        * WebKitSite/blog/wp-content/themes/webkit/search.php: Removed.
        * WebKitSite/blog/wp-content/themes/webkit/searchform.php: Removed.
        * WebKitSite/blog/wp-content/themes/webkit/sidebar.php: Removed.
        * WebKitSite/blog/wp-content/themes/webkit/single.php: Removed.
        * WebKitSite/blog/wp-content/themes/webkit/style.css: Removed.
        * WebKitSite/blog/wp-content/uploads: Removed.
        * WebKitSite/blog/wp-content/uploads/2007: Removed.
        * WebKitSite/blog/wp-content/uploads/2007/06: Removed.
        * WebKitSite/blog/wp-content/uploads/2007/06/newinspector.png: Removed.
        * WebKitSite/blog/wp-content/webInspector.png: Removed.
        * WebKitSite/blog/wp-cron.php: Removed.
        * WebKitSite/blog/wp-feed.php: Removed.
        * WebKitSite/blog/wp-images: Removed.
        * WebKitSite/blog/wp-images/smilies: Removed.
        * WebKitSite/blog/wp-includes: Removed.
        * WebKitSite/blog/wp-includes/Text: Removed.
        * WebKitSite/blog/wp-includes/Text/Diff: Removed.
        * WebKitSite/blog/wp-includes/Text/Diff.php: Removed.
        * WebKitSite/blog/wp-includes/Text/Diff/Engine: Removed.
        * WebKitSite/blog/wp-includes/Text/Diff/Engine/native.php: Removed.
        * WebKitSite/blog/wp-includes/Text/Diff/Engine/shell.php: Removed.
        * WebKitSite/blog/wp-includes/Text/Diff/Engine/string.php: Removed.
        * WebKitSite/blog/wp-includes/Text/Diff/Engine/xdiff.php: Removed.
        * WebKitSite/blog/wp-includes/Text/Diff/Renderer: Removed.
        * WebKitSite/blog/wp-includes/Text/Diff/Renderer.php: Removed.
        * WebKitSite/blog/wp-includes/Text/Diff/Renderer/inline.php: Removed.
        * WebKitSite/blog/wp-includes/atomlib.php: Removed.
        * WebKitSite/blog/wp-includes/author-template.php: Removed.
        * WebKitSite/blog/wp-includes/bookmark-template.php: Removed.
        * WebKitSite/blog/wp-includes/bookmark.php: Removed.
        * WebKitSite/blog/wp-includes/cache.php: Removed.
        * WebKitSite/blog/wp-includes/canonical.php: Removed.
        * WebKitSite/blog/wp-includes/capabilities.php: Removed.
        * WebKitSite/blog/wp-includes/category-template.php: Removed.
        * WebKitSite/blog/wp-includes/category.php: Removed.
        * WebKitSite/blog/wp-includes/class-IXR.php: Removed.
        * WebKitSite/blog/wp-includes/class-feed.php: Removed.
        * WebKitSite/blog/wp-includes/class-phpass.php: Removed.
        * WebKitSite/blog/wp-includes/class-phpmailer.php: Removed.
        * WebKitSite/blog/wp-includes/class-pop3.php: Removed.
        * WebKitSite/blog/wp-includes/class-simplepie.php: Removed.
        * WebKitSite/blog/wp-includes/class-smtp.php: Removed.
        * WebKitSite/blog/wp-includes/class-snoopy.php: Removed.
        * WebKitSite/blog/wp-includes/class.wp-dependencies.php: Removed.
        * WebKitSite/blog/wp-includes/class.wp-scripts.php: Removed.
        * WebKitSite/blog/wp-includes/class.wp-styles.php: Removed.
        * WebKitSite/blog/wp-includes/classes.php: Removed.
        * WebKitSite/blog/wp-includes/comment-template.php: Removed.
        * WebKitSite/blog/wp-includes/comment.php: Removed.
        * WebKitSite/blog/wp-includes/compat.php: Removed.
        * WebKitSite/blog/wp-includes/cron.php: Removed.
        * WebKitSite/blog/wp-includes/default-filters.php: Removed.
        * WebKitSite/blog/wp-includes/default-widgets.php: Removed.
        * WebKitSite/blog/wp-includes/deprecated.php: Removed.
        * WebKitSite/blog/wp-includes/feed-atom-comments.php: Removed.
        * WebKitSite/blog/wp-includes/feed-atom.php: Removed.
        * WebKitSite/blog/wp-includes/feed-rdf.php: Removed.
        * WebKitSite/blog/wp-includes/feed-rss.php: Removed.
        * WebKitSite/blog/wp-includes/feed-rss2-comments.php: Removed.
        * WebKitSite/blog/wp-includes/feed-rss2.php: Removed.
        * WebKitSite/blog/wp-includes/feed.php: Removed.
        * WebKitSite/blog/wp-includes/formatting.php: Removed.
        * WebKitSite/blog/wp-includes/functions.php: Removed.
        * WebKitSite/blog/wp-includes/functions.wp-scripts.php: Removed.
        * WebKitSite/blog/wp-includes/functions.wp-styles.php: Removed.
        * WebKitSite/blog/wp-includes/general-template.php: Removed.
        * WebKitSite/blog/wp-includes/gettext.php: Removed.
        * WebKitSite/blog/wp-includes/http.php: Removed.
        * WebKitSite/blog/wp-includes/images: Removed.
        * WebKitSite/blog/wp-includes/images/blank.gif: Removed.
        * WebKitSite/blog/wp-includes/images/crystal: Removed.
        * WebKitSite/blog/wp-includes/images/crystal/archive.png: Removed.
        * WebKitSite/blog/wp-includes/images/crystal/audio.png: Removed.
        * WebKitSite/blog/wp-includes/images/crystal/code.png: Removed.
        * WebKitSite/blog/wp-includes/images/crystal/default.png: Removed.
        * WebKitSite/blog/wp-includes/images/crystal/document.png: Removed.
        * WebKitSite/blog/wp-includes/images/crystal/interactive.png: Removed.
        * WebKitSite/blog/wp-includes/images/crystal/license.txt: Removed.
        * WebKitSite/blog/wp-includes/images/crystal/spreadsheet.png: Removed.
        * WebKitSite/blog/wp-includes/images/crystal/text.png: Removed.
        * WebKitSite/blog/wp-includes/images/crystal/video.png: Removed.
        * WebKitSite/blog/wp-includes/images/rss.png: Removed.
        * WebKitSite/blog/wp-includes/images/smilies: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_arrow.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_biggrin.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_confused.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_cool.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_cry.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_eek.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_evil.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_exclaim.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_idea.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_lol.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_mad.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_mrgreen.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_neutral.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_question.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_razz.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_redface.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_rolleyes.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_sad.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_smile.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_surprised.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_twisted.gif: Removed.
        * WebKitSite/blog/wp-includes/images/smilies/icon_wink.gif: Removed.
        * WebKitSite/blog/wp-includes/images/upload.png: Removed.
        * WebKitSite/blog/wp-includes/images/wlw: Removed.
        * WebKitSite/blog/wp-includes/images/wlw/wp-comments.png: Removed.
        * WebKitSite/blog/wp-includes/images/wlw/wp-icon.png: Removed.
        * WebKitSite/blog/wp-includes/images/wlw/wp-watermark.png: Removed.
        * WebKitSite/blog/wp-includes/js: Removed.
        * WebKitSite/blog/wp-includes/js/autosave.dev.js: Removed.
        * WebKitSite/blog/wp-includes/js/autosave.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/codepress.css: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/codepress.html: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/codepress.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/engines: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/engines/gecko.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/engines/khtml.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/engines/msie.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/engines/older.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/engines/opera.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/images: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/images/line-numbers.png: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/asp.css: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/asp.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/autoit.css: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/autoit.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/csharp.css: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/csharp.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/css.css: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/css.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/generic.css: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/generic.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/html.css: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/html.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/java.css: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/java.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/javascript.css: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/javascript.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/perl.css: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/perl.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/php.css: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/php.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/ruby.css: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/ruby.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/sql.css: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/sql.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/text.css: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/text.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/vbscript.css: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/vbscript.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/xsl.css: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/languages/xsl.js: Removed.
        * WebKitSite/blog/wp-includes/js/codepress/license.txt: Removed.
        * WebKitSite/blog/wp-includes/js/colorpicker.dev.js: Removed.
        * WebKitSite/blog/wp-includes/js/colorpicker.js: Removed.
        * WebKitSite/blog/wp-includes/js/comment-reply.dev.js: Removed.
        * WebKitSite/blog/wp-includes/js/comment-reply.js: Removed.
        * WebKitSite/blog/wp-includes/js/crop: Removed.
        * WebKitSite/blog/wp-includes/js/crop/cropper.css: Removed.
        * WebKitSite/blog/wp-includes/js/crop/cropper.js: Removed.
        * WebKitSite/blog/wp-includes/js/crop/marqueeHoriz.gif: Removed.
        * WebKitSite/blog/wp-includes/js/crop/marqueeVert.gif: Removed.
        * WebKitSite/blog/wp-includes/js/hoverIntent.dev.js: Removed.
        * WebKitSite/blog/wp-includes/js/hoverIntent.js: Removed.
        * WebKitSite/blog/wp-includes/js/jcrop: Removed.
        * WebKitSite/blog/wp-includes/js/jcrop/Jcrop.gif: Removed.
        * WebKitSite/blog/wp-includes/js/jcrop/jquery.Jcrop.css: Removed.
        * WebKitSite/blog/wp-includes/js/jcrop/jquery.Jcrop.dev.js: Removed.
        * WebKitSite/blog/wp-includes/js/jcrop/jquery.Jcrop.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/interface.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/jquery.color.dev.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/jquery.color.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/jquery.form.dev.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/jquery.form.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/jquery.hotkeys.dev.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/jquery.hotkeys.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/jquery.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/jquery.schedule.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/jquery.table-hotkeys.dev.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/jquery.table-hotkeys.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/suggest.dev.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/suggest.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/ui.core.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/ui.dialog.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/ui.draggable.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/ui.droppable.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/ui.resizable.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/ui.selectable.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/ui.sortable.js: Removed.
        * WebKitSite/blog/wp-includes/js/jquery/ui.tabs.js: Removed.
        * WebKitSite/blog/wp-includes/js/prototype.js: Removed.
        * WebKitSite/blog/wp-includes/js/quicktags.dev.js: Removed.
        * WebKitSite/blog/wp-includes/js/quicktags.js: Removed.
        * WebKitSite/blog/wp-includes/js/scriptaculous: Removed.
        * WebKitSite/blog/wp-includes/js/scriptaculous/MIT-LICENSE: Removed.
        * WebKitSite/blog/wp-includes/js/scriptaculous/builder.js: Removed.
        * WebKitSite/blog/wp-includes/js/scriptaculous/controls.js: Removed.
        * WebKitSite/blog/wp-includes/js/scriptaculous/dragdrop.js: Removed.
        * WebKitSite/blog/wp-includes/js/scriptaculous/effects.js: Removed.
        * WebKitSite/blog/wp-includes/js/scriptaculous/prototype.js: Removed.
        * WebKitSite/blog/wp-includes/js/scriptaculous/scriptaculous.js: Removed.
        * WebKitSite/blog/wp-includes/js/scriptaculous/slider.js: Removed.
        * WebKitSite/blog/wp-includes/js/scriptaculous/sound.js: Removed.
        * WebKitSite/blog/wp-includes/js/scriptaculous/unittest.js: Removed.
        * WebKitSite/blog/wp-includes/js/scriptaculous/wp-scriptaculous.js: Removed.
        * WebKitSite/blog/wp-includes/js/swfobject.js: Removed.
        * WebKitSite/blog/wp-includes/js/swfupload: Removed.
        * WebKitSite/blog/wp-includes/js/swfupload/handlers.dev.js: Removed.
        * WebKitSite/blog/wp-includes/js/swfupload/handlers.js: Removed.
        * WebKitSite/blog/wp-includes/js/swfupload/plugins: Removed.
        * WebKitSite/blog/wp-includes/js/swfupload/plugins/swfupload.cookies.js: Removed.
        * WebKitSite/blog/wp-includes/js/swfupload/plugins/swfupload.queue.js: Removed.
        * WebKitSite/blog/wp-includes/js/swfupload/plugins/swfupload.speed.js: Removed.
        * WebKitSite/blog/wp-includes/js/swfupload/plugins/swfupload.swfobject.js: Removed.
        * WebKitSite/blog/wp-includes/js/swfupload/swfupload-all.js: Removed.
        * WebKitSite/blog/wp-includes/js/swfupload/swfupload.js: Removed.
        * WebKitSite/blog/wp-includes/js/swfupload/swfupload.swf: Removed.
        * WebKitSite/blog/wp-includes/js/thickbox: Removed.
        * WebKitSite/blog/wp-includes/js/thickbox/loadingAnimation.gif: Removed.
        * WebKitSite/blog/wp-includes/js/thickbox/macFFBgHack.png: Removed.
        * WebKitSite/blog/wp-includes/js/thickbox/tb-close.png: Removed.
        * WebKitSite/blog/wp-includes/js/thickbox/thickbox.css: Removed.
        * WebKitSite/blog/wp-includes/js/thickbox/thickbox.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/blank.htm: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/langs: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/langs/wp-langs-en.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/langs/wp-langs.php: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/license.txt: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/autosave: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/autosave/langs: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/directionality: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/directionality/editor_plugin.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/directionality/images: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/directionality/langs: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/fullscreen: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/fullscreen/editor_plugin.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/fullscreen/fullscreen.htm: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/editor_plugin.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/images: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/jscripts: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/button.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/drag.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/window.css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/template.htm: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/css/content.css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/css/media.css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/editor_plugin.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/img: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/img/flash.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/img/flv_player.swf: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/img/quicktime.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/img/realmedia.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/img/shockwave.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/img/trans.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/img/windowsmedia.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/js/embed.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/js/media.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/media.htm: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/blank.htm: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/editor_plugin.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/images: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/js/pastetext.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/js/pasteword.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/jscripts: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/langs: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/pastetext.htm: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/pasteword.htm: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/safari: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/safari/blank.htm: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/safari/editor_plugin.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/classes: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/EnchantSpell.php: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/GoogleSpell.php: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/PSpell.php: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/PSpellShell.php: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/SpellChecker.php: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/utils: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/utils/JSON.php: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/utils/Logger.php: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/config.php: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/css/content.css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/editor_plugin.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/images: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/img: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/img/wline.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/includes: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/includes/general.php: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/langs: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/rpc.php: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/tabfocus: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/tabfocus/editor_plugin.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/css/content.css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/editor_plugin.dev.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/editor_plugin.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/images: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/audio.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/help.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/image.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/media.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/more.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/more_bug.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/page.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/page_bug.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/toolbars.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/video.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/langs: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/css/editimage-rtl.css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/css/editimage.css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/editimage.html: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.dev.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/img: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/img/delete.png: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/img/image.png: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpgallery: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpgallery/editor_plugin.dev.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpgallery/editor_plugin.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpgallery/img: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpgallery/img/delete.png: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpgallery/img/edit.png: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpgallery/img/gallery.png: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpgallery/img/t.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wphelp: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wphelp/images: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wphelp/langs: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/about.htm: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/anchor.htm: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/charmap.htm: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/color_picker.htm: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/editor_template.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/image.htm: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/images: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/images/xp: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/img: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/img/colorpicker.jpg: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/img/fm.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/img/gotmoxie.png: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/img/icons.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/img/sflogo.png: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/js/about.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/js/anchor.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/js/charmap.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/js/color_picker.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/js/image.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/js/link.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/js/source_editor.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/jscripts: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/langs: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/link.htm: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/content.css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/dialog.css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/img: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/img/buttons.png: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/img/items.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/img/menu_check.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/img/progress.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/img/tabs.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/ui.css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/content.css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/dialog.css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/img: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/img/button_bg.png: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/ui.css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/ui_black.css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/ui_silver.css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/content.css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/dialog.css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/butt2.png: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/button_bg.png: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/down_arrow.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/fade-butt.png: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/separator.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/tabs.gif: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/ui.css: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/source_editor.htm: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/tiny_mce.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/tiny_mce_popup.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/utils: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/utils/editable_selects.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/utils/form_utils.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/utils/mctabs.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/utils/validate.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/wp-mce-help.php: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/wp-tinymce.js: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/wp-tinymce.js.gz: Removed.
        * WebKitSite/blog/wp-includes/js/tinymce/wp-tinymce.php: Removed.
        * WebKitSite/blog/wp-includes/js/tw-sack.dev.js: Removed.
        * WebKitSite/blog/wp-includes/js/tw-sack.js: Removed.
        * WebKitSite/blog/wp-includes/js/wp-ajax-response.dev.js: Removed.
        * WebKitSite/blog/wp-includes/js/wp-ajax-response.js: Removed.
        * WebKitSite/blog/wp-includes/js/wp-lists.dev.js: Removed.
        * WebKitSite/blog/wp-includes/js/wp-lists.js: Removed.
        * WebKitSite/blog/wp-includes/kses.php: Removed.
        * WebKitSite/blog/wp-includes/l10n.php: Removed.
        * WebKitSite/blog/wp-includes/link-template.php: Removed.
        * WebKitSite/blog/wp-includes/locale.php: Removed.
        * WebKitSite/blog/wp-includes/media.php: Removed.
        * WebKitSite/blog/wp-includes/pluggable.php: Removed.
        * WebKitSite/blog/wp-includes/plugin.php: Removed.
        * WebKitSite/blog/wp-includes/pomo: Removed.
        * WebKitSite/blog/wp-includes/pomo/entry.php: Removed.
        * WebKitSite/blog/wp-includes/pomo/mo.php: Removed.
        * WebKitSite/blog/wp-includes/pomo/po.php: Removed.
        * WebKitSite/blog/wp-includes/pomo/streams.php: Removed.
        * WebKitSite/blog/wp-includes/pomo/translations.php: Removed.
        * WebKitSite/blog/wp-includes/post-template.php: Removed.
        * WebKitSite/blog/wp-includes/post.php: Removed.
        * WebKitSite/blog/wp-includes/query.php: Removed.
        * WebKitSite/blog/wp-includes/registration-functions.php: Removed.
        * WebKitSite/blog/wp-includes/registration.php: Removed.
        * WebKitSite/blog/wp-includes/rewrite.php: Removed.
        * WebKitSite/blog/wp-includes/rss-functions.php: Removed.
        * WebKitSite/blog/wp-includes/rss.php: Removed.
        * WebKitSite/blog/wp-includes/script-loader.php: Removed.
        * WebKitSite/blog/wp-includes/shortcodes.php: Removed.
        * WebKitSite/blog/wp-includes/streams.php: Removed.
        * WebKitSite/blog/wp-includes/taxonomy.php: Removed.
        * WebKitSite/blog/wp-includes/template-loader.php: Removed.
        * WebKitSite/blog/wp-includes/theme.php: Removed.
        * WebKitSite/blog/wp-includes/update.php: Removed.
        * WebKitSite/blog/wp-includes/user.php: Removed.
        * WebKitSite/blog/wp-includes/vars.php: Removed.
        * WebKitSite/blog/wp-includes/version.php: Removed.
        * WebKitSite/blog/wp-includes/widgets.php: Removed.
        * WebKitSite/blog/wp-includes/wlwmanifest.xml: Removed.
        * WebKitSite/blog/wp-includes/wp-db.php: Removed.
        * WebKitSite/blog/wp-includes/wp-diff.php: Removed.
        * WebKitSite/blog/wp-links-opml.php: Removed.
        * WebKitSite/blog/wp-load.php: Removed.
        * WebKitSite/blog/wp-login.php: Removed.
        * WebKitSite/blog/wp-mail.php: Removed.
        * WebKitSite/blog/wp-pass.php: Removed.
        * WebKitSite/blog/wp-rdf.php: Removed.
        * WebKitSite/blog/wp-register.php: Removed.
        * WebKitSite/blog/wp-rss.php: Removed.
        * WebKitSite/blog/wp-rss2.php: Removed.
        * WebKitSite/blog/wp-settings.php: Removed.
        * WebKitSite/blog/wp-trackback.php: Removed.
        * WebKitSite/blog/xmlrpc.php: Removed.
        * WebKitSite/building: Removed.
        * WebKitSite/building/build-window.png: Removed.
        * WebKitSite/building/build.html: Removed.
        * WebKitSite/building/checkout.html: Removed.
        * WebKitSite/building/custom-executable.png: Removed.
        * WebKitSite/building/cygwin-downloader.zip: Removed.
        * WebKitSite/building/debug.html: Removed.
        * WebKitSite/building/debug.png: Removed.
        * WebKitSite/building/info-tab.png: Removed.
        * WebKitSite/building/launch-debugger-vs2005.png: Removed.
        * WebKitSite/building/run.html: Removed.
        * WebKitSite/building/set-as-startup-project-vs2005.png: Removed.
        * WebKitSite/building/set-debugging-properties-vs2005.png: Removed.
        * WebKitSite/building/tools.html: Removed.
        * WebKitSite/coding: Removed.
        * WebKitSite/coding/RefPtr.html: Removed.
        * WebKitSite/coding/assertion-guidelines.html: Removed.
        * WebKitSite/coding/bsd-license.html: Removed.
        * WebKitSite/coding/coding-style.html: Removed.
        * WebKitSite/coding/commit-review-policy.html: Removed.
        * WebKitSite/coding/contributing.html: Removed.
        * WebKitSite/coding/dom-element-attach.html: Removed.
        * WebKitSite/coding/images: Removed.
        * WebKitSite/coding/images/contribute_add_attachment.png: Removed.
        * WebKitSite/coding/images/contribute_mark_review.png: Removed.
        * WebKitSite/coding/images/dom-element-attach-large.png: Removed.
        * WebKitSite/coding/images/dom-element-attach-small.png: Removed.
        * WebKitSite/coding/images/dom-element-attach.graffle: Removed.
        * WebKitSite/coding/lgpl-license.html: Removed.
        * WebKitSite/coding/major-objects.html: Removed.
        * WebKitSite/coding/scripts.html: Removed.
        * WebKitSite/coding/technical-articles.html: Removed.
        * WebKitSite/contact.html: Removed.
        * WebKitSite/css: Removed.
        * WebKitSite/css/blue.css: Removed.
        * WebKitSite/css/gray.css: Removed.
        * WebKitSite/css/green.css: Removed.
        * WebKitSite/css/ie.css: Removed.
        * WebKitSite/css/main.css: Removed.
        * WebKitSite/css/pink.css: Removed.
        * WebKitSite/css/purple.css: Removed.
        * WebKitSite/css/yellow.css: Removed.
        * WebKitSite/demos: Removed.
        * WebKitSite/demos/accessible-ascii-art: Removed.
        * WebKitSite/demos/accessible-ascii-art/butterfly-figure.html: Removed.
        * WebKitSite/demos/accessible-ascii-art/butterfly.html: Removed.
        * WebKitSite/demos/calendar: Removed.
        * WebKitSite/demos/calendar/Boom.aiff: Removed.
        * WebKitSite/demos/calendar/Calendar.css: Removed.
        * WebKitSite/demos/calendar/Calendar.html: Removed.
        * WebKitSite/demos/calendar/Calendar.js: Removed.
        * WebKitSite/demos/calendar/Calendar.manifest: Removed.
        * WebKitSite/demos/calendar/CalendarApp.icns: Removed.
        * WebKitSite/demos/calendar/Images: Removed.
        * WebKitSite/demos/calendar/Images/AirPort4.png: Removed.
        * WebKitSite/demos/calendar/Images/AirPortError.png: Removed.
        * WebKitSite/demos/calendar/Images/disclosureTriangleSmallDown.png: Removed.
        * WebKitSite/demos/calendar/Images/disclosureTriangleSmallRight.png: Removed.
        * WebKitSite/demos/calendar/Images/statusbarBackground.png: Removed.
        * WebKitSite/demos/calendar/Images/statusbarResizerVertical.png: Removed.
        * WebKitSite/demos/calendar/LocationImage.js: Removed.
        * WebKitSite/demos/calendar/Utilities.js: Removed.
        * WebKitSite/demos/calendar/favicon.ico: Removed.
        * WebKitSite/demos/calendar/index.html: Removed.
        * WebKitSite/demos/calendar/mime.types: Removed.
        * WebKitSite/demos/canvas-perf: Removed.
        * WebKitSite/demos/canvas-perf/canvas.html: Removed.
        * WebKitSite/demos/canvas-perf/kraken.jpg: Removed.
        * WebKitSite/demos/editingToolbar: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbar.css: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbar.js: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/button.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/buttonLeft.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/buttonMiddle.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/buttonPressed.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/buttonPressedLeft.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/buttonPressedMiddle.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/buttonPressedRight.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/buttonRight.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/camera.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/link.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/textAlign.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/toolbarOutline.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/toolbarOutlineBottom.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/toolbarOutlineBottomLeft.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/toolbarOutlineBottomRight.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/toolbarOutlineLeft.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/toolbarOutlineRight.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/toolbarOutlineTop.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/toolbarOutlineTopLeft.png: Removed.
        * WebKitSite/demos/editingToolbar/FancyToolbarImages/toolbarOutlineTopRight.png: Removed.
        * WebKitSite/demos/editingToolbar/content.html: Removed.
        * WebKitSite/demos/editingToolbar/images: Removed.
        * WebKitSite/demos/editingToolbar/images/safari.png: Removed.
        * WebKitSite/demos/editingToolbar/index.html: Removed.
        * WebKitSite/demos/hover-summary: Removed.
        * WebKitSite/demos/hover-summary/details.css: Removed.
        * WebKitSite/demos/hover-summary/details.js: Removed.
        * WebKitSite/demos/hover-summary/example1.html: Removed.
        * WebKitSite/demos/hover-summary/example2.html: Removed.
        * WebKitSite/demos/hover-summary/horizontal-triangle.png: Removed.
        * WebKitSite/demos/hover-summary/vertical-triangle.png: Removed.
        * WebKitSite/demos/index.html: Removed.
        * WebKitSite/demos/mathml: Removed.
        * WebKitSite/demos/mathml/MathMLDemo.xhtml: Removed.
        * WebKitSite/demos/sticky-notes: Removed.
        * WebKitSite/demos/sticky-notes/StickyNotes.manifest: Removed.
        * WebKitSite/demos/sticky-notes/deleteButton.png: Removed.
        * WebKitSite/demos/sticky-notes/deleteButtonPressed.png: Removed.
        * WebKitSite/demos/sticky-notes/index.html: Removed.
        * WebKitSite/demos/transitions-and-transforms: Removed.
        * WebKitSite/demos/transitions-and-transforms/Finder Coverflow.png: Removed.
        * WebKitSite/demos/transitions-and-transforms/Horsehead.png: Removed.
        * WebKitSite/demos/transitions-and-transforms/Mail Stationery.png: Removed.
        * WebKitSite/demos/transitions-and-transforms/Quick Look.png: Removed.
        * WebKitSite/demos/transitions-and-transforms/Spaces.png: Removed.
        * WebKitSite/demos/transitions-and-transforms/Stacks.png: Removed.
        * WebKitSite/demos/transitions-and-transforms/Time Machine.png: Removed.
        * WebKitSite/demos/transitions-and-transforms/index.html: Removed.
        * WebKitSite/demos/transitions-and-transforms/leopard.css: Removed.
        * WebKitSite/demos/transitions-and-transforms/no-style.html: Removed.
        * WebKitSite/favicon.ico: Removed.
        * WebKitSite/footer.inc: Removed.
        * WebKitSite/header.inc: Removed.
        * WebKitSite/images: Removed.
        * WebKitSite/images/DroseraPic.png: Removed.
        * WebKitSite/images/blank.png: Removed.
        * WebKitSite/images/blue-background.png: Removed.
        * WebKitSite/images/blue-bullet.png: Removed.
        * WebKitSite/images/download.png: Removed.
        * WebKitSite/images/end.png: Removed.
        * WebKitSite/images/gray-background.png: Removed.
        * WebKitSite/images/green-background.png: Removed.
        * WebKitSite/images/green-bullet.png: Removed.
        * WebKitSite/images/icon-gold.png: Removed.
        * WebKitSite/images/icon.png: Removed.
        * WebKitSite/images/ie-nav.png: Removed.
        * WebKitSite/images/middle.png: Removed.
        * WebKitSite/images/nav.png: Removed.
        * WebKitSite/images/pink-background.png: Removed.
        * WebKitSite/images/pink-bullet.png: Removed.
        * WebKitSite/images/purple-background.png: Removed.
        * WebKitSite/images/purple-bullet.png: Removed.
        * WebKitSite/images/surfin-safari.icns: Removed.
        * WebKitSite/images/yellow-background.png: Removed.
        * WebKitSite/images/yellow-bullet.png: Removed.
        * WebKitSite/index.html: Removed.
        * WebKitSite/misc: Removed.
        * WebKitSite/misc/DatabaseExample.html: Removed.
        * WebKitSite/misc/DatabaseTester.html: Removed.
        * WebKitSite/misc/WebKitDetect.html: Removed.
        * WebKitSite/misc/WebKitDetect.js: Removed.
        * WebKitSite/misc/drosera: Removed.
        * WebKitSite/misc/drosera/demo.js: Removed.
        * WebKitSite/misc/drosera/drosera.png: Removed.
        * WebKitSite/misc/drosera/index.html: Removed.
        * WebKitSite/misc/gradient-input.html: Removed.
        * WebKitSite/misc/morph.html: Removed.
        * WebKitSite/nav.inc: Removed.
        * WebKitSite/perf: Removed.
        * WebKitSite/perf/slickspeed: Removed.
        * WebKitSite/perf/slickspeed/config.ini: Removed.
        * WebKitSite/perf/slickspeed/footer.html: Removed.
        * WebKitSite/perf/slickspeed/frameworks: Removed.
        * WebKitSite/perf/slickspeed/frameworks/DomQuery.js: Removed.
        * WebKitSite/perf/slickspeed/frameworks/dummy.js: Removed.
        * WebKitSite/perf/slickspeed/frameworks/jquery-1.2.3.js: Removed.
        * WebKitSite/perf/slickspeed/frameworks/prototype.js: Removed.
        * WebKitSite/perf/slickspeed/header.html: Removed.
        * WebKitSite/perf/slickspeed/index.php: Removed.
        * WebKitSite/perf/slickspeed/instructions.txt: Removed.
        * WebKitSite/perf/slickspeed/logo.png: Removed.
        * WebKitSite/perf/slickspeed/selectors.list: Removed.
        * WebKitSite/perf/slickspeed/style.css: Removed.
        * WebKitSite/perf/slickspeed/system: Removed.
        * WebKitSite/perf/slickspeed/system/index.php: Removed.
        * WebKitSite/perf/slickspeed/system/slickspeed.js: Removed.
        * WebKitSite/perf/slickspeed/system/template.php: Removed.
        * WebKitSite/perf/slickspeed/template.html: Removed.
        * WebKitSite/perf/sunspider: Removed.
        * WebKitSite/perf/sunspider-0.9: Removed.
        * WebKitSite/perf/sunspider-0.9.1: Removed.
        * WebKitSite/perf/sunspider-0.9.1/json2.js: Removed.
        * WebKitSite/perf/sunspider-0.9.1/sunspider-0.9: Removed.
        * WebKitSite/perf/sunspider-0.9.1/sunspider-0.9.1: Removed.
        * WebKitSite/perf/sunspider-0.9.1/sunspider-0.9.1/driver.html: Removed.
        * WebKitSite/perf/sunspider-0.9.1/sunspider-0.9.1/results.html: Removed.
        * WebKitSite/perf/sunspider-0.9.1/sunspider-0.9.1/sunspider-test-contents.js: Removed.
        * WebKitSite/perf/sunspider-0.9.1/sunspider-0.9.1/sunspider-test-prefix.js: Removed.
        * WebKitSite/perf/sunspider-0.9.1/sunspider-0.9/driver.html: Removed.
        * WebKitSite/perf/sunspider-0.9.1/sunspider-0.9/results.html: Removed.
        * WebKitSite/perf/sunspider-0.9.1/sunspider-0.9/sunspider-test-contents.js: Removed.
        * WebKitSite/perf/sunspider-0.9.1/sunspider-0.9/sunspider-test-prefix.js: Removed.
        * WebKitSite/perf/sunspider-0.9.1/sunspider-analyze-results.js: Removed.
        * WebKitSite/perf/sunspider-0.9.1/sunspider-compare-results.js: Removed.
        * WebKitSite/perf/sunspider-0.9.1/sunspider.css: Removed.
        * WebKitSite/perf/sunspider-0.9/3d-cube.html: Removed.
        * WebKitSite/perf/sunspider-0.9/3d-morph.html: Removed.
        * WebKitSite/perf/sunspider-0.9/3d-raytrace.html: Removed.
        * WebKitSite/perf/sunspider-0.9/access-binary-trees.html: Removed.
        * WebKitSite/perf/sunspider-0.9/access-fannkuch.html: Removed.
        * WebKitSite/perf/sunspider-0.9/access-nbody.html: Removed.
        * WebKitSite/perf/sunspider-0.9/access-nsieve.html: Removed.
        * WebKitSite/perf/sunspider-0.9/bitops-3bit-bits-in-byte.html: Removed.
        * WebKitSite/perf/sunspider-0.9/bitops-bits-in-byte.html: Removed.
        * WebKitSite/perf/sunspider-0.9/bitops-bitwise-and.html: Removed.
        * WebKitSite/perf/sunspider-0.9/bitops-nsieve-bits.html: Removed.
        * WebKitSite/perf/sunspider-0.9/controlflow-recursive.html: Removed.
        * WebKitSite/perf/sunspider-0.9/crypto-aes.html: Removed.
        * WebKitSite/perf/sunspider-0.9/crypto-md5.html: Removed.
        * WebKitSite/perf/sunspider-0.9/crypto-sha1.html: Removed.
        * WebKitSite/perf/sunspider-0.9/date-format-tofte.html: Removed.
        * WebKitSite/perf/sunspider-0.9/date-format-xparb.html: Removed.
        * WebKitSite/perf/sunspider-0.9/math-cordic.html: Removed.
        * WebKitSite/perf/sunspider-0.9/math-partial-sums.html: Removed.
        * WebKitSite/perf/sunspider-0.9/math-spectral-norm.html: Removed.
        * WebKitSite/perf/sunspider-0.9/regexp-dna.html: Removed.
        * WebKitSite/perf/sunspider-0.9/string-base64.html: Removed.
        * WebKitSite/perf/sunspider-0.9/string-fasta.html: Removed.
        * WebKitSite/perf/sunspider-0.9/string-tagcloud.html: Removed.
        * WebKitSite/perf/sunspider-0.9/string-unpack-code.html: Removed.
        * WebKitSite/perf/sunspider-0.9/string-validate-input.html: Removed.
        * WebKitSite/perf/sunspider-0.9/sunspider-analyze-results.js: Removed.
        * WebKitSite/perf/sunspider-0.9/sunspider-compare-results.js: Removed.
        * WebKitSite/perf/sunspider-0.9/sunspider-driver.html: Removed.
        * WebKitSite/perf/sunspider-0.9/sunspider-record-result.js: Removed.
        * WebKitSite/perf/sunspider-0.9/sunspider-results.html: Removed.
        * WebKitSite/perf/sunspider-0.9/sunspider-test-prefix.js: Removed.
        * WebKitSite/perf/sunspider-0.9/sunspider.css: Removed.
        * WebKitSite/perf/sunspider/sunspider.css: Removed.
        * WebKitSite/perf/sunspider/sunspider.html: Removed.
        * WebKitSite/pngbehavior.htc: Removed.
        * WebKitSite/projects: Removed.
        * WebKitSite/projects/accessibility: Removed.
        * WebKitSite/projects/accessibility/index.html: Removed.
        * WebKitSite/projects/cleanup: Removed.
        * WebKitSite/projects/cleanup/index.html: Removed.
        * WebKitSite/projects/compat: Removed.
        * WebKitSite/projects/compat/index.html: Removed.
        * WebKitSite/projects/css: Removed.
        * WebKitSite/projects/css/index.html: Removed.
        * WebKitSite/projects/documentation: Removed.
        * WebKitSite/projects/documentation/index.html: Removed.
        * WebKitSite/projects/dom: Removed.
        * WebKitSite/projects/dom/index.html: Removed.
        * WebKitSite/projects/editing: Removed.
        * WebKitSite/projects/editing/index.html: Removed.
        * WebKitSite/projects/forms: Removed.
        * WebKitSite/projects/forms/index.html: Removed.
        * WebKitSite/projects/goals.html: Removed.
        * WebKitSite/projects/html: Removed.
        * WebKitSite/projects/html/index.html: Removed.
        * WebKitSite/projects/index.html: Removed.
        * WebKitSite/projects/javascript: Removed.
        * WebKitSite/projects/javascript/index.html: Removed.
        * WebKitSite/projects/layout: Removed.
        * WebKitSite/projects/layout/index.html: Removed.
        * WebKitSite/projects/mathml: Removed.
        * WebKitSite/projects/mathml/index.html: Removed.
        * WebKitSite/projects/performance: Removed.
        * WebKitSite/projects/performance/index.html: Removed.
        * WebKitSite/projects/plugins: Removed.
        * WebKitSite/projects/plugins/index.html: Removed.
        * WebKitSite/projects/portability: Removed.
        * WebKitSite/projects/portability/index.html: Removed.
        * WebKitSite/projects/printing: Removed.
        * WebKitSite/projects/printing/index.html: Removed.
        * WebKitSite/projects/svg: Removed.
        * WebKitSite/projects/svg/index.html: Removed.
        * WebKitSite/projects/svg/status.xml: Removed.
        * WebKitSite/projects/svg/svg-status.css: Removed.
        * WebKitSite/projects/svg/svg-status.xsl: Removed.
        * WebKitSite/projects/webkit: Removed.
        * WebKitSite/projects/webkit/index.html: Removed.
        * WebKitSite/projects/xml: Removed.
        * WebKitSite/projects/xml/index.html: Removed.
        * WebKitSite/projects/xslt: Removed.
        * WebKitSite/projects/xslt/index.html: Removed.
        * WebKitSite/quality: Removed.
        * WebKitSite/quality/.htaccess: Removed.
        * WebKitSite/quality/Ahem.ttf: Removed.
        * WebKitSite/quality/bugpriorities.html: Removed.
        * WebKitSite/quality/bugwriting.html: Removed.
        * WebKitSite/quality/bugzilla.html: Removed.
        * WebKitSite/quality/crashlogs.html: Removed.
        * WebKitSite/quality/leakhunting.html: Removed.
        * WebKitSite/quality/lifecycle.html: Removed.
        * WebKitSite/quality/mac_reportbox.jpg: Removed.
        * WebKitSite/quality/mac_viewtrace.jpg: Removed.
        * WebKitSite/quality/reduction.html: Removed.
        * WebKitSite/quality/reporting.html: Removed.
        * WebKitSite/quality/testing.html: Removed.
        * WebKitSite/quality/testwriting.html: Removed.
        * WebKitSite/quality/win_installwatson.jpg: Removed.
        * WebKitSite/quality/win_watsongui.jpg: Removed.
        * WebKitSite/quality/win_watsoninstalled.jpg: Removed.
        * WebKitSite/security: Removed.
        * WebKitSite/security/index.html: Removed.
        * WebKitSite/security/security-group-members.html: Removed.
        * WebKitSite/specs: Removed.
        * WebKitSite/specs/CSSVisualEffects: Removed.
        * WebKitSite/specs/CSSVisualEffects/css3-2d-transforms: Removed.
        * WebKitSite/specs/CSSVisualEffects/css3-3d-transforms: Removed.
        * WebKitSite/specs/CSSVisualEffects/css3-animations: Removed.
        * WebKitSite/specs/CSSVisualEffects/css3-transitions: Removed.
        * WebKitSite/specs/CSSVisualEffects/index.html: Removed.
        * WebKitSite/specs/HTML_Timed_Media_Elements.html: Removed.
        * WebKitSite/specs/MediaQueriesExtensions.html: Removed.
        * WebKitSite/specs/PointerEventsProperty.html: Removed.
        * WebKitSite/specs/Timed_Media_CSS.html: Removed.
        * WebKitSite/specs/Timed_Media_Elements-Open_Issues.html: Removed.
        * WebKitSite/specs/index.html: Removed.
        * WebKitSite/specs/mediaelement.css: Removed.
        * WebKitSite/specs/movie-status-states.png: Removed.
        * WebKitSite/specs/squirrelfish-bytecode.html: Removed.
        * cmake/WebKitPackaging.cmake:

2010-12-20  Joseph Pecoraro  <joepeck@webkit.org>

        Reviewed by Darin Adler.

        Update .gitattributes for WebKitTools -> Tools change
        https://bugs.webkit.org/show_bug.cgi?id=51365

        * .gitattributes: WebKitTools -> Tools rename. Removed no longer existing file references.

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

        Reviewed by Gustavo Noronha.

        * configure.ac: bump version for 1.3.8 release.

2010-12-20  David Levin  <levin@chromium.org>

        Reviewed by Ariya Hidayat.

        .gitignore and webkit-tools-completion.sh have references to WebKitTools that should be Tools.
        https://bugs.webkit.org/show_bug.cgi?id=51343

        Follow up from the WebKitTools -> Tools rename.

        * .gitignore:

2010-12-20  Ryuan Choi  <ryuan.choi@samsung.com>

        Reviewed by Antonio Gomes.

        [CMAKE] Rename WEBKITTOOLS_DIR to TOOLS_DIR
        https://bugs.webkit.org/show_bug.cgi?id=51319

        Change WEBKITTOOLS_DIR variable's name and value to TOOLS_DIR and tools/.

        * CMakeLists.txt:

2010-12-18  Adam Barth  <abarth@webkit.org>

        Reviewed by Sam Weinig.

        Move WebKitExamplePlugins to Examples
        https://bugs.webkit.org/show_bug.cgi?id=51291

        * Examples: Copied from WebKitExamplePlugins.
        * WebKitExamplePlugins: Removed.
        * WebKitExamplePlugins/NetscapeCocoaPlugin: Removed.
        * WebKitExamplePlugins/NetscapeCocoaPlugin/English.lproj: Removed.
        * WebKitExamplePlugins/NetscapeCocoaPlugin/English.lproj/InfoPlist.strings: Removed.
        * WebKitExamplePlugins/NetscapeCocoaPlugin/Info.plist: Removed.
        * WebKitExamplePlugins/NetscapeCocoaPlugin/MenuHandler.h: Removed.
        * WebKitExamplePlugins/NetscapeCocoaPlugin/MenuHandler.m: Removed.
        * WebKitExamplePlugins/NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj: Removed.
        * WebKitExamplePlugins/NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj/project.pbxproj: Removed.
        * WebKitExamplePlugins/NetscapeCocoaPlugin/main.m: Removed.
        * WebKitExamplePlugins/NetscapeCocoaPlugin/test.html: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/English.lproj: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/English.lproj/InfoPlist.strings: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/Info.plist: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/MovieControllerLayer.h: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/MovieControllerLayer.m: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/NetscapeCoreAnimationMoviePlugin.xcodeproj: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/NetscapeCoreAnimationMoviePlugin.xcodeproj/project.pbxproj: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/Pause.tiff: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/Play.tiff: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/SliderTrackCenter.tiff: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/SliderTrackLeft.tiff: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/SliderTrackRight.tiff: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/Thumb.tiff: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/main.m: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/test.html: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationPlugin: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationPlugin/Composition.qtz: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationPlugin/English.lproj: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationPlugin/English.lproj/InfoPlist.strings: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationPlugin/Info.plist: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationPlugin/NetscapeCoreAnimationPlugin.xcodeproj: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationPlugin/NetscapeCoreAnimationPlugin.xcodeproj/project.pbxproj: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationPlugin/main.m: Removed.
        * WebKitExamplePlugins/NetscapeCoreAnimationPlugin/test.html: Removed.
        * WebKitExamplePlugins/NetscapeInputMethodPlugin: Removed.
        * WebKitExamplePlugins/NetscapeInputMethodPlugin/English.lproj: Removed.
        * WebKitExamplePlugins/NetscapeInputMethodPlugin/English.lproj/InfoPlist.strings: Removed.
        * WebKitExamplePlugins/NetscapeInputMethodPlugin/Info.plist: Removed.
        * WebKitExamplePlugins/NetscapeInputMethodPlugin/NetscapeInputMethodPlugin.xcodeproj: Removed.
        * WebKitExamplePlugins/NetscapeInputMethodPlugin/NetscapeInputMethodPlugin.xcodeproj/project.pbxproj: Removed.
        * WebKitExamplePlugins/NetscapeInputMethodPlugin/main.m: Removed.
        * WebKitExamplePlugins/NetscapeInputMethodPlugin/test.html: Removed.
        * cmake/WebKitPackaging.cmake:

2010-12-17  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        Rename WebKitTools to Tools
        https://bugs.webkit.org/show_bug.cgi?id=49861

        * DerivedSources.pro:
        * GNUmakefile.am:
        * MakeFile:
        * MakeFile.shared:
        * Tools: Renamed from WebKitTools.
        * WebKit.pro:
        * cmake/WebKitPackaging.cmake:
        * wscript:

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

        [EFL] Unreviewed build fix.

        Disable ContextMenu support for now while support for
        CROSS_PLATFORM_MENUS is written.

        * cmake/OptionsEfl.cmake:

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

        Unreviewed, rolling out r74117.
        http://trac.webkit.org/changeset/74117
        https://bugs.webkit.org/show_bug.cgi?id=51113

        This broke the GTK1 build. (Requested by mrobinson on
        #webkit).

        * GNUmakefile.am:
        * configure.ac:

2010-12-15  Amruth Raj  <amruthraj@motorola.com> and Ravi Kasibhatla  <ravi.kasibhatla@motorola.com>

        Reviewed by Martin Robinson.

        Changes to enable building WebKit2 for Gtk port.
        (https://bugs.webkit.org/show_bug.cgi?id=37369)

        * GNUmakefile.am: Changes to build either of WebKit1 or WebKit2.
        It basically excludes all WebKit/gtk/webkit/ files when building WebKit2.
        Also, exludes Unittests, DumprenderTree, GtkLauncher etc for WebKit2.
        * configure.ac: Option for enable or disable WebKit2.

2010-12-14  Commit Queue  <commit-queue@webkit.org>

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

2010-12-14  Commit Queue  <commit-queue@webkit.org>

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

2010-12-14  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Eric Seidel.

        [git].DS_Store should be in .gitignore
        https://bugs.webkit.org/show_bug.cgi?id=51065

        Added .DS_Store to .gitignore.

        * .gitignore:

2010-12-14  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Eric Seidel.

        [EFL] Add linker script to export less symbols
        https://bugs.webkit.org/show_bug.cgi?id=44609

        Filter the exported symbols by using a linker script. Only symbols
        starting with "ewk_" are exported.

        * cmake/OptionsEfl.cmake: Pass linker option to use a version script
        when linking webkit.
        * cmake/eflsymbols.filter: Added. Export only symbols starting with
        "ewk_" (C linkage).

2010-12-13  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Unreviewed build fix for EFL.

        Remove DataSourceGStreamer.cpp in WebCore/CMakeListsEfl.txt
        Because, DataSourceGStreamer.cpp was removed by Bug 30007.

        * ../WebCore/CMakeListsEfl.txt:

2010-12-13  Andras Becsi  <abecsi@webkit.org>

        Reviewed by Csaba Osztrogonác.

        [Qt][WK2] Fix build if WebKitTools are not available
        https://bugs.webkit.org/show_bug.cgi?id=50242

        * DerivedSources.pro: add new DerivedSources.pro to SUBDIRS.

2010-12-06  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Martin Robinson.

        [GTK] Support the Mozilla-style Fullscreen Javascript API
        https://bugs.webkit.org/show_bug.cgi?id=50572

        * configure.ac: new configure flag to disable the new Javascript
        Fullscreen API build. It is enabled by default.

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

        Reviewed by Xan Lopez.

        [GTK] configure: error out if video is enabled and gstreamer pkg-config check fails
        https://bugs.webkit.org/show_bug.cgi?id=50741

        * configure.ac:

2010-12-07  Patrick Gansterer  <paroga@webkit.org>

        Reviewed by Andreas Kling.

        [CMake] Remove WebKitGenerators
        https://bugs.webkit.org/show_bug.cgi?id=50445

        * CMakeLists.txt:
        * cmake/WebKitGenerators.cmake: Removed.

2010-12-06  Patrick Gansterer  <paroga@webkit.org>

        Reviewed by Andreas Kling.

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

        * cmake/OptionsWinCE.cmake: Added.
        * cmake/OptionsWindows.cmake: Added.

2010-12-04  Patrick Gansterer  <paroga@webkit.org>

        Reviewed by Andreas Kling.

        [CMake] Better detection of ARM platform
        https://bugs.webkit.org/show_bug.cgi?id=50452

        * CMakeLists.txt:

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

        Unreviewed build fix for GTK+.

        Add configure.ac-fu for WebAudio.

        * configure.ac:

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

        Reviewed by Eric Seidel.

        [EFL] Fails to build with non-system cairo
        https://bugs.webkit.org/show_bug.cgi?id=50395

        Do not add 'cairo' as a suffix for the paths provided by
        pkgconfig. The paths provided by pkgconfig already include it.

        * cmake/FindCairo.cmake:

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

        Third attempt to fix the build.

        * autotools/symbols.filter: be more liberal in one more symbol.

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

        Another attempt to fix the GTK+ build.

        * autotools/symbols.filter: try to be more liberal with the
        mangled names of some symbols.

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

        Try to fix GTK+ build.

        * autotools/symbols.filter: add missing ';'.

2010-12-02  Martin Robinson  <mrobinson@igalia.com>

        Attempt to fix the GTK+ build. Add missing symbol the
        list of unfiltered symbols for the linker.

        * autotools/symbols.filter: Add symbol used in DumpRenderTree.

2010-12-02  Martin Robinson  <mrobinson@igalia.com>

        Reviewed by Xan Lopez.

        [GTK] DumpRenderTree has two copies of JavaScriptCore
        https://bugs.webkit.org/show_bug.cgi?id=49877

        Prevent the need to compile JSC into DumpRenderTree twice, by adjusting
        the symbol visibility rules for libwebkit. Make all JSC symbols visible,
        while hiding WebCore/WebKit symbols.

        * GNUmakefile.am: Move the symbol visibility flags to the WebKit build.
        * autotools/symbols.filter: Update the symbol filter list with the real
        mangled names of the symbols and include other symbols that DRT needs.

2010-12-02  Daniel Bates  <dbates@rim.com>

        Add autotools generated files to svn:ignore so that these
        files do not show up in an svn stat.

        * .: Added properties svn:ignore, svn:ignore and svn:ignore. Modified property svn:ignore.
        * autotools: Added property svn:ignore.

2010-12-01  Adam Roben  <aroben@apple.com>

        Teach git to ignore files installed by WebKitSupportLibrary and
        WebKitAuxiliaryLibrary

        Fixes <http://webkit.org/b/50348> Git complains about lots of
        untracked files in WebKitLibraries/win

        Reviewed by Steve Falkenburg.

        * .gitignore: Added files from these libraries.

2010-12-01  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Adam Roben.

        vcproj changes can't be applied cleanly by the Windows EWS bot
        https://bugs.webkit.org/show_bug.cgi?id=50328

        * .gitattributes:

2010-11-30  Patrick Gansterer  <paroga@webkit.org>

        Reviewed by Andreas Kling.

        [CMake] Use preprocessor argument in GENERATE_DOM_NAMES
        https://bugs.webkit.org/show_bug.cgi?id=49886

        * cmake/WebKitMacros.cmake:

2010-11-30  Patrick Gansterer  <paroga@webkit.org>

        Reviewed by Andreas Kling.

        Move generator logic into WebCore CMakeLists.txt file
        https://bugs.webkit.org/show_bug.cgi?id=49885

        * cmake/WebKitMacros.cmake:

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

        Reviewed by Martin Robinson.

        * configure.ac: bump version for 1.3.7 release.

2010-11-28  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Antonio Gomes.

        [Qt] Remove unused BASE_DIR from the build system
        https://bugs.webkit.org/show_bug.cgi?id=50132

        * WebKit.pri:

2010-11-24  Hayato Ito  <hayato@chromium.org>

        Reviewed by David Levin.

        Add files which Chromium port generates to .gitignore.

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

        * .gitignore:

2010-11-23  Patrick Gansterer  <paroga@webkit.org>

        Reviewed by David Levin.

        Add WebKit2 VisualStudio files to .gitattributes
        https://bugs.webkit.org/show_bug.cgi?id=49969

        * .gitattributes:

2010-11-19  Mihai Parparita  <mihaip@chromium.org>

        Add recent upstream Chromium dependencies to .gitignore.

        * .gitignore:

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

        Reviewed by Gustavo Noronha Silva.

        [GTK] Changing any GNUmakefile.am in the source tree forces a rebuld of the DOM bindings and WebKit APi
        https://bugs.webkit.org/show_bug.cgi?id=49400

        Move WebKit API build rules out of GNUmakefile.am. These are now in
        WebKit/gtk/GNUmakefile.am.

        * GNUmakefile.am: Remove WebKit API build rules.

2010-11-17  Commit Queue  <commit-queue@webkit.org>

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

2010-11-16  Andreas Kling  <kling@webkit.org>

        Unreviewed typo fix for previous commit.

        * common.pri:

2010-11-16  Andreas Kling  <kling@webkit.org>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt][Scratchbox] Use gold linker explicitly when available

        gold is faster at linking QtWebKit than binutils ld, but it cannot be
        enabled by default on a system that compiles other Qt projects.
        This is due to gold not supporting the --add-needed flag.

        Original patch by Kimmo Kinnunen.

        * common.pri:

2010-11-16  Andreas Kling  <kling@webkit.org>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Add 'valgrind' build mode

        Passing CONFIG+=valgrind to qmake will now build WebKit in a way
        suitable for debugging with Valgrind.

        Original patch by Christian Sejersen.

        * WebKit.pri:

2010-11-15  Patrick Gansterer  <paroga@webkit.org>

        Reviewed by Andreas Kling.

        [CMake] Add additional flags to cmakeconfig.h
        https://bugs.webkit.org/show_bug.cgi?id=49556

        * cmake/OptionsEfl.cmake:
        * cmakeconfig.h.cmake:

2010-11-14  Ryuan Choi  <ryuan.choi@samsung.com>

        Reviewed by Martin Robinson.

        [EFL] add pango support
        https://bugs.webkit.org/show_bug.cgi?id=46029

        Add FONT_BACKEND option to switch between pango and freetype.

        * cmake/OptionsEfl.cmake:

2010-11-11  Eric Seidel  <eric@webkit.org>

        Rubber-stamped by Adam Roben.

        * .: Modified property svn:ignore.
         - Add WebKitSupportLibrary.zip and WebKitBuild to the root ignore list.

2010-11-10  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by David Hyatt.

        HTML5 Ruby support should be mandatory feature
        https://bugs.webkit.org/show_bug.cgi?id=49272

        Remove Ruby as optional feature.

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

2010-11-09  Gavin Peters  <gavinp@chromium.org>

        Reviewed by Xan Lopez.

        gtk platform doesn't support link prefetch
        https://bugs.webkit.org/show_bug.cgi?id=49234

        * configure.ac:

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

        Reviewed by Martin Robinson.

        Update version numbers for release.

        * configure.ac:

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

        Reviewed by Adam Barth.

        [EFL] Enable HTML5 Video
        https://bugs.webkit.org/show_bug.cgi?id=48972 

        Enable HTML 5 Video option for WebKit EFL. 

        * cmake/OptionsEfl.cmake:

2010-11-01  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>

        Reviewed by Andreas Kling.

        [Qt][Symbian] QtTestBrowser runs out of memory with most of javascript benchmarks.
        https://bugs.webkit.org/show_bug.cgi?id=48730

        Increase the maximum heap size on Symbian to 256 MB.

        * WebKit.pri:

2010-10-29  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Adam Roben and David Kilzer.

        Fix and cleanup of build systems
        https://bugs.webkit.org/show_bug.cgi?id=48342

        * cmake/OptionsEfl.cmake: Remove unnecessary ENABLE_SANDBOX.
        * cmakeconfig.h.cmake:
        * configure.ac:

2010-10-26  Antonio Gomes  <agomes@rim.com>

        Reviewed by Martin Robinson.

        [GTK] Implement DumpRenderTreeSupportGtk (similarly to DumpRenderTreeSupportQt idea)
        https://bugs.webkit.org/show_bug.cgi?id=48199

        * GNUmakefile.am: Added WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp|h to GTK+'s build system;
        * autotools/symbols.filter: Added DumpRenderTreeSupportGtk symbols to symbols.filter so they do not get
          filtered and get visible by DRT.

2010-10-24  Anders Bakken  <agbakken@gmail.com>

        Reviewed by Simon Hausmann.

        [Qt] Disable enable_fast_mobile_scrolling for QWS
        https://bugs.webkit.org/show_bug.cgi?id=48006

        Turning this on breaks the acidtests for QWS/DirectFB and QWS/QVFB

        * WebKit.pri:

2010-10-22  Adam Barth  <abarth@webkit.org>

        Unreviewed, rolling out r70290.
        http://trac.webkit.org/changeset/70290
        https://bugs.webkit.org/show_bug.cgi?id=48111

        Undelete Android build files.

        * Android.mk: Added.

2010-10-21  Adam Barth  <abarth@webkit.org>

        Reviewed by David Levin.

        Remove Android build system
        https://bugs.webkit.org/show_bug.cgi?id=48111

        * Android.mk: Removed.

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

