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

