2019-12-05  Sihui Liu  <sihui_liu@apple.com>

        Move InProcessIDBServer to WebKitLegacy
        https://bugs.webkit.org/show_bug.cgi?id=204896

        Reviewed by Brady Eidson.

        * CMakeLists.txt:
        * Storage/InProcessIDBServer.cpp: Renamed from Source/WebCore/Modules/indexeddb/shared/InProcessIDBServer.cpp.
        (InProcessIDBServer::create):
        (InProcessIDBServer::quotaManager):
        (storageQuotaManagerSpaceRequester):
        (InProcessIDBServer::InProcessIDBServer):
        (InProcessIDBServer::identifier const):
        (InProcessIDBServer::connectionToServer const):
        (InProcessIDBServer::connectionToClient const):
        (InProcessIDBServer::deleteDatabase):
        (InProcessIDBServer::didDeleteDatabase):
        (InProcessIDBServer::openDatabase):
        (InProcessIDBServer::didOpenDatabase):
        (InProcessIDBServer::didAbortTransaction):
        (InProcessIDBServer::didCommitTransaction):
        (InProcessIDBServer::didCreateObjectStore):
        (InProcessIDBServer::didDeleteObjectStore):
        (InProcessIDBServer::didRenameObjectStore):
        (InProcessIDBServer::didClearObjectStore):
        (InProcessIDBServer::didCreateIndex):
        (InProcessIDBServer::didDeleteIndex):
        (InProcessIDBServer::didRenameIndex):
        (InProcessIDBServer::didPutOrAdd):
        (InProcessIDBServer::didGetRecord):
        (InProcessIDBServer::didGetAllRecords):
        (InProcessIDBServer::didGetCount):
        (InProcessIDBServer::didDeleteRecord):
        (InProcessIDBServer::didOpenCursor):
        (InProcessIDBServer::didIterateCursor):
        (InProcessIDBServer::abortTransaction):
        (InProcessIDBServer::commitTransaction):
        (InProcessIDBServer::didFinishHandlingVersionChangeTransaction):
        (InProcessIDBServer::createObjectStore):
        (InProcessIDBServer::deleteObjectStore):
        (InProcessIDBServer::renameObjectStore):
        (InProcessIDBServer::clearObjectStore):
        (InProcessIDBServer::createIndex):
        (InProcessIDBServer::deleteIndex):
        (InProcessIDBServer::renameIndex):
        (InProcessIDBServer::putOrAdd):
        (InProcessIDBServer::getRecord):
        (InProcessIDBServer::getAllRecords):
        (InProcessIDBServer::getCount):
        (InProcessIDBServer::deleteRecord):
        (InProcessIDBServer::openCursor):
        (InProcessIDBServer::iterateCursor):
        (InProcessIDBServer::establishTransaction):
        (InProcessIDBServer::fireVersionChangeEvent):
        (InProcessIDBServer::didStartTransaction):
        (InProcessIDBServer::didCloseFromServer):
        (InProcessIDBServer::notifyOpenDBRequestBlocked):
        (InProcessIDBServer::databaseConnectionPendingClose):
        (InProcessIDBServer::databaseConnectionClosed):
        (InProcessIDBServer::abortOpenAndUpgradeNeeded):
        (InProcessIDBServer::didFireVersionChangeEvent):
        (InProcessIDBServer::openDBRequestCancelled):
        (InProcessIDBServer::confirmDidCloseFromServer):
        (InProcessIDBServer::getAllDatabaseNames):
        (InProcessIDBServer::didGetAllDatabaseNames):
        * Storage/InProcessIDBServer.h: Added.
        * Storage/WebDatabaseProvider.cpp:
        (WebDatabaseProvider::idbConnectionToServerForSession):
        (WebDatabaseProvider::deleteAllDatabases):
        * Storage/WebDatabaseProvider.h:
        * WebKitLegacy.xcodeproj/project.pbxproj:

2019-12-04  Chris Dumez  <cdumez@apple.com>

        PageConfiguration::progressTrackerClient should use a smart pointer
        https://bugs.webkit.org/show_bug.cgi?id=204854

        Reviewed by Alex Christensen.

        * PlatformWin.cmake:

2019-12-02  Fujii Hironori  <Hironori.Fujii@sony.com>

        [AppleWin] WebKitQuartzCoreAdditions.dll isn't compiled since r248444
        https://bugs.webkit.org/show_bug.cgi?id=204695

        Reviewed by Alex Christensen.

        * CMakeLists.txt: Replaced APPLE with USE_CA in the condition of
        building WebKitQuartzCoreAdditions.

2019-10-31  Alex Christensen  <achristensen@apple.com>

        Enable more features in Mac CMake build
        https://bugs.webkit.org/show_bug.cgi?id=203699

        Rubber-stamped by Tim Horton.

        * PlatformMac.cmake:

2019-10-31  Alex Christensen  <achristensen@webkit.org>

        CMake build should make WebKit framework able to be used by Safari
        https://bugs.webkit.org/show_bug.cgi?id=203685

        Rubber-stamped by Tim Horton.

        * PlatformMac.cmake:

2019-10-01  Alex Christensen  <achristensen@webkit.org>

        Progress towards successful CMake build on Mac
        https://bugs.webkit.org/show_bug.cgi?id=202426

        Rubber-stamped by Tim Horton.

        * PlatformMac.cmake:

2019-10-01  Alex Christensen  <achristensen@webkit.org>

        Unify more WebKitLegacy sources
        https://bugs.webkit.org/show_bug.cgi?id=202410

        Reviewed by Tim Horton.

        * SourcesCocoa.txt:
        * UnifiedSources-output.xcfilelist:
        * WebKitLegacy.xcodeproj/project.pbxproj:
        * scripts/generate-unified-sources.sh:

2019-09-30  Alex Christensen  <achristensen@webkit.org>

        Resurrect Mac CMake build
        https://bugs.webkit.org/show_bug.cgi?id=202384

        Rubber-stamped by Tim Horton.

        * PlatformMac.cmake:

2019-09-30  Alex Christensen  <achristensen@webkit.org>

        Unify more WebKitLegacy sources
        https://bugs.webkit.org/show_bug.cgi?id=202390

        Reviewed by Tim Horton.

        These files were causing problems with the CMake build, but only if not unified.
        So I unified them and sped up the build too, without changing any behavior.

        * SourcesCocoa.txt:
        * UnifiedSources-output.xcfilelist:
        * WebKitLegacy.xcodeproj/project.pbxproj:
        * scripts/generate-unified-sources.sh:

2019-09-10  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed, rolling out r239097.

        This is not a right fix. DumpRenderTree, MiniBrowser and
        TestWebKitAPI are still reporting the same warning.

        Reverted changeset:

        "[Win][WebKitLegacy][Clang] WebKit.h warning:
        'IWebEditingDelegate2::shouldInsertNode' hides overloaded
        virtual function [-Woverloaded-virtual]"
        https://bugs.webkit.org/show_bug.cgi?id=192581
        https://trac.webkit.org/changeset/239097

2019-09-03  Chris Dumez  <cdumez@apple.com>

        FrameLoader::FrameProgressTracker::progressCompleted() does not need a pageID
        https://bugs.webkit.org/show_bug.cgi?id=201431

        Reviewed by Antti Koivisto.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::pageLoadCompleted):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2019-08-30  Brent Fulgham  <bfulgham@apple.com>

        [FTW] Use DirectX SharedResource as basis for SharedBitmap
        https://bugs.webkit.org/show_bug.cgi?id=201157

        Reviewed by Alex Christensen.

        * PlatformFTW.cmake: Link to DirectX to avoid build failure.

2019-08-19  Sihui Liu  <sihui_liu@apple.com>

        Remove IDB-specific quota
        https://bugs.webkit.org/show_bug.cgi?id=196545
        <rdar://problem/54201783>

        Reviewed by Youenn Fablet.

        * Storage/WebDatabaseProvider.cpp:
        (WebDatabaseProvider::setIDBPerOriginQuota): Deleted.
        * Storage/WebDatabaseProvider.h:

2019-08-19  Youenn Fablet  <youenn@apple.com>

        Remove SessionID::emptySessionID()
        https://bugs.webkit.org/show_bug.cgi?id=200811

        Reviewed by Alex Christensen.

        * Storage/WebDatabaseProvider.cpp:
        (WebDatabaseProvider::idbConnectionToServerForSession):
        * Storage/WebDatabaseProvider.h:

2019-08-18  Yusuke Suzuki  <ysuzuki@apple.com>

        [WTF] Add makeUnique<T>, which ensures T is fast-allocated, makeUnique / makeUniqueWithoutFastMallocCheck part
        https://bugs.webkit.org/show_bug.cgi?id=200620

        Reviewed by Geoffrey Garen.

        * Storage/StorageSyncManager.cpp:
        (WebCore::StorageSyncManager::StorageSyncManager):
        * Storage/StorageThread.cpp:
        (WebCore::StorageThread::dispatch):
        (WebCore::StorageThread::terminate):
        * Storage/StorageTracker.cpp:
        (WebKit::StorageTracker::StorageTracker):
        * WebCoreSupport/NetworkStorageSessionMap.cpp:
        (NetworkStorageSessionMap::defaultStorageSession):
        (NetworkStorageSessionMap::switchToNewTestingSession):
        (NetworkStorageSessionMap::ensureSession):

2019-08-15  Brent Fulgham  <bfulgham@apple.com>

        [FTW] Enable CoreFoundation use if building for Apple target
        https://bugs.webkit.org/show_bug.cgi?id=200799

        Reviewed by Alex Christensen.

        * PlatformFTW.cmake:

2019-08-15  Sihui Liu  <sihui_liu@apple.com>

        Some improvements on web storage
        https://bugs.webkit.org/show_bug.cgi?id=200373

        Reviewed by Geoffrey Garen.

        Do some clean-up and add support for session change of web storage in layout tests.

        * Storage/StorageAreaImpl.cpp:
        (WebKit::StorageAreaImpl::sessionChanged):
        * Storage/StorageAreaImpl.h:
        (): Deleted.

        * Storage/StorageAreaSync.h: make sure StorageAreaSync is destructed on the main thread, as it can be 
        dereferenced in StorageAreaImpl::sessionChanged and its last reference for final sync could be released on the 
        background thread.

        * Storage/StorageNamespaceImpl.cpp: replace EphemeralLocalStorage with LocalStorage, and store SessionID in 
        StorageNamespace.
        (WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
        (WebKit::StorageNamespaceImpl::getOrCreateLocalStorageNamespace):
        (WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
        (WebKit::StorageNamespaceImpl::copy):
        (WebKit::StorageNamespaceImpl::close):
        (WebKit::StorageNamespaceImpl::setSessionIDForTesting):
        (WebKit::StorageNamespaceImpl::createEphemeralLocalStorageNamespace): Deleted.
        * Storage/StorageNamespaceImpl.h:
        * Storage/WebStorageNamespaceProvider.cpp:
        (WebKit::WebStorageNamespaceProvider::createSessionStorageNamespace):
        (WebKit::WebStorageNamespaceProvider::createLocalStorageNamespace):
        (WebKit::WebStorageNamespaceProvider::createTransientLocalStorageNamespace):
        (WebKit::WebStorageNamespaceProvider::createEphemeralLocalStorageNamespace): Deleted.
        * Storage/WebStorageNamespaceProvider.h:

2019-08-14  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r248526.

        Caused two IndexedDB perf tests to fail

        Reverted changeset:

        "Remove IDB-specific quota"
        https://bugs.webkit.org/show_bug.cgi?id=196545
        https://trac.webkit.org/changeset/248526

2019-08-12  Youenn Fablet  <youenn@apple.com>

        Remove IDB-specific quota
        https://bugs.webkit.org/show_bug.cgi?id=196545

        Reviewed by Alex Christensen.

        * Storage/WebDatabaseProvider.cpp:
        (WebDatabaseProvider::idbConnectionToServerForSession):
        (WebDatabaseProvider::deleteAllDatabases):
        (WebDatabaseProvider::setIDBPerOriginQuota): Deleted.
        * Storage/WebDatabaseProvider.h:

2019-08-10  Tim Horton  <timothy_horton@apple.com>

        Remove some more unused 32-bit code
        https://bugs.webkit.org/show_bug.cgi?id=200607

        Reviewed by Alexey Proskuryakov.

        * PlatformMac.cmake:
        * WebKitLegacy.xcodeproj/project.pbxproj:

2019-08-09  Keith Rollin  <krollin@apple.com>

        Fix WebKitLegacy's post-process-header-rule script to support paths with spaces in them
        https://bugs.webkit.org/show_bug.cgi?id=200595
        <rdar://problem/54045608>

        Reviewed by Darin Adler.

        A number of scripts were added to WebKit, JavaScriptCore, and
        WebKitLegacy to support XCBuild's new facility for copying and
        modifying files in one atomic step. The first two are OK, but
        WebKitLegacy's script (post-process-header-rule) references a file via
        a variable named "header", and does so without quoting the variable's
        value. When the header's path contains spaces -- as can happen when
        building Safari Technology Preview -- the script breaks. Fix this by
        adding quoting.

        * scripts/postprocess-header-rule:

2019-08-08  Brent Fulgham  <bfulgham@apple.com>

        [FTW] Get WebKit, WebKit2, and MiniBrowser building and executing
        https://bugs.webkit.org/show_bug.cgi?id=200539
        <rdar://problem/54082550>

        Reviewed by Dean Jackson.

        * CMakeLists.txt:
        * PlatformFTW.cmake: Added.

2019-08-06  Per Arne Vollan  <pvollan@apple.com>

        [Win] Fix AppleWin build
        https://bugs.webkit.org/show_bug.cgi?id=200455

        Reviewed by Alex Christensen.

        * CMakeLists.txt:
        * PlatformWin.cmake:
        * WebKitLegacy.vcxproj/WebKitLegacy.proj:

2019-07-31  Keith Rollin  <krollin@apple.com>

        Update WebKitLegacy for XCBuild
        https://bugs.webkit.org/show_bug.cgi?id=200310
        <rdar://problem/53773708>

        Reviewed by Alex Christensen.

        Bug 199771 (svn r247570) updated WebKitLegacy to use the unified-build
        technique. Now update WebKitLegacy to build under XCBuild after those
        changes. This work involves adding an "Apply Configuration to
        XCFileLists" build target, adding a check-xcfilelists.sh script,
        adding a "Check xcfilelists" build phase that calls that script,
        adding knowledge of the project to the generate-xcfilelists script,
        creating new .xcfilelist files, and adding those to the project.

        * UnifiedSources-output.xcfilelist: Added.
        * WebKitLegacy.xcodeproj/project.pbxproj:
        * scripts/check-xcfilelists.sh: Added.

2019-07-18  Alex Christensen  <achristensen@webkit.org>

        Unify builds in WebKitLegacy/mac/DOM
        https://bugs.webkit.org/show_bug.cgi?id=199771

        Reviewed by Geoffrey Garen.

        * SourcesCocoa.txt:
        * WebKitLegacy.xcodeproj/project.pbxproj:
        * scripts/generate-unified-sources.sh:

2019-07-16  Chris Dumez  <cdumez@apple.com>

        Speed up StorageManager::getValues()
        https://bugs.webkit.org/show_bug.cgi?id=199812

        Reviewed by Alex Christensen.

        * Storage/StorageAreaImpl.cpp:
        (WebKit::StorageAreaImpl::importItems):
        * Storage/StorageAreaImpl.h:
        * Storage/StorageAreaSync.cpp:
        (WebKit::StorageAreaSync::performImport):

2019-07-12  Alex Christensen  <achristensen@webkit.org>

        Begin unifying WebKitLegacy sources
        https://bugs.webkit.org/show_bug.cgi?id=199730

        Reviewed by Keith Miller.

        * Sources.txt: Added.
        * SourcesCocoa.txt: Added.
        * WebKitLegacy.xcodeproj/project.pbxproj:
        * scripts/generate-unified-sources.sh: Added.

2019-07-03  Jonathan Bedard  <jbedard@apple.com>

        [Catalina] Enable WebKit build
        https://bugs.webkit.org/show_bug.cgi?id=199209

        Reviewed by Darin Adler.

        * mac/WebView/WebHTMLView.mm: Move NSView declaration to SPI header.
        * mac/WebView/WebView.mm: Use _subviewsIvar instead of _subviews.

2019-06-27  Fujii Hironori  <Hironori.Fujii@sony.com>

        [CMake] Bump cmake_minimum_required version to 3.10
        https://bugs.webkit.org/show_bug.cgi?id=199181

        Reviewed by Don Olmstead.

        * CMakeLists.txt:

2019-06-05  Alex Christensen  <achristensen@webkit.org>

        Progress towards resurrecting Mac CMake build
        https://bugs.webkit.org/show_bug.cgi?id=197132

        Reviewed by Don Olmstead.

        * PlatformMac.cmake:

2019-06-03  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Add WebKit::JavaScriptCore target
        https://bugs.webkit.org/show_bug.cgi?id=198403

        Reviewed by Konstantin Tokarev.

        Use the WebKit::JavaScriptCore target.

        * CMakeLists.txt:

2019-05-31  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Add WebKit::WTF target
        https://bugs.webkit.org/show_bug.cgi?id=198400

        Reviewed by Konstantin Tokarev.

        Use the WebKit::WTF target.

        * PlatformWin.cmake:

2019-05-27  Chris Dumez  <cdumez@apple.com>

        Use a strongly-typed identifier for pages
        https://bugs.webkit.org/show_bug.cgi?id=198206

        Reviewed by Youenn Fablet.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::pageLoadCompleted):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2019-05-17  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Use builtin FindICU
        https://bugs.webkit.org/show_bug.cgi?id=197934

        Reviewed by Michael Catanzaro.

        Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES.

        * CMakeLists.txt:
        * PlatformWin.cmake:

2019-05-03  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r244881.
        https://bugs.webkit.org/show_bug.cgi?id=197559

        Breaks compilation of jsconly on linux, breaking compilation
        for jsc-i386-ews, jsc-mips-ews and jsc-armv7-ews (Requested by
        guijemont on #webkit).

        Reverted changeset:

        "[CMake] Refactor WEBKIT_MAKE_FORWARDING_HEADERS into
        WEBKIT_COPY_FILES"
        https://bugs.webkit.org/show_bug.cgi?id=197174
        https://trac.webkit.org/changeset/244881

2019-05-02  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Refactor WEBKIT_MAKE_FORWARDING_HEADERS into WEBKIT_COPY_FILES
        https://bugs.webkit.org/show_bug.cgi?id=197174

        Reviewed by Alex Christensen.

        Replace WEBKIT_MAKE_FORWARDING_HEADERS with WEBKIT_COPY_FILES and make dependencies
        for framework headers explicit.

        * PlatformWin.cmake:

2019-04-25  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed, rolling out r244669.

        Windows ports can't clean build.

        Reverted changeset:

        "[Win] Add flag to enable version information stamping and
        disable by default."
        https://bugs.webkit.org/show_bug.cgi?id=197249
        https://trac.webkit.org/changeset/244669

2019-04-25  Basuke Suzuki  <Basuke.Suzuki@sony.com>

        [Win] Add flag to enable version information stamping and disable by default.
        https://bugs.webkit.org/show_bug.cgi?id=197249

        Reviewed by Ross Kirsling.

        This feature is only used in AppleWin port. Add flag for this task and make it OFF by default.
        Then enable it by default on AppleWin.

        * PlatformWin.cmake:

2019-04-23  Keith Rollin  <krollin@apple.com>

        Add Xcode version check for Header post-processing scripts
        https://bugs.webkit.org/show_bug.cgi?id=197116
        <rdar://problem/50058968>

        Reviewed by Brent Fulgham.

        There are several places in our Xcode projects that post-process
        header files after they've been exported. Because of XCBuild, we're
        moving to a model where the post-processing is performed at the same
        time the header files are exported, rather than as a distinct
        post-processing step. This patch disables the distinct step when the
        inline processing is available.

        In practice, this means prefixing appropriate post-processing Custom
        Build phases with:

        if [ "${XCODE_VERSION_MAJOR}" -ge "1100" -a "${USE_NEW_BUILD_SYSTEM}" = "YES" ]; then
            # In this configuration, post-processing is performed at the same time as copying in the postprocess-header-rule script, so there's no need for this separate step.
            exit 0
        fi

        * WebKitLegacy.xcodeproj/project.pbxproj:

2019-04-20  Don Olmstead  <don.olmstead@sony.com>

        [CMake][Win] Use target oriented design for WebKitLegacy
        https://bugs.webkit.org/show_bug.cgi?id=197112

        Reviewed by Konstantin Tokarev.

        Enumerate the public framework headers for WebKitLegacy and copy them. Include
        directories should be PRIVATE. Migrate to using WebKitLegacy_DERIVED_SOURCES_DIR.

        * CMakeLists.txt:
        * PlatformMac.cmake:
        * PlatformWin.cmake:

2019-04-19  Keith Rollin  <krollin@apple.com>

        Add postprocess-header-rule scripts
        https://bugs.webkit.org/show_bug.cgi?id=197072
        <rdar://problem/50027299>

        Reviewed by Brent Fulgham.

        Several projects have post-processing build phases where exported
        headers are tweaked after they've been copied. This post-processing is
        performed via scripts called postprocess-headers.sh. For reasons
        related to XCBuild, we are now transitioning to a build process where
        the post-processing is performed at the same time as the
        exporting/copying. To support this process, add similar scripts named
        postprocess-header-rule, which are geared towards processing a single
        file at a time rather than all exported files at once. Also add a
        build rule that makes use of these scripts. These scripts and build
        rules are not used at the moment; they will come into use in an
        imminent patch.

        Note that I've named these postprocess-header-rule rather than
        postprocess-header-rule.sh. Scripts in Tools/Scripts do not have
        suffixes indicating how the tool is implemented. Scripts in
        per-project Scripts folders appear to be mixed regarding the use of
        suffixes. I'm opting here to follow the Tools/Scripts convention, with
        the expectation that over time we completely standardize on that.

        * WebKitLegacy.xcodeproj/project.pbxproj:
        * scripts/postprocess-header-rule: Added.

2019-04-18  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Make WebCore headers copies
        https://bugs.webkit.org/show_bug.cgi?id=182512
        <rdar://problem/37510435>

        Reviewed by Alex Christensen.

        Added WebCorePrivateFrameworkHeaders as a dependency of WebKitLegacy for all
        ports.

        WebCore now uses WebCore_PRIVATE_INCLUDE_DIRECTORIES for all ports. This revealed
        problems with WebKit's usage of WebCore headers. All include directories directly
        referencing the WebCore source tree we're removed from the CMake files.

        * CMakeLists.txt:
        * PlatformWin.cmake:

2019-04-18  Keith Rollin  <krollin@apple.com>

        Move MiG .def files into their own "Copy files" build step
        https://bugs.webkit.org/show_bug.cgi?id=196982

        Reviewed by Alex Christensen.

        WebKitLegacy's MiG files need to be processed differently from the
        other files in the "Copy Headers" build phase, so move them into their
        own "Copy Files" build phase. This arrangement removes them from any
        post-processing performed on the main group of headers.

        * WebKitLegacy.xcodeproj/project.pbxproj:

2019-04-17  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r244386.
        https://bugs.webkit.org/show_bug.cgi?id=197031

        Causing build failures on several internal builders (Requested
        by ShawnRoberts on #webkit).

        Reverted changeset:

        "Move MiG .def files into their own "Copy files" build step"
        https://bugs.webkit.org/show_bug.cgi?id=196982
        https://trac.webkit.org/changeset/244386

2019-04-17  Keith Rollin  <krollin@apple.com>

        Move MiG .def files into their own "Copy files" build step
        https://bugs.webkit.org/show_bug.cgi?id=196982

        Reviewed by Alex Christensen.

        WebKitLegacy's MiG files need to be processed differently from the
        other files in the "Copy Headers" build phase, so move them into their
        own "Copy Files" build phase. This arrangement removes them from any
        post-processing performed on the main group of headers.

        * WebKitLegacy.xcodeproj/project.pbxproj:

2019-04-08  Don Olmstead  <don.olmstead@sony.com>

        [CMake][WinCairo] Separate copied headers into different directories
        https://bugs.webkit.org/show_bug.cgi?id=196655

        Reviewed by Michael Catanzaro.

        * CMakeLists.txt:
        * PlatformWin.cmake:

2019-04-05  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r243833.
        https://bugs.webkit.org/show_bug.cgi?id=196645

        This change breaks build of WPE and GTK ports (Requested by
        annulen on #webkit).

        Reverted changeset:

        "[CMake][WTF] Mirror XCode header directories"
        https://bugs.webkit.org/show_bug.cgi?id=191662
        https://trac.webkit.org/changeset/243833

2019-04-03  Don Olmstead  <don.olmstead@sony.com>

        [CMake][WTF] Mirror XCode header directories
        https://bugs.webkit.org/show_bug.cgi?id=191662

        Reviewed by Konstantin Tokarev.

        Use WTFFramework as a dependency and include frameworks/WTF.cmake for AppleWin internal
        builds.

        * CMakeLists.txt:
        * PlatformWin.cmake:

2019-04-02  Fujii Hironori  <Hironori.Fujii@sony.com>

        [CMake] WEBKIT_MAKE_FORWARDING_HEADERS shouldn't use POST_BUILD to copy generated headers
        https://bugs.webkit.org/show_bug.cgi?id=182757

        Reviewed by Don Olmstead.

        * PlatformWin.cmake: Do not use DERIVED_SOURCE_DIRECTORIES
        parameter of WEBKIT_MAKE_FORWARDING_HEADERS. Added
        WebKitLegacyGUID_PRIVATE_FRAMEWORK_HEADERS.

2019-03-13  Youenn Fablet  <youenn@apple.com>

        Check IDB quota usage through QuotaManager
        https://bugs.webkit.org/show_bug.cgi?id=195302

        Reviewed by Chris Dumez.

        * Storage/WebDatabaseProvider.cpp:
        (WebDatabaseProvider::idbConnectionToServerForSession):

2019-03-06  Sam Weinig  <sam@webkit.org>

        WebKitLegacy does not need to generate an export file for i386 anymore
        https://bugs.webkit.org/show_bug.cgi?id=195380

        Reviewed by Dan Bernstein.

        * WebKitLegacy.xcodeproj/project.pbxproj:
        Update and simplify the "Generate Export Files" phase now that we don't need
        separate export files for i386 and x86_64.

2019-03-01  Tim Horton  <timothy_horton@apple.com>

        Remove unused code in WebKitLegacy
        https://bugs.webkit.org/show_bug.cgi?id=189614

        Reviewed by Simon Fraser.

        * WebKitLegacy.xcodeproj/project.pbxproj:

2019-02-20  Andy Estes  <aestes@apple.com>

        [Xcode] Add SDKVariant.xcconfig to various Xcode projects
        https://bugs.webkit.org/show_bug.cgi?id=194869

        Rubber-stamped by Jer Noble.

        * WebKitLegacy.xcodeproj/project.pbxproj:

2019-01-31  Takashi Komori  <Takashi.Komori@sony.com>

        [Curl] Remove unnecessary member from NetworkStorageSession.
        https://bugs.webkit.org/show_bug.cgi?id=194137

        Reviewed by Don Olmstead.

        * WebCoreSupport/NetworkStorageSessionMap.cpp:
        (NetworkStorageSessionMap::defaultStorageSession):
        (NetworkStorageSessionMap::ensureSession):

2019-01-31  Takashi Komori  <Takashi.Komori@sony.com>

        [Curl] Fix DRT crash related to private browsing.
        https://bugs.webkit.org/show_bug.cgi?id=193816

        Reviewed by Alex Christensen.

        * WebCoreSupport/NetworkStorageSessionMap.cpp:
        (NetworkStorageSessionMap::ensureSession):

2019-01-26  Darin Adler  <darin@apple.com>
  
        Replace many uses of String::format with more type-safe alternatives
        https://bugs.webkit.org/show_bug.cgi?id=192742

        Reviewed by Mark Lam.

        * Shared/WebMemorySampler.cpp:
        (WebKit::WebMemorySampler::writeHeaders): Use makeString.

        * UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
        (WebKit::LocalAuthenticator::makeCredential): Use string concatentation.

        * UIProcess/WebInspectorUtilities.cpp:
        (WebKit::inspectorPageGroupIdentifierForPage): Use makeString.
        * UIProcess/WebProcessPool.cpp:
        (WebKit::WebProcessPool::processDidFinishLaunching): Ditto.
        (WebKit::WebProcessPool::startMemorySampler): Ditto.

2019-01-24  Ross Kirsling  <ross.kirsling@sony.com>

        Move FileSystem to WTF
        https://bugs.webkit.org/show_bug.cgi?id=193602

        Reviewed by Yusuke Suzuki.

        * Storage/StorageAreaSync.cpp:
        * Storage/StorageSyncManager.cpp:
        * Storage/StorageTracker.cpp:

2019-01-23  Ross Kirsling  <ross.kirsling@sony.com>

        [Curl] Unreviewed build fix for r240292 and friends.

        WinCairo test stability must be restored in subsequent patch.

        * WebCoreSupport/NetworkStorageSessionMap.cpp:
        (NetworkStorageSessionMap::defaultStorageSession):
        (NetworkStorageSessionMap::switchToNewTestingSession):
        (NetworkStorageSessionMap::ensureSession):

2019-01-23  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r240403.
        https://bugs.webkit.org/show_bug.cgi?id=193757

        "Causes multiple crashes on macOS port (probably used wrong
        ENABLE macro)" (Requested by ddkilzer on #webkit).

        Reverted changeset:

        "[Curl] Unreviewed build fix for r240292 and friends."
        https://trac.webkit.org/changeset/240403

2019-01-23  Ross Kirsling  <ross.kirsling@sony.com>

        [Curl] Unreviewed build fix for r240292 and friends.

        WinCairo test stability must be restored in subsequent patch.

        * WebCoreSupport/NetworkStorageSessionMap.cpp:
        (NetworkStorageSessionMap::defaultStorageSession):
        (NetworkStorageSessionMap::switchToNewTestingSession):
        (NetworkStorageSessionMap::ensureSession):

2019-01-22  Alex Christensen  <achristensen@webkit.org>

        Fix some builds after r240292
        https://bugs.webkit.org/show_bug.cgi?id=193580

        * WebCoreSupport/NetworkStorageSessionMap.cpp:

2019-01-22  Alex Christensen  <achristensen@webkit.org>

        Move NetworkStorageSession ownership to NetworkProcess
        https://bugs.webkit.org/show_bug.cgi?id=193580

        Reviewed by Geoff Garen.

        * WebCoreSupport/NetworkStorageSessionMap.cpp: Added.
        (defaultNetworkStorageSession):
        (globalSessionMap):
        (NetworkStorageSessionMap::storageSession):
        (NetworkStorageSessionMap::defaultStorageSession):
        (NetworkStorageSessionMap::switchToNewTestingSession):
        (NetworkStorageSessionMap::ensureSession):
        (NetworkStorageSessionMap::destroySession):
        * WebCoreSupport/NetworkStorageSessionMap.h: Added.
        * WebCoreSupport/PageStorageSessionProvider.h:
        * WebKitLegacy.xcodeproj/project.pbxproj:

2019-01-15  Darin Adler  <darin@apple.com>

        Use references rather than pointers for register/unregister functions, and more
        https://bugs.webkit.org/show_bug.cgi?id=175028

        Reviewed by Daniel Bates.

        * WebKitLegacy.xcodeproj/project.pbxproj: Let Xcode update this project.

2019-01-18  Eric Carlson  <eric.carlson@apple.com>

        Revert r238815, it broke WK1 video fullscreen on Mac
        https://bugs.webkit.org/show_bug.cgi?id=193586
        <rdar://problem/47358941>

        Reviewed by Jer Noble.

        * WebKitLegacy.xcodeproj/project.pbxproj:

2019-01-17  Alex Christensen  <achristensen@webkit.org>

        Stop using NetworkStorageSession::storageSession in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=193529

        Reviewed by Tim Horton.

        * WebCoreSupport/PageStorageSessionProvider.h: Added.
        * WebKitLegacy.xcodeproj/project.pbxproj:

2019-01-04  Youenn Fablet  <youenn@apple.com>

        CSP violation reports should bypass CSP checks
        https://bugs.webkit.org/show_bug.cgi?id=192857
        <rdar://problem/46887236>

        Reviewed by Chris Dumez.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::startPingLoad):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2018-12-27  Alex Christensen  <achristensen@webkit.org>

        Resurrect Mac CMake build
        https://bugs.webkit.org/show_bug.cgi?id=192658

        Reviewed by Yusuke Suzuki.

        * PlatformMac.cmake:

2018-12-20  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        Use Ref<> as much as possible
        https://bugs.webkit.org/show_bug.cgi?id=192808

        Reviewed by Alex Christensen.

        * Storage/StorageNamespaceImpl.cpp:
        (WebKit::StorageNamespaceImpl::copy):
        (WebKit::StorageNamespaceImpl::storageArea):
        * Storage/StorageNamespaceImpl.h:
        * Storage/WebStorageNamespaceProvider.cpp:
        (WebKit::WebStorageNamespaceProvider::create):
        (WebKit::WebStorageNamespaceProvider::createSessionStorageNamespace):
        (WebKit::WebStorageNamespaceProvider::createEphemeralLocalStorageNamespace):
        (WebKit::WebStorageNamespaceProvider::createLocalStorageNamespace):
        (WebKit::WebStorageNamespaceProvider::createTransientLocalStorageNamespace):
        * Storage/WebStorageNamespaceProvider.h:
        * WebCoreSupport/WebViewGroup.cpp:
        (WebViewGroup::getOrCreate):
        * WebCoreSupport/WebViewGroup.h:

2018-12-11  Fujii Hironori  <Hironori.Fujii@sony.com>

        [Win][WebKitLegacy][Clang] WebKit.h warning: 'IWebEditingDelegate2::shouldInsertNode' hides overloaded virtual function [-Woverloaded-virtual]
        https://bugs.webkit.org/show_bug.cgi?id=192581

        Reviewed by Alex Christensen.

        Conventionally, WebKit COM interface adds a new interface with
        same name methods with the old interface. For example, both
        IWebEditingDelegate and IWebEditingDelegate2 interfaces has
        shouldInsertNode method.

        This is a part of public API, can't be renamed.

        * PlatformWin.cmake: Added -Wno-overloaded-virtual compiler option
        for WebKitLegacy

2018-12-06  Alex Christensen  <achristensen@webkit.org>

        Remove unused LoaderStrategy::storeDerivedDataToCache and associated dead code
        https://bugs.webkit.org/show_bug.cgi?id=192452

        Reviewed by Anders Carlsson.

        * WebCoreSupport/WebResourceLoadScheduler.h:

2018-12-03  Jer Noble  <jer.noble@apple.com>

        Get rid of old, dead Mac video fullscreen code.
        https://bugs.webkit.org/show_bug.cgi?id=192315

        Reviewed by Eric Carlson.

        * WebKitLegacy.xcodeproj/project.pbxproj:

2018-11-30  Alex Christensen  <achristensen@webkit.org>

        Move URL from WebCore to WTF
        https://bugs.webkit.org/show_bug.cgi?id=190234

        Reviewed by Keith Miller.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        * WebCoreSupport/WebResourceLoadScheduler.h:

2018-11-26  Brent Fulgham  <bfulgham@apple.com>

        [Win] Reduce the use of WKSI library calls: CoreAnimation
        https://bugs.webkit.org/show_bug.cgi?id=191777
        <rdar://problem/46140542>

        Reviewed by Zalan Bujtas.

        Update the Windows build of WebKit to refer to the SPI headers, rather than WebKitSystemInterface.
        Move a small amount of glue code from WKSI to WebCore, and remove any includes or link
        directives for WebKitSystemInterface.lib.

        * PlatformWin.cmake:

2018-11-17  Devin Rousso  <drousso@apple.com>

        Web Inspector: Network: add button to show system certificate dialog
        https://bugs.webkit.org/show_bug.cgi?id=191458
        <rdar://problem/45977019>

        Reviewed by Joseph Pecoraro.

        * WebCoreSupport/WebInspectorClientIOS.mm:
        (WebInspectorFrontendClient::showCertificate): Added.

2018-11-09  Sihui Liu  <sihui_liu@apple.com>

        Remove legacy storage tracker database file after r237330
        https://bugs.webkit.org/show_bug.cgi?id=191423

        Reviewed by Geoffrey Garen.

        r237330 changed the file name of storage tracker database, but it did not remove the old 
        file before using the new one.

        * Storage/StorageTracker.cpp:
        (WebKit::StorageTracker::internalInitialize):

2018-11-01  Sihui Liu  <sihui_liu@apple.com>

        Add a storage limit for IndexedDB
        https://bugs.webkit.org/show_bug.cgi?id=190598
        <rdar://problem/44654715>

        Reviewed by Chris Dumez.

        * Storage/WebDatabaseProvider.cpp:
        (WebDatabaseProvider::idbConnectionToServerForSession):
        (WebDatabaseProvider::setIDBPerOriginQuota):
        * Storage/WebDatabaseProvider.h:

2018-10-30  Alexey Proskuryakov  <ap@apple.com>

        Enable InstallAPI for iOS unconditionally
        https://bugs.webkit.org/show_bug.cgi?id=191043
        rdar://problem/32728423

        Reviewed by Dan Bernstein.

        * WebKitLegacy.xcodeproj/project.pbxproj: Added NSURLDownloadSPI.h.

2018-10-30  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r237600 and r237604.
        https://bugs.webkit.org/show_bug.cgi?id=191086

        Breaks internal iOS builds (Requested by ryanhadd_ on
        #webkit).

        Reverted changesets:

        "Enable InstallAPI for iOS unconditionally"
        https://bugs.webkit.org/show_bug.cgi?id=191043
        https://trac.webkit.org/changeset/237600

        "Build fix attempt after enabling InstallAPI for iOS."
        https://bugs.webkit.org/show_bug.cgi?id=191043
        https://trac.webkit.org/changeset/237604

2018-10-30  Alexey Proskuryakov  <ap@apple.com>

        Enable InstallAPI for iOS unconditionally
        https://bugs.webkit.org/show_bug.cgi?id=191043
        rdar://problem/32728423

        Reviewed by Dan Bernstein.

        * WebKitLegacy.xcodeproj/project.pbxproj: Added NSURLDownloadSPI.h.

2018-10-29  Tim Horton  <timothy_horton@apple.com>

        Modernize WebKit nibs and lprojs for localization's sake
        https://bugs.webkit.org/show_bug.cgi?id=190911
        <rdar://problem/45349466>

        Reviewed by Dan Bernstein.

        * English.lproj/WebJavaScriptTextInputPanel.nib/designable.nib: Removed.
        * English.lproj/WebJavaScriptTextInputPanel.nib/keyedobjects.nib: Removed.
        * WebKitLegacy.xcodeproj/project.pbxproj:
        * en.lproj/WebJavaScriptTextInputPanel.xib: Added.
        NIB->XIB, English->en

2018-10-25  Fujii Hironori  <Hironori.Fujii@sony.com>

        [CMake][Ninja][Win] midl.exe fails to create, open and write a temporary file in parallel build in Docker container
        https://bugs.webkit.org/show_bug.cgi?id=187725

        Reviewed by Michael Catanzaro.

        * PlatformWin.cmake: Added USES_TERMINAL to serialize midl.exe
        executions.

2018-10-22  Sihui Liu  <sihui_liu@apple.com>

        Regression (r232410): StorageTracker.db file gets unlinked while in use
        https://bugs.webkit.org/show_bug.cgi?id=190795

        Reviewed by Chris Dumez.

        WK2 stopped using StorageTracker.db file in r232410 and would delete 
        the file for safety.
        It turned out WK1 could use the same file path, so WK2 may delete the 
        file while WK1 is using it.

        * Storage/StorageTracker.cpp:
        (WebKit::StorageTracker::trackerDatabasePath):

2018-10-18  Alexey Proskuryakov  <ap@apple.com>

        Switch from PLATFORM(IOS) to PLATFORM(IOS_FAMILY)
        https://bugs.webkit.org/show_bug.cgi?id=190729

        Reviewed by Tim Horton.

        * Storage/StorageTracker.cpp:
        (WebKit::StorageTracker::syncDeleteAllOrigins):
        (WebKit::StorageTracker::syncDeleteOrigin):
        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::loadResource):
        (WebResourceLoadScheduler::scheduleLoad):
        (WebResourceLoadScheduler::remove):
        (WebResourceLoadScheduler::servePendingRequests):

2018-10-11  Keith Rollin  <krollin@apple.com>

        CURRENT_ARCH should not be used in Run Script phase.
        https://bugs.webkit.org/show_bug.cgi?id=190407
        <rdar://problem/45133556>

        Reviewed by Alexey Proskuryakov.

        CURRENT_ARCH is used in a number of Xcode Run Script phases. However,
        CURRENT_ARCH is not well-defined during this phase (and may even have
        the value "undefined") since this phase is run just once per build
        rather than once per supported architecture. Migrate away from
        CURRENT_ARCH in favor of ARCHS, either by iterating over ARCHS and
        performing an operation for each value, or by picking the first entry
        in ARCHS and using that as a representative value.

        * WebKitLegacy.xcodeproj/project.pbxproj: When generating
        WebKitLegacy.*.exp, generate both 32- and 64-bit versions for
        macosx platforms.

2018-10-04  Dan Bernstein  <mitz@apple.com>

        WebKitLegacy part of [Xcode] Update some build settings as recommended by Xcode 10
        https://bugs.webkit.org/show_bug.cgi?id=190250

        Reviewed by Andy Estes.

        * WebKitLegacy.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.

2018-10-01  Dean Jackson  <dino@apple.com>

        [macOS] Switching to discrete GPU should be done in the UI process
        https://bugs.webkit.org/show_bug.cgi?id=189361
        <rdar://problem/43949622>

        Reviewed by Simon Fraser.

        * WebKitLegacy.xcodeproj/project.pbxproj: Add new files.

2018-09-05  David Kilzer  <ddkilzer@apple.com>

        REGRESSION (r235585): WebDownloadInternal.h is missing from WebKitLegacy Xcode project
        <https://bugs.webkit.org/show_bug.cgi?id=189072>

        Found using tidy-Xcode-project-file (see Bug 188754).

        * WebKitLegacy.xcodeproj/project.pbxproj: Remove references to
        WebDownloadInternal.h since the header was removed in r235585.

2018-08-26  Dan Bernstein  <mitz@apple.com>

        [Xcode] Don’t make unnecessary, broken WebKitPluginAgent symlink when WK_USE_OVERRIDE_FRAMEWORKS_DIR=YES
        https://bugs.webkit.org/show_bug.cgi?id=188956
        <rdar://problem/43253221>

        Reviewed by Darin Adler.

        * WebKitLegacy.xcodeproj/project.pbxproj: Updated the Symlink WebKitPluginHost build phase.

2018-08-01  Alex Christensen  <achristensen@webkit.org>

        Move all calls to ResourceLoader::start to WebKitLegacy
        https://bugs.webkit.org/show_bug.cgi?id=184946

        Reviewed by Andy Estes.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::setDefersLoading):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2018-06-25  Keith Rollin  <krollin@apple.com>
        Unreviewed, rolling out r233087.

        Causes 5% Mac PLT regression.

        Reverted changeset:

        "Recalc styles every time defaultAppearance changes."
        https://bugs.webkit.org/show_bug.cgi?id=186866
        https://trac.webkit.org/changeset/233087

2018-06-23  Yusuke Suzuki  <utatane.tea@gmail.com>

        [WTF] Add user-defined literal for ASCIILiteral
        https://bugs.webkit.org/show_bug.cgi?id=186839

        Reviewed by Darin Adler.

        * Storage/StorageTracker.cpp:
        (WebKit::StorageTracker::syncFileSystemAndTrackerDatabase):
        * WebCoreSupport/PingHandle.h:

2018-06-09  Dan Bernstein  <mitz@apple.com>

        Added missing file references to the Configuration group.

        * WebKitLegacy.xcodeproj/project.pbxproj:

2018-05-25  Alex Christensen  <achristensen@webkit.org>

        URL::host should return a StringView to reduce allocations
        https://bugs.webkit.org/show_bug.cgi?id=185986

        Reviewed by Geoff Garen.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::hostForURL):

2018-05-11  Charles Vazac  <cvazac@gmail.com>

        Runtime feature flag for Server-Timing
        https://bugs.webkit.org/show_bug.cgi?id=184758

        Reviewed by Youenn Fablet.

        * mac/WebView/WebPreferenceKeysPrivate.h: Added server-timing preference.
        * mac/WebView/WebPreferences.mm:
        (WebKit::WebPreferences::serverTimingEnabled):
        (WebKit::WebPreferences::setServerTimingEnabled):
        * mac/WebView/WebPreferencesPrivate.h:
        (WebKit::WebPreferences::setServerTimingEnabled):
        (WebKit::WebPreferences::serverTimingEnabled):
        * mac/WebView/WebView.mm: Set runtime enabled feature based on preference.
        * win/Interfaces/IWebPreferencesPrivate.idl: define serverTimingEnabled and setServerTimingEnabled.
        * win/WebPreferenceKeysPrivate.h: Added server-timing preference.
        * win/WebPreferences.cpp: Initialize server-timing as false and define setter and getter.
        (WebKit::WebPreferences::serverTimingEnabled):
        (WebKit::WebPreferences::setServerTimingEnabled):
        * win/WebPreferences.h: Define serverTimingEnabled and setServerTimingEnabled.
        * win/WebView.cpp: Set runtime enabled feature based on preference.

2018-05-02  Keith Rollin  <krollin@apple.com>

        Add facility for tracking times and results of page and resource loading
        https://bugs.webkit.org/show_bug.cgi?id=184838
        <rdar://problem/36548974>

        Reviewed by Brent Fulgham.

        Add an empty override of the pure virtual
        LoaderStrategy::pageLoadCompleted method.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::pageLoadCompleted):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2018-05-01  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] remove WK1 support
        https://bugs.webkit.org/show_bug.cgi?id=185136

        Reviewed by Youenn Fablet.

        * WebKitLegacy.xcodeproj/project.pbxproj:

2018-04-30  JF Bastien  <jfbastien@apple.com>

        Use some C++17 features
        https://bugs.webkit.org/show_bug.cgi?id=185135

        Reviewed by Alex Christensen.

        * PlatformMac.cmake:

2018-04-16  Youenn Fablet  <youenn@apple.com>

        Use NetworkLoadChecker to handle synchronous HTTP loads
        https://bugs.webkit.org/show_bug.cgi?id=184240

        Reviewed by Chris Dumez.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::loadResourceSynchronously):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2018-04-04  Alex Christensen  <achristensen@webkit.org>

        Move PingHandle to WebKitLegacy
        https://bugs.webkit.org/show_bug.cgi?id=184145

        Reviewed by Youenn Fablet.

        * WebCoreSupport/PingHandle.h: Copied from Source/WebCore/platform/network/PingHandle.h.
        (): Deleted.
        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        * WebKitLegacy.xcodeproj/project.pbxproj:

2018-03-27  Chris Dumez  <cdumez@apple.com>

        Move online state detection from the WebProcess to the NetworkProcess
        https://bugs.webkit.org/show_bug.cgi?id=183989
        <rdar://problem/37093299>

        Reviewed by Youenn Fablet.

        No change on WebKit1 except that WebResourceLoadScheduler needs to override
        2 new virtual functions which forward the calls to the NetworkStateNotifier.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::isOnLine const):
        (WebResourceLoadScheduler::addOnlineStateChangeListener):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2018-03-26  Chris Dumez  <cdumez@apple.com>

        Use SecurityOriginData more consistently in Service Worker code
        https://bugs.webkit.org/show_bug.cgi?id=183969

        Reviewed by Darin Adler.

        Use SecurityOrigin::data() instead of SecurityOriginData::fromSecurityOrigin().

        * Storage/StorageTracker.cpp:
        (WebKit::StorageTracker::diskUsageForOrigin):

2018-03-25  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r229954.
        https://bugs.webkit.org/show_bug.cgi?id=184000

        Caused many layout tests to crash on Apple High Sierra,
        Sierra, iOS Simulator and GTK Linux Debug test bots (Requested
        by dydz on #webkit).

        Reverted changeset:

        "Use SecurityOriginData more consistently in Service Worker
        code"
        https://bugs.webkit.org/show_bug.cgi?id=183969
        https://trac.webkit.org/changeset/229954

2018-03-24  Chris Dumez  <cdumez@apple.com>

        Use SecurityOriginData more consistently in Service Worker code
        https://bugs.webkit.org/show_bug.cgi?id=183969

        Reviewed by Darin Adler.

        Use SecurityOrigin::data() instead of SecurityOriginData::fromSecurityOrigin().

        * Storage/StorageTracker.cpp:
        (WebKit::StorageTracker::diskUsageForOrigin):

2018-03-23  Tim Horton  <timothy_horton@apple.com>

        Adopt WK_PLATFORM_NAME in WebKitLegacy
        https://bugs.webkit.org/show_bug.cgi?id=183948
        <rdar://problem/38803908>

        Reviewed by Dan Bernstein.

        * WebKitLegacy.xcodeproj/project.pbxproj:

2018-02-28  Alex Christensen  <achristensen@webkit.org>

        Reduce use of NetworkingContext in WebKit
        https://bugs.webkit.org/show_bug.cgi?id=183213

        Reviewed by Brady Eidson.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::loadResourceSynchronously):
        (WebResourceLoadScheduler::preconnectTo):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2018-02-26  Don Olmstead  <don.olmstead@sony.com>

        Fix WebCore includes within WebKitLegacy
        https://bugs.webkit.org/show_bug.cgi?id=183147

        Reviewed by Tim Horton.

        * CMakeLists.txt:

2018-02-13  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r228431.
        https://bugs.webkit.org/show_bug.cgi?id=182766

        Regressed CMake build stability (Requested by dolmstead on
        #webkit).

        Reverted changeset:

        "[CMake] Make WebCore headers copies"
        https://bugs.webkit.org/show_bug.cgi?id=182512
        https://trac.webkit.org/changeset/228431

2018-02-13  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Make WebCore headers copies
        https://bugs.webkit.org/show_bug.cgi?id=182512

        Reviewed by Keith Miller.

        * PlatformWin.cmake:

2018-02-08  Per Arne Vollan  <pvollan@apple.com>

        Move WebVideoFullscreenController from WebCore to WebKitLegacy.
        https://bugs.webkit.org/show_bug.cgi?id=182615

        Reviewed by Eric Carlson.

        It is only used by WK1. Also there are a few references to NSApp in WebVideoFullscreenController.mm.
        Ideally, we should not reference NSApp in WebCore.

        * WebKitLegacy.xcodeproj/project.pbxproj:

2018-01-23  Alex Christensen  <achristensen@webkit.org>

        Use CompletionHandlers for ResourceHandleClient::didReceiveResponseAsync
        https://bugs.webkit.org/show_bug.cgi?id=181961

        Reviewed by Michael Catanzaro.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:

2018-01-16  Fujii Hironori  <Hironori.Fujii@sony.com>

        [CMake] Remove WebCoreDerivedSources library target
        https://bugs.webkit.org/show_bug.cgi?id=181664

        Reviewed by Carlos Garcia Campos.

        * PlatformWin.cmake: Do not link WebCoreDerivedSources.

2018-01-07  David Kilzer  <ddkilzer@apple.com>

        Enable -Wcast-qual for WebInspectorUI, WebKitLegacy, WebKit projects
        <https://webkit.org/b/181256>
        <rdar://problem/36281730>

        Reviewed by Darin Adler.

        * PlatformMac.cmake:
        * WebKitLegacy.xcodeproj/project.pbxproj:
        - Rename WebNSDataExtras.m to WebNSDataExtras.mm and change file
          type to Objective-C++.

2018-01-03  Ting-Wei Lan  <lantw44@gmail.com>

        Replace hard-coded paths in shebangs with #!/usr/bin/env
        https://bugs.webkit.org/show_bug.cgi?id=181040

        Reviewed by Alex Christensen.

        * scripts/generate-webkitversion.pl:

2017-12-28  Yusuke Suzuki  <utatane.tea@gmail.com>

        Remove std::chrono completely
        https://bugs.webkit.org/show_bug.cgi?id=181186

        Reviewed by Alex Christensen.

        * Storage/WebDatabaseProvider.cpp:
        (WebDatabaseProvider::deleteAllDatabases):

2017-12-28  Fujii Hironori  <Hironori.Fujii@sony.com>

        [Win][CMake] Use add_custom_command to copy each forwarding header files
        https://bugs.webkit.org/show_bug.cgi?id=180921

        Reviewed by Brent Fulgham.

        * PlatformWin.cmake: Use WEBKIT_MAKE_FORWARDING_HEADERS.

2017-12-14  Yusuke Suzuki  <utatane.tea@gmail.com>

        Drop Thread::tryCreate
        https://bugs.webkit.org/show_bug.cgi?id=180808

        Reviewed by Darin Adler.

        * Storage/StorageThread.cpp:
        (WebCore::StorageThread::start):
        * Storage/StorageThread.h:

2017-12-12  Yusuke Suzuki  <utatane.tea@gmail.com>

        [WTF] Thread::create should have Thread::tryCreate
        https://bugs.webkit.org/show_bug.cgi?id=180333

        Reviewed by Darin Adler.

        * Storage/StorageThread.cpp:
        (WebCore::StorageThread::start):

2017-12-05  Stephan Szabo  <stephan.szabo@sony.com>

        Switch windows build to Visual Studio 2017
        https://bugs.webkit.org/show_bug.cgi?id=172412

        Reviewed by Per Arne Vollan.

        * WebKitLegacy.vcxproj/WebKitLegacy.proj:

2017-11-27  Don Olmstead  <don.olmstead@sony.com>

        [CMake][Win] Conditionally select DLL CRT or static CRT
        https://bugs.webkit.org/show_bug.cgi?id=170594

        Reviewed by Alex Christensen.

        * PlatformWin.cmake:

2017-11-24  Fujii Hironori  <Hironori.Fujii@sony.com>

        [WinCairo] WebPreferences IDL not regenerating
        https://bugs.webkit.org/show_bug.cgi?id=179960

        Reviewed by Darin Adler.

        WebKitLegacy shouldn't include the forwarding header of
        WebKitLegacy itself.

        * CMakeLists.txt: Add ${FORWARDING_HEADERS_DIR} and remove
        ${FORWARDING_HEADERS_DIR}/JavaScriptCore and
        ${FORWARDING_HEADERS_DIR}/WebKitLegacy from
        WebKitLegacy_INCLUDE_DIRECTORIES.

2017-11-14  Alex Christensen  <achristensen@webkit.org>

        Remove Cocoa CFURLConnection loading code
        https://bugs.webkit.org/show_bug.cgi?id=179688

        Reviewed by Antti Koivisto.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::scheduleLoad):

2017-11-06  Per Arne Vollan  <pvollan@apple.com>

        [Win] Add WebKitQuartzCoreAdditions library.
        https://bugs.webkit.org/show_bug.cgi?id=179331

        Reviewed by Alex Christensen.

        This library should be added to the OpenSource repository.

        * CMakeLists.txt:

2017-11-06  Alex Christensen  <achristensen@webkit.org>

        Make ResourceLoader::willSendRequestInternal asynchronous
        https://bugs.webkit.org/show_bug.cgi?id=179251

        Reviewed by Andy Estes.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::loadResource):
        (WebResourceLoadScheduler::schedulePluginStreamLoad):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2017-11-02  Christopher Reid  <chris.reid@sony.com>

        Add a FileSystem namespace to FileSystem.cpp
        https://bugs.webkit.org/show_bug.cgi?id=179063

        Reviewed by Darin Adler.

        * Storage/StorageAreaSync.cpp:
        * Storage/StorageSyncManager.cpp:
        * Storage/StorageTracker.cpp:

2017-10-31  Alex Christensen  <achristensen@webkit.org>

        Use asynchronous ResourceHandleClient calls for WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=160677

        Reviewed by Brady Eidson.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::createPingHandle):

2017-10-16  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r223271.

        This change introduced LayoutTest failures on WK1.

        Reverted changeset:

        "Use asynchronous ResourceHandleClient calls for WebKit1"
        https://bugs.webkit.org/show_bug.cgi?id=160677
        https://trac.webkit.org/changeset/223271

2017-10-12  Alex Christensen  <achristensen@webkit.org>

        Use asynchronous ResourceHandleClient calls for WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=160677

        Reviewed by Brady Eidson.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::createPingHandle):

2017-10-10  Sam Weinig  <sam@webkit.org>

        Replace copyKeysToVector/copyValuesToVector with copyToVector(map.keys())/copyToVector(map.values())
        https://bugs.webkit.org/show_bug.cgi?id=178102

        Reviewed by Tim Horton.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::servePendingRequests):

2017-10-09  Per Arne Vollan  <pvollan@apple.com>

        [Win] Link error: cannot open input file 'WebKitLegacyGUID.lib'
        https://bugs.webkit.org/show_bug.cgi?id=178087

        Reviewed by Alexey Proskuryakov.

        For compatibility reasons, the library still has the name WebKitGUID.lib.

        * PlatformWin.cmake:

2017-10-05  Darin Adler  <darin@apple.com>

        Remove additional WebKitSystemInterface remnants
        https://bugs.webkit.org/show_bug.cgi?id=177948

        Reviewed by Andy Estes.

        * PlatformMac.cmake: Removed reference to deleted file WebSystemInterface.mm.

2017-10-04  Alex Christensen  <achristensen@webkit.org>

        Stop linking with WebKitSystemInterface
        https://bugs.webkit.org/show_bug.cgi?id=177915

        Reviewed by Antti Koivisto.

        * WebKitLegacy.xcodeproj/project.pbxproj:

2017-10-02  Per Arne Vollan  <pvollan@apple.com>

        [Win] Link error: cannot open file 'WebKitGUID.lib'
        https://bugs.webkit.org/show_bug.cgi?id=177759

        Reviewed by Alex Christensen.

        For backward compatibility reasons, this library should not be renamed from
        WebKitGUID.lib to WebKitLegacyGUID.lib.

        * PlatformWin.cmake:

2017-09-29  Chris Dumez  <cdumez@apple.com>

        http/tests/preconnect/link-rel-preconnect-https.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=177673

        Reviewed by Alex Christensen.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::preconnectTo):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2017-09-28  Chris Dumez  <cdumez@apple.com>

        Add support for <link rel=preconnect>
        https://bugs.webkit.org/show_bug.cgi?id=177474
        <rdar://problem/33141380>

        Reviewed by Alex Christensen.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::preconnectTo):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2017-09-26  Per Arne Vollan  <pvollan@apple.com>

        [Win] WebKitCOMAPI.h is not copied after build has finished.
        https://bugs.webkit.org/show_bug.cgi?id=177505

        Reviewed by Brent Fulgham.

        The file is located in the WebKitLegacy forwarding headers folder, not the WebKit folder.

        * WebKitLegacy.vcxproj/WebKitLegacy.proj:

2017-09-25  Timothy Horton  <timothy_horton@apple.com>

        Fix the macOS WebKit CMake build

        * CMakeLists.txt:
        Before r222194, this -umbrella flag mentioned "WebKit" twice:
        first, the name of the target to affect; second, the name of the
        umbrella framework. In r222194, the targets were renamed. It turns
        out that a global find and replace isn't a great way to do this,
        because it caught the name of the umbrella framework too.

        Put it back; the umbrella framework will always be named "WebKit".

        This makes it once again possible to link WebKit (before, it was
        complaining about us linking directly to WebKitLegacy instead of the
        nonsensical WebKitLegacy umbrella framework).

2017-09-25  Chris Dumez  <cdumez@apple.com>

        Make StoredCredentials an enum class and rename its header
        https://bugs.webkit.org/show_bug.cgi?id=177455

        Reviewed by Youenn Fablet.

        Make StoredCredentials an enum class and rename its header for clarity. This was error-prone because 0 meant
        "allow" and and 1 meant "do not allow". It was trivial to convert it to a boolean by mistake and get the
        opposite behavior.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::loadResourceSynchronously):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2017-09-25  Timothy Horton  <timothy_horton@apple.com>

        Make progress on getting Mac CMake building again
        https://bugs.webkit.org/show_bug.cgi?id=177443

        Unreviewed, just "fixing" the build.

        * PlatformMac.cmake:
        Set up dependencies correctly for our mig-generated files.
        MAIN_DEPENDENCY is for VS, not what it sounds like.

        Add mig-generated files to WebKitLegacy, not WebKit (I think this was
        missed in the WebKit2 rename).

2017-09-21  Per Arne Vollan  <pvollan@apple.com>

        [Win] Compile error, generate-webkitversion.pl script not found.
        https://bugs.webkit.org/show_bug.cgi?id=177310

        Reviewed by Brent Fulgham.

        The script is located using the WebKitLegacy folder cmake variable, which needs
        to be set in the project file. 
 
        * WebKitLegacy.vcxproj/WebKitLegacy.proj:

2017-09-18  Michael Catanzaro  <mcatanzaro@igalia.com>

        [CMake] Rename WebKit target to WebKitLegacy and rename WebKit2 target to WebKit
        https://bugs.webkit.org/show_bug.cgi?id=174558

        Reviewed by Alex Christensen.

        With help from Stephan Szabo, thanks!

        * CMakeLists.txt:
        * PlatformMac.cmake:
        * PlatformWin.cmake:

2017-09-16  Tim Horton  <timothy_horton@apple.com>

        Fix the Tools build with CMake on macOS
        https://bugs.webkit.org/show_bug.cgi?id=177030

        Reviewed by Geoffrey Garen.

        * PlatformMac.cmake:
        Add some forwarding headers.

2017-09-12  Per Arne Vollan  <pvollan@apple.com>

        [Win] Link errors when building WebKit from .proj files.
        https://bugs.webkit.org/show_bug.cgi?id=176813

        Reviewed by Brent Fulgham.

        Add missing libraries to WebKit build.

        * PlatformWin.cmake:

2017-08-31  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Make USE_CF conditional within Windows
        https://bugs.webkit.org/show_bug.cgi?id=176173

        Reviewed by Alex Christensen.

        * PlatformWin.cmake:

2017-08-30  Andy Estes  <aestes@apple.com>

        [Mac] Upstream Carbon-related WebKitSystemInterface functions
        https://bugs.webkit.org/show_bug.cgi?id=176087

        Reviewed by Alex Christensen.

        * WebKitLegacy.xcodeproj/project.pbxproj:

2017-08-29  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Use find_package for zlib
        https://bugs.webkit.org/show_bug.cgi?id=176075

        Reviewed by Alex Christensen.

        * PlatformWin.cmake:

2017-08-29  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Use find_package for libxml2 and libxstl
        https://bugs.webkit.org/show_bug.cgi?id=176042

        Reviewed by Konstantin Tokarev.

        * PlatformWin.cmake:

2017-08-24  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Use find_package for SQLite
        https://bugs.webkit.org/show_bug.cgi?id=175803

        Reviewed by Konstantin Tokarev.

        * PlatformWin.cmake:

2017-08-20  Chris Dumez  <cdumez@apple.com>

        Simplify calls to LoaderStrategy::startPingLoad()
        https://bugs.webkit.org/show_bug.cgi?id=175756

        Reviewed by Sam Weinig.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::startPingLoad):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2017-08-18  Chris Dumez  <cdumez@apple.com>

        [Beacon] Improve error reporting
        https://bugs.webkit.org/show_bug.cgi?id=175723

        Reviewed by Darin Adler.

        Have Ping loads such as beacons report errors via their completion handler.
        The Beacon API is using this error to log a console message when beacon loads
        fail, provided that the page is still alive.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::startPingLoad):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2017-08-18  Chris Dumez  <cdumez@apple.com>

        [Beacon] Add support for quota limitation
        https://bugs.webkit.org/show_bug.cgi?id=175443
        <rdar://problem/33729002>

        Reviewed by Youenn Fablet.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::startPingLoad):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2017-08-17  Chris Dumez  <cdumez@apple.com>

        Regression(r220817): We should only copy the original request headers for Ping loads
        https://bugs.webkit.org/show_bug.cgi?id=175679

        Reviewed by Youenn Fablet.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::createPingHandle):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2017-08-17  Don Olmstead  <don.olmstead@sony.com>

        [PAL] Relocate SessionID to root
        https://bugs.webkit.org/show_bug.cgi?id=175684

        Reviewed by Alex Christensen.

        * Storage/WebDatabaseProvider.cpp:

2017-08-17  Don Olmstead  <don.olmstead@sony.com>

        [PAL] Move SessionID into PAL
        https://bugs.webkit.org/show_bug.cgi?id=174192

        Reviewed by Antti Koivisto.

        * Storage/WebDatabaseProvider.cpp:
        (WebDatabaseProvider::idbConnectionToServerForSession):
        * Storage/WebDatabaseProvider.h:

2017-08-16  Chris Dumez  <cdumez@apple.com>

        Cross origin Beacon requests with a ArrayBuffer / ArrayBufferView payload should not do a CORS preflight
        https://bugs.webkit.org/show_bug.cgi?id=175628
        <rdar://problem/33919278>

        Reviewed by Geoffrey Garen.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::createPingHandle):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2017-08-16  Yoshiaki Jitsukawa  <Yoshiaki.Jitsukawa@sony.com>

        [PAL] Move spi/ios and spi/win directories into PAL
        https://bugs.webkit.org/show_bug.cgi?id=175171

        Reviewed by Antti Koivisto.

        * Storage/StorageTracker.cpp:

2017-08-10  Dan Bernstein  <mitz@apple.com>

        Restored svn:ignore values that went missing when the project got renamed.

        * WebKitLegacy.xcodeproj: Added property svn:ignore.

2017-08-10  Chris Dumez  <cdumez@apple.com>

        [Beacon] Do connect-src CSP check on redirects as well
        https://bugs.webkit.org/show_bug.cgi?id=175410
        <rdar://problem/33815470>

        Reviewed by Youenn Fablet.

        Update createPingHandle() to take in ContentSecurityPolicy
        object in but no behavior change for WK1.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::createPingHandle):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2017-08-08  Chris Dumez  <cdumez@apple.com>

        [Beacon] Add support for CORS-preflighting for WK2 / NETWORK_SESSION
        https://bugs.webkit.org/show_bug.cgi?id=175264
        <rdar://problem/33547793>

        Reviewed by Youenn Fablet.

        createPingHandle() now takes new parameters but there is currently no behavior
        change on WebKit1.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::createPingHandle):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2017-08-03  Per Arne Vollan  <pvollan@apple.com>

        [Win] WebKit COM header file is not placed in the correct location.
        https://bugs.webkit.org/show_bug.cgi?id=175101

        Reviewed by Brent Fulgham.

        After the transition to WebKitLegacy, the generated WebKit header files should still
        be placed in the WebKit folder, so WebKit clients will find the header files in the
        same place.

        * WebKitLegacy.vcxproj/WebKitLegacy.proj:

2017-08-02  Matthew Hanson  <matthew_hanson@apple.com>

        Build-fix for Windows in Visual Studio after directory rename.

        Reviewed by Per Arne Vollan.

        * WebKitLegacy.vcxproj/WebKitLegacy.proj:
        We still build WebKit.dll, not WebKitLegacy.dll.

2017-07-31  Sam Weinig  <sam@webkit.org>

        Remove unnecessary exceptions from storage code
        https://bugs.webkit.org/show_bug.cgi?id=174572

        Reviewed by Chris Dumez.

        * Storage/StorageAreaImpl.cpp:
        (WebKit::StorageAreaImpl::canAccessStorage): Deleted.
        * Storage/StorageAreaImpl.h:
        Remove canAccessStorage. It is no longer called.

2017-07-14  Filip Pizlo  <fpizlo@apple.com>

        It should be easy to decide how WebKit yields
        https://bugs.webkit.org/show_bug.cgi?id=174298

        Reviewed by Saam Barati.

        * Storage/StorageTracker.h:

2017-07-21  Konstantin Tokarev  <annulen@yandex.ru>

        Unreviewed, fix Mac cmake build after r219733

        * PlatformMac.cmake:

2017-07-21  Konstantin Tokarev  <annulen@yandex.ru>

        [cmake][Mac] Unreviewed, fix linking WebKitSystemInterface

        After r219560 link_directories() in PlatformXXX.cmake files does not
        affect corresponding targets.

        * PlatformMac.cmake:

2017-07-21  Brady Eidson  <beidson@apple.com>

        Get rid of WebCore IconDatabase code.
        https://bugs.webkit.org/show_bug.cgi?id=174700

        Reviewed by Tim Horton.

        * WebKitLegacy.xcodeproj/project.pbxproj:

2017-07-17  Konstantin Tokarev  <annulen@yandex.ru>

        [cmake] Set library types before their targets are created
        https://bugs.webkit.org/show_bug.cgi?id=174600

        Reviewed by Michael Catanzaro.

        Since r219560 library targets are created before PlatformXXX.cmake
        files are processed, however library type must be passed in
        add_library() call and cannot be changed afterwards. Set these
        variables in OptionsXXX.cmake.

        * PlatformMac.cmake:
        * PlatformWin.cmake:

2017-07-17  Darin Adler  <darin@apple.com>

        Improve use of NeverDestroyed
        https://bugs.webkit.org/show_bug.cgi?id=174348

        Reviewed by Sam Weinig.

        * Storage/StorageThread.cpp:
        (WebCore::StorageThread::releaseFastMallocFreeMemoryInAllThreads):
        Simplify code by using a modern for loop and passing a function without wrapping
        it in a lambda.

2017-07-17  Michael Catanzaro  <mcatanzaro@igalia.com>

        [CMake] Macros in WebKitMacros.cmake should be prefixed with WEBKIT_ namespace
        https://bugs.webkit.org/show_bug.cgi?id=174547

        Reviewed by Alex Christensen.

        * CMakeLists.txt:

2017-07-17  Konstantin Tokarev  <annulen@yandex.ru>

        [CMake] Create targets before WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS is called
        https://bugs.webkit.org/show_bug.cgi?id=174557

        Reviewed by Michael Catanzaro.

        * CMakeLists.txt:

2017-07-14  Jonathan Bedard  <jbedard@apple.com>

        Add iOS 11 SPI
        https://bugs.webkit.org/show_bug.cgi?id=174430
        <rdar://problem/33269288>

        Reviewed by Tim Horton.

        * Storage/StorageTracker.cpp: sqlite3_private.h no longer exists in the iOS
        Simulator SDK, explicitly define the required macro.

2017-07-13  Dan Bernstein  <mitz@apple.com>

        Removed empty project directories left behind after the rename

        * WebKit.vcxproj: Removed.
        * WebKit.xcodeproj: Removed.

2017-07-05  Matthew Hanson  <matthew_hanson@apple.com>

        Update the Visual Studio project name from WebKit to WebKitLegacy.
        https://bugs.webkit.org/show_bug.cgi?id=174162
        rdar://problem/33137594

        Reviewed by Dan Bernstein.

        Rename WebKit to WebKitLegacy.

        * WebKitLegacy.vcxproj/WebKitLegacy.proj: Renamed from Source/WebKitLegacy/WebKit.vcxproj/WebKit.proj.

2017-07-05  Matthew Hanson  <matthew_hanson@apple.com>

        Update the Xcode project name from WebKit to WebKitLegacy.
        https://bugs.webkit.org/show_bug.cgi?id=174162
        rdar://problem/33137594

        Reviewed by Dan Bernstein.

        Rename WebKit to WebKitLegacy.

        * WebKitLegacy.xcodeproj/project.pbxproj: Renamed from Source/WebKitLegacy/WebKit.xcodeproj/project.pbxproj.

2017-07-10  Per Arne Vollan  <pvollan@apple.com>

        [Win] Link error when building WTF from WTF.proj project file.
        https://bugs.webkit.org/show_bug.cgi?id=174316
        <rdar://problem/33178200>

        Reviewed by Brent Fulgham.

        WTF_CPU_X86 cmake variable needs to be set for link libraries directories to be correct.

        * WebKit.vcxproj/WebKit.proj:

2017-07-05  Don Olmstead  <don.olmstead@sony.com>

        [WinCairo] Consolidate CMake code related to CURL
        https://bugs.webkit.org/show_bug.cgi?id=170860

        Reviewed by Alex Christensen.

        * PlatformWin.cmake:

2017-06-26  Yusuke Suzuki  <utatane.tea@gmail.com>

        [WTF] Drop Thread::create(obsolete things) API since we can use lambda
        https://bugs.webkit.org/show_bug.cgi?id=173825

        Reviewed by Saam Barati.

        * Storage/StorageThread.cpp:
        (WebCore::StorageThread::start):
        (WebCore::StorageThread::threadEntryPointCallback): Deleted.
        * Storage/StorageThread.h:

2017-06-16  Alex Christensen  <achristensen@webkit.org>

        Fix Visual Studio 2017 64-bit build after r218258
        https://bugs.webkit.org/show_bug.cgi?id=173308

        * PlatformWin.cmake:
        We still need the enable_language(ASM_MASM) even if we explicitly call ml64 with VS2017.
        Otherwise CMake complains about a missing variable CMAKE_ASM_MASM_COMPILE_OBJECT.

2017-06-14  Fujii Hironori  <Hironori.Fujii@sony.com>

        [Win64] Fails to build Asm.lib (PaintHooks.asm) since Bug 173132
        https://bugs.webkit.org/show_bug.cgi?id=173308

        Reviewed by Alex Christensen.

        Use the same method to process asm file as well as JSC does (Bug 170833).

        * PlatformWin.cmake: Use add_custom_command to assemble PaintHooks.asm.

2017-06-09  Per Arne Vollan  <pvollan@apple.com>

        [Win64] Build error when compiling PaintHooks.asm.
        https://bugs.webkit.org/show_bug.cgi?id=173132

        Reviewed by Brent Fulgham.

        There seems to be too many include paths on the command line for ml64. According to the documentation,
        a maximum of 10 /I options is allowed. Create a separate static library for asm files, in order to
        avoid all the include paths.
        
        * PlatformWin.cmake:

2017-06-06  Yoav Weiss  <yoav@yoav.ws>

        [preload] Conditional support for media preloading and align media `as` values.
        https://bugs.webkit.org/show_bug.cgi?id=172501

        Reviewed by Dean Jackson.

        Add media preloading preference and hook it up to runtime enabled features.

        * mac/WebView/WebPreferenceKeysPrivate.h: Added a media preloading preference.
        * mac/WebView/WebPreferences.mm:
        (WebKit::WebPreferences::setMediaPreloadingEnabled):
        (WebKit::WebPreferences::mediaPreloadingEnabled):
        * mac/WebView/WebPreferencesPrivate.h:
        (WebKit::WebPreferences::setMediaPreloadingEnabled):
        (WebKit::WebPreferences::mediaPreloadingEnabled):
        * mac/WebView/WebView.mm: Set runtime enabled feature based on preference.
        * win/Interfaces/IWebPreferencesPrivate.idl: define mediaPreloadEnabled and setMediaPreloadingEnabled
        * win/WebPreferences.cpp: Initialize media preloading as false and define setter and getter.
        (WebKit::WebPreferences::setMediaPreloadingEnabled):
        (WebKit::WebPreferences::mediaPreloadingEnabled):
        * win/WebPreferences.h:
        * win/WebPreferenceKeysPrivate.h:
        * win/WebView.cpp: Set runtime enabled feature based on preference.

2017-05-22  Don Olmstead  <don.olmstead@am.sony.com>

        [Win][CMake] Move MSVC compiler options to a common location
        https://bugs.webkit.org/show_bug.cgi?id=172230

        Reviewed by Yusuke Suzuki.

        * PlatformWin.cmake:

2017-04-20  Konstantin Tokarev  <annulen@yandex.ru>

        [cmake] Define FORWARDING_HEADERS_DIR in WebKitFS and use it everywhere
        https://bugs.webkit.org/show_bug.cgi?id=171071

        Reviewed by Michael Catanzaro.

        "${DERIVED_SOURCES_DIR}/ForwardingHeaders" path occurs very often in the
        build system files. GTK-specifc FORWARDING_HEADERS_DIR variable should
        be available for all ports.

        * CMakeLists.txt:
        * PlatformMac.cmake:
        * PlatformWin.cmake:

2017-04-12  Brady Eidson  <beidson@apple.com>

        QuotaExceededError when saving to localStorage in private mode.
        https://bugs.webkit.org/show_bug.cgi?id=157010

        Reviewed by Alex Christensen.

        * Storage/StorageNamespaceImpl.cpp:
        (WebKit::StorageNamespaceImpl::createEphemeralLocalStorageNamespace):
        (WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
        (WebKit::StorageNamespaceImpl::~StorageNamespaceImpl):
        (WebKit::StorageNamespaceImpl::copy):
        (WebKit::StorageNamespaceImpl::close):
        * Storage/StorageNamespaceImpl.h:

        * Storage/WebStorageNamespaceProvider.cpp:
        (WebKit::WebStorageNamespaceProvider::createEphemeralLocalStorageNamespace):
        * Storage/WebStorageNamespaceProvider.h:

2017-04-12  Yusuke Suzuki  <utatane.tea@gmail.com>

        [WTF] Introduce Thread class and use RefPtr<Thread> and align Windows Threading implementation semantics to Pthread one
        https://bugs.webkit.org/show_bug.cgi?id=170502

        Reviewed by Mark Lam.

        Mechanical change. Use Thread:: APIs.

        * Storage/StorageThread.cpp:
        (WebCore::StorageThread::StorageThread):
        (WebCore::StorageThread::~StorageThread):
        (WebCore::StorageThread::start):
        (WebCore::StorageThread::dispatch):
        (WebCore::StorageThread::terminate):
        * Storage/StorageThread.h:

2017-04-10  Chris Dumez  <cdumez@apple.com>

        Drop Timer::startOneShot() overload taking a double
        https://bugs.webkit.org/show_bug.cgi?id=170659

        Reviewed by Yusuke Suzuki.

        Drop Timer::startOneShot() overload taking a double as people should use Seconds type now.

        * Storage/StorageAreaSync.cpp:
        * Storage/StorageTracker.cpp:
        (WebKit::StorageTracker::StorageTracker):
        * Storage/StorageTracker.h:
        (WebKit::StorageTracker::storageDatabaseIdleInterval):
        (WebKit::StorageTracker::setStorageDatabaseIdleInterval):

2017-04-09  Chris Dumez  <cdumez@apple.com>

        Start dropping Timer API dealing with double
        https://bugs.webkit.org/show_bug.cgi?id=170649

        Reviewed by Yusuke Suzuki.

        Start dropping Timer API dealing with double as people should use Seconds now.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::scheduleServePendingRequests):

2017-04-06  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Only Capture Extra Network Load Metrics when there is a Web Inspector Frontend
        https://bugs.webkit.org/show_bug.cgi?id=170525

        Reviewed by Youenn Fablet.

        * WebCoreSupport/WebResourceLoadScheduler.h:

2017-04-05  Fujii Hironori  <Hironori.Fujii@sony.com>

        [WinCairo] Invalid address specified to RtlValidateHeap at std::ctype<char>::_Tidy() when finishing MiniBrowser
        https://bugs.webkit.org/show_bug.cgi?id=157067

        Reviewed by Per Arne Vollan.

        WebKit is compiled with /MT switch to use static CRT on Windows.
        But, WinCairo port does not link the static CRT by specifying
        /NODEFAULTLIB:LIBCMT and /NODEFAULTLIB:LIBCMTD switches.
        Eventually, a dynamically linked CRT is linked.  This causes
        potential heap corruption.

        * PlatformWin.cmake: Do not set /NODEFAULTLIB:LIBCMT and
        /NODEFAULTLIB:LIBCMTD, but /NODEFAULTLIB:MSVCRT and
        /NODEFAULTLIB:MSVCRTD as well as AppleWin port does

2017-03-31  Brady Eidson  <beidson@apple.com>

        Clean up the "StorageType" enum.
        https://bugs.webkit.org/show_bug.cgi?id=170349

        Reviewed by Tim Horton.

        * Storage/StorageAreaImpl.cpp:
        (WebKit::StorageAreaImpl::dispatchStorageEvent):
        
        * Storage/StorageNamespaceImpl.cpp:
        (WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
        (WebKit::StorageNamespaceImpl::getOrCreateLocalStorageNamespace):
        (WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
        (WebKit::StorageNamespaceImpl::~StorageNamespaceImpl):
        (WebKit::StorageNamespaceImpl::copy):
        (WebKit::StorageNamespaceImpl::close):

2017-03-27  JF Bastien  <jfbastien@apple.com>

        make build fix for WebDefaultUIDelegate.m
        https://bugs.webkit.org/show_bug.cgi?id=170163

        Unreviewed build fix.

        * PlatformMac.cmake: WebDefaultUIDelegate.m was renamed

2017-03-24  Wenson Hsieh  <wenson_hsieh@apple.com>

        [WK2] Add a UI delegate SPI hook to enable or disable navigation on drop
        https://bugs.webkit.org/show_bug.cgi?id=169168
        <rdar://problem/30688374>

        Reviewed by Tim Horton.

        See WebKit ChangeLog for more details. Renames WebDefaultUIDelegate.m => WebDefaultUIDelegate.mm.

        * WebKit.xcodeproj/project.pbxproj:

2017-03-20  Dan Bernstein  <mitz@apple.com>

        [Xcode] Incremental builds of WebKitLegacy are slow because of the Postprocess Headers phase
        https://bugs.webkit.org/show_bug.cgi?id=169861

        Reviewed by Sam Weinig.

        * WebKit.xcodeproj/project.pbxproj: Specified that the Postprocess Headers script build
          phase has the Headers and PrivateHeaders directories as its inputs and a timestamp file as
          its output.

2017-03-15  Dean Jackson  <dino@apple.com>

        Sort Xcode project files
        https://bugs.webkit.org/show_bug.cgi?id=169669

        Reviewed by Antoine Quint.

        * WebKit.xcodeproj/project.pbxproj:

2017-02-27  Aakash Jain  <aakash_jain@apple.com>

        Enable SUPPORTS_TEXT_BASED_API in WebKitLegacy for iOS
        https://bugs.webkit.org/show_bug.cgi?id=168919

        Reviewed by Tim Horton.

        * WebKit.xcodeproj/project.pbxproj: Run scripts which are run for installhdrs phase for installapi phase as well.

2017-02-22  Aakash Jain  <aakash_jain@apple.com>

        Export Objective-C symbols for variables in Webkit SPI
        https://bugs.webkit.org/show_bug.cgi?id=168758

        Reviewed by Alexey Proskuryakov.

        * WebKit.xcodeproj/project.pbxproj: Generating separate .exp file for i386 without _OBJC_IVAR symbols.

2017-02-21  Aakash Jain  <aakash_jain@apple.com>

        Make WebKitStatisticsPrivate.h project header
        https://bugs.webkit.org/show_bug.cgi?id=168686

        Reviewed by Alexey Proskuryakov.

        * WebKit.xcodeproj/project.pbxproj:

2017-02-21  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r212768.
        https://bugs.webkit.org/show_bug.cgi?id=168698

        Rolling out since this would break other projects. (Requested
        by aakashjain on #webkit).

        Reverted changeset:

        "[iOS] Remove old WebKit1 MemoryMeasure helper."
        https://bugs.webkit.org/show_bug.cgi?id=168675
        http://trac.webkit.org/changeset/212768

2017-02-21  Andreas Kling  <akling@apple.com>

        [iOS] Remove old WebKit1 MemoryMeasure helper.
        <https://webkit.org/b/168675>

        Reviewed by Sam Weinig.

        * WebKit.xcodeproj/project.pbxproj:

2017-02-21  JF Bastien  <jfbastien@apple.com>

        Fix cmake build
        https://bugs.webkit.org/show_bug.cgi?id=168665

        Reviewed by Mark Lam.

        It was broken by r212555 and r212681.

        * PlatformMac.cmake:

2017-02-20  Alexey Proskuryakov  <ap@apple.com>

        List of WebCore symbols to re-export from WebKitLegacy should be built automatically
        https://bugs.webkit.org/show_bug.cgi?id=168342
        rdar://problem/26182266

        Reviewed by Tim Horton.

        * WebKit.xcodeproj/project.pbxproj: Append ReexportedWebCoreSymbols_${CURRENT_ARCH}.exp
        to WebKitLegacy.generated.exp if it exists. Added it to build phase inputs for
        dependency tracking.

2017-02-20  Alexey Proskuryakov  <ap@apple.com>

        Clean up how WebKit exports _WebCreateFragment
        https://bugs.webkit.org/show_bug.cgi?id=168579

        Reviewed by Dan Bernstein.

        * WebKit.xcodeproj/project.pbxproj: Added WebCreateFragmentInternal.h.

2017-02-15  Brady Eidson  <beidson@apple.com>

        Stop backing up localStorage databases to iCloud by default.
        <rdar://problem/29045531> and https://bugs.webkit.org/show_bug.cgi?id=168388

        Reviewed by Geoffrey Garen.

        * WebKit.xcodeproj/project.pbxproj:

2017-02-15  Aakash Jain  <aakash_jain@apple.com>

        revert DOMTextEvent.h and DOMHTMLCanvasElement.h to private header
        https://bugs.webkit.org/show_bug.cgi?id=168393

        Reviewed by Dan Bernstein.
        
        Reverting a seemingly accidental change from r204717.

        * WebKit.xcodeproj/project.pbxproj:

2017-02-09  Alex Christensen  <achristensen@webkit.org>

        Fix CMake build.

        * PlatformMac.cmake:

2017-02-07  Alexey Proskuryakov  <ap@apple.com>

        Don't migrate WebKit DOM headers in MigrateHeaders.make
        https://bugs.webkit.org/show_bug.cgi?id=167608

        Reviewed by Darin Adler.

        Stop migrating DOM headers that are now in WebKit.

        * WebKit.xcodeproj/project.pbxproj: Marked DOM headers as private, so that Xcode
        takes care of making them available as SPI.

2017-02-02  Yongjun Zhang  <yongjun_zhang@apple.com>

        In iOS, we should take background assertion when accessing localstorage databases.
        https://bugs.webkit.org/show_bug.cgi?id=165478

        Reviewed by Brady Eidson.

        * WebKit.xcodeproj/project.pbxproj: Moved WebSQLiteDatabaseTrackerClient to WebCore.

2017-01-17  Antti Koivisto  <antti@apple.com>

        Persist derived data
        https://bugs.webkit.org/show_bug.cgi?id=167136

        Reviewed by Andreas Kling.

        * WebCoreSupport/WebResourceLoadScheduler.h:

2017-01-05  Per Arne Vollan  <pvollan@apple.com>

        [Win] Compile error.
        https://bugs.webkit.org/show_bug.cgi?id=166726

        Add include folder.

        * CMakeLists.txt:

2016-12-22  Andy Estes  <aestes@apple.com>

        Reduce QuickLook.h include overhead
        https://bugs.webkit.org/show_bug.cgi?id=166454

        Reviewed by Andreas Kling.

        * WebCoreSupport/WebResourceLoadScheduler.cpp: Stopped including QuickLook.h.

2016-12-15  Myles C. Maxfield  <mmaxfield@apple.com>

        Sort Xcode project files
        https://bugs.webkit.org/show_bug.cgi?id=165937

        Reviewed by Simon Fraser.

        * WebKit.xcodeproj/project.pbxproj:

2016-12-10  Konstantin Tokarev  <annulen@yandex.ru>

        Unreviewed attempt to fix cmake build of Mac port after r209665.

        * PlatformMac.cmake: Avoid using relative path in
        WebKit_INCLUDE_DIRECTORIES.

2016-12-10  Konstantin Tokarev  <annulen@yandex.ru>

        [cmake] Include WTF, JSC, and WebCore headers automatically to targers using them
        https://bugs.webkit.org/show_bug.cgi?id=165686

        Reviewed by Michael Catanzaro.

        This change reduces duplication of include path lists between modules,
        and reduces future need for fixes like r209605 (broken build because of
        WebCore header suddenly becoming used in WebKit2).

        * CMakeLists.txt:
        * PlatformMac.cmake:
        * PlatformWin.cmake:

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

        Unreviewed cmake buildfix after r209252.

        * PlatformMac.cmake:

2016-12-02  Chris Dumez  <cdumez@apple.com>

        [Mac][WK1] Implement new HTML interactive form validation user interface
        https://bugs.webkit.org/show_bug.cgi?id=164483

        Reviewed by Simon Fraser.

        Add new files to xcode project.

        * WebKit.xcodeproj/project.pbxproj:

2016-11-17  Yusuke Suzuki  <utatane.tea@gmail.com>

        [JSC] WTF::TemporaryChange with WTF::SetForScope
        https://bugs.webkit.org/show_bug.cgi?id=164761

        Reviewed by Saam Barati.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:

2016-11-14  Alex Christensen  <achristensen@webkit.org>

        Move SecurityOrigin::createFromDatabaseIdentifier to SecurityOriginData
        https://bugs.webkit.org/show_bug.cgi?id=164720

        Reviewed by Brady Eidson.

        * Storage/StorageAreaImpl.cpp:
        (WebKit::StorageAreaImpl::StorageAreaImpl):
        (WebKit::StorageAreaImpl::create):
        (WebKit::StorageAreaImpl::dispatchStorageEvent):
        * Storage/StorageAreaImpl.h:
        * Storage/StorageNamespaceImpl.cpp:
        (WebKit::StorageNamespaceImpl::storageArea):
        (WebKit::StorageNamespaceImpl::clearOriginForDeletion):
        * Storage/StorageNamespaceImpl.h:
        * Storage/StorageTracker.cpp:
        (WebKit::StorageTracker::origins):
        (WebKit::StorageTracker::deleteOriginWithIdentifier):
        (WebKit::StorageTracker::deleteOrigin):
        * Storage/StorageTracker.h:
        * Storage/WebStorageNamespaceProvider.cpp:
        (WebKit::WebStorageNamespaceProvider::clearLocalStorageForOrigin):
        * Storage/WebStorageNamespaceProvider.h:

2016-11-11  Wenson Hsieh  <wenson_hsieh@apple.com>

        [WK2] autocorrect and autocapitalize attributes do not work in contenteditable elements
        https://bugs.webkit.org/show_bug.cgi?id=164538
        <rdar://problem/8418711>

        Reviewed by Ryosuke Niwa.

        Introduce WebAutocapitalizeTypes.h to WebKit.

        * WebKit.xcodeproj/project.pbxproj:

2016-11-10  Alex Christensen  <achristensen@webkit.org>

        Move SecurityOrigin::databaseIdentifier() to SecurityOriginData
        https://bugs.webkit.org/show_bug.cgi?id=164573

        Reviewed by Brady Eidson.

        * Storage/StorageAreaImpl.cpp:
        (WebKit::StorageAreaImpl::create):
        * Storage/StorageTracker.cpp:
        (WebKit::StorageTracker::deleteOrigin):
        (WebKit::StorageTracker::diskUsageForOrigin):

2016-11-09  Alex Christensen  <achristensen@webkit.org>

        Clean up Storage code
        https://bugs.webkit.org/show_bug.cgi?id=164562

        Reviewed by Brady Eidson.

        Some classes were in WebCore namespace instead of WebKit.

        * Storage/StorageAreaImpl.cpp:
        (WebKit::StorageAreaImpl::StorageAreaImpl):
        (WebKit::StorageAreaImpl::create):
        (WebKit::StorageAreaImpl::copy):
        (WebCore::StorageAreaImpl::~StorageAreaImpl): Deleted.
        (WebCore::StorageAreaImpl::StorageAreaImpl): Deleted.
        (WebCore::StorageAreaImpl::create): Deleted.
        (WebCore::StorageAreaImpl::copy): Deleted.
        (WebCore::StorageAreaImpl::canAccessStorage): Deleted.
        (WebCore::StorageAreaImpl::storageType): Deleted.
        (WebCore::StorageAreaImpl::length): Deleted.
        (WebCore::StorageAreaImpl::key): Deleted.
        (WebCore::StorageAreaImpl::item): Deleted.
        (WebCore::StorageAreaImpl::setItem): Deleted.
        (WebCore::StorageAreaImpl::removeItem): Deleted.
        (WebCore::StorageAreaImpl::clear): Deleted.
        (WebCore::StorageAreaImpl::contains): Deleted.
        (WebCore::StorageAreaImpl::importItems): Deleted.
        (WebCore::StorageAreaImpl::close): Deleted.
        (WebCore::StorageAreaImpl::clearForOriginDeletion): Deleted.
        (WebCore::StorageAreaImpl::sync): Deleted.
        (WebCore::StorageAreaImpl::blockUntilImportComplete): Deleted.
        (WebCore::StorageAreaImpl::memoryBytesUsedByCache): Deleted.
        (WebCore::StorageAreaImpl::incrementAccessCount): Deleted.
        (WebCore::StorageAreaImpl::decrementAccessCount): Deleted.
        (WebCore::StorageAreaImpl::closeDatabaseTimerFired): Deleted.
        (WebCore::StorageAreaImpl::closeDatabaseIfIdle): Deleted.
        (WebCore::StorageAreaImpl::dispatchStorageEvent): Deleted.
        * Storage/StorageAreaImpl.h:
        * Storage/StorageAreaSync.cpp:
        (WebKit::StorageAreaSync::StorageAreaSync):
        (WebKit::StorageAreaSync::create):
        (WebCore::StorageAreaSync::StorageAreaSync): Deleted.
        (WebCore::StorageAreaSync::create): Deleted.
        (WebCore::StorageAreaSync::~StorageAreaSync): Deleted.
        (WebCore::StorageAreaSync::scheduleFinalSync): Deleted.
        (WebCore::StorageAreaSync::scheduleItemForSync): Deleted.
        (WebCore::StorageAreaSync::scheduleClear): Deleted.
        (WebCore::StorageAreaSync::scheduleCloseDatabase): Deleted.
        (WebCore::StorageAreaSync::syncTimerFired): Deleted.
        (WebCore::StorageAreaSync::openDatabase): Deleted.
        (WebCore::StorageAreaSync::migrateItemTableIfNeeded): Deleted.
        (WebCore::StorageAreaSync::performImport): Deleted.
        (WebCore::StorageAreaSync::markImported): Deleted.
        (WebCore::StorageAreaSync::blockUntilImportComplete): Deleted.
        (WebCore::StorageAreaSync::sync): Deleted.
        (WebCore::StorageAreaSync::performSync): Deleted.
        (WebCore::StorageAreaSync::deleteEmptyDatabase): Deleted.
        (WebCore::StorageAreaSync::scheduleSync): Deleted.
        * Storage/StorageAreaSync.h:
        * Storage/StorageNamespaceImpl.cpp:
        (WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
        (WebKit::StorageNamespaceImpl::getOrCreateLocalStorageNamespace):
        (WebKit::StorageNamespaceImpl::storageArea):
        (WebCore::localStorageNamespaceMap): Deleted.
        (WebCore::StorageNamespaceImpl::createSessionStorageNamespace): Deleted.
        (WebCore::StorageNamespaceImpl::getOrCreateLocalStorageNamespace): Deleted.
        (WebCore::StorageNamespaceImpl::StorageNamespaceImpl): Deleted.
        (WebCore::StorageNamespaceImpl::~StorageNamespaceImpl): Deleted.
        (WebCore::StorageNamespaceImpl::copy): Deleted.
        (WebCore::StorageNamespaceImpl::storageArea): Deleted.
        (WebCore::StorageNamespaceImpl::close): Deleted.
        (WebCore::StorageNamespaceImpl::clearOriginForDeletion): Deleted.
        (WebCore::StorageNamespaceImpl::clearAllOriginsForDeletion): Deleted.
        (WebCore::StorageNamespaceImpl::sync): Deleted.
        (WebCore::StorageNamespaceImpl::closeIdleLocalStorageDatabases): Deleted.
        * Storage/StorageNamespaceImpl.h:
        * Storage/StorageTracker.cpp:
        (WebCore::StorageTracker::initializeTracker): Deleted.
        (WebCore::StorageTracker::internalInitialize): Deleted.
        (WebCore::StorageTracker::tracker): Deleted.
        (WebCore::StorageTracker::StorageTracker): Deleted.
        (WebCore::StorageTracker::setDatabaseDirectoryPath): Deleted.
        (WebCore::StorageTracker::databaseDirectoryPath): Deleted.
        (WebCore::StorageTracker::trackerDatabasePath): Deleted.
        (WebCore::ensureDatabaseFileExists): Deleted.
        (WebCore::StorageTracker::openTrackerDatabase): Deleted.
        (WebCore::StorageTracker::importOriginIdentifiers): Deleted.
        (WebCore::StorageTracker::finishedImportingOriginIdentifiers): Deleted.
        (WebCore::StorageTracker::syncImportOriginIdentifiers): Deleted.
        (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase): Deleted.
        (WebCore::StorageTracker::setOriginDetails): Deleted.
        (WebCore::StorageTracker::syncSetOriginDetails): Deleted.
        (WebCore::StorageTracker::origins): Deleted.
        (WebCore::StorageTracker::deleteAllOrigins): Deleted.
        (WebCore::truncateDatabaseFile): Deleted.
        (WebCore::StorageTracker::syncDeleteAllOrigins): Deleted.
        (WebCore::StorageTracker::deleteOriginWithIdentifier): Deleted.
        (WebCore::StorageTracker::deleteOrigin): Deleted.
        (WebCore::StorageTracker::syncDeleteOrigin): Deleted.
        (WebCore::StorageTracker::willDeleteAllOrigins): Deleted.
        (WebCore::StorageTracker::willDeleteOrigin): Deleted.
        (WebCore::StorageTracker::canDeleteOrigin): Deleted.
        (WebCore::StorageTracker::cancelDeletingOrigin): Deleted.
        (WebCore::StorageTracker::isActive): Deleted.
        (WebCore::StorageTracker::setIsActive): Deleted.
        (WebCore::StorageTracker::databasePathForOrigin): Deleted.
        (WebCore::StorageTracker::diskUsageForOrigin): Deleted.
        * Storage/StorageTracker.h:
        (WebCore::StorageTracker::storageDatabaseIdleInterval): Deleted.
        (WebCore::StorageTracker::setStorageDatabaseIdleInterval): Deleted.
        * Storage/WebStorageNamespaceProvider.cpp:
        (storageNamespaceProviders): Deleted.
        (WebStorageNamespaceProvider::create): Deleted.
        (WebStorageNamespaceProvider::WebStorageNamespaceProvider): Deleted.
        (WebStorageNamespaceProvider::~WebStorageNamespaceProvider): Deleted.
        (WebStorageNamespaceProvider::closeLocalStorage): Deleted.
        (WebStorageNamespaceProvider::clearLocalStorageForAllOrigins): Deleted.
        (WebStorageNamespaceProvider::clearLocalStorageForOrigin): Deleted.
        (WebStorageNamespaceProvider::closeIdleLocalStorageDatabases): Deleted.
        (WebStorageNamespaceProvider::syncLocalStorage): Deleted.
        (WebStorageNamespaceProvider::createSessionStorageNamespace): Deleted.
        (WebStorageNamespaceProvider::createLocalStorageNamespace): Deleted.
        (WebStorageNamespaceProvider::createTransientLocalStorageNamespace): Deleted.
        * Storage/WebStorageNamespaceProvider.h:
        * WebCoreSupport/WebResourceLoadScheduler.h:
        * WebCoreSupport/WebViewGroup.cpp:
        (WebViewGroup::storageNamespaceProvider):

2016-11-02  Per Arne Vollan  <pvollan@apple.com>

        [Win] Copy build results to AAS 'Program Files' folder.
        https://bugs.webkit.org/show_bug.cgi?id=164273

        Reviewed by Brent Fulgham.

        The preferred location for the binaries is the AAS 'Program Files' folder.

        * WebKit.vcxproj/WebKit.proj:

2016-10-25  Konstantin Tokarev  <annulen@yandex.ru>

        [cmake] Check if jscLib and WebKitGUID targets exist before using them
        https://bugs.webkit.org/show_bug.cgi?id=163945

        Reviewed by Alex Christensen.

        Currently these targets are used under WIN32 condition, however they
        are defined in PlatformWin.cmake, causing CMake warnings if port
        supports WIN32 but does not use PlatformWin.cmake

        * CMakeLists.txt:

2016-10-24  Per Arne Vollan  <pvollan@apple.com>

        [Win] CMake build type is not set.
        https://bugs.webkit.org/show_bug.cgi?id=163917

        Reviewed by Alex Christensen.

        The CMAKE_BUILD_TYPE variable should be set to Debug or Release.

        * WebKit.vcxproj/WebKit.proj:

2016-10-19  Alex Christensen  <achristensen@webkit.org>

        Revert r207151
        https://bugs.webkit.org/show_bug.cgi?id=163675

        Reviewed by Brent Fulgham.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::scheduleLoad):

2016-10-14  Alex Christensen  <achristensen@webkit.org>

        Fix CMake build.

        * PlatformMac.cmake:

2016-10-13  Anders Carlsson  <andersca@apple.com>

        Move BackForwardList from WebCore to WebKitLegacy
        https://bugs.webkit.org/show_bug.cgi?id=163418

        Reviewed by Tim Horton.

        * WebKit.xcodeproj/project.pbxproj:

2016-10-12  Anders Carlsson  <andersca@apple.com>

        Copy BackForwardList from WebCore to WebKit/win
        https://bugs.webkit.org/show_bug.cgi?id=163360

        Reviewed by Alex Christensen.

        This is the first step towards getting rid of BackForwardList in WebCore.

        * PlatformWin.cmake:
        Add new files.

2016-10-11  Alex Christensen  <achristensen@webkit.org>

        Remove dead networking code
        https://bugs.webkit.org/show_bug.cgi?id=163263

        Reviewed by Daniel Bates.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::scheduleLoad):

2016-10-06  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed build fix when building with Direct2D.

        * PlatformWin.cmake: Add missing library references.

2016-10-05  Daniel Bates  <dabates@apple.com>

        Do not follow redirects when sending violation report
        https://bugs.webkit.org/show_bug.cgi?id=162520
        <rdar://problem/27957639>

        Reviewed by Alex Christensen.

        Update implementation of legacy WebKit loader strategy to pass through a boolean,
        shouldFollowRedirects, to PingHandle as to whether to follow redirect responses
        for a ping request.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::createPingHandle):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2016-09-20  Don Olmstead  <don.olmstead@am.sony.com>

        [WinCairo] Use find_package cairo in build
        https://bugs.webkit.org/show_bug.cgi?id=162239

        Reviewed by Alex Christensen.

        * PlatformWin.cmake:

2016-09-12  Brent Fulgham  <bfulgham@apple.com>

        [Win][Direct2D] Provide Direct2D-based geometry and transform cast operations
        https://bugs.webkit.org/show_bug.cgi?id=161818

        Reviewed by Dean Jackson.

        * PlatformWin.cmake: Link to Direct2D on Windows.

2016-09-06  Dan Bernstein  <mitz@apple.com>

        [Xcode] WebKitLegacy.framework is re-signed on incremental build even if nothing’s changed
        https://bugs.webkit.org/show_bug.cgi?id=161642

        Reviewed by Tim Horton.

        * WebKit.xcodeproj/project.pbxproj:  Removed the output file listed under the
        Symlink WebKitPluginHost script build phase, because it doesn’t produce that file on iOS.
        With no outputs listed, the script will still run every time, but the fact that it has run
        won’t trigger re-signing the framework.

2016-08-25  Alex Christensen  <achristensen@webkit.org>

        CMake build fix.

        * PlatformMac.cmake:
        Availability was spelled wrong, resulting in a missing header.

2016-08-22  Alex Christensen  <achristensen@webkit.org>

        Fix Mac CMake build after r204717.

        * PlatformMac.cmake:

2016-08-22  Alex Christensen  <achristensen@webkit.org>

        Mostly fix Mac CMake build after r204717.

        * PlatformMac.cmake:

2016-08-22  Darin Adler  <darin@apple.com>

        Move Objective-C DOM bindings from WebCore to legacy WebKit
        https://bugs.webkit.org/show_bug.cgi?id=160654

        Reviewed by Alex Christensen.

        * WebKit.xcodeproj/project.pbxproj: Added the new source files to the project.
        For now they all have project visibility, since MigrateHeaders.make takes care
        of exporting them as public and private. Later, we can likely use the built-in
        Xcode feature instead of that script. Also pass DOM as an acceptable prefix
        when calling check-for-inappropriate-objc-class-names. Also sorted this file
        with the sort-Xcode-project-file script.

2016-08-17  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Migrate off of deprecated CoreGraphics API CGContextSelectFont() and CGContextShowTextAtPoint()
        https://bugs.webkit.org/show_bug.cgi?id=160895

        Reviewed by Dean Jackson.

        Link to the existing CoreText framework.

        * PlatformWin.cmake:

2016-08-16  Hunseop Jeong  <hs85.jeong@samsung.com>

        Unreviewed, CMake build fix

        * PlatformMac.cmake:

2016-08-15  Anders Carlsson  <andersca@apple.com>

        Remove OldWebAssertions.c
        https://bugs.webkit.org/show_bug.cgi?id=160862

        Reviewed by Dan Bernstein.

        * WebKit.xcodeproj/project.pbxproj:

2016-08-15  Anders Carlsson  <andersca@apple.com>

        Remove WebKeyGenerator
        https://bugs.webkit.org/show_bug.cgi?id=160854

        Reviewed by Dan Bernstein.

        * WebKit.xcodeproj/project.pbxproj:

2016-08-15  Joseph Pecoraro  <pecoraro@apple.com>

        Remove unused includes of wtf headers
        https://bugs.webkit.org/show_bug.cgi?id=160839

        Reviewed by Alex Christensen.

        * Storage/StorageSyncManager.h:
        * Storage/StorageThread.cpp:
        * Storage/StorageThread.h:
        * Storage/WebDatabaseProvider.cpp:

2016-08-08  Anders Carlsson  <andersca@apple.com>

        Add a new PluginInfoProvider class, to replace PluginStrategy
        https://bugs.webkit.org/show_bug.cgi?id=160670

        Reviewed by Sam Weinig.

        Add new files.

        * PlatformWin.cmake:
        * WebKit.xcodeproj/project.pbxproj:

2016-08-04  Alex Christensen  <achristensen@webkit.org>

        [Mac][cmake] Fix the build after Objective-C bindings generator removal
        https://bugs.webkit.org/show_bug.cgi?id=160545

        Reviewed by Alex Christensen.

        * PlatformMac.cmake:

2016-07-26  Simon Fraser  <simon.fraser@apple.com>

        Fix the Windows debug build.
        
        WebResourceLoadScheduler's logging was a holdover from it being in WebCore,
        and prior to r203749 WebKit was actually using a WebCore log channel.
        
        For some reason this doesn't build on Windows debug, so just remove
        this logging for now.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::scheduleLoad): Deleted.
        (WebResourceLoadScheduler::servePendingRequests): Deleted.
        (WebResourceLoadScheduler::scheduleServePendingRequests): Deleted.
        (WebResourceLoadScheduler::requestTimerFired): Deleted.
        (WebResourceLoadScheduler::HostInformation::addLoadInProgress): Deleted.

2016-07-26  Simon Fraser  <simon.fraser@apple.com>

        Sort the project files.

        * WebKit.xcodeproj/project.pbxproj:

2016-07-26  Simon Fraser  <simon.fraser@apple.com>

        Allow LOG macros to be used outside the namespace, and other logging cleanup
        https://bugs.webkit.org/show_bug.cgi?id=160216

        Reviewed by Anders Carlsson.

        Fix some issues with the LOG macros.
        
        First, they were not usable outside the WebKit namespace in WebKit2 code. Fix by moving
        its log channels outside of the namespace (they are protected by a unique prefix anyway).
        
        Second, allow LOG_WITH_STREAM to be used in WebKit2 by moving that and a helper macro
        into LogMacros.h, which is exported from WebCore as a private header.
        
        Third, split the Logging.h header into two. Logging.h remains for framework-internal
        log channels and log macros. Add LogInitialization.h which is external, and used to
        initialize the channels.
        
        Finally unify "initializeLogChannels" and "initializeLoggingChannels" terminology everywhere.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:

2016-07-14  Alex Christensen  <achristensen@webkit.org>

        Use SocketProvider to create SocketStreamHandles
        https://bugs.webkit.org/show_bug.cgi?id=159774

        Reviewed by Alex Christensen.

        * PlatformMac.cmake:
        * PlatformWin.cmake:
        * WebKit.xcodeproj/project.pbxproj:

2016-07-12  Per Arne Vollan  <pvollan@apple.com>

        [Win] Fix for build error when trying to version stamp dll.
        https://bugs.webkit.org/show_bug.cgi?id=159692

        Reviewed by Brent Fulgham.

        Use correct path to version stamp script.

        * CMakeLists.txt:

2016-07-12  Per Arne Vollan  <pvollan@apple.com>

        [Win] DLLs are missing version information.
        https://bugs.webkit.org/show_bug.cgi?id=159349

        Reviewed by Brent Fulgham.

        Run perl version stamp utility.

        * CMakeLists.txt:

2016-07-11  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r203064.
        https://bugs.webkit.org/show_bug.cgi?id=159642

        This change causes LayoutTest crashes on WK1 ASan (Requested
        by ryanhaddad on #webkit).

        Reverted changeset:

        "Use refs for ResourceLoaders"
        https://bugs.webkit.org/show_bug.cgi?id=159592
        http://trac.webkit.org/changeset/203064

2016-07-08  Alex Christensen  <achristensen@webkit.org>

        Use refs for ResourceLoaders
        https://bugs.webkit.org/show_bug.cgi?id=159592

        Reviewed by Chris Dumez.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (webResourceLoadScheduler):
        (WebResourceLoadScheduler::hostForURL):
        (WebResourceLoadScheduler::WebResourceLoadScheduler):
        (WebResourceLoadScheduler::loadResource):
        (WebResourceLoadScheduler::schedulePluginStreamLoad):
        (WebResourceLoadScheduler::scheduleLoad):
        (WebResourceLoadScheduler::remove):
        (WebResourceLoadScheduler::setDefersLoading):
        (WebResourceLoadScheduler::crossOriginRedirectReceived):
        (WebResourceLoadScheduler::servePendingRequests):
        (WebResourceLoadScheduler::resumePendingRequests):
        (WebResourceLoadScheduler::HostInformation::priorityToIndex):
        (WebResourceLoadScheduler::HostInformation::schedule):
        (WebResourceLoadScheduler::HostInformation::addLoadInProgress):
        (WebResourceLoadScheduler::HostInformation::remove):
        * WebCoreSupport/WebResourceLoadScheduler.h:
        (WebResourceLoadScheduler::HostInformation::name):
        (WebResourceLoadScheduler::HostInformation::requestsPending):
        m_nonHTTPProtocolHost used to be a leaked pointer, and now it's a member variable.

2016-07-08  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r202799.
        https://bugs.webkit.org/show_bug.cgi?id=159568

        Caused build failure (Requested by perarne on #webkit).

        Reverted changeset:

        "[Win] DLLs are missing version information."
        https://bugs.webkit.org/show_bug.cgi?id=159349
        http://trac.webkit.org/changeset/202799

2016-07-07  Alex Christensen  <achristensen@webkit.org>

        Use SocketProvider to create WebSocketChannels
        https://bugs.webkit.org/show_bug.cgi?id=158776

        Reviewed by Brent Fulgham.

        * PlatformMac.cmake:
        * PlatformWin.cmake:
        * WebKit.xcodeproj/project.pbxproj:

2016-07-03  Per Arne Vollan  <pvollan@apple.com>

        [Win] DLLs are missing version information.
        https://bugs.webkit.org/show_bug.cgi?id=159349

        Reviewed by Brent Fulgham.

        WTF will generate autoversion.h in the prebuild step.
        Run the perl version stamp utility.

        * CMakeLists.txt:
        * PlatformWin.cmake:

2016-06-21  Anders Carlsson  <andersca@apple.com>

        Rename NoncopyableFunction to Function
        https://bugs.webkit.org/show_bug.cgi?id=158354

        Reviewed by Chris Dumez.

        * Storage/StorageSyncManager.cpp:
        (WebCore::StorageSyncManager::dispatch):
        * Storage/StorageSyncManager.h:
        * Storage/StorageThread.cpp:
        (WebCore::StorageThread::dispatch):
        (WebCore::StorageThread::terminate):
        * Storage/StorageThread.h:

2016-06-22  Anders Carlsson  <andersca@apple.com>

        Move the WebKitLegacy Apple Pay code to the open source repository
        https://bugs.webkit.org/show_bug.cgi?id=159035

        Reviewed by Tim Horton.

        * WebKit.xcodeproj/project.pbxproj:

2016-06-20  Keith Rollin  <krollin@apple.com>

        Remove RefPtr::release() and change calls sites to use WTFMove()
        https://bugs.webkit.org/show_bug.cgi?id=158369

        Reviewed by Chris Dumez.

        RefPtr::release() releases its managed pointer awkwardly. It's more
        direct and clearer to use WTFMove to transfer ownership of the managed
        pointer.

        As part of this cleanup, also change a lot of explicit data types to
        'auto'.

        * Storage/StorageAreaImpl.cpp:
        (WebCore::StorageAreaImpl::setItem):
        (WebCore::StorageAreaImpl::removeItem):

2016-06-13  Alex Christensen  <achristensen@webkit.org>

        Add WebSocketProvider stub
        https://bugs.webkit.org/show_bug.cgi?id=158702

        Reviewed by Brady Eidson.

        * WebKit.xcodeproj/project.pbxproj:

2016-06-10  Alex Christensen  <achristensen@webkit.org>

        Fix CMake build.

        * PlatformMac.cmake:

2016-06-09  Alex Christensen  <achristensen@webkit.org>

        Clean up WebKit.vcxproj directory after switching to CMake.

        * PlatformWin.cmake:
        * WebKit.vcxproj/Interfaces: Removed.
        * WebKit.vcxproj/WebKit: Removed.
        * WebKit.vcxproj/WebKit/resource.h: Removed.
        * WebKit.vcxproj/WebKitGUID: Removed.
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj: Removed.
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj.filters: Removed.
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDCommon.props: Removed.
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDDebug.props: Removed.
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDDebugWinCairo.props: Removed.
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDPostBuild.cmd: Removed.
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDPreBuild.cmd: Removed.
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDProduction.props: Removed.
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDRelease.props: Removed.
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDReleaseWinCairo.props: Removed.

2016-06-07  Csaba Osztrogonác  <ossy@webkit.org>

        [Mac][cmake] Unreviewed trivial buildfix after r201689. Just for fun.

        * PlatformMac.cmake:

2016-06-04  Anders Carlsson  <andersca@apple.com>

        Remove NPSPI that is no longer used
        https://bugs.webkit.org/show_bug.cgi?id=158384

        Reviewed by Sam Weinig.

        * WebKit.xcodeproj/project.pbxproj:

2016-06-03  Chris Dumez  <cdumez@apple.com>

        Modernize a few more lambda captures
        https://bugs.webkit.org/show_bug.cgi?id=158370

        Reviewed by Brady Eidson.

        * Storage/StorageTracker.cpp:
        (WebCore::StorageTracker::deleteOrigin):

2016-06-03  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r201663.
        https://bugs.webkit.org/show_bug.cgi?id=158374

        Broke the Windows build (Requested by andersca on #webkit).

        Reverted changeset:

        "Rename NoncopyableFunction to Function"
        https://bugs.webkit.org/show_bug.cgi?id=158354
        http://trac.webkit.org/changeset/201663

2016-06-03  Anders Carlsson  <andersca@apple.com>

        Rename NoncopyableFunction to Function
        https://bugs.webkit.org/show_bug.cgi?id=158354

        Reviewed by Chris Dumez.

        * Storage/StorageSyncManager.cpp:
        (WebCore::StorageSyncManager::dispatch):
        * Storage/StorageSyncManager.h:
        * Storage/StorageThread.cpp:
        (WebCore::StorageThread::dispatch):
        (WebCore::StorageThread::terminate):
        * Storage/StorageThread.h:

2016-06-02  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        Use more references in ResourceLoader related code
        https://bugs.webkit.org/show_bug.cgi?id=158222

        Reviewed by Darin Adler.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::loadResource):
        * WebCoreSupport/WebResourceLoadScheduler.h:

2016-05-28  Chris Dumez  <cdumez@apple.com>

        Templatize NoncopyableFunction class similarly to std::function
        https://bugs.webkit.org/show_bug.cgi?id=158185

        Reviewed by Darin Adler.

        Templatize NoncopyableFunction class similarly to std::function, so
        that it can be used as a std::function replacement in more places.

        Previously, NoncopyableFunction could only support "void()" lambdas.

        * Storage/StorageSyncManager.cpp:
        (WebCore::StorageSyncManager::dispatch):
        * Storage/StorageSyncManager.h:
        * Storage/StorageThread.cpp:
        (WebCore::StorageThread::dispatch):
        (WebCore::StorageThread::terminate):
        * Storage/StorageThread.h:

2016-05-27  Chris Dumez  <cdumez@apple.com>

        callOnMainThread() should not copy captured lambda variables
        https://bugs.webkit.org/show_bug.cgi?id=158166

        Reviewed by Brady Eidson.

        callOnMainThread() should not copy captured lambda variables. This 
        function is usually called cross-thread with a lambda and copying
        the lambda (and its captured variables) can lead to thread-safety
        issues.

        This patch updates callOnMainThread() to take a NoncopyableFunction&&
        in parameter instead of a std::function. The call sites of
        callOnMainThread() have also been updated to use C++14's lambda
        capture with initializer.

        * Storage/StorageAreaSync.cpp:
        (WebCore::StorageAreaSync::deleteEmptyDatabase):
        * Storage/StorageSyncManager.cpp:
        (WebCore::StorageSyncManager::dispatch):
        * Storage/StorageSyncManager.h:
        * Storage/StorageThread.cpp:
        (WebCore::StorageThread::dispatch):
        (WebCore::StorageThread::terminate):
        (WebCore::StorageThread::releaseFastMallocFreeMemoryInAllThreads):
        * Storage/StorageThread.h:
        * Storage/StorageTracker.cpp:
        (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
        (WebCore::StorageTracker::setOriginDetails):

2016-05-25  Alex Christensen  <achristensen@webkit.org>

        Fix CMake build.

        * PlatformMac.cmake:

2016-05-18  Brady Eidson  <beidson@apple.com>

        Modern IDB: Make TestRunner.clearAllDatabases also delete IndexedDB databases (once doing so is supported).
        https://bugs.webkit.org/show_bug.cgi?id=157823

        Reviewed by Alex Christensen.

        * Storage/WebDatabaseProvider.cpp:
        (WebDatabaseProvider::deleteAllDatabases):
        * Storage/WebDatabaseProvider.h:

2016-04-25  Per Arne Vollan  <peavo@outlook.com>

        [Win][IndexedDB] Fix build errors.
        https://bugs.webkit.org/show_bug.cgi?id=156713

        Reviewed by Alex Christensen.

        Fix compile and link errors when building with IndexedDB enabled.

        * PlatformWin.cmake:

2016-04-22  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed build fix after r199841.

        * PlatformWin.cmake: Add missing WebApplicationCache.cpp buid directive.

2016-04-11  Fujii Hironori  <Hironori.Fujii@jp.sony.com>

        [CMake] Make FOLDER property INHERITED
        https://bugs.webkit.org/show_bug.cgi?id=156460

        Reviewed by Brent Fulgham.

        * CMakeLists.txt:
        * PlatformWin.cmake:
        Set FOLDER property as a directory property not a target property

2016-04-08  Alex Christensen  <achristensen@webkit.org>

        Progress towards running CMake WebKit2 on Mac
        https://bugs.webkit.org/show_bug.cgi?id=156426

        Reviewed by Tim Horton.

        * CMakeLists.txt:
        * PlatformMac.cmake:
        * PlatformWin.cmake:

2016-04-08  Konstantin Tokarev  <annulen@yandex.ru>

        [cmake] Use ICU include dirs in WebKit.
        https://bugs.webkit.org/show_bug.cgi?id=156402

        Reviewed by Brent Fulgham.

        * CMakeLists.txt:

2016-04-07  Fujii Hironori  <Hironori.Fujii@jp.sony.com>

        [CMake][Win] Generating autoversion.h of WebKitGUID is triggered again and again
        https://bugs.webkit.org/show_bug.cgi?id=156332

        Reviewed by Brent Fulgham.

        * PlatformWin.cmake:
        Correct the output path of autoversion.h.

2016-04-06  Alex Christensen  <achristensen@webkit.org>

        Fix CMake DumpRenderTree
        https://bugs.webkit.org/show_bug.cgi?id=156305

        Reviewed by Daniel Bates.

        * PlatformMac.cmake:

2016-04-05  Alex Christensen  <achristensen@webkit.org>

        Make CMake-generated binaries on Mac able to run
        https://bugs.webkit.org/show_bug.cgi?id=156268

        Reviewed by Daniel Bates.

        * CMakeLists.txt:

2016-04-01  Alex Christensen  <achristensen@webkit.org>

        Compile DumpRenderTree with CMake on Mac
        https://bugs.webkit.org/show_bug.cgi?id=156088

        Reviewed by Brent Fulgham.

        * PlatformMac.cmake:

2016-03-28  Alex Christensen  <achristensen@webkit.org>

        Fix Ninja build on Mac
        https://bugs.webkit.org/show_bug.cgi?id=151399

        Reviewed by Darin Adler.

        * PlatformWin.cmake:

2016-03-05  Chris Dumez  <cdumez@apple.com>

        Consolidate RuntimeApplicationChecks and RuntimeApplicationChecksIOS
        https://bugs.webkit.org/show_bug.cgi?id=155035

        Reviewed by Darin Adler.

        Update runtime application checks.

        * WebCoreSupport/WebResourceLoadScheduler.cpp:
        (WebResourceLoadScheduler::servePendingRequests):

2016-03-04  Alex Christensen  <achristensen@webkit.org>

        Remove vcxproj build system
        https://bugs.webkit.org/show_bug.cgi?id=154388

        Rubber-stamped by Brent Fulgham.

        * WebKit.vcxproj/Interfaces/FixMIDLHeaders.pl: Removed.
        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj: Removed.
        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj.filters: Removed.
        * WebKit.vcxproj/Interfaces/InterfacesCommon.props: Removed.
        * WebKit.vcxproj/Interfaces/InterfacesDebug.props: Removed.
        * WebKit.vcxproj/Interfaces/InterfacesDebugWinCairo.props: Removed.
        * WebKit.vcxproj/Interfaces/InterfacesPostBuild.cmd: Removed.
        * WebKit.vcxproj/Interfaces/InterfacesPreBuild.cmd: Removed.
        * WebKit.vcxproj/Interfaces/InterfacesProduction.props: Removed.
        * WebKit.vcxproj/Interfaces/InterfacesRelease.props: Removed.
        * WebKit.vcxproj/Interfaces/InterfacesReleaseWinCairo.props: Removed.
        * WebKit.vcxproj/WebKit.sln: Removed.
        * WebKit.vcxproj/WebKit.submit.sln: Removed.
        * WebKit.vcxproj/WebKit/WebKit.vcxproj: Removed.
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters: Removed.
        * WebKit.vcxproj/WebKit/WebKitANGLE.props: Removed.
        * WebKit.vcxproj/WebKit/WebKitApple.props: Removed.
        * WebKit.vcxproj/WebKit/WebKitCFLite.props: Removed.
        * WebKit.vcxproj/WebKit/WebKitCommon.props: Removed.
        * WebKit.vcxproj/WebKit/WebKitDebug.props: Removed.
        * WebKit.vcxproj/WebKit/WebKitDebugWinCairo.props: Removed.
        * WebKit.vcxproj/WebKit/WebKitDirectX.props: Removed.
        * WebKit.vcxproj/WebKit/WebKitPostBuild.cmd: Removed.
        * WebKit.vcxproj/WebKit/WebKitPreBuild.cmd: Removed.
        * WebKit.vcxproj/WebKit/WebKitPreLink.cmd: Removed.
        * WebKit.vcxproj/WebKit/WebKitProduction.props: Removed.
        * WebKit.vcxproj/WebKit/WebKitRelease.props: Removed.
        * WebKit.vcxproj/WebKit/WebKitReleaseWinCairo.props: Removed.
        * WebKit.vcxproj/WebKit/WebKitVersion.cmd: Removed.

2016-03-01  Alex Christensen  <achristensen@webkit.org>

        Reduce size of internal windows build output
        https://bugs.webkit.org/show_bug.cgi?id=154763

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit.proj:

2016-02-26  Konstantin Tokarev  <annulen@yandex.ru>

        [cmake] Moved WebKit/Storage sources and include dir to CMakeLists.txt.
        https://bugs.webkit.org/show_bug.cgi?id=154722

        Reviewed by Darin Adler.

        This code provides port-independent layer used by all WK1 ports,
        so it belongs to main CMakeLists.txt, not Platform files.

        * CMakeLists.txt:
        * PlatformMac.cmake:
        * PlatformWin.cmake:

2016-02-25  Brady Eidson  <beidson@apple.com>

        Remove LegacyIDB.
        https://bugs.webkit.org/show_bug.cgi?id=150854

        Reviewed by Alex Christensen.

        * Storage/WebDatabaseProvider.cpp:
        (WebDatabaseProvider::createIDBFactoryBackend): Deleted.
        * Storage/WebDatabaseProvider.h:

2016-02-25  Brent Fulgham  <bfulgham@apple.com>

        [Win][CMake] Don't use incremental linking
        https://bugs.webkit.org/show_bug.cgi?id=154684
        <rdar://problem/24747822>

        Reviewed by Alex Christensen.

        * PlatformWin.cmake: Make sure the "/INCREMENTAL:NO" flag is used
        (overriding "/INCREMENTAL:YES").

2016-02-22  Konstantin Tokarev  <annulen@yandex.ru>

        [cmake] Moved library setup code to WEBKIT_FRAMEWORK macro.
        https://bugs.webkit.org/show_bug.cgi?id=154450

        Reviewed by Alex Christensen.

        * CMakeLists.txt:

2016-02-15  Alex Christensen  <achristensen@webkit.org>

        Fix internal Windows build of projects built after WebKit
        https://bugs.webkit.org/show_bug.cgi?id=154249
        rdar://problem/24644805

        Reviewed by Chris Dumez.

        * PlatformWin.cmake:
        Copy all generated headers to ForwardingHeaders/WebKit, not just WebKit.h.
        This should fix problems related to not finding headers from other projects, such as AccessibleApplication.h.
        WebKit.h, WebKitCOMAPI.h, and CFDictionaryPropertyBag.h were copied correctly, so this should copy the rest
        of the needed headers.

2016-02-12  Alex Christensen  <achristensen@webkit.org>

        Fix internal Windows WebKit debug build.
        rdar://problem/24635219

        * PlatformWin.cmake:
        We were making WebKit.dll instead of WebKit_debug.dll.

2016-02-11  Alex Christensen  <achristensen@webkit.org>

        Fix internal Windows build.
        rdar://problem/24622882

        * WebKit.vcxproj/WebKit.proj:
        Don't define DEBUG_SUFFIX in release builds.

2016-02-10  Alex Christensen  <achristensen@webkit.org>

        Fix internal Windows build
        https://bugs.webkit.org/show_bug.cgi?id=154080
        rdar://problem/24584417

        Reviewed by Brent Fulgham.

        * CMakeLists.txt:
        Explicitly make WebKit dependent on WebKitGUID so that WebKit will not start building
        before WebKitGUID is finished generating and copying all headers, including WebKit/WebKit.h.

2016-01-27  Anders Carlsson  <andersca@apple.com>

        Add WebKitAdditions extension points to WebCore, WebKit and WebKitLegacy
        https://bugs.webkit.org/show_bug.cgi?id=153550

        Reviewed by Sam Weinig.

        * WebKit.xcodeproj/project.pbxproj:
        Add new files.

2016-01-27  Alex Christensen  <achristensen@webkit.org>

        [Win] Clean build fix after r195680.

        * PlatformWin.cmake:
        Use the post build command for the post build event.

2016-01-27  Alex Christensen  <achristensen@webkit.org>

        Fix Win EWS after r195545.
        https://bugs.webkit.org/show_bug.cgi?id=153434

        * PlatformWin.cmake:
        Copy WebKit.h after building WebKitGUID, because it doesn't exist before.
        This should fix EWS problems like the one seen in bug 153522.

2016-01-25  Alex Christensen  <achristensen@webkit.org>

        [Win] Copy forwarding headers before building a project
        https://bugs.webkit.org/show_bug.cgi?id=153434

        Reviewed by Brent Fulgham.

        * PlatformWin.cmake:

2016-01-22  Darin Adler  <darin@apple.com>

        Reduce use of equalIgnoringCase to just ignore ASCII case
        https://bugs.webkit.org/show_bug.cgi?id=153266

        Reviewed by Ryosuke Niwa.

        * Storage/StorageTracker.cpp:
        (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
        Removed extraneous unneeded ", true" in call to String::endsWith.
        Preparation for later removing the boolean argument.

2016-01-14  Brady Eidson  <beidson@apple.com>

        Modern IDB: Support opening and deleting SQLite databases on disk.
        https://bugs.webkit.org/show_bug.cgi?id=153084

        Reviewed by Alex Christensen, Sam Weinig and Andy Estes (oh my!).

        * Storage/WebDatabaseProvider.cpp:
        (WebDatabaseProvider::idbConnectionToServerForSession):
        * Storage/WebDatabaseProvider.h:

        * WebKit.xcodeproj/project.pbxproj:

2016-01-13  Chris Dumez  <cdumez@apple.com>

        Unreviewed, rolling out r194900.

        Roll back in as this did not actually regress PLT

        Reverted changeset:

        "Unreviewed, rolling out r194826."
        https://bugs.webkit.org/show_bug.cgi?id=153020
        http://trac.webkit.org/changeset/194900

2016-01-12  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r194826.
        https://bugs.webkit.org/show_bug.cgi?id=153020

        Appears to have regressed PLT (Requested by kling on #webkit).

        Reverted changeset:

        "Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL
        cont'd"
        https://bugs.webkit.org/show_bug.cgi?id=152902
        http://trac.webkit.org/changeset/194826

2016-01-10  Andreas Kling  <akling@apple.com>

        Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL cont'd
        <https://webkit.org/b/152902>

        Reviewed by Andy Estes.

        * Storage/StorageThread.cpp:
        (WebCore::activeStorageThreads):

2015-12-31  Andy Estes  <aestes@apple.com>

        Replace WTF::move with WTFMove
        https://bugs.webkit.org/show_bug.cgi?id=152601

        Reviewed by Brady Eidson.

        * Storage/StorageNamespaceImpl.cpp:
        (WebCore::StorageNamespaceImpl::storageArea):

2015-12-16  Alex Christensen  <achristensen@webkit.org>

        Fix internal Windows build
        https://bugs.webkit.org/show_bug.cgi?id=152364
        rdar://problem/23928759

        Reviewed by Tim Horton.

        * WebKit.vcxproj/WebKit.proj:

2015-12-02  Antti Koivisto  <antti@apple.com>

        Move ResourceLoadScheduler to WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=151743

        Reviewed by Alex Christensen.

        * WebCoreSupport/WebResourceLoadScheduler.cpp: Copied from Source/WebCore/loader/ResourceLoadScheduler.cpp.
        (webResourceLoadScheduler):
        (WebResourceLoadScheduler::hostForURL):
        (WebResourceLoadScheduler::WebResourceLoadScheduler):
        (WebResourceLoadScheduler::~WebResourceLoadScheduler):
        (WebResourceLoadScheduler::scheduleSubresourceLoad):
        (WebResourceLoadScheduler::loadResourceSynchronously):
        (WebResourceLoadScheduler::schedulePluginStreamLoad):
        (WebResourceLoadScheduler::scheduleLoad):
        (WebResourceLoadScheduler::remove):
        (WebResourceLoadScheduler::setDefersLoading):
        (WebResourceLoadScheduler::crossOriginRedirectReceived):
        (WebResourceLoadScheduler::servePendingRequests):
        (WebResourceLoadScheduler::suspendPendingRequests):
        (WebResourceLoadScheduler::resumePendingRequests):
        (WebResourceLoadScheduler::scheduleServePendingRequests):
        (WebResourceLoadScheduler::requestTimerFired):
        (WebResourceLoadScheduler::HostInformation::HostInformation):
        (WebResourceLoadScheduler::HostInformation::~HostInformation):
        (WebResourceLoadScheduler::HostInformation::priorityToIndex):
        (WebResourceLoadScheduler::HostInformation::schedule):
        (WebResourceLoadScheduler::HostInformation::addLoadInProgress):
        (WebResourceLoadScheduler::HostInformation::remove):
        (WebResourceLoadScheduler::HostInformation::hasRequests):
        (WebResourceLoadScheduler::HostInformation::limitRequests):
        (WebResourceLoadScheduler::createPingHandle):
        (WebCore::ResourceLoadScheduler::hostForURL): Deleted.
        (WebCore::resourceLoadScheduler): Deleted.
        (WebCore::ResourceLoadScheduler::ResourceLoadScheduler): Deleted.
        (WebCore::ResourceLoadScheduler::~ResourceLoadScheduler): Deleted.
        (WebCore::ResourceLoadScheduler::scheduleSubresourceLoad): Deleted.
        (WebCore::ResourceLoadScheduler::schedulePluginStreamLoad): Deleted.
        (WebCore::ResourceLoadScheduler::scheduleLoad): Deleted.
        (WebCore::ResourceLoadScheduler::remove): Deleted.
        (WebCore::ResourceLoadScheduler::setDefersLoading): Deleted.
        (WebCore::ResourceLoadScheduler::crossOriginRedirectReceived): Deleted.
        (WebCore::ResourceLoadScheduler::servePendingRequests): Deleted.
        (WebCore::ResourceLoadScheduler::suspendPendingRequests): Deleted.
        (WebCore::ResourceLoadScheduler::resumePendingRequests): Deleted.
        (WebCore::ResourceLoadScheduler::scheduleServePendingRequests): Deleted.
        (WebCore::ResourceLoadScheduler::requestTimerFired): Deleted.
        (WebCore::ResourceLoadScheduler::HostInformation::HostInformation): Deleted.
        (WebCore::ResourceLoadScheduler::HostInformation::~HostInformation): Deleted.
        (WebCore::ResourceLoadScheduler::HostInformation::priorityToIndex): Deleted.
        (WebCore::ResourceLoadScheduler::HostInformation::schedule): Deleted.
        (WebCore::ResourceLoadScheduler::HostInformation::addLoadInProgress): Deleted.
        (WebCore::ResourceLoadScheduler::HostInformation::remove): Deleted.
        (WebCore::ResourceLoadScheduler::HostInformation::hasRequests): Deleted.
        (WebCore::ResourceLoadScheduler::HostInformation::limitRequests): Deleted.
        * WebCoreSupport/WebResourceLoadScheduler.h: Copied from Source/WebCore/loader/ResourceLoadScheduler.h.
        (WebResourceLoadScheduler::isSerialLoadingEnabled):
        (WebResourceLoadScheduler::setSerialLoadingEnabled):
        (WebResourceLoadScheduler::HostInformation::name):
        (WebResourceLoadScheduler::HostInformation::requestsPending):
        (WebCore::ResourceLoadScheduler::isSerialLoadingEnabled): Deleted.
        (WebCore::ResourceLoadScheduler::setSerialLoadingEnabled): Deleted.
        (WebCore::ResourceLoadScheduler::Suspender::Suspender): Deleted.
        (WebCore::ResourceLoadScheduler::Suspender::~Suspender): Deleted.
        (WebCore::ResourceLoadScheduler::HostInformation::name): Deleted.
        (WebCore::ResourceLoadScheduler::HostInformation::requestsPending): Deleted.
        * WebKit.xcodeproj/project.pbxproj:

2015-10-29  Alex Christensen  <achristensen@webkit.org>

        Make WebCore a framework in Mac CMake build
        https://bugs.webkit.org/show_bug.cgi?id=150702

        Reviewed by Geoffrey Garen.

        * PlatformMac.cmake:

2015-10-29  Alex Christensen  <achristensen@webkit.org>

        Fix Mac CMake build
        https://bugs.webkit.org/show_bug.cgi?id=150686

        Reviewed by Filip Pizlo.

        * CMakeLists.txt:
        * PlatformMac.cmake:

2015-10-28  Alex Christensen  <achristensen@webkit.org>

        Compile and link with CMake on Mac
        https://bugs.webkit.org/show_bug.cgi?id=150632

        Reviewed by Tim Horton.

        * PlatformMac.cmake:

2015-10-23  Alex Christensen  <achristensen@webkit.org>

        Progress towards CMake on Mac
        https://bugs.webkit.org/show_bug.cgi?id=150517

        Reviewed by Tim Horton.

        * PlatformMac.cmake:

2015-10-18  Sungmann Cho  <sungmann.cho@navercorp.com>

        Fix the builds with ENABLE_INDEX_DATABASE=OFF.
        https://bugs.webkit.org/show_bug.cgi?id=150301

        Reviewed by Darin Adler.

        Add missing #if ENABLE(INDEXED_DATABASE).

        * Storage/WebDatabaseProvider.h:

2015-10-01  Brent Fulgham  <bfulgham@apple.com>

        [Win] Another CMake build fix

        * PlatformWin.cmake: Add missing Psapi.lib to link list.

2015-10-01  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed CMake build fixes.

        * CMakeLists.txt: Set the same build definitions as the original
        project file.
        * PlatformWin.cmake: Remove some soft-linked files from the static
        link commands. Set build flags to match original project files.

2015-09-28  Brady Eidson  <beidson@apple.com>

        Add an IDB Server that can roundtrip a request back to the client.
        https://bugs.webkit.org/show_bug.cgi?id=149603

        Reviewed by Alex Christensen.

        * Storage/WebDatabaseProvider.cpp:
        (WebDatabaseProvider::idbConnectionToServerForSession):
        * Storage/WebDatabaseProvider.h:

2015-09-25  Alex Christensen  <achristensen@webkit.org>

        Clean up CMake build on Mac
        https://bugs.webkit.org/show_bug.cgi?id=149573

        Reviewed by Chris Dumez.

        * PlatformMac.cmake:

2015-09-25  Alex Christensen  <achristensen@webkit.org>

        [Win] Switch to CMake
        https://bugs.webkit.org/show_bug.cgi?id=148111

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit.proj:

2015-09-24  Ryosuke Niwa  <rniwa@webkit.org>

        Ran sort-Xcode-project-file.

        * WebKit.xcodeproj/project.pbxproj:

2015-09-21  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix.

        * WebKit.vcxproj/WebKit/WebKitApple.props: We need to link against
        libdispatch on Windows.

2015-09-19  Alex Christensen  <achristensen@webkit.org>

        Fix Windows tests after r189934.

        * CMakeLists.txt:
        Include WebKit.rc to include resources like missingImage.png in WebKit.dll.

2015-09-15  Brady Eidson  <beidson@apple.com>

        Add empty IDBFactory implementation for Modern IDB.
        https://bugs.webkit.org/show_bug.cgi?id=149191

        Reviewed by Jer Noble.

        * Storage/WebDatabaseProvider.h:

2015-09-14  Alex Christensen  <achristensen@webkit.org>

        Progress towards CMake on Mac.
        https://bugs.webkit.org/show_bug.cgi?id=149123

        Reviewed by Chris Dumez.

        * CMakeLists.txt:
        * PlatformMac.cmake:
        Added more sources, make non-c99 sources compile as objc++
        * PlatformWin.cmake:
        Moved WebCoreTestSupport sources and includes to CMakeLists.txt to share.

2015-09-13  Gyuyoung Kim  <gyuyoung.kim@webkit.org>

        Remove all uses of PassRefPtr in crypto, storage, and history
        https://bugs.webkit.org/show_bug.cgi?id=149091

        Reviewed by Andreas Kling.

        * Storage/StorageNamespaceImpl.cpp:
        (WebCore::StorageNamespaceImpl::storageArea):
        * Storage/StorageNamespaceImpl.h:

2015-08-27  Alex Christensen  <achristensen@webkit.org>

        Isolate Source directories in CMake build
        https://bugs.webkit.org/show_bug.cgi?id=148389

        Reviewed by Brent Fulgham.

        * PlatformWin.cmake:
        Moved WebKitVersion.h generation from WebCore because the scripts required for it are in WebKit.

2015-08-27  Timothy Horton  <timothy_horton@apple.com>

        Factor out Lookup invocation
        https://bugs.webkit.org/show_bug.cgi?id=148509

        Reviewed by Anders Carlsson.

        * WebKit.xcodeproj/project.pbxproj:

2015-08-26  Brent Fulgham  <bfulgham@apple.com>

        Correct build after r188982.

        * WebKit.vcxproj/WebKit.sln:

2015-08-20  Alex Christensen  <achristensen@webkit.org>

        Clean up CMake build after r188673
        https://bugs.webkit.org/show_bug.cgi?id=148234

        Reviewed by Tim Horton.

        * PlatformWin.cmake:
        Include ANGLE forwarding headers directories.

2015-08-19  Alex Christensen  <achristensen@webkit.org>

        CMake Windows build should not include files directly from other Source directories
        https://bugs.webkit.org/show_bug.cgi?id=148198

        Reviewed by Brent Fulgham.

        * CMakeLists.txt:
        * PlatformWin.cmake:

2015-08-19  Brent Fulgham  <bfulgham@apple.com>

        [Win] Replace MIDL [in/out] comments with equivalent SAL
        https://bugs.webkit.org/show_bug.cgi?id=148001

        Reviewed by Tim Horton.

        * WebKit.vcxproj/Interfaces/InterfacesCommon.props: Turn
        on SAL declarations in MIDL output.

2015-08-17  Filip Pizlo  <fpizlo@apple.com>

        Replace all remaining uses of WTF::Mutex with WTF::Lock
        https://bugs.webkit.org/show_bug.cgi?id=148089

        Reviewed by Geoffrey Garen.

        * Storage/StorageAreaSync.cpp:
        (WebCore::StorageAreaSync::syncTimerFired):
        (WebCore::StorageAreaSync::markImported):
        (WebCore::StorageAreaSync::blockUntilImportComplete):
        (WebCore::StorageAreaSync::performSync):
        * Storage/StorageAreaSync.h:
        * Storage/StorageTracker.cpp:
        (WebCore::StorageTracker::setDatabaseDirectoryPath):
        (WebCore::StorageTracker::finishedImportingOriginIdentifiers):
        (WebCore::StorageTracker::syncImportOriginIdentifiers):
        (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
        (WebCore::StorageTracker::setOriginDetails):
        (WebCore::StorageTracker::syncSetOriginDetails):
        (WebCore::StorageTracker::origins):
        (WebCore::StorageTracker::deleteAllOrigins):
        (WebCore::StorageTracker::syncDeleteAllOrigins):
        (WebCore::StorageTracker::deleteOrigin):
        (WebCore::StorageTracker::syncDeleteOrigin):
        (WebCore::StorageTracker::canDeleteOrigin):
        (WebCore::StorageTracker::cancelDeletingOrigin):
        (WebCore::StorageTracker::diskUsageForOrigin):
        * Storage/StorageTracker.h:

2015-08-17  Alex Christensen  <achristensen@webkit.org>

        [Win CMake] Allow WebKitLibraries directory to be set from the command line
        https://bugs.webkit.org/show_bug.cgi?id=148112

        Reviewed by Brent Fulgham.

        * PlatformWin.cmake:
        Don't use an environment variable for WEBKIT_LIBRARIES_DIR.  

2015-08-17  Alex Christensen  <achristensen@webkit.org>

        Build Debug Suffix on Windows with CMake
        https://bugs.webkit.org/show_bug.cgi?id=148083

        Reviewed by Brent Fulgham.

        * CMakeLists.txt:
        * PlatformWin.cmake:
        Add DEBUG_SUFFIX

2015-08-17  Alex Christensen  <achristensen@webkit.org>

        Move some commands from ./CMakeLists.txt to Source/cmake
        https://bugs.webkit.org/show_bug.cgi?id=148003

        Reviewed by Brent Fulgham.

        * CMakeLists.txt:
        Added some commands needed to build WebKit by itself.

2015-08-13  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r188428.
        https://bugs.webkit.org/show_bug.cgi?id=148015

        broke cmake build (Requested by alexchristensen on #webkit).

        Reverted changeset:

        "Move some commands from ./CMakeLists.txt to Source/cmake"
        https://bugs.webkit.org/show_bug.cgi?id=148003
        http://trac.webkit.org/changeset/188428

2015-08-13  Alex Christensen  <achristensen@webkit.org>

        Move some commands from ./CMakeLists.txt to Source/cmake
        https://bugs.webkit.org/show_bug.cgi?id=148003

        Reviewed by Brent Fulgham.

        * CMakeLists.txt:
        Added some commands needed to build WebKit by itself.

2015-08-12  Alex Christensen  <achristensen@webkit.org>

        Fix Debug CMake builds on Windows
        https://bugs.webkit.org/show_bug.cgi?id=147940

        Reviewed by Chris Dumez.

        * PlatformWin.cmake:
        We need /NODEFAULTLIB with the debug version of libraries, too.

2015-08-11  Brent Fulgham  <bfulgham@apple.com>

        [Win] Switch Windows build to Visual Studio 2015
        https://bugs.webkit.org/show_bug.cgi?id=147887
        <rdar://problem/22235098>

        Reviewed by Alex Christensen.

        Update Visual Studio project file settings to use the current Visual
        Studio and compiler. Continue targeting binaries to run on our minimum
        supported configuration of Windows 7.

        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj:
        * WebKit.vcxproj/WebKit.sln:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj:

2015-08-10  Alex Christensen  <achristensen@webkit.org>

        Another build fix after r188239.

        * PlatformWin.cmake:
        Link WinCairo with Media Foundation libraries.

2015-08-10  Alex Christensen  <achristensen@webkit.org>

        Build TestWebKitAPI with CMake on Windows
        https://bugs.webkit.org/show_bug.cgi?id=147851

        Reviewed by Chris Dumez.

        * PlatformWin.cmake:
        WinCairo libraries conflict with LIBCMT.lib, AppleWin libraries conflict with MSVCRT.lib,
        so different /NODEFAULTLIB is needed to link WebKit.dll successfully.

2015-08-06  Alex Christensen  <achristensen@webkit.org>

        [Win] Enable all Windows features in CMake
        https://bugs.webkit.org/show_bug.cgi?id=147744

        Reviewed by Tim Horton.

        * PlatformWin.cmake:
        Add some include directories needed for the newly enabled features.

2015-08-05  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, roll out http://trac.webkit.org/changeset/187972.

        * Storage/StorageAreaSync.cpp:
        (WebCore::StorageAreaSync::syncTimerFired):
        (WebCore::StorageAreaSync::markImported):
        (WebCore::StorageAreaSync::blockUntilImportComplete):
        (WebCore::StorageAreaSync::performSync):
        * Storage/StorageAreaSync.h:
        * Storage/StorageTracker.cpp:
        (WebCore::StorageTracker::setDatabaseDirectoryPath):
        (WebCore::StorageTracker::finishedImportingOriginIdentifiers):
        (WebCore::StorageTracker::syncImportOriginIdentifiers):
        (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
        (WebCore::StorageTracker::setOriginDetails):
        (WebCore::StorageTracker::syncSetOriginDetails):
        (WebCore::StorageTracker::origins):
        (WebCore::StorageTracker::deleteAllOrigins):
        (WebCore::StorageTracker::syncDeleteAllOrigins):
        (WebCore::StorageTracker::deleteOrigin):
        (WebCore::StorageTracker::syncDeleteOrigin):
        (WebCore::StorageTracker::canDeleteOrigin):
        (WebCore::StorageTracker::cancelDeletingOrigin):
        (WebCore::StorageTracker::diskUsageForOrigin):
        * Storage/StorageTracker.h:

2015-08-05  Alex Christensen  <achristensen@webkit.org>

        Build DumpRenderTree with CMake.
        https://bugs.webkit.org/show_bug.cgi?id=147519

        Reviewed by Brent Fulgham.

        * CMakeLists.txt:
        * PlatformMac.cmake:
        * PlatformWin.cmake:
        Make the libraries WebKit links with private, which means that CMake will not make everything
        that links with WebKit link with everything WebKit links with.

2015-08-04  Filip Pizlo  <fpizlo@apple.com>

        Rename Mutex to DeprecatedMutex
        https://bugs.webkit.org/show_bug.cgi?id=147675

        Reviewed by Geoffrey Garen.

        * Storage/StorageAreaSync.cpp:
        (WebCore::StorageAreaSync::syncTimerFired):
        (WebCore::StorageAreaSync::markImported):
        (WebCore::StorageAreaSync::blockUntilImportComplete):
        (WebCore::StorageAreaSync::performSync):
        * Storage/StorageAreaSync.h:
        * Storage/StorageTracker.cpp:
        (WebCore::StorageTracker::setDatabaseDirectoryPath):
        (WebCore::StorageTracker::finishedImportingOriginIdentifiers):
        (WebCore::StorageTracker::syncImportOriginIdentifiers):
        (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
        (WebCore::StorageTracker::setOriginDetails):
        (WebCore::StorageTracker::syncSetOriginDetails):
        (WebCore::StorageTracker::origins):
        (WebCore::StorageTracker::deleteAllOrigins):
        (WebCore::StorageTracker::syncDeleteAllOrigins):
        (WebCore::StorageTracker::deleteOrigin):
        (WebCore::StorageTracker::syncDeleteOrigin):
        (WebCore::StorageTracker::canDeleteOrigin):
        (WebCore::StorageTracker::cancelDeletingOrigin):
        (WebCore::StorageTracker::diskUsageForOrigin):
        * Storage/StorageTracker.h:

2015-08-04  Alex Christensen  <achristensen@webkit.org>

        Enable WebGL on Windows CMake build.
        https://bugs.webkit.org/show_bug.cgi?id=143311

        Reviewed by Csaba Osztrogonác.

        * PlatformWin.cmake:
        Added some needed source files and include directories.

2015-08-01  Alex Christensen  <achristensen@webkit.org>

        Fix 64-bit CMake build on Windows.

        * PlatformWin.cmake:
        Win64 needs PaintHooks.asm.

2015-07-30  Alex Christensen  <achristensen@webkit.org>

        Build AppleWin port with CMake
        https://bugs.webkit.org/show_bug.cgi?id=147385

        Reviewed by Martin Robinson.

        * PlatformWin.cmake:
        Added missing source files and libraries.

2015-07-27  Alex Christensen  <achristensen@webkit.org>

        Use Ninja on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=147228

        Reviewed by Martin Robinson.

        * PlatformWin.cmake:
        Added /NODEFAULTLIB:LIBCMT to link WebKit.dll successfully with Ninja.

2015-07-27  Alex Christensen  <achristensen@webkit.org>

        Progress towards building AppleWin with CMake
        https://bugs.webkit.org/show_bug.cgi?id=147325

        Reviewed by Martin Robinson.

        * PlatformWin.cmake:
        Removed references to non-existing files.

2015-07-22  Alex Christensen  <achristensen@webkit.org>

        Fix quirks in CMake build on Mac and Windows
        https://bugs.webkit.org/show_bug.cgi?id=147174

        Reviewed by Gyuyoung Kim.

        * PlatformMac.cmake:
        Fixed syntax, removed files that don't exist any more.

2015-07-20  Brent Fulgham  <bfulgham@apple.com>

        [Win] Certain Debug builds can take close to 3 hours to link
        https://bugs.webkit.org/show_bug.cgi?id=147114
        <rdar://problem/21882777>

        Reviewed by Tim Horton.

        Correct the 64-bit DebugSuffix link target to match the 32-bit version.

        * WebKit.vcxproj/WebKit/WebKit.vcxproj: Turn off the REF and ICF
        flags for the 64-bit DebugSuffix link target.

2015-07-20  Alex Christensen  <achristensen@webkit.org>

        Resurrect CMake build on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=147083

        Reviewed by Gyuyoung Kim.

        * PlatformWin.cmake: Added.
        Based on original work by Patrick Gansterer and Mark Salisbury
        in https://bugs.webkit.org/show_bug.cgi?id=72816

2015-07-16  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed gardening.

        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters: Move file into the
        appropriate category in the project.

2015-07-14  Lucas Forschler  <lforschler@apple.com>

        Teach platformMac.cmake about El Capitan WKSI.
        <rdar://problem/21822469>
        
        Reviewed by Alex Christensen.

        * PlatformMac.cmake:

2015-07-09  Per Arne Vollan  <peavo@outlook.com>

        [Win] Add memory pressure handler.
        https://bugs.webkit.org/show_bug.cgi?id=146685

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit/WebKitCommon.props: Link with process api library.

2015-07-04  Chris Dumez  <cdumez@apple.com>

        Drop RefPtr::clear() method
        https://bugs.webkit.org/show_bug.cgi?id=146556

        Reviewed by Brady Eidson.

        Drop RefPtr::clear() method in favor of "= nullptr;" pattern.

2015-07-03  Dan Bernstein  <mitz@apple.com>

        [Xcode] Update some build settings as recommended by Xcode 7
        https://bugs.webkit.org/show_bug.cgi?id=146597

        Reviewed by Sam Weinig.

        * WebKit.xcodeproj/project.pbxproj: Updated LastUpgradeCheck.

2015-07-01  Alex Christensen  <achristensen@webkit.org>

        Re-enable WebGL on WinCairo.
        https://bugs.webkit.org/show_bug.cgi?id=146537

        Reviewed by Csaba Osztrogonác.

        * WebKit.vcxproj/WebKit.sln:
        Build the ANGLE projects on WinCairo again.

2015-06-30  Alex Christensen  <achristensen@webkit.org>

        [Win] Unreviewed build fix after r186169.

        * WebKit.vcxproj/WebKit.sln:
        Temporarily don't build ANGLE projects on Windows.

2015-06-26  Hyungwook Lee  <hyungwook.lee@navercorp.com>

        [Win] Implement WebViewGroup to support WebView::addxxxToGroup().
        https://bugs.webkit.org/show_bug.cgi?id=145908

        Reviewed by Brent Fulgham.

        Make WebViewGroup class sharing on Mac and Win port.

        * WebCoreSupport: Added.
        * WebCoreSupport/WebViewGroup.cpp: Added.
        (webViewGroups):
        (WebViewGroup::getOrCreate):
        (WebViewGroup::get):
        (WebViewGroup::WebViewGroup):
        (WebViewGroup::~WebViewGroup):
        (WebViewGroup::addWebView):
        (WebViewGroup::removeWebView):
        (WebViewGroup::storageNamespaceProvider):
        * WebCoreSupport/WebViewGroup.h: Added.
        (WebViewGroup::userContentController):
        (WebViewGroup::visitedLinkStore):
        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:
        * WebKit.vcxproj/WebKit/WebKitCommon.props:
        * WebKit.xcodeproj/project.pbxproj:

2015-06-24  Anders Carlsson  <andersca@apple.com>

        Move PluginMainThreadScheduler to WebKit/win
        https://bugs.webkit.org/show_bug.cgi?id=146289

        Reviewed by Tim Horton.

        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:

2015-06-17  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r185636.
        https://bugs.webkit.org/show_bug.cgi?id=146068

        Caused many crashes on Windows (Requested by ap on #webkit).

        Reverted changeset:

        "[Win] Implement WebViewGroup to support
        WebView::addxxxToGroup()."
        https://bugs.webkit.org/show_bug.cgi?id=145908
        http://trac.webkit.org/changeset/185636

2015-06-16  Hyungwook Lee  <hyungwook.lee@navercorp.com>

        [Win] Implement WebViewGroup to support WebView::addxxxToGroup().
        https://bugs.webkit.org/show_bug.cgi?id=145908

        Reviewed by Brent Fulgham.

        Make WebViewGroup class sharing on Mac and Win port.

        * WebCoreSupport: Added.
        * WebCoreSupport/WebViewGroup.cpp: Copied from Source/WebKit/mac/WebCoreSupport/WebViewGroup.mm.
        * WebCoreSupport/WebViewGroup.h: Copied from Source/WebKit/mac/WebCoreSupport/WebViewGroup.h.
        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:
        * WebKit.vcxproj/WebKit/WebKitCommon.props:
        * WebKit.xcodeproj/project.pbxproj:

2015-06-09  Csaba Osztrogonác  <ossy@webkit.org>

        [cmake] Fix the style issues in cmake project files
        https://bugs.webkit.org/show_bug.cgi?id=145755

        Reviewed by Darin Adler.

        * PlatformMac.cmake:

2015-06-07  Anders Carlsson  <andersca@apple.com>

        Remove WebNSArrayExtras
        https://bugs.webkit.org/show_bug.cgi?id=145747

        Reviewed by Darin Adler.

        * WebKit.xcodeproj/project.pbxproj:

2015-06-07  Anders Carlsson  <andersca@apple.com>

        Remove WebKitSystemBits
        https://bugs.webkit.org/show_bug.cgi?id=145746

        Reviewed by Dan Bernstein.

        * WebKit.xcodeproj/project.pbxproj:

2015-06-06  Anders Carlsson  <andersca@apple.com>

        Remove SPI that's no longer used
        https://bugs.webkit.org/show_bug.cgi?id=145727

        Reviewed by Dan Bernstein.

        * WebKit.xcodeproj/project.pbxproj:

2015-05-27  Andreas Kling  <akling@apple.com>

        [WK2] Local storage areas should get torn down when they have no remaining references.
        <https://webkit.org/b/143339>
        <rdar://problem/20156436>

        Reviewed by Darin Adler.

        Add StorageArea::securityOrigin() implementation.

        * Storage/StorageAreaImpl.h:

2015-05-22  Tim Horton  <timothy_horton@apple.com>

        Remove action menu support
        https://bugs.webkit.org/show_bug.cgi?id=145305
        <rdar://problem/21070771>

        Reviewed by Anders Carlsson.

        * WebKit.xcodeproj/project.pbxproj:
        Remove some files.

2015-05-18  Michael Catanzaro  <mcatanzaro@igalia.com>

        [CMake] Ignore warnings in system headers
        https://bugs.webkit.org/show_bug.cgi?id=144747

        Reviewed by Darin Adler.

        Separate include directories into WebKit project includes and system includes. Suppress all
        warnings from headers in system include directories using the SYSTEM argument to
        the include_directories command.

        * CMakeLists.txt:
        * PlatformMac.cmake:

2015-05-11  Brent Fulgham  <bfulgham@apple.com>

        [Win] Move Windows build target to Windows 7 (or newer)
        https://bugs.webkit.org/show_bug.cgi?id=144890
        <rdar://problem/20707307>

        Reviewed by Anders Carlsson.

        Update linked SDK and minimal Windows level to be compatible with
        Windows 7 or newer.

        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj:

2015-05-07  Beth Dakin  <bdakin@apple.com>

        New force-related DOM events should fire in WK1 views
        https://bugs.webkit.org/show_bug.cgi?id=144663
        -and corresponding-
        rdar://problem/20281886

        Reviewed by Sam Weinig.

        Pass the lastPressureEvent to WebCore.
        * WebView/WebHTMLView.mm:
        (-[WebHTMLView _updateMouseoverWithEvent:]):
        (-[WebHTMLView rightMouseUp:]):
        (-[WebHTMLView menuForEvent:]):
        (-[WebHTMLView acceptsFirstMouse:]):
        (-[WebHTMLView shouldDelayWindowOrderingForEvent:]):
        (-[WebHTMLView mouseDown:mouseDown:]):
        (-[WebHTMLView mouseDragged:]):
        (-[WebHTMLView mouseUp:mouseUp:]):

        New NSRespnder method for pressure changes.
        (-[WebHTMLView pressureChangeWithEvent:]):

        New BOOL _contentPreventsDefault tracks whether the HitTestResult prevented the 
        default action. Get rid of willHandleMouseDown; now that the gesture recognizer 
        sets delaysPrimaryMouseButtonEvents to NO, we don’t need this.
        * WebView/WebImmediateActionController.h:
        * WebView/WebImmediateActionController.mm:
        (-[WebImmediateActionController _clearImmediateActionState]):

        Set all of the immediateActionStages on EventHandler. This is critical to keep 
        link navigation happening at the right time now that 
        delaysPrimaryMouseButtonEvents is set to NO.
        (-[WebImmediateActionController performHitTestAtPoint:]):
        (-[WebImmediateActionController immediateActionRecognizerDidUpdateAnimation:]):
        (-[WebImmediateActionController immediateActionRecognizerDidCancelAnimation:]):
        (-[WebImmediateActionController immediateActionRecognizerDidCompleteAnimation:]):

        Use a dummy animation controller if the content prevents default.
        (-[WebImmediateActionController _defaultAnimationController]):
        (-[WebImmediateActionController _updateImmediateActionItem]):
        (-[WebImmediateActionController webView:willHandleMouseDown:]): Deleted.

        Set delaysPrimaryMouseButtonEvents to NO so that we get existing mouse events when 
        we expect to.
        * WebView/WebView.mm:
        (-[WebView _commonInitializationWithFrameName:groupName:]):

        Cache the most recent pressure event so that we can send it to WebCore for all of 
        the mouse events.
        (-[WebView _pressureEvent]):
        (-[WebView _setPressureEvent:]):
        * WebView/WebViewData.h:
        * WebView/WebViewData.mm:
        (-[WebViewPrivate dealloc]):
        * WebView/WebViewInternal.h:

2015-04-27  Brent Fulgham  <bfulgham@apple.com>

        [Win] Deactivate WebGL until Windows tests work properly
        https://bugs.webkit.org/show_bug.cgi?id=144291
        <rdar://problem/20707307>

        Reviewed by Zalan Bujtas.

        * WebKit.vcxproj/WebKit/WebKitANGLE.props: Added.
        * WebKit.vcxproj/WebKit/WebKitCommon.props: Remove ANGLE link
        libraries from common property sheet.
        * WebKit.vcxproj/WebKit/WebKitDebugWinCairo.props: Reference
        the WebKitANGLE property sheet.
        * WebKit.vcxproj/WebKit/WebKitReleaseWinCairo.props: Ditto.

2015-04-24  Timothy Hatcher  <timothy@apple.com>

        Web Inspector: Remove native window dock controls
        https://bugs.webkit.org/show_bug.cgi?id=144184

        Reviewed by Joseph Pecoraro.

        * WebKit.xcodeproj/project.pbxproj:

2015-04-15  Alex Christensen  <achristensen@webkit.org>

        Progress towards CMake on Mac.
        https://bugs.webkit.org/show_bug.cgi?id=143785

        Reviewed by Csaba Osztrogonác.

        * PlatformMac.cmake:

2015-04-08  Alex Christensen  <achristensen@webkit.org> and Patrick Gansterer  <paroga@webkit.org>

        Add CMake build system for WinCairo port.
        https://bugs.webkit.org/show_bug.cgi?id=115944

        Reviewed by Chris Dumez.

        * CMakeLists.txt:

2015-04-07  Anders Carlsson  <andersca@apple.com>

        Get rid of uses of ApplicationCacheStorage::singleton() from WebKitLegacy
        https://bugs.webkit.org/show_bug.cgi?id=143504

        Reviewed by Sam Weinig.

        * WebKit.xcodeproj/project.pbxproj:
        Add WebApplicationCacheInternal.h.

2015-04-05  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Use constants of sqlite3 directly for status of SQL result in webdatabase
        https://bugs.webkit.org/show_bug.cgi?id=143329

        Reviewed by Darin Adler.

        In webdatabase, it has used own constants vairables as well as using sqlite3 constants directly.
        It causes to use if~else statement which consumes more cpu cycles compared to switch~case. This
        patch makes to use constants of sqlite3.

        * Storage/StorageAreaSync.cpp:
        (WebCore::StorageAreaSync::performImport):
        (WebCore::StorageAreaSync::sync):
        (WebCore::StorageAreaSync::deleteEmptyDatabase):
        * Storage/StorageTracker.cpp:
        (WebCore::StorageTracker::syncImportOriginIdentifiers):
        (WebCore::StorageTracker::syncSetOriginDetails):
        (WebCore::StorageTracker::syncDeleteAllOrigins):
        (WebCore::StorageTracker::syncDeleteOrigin):
        (WebCore::StorageTracker::databasePathForOrigin):
        * WebKit.vcxproj/WebKit/WebKitCommon.props: Add sqlite include path.

2015-04-01  Alex Christensen  <achristensen@webkit.org>

        Progress towards CMake on Windows and Mac.
        https://bugs.webkit.org/show_bug.cgi?id=143293

        Reviewed by Filip Pizlo.

        * PlatformMac.cmake:
        Fixed some include directories.

2015-03-26  Alex Christensen  <achristensen@webkit.org>

        Progress towards CMake on Mac.
        https://bugs.webkit.org/show_bug.cgi?id=143112

        Reviewed by Chris Dumez.

        * PlatformMac.cmake:

2015-03-20  Alex Christensen  <achristensen@webkit.org>

        Progress towards CMake on Mac.
        https://bugs.webkit.org/show_bug.cgi?id=136003

        Reviewed by Chris Dumez.

        * CMakeLists.txt:
        * PlatformMac.cmake: Added.

2015-03-13  Alex Christensen  <achristensen@webkit.org>

        Progress towards CMake on Mac.
        https://bugs.webkit.org/show_bug.cgi?id=142680

        Reviewed by Gyuyoung Kim.

        * CMakeLists.txt: Added.

2015-03-01  Dan Bernstein  <mitz@apple.com>

        Silence non-fatal errors about failing to create WebKitPluginHost.app and WebKitPluginAgent symlinks.

        Rubber-stamped by Alexey Proskuryakov.

        * WebKit.xcodeproj/project.pbxproj: If a link already exist, don’t try to create it.

2015-02-27  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix.

        Adjust project dependencies to ensure a consistent build order.

        * WebKit.vcxproj/WebKit.sln:

2015-02-26  Brent Fulgham  <bfulgham@apple.com>

        [Win] Remove WebKitExportGenerator project (and related)
        https://bugs.webkit.org/show_bug.cgi?id=142035

        Reviewed by Dean Jackson.

        * WebKit.vcxproj/WebKit.sln: Remove references to WebKitExportGenerator
        * WebKit.vcxproj/WebKit.submit.sln: Ditto.
        * WebKit.vcxproj/WebKit/WebKit.vcxproj: Ditto.
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters: Ditto.
        * WebKit.vcxproj/WebKitExportGenerator: Removed.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj: Removed.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj.filters: Removed.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorBuildCmd.cmd: Removed.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorCommon.props: Removed.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorDebug.props: Removed.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorDebugWinCairo.props: Removed.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPostBuild.cmd: Removed.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPreBuild.cmd: Removed.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorProduction.props: Removed.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorRelease.props: Removed.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorReleaseWinCairo.props: Removed.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Removed.
        * WebKit.vcxproj/WebKitExportGenerator/make-export-file-generator: Removed.

2015-02-26  Brent Fulgham  <bfulgham@apple.com>

        [Win] Make build logs more legible by reducing noise
        https://bugs.webkit.org/show_bug.cgi?id=142034

        Reviewed by Alexey Proskuryakov.

        Modify batch files, makefiles, and DOS commands to remove
        uninteresting/unhelpful output.

        * WebKit.vcxproj/Interfaces/InterfacesPostBuild.cmd:
        * WebKit.vcxproj/Interfaces/InterfacesPreBuild.cmd:
        * WebKit.vcxproj/WebKit/WebKitPostBuild.cmd:
        * WebKit.vcxproj/WebKit/WebKitPreBuild.cmd:
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDPreBuild.cmd:

2015-02-25  Brent Fulgham  <bfulgham@apple.com>

        [Win] Use WEBCORE_EXPORT instead of Definition file
        https://bugs.webkit.org/show_bug.cgi?id=141734

        Reviewed by Alex Christensen.

        * WebKit.vcxproj/WebKit/WebKit.vcxproj: Visual studio automatic
        file cleanup.
        * WebKit.vcxproj/WebKit/WebKitCommon.props: Don't use the export definition
        file any longer.

2015-02-25  Alexey Proskuryakov  <ap@apple.com>

        <rdar://problem/19949665> Some queues fail to build because of WebKitPluginHost.app symlink

        Fix by Dan Bernstein, reviewed by me.

        * WebKit.xcodeproj/project.pbxproj:

2015-02-24  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed Windows build fix after r180601.

        Export some missing symbols.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2015-02-18  Chris Dumez  <cdumez@apple.com>

        Unreviewed Windows build fix after r180337.

        Export a couple of symbols.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2015-02-17  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [CMAKE] Remove CMakeLists.txt in WK1 port
        https://bugs.webkit.org/show_bug.cgi?id=141617

        Reviewed by Anders Carlsson.

        * CMakeLists.txt: Removed.

2015-02-09  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: remove some unnecessary Inspector prefixes from class names in Inspector namespace
        https://bugs.webkit.org/show_bug.cgi?id=141372

        Reviewed by Joseph Pecoraro.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2015-02-11  Alex Christensen  <achristensen@webkit.org>

        [Win] Unreviewed build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2015-02-05  Brent Fulgham  <bfulgham@apple.com>

        [Win] 64-bit build fix after r179702 and r179709

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2015-02-05  Chris Dumez  <cdumez@apple.com>

        Unreviewed attempt to fix Windows build after r179702.

        Export a couple of extra symbols.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2015-02-02  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix after r179489.

        Correct symbol export definitions for 32-bit and 64-bit builds.
        Also add some drive-by fixes for 64-bit symbols.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2015-01-31  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed 64-bit build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Correct symbol
        definitions for 64-bit build.

2015-01-30  Chris Dumez  <cdumez@apple.com>

        Rename shared() static member functions to singleton() for singleton classes.
        https://bugs.webkit.org/show_bug.cgi?id=141088

        Reviewed by Ryosuke Niwa and Benjamin Poulain.

        Rename shared() static member functions to singleton() for singleton
        classes as per the recent coding style change.

        * Storage/WebDatabaseProvider.cpp:
        (WebDatabaseProvider::singleton):
        (WebDatabaseProvider::shared): Deleted.
        * Storage/WebDatabaseProvider.h:

2015-01-29  Brent Fulgham  <bfulgham@apple.com>

        [Win] Build fix after r179368.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Remove missing symbol.

2015-01-25  peavo@outlook.com  <peavo@outlook.com>

        [Win] Add WebKit message loop interface.
        https://bugs.webkit.org/show_bug.cgi?id=140857

        Reviewed by Brent Fulgham.

        Added message loop interface which will run the message loop,
        and perform required tasks (like calling CFRunLoopRunInMode)
        on each iteration of the loop.

        * WebKit.vcxproj/WebKit/WebKit.vcxproj: Added new files to project.
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters: Ditto.

2015-01-22  Andreas Kling  <akling@apple.com>

        Remove unused class EmojiFallbackFontSelector.
        <https://webkit.org/b/140809>

        Reviewed by Antti Koivisto.

        * WebKit.xcodeproj/project.pbxproj:

2015-01-21  Csaba Osztrogonác  <ossy@webkit.org>

        Remove ENABLE(INSPECTOR) ifdef guards
        https://bugs.webkit.org/show_bug.cgi?id=140668

        Reviewed by Darin Adler.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2015-01-20  David Kilzer  <ddkilzer@apple.com>

        Switch to comparing PLATFORM_NAME in terms of macosx
        <http://webkit.org/b/139516>

        Reviewed by Timothy Hatcher.

        * WebKit.xcodeproj/project.pbxproj:

2015-01-19  Anders Carlsson  <andersca@apple.com>

        Try to fix build warnings with newer versions of clang.

        * Storage/StorageAreaImpl.h:

2015-01-17  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: highlight data for overlay should use protocol type builders
        https://bugs.webkit.org/show_bug.cgi?id=129441

        Reviewed by Timothy Hatcher.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Update symbol.

2015-01-14  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix after r178459 and r178462.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add some
        missing exports needed by the test infrastructure.

2015-01-14  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix for DebugSuffix target.

        * WebKit.vcxproj/WebKit/WebKit.vcxproj: Correct build flags for DebugSuffix
        target to match Release and Debug builds.

2015-01-14  Brent Fulgham  <bfulgham@apple.com>

        [Win] Build fix after r178255.

        Correct path to PaintHooks.asm. This causes a build failure if you perform a
        clean build from a new subversion checkout.

        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:

2015-01-09  Brent Fulgham  <bfulgham@apple.com>

        [Win] Build fix after r178219.

        Update the project file settings to understand how to process assembly files.
        Also tidy up the plugin code in the project hieararchy.

        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:

2015-01-06  Anders Carlsson  <andersca@apple.com>

        Move the Windows only plug-in code to WebKit/win
        https://bugs.webkit.org/show_bug.cgi?id=140133

        Reviewed by Darin Adler.

        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:

2015-01-08  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix after r178124.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Remove symbol that
        is no longer part of WebCore.

2015-01-07  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: purge PassRefPtr from Inspector code and use Ref for typed and untyped protocol objects
        https://bugs.webkit.org/show_bug.cgi?id=140053

        Reviewed by Andreas Kling.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: update symbol.

2015-01-07  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r178039.
        https://bugs.webkit.org/show_bug.cgi?id=140187

        Breaks ObjC Inspector Protocol (Requested by JoePeck on
        #webkit).

        Reverted changeset:

        "Web Inspector: purge PassRefPtr from Inspector code and use
        Ref for typed and untyped protocol objects"
        https://bugs.webkit.org/show_bug.cgi?id=140053
        http://trac.webkit.org/changeset/178039

2015-01-06  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: purge PassRefPtr from Inspector code and use Ref for typed and untyped protocol objects
        https://bugs.webkit.org/show_bug.cgi?id=140053

        Reviewed by Andreas Kling.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: update symbol.

2015-01-06  Anders Carlsson  <andersca@apple.com>

        Add a WebKit1 database provider
        https://bugs.webkit.org/show_bug.cgi?id=140126

        Reviewed by Sam Weinig.

        Add a stubbed out database provider.

        * Storage/WebDatabaseProvider.cpp: Added.
        (WebDatabaseProvider::shared):
        (WebDatabaseProvider::WebDatabaseProvider):
        (WebDatabaseProvider::~WebDatabaseProvider):
        (WebDatabaseProvider::createIDBFactoryBackend):
        * Storage/WebDatabaseProvider.h: Added.
        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:
        * WebKit.xcodeproj/project.pbxproj:

2015-01-06  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r177963.
        https://bugs.webkit.org/show_bug.cgi?id=140136

        Caused lots of crashes (Requested by smfr on #webkit).

        Reverted changeset:

        "Add a WebKit1 database provider"
        https://bugs.webkit.org/show_bug.cgi?id=140126
        http://trac.webkit.org/changeset/177963

2015-01-06  Anders Carlsson  <andersca@apple.com>

        Add a WebKit1 database provider
        https://bugs.webkit.org/show_bug.cgi?id=140126

        Reviewed by Sam Weinig.

        Add a stubbed out database provider.

        * Storage/WebDatabaseProvider.cpp: Added.
        (WebDatabaseProvider::shared):
        (WebDatabaseProvider::WebDatabaseProvider):
        (WebDatabaseProvider::~WebDatabaseProvider):
        (WebDatabaseProvider::createIDBFactoryBackend):
        * Storage/WebDatabaseProvider.h: Added.
        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:
        * WebKit.xcodeproj/project.pbxproj:

2015-01-05  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix after r177925.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Correct symbol name.

2014-12-29  Anders Carlsson  <andersca@apple.com>

        Remove unneeded StorageNamespace functions
        https://bugs.webkit.org/show_bug.cgi?id=139997

        Reviewed by Sam Weinig.

        We can just cast to StorageNamespaceImpl directly, no need for virtual dispatch.

        * Storage/StorageNamespaceImpl.h:
        * Storage/WebStorageNamespaceProvider.cpp:
        (WebStorageNamespaceProvider::closeLocalStorage):
        (WebStorageNamespaceProvider::clearLocalStorageForAllOrigins):
        (WebStorageNamespaceProvider::clearLocalStorageForOrigin):
        (WebStorageNamespaceProvider::closeIdleLocalStorageDatabases):
        (WebStorageNamespaceProvider::syncLocalStorage):

2014-12-29  Anders Carlsson  <andersca@apple.com>

        Get rid of some PageGroup storage functions
        https://bugs.webkit.org/show_bug.cgi?id=139996

        Reviewed by Sam Weinig.

        Call WebStorageNamespaceProvider directly instead.

        * Storage/StorageTracker.cpp:
        (WebCore::StorageTracker::deleteAllOrigins):
        (WebCore::StorageTracker::deleteOrigin):

2014-12-29  Anders Carlsson  <andersca@apple.com>

        Move storage code from WebCore to WebKit
        https://bugs.webkit.org/show_bug.cgi?id=139558

        Reviewed by Darin Adler.

        * Storage/StorageAreaImpl.cpp: Renamed from Source/WebCore/storage/StorageAreaImpl.cpp.
        (WebCore::StorageAreaImpl::~StorageAreaImpl):
        (WebCore::StorageAreaImpl::StorageAreaImpl):
        (WebCore::StorageAreaImpl::create):
        (WebCore::StorageAreaImpl::copy):
        (WebCore::StorageAreaImpl::canAccessStorage):
        (WebCore::StorageAreaImpl::storageType):
        (WebCore::StorageAreaImpl::length):
        (WebCore::StorageAreaImpl::key):
        (WebCore::StorageAreaImpl::item):
        (WebCore::StorageAreaImpl::setItem):
        (WebCore::StorageAreaImpl::removeItem):
        (WebCore::StorageAreaImpl::clear):
        (WebCore::StorageAreaImpl::contains):
        (WebCore::StorageAreaImpl::importItems):
        (WebCore::StorageAreaImpl::close):
        (WebCore::StorageAreaImpl::clearForOriginDeletion):
        (WebCore::StorageAreaImpl::sync):
        (WebCore::StorageAreaImpl::blockUntilImportComplete):
        (WebCore::StorageAreaImpl::memoryBytesUsedByCache):
        (WebCore::StorageAreaImpl::incrementAccessCount):
        (WebCore::StorageAreaImpl::decrementAccessCount):
        (WebCore::StorageAreaImpl::closeDatabaseTimerFired):
        (WebCore::StorageAreaImpl::closeDatabaseIfIdle):
        (WebCore::StorageAreaImpl::dispatchStorageEvent):
        * Storage/StorageAreaImpl.h: Renamed from Source/WebCore/storage/StorageAreaImpl.h.
        * Storage/StorageAreaSync.cpp: Renamed from Source/WebCore/storage/StorageAreaSync.cpp.
        (WebCore::StorageAreaSync::StorageAreaSync):
        (WebCore::StorageAreaSync::create):
        (WebCore::StorageAreaSync::~StorageAreaSync):
        (WebCore::StorageAreaSync::scheduleFinalSync):
        (WebCore::StorageAreaSync::scheduleItemForSync):
        (WebCore::StorageAreaSync::scheduleClear):
        (WebCore::StorageAreaSync::scheduleCloseDatabase):
        (WebCore::StorageAreaSync::syncTimerFired):
        (WebCore::StorageAreaSync::openDatabase):
        (WebCore::StorageAreaSync::migrateItemTableIfNeeded):
        (WebCore::StorageAreaSync::performImport):
        (WebCore::StorageAreaSync::markImported):
        (WebCore::StorageAreaSync::blockUntilImportComplete):
        (WebCore::StorageAreaSync::sync):
        (WebCore::StorageAreaSync::performSync):
        (WebCore::StorageAreaSync::deleteEmptyDatabase):
        (WebCore::StorageAreaSync::scheduleSync):
        * Storage/StorageAreaSync.h: Renamed from Source/WebCore/storage/StorageAreaSync.h.
        * Storage/StorageNamespaceImpl.cpp: Renamed from Source/WebCore/storage/StorageNamespaceImpl.cpp.
        (WebCore::localStorageNamespaceMap):
        (WebCore::StorageNamespaceImpl::createSessionStorageNamespace):
        (WebCore::StorageNamespaceImpl::getOrCreateLocalStorageNamespace):
        (WebCore::StorageNamespaceImpl::StorageNamespaceImpl):
        (WebCore::StorageNamespaceImpl::~StorageNamespaceImpl):
        (WebCore::StorageNamespaceImpl::copy):
        (WebCore::StorageNamespaceImpl::storageArea):
        (WebCore::StorageNamespaceImpl::close):
        (WebCore::StorageNamespaceImpl::clearOriginForDeletion):
        (WebCore::StorageNamespaceImpl::clearAllOriginsForDeletion):
        (WebCore::StorageNamespaceImpl::sync):
        (WebCore::StorageNamespaceImpl::closeIdleLocalStorageDatabases):
        * Storage/StorageNamespaceImpl.h: Renamed from Source/WebCore/storage/StorageNamespaceImpl.h.
        * Storage/StorageSyncManager.cpp: Renamed from Source/WebCore/storage/StorageSyncManager.cpp.
        (WebCore::StorageSyncManager::create):
        (WebCore::StorageSyncManager::StorageSyncManager):
        (WebCore::StorageSyncManager::~StorageSyncManager):
        (WebCore::StorageSyncManager::fullDatabaseFilename):
        (WebCore::StorageSyncManager::dispatch):
        (WebCore::StorageSyncManager::close):
        * Storage/StorageSyncManager.h: Renamed from Source/WebCore/storage/StorageSyncManager.h.
        * Storage/StorageThread.cpp: Renamed from Source/WebCore/storage/StorageThread.cpp.
        (WebCore::activeStorageThreads):
        (WebCore::StorageThread::StorageThread):
        (WebCore::StorageThread::~StorageThread):
        (WebCore::StorageThread::start):
        (WebCore::StorageThread::threadEntryPointCallback):
        (WebCore::StorageThread::threadEntryPoint):
        (WebCore::StorageThread::dispatch):
        (WebCore::StorageThread::terminate):
        (WebCore::StorageThread::performTerminate):
        (WebCore::StorageThread::releaseFastMallocFreeMemoryInAllThreads):
        * Storage/StorageThread.h: Renamed from Source/WebCore/storage/StorageThread.h.
        * Storage/StorageTracker.cpp: Renamed from Source/WebCore/storage/StorageTracker.cpp.
        (WebCore::StorageTracker::initializeTracker):
        (WebCore::StorageTracker::internalInitialize):
        (WebCore::StorageTracker::tracker):
        (WebCore::StorageTracker::StorageTracker):
        (WebCore::StorageTracker::setDatabaseDirectoryPath):
        (WebCore::StorageTracker::databaseDirectoryPath):
        (WebCore::StorageTracker::trackerDatabasePath):
        (WebCore::ensureDatabaseFileExists):
        (WebCore::StorageTracker::openTrackerDatabase):
        (WebCore::StorageTracker::importOriginIdentifiers):
        (WebCore::StorageTracker::finishedImportingOriginIdentifiers):
        (WebCore::StorageTracker::syncImportOriginIdentifiers):
        (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
        (WebCore::StorageTracker::setOriginDetails):
        (WebCore::StorageTracker::syncSetOriginDetails):
        (WebCore::StorageTracker::origins):
        (WebCore::StorageTracker::deleteAllOrigins):
        (WebCore::truncateDatabaseFile):
        (WebCore::StorageTracker::syncDeleteAllOrigins):
        (WebCore::StorageTracker::deleteOriginWithIdentifier):
        (WebCore::StorageTracker::deleteOrigin):
        (WebCore::StorageTracker::syncDeleteOrigin):
        (WebCore::StorageTracker::willDeleteAllOrigins):
        (WebCore::StorageTracker::willDeleteOrigin):
        (WebCore::StorageTracker::canDeleteOrigin):
        (WebCore::StorageTracker::cancelDeletingOrigin):
        (WebCore::StorageTracker::isActive):
        (WebCore::StorageTracker::setIsActive):
        (WebCore::StorageTracker::databasePathForOrigin):
        (WebCore::StorageTracker::diskUsageForOrigin):
        * Storage/StorageTracker.h: Renamed from Source/WebCore/storage/StorageTracker.h.
        (WebCore::StorageTracker::storageDatabaseIdleInterval):
        (WebCore::StorageTracker::setStorageDatabaseIdleInterval):
        * Storage/StorageTrackerClient.h: Renamed from Source/WebCore/storage/StorageTrackerClient.h.
        (WebCore::StorageTrackerClient::~StorageTrackerClient):
        * Storage/WebStorageNamespaceProvider.cpp:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:
        * WebKit.xcodeproj/project.pbxproj:

2014-12-22  Brent Fulgham  <bfulgham@apple.com>

        [Win] Build fix after r177668.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add missing export definition
        for new symbols.

2014-12-19  Brent Fulgham  <bfulgham@apple.com>

        [Win] Build fix after r177588.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Fix
        symbol declaration.

2014-12-19  Alex Christensen  <achristensen@webkit.org>

        [Win64] Unreviewed build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Fixed some 64-bit linker symbols.

2014-12-18  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build correction after r177513.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Correct for new
        method signature.

2014-12-18  Brent Fulgham  <bfulgham@apple.com>

        [Win] Correct Windows tests after Bug 139149.
        https://bugs.webkit.org/show_bug.cgi?id=139781

        Reviewed by Anders Carlsson.

        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj: Add new interface.
        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj.filters: Ditto.
        * WebKit.vcxproj/WebKit/WebKit.vcxproj: Add new application cache object.
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters: Ditto.

2014-12-18  Andreas Kling  <akling@apple.com>

        Attempt to fix Windows build after Range::create() changes.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-12-17  Brent Fulgham  <bfulgham@apple.com>

        [Win] Correct DebugSuffix builds under MSBuild
        https://bugs.webkit.org/show_bug.cgi?id=139733
        <rdar://problem/19276880>

        Reviewed by Simon Fraser.

        * WebKit.vcxproj/WebKit.proj: Make sure to use the '_debug' suffix
        when building the DebugSuffix target.

2014-12-17  peavo@outlook.com  <peavo@outlook.com>

        [Win] Link errors.
        https://bugs.webkit.org/show_bug.cgi?id=139729

        Reviewed by Anders Carlsson.

        The list of exported symbols needs to be updated.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-12-12  Roger Fong  <roger_fong@apple.com>

        [Windows] Unreviewed 64bit build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-12-12  Anders Carlsson  <andersca@apple.com>

        Handle null local storage database URLs
        https://bugs.webkit.org/show_bug.cgi?id=139594
        <rdar://problem/19236505>

        Reviewed by Beth Dakin.

        * Storage/WebStorageNamespaceProvider.cpp:
        (WebStorageNamespaceProvider::WebStorageNamespaceProvider):

2014-12-11  Anders Carlsson  <andersca@apple.com>

        Build fix.

        * Storage/WebStorageNamespaceProvider.h:

2014-12-11  Anders Carlsson  <andersca@apple.com>

        Replicate a bunch of PageGroup functions in WebStorageNamespaceProvider
        https://bugs.webkit.org/show_bug.cgi?id=139544

        Reviewed by Antti Koivisto.

        This code is currently unused but will be called by StorageTracker once that class has been
        moved from WebCore to WebKit.

        * Storage/WebStorageNamespaceProvider.cpp:
        (WebStorageNamespaceProvider::clearLocalStorageForAllOrigins):
        (WebStorageNamespaceProvider::clearLocalStorageForOrigin):
        (WebStorageNamespaceProvider::closeIdleLocalStorageDatabases):
        (WebStorageNamespaceProvider::syncLocalStorage):
        * Storage/WebStorageNamespaceProvider.h:

2014-12-10  Beth Dakin  <bdakin@apple.com>

        WK1: Add initial support for immediate actions
        https://bugs.webkit.org/show_bug.cgi?id=139522

        Reviewed by Dan Bernstein.

        * WebKit.xcodeproj/project.pbxproj:

2014-12-10  Anders Carlsson  <andersca@apple.com>

        Add session storage handling to StorageNamespaceProvider
        https://bugs.webkit.org/show_bug.cgi?id=139507

        Reviewed by Tim Horton.

        * Storage/WebStorageNamespaceProvider.cpp:
        (WebStorageNamespaceProvider::createSessionStorageNamespace):
        * Storage/WebStorageNamespaceProvider.h:

2014-12-10  Anders Carlsson  <andersca@apple.com>

        Add WebStorageNamespaceProvider::closeLocalStorage
        https://bugs.webkit.org/show_bug.cgi?id=139502

        Reviewed by Tim Horton.

        * Storage/WebStorageNamespaceProvider.cpp:
        (storageNamespaceProviders):
        (WebStorageNamespaceProvider::WebStorageNamespaceProvider):
        (WebStorageNamespaceProvider::~WebStorageNamespaceProvider):
        Keep track of all live storage namespace providers.
        
        (WebStorageNamespaceProvider::closeLocalStorage):
        Loop through all storage namespace providers and call close() on their local storage namespaces.

        * Storage/WebStorageNamespaceProvider.h:

2014-12-09  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r177037.
        https://bugs.webkit.org/show_bug.cgi?id=139464

        broke ~50 API tests (Requested by thorton on #webkit).

        Reverted changeset:

        "Use the new storage namespace provider in WebKit1"
        https://bugs.webkit.org/show_bug.cgi?id=139425
        http://trac.webkit.org/changeset/177037

2014-12-08  Anders Carlsson  <andersca@apple.com>

        WebStorageNamespaceProvider should create StorageNamespaceImpls
        https://bugs.webkit.org/show_bug.cgi?id=139419

        Reviewed by Andreas Kling.

        * Storage/WebStorageNamespaceProvider.cpp:
        (WebStorageNamespaceProvider::createLocalStorageNamespace):
        (WebStorageNamespaceProvider::createTransientLocalStorageNamespace):
        Create StorageNamespaceImpls.

        (WebStorageNamespaceProvider::createSessionStorageNamespace): Deleted.
        Delete this for now.

        * Storage/WebStorageNamespaceProvider.h:

2014-12-08  Anders Carlsson  <andersca@apple.com>

        WebStorageNamespaceProvider should know about its local storage database path
        https://bugs.webkit.org/show_bug.cgi?id=139413

        Reviewed by Andreas Kling.

        * Storage/WebStorageNamespaceProvider.cpp:
        (WebStorageNamespaceProvider::create):
        (WebStorageNamespaceProvider::WebStorageNamespaceProvider):
        * Storage/WebStorageNamespaceProvider.h:

2014-12-06  Anders Carlsson  <andersca@apple.com>

        Add a stubbed out version of WebStorageNamespaceProvider
        https://bugs.webkit.org/show_bug.cgi?id=139213

        Reviewed by Sam Weinig.

        * Storage/WebStorageNamespaceProvider.cpp: Added.
        * Storage/WebStorageNamespaceProvider.h: Added.

        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:
        * WebKit.xcodeproj/project.pbxproj:
        Add new files.

2014-12-05  Roger Fong  <roger_fong@apple.com>

        [Win] proj files copying over too many resources..
        https://bugs.webkit.org/show_bug.cgi?id=139315.
        <rdar://problem/19148278>

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit.proj: Only copy resource folders and WebKit.dll.

2014-12-02  Sam Weinig  <sam@webkit.org>

        Remove empty directories

        Reviewed by Anders Carlsson.

        * Source: Removed.
        * Source/WebKit: Removed.
        * Source/WebKit/mac: Removed.
        * Source/WebKit/mac/Resources: Removed.

2014-12-02  Tim Horton  <timothy_horton@apple.com>

        Implement Lookup transition from selection for Legacy WebKit
        https://bugs.webkit.org/show_bug.cgi?id=139180
        <rdar://problem/19067172>

        Reviewed by Beth Dakin.

        * WebKit.xcodeproj/project.pbxproj:
        Add mac/WebView/DictionaryPopupInfo.h.

2014-12-01  Anders Carlsson  <andersca@apple.com>

        Remove IWebCookieManager on Windows
        https://bugs.webkit.org/show_bug.cgi?id=139144

        Reviewed by Sam Weinig.

        Remove files.

        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj:
        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj.filters:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:

2014-11-27  Anders Carlsson  <andersca@apple.com>

        Add a stubbed out WebVisitedLinkStore class on Windows
        https://bugs.webkit.org/show_bug.cgi?id=139078

        Reviewed by Sam Weinig.

        * WebKit.vcxproj/WebKit/WebKit.vcxproj:

2014-11-27  Anders Carlsson  <andersca@apple.com>

        Add a stubbed out WebVisitedLinkStore to WebViewGroup
        https://bugs.webkit.org/show_bug.cgi?id=139066

        Reviewed by Antti Koivisto.

        * WebKit.xcodeproj/project.pbxproj:

2014-11-21  Anders Carlsson  <andersca@apple.com>

        Add a new symbol.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-11-21  Anders Carlsson  <andersca@apple.com>

        Remove a symbol that's gone.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-11-11  Chris Dumez  <cdumez@apple.com>

        Mark more virtual functions in HTMLInputElement as final
        https://bugs.webkit.org/show_bug.cgi?id=138644

        Reviewed by Andreas Kling.

        Export an additional symbol to fix Windows build.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-11-08  Darin Adler  <darin@apple.com>

        Replace FileThread class with a single function
        https://bugs.webkit.org/show_bug.cgi?id=138282

        Reviewed by Alexey Proskuryakov.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Removed exports of obsolete threading functions.

2014-11-05  Dan Bernstein  <mitz@apple.com>

        Removed references to deletion UI resources that have been removed.

        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:

2014-10-31  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed 64-bit Build Fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Correct symbol
        export declarations.

2014-10-30  Chris Dumez  <cdumez@apple.com>

        Unreviewed Windows build fix after r175391.

        Export a couple of symbols.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-10-30  Ada Chan  <adachan@apple.com>

        Attempt to fix the Windows build after r175384.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-10-24  Alexey Proskuryakov  <ap@apple.com>

        All plug-in tests fail on Yosemite WK1
        https://bugs.webkit.org/show_bug.cgi?id=138040

        Reviewed by Dan Bernstein.

        Fix a symlink for WebKitPluginHost.app. There is also a broken symlink for WebKitPluginAgent,
        which I don't know what to do about, but that seems harmless.

        * WebKit.xcodeproj/project.pbxproj:

2014-10-19  Chris Dumez  <cdumez@apple.com>

        Kill toRenderedDocumentMarker() by using tighter typing
        https://bugs.webkit.org/show_bug.cgi?id=137858

        Reviewed by Darin Adler.

        Update symbol export for Windows due to argument type change.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-10-17  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Accelerated compositing is not implemented.
        https://bugs.webkit.org/show_bug.cgi?id=137345

        Reviewed by Brent Fulgham.

        This patch is based on GTK, and the texture mapper graphics layer type.

        * WebKit.vcxproj/WebKit/WebKit.vcxproj: Added new accelerated compositing source files.
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters: Ditto.

2014-10-16  Tim Horton  <timothy_horton@apple.com>

        Implement selection services menu for Legacy WebKit
        https://bugs.webkit.org/show_bug.cgi?id=137582
        <rdar://problem/18604241>

        Reviewed by Brady Eidson.

        * WebKit.xcodeproj/project.pbxproj:

2014-10-14  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed gardening. Ignore Visual Studio *.sdf files.

        * WebKit.vcxproj: Modified property svn:ignore.

2014-10-10  Daniel Bates  <dabates@apple.com>

        Remove unused classes WebRender{Node, Layer}
        https://bugs.webkit.org/show_bug.cgi?id=137628

        Reviewed by Simon Fraser.

        We no longer make use of the WebKit1-specific classes WebRenderNode and WebRenderLayer.
        For completeness, there is a WebKit2 analogue of WebRenderLayer by the same name.

        * WebKit.xcodeproj/project.pbxproj:

2014-10-06  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed 64-bit build fix after r174315.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Update exports for
        64-bit symbol names.

2014-10-04  Timothy Horton  <timothy_horton@apple.com>

        Try to fix the Windows build after r174315.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-10-04  Timothy Horton  <timothy_horton@apple.com>

        Try to fix the Windows build after r174315.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-09-28  Myles C. Maxfield  <mmaxfield@apple.com>

        Replace wkGetGlyphsForCharacters() with CGFontGetGlyphsForUnichars()
        https://bugs.webkit.org/show_bug.cgi?id=137197

        Reviewed by Alexey Proskuryakov.

        No new tests because there is no behavior change.

        * mac/WebCoreSupport/WebSystemInterface.mm:
        (InitWebCoreSystemInterface):
        * WebKit.order:

2014-09-25  Brent Fulgham  <bfulgham@apple.com>

        [Win] 64-bit build fix after r173929.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-09-25  Csaba Osztrogonác  <ossy@webkit.org>

        Remove WinCE port from trunk
        https://bugs.webkit.org/show_bug.cgi?id=136951

        Reviewed by Alex Christensen.

        * PlatformWinCE.cmake: Removed.
        * wince/WebCoreSupport/ChromeClientWinCE.cpp: Removed.
        * wince/WebCoreSupport/ChromeClientWinCE.h: Removed.
        * wince/WebCoreSupport/ContextMenuClientWinCE.cpp: Removed.
        * wince/WebCoreSupport/ContextMenuClientWinCE.h: Removed.
        * wince/WebCoreSupport/DragClientWinCE.cpp: Removed.
        * wince/WebCoreSupport/DragClientWinCE.h: Removed.
        * wince/WebCoreSupport/EditorClientWinCE.cpp: Removed.
        * wince/WebCoreSupport/EditorClientWinCE.h: Removed.
        * wince/WebCoreSupport/FrameLoaderClientWinCE.cpp: Removed.
        * wince/WebCoreSupport/FrameLoaderClientWinCE.h: Removed.
        * wince/WebCoreSupport/FrameNetworkingContextWinCE.cpp: Removed.
        * wince/WebCoreSupport/FrameNetworkingContextWinCE.h: Removed.
        * wince/WebCoreSupport/InspectorClientWinCE.cpp: Removed.
        * wince/WebCoreSupport/InspectorClientWinCE.h: Removed.
        * wince/WebCoreSupport/PlatformStrategiesWinCE.cpp: Removed.
        * wince/WebCoreSupport/PlatformStrategiesWinCE.h: Removed.
        * wince/WebView.cpp: Removed.
        * wince/WebView.h: Removed.

2014-09-23  Brent Fulgham  <bfulgham@apple.com>

        [Win] 64-bit Build fix after r173882.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add correct 64-bit mangled symbol name.

2014-09-23  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Should be able to attach a debugger to a JSContext before anything is executed
        https://bugs.webkit.org/show_bug.cgi?id=136893

        Reviewed by Timothy Hatcher.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-09-23  Brent Fulgham  <bfulgham@apple.com>

        [Win] Correct 64-bit Windows export definitions after r173804.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Provide proper
        64-bit mangled symbol names.

2014-09-21  Chris Dumez  <cdumez@apple.com>

        Generate Element casting helper functions
        https://bugs.webkit.org/show_bug.cgi?id=136839

        Reviewed by Darin Adler.

        Update some of the exported symbols on Windows for functions that were
        renamed.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-09-15  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Make it easier to enable/disable GStreamer.
        https://bugs.webkit.org/show_bug.cgi?id=135766

        Reviewed by Brent Fulgham.

        Make it possible to enable/disable GStreamer by editing the new user macro ENABLE_GSTREAMER_WINCAIRO.

        * WebKit.vcxproj/WebKit/WebKitDebugWinCairo.props: Import GStreamer property file.
        * WebKit.vcxproj/WebKit/WebKitReleaseWinCairo.props: Ditto.

2014-09-06  Darin Adler  <darin@apple.com>

        Make updates suggested by new version of Xcode
        https://bugs.webkit.org/show_bug.cgi?id=136603

        Reviewed by Mark Rowe.

        * WebKit.xcodeproj/project.pbxproj: Updated LastUpgradeCheck.

2014-09-04  Pratik Solanki  <psolanki@apple.com>

        Remove iOS specific disk image cache
        https://bugs.webkit.org/show_bug.cgi?id=136517

        Reviewed by Antti Koivisto.

        Disk image cache code unnecessarily complicates SharedBuffer implementation. We can remove
        this now since we don't enable it in WebKit2 on iOS.

        * WebKit.xcodeproj/project.pbxproj:

2014-08-29  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviwed, remove empty directories.

        * efl: Removed.
        * efl/DefaultTheme: Removed.
        * efl/DefaultTheme/widget: Removed.
        * efl/WebCoreSupport: Removed.
        * efl/ewk: Removed.
        * efl/tests: Removed.
        * efl/tests/UnitTestUtils: Removed.
        * efl/tests/resources: Removed.
        * gtk: Removed.
        * gtk/WebCoreSupport: Removed.
        * gtk/docs: Removed.
        * gtk/gdom: Removed.
        * gtk/resources: Removed.
        * gtk/webkit: Removed.

2014-08-28  Brent Fulgham  <bfulgham@apple.com>

        [Win] Adjust build order to reduce flakiness.

        * WebKit.vcxproj/WebKit.sln: Make sure WebCoreGenerated doesn't
          start until the last JSC tool has finished building.

2014-08-27  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed Build 'fix' after r173018.

        The new launcher applications were not getting build when driven
        by WebKit.sln. This adds the missing project links and dependencies.

        * WebKit.vcxproj/WebKit.sln: Update to include jscLauncher,
        testapiLauncher, and testRegExpLauncher.

2014-08-26  Andy Estes  <aestes@apple.com>

        [Cocoa] Some projects are incorrectly installed to $BUILT_PRODUCTS_DIR
        https://bugs.webkit.org/show_bug.cgi?id=136267

        Reviewed by Dan Bernstein.

        INSTALL_PATH was set to $BUILT_PRODUCTS_DIR for engineering configurations in r20225 as part of a build fix.
        Not only is this no longer necessary to build, but it causes built products to be incorrectly installed in
        engineering configurations.

        Remove the setting of INSTALL_PATH from the pbxproj file so that the value specified in the xcconfig files is
        used instead.

        * WebKit.xcodeproj/project.pbxproj:

2014-08-20  Benjamin Poulain  <bpoulain@apple.com>

        Remove HTMLInputElement's suggestedValue
        https://bugs.webkit.org/show_bug.cgi?id=136094

        Reviewed by Darin Adler.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-08-20  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/136119> WebKit1 plug-in test failures in production builds after r172595

        Reviewed by Alexey Proskuryakov.

        * WebKit.xcodeproj/project.pbxproj: Add the symlinks at the top level of WebKitLegacy.framework
        even in Production builds. Add the symlinks in the right locations too.

2014-08-15  Andy Estes  <aestes@apple.com>

        [Cocoa] Add migrate-headers.sh and postprocess-headers.sh to WebKit.xcodeproj
        https://bugs.webkit.org/show_bug.cgi?id=135984

        Reviewed by Daniel Bates.

        It's nice to be able to look at these files in Xcode.

        * WebKit.xcodeproj/project.pbxproj:

2014-08-15  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/135979> WebKit1 Plug-in test failures in clean builds after r172595

        Reviewed by Dan Bernstein.

        * WebKit.xcodeproj/project.pbxproj: Add a WebKitPluginHost.app symlink at the top level of
        WebKitLegacy.framework that points into Versions/Current. This enables -[NSBundle pathForAuxiliaryExecutable:]
        to work correctly. Adding this symlink requires deleting any content that may already exist
        at that path, since prior to r172595 it may have contained either a symlink or an
        application bundle.

2014-08-13  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/135909> Move helper applications out of the root of the framework.

        As described in <https://developer.apple.com/library/mac/technotes/tn2206/>, for bundles containing
        a Versions directory there may be no other content at the top level of the bundle other than symlinks.
        Upcoming changes to code signing will prevent bundles that violate this rule from being signed.

        Reviewed by Sam Weinig.

        * WebKit.xcodeproj/project.pbxproj: Add the symlink to WebKitPluginHost.app in the Versions/A
        directory of the framework rather than at the top level.

2014-08-14  Alex Christensen  <achristensen@webkit.org>

        Unreviewed.  Removing empty directories.

        * qt: Removed.
        * qt/declarative: Removed.
        * qt/docs: Removed.
        * qt/docs/webkitsnippets: Removed.
        * qt/examples: Removed.
        * qt/tests: Removed.
        * qt/tests/MIMESniffing: Removed.
        * qt/tests/benchmarks: Removed.
        * qt/tests/qgraphicswebview: Removed.
        * qt/tests/qwebelement: Removed.
        * qt/tests/qwebframe: Removed.
        * qt/tests/qwebhistory: Removed.
        * qt/tests/qwebpage: Removed.
        * qt/tests/qwebsecurityorigin: Removed.
        * qt/tests/qwebview: Removed.

2014-08-12  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix after r172504

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add missing
        symbol exports.

2014-08-11  Andy Estes  <aestes@apple.com>

        [iOS] Get rid of iOS.xcconfig
        https://bugs.webkit.org/show_bug.cgi?id=135809

        Reviewed by Joseph Pecoraro.

        All iOS.xcconfig did was include AspenFamily.xcconfig, so there's no need for the indirection.

        * WebKit.xcodeproj/project.pbxproj:

2014-08-07  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed gardening.

        * WebKit.vcxproj/WebKit/WebKitCommon.props: Add $(DebugSuffix) to libraries so
        that the DebugSuffix target works properly.

2014-08-07  Timothy Hatcher  <timothy@apple.com>

        Web Inspector: Update glyphs to be more like Xcode 6
        https://bugs.webkit.org/show_bug.cgi?id=135705

        Reviewed by Joseph Pecoraro.

        * WebKit.xcodeproj/project.pbxproj: Added new images.

2014-07-31  Andreas Kling  <akling@apple.com>

        Speculative Windows build fixery, part II.

        This seems to indicate that adding the globalObjectTable to the exports file
        was the wrong idea:

        1>WebKit.exp : error LNK2001: unresolved external symbol "struct JSC::HashTable const JSC::globalObjectTable" (?globalObjectTable@JSC@@3UHashTable@1@B)

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-07-29  Brent Fulgham  <bfulgham@apple.com>

        [Win] Modify version numbering scheme to support 5-tuple versions
        https://bugs.webkit.org/show_bug.cgi?id=135400
        <rdar://problem/17849033>

        Reviewed by David Kilzer.

        * WebKit.vcxproj/WebKit/WebKitPostBuild.cmd: Use the new
        version-stamp.pl script to version JavaScriptCore.dll.

2014-07-17  David Kilzer  <ddkilzer@apple.com>

        SECTORDER_FLAGS should be defined in target's xcconfig file, not Base.xcconfig
        <http://webkit.org/b/135006>

        Reviewed by Darin Adler.

        * WebKit.xcodeproj/project.pbxproj: Remove references to unused
        WebKit.xcconfig file.

2014-07-09  Brent Fulgham  <bfulgham@apple.com>

        [Win] Remove uses of 'bash' in build system
        https://bugs.webkit.org/show_bug.cgi?id=134782
        <rdar://problem/17615533>

        Reviewed by Dean Jackson.

        Remove uses of 'bash' by replacing Windows-specific bash scripts
        with Perl equivalents.

        * WebKit.vcxproj/Interfaces/FixMIDLHeaders.pl:
        * WebKit.vcxproj/Interfaces/InterfacesPreBuild.cmd:
        * WebKit.vcxproj/WebKit/WebKitPreBuild.cmd:
        * WebKit.vcxproj/WebKit/WebKitVersion.cmd:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorBuildCmd.cmd:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPreBuild.cmd:
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDPreBuild.cmd:

2014-07-09  Brent Fulgham  <bfulgham@apple.com>

        [Win] Remove use of 'grep' in build steps
        https://bugs.webkit.org/show_bug.cgi?id=134770
        <rdar://problem/17608783>

        Reviewed by Tim Horton.

        Replace uses of the grep command in Windows builds with the equivalent
        Perl program.

        * WebKit.vcxproj/Interfaces/InterfacesPreBuild.cmd:
        * WebKit.vcxproj/WebKit/WebKitPreBuild.cmd:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPreBuild.cmd:
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDPreBuild.cmd:

2014-07-08  Brent Fulgham  <bfulgham@apple.com>

        [Win] Implement auto-version as a Perl program
        https://bugs.webkit.org/show_bug.cgi?id=134745
        <rdar://problem/17597801>

        Reviewed by David Kilzer.

        Modify build commands to use new Perl version of the
        auto-version script.

        * WebKit.vcxproj/Interfaces/InterfacesPreBuild.cmd:
        * WebKit.vcxproj/WebKit/WebKitPreBuild.cmd:

2014-07-06  Yoav Weiss  <yoav@yoav.ws>

        Turn on img@sizes compile flag
        https://bugs.webkit.org/show_bug.cgi?id=134634

        Reviewed by Benjamin Poulain.

        * mac/Configurations/FeatureDefines.xcconfig: Moved compile flag to alphabetical order.

2014-07-01  Alex Christensen  <achristensen@webkit.org>

        [Win64] Unreviewed build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Corrected 64-bit linker symbols.

2014-06-27  Brent Fulgham  <bfulgham@apple.com>

        [Win] Implement parts of the AVFOUNDATION_LOADER_DELEGATE logic for Windows
        https://bugs.webkit.org/show_bug.cgi?id=134418

        Reviewed by Eric Carlson.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add new
        export.

2014-06-26  Brady Eidson  <beidson@apple.com>

        Remove use of PlatformStrategies for Gamepad API.
        https://bugs.webkit.org/show_bug.cgi?id=134348

        Reviewed by Dean Jackson.

        * WebKit.xcodeproj/project.pbxproj:

2014-06-25  Brent Fulgham  <bfulgham@apple.com>

        [Win] Expose Cache Information to WinLauncher
        https://bugs.webkit.org/show_bug.cgi?id=134318

        Reviewed by Dean Jackson.

        * WebKit.vcxproj/WebKit/WebKitPostBuild.cmd: Copy the
        CFDictionaryPropertyBag header to WebKit API directory.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Expose the dictionary accessor for the CFDictionaryPropertyBag.

2014-06-25  Brady Eidson  <beidson@apple.com>

        Add HID-based gamepad implementation for Mac
        https://bugs.webkit.org/show_bug.cgi?id=134324

        Reviewed by Dean Jackson.

        * WebKit.xcodeproj/project.pbxproj:

2014-06-23  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Remove the WebKit1 EFL code
        https://bugs.webkit.org/show_bug.cgi?id=134096

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake: Removed.
        * efl: Removed entire efl directory.

2014-06-18  Alex Christensen  <achristensen@webkit.org>

        Add FTL to Windows build.
        https://bugs.webkit.org/show_bug.cgi?id=134015

        Reviewed by Filip Pizlo.

        * WebKit.vcxproj/WebKit.sln:
        Added libllvmForJSC with a dependency on JavaScriptCoreGenerated, but don't build it yet.

2014-06-11  Alex Christensen  <achristensen@webkit.org>

        [Win] Unreviewed build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Fixed 64-bit linker symbol.

2014-06-04  Alex Christensen  <achristensen@webkit.org>

        Enable WebGL on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=133503

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit.sln:
        Build ANGLE projects and add them as a dependency for linking WebKit.dll.
        * WebKit.vcxproj/WebKit/WebKitCommon.props:
        Link to ANGLE libraries to get EGL, GLESv2, and GLSL translator symbols.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Added 64-bit linker symbol.

2014-05-28  Jon Honeycutt  <jhoneycutt@apple.com>

        Roll r168668 back in.

        <https://bugs.webkit.org/show_bug.cgi?id=132621>

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-05-27  Csaba Osztrogonác  <ossy@webkit.org>

        Speculative Windows buildfix after r169358.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-05-22  Antti Koivisto  <antti@apple.com>

        Try to fix windows build.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-05-21  Alex Christensen  <achristensen@webkit.org>

        [Win64] Unreviewed build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Corrected 64-bit linker symbol.

2014-05-13  Jon Honeycutt  <jhoneycutt@apple.com>

        Revert "Don't dispatch 'beforeload' event inside FrameView::layout()",
        commit 84fe8cf6fbe8b5de9a06300ca3ef6d0ffc96948c, and associated
        follow-up fixes:

            "platform/mac/plugins/testplugin-onnew-onpaint.html failing after
                r168668", commit c17be3bf5127baf94310af4b4b9bf5a57d29aaf4
            "[Win] Unreviewed build fix after r168668.", commit
                4fa470ad12c38ee7d4c114541b6dd321181a8bc9

        The original merged patch appears to have caused a regression in
        fast/dom/HTMLObjectElement/object-as-frame.html.

        <https://bugs.webkit.org/show_bug.cgi?id=132886>

        Reviewed by Alexey Proskuryakov.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-05-13  Dean Jackson  <dino@apple.com>

        Step 2 (of 2) fixing the Windows build. Add new setPageScaleFactor.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-05-13  Dean Jackson  <dino@apple.com>

        Step 1 of fixing the windows build. Remove setPageScaleFactor.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-05-12  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix after r168668.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add
        missing export symbols.

2014-05-12  Anders Carlsson  <andersca@apple.com>

        Don't make a Frameworks symlink inside WebKitLegacy.framework
        https://bugs.webkit.org/show_bug.cgi?id=132842
        <rdar://problem/16886939>

        Reviewed by Dan Bernstein.

        * WebKit.xcodeproj/project.pbxproj:

2014-05-09  Anders Carlsson  <andersca@apple.com>

        Rename WebKit2.framework to WebKit.framework
        https://bugs.webkit.org/show_bug.cgi?id=132743
        <rdar://problem/15920046>

        Reviewed by Dan Bernstein.

        * WebKit.xcodeproj/project.pbxproj:
        Remove the WebKit framework, it lives inside WebKit2 now.

2014-05-07  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed 64-bit build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add
        correct 64-bit symbol definitions.

2014-05-07  Oliver Hunt  <oliver@apple.com>

        Fix windows build.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-05-06  Anders Carlsson  <andersca@apple.com>

        Put the symlink in the right place.

        * WebKit.xcodeproj/project.pbxproj:

2014-05-06  Anders Carlsson  <andersca@apple.com>

        Put WebKitPluginHost.app in WebKitLegacy.framework
        https://bugs.webkit.org/show_bug.cgi?id=132592
        <rdar://problem/15920046>

        Reviewed by Dan Bernstein.

        * WebKit.xcodeproj/project.pbxproj:

2014-05-05  Andreas Kling  <akling@apple.com>

        Unreviewed, rolling out r168334.

        Broke builds.

        Reverted changeset:

        "Put WebKitPluginHost.app in WebKitLegacy.framework"
        https://bugs.webkit.org/show_bug.cgi?id=132592
        http://trac.webkit.org/changeset/168334

2014-05-05  Anders Carlsson  <andersca@apple.com>

        Put WebKitPluginHost.app in WebKitLegacy.framework
        https://bugs.webkit.org/show_bug.cgi?id=132592
        <rdar://problem/15920046>

        Reviewed by Dan Bernstein.

        * WebKit.xcodeproj/project.pbxproj:

2014-05-02  Anders Carlsson  <andersca@apple.com>

        Remove unsuccessful build fix attempts
        https://bugs.webkit.org/show_bug.cgi?id=132476

        Reviewed by Dan Bernstein.

        * WebKit.xcodeproj/project.pbxproj:

2014-05-01  Anders Carlsson  <andersca@apple.com>

        Support OS-version-specific install paths for WebKit.framework
        https://bugs.webkit.org/show_bug.cgi?id=132448
        <rdar://problem/16784932>

        Reviewed by Dan Bernstein.

        * WebKit.xcodeproj/project.pbxproj:
        Add a build step to put a symlink in place from PrivateFrameworks to Frameworks.

2014-05-01  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/16780403> REGRESSION: Plugin tests failing on Mac/WebKit1.

        * WebKit.xcodeproj/project.pbxproj: Keep the WebKitPluginHost.app symlink in
        WebKit.framework for now.

2014-04-30  Eric Carlson  <eric.carlson@apple.com>

        [iOS] do not pause video when entering background while playing to external device
        https://bugs.webkit.org/show_bug.cgi?id=132374

        Reviewed by Jer Noble.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-04-30  Anders Carlsson  <andersca@apple.com>

        Try yet again to fix the build.

        * WebKit.xcodeproj/project.pbxproj:

2014-04-30  Anders Carlsson  <andersca@apple.com>

        Another build fix attempt.

        * WebKit.xcodeproj/project.pbxproj:

2014-04-30  Anders Carlsson  <andersca@apple.com>

        Try to fix the iOS build.

        * WebKit.xcodeproj/project.pbxproj:

2014-04-30  Anders Carlsson  <andersca@apple.com>

        Another build fix attempt.

        * WebKit.xcodeproj/project.pbxproj:
        Remove headers if it seems like the WKWebViewPrivate header imports itself.
        
2014-04-30  Anders Carlsson  <andersca@apple.com>

        Another build fix.

        * WebKit.xcodeproj/project.pbxproj:
        Remove WK headers from WebKit.framework as well when WebKitLegacy WK headers are encountered.

2014-04-30  Anders Carlsson  <andersca@apple.com>

        Try to fix the build.

        * WebKit.xcodeproj/project.pbxproj:
        Remove old WK forwarding headers from WebKitLegacy.

2014-04-30  Anders Carlsson  <andersca@apple.com>

        Move the legacy WebKit API into WebKitLegacy.framework and move it inside WebKit.framework
        https://bugs.webkit.org/show_bug.cgi?id=132399
        <rdar://problem/15920046>

        Reviewed by Dan Bernstein.

        * WebKit.xcodeproj/project.pbxproj:
        Add a new build target that builds the legacy WebKit API in WebKitLegacy.framework. This framework
        is then re-exported by WebKit.framework, and its headers are copied to WebKit.framework. All the WebKitLegacy
        headers are made private, and the MigrateHeadersFromWebKitLegacy.make Makefile will copy all the headers specified
        in WEBKIT_PUBLIC_HEADERS to WebKit/Headers.

2014-04-29  Alex Christensen  <achristensen@webkit.org>

        [WinCairo] Switch video from GStreamer to Media Foundation.
        https://bugs.webkit.org/show_bug.cgi?id=132358

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        Removed dependencies on GStreamer.

2014-04-22  Brent Fulgham  <bfulgham@apple.com>

        [Win] Support Python 2.7 in Cygwin
        https://bugs.webkit.org/show_bug.cgi?id=132023

        Reviewed by Michael Saboff.

        * WebKit.vcxproj/WebKit/WebKitVersion.cmd: Use correct
        path to Python under Cygwin.

2014-04-20  Andreas Kling  <akling@apple.com>

        Blind Windows build fix. Hope I guessed the 64-bit mangled form right.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-04-18  Philippe Normand  <pnormand@igalia.com>

        Remove NETWORK_INFO support
        https://bugs.webkit.org/show_bug.cgi?id=131841

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake:

2014-04-17  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed 64-bit build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Do not
        export 32-bit symbol in 64-bit build. 

2014-04-17  Hyowon Kim  <hw1008.kim@samsung.com>

        [EFL] Remove deprecated ewk_paint code.
        https://bugs.webkit.org/show_bug.cgi?id=131266

        Reviewed by Gyuyoung Kim.

        ewk_paint related code was deprecated since r166637.

        * PlatformEfl.cmake: Remove ewk_paint_context.cpp

2014-04-16  Simon Fraser  <simon.fraser@apple.com>

        Make Windows fail with a link error so I know what the new symbol is.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-04-10  Michael Saboff  <msaboff@apple.com>

        LLInt interpreter code should be generated as part of one function
        https://bugs.webkit.org/show_bug.cgi?id=131205

        Reviewed by Mark Lam.

        Updated VS dependencies for JavaScriptCore changes.

        * WebKit.vcxproj/WebKit.sln:

2014-04-10  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed 64-bit Build Fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Provide
        proper mangled names for 64-bit build.

2014-04-08  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Remove the WebKitGTK+ WebKit 1 code
        https://bugs.webkit.org/show_bug.cgi?id=131399

        Reviewed by Anders Carlsson.

        * PlatformGTK.cmake: Removed.
        * gtk: Remove this entire directory.

2014-04-06  Darin Adler  <darin@apple.com>

        Make some bindings improvements, with smaller code size for error message generation
        https://bugs.webkit.org/show_bug.cgi?id=131285

        Reviewed by Andreas Kling.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Updated for
        changes in JavaScript binding functions.

2014-04-05  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: remove unused test hook setInspectorResourcesDataSizeLimits
        https://bugs.webkit.org/show_bug.cgi?id=131268

        Reviewed by Timothy Hatcher.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Remove symbols.

2014-04-05  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: remove unused metrics and commands from the Timeline agent
        https://bugs.webkit.org/show_bug.cgi?id=131184

        Reviewed by Timothy Hatcher.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Remove symbols.

2014-04-04  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add missing
        symbol export.

2014-04-03  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed build fix.

        * WebKit.vcxproj/WebKit.sln: Make sure we don't generate the
        WebInspectorUI before the generated JS is ready.

2014-04-02  Benjamin Poulain  <bpoulain@apple.com>

        [iOS] Remove the legacy string drawing code
        https://bugs.webkit.org/show_bug.cgi?id=131088

        Reviewed by Sam Weinig.

        * WebKit.xcodeproj/project.pbxproj:

2014-04-02  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix for full Debug rebuild.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Export JSC symbol needed by testing infrastructure.

2014-04-01  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Transition class Image (and its dependencies) from int to float to enable subpixel positioned/sized images.
        https://bugs.webkit.org/show_bug.cgi?id=130643

        Reviewed by Simon Fraser.

        This is in preparation to support subpixel positioned/sized background images. While 1x bitmap images can't take
        subpixel sizing on hidpi resolutions, both generated and hidpi images can.
        This patch does not change Image behavior in general as both position and size are still snapped to integral values.  

        No change in behavior.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-03-31  Andreas Kling  <akling@apple.com>

        Blind Windows build fix. Check my mangle-fu.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-03-26  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed build/test correction.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Export the AXObjectCache::setEnhancedUserInterfaceEnabled
        set function.

2014-03-22  Darin Adler  <darin@apple.com>

        Remove String::deprecatedCharacters
        https://bugs.webkit.org/show_bug.cgi?id=126854

        Reviewed by Sam Weinig.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Removed getData16SlowCase.

2014-03-21  Alex Christensen  <achristensen@webkit.org>

        [Win] Compile fixes with video not enabled.
        https://bugs.webkit.org/show_bug.cgi?id=130597

        Reviewed by Darin Adler.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Only include MediaSessionManager symbols if video is enabled.

2014-03-21  Pratik Solanki  <psolanki@apple.com>

        Check for inappropriate macros in private headers
        https://bugs.webkit.org/show_bug.cgi?id=130564

        Reviewed by Filip Pizlo.

        Check PrivateHeaders for inappropriate macros as well so that we avoid build breakages like
        the one due to the original commit for bug 130142.

        * WebKit.xcodeproj/project.pbxproj:

2014-03-20  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        [EFL][GTK] Get CMake to find Freetype2 properly
        https://bugs.webkit.org/show_bug.cgi?id=130150

        Reviewed by Martin Robinson.

        Newer versions of CMake are not able to find Freetype2 correctly.
        FindFreetype2.cmake checks for the version number in freetype.h header, since it seems that bug exists in
        freetype2 repo, because a completely different version number is found in freetype2.pc.

        * PlatformEfl.cmake:

2014-03-20  Beth Dakin  <bdakin@apple.com>

        Speculative build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-03-20  Alex Christensen  <achristensen@webkit.org>

        Build fixes for Win64.
        https://bugs.webkit.org/show_bug.cgi?id=130481

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit.sln:
        Don't build ANGLE projects for now, corrected build configurations,
        and build WebInspectorUI.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Added 64-bit linker symbol.

2014-03-20  Gavin Barraclough  <barraclough@apple.com>

        Merge AtomicString, Identifier
        https://bugs.webkit.org/show_bug.cgi?id=128624

        Reviewed by Geoff Garen.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
            - exports no longer needed.

2014-03-20  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r165962.
        https://bugs.webkit.org/show_bug.cgi?id=130512

        It broke the build (Requested by Ossy on #webkit).

        Reverted changeset:

        "[EFL][GTK] Get CMake to find Freetype2 properly"
        https://bugs.webkit.org/show_bug.cgi?id=130150
        http://trac.webkit.org/changeset/165962

2014-03-20  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        [EFL][GTK] Get CMake to find Freetype2 properly
        https://bugs.webkit.org/show_bug.cgi?id=130150

        Reviewed by Csaba Osztrogonác.

        Newer versions of CMake are not able to find Freetype2 correctly.
        FindFreetype2.cmake checks for the version number in freetype.h header, since it seems that bug exists in
        freetype2 repo, because a completely different version number is found in freetype2.pc.

        * PlatformEfl.cmake:

2014-03-18  Samuel White  <samuel_white@apple.com>

        AX: Not able to use arrow keys to read text with VoiceOver before selection is set someplace (anyplace).
        https://bugs.webkit.org/show_bug.cgi?id=130250

        Reviewed by Chris Fleizach.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-03-17  Ryosuke Niwa  <rniwa@webkit.org>

        Revert the erroneous change made by Xcode.

        * WebKit.xcodeproj/project.pbxproj:

2014-03-16  Darin Adler  <darin@apple.com>

        Optimize hasTagName when called on an HTMLElement
        https://bugs.webkit.org/show_bug.cgi?id=130090

        Reviewed by Antti Koivisto.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Updated exports for QualifiedName -> HTMLQualifiedName change.

2014-03-14  Maciej Stachowiak  <mjs@apple.com>

        Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
        https://bugs.webkit.org/show_bug.cgi?id=130276
        <rdar://problem/16266927>

        Reviewed by Simon Fraser.

        * scripts/generate-webkitversion.pl:
        (printLicenseHeader):

2014-03-14  Oliver Hunt  <oliver@apple.com>

        Improve dom error messages
        https://bugs.webkit.org/show_bug.cgi?id=130103

        Reviewed by Andreas Kling.

        Make windows build.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-03-12  Anders Carlsson  <andersca@apple.com>

        <rdar://problem/16307346> Add new WebKitLegacy.framework.

        Reviewed by Dan Bernstein.

        * WebKit.xcodeproj/project.pbxproj:
        Add new files.

2014-03-12  Tim Horton  <timothy_horton@apple.com>

        Hook up image controls for WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=130062
        <rdar://problem/15964809>

        Reviewed by Brady Eidson.

        * WebKit.xcodeproj/project.pbxproj:
        Add WebSharingServicePickerController.

2014-03-11  Jae Hyun Park  <jaepark@webkit.org>

        [GTK][CMake] Add HARFBUZZ_INCLUDE_DIRS to WebKit and WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=130070

        Reviewed by Martin Robinson.

        * PlatformGTK.cmake:

2014-03-10  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix (64-bit).

        * WebKit.vcxproj/WebKit/WebKitCommon.props: Put uuid.lib as the last link library so that
        the MSIE DOM symbols don't conflict with WebKit's.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add missing 64-bit symbol definitions.

2014-03-10  Brent Fulgham  <bfulgham@apple.com>

        [Win] Pass environment to Pre-Build, Pre-Link, and Post-Build Stages.
        https://bugs.webkit.org/show_bug.cgi?id=130023

        Reviewed by Dean Jackson.

        * WebKit.vcxproj/WebKit.make: Removed.
        * WebKit.vcxproj/WebKit/WebKitPostBuild.cmd: Use %PlatformArchitecture% rather than
        hard-coded 32-bit path.

2014-03-10  Martin Robinson  <mrobinson@igalia.com>

        [GTK] [CMake] Clean up library linking
        https://bugs.webkit.org/show_bug.cgi?id=129782

        Reviewed by Philippe Normand.

        * PlatformGTK.cmake: Use the new macro.

2014-03-07  Alex Christensen  <achristensen@webkit.org>

        [Win] Unreviewed build fix after r165310.

        * WebKit.vcxproj/WebKit/WebKitDirectX.props:
        Replaced Platform macro, which is either "Win32" or "x64"
        with PlatformShortName macro, which is either "x86" or "x64".
        This is correct for finding the DirectX libraries.

2014-03-07  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed gardening (for 64-bit)

        * WebKit.vcxproj/WebKit/WebKitDirectX.props: Use Platform macro, rather than
        hard-coded path. This allows it to work on 32-bit or 64-bit builds.

2014-03-07  Anders Carlsson  <andersca@apple.com>

        Make it possible to copy WebKit2 headers to WebKit.framework
        https://bugs.webkit.org/show_bug.cgi?id=129935

        Reviewed by Dan Bernstein.

        * WebKit.xcodeproj/project.pbxproj:
        Move the migrate headers script out into its own file.

2014-03-07  Brent Fulgham  <bfulgham@apple.com>

        [Win] Convert WebKit.make to an MSBuild file.
        https://bugs.webkit.org/show_bug.cgi?id=129888

        Reviewed by Dean Jackson.

        * WebKit.vcxproj/WebKit.proj: Added.

2014-03-06  Joseph Pecoraro  <pecoraro@apple.com>

        Unreviewed follow-up fix for Windows for r165199.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-03-05  Martin Hock  <mhock@apple.com>

        Add support for sessions to MemoryCache.
        https://bugs.webkit.org/show_bug.cgi?id=127794

        Reviewed by Sam Weinig.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-03-03  Martin Robinson  <mrobinson@igalia.com>

        [GTK][CMake] Generate documentation for the DOM bindings
        https://bugs.webkit.org/show_bug.cgi?id=126211

        Reviewed by Carlos Garcia Campos.

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

2014-03-03  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r165013.
        http://trac.webkit.org/changeset/165013
        https://bugs.webkit.org/show_bug.cgi?id=129646

        New code is not thread safe, asserting on a worker test
        (Requested by ap on #webkit).

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-03-03  Martin Hock  <mhock@apple.com>

        Add support for sessions to MemoryCache.
        https://bugs.webkit.org/show_bug.cgi?id=127794

        Reviewed by Sam Weinig.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-03-02  Andreas Kling  <akling@apple.com>

        Blind Windows build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

            Tweak JSDOMWindowBase::commonVM() return type to be a reference.

2014-02-28  Dan Bernstein  <mitz@apple.com>

        [Mac] Remove MailQuirksUserScript.js
        https://bugs.webkit.org/show_bug.cgi?id=129536

        Reviewed by Andy Estes.

        * WebKit.xcodeproj/project.pbxproj: Removed reference to the file.

2014-02-26  Michael Saboff  <msaboff@apple.com>

        Auto generate bytecode information for bytecode parser and LLInt
        https://bugs.webkit.org/show_bug.cgi?id=129181

        Reviewed by Mark Lam.

        Added ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR} to WebKit_INCLUDE_DIRECTORIES due to new
        generated Bytecodes.h include file.

        * CMakeLists.txt:

2014-02-26  Alex Christensen  <achristensen@webkit.org>

        [WinCairo] Fixed linking after disabling WebGL.

        * WebKit.vcxproj/WebKit/WebKitCFLite.props:
        Don't link to ANGLE libraries, which are no longer built.

2014-02-26  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Remove console.profiles from window.console API
        https://bugs.webkit.org/show_bug.cgi?id=116883

        Reviewed by Timothy Hatcher.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-02-24  Martin Robinson  <mrobinson@igalia.com>

        [GTK] generate-gtkdoc should not generate documentation for source files for unbuilt source files
        https://bugs.webkit.org/show_bug.cgi?id=128417

        Reviewed by Carlos Garcia Campos.

        * PlatformGTK.cmake: Correct the definition of WebKitGTK_ENUM_GENERATION_HEADERS and generate
        a gtkdoc-webkitgtk.cfg file to be used by generate-gtkdoc.

2014-02-24  Anders Carlsson  <andersca@apple.com>

        Add WebViewGroup
        https://bugs.webkit.org/show_bug.cgi?id=129280

        Reviewed by Dan Bernstein.

        Add new files.

        * WebKit.xcodeproj/project.pbxproj:

2014-02-24  Roger Fong  <roger_fong@apple.com>

        [WinCairo] Disable ANGLE build on WinCairo port.

        * WebKit.vcxproj/WebKit.sln:

2014-02-21  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed build fix after r164505

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Update exports
        definition for TreeScope::getElementById.

2014-02-21  Eric Carlson  <eric.carlson@apple.com>

        Fix TimeRanges layering violations
        https://bugs.webkit.org/show_bug.cgi?id=128717

        Reviewed by Jer Noble.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: TimeRanges::create(void) for Internals.

2014-02-20  Enrique Ocaña González  <eocanha@igalia.com>

        WebKitGTK+ should stop using COMPILE_ASSERT_MATCHING_ENUM macros
        https://bugs.webkit.org/show_bug.cgi?id=127800

        Reviewed by Martin Robinson.

        * PlatformGTK.cmake: Removed AssertMatchingEnums.cpp

2014-02-18  Ryosuke Niwa  <rniwa@webkit.org>

        Changing selection shouldn't synchronously update editor UI components
        https://bugs.webkit.org/show_bug.cgi?id=129024

        Reviewed by Brent Fulgham.

        Added symbols for internals.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-02-17  Sergio Correia  <sergio.correia@openbossa.org>

        Replace uses of PassOwnPtr/OwnPtr with std::unique_ptr in WebCore/inspector
        https://bugs.webkit.org/show_bug.cgi?id=128681

        Reviewed by Timothy Hatcher.

        Another step towards getting rid of PassOwnPtr/OwnPtr, now targeting
        WebCore/inspector/*. Besides files in there, a few other files in
        JavaScriptCore/inspector, WebKit/, WebKit2/WebProcess/WebCoreSupport/
        and WebCore/testing were touched.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-02-15  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Remove WebSerializedJSValue SPI
        https://bugs.webkit.org/show_bug.cgi?id=128720

        Reviewed by Anders Carlsson.

        * WebKit.xcodeproj/project.pbxproj: Removed WebSerializedJSValue files from the project.

2014-02-11  Alex Christensen  <achristensen@webkit.org>

        Fixed linking on Win64.
        https://bugs.webkit.org/show_bug.cgi?id=128211

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Corrected Win64 linker symbols.

2014-02-09  Mark Rowe  <mrowe@apple.com>

        Stop relinking WebKit on every build.

        * WebKit.xcodeproj/project.pbxproj: Fix the case on an input file for the Generate Export Files
        script phase so it will run only when the inputs change rather than on every build.

2014-02-09  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Remove PageClientEfl
        https://bugs.webkit.org/show_bug.cgi?id=128508

        Reviewed by Andreas Kling.

        * PlatformEfl.cmake: Removed PageClientEfl.cpp

2014-02-06  Joseph Pecoraro  <pecoraro@apple.com>

        Unreviewed Windows Build Fix after r163568.

        Remove old symbol export. It is now const. Waiting for bot to produce new symbol.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-02-05  Csaba Osztrogonác  <ossy@webkit.org>

        Remove ENABLE(SVG) guards
        https://bugs.webkit.org/show_bug.cgi?id=127991

        Reviewed by Sam Weinig.

        * PlatformEfl.cmake:

2014-02-04  Eric Carlson  <eric.carlson@apple.com>

        Refine MediaSession interruptions
        https://bugs.webkit.org/show_bug.cgi?id=128125

        Reviewed by Jer Noble.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Export applicationWillEnterForeground
            and applicationWillEnterBackground for Internals.

2014-02-04  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r163376.
        http://trac.webkit.org/changeset/163376
        https://bugs.webkit.org/show_bug.cgi?id=128184

        Unexpected test failures. (Requested by eric_carlson on
        #webkit).

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-02-04  Eric Carlson  <eric.carlson@apple.com>

        Refine MediaSession interruptions
        https://bugs.webkit.org/show_bug.cgi?id=128125

        Reviewed by Jer Noble.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Export applicationWillEnterForeground
            and applicationWillEnterBackground for Internals.

2014-01-31  Oliver Hunt  <oliver@apple.com>

        Rollout r163195 and related patches

        * CMakeLists.txt:

2014-01-29  Oliver Hunt  <oliver@apple.com>

        Make it possible to implement JS builtins in JS
        https://bugs.webkit.org/show_bug.cgi?id=127887

        Reviewed by Michael Saboff.

        CMake updates

        * CMakeLists.txt:

2014-01-30  Martin Robinson  <mrobinson@igalia.com>

        [GTK] [CMake] Add support for building against GTK+ 2
        https://bugs.webkit.org/show_bug.cgi?id=127959

        Reviewed by Anders Carlsson.

        * PlatformGTK.cmake: Use the new API version variable and don't use GTK3 directly.

2014-01-30  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r163052.
        http://trac.webkit.org/changeset/163052
        https://bugs.webkit.org/show_bug.cgi?id=127895

        It was the buildfix after the rolled out r163048 (Requested by
        Ossy on #webkit).

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-01-29  Dan Bernstein  <mitz@apple.com>

        Moved linking against common frameworks and a library from the .xcconfig file into the target.

        Reviewed by Tim Horton.

        * WebKit.xcodeproj/project.pbxproj:

2014-01-29  Sam Weinig  <sam@webkit.org>

        Fix windows.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-01-29  Ryuan Choi  <ryuan.choi@samsung.com>

        EFL port should stop using COMPILE_ASSERT_MATCHING_ENUM macros
        https://bugs.webkit.org/show_bug.cgi?id=127801

        Reviewed by Anders Carlsson.

        * PlatformEfl.cmake: Removed AssertMatchingEnums.cpp

2014-01-27  Roger Fong  <roger_fong@apple.com>

        [Windows] Tests crashing on Windows after r162816.
        https://bugs.webkit.org/show_bug.cgi?id=127703.

        Reviewed by Alexey Proskuryakov.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Remove variable export in favor of function export.

2014-01-26  Chris Fleizach  <cfleizach@apple.com>

        AX: Disable accessibility after every test run
        https://bugs.webkit.org/show_bug.cgi?id=127439

        Reviewed by Alexey Proskuryakov.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-01-26  Anders Carlsson  <andersca@apple.com>

        Fix build.
        
        Make HistoryPropertyList an Objective-C++ class.

        * WebKit.xcodeproj/project.pbxproj:

2014-01-25  Alex Christensen  <achristensen@webkit.org>

        Unreviewed build fix for Win64.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Corrected 64-bit linker symbol.

2014-01-23  Simon Fraser  <simon.fraser@apple.com>

        Attempt to fix Windows DRT link issue.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-01-23  Simon Fraser  <simon.fraser@apple.com>

        Make visibleContentRect() return actualVisibleContentRect() on iOS most of the time
        https://bugs.webkit.org/show_bug.cgi?id=127456
        
        Reviewed by Antti Koivisto.
        
        On iOS, visibleContentRect() returns the entire document rect for historical
        reasons, and actualVisibleContentRect() returns what visibleContentRect()
        returns on other platforms.
        
        In addition, actualVisibleContentRect() was returning an empty rect in WK2.
        
        Reduce the confusion of #ifdefs by making visibleContentRect() behave like
        actualVisibleContentRect() by default on iOS. Where it needs the old behavior,
        an optional parameter, LegacyIOSDocumentVisibleRect, provides this.
        
        Achieve this by having the virtual ScrollableArea::visibleContentRectInternal(),
        which is called by non-virtual visibleContentRect() and visibleContentRectIncludingScrollbars().
        
        Similarly clean up visibleHeight/visibleWidth functions by having visibleSize() be virtual,
        with non-virtual visibleHeight() and visibleWidth().
        
        ScrollableArea subclasses override visibleContentRectInternal() and visibleSize() where necessary.
        
        Mechanically change all the call sites of actualVisibleContentRect() to
        use visibleContentRect(), and the call sites of visibleContentRect()
        to visibleContentRect(..., LegacyIOSDocumentVisibleRect), adding comments
        where this may not be appropriate.
        
        Change callers of visibleContentRect(IncludeScrollbars...) to visibleContentRectIncludingScrollbars().
        
        Also add actualScrollPosition(), and clean up some actualScroll* call sites.
        
        No behavior change.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-01-22  Brent Fulgham  <bfulgham@apple.com>

        [Win] Update project and solution files for 64-bit builds
        https://bugs.webkit.org/show_bug.cgi?id=127457

        Reviewed by Eric Carlson.

        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj: Update for VS2013.
        * WebKit.vcxproj/WebKit.submit.sln: Add 64-bit target.
        * WebKit.vcxproj/WebKit/WebKit.vcxproj: Update for VS2013
        * WebKit.vcxproj/WebKit/WebKitApple.props: Remove unused QTMovieWin
        library dependency.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj:
        Update for VS2013.
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj: Ditto

2014-01-22  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Avoid a circular dependency when building webkitenumtypes.h
        https://bugs.webkit.org/show_bug.cgi?id=127199

        Reviewed by Daniel Bates.

        * PlatformGTK.cmake: Create a new list of headers consisting of all installed headers
        except webkitenumtypes.h. Use this list when generating webkitenumtypes.h.

2014-01-21  Alex Christensen  <achristensen@webkit.org>

        Unreviewed build fix for Win64.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Corrected 64-bit linker symbols.

2014-01-18  Brian Burg  <bburg@apple.com>

        Another build fix attempt for Windows and EFL WebKit1.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-01-18  Brian Burg  <bburg@apple.com>

        Unreviewed build fix attempt for Windows.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-01-17  Martin Robinson  <mrobinson@igalia.com>

        Build fix for the CMake GTK+ build

        * PlatformGTK.cmake: We need to include ProgressTrackerClientGtk in the source list.

2014-01-17  Beth Dakin  <bdakin@apple.com>

        Need a way to test the tile cache with margins enabled
        https://bugs.webkit.org/show_bug.cgi?id=127194
        -and corresponding-
        <rdar://problem/15571327>

        Reviewed by Tim Horton.

        Attempt to keep Windows building.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-01-16  Andy Estes  <aestes@apple.com>

        [iOS] Fix build issues with exported headers

        * WebKit.xcodeproj/project.pbxproj: Removed WebPluginPrivate.h from
        the project.

2014-01-15  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK1] Implement ProgressTrackerClientEfl to fix the crash
        https://bugs.webkit.org/show_bug.cgi?id=127031

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake: Added ProgressTrackerClientEfl.cpp into source lists.

2014-01-14  Anders Carlsson  <andersca@apple.com>

        Create separate progress tracker clients
        https://bugs.webkit.org/show_bug.cgi?id=127025

        Reviewed by Sam Weinig.

        * WebKit.xcodeproj/project.pbxproj:

2014-01-14  Dean Jackson  <dino@apple.com>

        Correct grave mistake in updating the pbxproj file rather than xcconfig.

        * WebKit.xcodeproj/project.pbxproj:

2014-01-14  Dean Jackson  <dino@apple.com>

        Attempt to fix 32-bit Mac build.

        * WebKit.xcodeproj/project.pbxproj:

2014-01-14  Dean Jackson  <dino@apple.com>

        [WK1] Allow generated export files on iOS
        https://bugs.webkit.org/show_bug.cgi?id=127008

        Reviewed by Simon Fraser.

        Modify the export file generation rule to read from
        a shared and platform-specific input file.

        * WebKit.xcodeproj/project.pbxproj:

2014-01-13  Alex Christensen  <achristensen@webkit.org>

        Unreviewed build fix for Win64.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Corrected 64-bit linker symbols.

2014-01-13  Daniel Bates  <dabates@apple.com>

        [iOS] More build fixes for WebKit

        Add iOS-specific logic to build phases: "Symlink WebKitPluginHost in to place" and "Migrate Headers".

        * WebKit.xcodeproj/project.pbxproj:

2014-01-13  Daniel Bates  <dabates@apple.com>

        [iOS] Fix up WebKit build phases

        Add iOS-specific logic to build phrases "Generate 64-bit Export File" and "Migrate Headers".

        * WebKit.xcodeproj/project.pbxproj:

2014-01-13  Daniel Bates  <dabates@apple.com>

        [iOS] Don't link to Mac-only frameworks when building WebKit

        Currently the Xcode project always links against various Mac-only frameworks (e.g. Carbon.framework).
        Instead the Xcode project should only link against {JavaScriptCore, WebCore}.framework and
        libicucore.dylib, which are the frameworks/libraries that are shared by both the Mac and iOS port. We'll
        use Configuration/WebCore.xcconfig to specify additional port-specific frameworks to link against.

        * WebKit.xcodeproj/project.pbxproj:

2014-01-13  Eric Carlson  <eric.carlson@apple.com>

        Unreviewed build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add missing
            exports needed for Windows build after r161899.

2014-01-13  Andy Estes  <aestes@apple.com>

        [iOS] Build Fix: switch back to calling postprocess-headers.sh

        * WebKit.xcodeproj/project.pbxproj:

2014-01-12  Dan Bernstein  <mitz@apple.com>

        Try to fix the Windows build after r161852.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2014-01-10  Daniel Bates  <dabates@apple.com>

        [iOS] Upstream WebCore and Tools miscellaneous changes
        https://bugs.webkit.org/show_bug.cgi?id=126698

        Reviewed by David Kilzer.

        * WebKit.xcodeproj/project.pbxproj:

2014-01-09  Benjamin Poulain  <bpoulain@apple.com>

        Remove the WebKit layer of the Blackberry port
        https://bugs.webkit.org/show_bug.cgi?id=126715

        Reviewed by Anders Carlsson.

        * PlatformBlackBerry.cmake: Removed.
        * blackberry: Removed.

2014-01-08  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Merge ewk_view_single into ewk_view
        https://bugs.webkit.org/show_bug.cgi?id=126508

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake: Removed ewk_view_single.cpp.

2014-01-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL] Move efl API test binaries to TestWebKitAPI/EWebKit|EWebKit2
        https://bugs.webkit.org/show_bug.cgi?id=126615

        Reviewed by Martin Robinson.

        Now EFL API test binaries created in *bin* directory with other executables.
        It would be good to move them to their folder. This patch moves them to
        *TestWebKitAPI/EWebKit|EWebKit2* directories.

        * PlatformEfl.cmake:

2014-01-08  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add missing
        exports needed for Windows build.

2014-01-07  Eric Carlson  <eric.carlson@apple.com>

        Teach MediaSessionManager to manage interruptions
        https://bugs.webkit.org/show_bug.cgi?id=126530

        Reviewed by Sam Weinig.

        * CMakeLists.txt: Add ${WEBCORE_DIR}/platform/animation to WebCore include directories.

2014-01-06  Martin Robinson  <mrobinson@igalia.com>

        Small build fix for the GTK+ CMake port

        * PlatformGTK.cmake: Include a missing GeoClue include directory.

2014-01-06  Martin Robinson  <mrobinson@igalia.com>

        [CMake] [GTK] Fix the build for the WebKitGTK+ developer configuration
        https://bugs.webkit.org/show_bug.cgi?id=126505

        Reviewed by Gustavo Noronha Silva.

        * PlatformGTK.cmake: Add the geoclue platform directory to the include directory list.

2014-01-06  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/126499> Move WebKit off the legacy WebKit availability macros

        The legacy WebKit availability macros are verbose, confusing, and provide no benefit
        over using the system availability macros directly. The original vision was that
        they'd serve a cross-platform purpose but that never came to be.

        Since WebKit1 is API on OS X but SPI on iOS, some indirection is still needed in the
        availability macros to allow the headers to advertise the API as unavailable on OS X
        without interfering with the ability to build on iOS. This is achieved by defining
        WEBKIT-prefixed versions of the Foundation availability macros that are defined to
        their NS-prefixed equivalents. The installed headers are post-processed to map these
        macros back to their Foundation equivalents.

        Part of <rdar://problem/15512304>.

        Reviewed by Sam Weinig.

        * WebKit.xcodeproj/project.pbxproj: Change the Postprocess Headers build phase to
        invoke mac/postprocess-headers.sh.

2014-01-05  Martin Robinson  <mrobinson@igalia.com>

        [GTK] [CMake] Ensure that the autotools build and the CMake install the same files
        https://bugs.webkit.org/show_bug.cgi?id=116379

        Reviewed by Gustavo Noronha Silva.

        * PlatformGTK.cmake: Install API headers, gir files, and the pkg-config file. Move
        a couple installed and generated headers to the installed headers list.

2014-01-04  Martin Robinson  <mrobinson@igalia.com>

        [GTK] [CMake] Improve the way we locate gobject-introspection
        https://bugs.webkit.org/show_bug.cgi?id=126452

        Reviewed by Philippe Normand.

        * PlatformGTK.cmake: Use the new introspection variables.

2014-01-03  Simon Fraser  <simon.fraser@apple.com>

        Attempt to fix EFL build.

        * CMakeLists.txt:

2013-12-31  Andy Estes  <aestes@apple.com>

        [iOS] Upstream PLATFORM(IOS) changes to Source/WebKit/
        https://bugs.webkit.org/show_bug.cgi?id=125746

        Reviewed by David Kilzer.

        * WebKit.xcodeproj/project.pbxproj: Added WebDatabaseManagerInternal.h
        and iOS.xcconfig.

2013-12-30  Martin Robinson  <mrobinson@igalia.com>

        [CMake] [GTK] Add support for GObject introspection
        https://bugs.webkit.org/show_bug.cgi?id=126162

        Reviewed by Daniel Bates.

        * PlatformGTK.cmake: Add the GIR targets.

2013-12-29  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Remove ewk_view_tiled
        https://bugs.webkit.org/show_bug.cgi?id=125961

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake: Removed ewk_view_tiled related files.

2013-12-29  Martin Robinson  <mrobinson@igalia.com>

        [GTK] [CMake] Convenience libraries that export API should be compiled with --whole-archive on Unix
        https://bugs.webkit.org/show_bug.cgi?id=126232

        Reviewed by Gustavo Noronha Silva.

        * PlatformGTK.cmake: Prefix libGObjectDOMBindings with --whole-archive so that
        symbols are not omitted during final linking.

2013-12-25  Martin Robinson  <mrobinson@igalia.com>

        [GTK] [CMake] Clean up generated sources directories
        https://bugs.webkit.org/show_bug.cgi?id=126216

        Reviewed by Gustavo Noronha Silva.

        * PlatformGTK.cmake: Use the new derived source variables.

2013-12-22  Martin Robinson  <mrobinson@igalia.com>

        [GTK][CMake] libtool-compatible soversion calculation
        https://bugs.webkit.org/show_bug.cgi?id=125511

        Reviewed by Gustavo Noronha Silva.

        * CMakeLists.txt: Use the POPULATE_LIBRARY_VERSION macro and the
        library-specific version information.

2013-12-23  Gustavo Noronha Silva  <gns@gnome.org>

        [GTK] [CMake] Generate pkg-config files
        https://bugs.webkit.org/show_bug.cgi?id=125685

        Reviewed by Martin Robinson.

        * PlatformGTK.cmake: generate webkitgtk-3.0.pc.

2013-12-22  Martin Robinson  <mrobinson@igalia.com>

        Small build fix for GTK+ with the CMake build

        * CMakeLists.txt: Remove duplicate include directory and add missing directories
        necessary for GTK+.

2013-12-20  Simon Fraser  <simon.fraser@apple.com>

        Try to fix the Windows build.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-12-20  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix after r160908.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add
        missing export.

2013-12-18  Gustavo Noronha Silva  <gns@gnome.org>

        Unreviewed cmake build fix for GTK+.

        * PlatformGTK.cmake: add missing include directory.

2013-12-16  Martin Robinson  <mrobinson@igalia.com>

        [GTK] [CMake] Add support for building WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=116377

        Reviewed by Gustavo Noronha Silva.

        * CMakeLists.txt: Updated WebCore include directory list for WebKitGTK+ and
        added BUILDING_WEBKIT to the list of defines.
        * PlatformGTK.cmake: Added.

2013-12-18  Alex Christensen  <achristensen@webkit.org>

        [WinCairo] Preparation for GStreamer on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=125946

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        Use new GStreamer property sheets for WinCairo.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Fixed 64-bit symbols, added GStreamer symbol.

2013-12-16  Alex Christensen  <achristensen@webkit.org>

        [Win] Unreviewed build fix for 64-bit.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Corrected 64-bit linker symbols.

2013-12-16  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Correct typo that added a '\' at the
        end of a line of the file.

2013-12-16  Brent Fulgham  <bfulgham@apple.com>

        [Win] Remove dead code after conversion to VS2013
        https://bugs.webkit.org/show_bug.cgi?id=125795

        Reviewed by Darin Adler.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Remove unused function exports.

2013-12-16  Alex Christensen  <achristensen@webkit.org>

        Fixed Win64 build on VS2013.
        https://bugs.webkit.org/show_bug.cgi?id=125753

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit.sln:
        Use new 64-bit WebInspectorUI configurations.
        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj:
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj:
        Added correct PlatformToolset for 64-bit builds.

2013-12-15  Brent Fulgham  <bfulgham@webkit.org>

        [Win] Unreviewed build fix.

        * WebKit.vcxproj/WebKit.sln: Remove reference to QTMovieWin,
        which we do not wish to build.

2013-12-14  Brent Fulgham  <bfulgham@webkit.org>

        [Win] Unreviewed build fix

        QTMovieWin should not be build at the moment, but some builders
        are continuing to attempt it. This change marks the project
        file as excluded from building.

        * WebKit.vcxproj/WebKit.sln: Mark QTMovieWin as excluded from build.

2013-12-13  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed build correction after r160548.

        * WebKit.vcxproj/WebKit/WebKitApple.props: Exclude linking with QTMoveWin, which does
        not build with VS2013.

2013-12-13  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed build correction after r160548

        * WebKit.vcxproj/WebKit.sln: Revise build order to avoid errors with ANGLE included.

2013-12-13  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix after r160548

        * WebKit.vcxproj/WebKit.sln: Revised to build under VS2013.

2013-12-13  Andy Estes  <aestes@apple.com>

        Post-process exported WebKit headers based on PLATFORM_NAME
        https://bugs.webkit.org/show_bug.cgi?id=125682

        Reviewed by Dan Bernstein.

        Added a build phase that calls unifdef(1) on each of WebKit's Public
        and Private headers, defining TARGET_OS_EMBEDDED, TARGET_OS_IPHONE, and
        TARGET_IPHONE_SIMULATOR based on the value of PLATFORM_NAME. This has
        the effect of stripping out bits not needed by the SDK being built for.

        * WebKit.xcodeproj/project.pbxproj:

2013-12-13  Brent Fulgham  <bfulgham@apple.com>

        [Win] Switch WebKit solution to Visual Studio 2013
        https://bugs.webkit.org/show_bug.cgi?id=125192

        Reviewed by Anders Carlsson.

        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj: Update for VS2013
        * WebKit.vcxproj/WebKit.sln: Ditto
        * WebKit.vcxproj/WebKit/WebKit.vcxproj: Ditto
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj: Ditto
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj: Ditto

2013-12-11  Alex Christensen  <achristensen@webkit.org>

        [Win] Build fix after r159768.
        https://bugs.webkit.org/show_bug.cgi?id=125467

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit/WebKitVersion.cmd:
        Set PATH environment variable to include cygwin bin directory.

2013-12-11  Alex Christensen  <achristensen@webkit.org>

        [Win] Unreviewed link fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Corrected 64-bit linker symbols.

2013-12-11  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Push More Inspector Required Classes Down into JavaScriptCore
        https://bugs.webkit.org/show_bug.cgi?id=125324

        Reviewed by Timothy Hatcher.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-12-11  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/125562> Remove a Leopard-specific check from WebKit.xcodeproj

        Reviewed by Anders Carlsson.

        * WebKit.xcodeproj/project.pbxproj:

2013-12-06  Roger Fong <roger_fong@apple.com> and Brent Fulgham  <bfulgham@apple.com>

        [Win] Support compiling with VS2013.
        https://bugs.webkit.org/show_bug.cgi?id=125353

        Reviewed by Anders Carlsson.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Provide
        proper exports for VS2013 build.

2013-12-06  Dániel Bátyai  <Batyai.Daniel@stud.u-szeged.hu>

        Build fix after r160207, remove the BitmapImage::decodeSize symbol export
        https://bugs.webkit.org/show_bug.cgi?id=125342

        Reviewed by Csaba Osztrogonác.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-12-05  Brent Fulgham  <bfulgham@apple.com>

        [Win] Avoid copying compiled-in resources to DSTROOT
        https://bugs.webkit.org/show_bug.cgi?id=125309

        Reviewed by Jer Noble.

        * WebKit.vcxproj/WebKit/WebKitPostBuild.cmd: Only copy Info.plist to the final WebKit.resource bundle.
        The PNG and RC files are compiled into the WebKit.dll library.

2013-12-04  Brent Fulgham  <bfulgham@apple.com>

        [Win] Correct WebKit.make copy command to land resources in proper directory.
        https://bugs.webkit.org/show_bug.cgi?id=125249

        Reviewed by Tim Horton.

        * WebKit.vcxproj/WebKit.make: Correct the copy command.

2013-12-04  peavo@outlook.com  <peavo@outlook.com>

        [Win][64-bit] Link error.
        https://bugs.webkit.org/show_bug.cgi?id=125234

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Changed 64-bit version of symbol.

2013-12-03  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Push Remote Inspector debugging connection management into JavaScriptCore
        https://bugs.webkit.org/show_bug.cgi?id=124613

        Reviewed by Timothy Hatcher.

        * WebKit.xcodeproj/project.pbxproj:

2013-12-03  Brent Fulgham  <bfulgham@apple.com>

        [Win] WebKit.make Makefile doesn't copy resource bundle to DSTROOT
        https://bugs.webkit.org/show_bug.cgi?id=125160

        Reviewed by Tim Horton.

        * WebKit.vcxproj/WebKit.make: Add copy command for resource bundle.

2013-12-02  Beth Dakin  <bdakin@apple.com>

        Attempted build fix. I think this is no longer needed.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-12-02  Beth Dakin  <bdakin@apple.com>

        Add a setting to opt into a mode where the background extends and fixed elements 
        don't move on rubber-band
        https://bugs.webkit.org/show_bug.cgi?id=124745

        Reviewed by Tim Horton.

        Keep Windows happy.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-12-02  Brent Fulgham  <bfulgham@apple.com>

        [Win] WebKit Project doesn't copy resource bundle
        https://bugs.webkit.org/show_bug.cgi?id=125078

        Reviewed by Jer Noble.

        * WebKit.vcxproj/WebKit/WebKitPostBuild.cmd: Correct post-build step
        to copy WebKit.resources to build target.

2013-11-28  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        Building EFL Webkit again with mediastream enabled
        https://bugs.webkit.org/show_bug.cgi?id=124930

        Reviewed by Csaba Osztrogonác.

        * CMakeLists.txt:

2013-11-27  Sam Weinig  <sam@webkit.org>

        Fix the iOS build.

        * WebKit.xcodeproj/project.pbxproj:

2013-11-25  peavo@outlook.com  <peavo@outlook.com>

        [Win] WebKit version in user agent string is incorrect.
        https://bugs.webkit.org/show_bug.cgi?id=124454

        Reviewed by Brent Fulgham.

        Generate WebKitVersion.h file from mac's Version.xcconfig file.

        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:
        * WebKit.vcxproj/WebKit/WebKitVersion.cmd: Added.

2013-11-23  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [GStreamer] Remove 0.10 codepath
        https://bugs.webkit.org/show_bug.cgi?id=124534

        Reviewed by Philippe Normand.

        * PlatformEfl.cmake: Removed FullscreenVideoControllerEfl.cpp.

2013-11-21  Alex Christensen  <achristensen@webkit.org>

        Remove ANGLEGenerated from Windows build.
        https://bugs.webkit.org/show_bug.cgi?id=124759

        Reviewed by Darin Adler.

        * WebKit.vcxproj/WebKit.sln:
        Remove references to ANGLEGenerated.vcxproj.

2013-11-21  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>

        Remove ENABLE_WORKERS
        https://bugs.webkit.org/show_bug.cgi?id=105784

        Reviewed by Darin Adler.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-11-21  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Building ANGLE libraries fails.
        https://bugs.webkit.org/show_bug.cgi?id=124679

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit/WebKitCFLite.props: Link with translator_hlsl.lib.

2013-11-19  Mark Lam  <mark.lam@apple.com>

        Add tracking of endColumn for Executables.
        https://bugs.webkit.org/show_bug.cgi?id=124245.

        Reviewed by Geoffrey Garen.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        - Added an exported symbol to make the Win32 build happy. The Win64 symbol
          is currently a copy of the Win32 one. It'll need to be updated if the
          mangled symbol is different for Win64.

2013-11-18  Mark Rowe  <mrowe@apple.com>

        Use hw.activecpu for determining how many processes to spawn.

        It's documented as the preferred way to determine the number of threads
        or processes to create in a SMP aware application.

        Rubber-stamped by Tim Horton.

        * WebKit.xcodeproj/project.pbxproj:

2013-11-18  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Add EWebKitConfig.cmake and EWebKit2Config.cmake
        https://bugs.webkit.org/show_bug.cgi?id=124478

        Reviewed by Gyuyoung Kim.

        EWebKit is built using CMake but applications use *.pc to use it.
        This patch provides EWebKitConfig.cmake and EWebKit2Config.cmake
        for applications which use EWebkit and is compiled by CMake.

        * PlatformEfl.cmake:
        Configure and install EWebKitConfig.cmake and EWebKitConfigVersion.cmake

2013-11-13  Joseph Pecoraro  <pecoraro@apple.com>

        Unreviewed rollout of r159271, broke Mountain Lion build.

        * WebKit.xcodeproj/project.pbxproj:

2013-11-13  Anders Carlsson  <andersca@apple.com>

        Deprecate WebHistory methods that use NSCalendarDate
        https://bugs.webkit.org/show_bug.cgi?id=124329
        <rdar://problem/15441122>

        Reviewed by Mark Rowe.

        * WebKit.xcodeproj/project.pbxproj:
        Add a shell script phase that uses unifdef to remove the __NSd_10_9 #define from
        WebHistory on Mavericks.

2013-11-11  Alex Christensen  <achristensen@webkit.org>

        Unreviewed build fix for Win64.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Fixed 64-bit linker symbols.

2013-11-11  Dan Bernstein  <mitz@apple.com>

        [Mac] .exp files are not source code
        https://bugs.webkit.org/show_bug.cgi?id=124154

        Reviewed by Andy Estes.

        * WebKit.xcodeproj/project.pbxproj: Removed WebKit.iOS.exp from the Compile Sources build
        phase.

2013-11-07  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Windows WebKit makefile fixes.

        No need to copy over WebKit.resources.

        * WebKit.vcxproj/WebKit.make:
        * WebKit.vcxproj/WebKit/WebKitPostBuild.cmd:

2013-11-07  Denis Nomiyama  <d.nomiyama@samsung.com>

        [GTK] Glyphs in vertical text tests are rotated 90 degrees clockwise
        https://bugs.webkit.org/show_bug.cgi?id=50619

        Reviewed by Martin Robinson.

        Added WebCore/platform/graphics/opentype to the include path.

        * PlatformEfl.cmake:

2013-11-04  Brent Fulgham  <bfulgham@apple.com>

        [Win] Use VersionStamper for official builds
        https://bugs.webkit.org/show_bug.cgi?id=123758

        Reviewed by Tim Horton.

        * WebKit.vcxproj/WebKit/WebKitPostBuild.cmd: Restore command to
        call VersionStamper on final stage of build.

2013-11-02  Christophe Dumez  <ch.dumez@samsung.com>

        EnforceRange doesn't enforce range of a short
        https://bugs.webkit.org/show_bug.cgi?id=123661

        Reviewed by Alexey Proskuryakov.

        Export symbols to fix Windows build.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-11-01  Andy Estes  <aestes@apple.com>

        [iOS] Make some headers Private
        https://bugs.webkit.org/show_bug.cgi?id=123626

        Reviewed by Andreas Kling.

        * WebKit.xcodeproj/project.pbxproj:

2013-11-01  Afonso R. Costa Jr.  <afonso.costa@samsung.com>

        Expose setApplicationCacheOriginQuota via window.internals
        https://bugs.webkit.org/show_bug.cgi?id=87838

        Reviewed by Joseph Pecoraro.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add
        symbols for setApplicationCacheOriginQuota from Internals.

2013-11-01  Andy Estes  <aestes@apple.com>

        Reverted r158443. It broke the build.

        * WebKit.xcodeproj/project.pbxproj:

2013-11-01  Andy Estes  <aestes@apple.com>

        [iOS] Make some headers Private
        https://bugs.webkit.org/show_bug.cgi?id=123626

        Reviewed by Sam Weinig.

        * WebKit.xcodeproj/project.pbxproj:

2013-10-31  Ryosuke Niwa  <rniwa@webkit.org>

        Windows build fix attempt after r158421.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-10-29  Andy Estes  <aestes@apple.com>

        [iOS] Upstream Source/WebKit/ios/
        https://bugs.webkit.org/show_bug.cgi?id=123470

        Reviewed by Sam Weinig.

        * WebKit.xcodeproj/project.pbxproj:

2013-10-30  Myles C. Maxfield  <mmaxfield@apple.com>

        WebKit/win/WebKitGraphics.h:void WebDrawText(WebTextRenderInfo*); is never called
        https://bugs.webkit.org/show_bug.cgi?id=123485

        Reviewed by Brent Fulgham.

        Deleting the function

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-10-30  Alex Christensen  <achristensen@webkit.org>

        [Windows] Unreviewed build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Added missing 32-bit and 64-bit linker symbols.

2013-10-30  Alex Christensen  <achristensen@webkit.org>

        Disabled JIT on Win64.
        https://bugs.webkit.org/show_bug.cgi?id=122472

        Reviewed by Geoffrey Garen.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Added missing 64-bit linker symbol.

2013-10-28  Joseph Pecoraro  <pecoraro@apple.com>

        Upstream remaining PLATFORM(IOS) and ENABLE(REMOTE_INSPECTOR) pieces
        https://bugs.webkit.org/show_bug.cgi?id=123411

        Reviewed by Timothy Hatcher.

        * WebKit.xcodeproj/project.pbxproj:

2013-10-25  Joseph Pecoraro  <pecoraro@apple.com>

        Upstream ENABLE(REMOTE_INSPECTOR) and enable on iOS and Mac
        https://bugs.webkit.org/show_bug.cgi?id=123111

        Reviewed by Timothy Hatcher.

        * WebKit.xcodeproj/project.pbxproj:

2013-10-23  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Integrate css3-images image-orientation with existing EXIF support
        https://bugs.webkit.org/show_bug.cgi?id=91566

        Reviewed by Beth Dakin.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Update export symbols for draw functions.

2013-10-15  Andy Estes  <aestes@apple.com>

        Expose -[WebPluginPackage bundle] as SPI
        https://bugs.webkit.org/show_bug.cgi?id=122814

        Reviewed by Anders Carlsson.

        * WebKit.xcodeproj/project.pbxproj: Added WebPluginPackagePrivate.h.

2013-10-10  Ryosuke Niwa  <rniwa@webkit.org>

        Windows build fix attempt.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-10-10  Marcelo Morais  <m.morais@samsung.com>

        Web Inspector: Remove the old front-end from WebKit
        https://bugs.webkit.org/show_bug.cgi?id=122295

        Reviewed by Timothy Hatcher.

        * PlatformBlackBerry.cmake: Removed the references for the old
        inspector front-end.

2013-10-10  Anders Carlsson  <andersca@apple.com>

        Remove WebScrollBar
        https://bugs.webkit.org/show_bug.cgi?id=122623

        Reviewed by Brent Fulgham.

        Remove files from VS projects.

        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj:
        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj.filters:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:

2013-10-08  Alex Christensen  <achristensen@webkit.org>

        Fixed Win64 linking.
        https://bugs.webkit.org/show_bug.cgi?id=122530

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Added 64-bit linker symbols.

2013-10-06  Andreas Kling  <akling@apple.com>

        No? Okay, let's try that again..

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-10-06  Andreas Kling  <akling@apple.com>

        Attempt to fix the Windows build.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-10-06  Darin Adler  <darin@apple.com>

        Try to fix the Windows build.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Removed export of non-existent Node::treeScope function returning
        a TreeScope*. Probably will have to add an export to fix the next failure.

2013-10-06  Darin Adler  <darin@apple.com>

        Remove unneeded ScriptGCEvent class
        https://bugs.webkit.org/show_bug.cgi?id=122390

        Reviewed by Anders Carlsson.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Replaced symbol from ScriptGCEvent with symbol from JSDOMWindowBase.

2013-10-04  Daniel Bates  <dabates@apple.com>

        [iOS] Upstream disk image cache
        https://bugs.webkit.org/show_bug.cgi?id=121985

        Reviewed by Joseph Pecoraro.

        * WebKit.xcodeproj/project.pbxproj:
        * ios/WebCoreSupport/WebDiskImageCacheClientIOS.h: Added.
        * ios/WebCoreSupport/WebDiskImageCacheClientIOS.mm: Added.

2013-10-04  Anders Carlsson  <andersca@apple.com>

        Remove WebAssertions.h
        https://bugs.webkit.org/show_bug.cgi?id=122328

        Reviewed by Jessie Berlin.

        * WebKit.xcodeproj/project.pbxproj:

2013-10-03  Anders Carlsson  <andersca@apple.com>

        Remove WebNSNotificationCenterExtras
        https://bugs.webkit.org/show_bug.cgi?id=122316

        Reviewed by Dan Bernstein.

        Update Xcode project.

        * WebKit.xcodeproj/project.pbxproj:

2013-10-02  Anders Carlsson  <andersca@apple.com>

        Remove WebKit/qt.

        Rubber-stamped by Andreas Kling.

        * qt/Api/qhttpheader.cpp: Removed.
        * qt/Api/qhttpheader_p.h: Removed.
        * qt/Api/qwebdatabase.cpp: Removed.
        * qt/Api/qwebdatabase.h: Removed.
        * qt/Api/qwebdatabase_p.h: Removed.
        * qt/Api/qwebelement.cpp: Removed.
        * qt/Api/qwebelement.h: Removed.
        * qt/Api/qwebelement_p.h: Removed.
        * qt/Api/qwebhistory.cpp: Removed.
        * qt/Api/qwebhistory.h: Removed.
        * qt/Api/qwebhistory_p.h: Removed.
        * qt/Api/qwebhistoryinterface.cpp: Removed.
        * qt/Api/qwebhistoryinterface.h: Removed.
        * qt/Api/qwebkitglobal.cpp: Removed.
        * qt/Api/qwebkitglobal.h: Removed.
        * qt/Api/qwebkitplatformplugin.h: Removed.
        * qt/Api/qwebplugindatabase.cpp: Removed.
        * qt/Api/qwebplugindatabase_p.h: Removed.
        * qt/Api/qwebpluginfactory.cpp: Removed.
        * qt/Api/qwebpluginfactory.h: Removed.
        * qt/Api/qwebscriptworld.cpp: Removed.
        * qt/Api/qwebscriptworld.h: Removed.
        * qt/Api/qwebscriptworld_p.h: Removed.
        * qt/Api/qwebsecurityorigin.cpp: Removed.
        * qt/Api/qwebsecurityorigin.h: Removed.
        * qt/Api/qwebsecurityorigin_p.h: Removed.
        * qt/Api/qwebsettings.cpp: Removed.
        * qt/Api/qwebsettings.h: Removed.
        * qt/ChangeLog-2011-02-16: Removed.
        * qt/WebCoreSupport/ChromeClientQt.cpp: Removed.
        * qt/WebCoreSupport/ChromeClientQt.h: Removed.
        * qt/WebCoreSupport/ContextMenuClientQt.cpp: Removed.
        * qt/WebCoreSupport/ContextMenuClientQt.h: Removed.
        * qt/WebCoreSupport/DragClientQt.cpp: Removed.
        * qt/WebCoreSupport/DragClientQt.h: Removed.
        * qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp: Removed.
        * qt/WebCoreSupport/DumpRenderTreeSupportQt.h: Removed.
        * qt/WebCoreSupport/EditorClientQt.cpp: Removed.
        * qt/WebCoreSupport/EditorClientQt.h: Removed.
        * qt/WebCoreSupport/FrameLoaderClientQt.cpp: Removed.
        * qt/WebCoreSupport/FrameLoaderClientQt.h: Removed.
        * qt/WebCoreSupport/FrameNetworkingContextQt.cpp: Removed.
        * qt/WebCoreSupport/FrameNetworkingContextQt.h: Removed.
        * qt/WebCoreSupport/FullScreenVideoQt.cpp: Removed.
        * qt/WebCoreSupport/FullScreenVideoQt.h: Removed.
        * qt/WebCoreSupport/GeolocationClientQt.cpp: Removed.
        * qt/WebCoreSupport/GeolocationClientQt.h: Removed.
        * qt/WebCoreSupport/GeolocationPermissionClientQt.cpp: Removed.
        * qt/WebCoreSupport/GeolocationPermissionClientQt.h: Removed.
        * qt/WebCoreSupport/IconDatabaseClientQt.cpp: Removed.
        * qt/WebCoreSupport/IconDatabaseClientQt.h: Removed.
        * qt/WebCoreSupport/InitWebCoreQt.cpp: Removed.
        * qt/WebCoreSupport/InitWebCoreQt.h: Removed.
        * qt/WebCoreSupport/InspectorClientQt.cpp: Removed.
        * qt/WebCoreSupport/InspectorClientQt.h: Removed.
        * qt/WebCoreSupport/InspectorServerQt.cpp: Removed.
        * qt/WebCoreSupport/InspectorServerQt.h: Removed.
        * qt/WebCoreSupport/NotificationPresenterClientQt.cpp: Removed.
        * qt/WebCoreSupport/NotificationPresenterClientQt.h: Removed.
        * qt/WebCoreSupport/PlatformStrategiesQt.cpp: Removed.
        * qt/WebCoreSupport/PlatformStrategiesQt.h: Removed.
        * qt/WebCoreSupport/PopupMenuQt.cpp: Removed.
        * qt/WebCoreSupport/PopupMenuQt.h: Removed.
        * qt/WebCoreSupport/QWebFrameAdapter.cpp: Removed.
        * qt/WebCoreSupport/QWebFrameAdapter.h: Removed.
        * qt/WebCoreSupport/QWebPageAdapter.cpp: Removed.
        * qt/WebCoreSupport/QWebPageAdapter.h: Removed.
        * qt/WebCoreSupport/QtPlatformPlugin.cpp: Removed.
        * qt/WebCoreSupport/QtPlatformPlugin.h: Removed.
        * qt/WebCoreSupport/QtPluginWidgetAdapter.cpp: Removed.
        * qt/WebCoreSupport/QtPluginWidgetAdapter.h: Removed.
        * qt/WebCoreSupport/QtPrintContext.cpp: Removed.
        * qt/WebCoreSupport/QtPrintContext.h: Removed.
        * qt/WebCoreSupport/SearchPopupMenuQt.cpp: Removed.
        * qt/WebCoreSupport/SearchPopupMenuQt.h: Removed.
        * qt/WebCoreSupport/TextCheckerClientQt.cpp: Removed.
        * qt/WebCoreSupport/TextCheckerClientQt.h: Removed.
        * qt/WebCoreSupport/TextureMapperLayerClientQt.cpp: Removed.
        * qt/WebCoreSupport/TextureMapperLayerClientQt.h: Removed.
        * qt/WebCoreSupport/UndoStepQt.cpp: Removed.
        * qt/WebCoreSupport/UndoStepQt.h: Removed.
        * qt/WebCoreSupport/WebEventConversion.cpp: Removed.
        * qt/WebCoreSupport/WebEventConversion.h: Removed.
        * qt/WidgetApi/qgraphicswebview.cpp: Removed.
        * qt/WidgetApi/qgraphicswebview.h: Removed.
        * qt/WidgetApi/qwebframe.cpp: Removed.
        * qt/WidgetApi/qwebframe.h: Removed.
        * qt/WidgetApi/qwebframe_p.h: Removed.
        * qt/WidgetApi/qwebinspector.cpp: Removed.
        * qt/WidgetApi/qwebinspector.h: Removed.
        * qt/WidgetApi/qwebinspector_p.h: Removed.
        * qt/WidgetApi/qwebpage.cpp: Removed.
        * qt/WidgetApi/qwebpage.h: Removed.
        * qt/WidgetApi/qwebpage_p.h: Removed.
        * qt/WidgetApi/qwebview.cpp: Removed.
        * qt/WidgetApi/qwebview.h: Removed.
        * qt/WidgetApi/qwebviewaccessible.cpp: Removed.
        * qt/WidgetApi/qwebviewaccessible_p.h: Removed.
        * qt/WidgetSupport/DefaultFullScreenVideoHandler.cpp: Removed.
        * qt/WidgetSupport/DefaultFullScreenVideoHandler.h: Removed.
        * qt/WidgetSupport/FullScreenVideoWidget.cpp: Removed.
        * qt/WidgetSupport/FullScreenVideoWidget.h: Removed.
        * qt/WidgetSupport/InitWebKitQt.cpp: Removed.
        * qt/WidgetSupport/InitWebKitQt.h: Removed.
        * qt/WidgetSupport/InspectorClientWebPage.cpp: Removed.
        * qt/WidgetSupport/InspectorClientWebPage.h: Removed.
        * qt/WidgetSupport/PageClientQt.cpp: Removed.
        * qt/WidgetSupport/PageClientQt.h: Removed.
        * qt/WidgetSupport/QGraphicsWidgetPluginImpl.cpp: Removed.
        * qt/WidgetSupport/QGraphicsWidgetPluginImpl.h: Removed.
        * qt/WidgetSupport/QStyleFacadeImp.cpp: Removed.
        * qt/WidgetSupport/QStyleFacadeImp.h: Removed.
        * qt/WidgetSupport/QWebUndoCommand.cpp: Removed.
        * qt/WidgetSupport/QWebUndoCommand.h: Removed.
        * qt/WidgetSupport/QWidgetPluginImpl.cpp: Removed.
        * qt/WidgetSupport/QWidgetPluginImpl.h: Removed.
        * qt/WidgetSupport/QtFallbackWebPopup.cpp: Removed.
        * qt/WidgetSupport/QtFallbackWebPopup.h: Removed.
        * qt/WidgetSupport/QtWebComboBox.cpp: Removed.
        * qt/WidgetSupport/QtWebComboBox.h: Removed.
        * qt/declarative/declarative.pro: Removed.
        * qt/declarative/experimental/experimental.pri: Removed.
        * qt/declarative/experimental/plugin.cpp: Removed.
        * qt/declarative/experimental/plugin.json: Removed.
        * qt/declarative/experimental/qmldir: Removed.
        * qt/declarative/plugin.cpp: Removed.
        * qt/declarative/plugin.json: Removed.
        * qt/declarative/plugins.qmltypes: Removed.
        * qt/declarative/public.pri: Removed.
        * qt/declarative/qmldir: Removed.
        * qt/docs/qtwebkit-bridge.qdoc: Removed.
        * qt/docs/qtwebkit-goes-mobile.qdoc: Removed.
        * qt/docs/qtwebkit.qdoc: Removed.
        * qt/docs/qwebview-diagram.png: Removed.
        * qt/docs/webkitsnippets/qtwebkit_bridge_snippets.cpp: Removed.
        * qt/docs/webkitsnippets/qtwebkit_build_snippet.qdoc: Removed.
        * qt/docs/webkitsnippets/qtwebkit_goes_mobile_snippets.cpp: Removed.
        * qt/docs/webkitsnippets/qtwebkit_qwebinspector_snippet.cpp: Removed.
        * qt/docs/webkitsnippets/qtwebkit_qwebview_snippet.cpp: Removed.
        * qt/docs/webkitsnippets/simple/main.cpp: Removed.
        * qt/docs/webkitsnippets/simple/simple.pro: Removed.
        * qt/docs/webkitsnippets/webelement/main.cpp: Removed.
        * qt/docs/webkitsnippets/webelement/webelement.pro: Removed.
        * qt/docs/webkitsnippets/webpage/main.cpp: Removed.
        * qt/docs/webkitsnippets/webpage/webpage.pro: Removed.
        * qt/examples/examples.pro: Removed.
        * qt/examples/platformplugin/README: Removed.
        * qt/examples/platformplugin/WebNotificationPresenter.cpp: Removed.
        * qt/examples/platformplugin/WebNotificationPresenter.h: Removed.
        * qt/examples/platformplugin/WebPlugin.cpp: Removed.
        * qt/examples/platformplugin/WebPlugin.h: Removed.
        * qt/examples/platformplugin/platformplugin.pro: Removed.
        * qt/examples/platformplugin/qwebkitplatformplugin.h: Removed.
        * qt/tests/MIMESniffing/MIMESniffing.pro: Removed.
        * qt/tests/MIMESniffing/TestData.h: Removed.
        * qt/tests/MIMESniffing/resources.qrc: Removed.
        * qt/tests/MIMESniffing/resources/application_atom+xml: Removed.
        * qt/tests/MIMESniffing/resources/application_ogg: Removed.
        * qt/tests/MIMESniffing/resources/application_pdf: Removed.
        * qt/tests/MIMESniffing/resources/application_postscript: Removed.
        * qt/tests/MIMESniffing/resources/application_rdf+xml: Removed.
        * qt/tests/MIMESniffing/resources/application_rss+xml: Removed.
        * qt/tests/MIMESniffing/resources/application_x-gzip: Removed.
        * qt/tests/MIMESniffing/resources/application_x-rar-compressed: Removed.
        * qt/tests/MIMESniffing/resources/application_zip: Removed.
        * qt/tests/MIMESniffing/resources/audio_x-wave: Removed.
        * qt/tests/MIMESniffing/resources/image_bmp: Removed.
        * qt/tests/MIMESniffing/resources/image_gif: Removed.
        * qt/tests/MIMESniffing/resources/image_jpeg: Removed.
        * qt/tests/MIMESniffing/resources/image_png: Removed.
        * qt/tests/MIMESniffing/resources/image_vnd.microsoft.icon: Removed.
        * qt/tests/MIMESniffing/resources/image_webp: Removed.
        * qt/tests/MIMESniffing/resources/text_html: Removed.
        * qt/tests/MIMESniffing/resources/text_xml: Removed.
        * qt/tests/MIMESniffing/resources/video_webm: Removed.
        * qt/tests/MIMESniffing/tst_MIMESniffing.cpp: Removed.
        * qt/tests/benchmarks/loading/loading.pro: Removed.
        * qt/tests/benchmarks/loading/tst_loading.cpp: Removed.
        * qt/tests/benchmarks/painting/painting.pro: Removed.
        * qt/tests/benchmarks/painting/tst_painting.cpp: Removed.
        * qt/tests/benchmarks/webgl/10000_triangles.html: Removed.
        * qt/tests/benchmarks/webgl/tst_webgl.cpp: Removed.
        * qt/tests/benchmarks/webgl/tst_webgl.qrc: Removed.
        * qt/tests/benchmarks/webgl/webgl.pro: Removed.
        * qt/tests/cmake/CMakeLists.txt: Removed.
        * qt/tests/cmake/cmake.pro: Removed.
        * qt/tests/hybridPixmap/hybridPixmap.pro: Removed.
        * qt/tests/hybridPixmap/resources.qrc: Removed.
        * qt/tests/hybridPixmap/test.html: Removed.
        * qt/tests/hybridPixmap/tst_hybridPixmap.cpp: Removed.
        * qt/tests/hybridPixmap/widget.cpp: Removed.
        * qt/tests/hybridPixmap/widget.h: Removed.
        * qt/tests/hybridPixmap/widget.ui: Removed.
        * qt/tests/qgraphicswebview/qgraphicswebview.pro: Removed.
        * qt/tests/qgraphicswebview/resources/greendiv.html: Removed.
        * qt/tests/qgraphicswebview/resources/input_types.html: Removed.
        * qt/tests/qgraphicswebview/resources/pointing_right.html: Removed.
        * qt/tests/qgraphicswebview/resources/pointing_up.html: Removed.
        * qt/tests/qgraphicswebview/resources/scrolltest_page.html: Removed.
        * qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp: Removed.
        * qt/tests/qgraphicswebview/tst_qgraphicswebview.qrc: Removed.
        * qt/tests/qobjectbridge/qobjectbridge.pro: Removed.
        * qt/tests/qobjectbridge/tst_qobjectbridge.cpp: Removed.
        * qt/tests/qwebelement/qwebelement.pro: Removed.
        * qt/tests/qwebelement/resources/image.png: Removed.
        * qt/tests/qwebelement/resources/style.css: Removed.
        * qt/tests/qwebelement/resources/style2.css: Removed.
        * qt/tests/qwebelement/tst_qwebelement.cpp: Removed.
        * qt/tests/qwebelement/tst_qwebelement.qrc: Removed.
        * qt/tests/qwebframe/qwebframe.pro: Removed.
        * qt/tests/qwebframe/resources/image.png: Removed.
        * qt/tests/qwebframe/resources/style.css: Removed.
        * qt/tests/qwebframe/resources/test1.html: Removed.
        * qt/tests/qwebframe/resources/test2.html: Removed.
        * qt/tests/qwebframe/resources/testiframe.html: Removed.
        * qt/tests/qwebframe/resources/testiframe2.html: Removed.
        * qt/tests/qwebframe/tst_qwebframe.cpp: Removed.
        * qt/tests/qwebframe/tst_qwebframe.qrc: Removed.
        * qt/tests/qwebhistory/qwebhistory.pro: Removed.
        * qt/tests/qwebhistory/resources/page1.html: Removed.
        * qt/tests/qwebhistory/resources/page2.html: Removed.
        * qt/tests/qwebhistory/resources/page3.html: Removed.
        * qt/tests/qwebhistory/resources/page4.html: Removed.
        * qt/tests/qwebhistory/resources/page5.html: Removed.
        * qt/tests/qwebhistory/resources/page6.html: Removed.
        * qt/tests/qwebhistory/tst_qwebhistory.cpp: Removed.
        * qt/tests/qwebhistory/tst_qwebhistory.qrc: Removed.
        * qt/tests/qwebhistoryinterface/qwebhistoryinterface.pro: Removed.
        * qt/tests/qwebhistoryinterface/tst_qwebhistoryinterface.cpp: Removed.
        * qt/tests/qwebinspector/qwebinspector.pro: Removed.
        * qt/tests/qwebinspector/tst_qwebinspector.cpp: Removed.
        * qt/tests/qwebpage/qwebpage.pro: Removed.
        * qt/tests/qwebpage/resources/content.html: Removed.
        * qt/tests/qwebpage/resources/frame_a.html: Removed.
        * qt/tests/qwebpage/resources/frame_c.html: Removed.
        * qt/tests/qwebpage/resources/framedindex.html: Removed.
        * qt/tests/qwebpage/resources/iframe.html: Removed.
        * qt/tests/qwebpage/resources/iframe2.html: Removed.
        * qt/tests/qwebpage/resources/iframe3.html: Removed.
        * qt/tests/qwebpage/resources/index.html: Removed.
        * qt/tests/qwebpage/resources/script.html: Removed.
        * qt/tests/qwebpage/resources/user.css: Removed.
        * qt/tests/qwebpage/tst_qwebpage.cpp: Removed.
        * qt/tests/qwebpage/tst_qwebpage.qrc: Removed.
        * qt/tests/qwebplugindatabase/qwebplugindatabase.pro: Removed.
        * qt/tests/qwebplugindatabase/tst_qwebplugindatabase.cpp: Removed.
        * qt/tests/qwebsecurityorigin/qwebsecurityorigin.pro: Removed.
        * qt/tests/qwebsecurityorigin/resources/test.html: Removed.
        * qt/tests/qwebsecurityorigin/tst_qwebsecurityorigin.cpp: Removed.
        * qt/tests/qwebsecurityorigin/tst_qwebsecurityorigin.qrc: Removed.
        * qt/tests/qwebview/.gitignore: Removed.
        * qt/tests/qwebview/qwebview.pro: Removed.
        * qt/tests/qwebview/resources/frame_a.html: Removed.
        * qt/tests/qwebview/resources/index.html: Removed.
        * qt/tests/qwebview/resources/input_types.html: Removed.
        * qt/tests/qwebview/resources/scrolltest_page.html: Removed.
        * qt/tests/qwebview/tst_qwebview.cpp: Removed.
        * qt/tests/qwebview/tst_qwebview.qrc: Removed.
        * qt/tests/resources/image2.png: Removed.
        * qt/tests/resources/test.swf: Removed.
        * qt/tests/tests.pri: Removed.
        * qt/tests/util.h: Removed.

2013-09-30  Benjamin Poulain  <benjamin@webkit.org>

        Remove the code guarded by STYLE_SCOPED
        https://bugs.webkit.org/show_bug.cgi?id=122123

        Reviewed by Anders Carlsson.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-09-30  Alex Christensen  <achristensen@webkit.org>

        [Windows] Unreviewed build fix for Win64.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Added correct 64-bit BitmapImage::create symbol.

2013-09-30  Brent Fulgham  <bfulgham@apple.com>

        [Win] Compile errors in WebKit (via peavo@outlook.com).
        https://bugs.webkit.org/show_bug.cgi?id=122106

        Reviewed by Darin Adler.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add link
        declarations missed in r156655.

2013-09-28  Mark Rowe  <mrowe@apple.com>

        Take Xcode's advice and enable some extra warnings.

        Reviewed by Sam Weinig.

        * WebKit.xcodeproj/project.pbxproj:

2013-09-27  Alex Christensen  <achristensen@webkit.org>

        [Windows] Unreviewed build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Fixed linker symbols I broke last time.

2013-09-27  Alex Christensen  <alex.christensen@flexsim.com>

        [Windows] Unreviewed build fix for Win64.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Added and fixed 64-bit linker symbols.

2013-09-26  Darin Adler  <darin@apple.com>

        rename KURL to URL
        https://bugs.webkit.org/show_bug.cgi?id=16214

        Reviewed by Andreas Kling.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Let the script to try to rename here.

2013-09-26  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] make MediaStream testable
        https://bugs.webkit.org/show_bug.cgi?id=121967

        Reviewed by Dean Jackson.

        * WebKit.xcodeproj/project.pbxproj: Add WebUserMediaClient.

2013-09-26  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Unreviewed Build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add missing
        symbol export to support tests.

2013-09-25  Roger Fong  <roger_fong@apple.com>

        [Windows] Unreviewed Build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-09-25  Alex Christensen  <achristensen@webkit.org>

        Enabled AssembleBuildLogs on WinCairo port.
        https://bugs.webkit.org/show_bug.cgi?id=121923

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit.sln:
        Build AssembleBuildLogs in WinCairo port.

2013-09-24  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Refactor RuntimeEnabledFeatures as a Singleton 
        https://bugs.webkit.org/show_bug.cgi?id=121883

        Reviewed by Jer Noble.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Expose singleton accessor for DLL clients.

2013-09-25  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Unreviewed build fix after r156408.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add new
        version of symbol export declaration.

2013-09-25  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Unreviewed build fix after r156408.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Remove
        symbol export declaration for WebCore::CSSParserContext::CSSParserContext,
        which is no longer provided by the system.

2013-09-25  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] Fix build with Qt 5.2 QtPosition module
        https://bugs.webkit.org/show_bug.cgi?id=121089

        Reviewed by Simon Hausmann.

        QtLocation -> QtPositioning

        * WebKit1.pri:

2013-09-23  Patrick Gansterer  <paroga@webkit.org>

        Cleanup CMake files in WebKit
        https://bugs.webkit.org/show_bug.cgi?id=121763

        Reviewed by Gyuyoung Kim.

        Sort files and unify style.

        * PlatformBlackBerry.cmake:
        * PlatformEfl.cmake:
        * PlatformWinCE.cmake:

2013-09-20  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Unreviewed build fix after r156216.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: I
        accidentally exposed the symbol of the calling function, not
        the missing symbol!

2013-09-20  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Unreviewed build fix after r156215.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Expose
        missing symbols needed by DRT.

2013-09-20  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Use COMPILE_DEFINITIONS target property for setting BUILDING_* defines
        https://bugs.webkit.org/show_bug.cgi?id=121672

        Reviewed by Gyuyoung Kim.

        Since the scope of add_definitions() is always a whole file, we need to use
        target properties instead to set definitions only for specific targets.

        * CMakeLists.txt:

2013-09-19  Bear Travis  <betravis@adobe.com>

        CSS_SHAPES not supported on AppleWin port
        https://bugs.webkit.org/show_bug.cgi?id=118810

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add required symbol for enabling CSS Shapes.

2013-09-18  peavo@outlook.com  <peavo@outlook.com>

        [Win] TestWebKitAPI does not compile.
        https://bugs.webkit.org/show_bug.cgi?id=121485

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Export needed symbols.

2013-09-17  Andreas Kling  <akling@apple.com>

        Some build juice for Windows.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-09-13  Tim Horton  <timothy_horton@apple.com>

        Unreviewed; part one of build fix for Windows.
        Sorry for the noise, I thought I'd fixed it.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-09-12  peavo@outlook.com  <peavo@outlook.com>

        [Win] TestWebKitAPI fails to link.
        https://bugs.webkit.org/show_bug.cgi?id=121223

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add required symbol.

2013-09-11  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Avoid converting from IntSize->SIZE->IntSize
        https://bugs.webkit.org/show_bug.cgi?id=121180

        Reviewed by Anders Carlsson.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Remove unused symbol export.

2013-09-08  Antti Koivisto  <antti@apple.com>

        Fix window build.
        
        Not reviewed.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-08-30  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Unreviewed build correction.
        Update project dependencies so that build logs on machines will include output from the
        WebInspectorUI project.

        * WebKit.vcxproj/WebKit.sln:

2013-08-30  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Unreviewed build fix after r154917

        * WebKit.vcxproj/WebKit.sln: Establish build dependency from WebInspectorUI against
        WebKit. Remove reverse dependency.

2013-08-29  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Unreviewed build fix after r154809

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Remove two no-longer-existing
        export symbols.

2013-08-28  Brent Fulgham  <bfulgham@webkit.org>

        [WinCairo] Unreviewed build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add
        missing Cairo symbols; don't export CG symbols for Cairo build.

2013-08-26  Roger Fong  <roger_fong@apple.com>

        AppleWin build fix following r154627.

        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj:
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj.filters:

2013-08-21  Roger Fong  <roger_fong@apple.com>

        <https://bugs.webkit.org/show_bug.cgi?id=119829> IAccessibleText and IAccessibleEditableText implementation for AppleWindows port.

        Reviewed by Chris Fleizach.

        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj:
        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj.filters:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj:
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj.filters:

2013-08-26  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Build fix after r154541.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Remove reference
        to deleted Element::pseudoElement(PseudoID), and add exports for new
        beforePseudoElement() and afterPseudoElement().

2013-08-23  Alex Christensen  <achristensen@apple.com>

        Re-separating Win32 and Win64 builds.
        https://bugs.webkit.org/show_bug.cgi?id=120178

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit/WebKitPostBuild.cmd:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorBuildCmd.cmd:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPostBuild.cmd:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPreBuild.cmd:
        Use PlatformArchitecture to determine correct object directory (obj32 or obj64).

2013-08-21  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r154416.
        http://trac.webkit.org/changeset/154416
        https://bugs.webkit.org/show_bug.cgi?id=120147

        Broke Windows builds (Requested by rniwa on #webkit).

        * WebKit.vcxproj/WebKit/WebKitPostBuild.cmd:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorBuildCmd.cmd:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPostBuild.cmd:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPreBuild.cmd:

2013-08-21  Alex Christensen  <achristensen@apple.com>

        <https://webkit.org/b/120137> Separating Win32 and Win64 builds.

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit/WebKitPostBuild.cmd:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorBuildCmd.cmd:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPostBuild.cmd:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPreBuild.cmd:
        Use PlatformArchitecture to determine correct object directory (obj32 or obj64).

2013-08-20  Brent Fulgham  <bfulgham@apple.com>

        <https://webkit.org/b/120098> [Windows] Enable the new Web Inspector

        Reviewed by Brian Weinstein.

        * WebKit.vcxproj/WebKit.sln: Add reference to the new WebInspectorUI
        project so that it will be included in new distributions.

2013-08-20  Alex Christensen  <achristensen@apple.com>

        [Windows] Unreviewed build fix for Win64 after r154118.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-08-20  Alex Christensen  <achristensen@apple.com>

        <https://webkit.org/b/120076> More work towards a Win64 build

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/Interfaces/InterfacesPreBuild.cmd:
        Use PlatformArchitecture macro instead of bin32, lib32, and obj32.

2013-08-20  Alex Christensen  <achristensen@apple.com>

        Use PlatformArchitecture to distinguish between 32-bit and 64-bit builds on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=119512

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/Interfaces/InterfacesCommon.props:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:
        * WebKit.vcxproj/WebKit/WebKitCommon.props:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj.filters:
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj:
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj.filters:
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDCommon.props:
        Replaced obj32, bin32, and lib32 with macros for 64-bit build.

2013-08-17  Andreas Kling  <akling@apple.com>

        [Windows] Unreviewed build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

            Don't export Frame::settings() as it's an inline method now.

2013-08-15  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Unreviewed build fix after r154127.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Remove two symbols that are
        now part of JavaScriptCore.

2013-08-15  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Build correctsion after r154106

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add missing symbol export.

2013-08-15  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Correct build after r154088

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Remove unused
        (and now renamed) export symbols.

2013-08-14  Alex Christensen  <achristensen@apple.com>

        Unreviewed build fix for Win64 after r153943.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Added 64-bit linker symbol for frameOrientationAtIndex.

2013-08-12  peavo@outlook.com  <peavo@outlook.com>

        [Win] TestWebKitAPI fails to link.
        https://bugs.webkit.org/show_bug.cgi?id=119619

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Export needed symbol.

2013-08-07  Ryuan Choi  <ryuan.choi@samsung.com>

        Unreviewed build fix on Efl port after r153785.

        * CMakeLists.txt: Added "${WEBCORE_DIR}/style" in include list.

2013-08-06  Alex Christensen  <achristensen@apple.com>

        Enabled WebGL on WinCairo port.
        https://bugs.webkit.org/show_bug.cgi?id=119502

        Reviewed by Benjamin Poulain.

        * WebKit.vcxproj/WebKit.sln: Build ANGLE libraries.
        * WebKit.vcxproj/WebKit/WebKitCFLite.props: Link to ANGLE libraries.

2013-08-05  Mark Lam  <mark.lam@apple.com>

        Gardening: fix build after r153728.

        Not reviewed.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-07-29  Alex Christensen  <achristensen@apple.com>

        Separated translator into preprocessor, translator_common,
        translator_hlsl (for libGLESv2), and translator_glsl (for ANGLEWebKitBridge).
        These projects are still not built by default.
        https://bugs.webkit.org/show_bug.cgi?id=119221

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit.sln:
        Added separate ANGLE translator projects.

2013-07-25  Roger Fong  <roger_fong@apple.com>

        Unreviewed build fix, AppleWin port.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-07-25  Alex Christensen  <achristensen@apple.com>

        Made Windows build system for ANGLE.
        https://bugs.webkit.org/show_bug.cgi?id=119103

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit.sln:
        Added ANGLEGenerated, libEGL, libGLESv2, and translator projects.
        These projects are currently not built.

2013-07-23  Tim Horton  <timothy_horton@apple.com>

        Unreviewed build fix after r153054.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-07-22  Alex Christensen  <achristensen@apple.com>

        Fixed WinCairo build configurations.
        https://bugs.webkit.org/show_bug.cgi?id=118932

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit.sln: 
        Made WinCairo not build AssembleBuildLogs (wasn't working, not necessary).
        Made Debug_WinCairo build with Debug_WinCairo configuration.
        Made 64-bit WinCairo not build QTMovieWin.

2013-07-19  Alex Christensen  <achristensen@apple.com>

        Unreviewed build fix on Windows after r152930.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Added missing close paren.

2013-07-19  Alex Christensen  <achristensen@apple.com>

        Added 64-bit symbols to WebKitExports.def.in for 64-bit Windows builds
        and a macro to only use them for 64-bit builds.
        https://bugs.webkit.org/show_bug.cgi?id=118887

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Added 64-bit symbols.
        * WebKit.vcxproj/WebKitExportGenerator/make-export-file-generator:
        Added support for new symbolWithPointer macro.

2013-07-19  Alex Christensen  <achristensen@apple.com>

        Added x64 configuration to Visual Studio build.
        https://bugs.webkit.org/show_bug.cgi?id=118888

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj:
        * WebKit.vcxproj/WebKit.sln:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj.filters:
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj:
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj.filters:

2013-07-16  Balazs Kelemen  <kbalazs@webkit.org>

        [CMake] Undefined references should be detected at build time
        https://bugs.webkit.org/show_bug.cgi?id=110236

        Reviewed by Christophe Dumez.

        Add library dependencies that were not defined explicitly before.

        * CMakeLists.txt:
        * PlatformEfl.cmake:

2013-07-11  Timothy Hatcher  <timothy@apple.com>

        Revert r152267 and soft link WebInspectorUI.framework again.

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

        Reviewed by David Kilzer.

        * WebKit.xcodeproj/project.pbxproj:

2013-07-01  Timothy Hatcher  <timothy@apple.com>

        Link to WebInspectorUI.framework at build time instead of soft linking.

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

        Reviewed by Joseph Pecoraro.

        * WebKit.xcodeproj/project.pbxproj:

2013-07-01  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Unreviewed build correction.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Need to export tag for textarea element.

2013-06-26  Roger Fong  <roger_fong@apple.com>

        Add an accessibility delegate interface to AppleWin port.
        https://bugs.webkit.org/show_bug.cgi?id=118094.

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj:
        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj.filters:

2013-06-24  Alex Christensen  <achristensen@apple.com>

        Windows build links to opengl32.lib to allow WebGL compiling.
        https://bugs.webkit.org/show_bug.cgi?id=117949

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit/WebKitCommon.props: Added link to opengl32.lib.

2013-06-17  Darin Adler  <darin@apple.com>

        Sort all the Xcode project files
        https://bugs.webkit.org/show_bug.cgi?id=117696

        Reviewed by Anders Carlsson.

        * WebKit.xcodeproj/project.pbxproj: Ran the sort-Xcode-project-file script.

2013-06-21  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Fix a missing parenthesis in include directory path.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorCommon.props:

2013-06-20  Roger Fong  <roger_fong@apple.com>

        Make Windows makefile copy build output to a different folder.
        <rdar://problem/14219184>.

        * WebKit.vcxproj/WebKit.make:

2013-06-18  Roger Fong  <roger_fong@apple.com>

        Replace tools32 folder with tools and update WebKit Windows solution accordingly.
        <rdar://problem/14118143>.

        Rubberstamped by Brent Fulgham.

        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj:
        * WebKit.vcxproj/Interfaces/InterfacesDebug.props:
        * WebKit.vcxproj/Interfaces/InterfacesDebugWinCairo.props:
        * WebKit.vcxproj/Interfaces/InterfacesPreBuild.cmd:
        * WebKit.vcxproj/Interfaces/InterfacesProduction.props:
        * WebKit.vcxproj/Interfaces/InterfacesRelease.props:
        * WebKit.vcxproj/Interfaces/InterfacesReleaseWinCairo.props:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKitDebug.props:
        * WebKit.vcxproj/WebKit/WebKitDebugWinCairo.props:
        * WebKit.vcxproj/WebKit/WebKitPreBuild.cmd:
        * WebKit.vcxproj/WebKit/WebKitProduction.props:
        * WebKit.vcxproj/WebKit/WebKitRelease.props:
        * WebKit.vcxproj/WebKit/WebKitReleaseWinCairo.props:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorDebug.props:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorDebugWinCairo.props:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorProduction.props:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorRelease.props:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorReleaseWinCairo.props:
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj:
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDDebug.props:
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDDebugWinCairo.props:
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDProduction.props:
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDRelease.props:
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDReleaseWinCairo.props:

2013-06-17  Roger Fong  <roger_fong@apple.com>

        Modify Windows makefiles to copy some bin output into Program Files.
        https://bugs.webkit.org/show_bug.cgi?id=117714.
        <rdar://problem/14179054>

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit.make:

2013-06-17  Michael Brüning  <michael.bruning@digia.com>

        [Qt] Remove Qt specific QTKIT flagged code.
        https://bugs.webkit.org/show_bug.cgi?id=117635

        Reviewed by Simon Hausmann.

        Due to disabling QTKIT for Qt in r151546, the
        code the flags that are not taken into account
        anymore and the code that has been rendered
        unreachable by this are removed.

        * WebKit1.pro:

2013-06-14  Alberto Garcia  <agarcia@igalia.com>

        [BlackBerry] Remove implementation of ContextMenu classes
        https://bugs.webkit.org/show_bug.cgi?id=114860

        Reviewed by Rob Buis.

        This code is not being used so we can safely remove it.

        * PlatformBlackBerry.cmake:

2013-06-13  Christophe Dumez  <ch.dumez@sisa.samsung.com>

        Unreviewed build fix after rr151563.

        Export needed symbols for Windows.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-06-13  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Revise WebKit project to show generated export definition file.
        https://bugs.webkit.org/show_bug.cgi?id=109629

        Reviewed by Mark Rowe.

        * WebKit.vcxproj/WebKit/WebKit.vcxproj: Add generated file.
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters: Ditto

2013-06-13  Brent Fulgham  <bfulgham@webkit.org>

        [WinCairo] Unreviewed build correction.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add
        missing symbols needed by TestWebKitAPI on WinCairo build.

2013-06-12  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Implement Accessibility2 APIs in Windows.
        https://bugs.webkit.org/show_bug.cgi?id=117561

        Reviewed by Anders Carlsson.

        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj: Add new IAccessible2 IDL files.
        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj.filters: Ditto.
        * WebKit.vcxproj/Interfaces/InterfacesCommon.props: Reference new Accessible2 folder.
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj: Build IAccessible2 symbols.
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj.filters: Ditto.

2013-06-10  Bear Travis  <betravis@adobe.com>

        [CSS Shapes][CSS Exclusions] Split CSS Exclusions and CSS Shapes code
        https://bugs.webkit.org/show_bug.cgi?id=117162

        Reviewed by Alexandru Chiculita.

        Adding the WebCore/rendering/shapes directory to the include list.

        * CMakeLists.txt:

2013-06-06  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Build configuration fix. WebKitExportGenerator's include path should fall back to 
        $(WebKit_Libraries)\include\WebCore if $(ConfigurationBuildDir)\include\WebCore doesn't exist.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorCommon.props:

2013-06-05  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed. Attempting a build fix for the AppleWin port after r151199.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Export the required symbol.

2013-06-03  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Some AppleWin VS2010 house cleaning.

        * WebKit.vcxproj/Interfaces/InterfacesPreBuild.cmd:
        * WebKit.vcxproj/WebKit/WebKitPreBuild.cmd:

2013-05-31  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Add AssembleBuildLogs project to WebKit solution in preparation for moving buildbots to VCExpress 2010.

        * WebKit.vcxproj/WebKit.sln:

2013-05-30  Roger Fong  <roger_fong@apple.com>

        Get rid of JavaScript exports file on AppleWin port.
        https://bugs.webkit.org/show_bug.cgi?id=117050.

        Reviewed by Darin Adler.

        Start linking in WTF.lib now that it's a shared library.

        * WebKit.vcxproj/WebKit.sln:
        * WebKit.vcxproj/WebKit/WebKitCommon.props:

2013-05-28  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Many css2.1 tests fail on Apple's Windows port.
        https://bugs.webkit.org/show_bug.cgi?id=75707

        Reviewed by Darin Adler.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Export the WebCore::directoryName method for use by DRT.

2013-05-27  Patrick Gansterer  <paroga@webkit.org>

        Use ICU_INCLUDE_DIRS in BlackBerry CMake files
        https://bugs.webkit.org/show_bug.cgi?id=116210

        Reviewed by Rob Buis.

        Set and use the ICU_INCLUDE_DIRS variable to avoid
        duplicated adding of the ICU include directory.

        * PlatformBlackBerry.cmake:

2013-05-27  Carlos Garcia Campos  <cgarcia@igalia.com>

        [BlackBerry] Move PagePopup implementation to WebKitSupport
        https://bugs.webkit.org/show_bug.cgi?id=116824

        Reviewed by Rob Buis.

        * PlatformBlackBerry.cmake: Update new file paths and names.

2013-05-24  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Expose database storage and cache locations via preferences.
        https://bugs.webkit.org/show_bug.cgi?id=116729

        Reviewed by Tim Horton.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Export
        three symbols needed to implement the feature.

2013-05-24  Anders Carlsson  <andersca@apple.com>

        Move history property list writer to WebKit
        https://bugs.webkit.org/show_bug.cgi?id=116746

        Reviewed by Tim Horton.

        Add files to the Xcode project.

        * WebKit.xcodeproj/project.pbxproj:

2013-05-21  Carlos Garcia Campos  <cgarcia@igalia.com>

        [BlackBerry] Make PagePopup implementation independent from WebCore
        https://bugs.webkit.org/show_bug.cgi?id=116448

        Reviewed by Anders Carlsson.

        * PlatformBlackBerry.cmake: Add
        blackberry/WebCoreSupport/PagePopupBlackBerryClient.cpp to
        compilation.

2013-05-18  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Replace *_LIBRARY_NAME with *_OUTPUT_NAME
        https://bugs.webkit.org/show_bug.cgi?id=114554

        Reviewed by Gyuyoung Kim.

        Using variables as target names is very uncommon in CMake.
        The usual way to specify the name of the resulting binary
        is to set the OUTPUT_NAME target property.

        * CMakeLists.txt:
        * PlatformBlackBerry.cmake:
        * PlatformEfl.cmake:

2013-05-15  Ryosuke Niwa  <rniwa@webkit.org>

        Revert the previous commit.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-05-15  Ryosuke Niwa  <rniwa@webkit.org>

        Windows build fix attempt after r150160.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-05-15  Ryosuke Niwa  <rniwa@webkit.org>

        Windows build fix attempt after r150156.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-05-14  Carlos Garcia Campos  <cgarcia@igalia.com>

        [BlackBerry] Implement platform strategies
        https://bugs.webkit.org/show_bug.cgi?id=112162

        Reviewed by Rob Buis.

        * PlatformBlackBerry.cmake: Add new files to compilation.

2013-05-06  Roger Fong  <roger_fong@apple.com>

        Unreviewed. AppleWin VS2010 build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-05-04  Dean Jackson  <dino@apple.com>

        Animations and Transitions should not start when globally suspended
        https://bugs.webkit.org/show_bug.cgi?id=114915

        Reviewed by Sam Weinig.

        Export AnimationController::isSuspended

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-05-04  Sam Weinig  <sam@webkit.org>

        Move PopupMenuMac and SearchPopupMenuMac to Source/WebKit/mac
        matching where they are in WebKit2.

        Reviewed by Anders Carlsson.

        * WebKit.xcodeproj/project.pbxproj:

2013-05-02  Roger Fong  <roger_fong@apple.com>

        Following r149463, set Path for WebKit makefile as well.

        * WebKit.vcxproj/WebKit.make:

2013-05-01  Sergio Villar Senin  <svillar@igalia.com>

        Show a block cursor in overtype mode
        https://bugs.webkit.org/show_bug.cgi?id=114819

        Reviewed by Ryosuke Niwa.

        Export three more WebCore symbols.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-04-29  Brent Fulgham  <bfulgham@webkit.org>

        [Windows, WinCairo] Remove pthread paths for WebKit build.
        https://bugs.webkit.org/show_bug.cgi?id=115390

        Reviewed by Tim Horton.

        Update Visual Studio property sheets to remove include paths and
        link references for the pthreadsVC2.dll, which is no longer used.

        * WebKit.vcxproj/WebKit/WebKitCommon.props:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorCommon.props:

2013-04-28  Ryosuke Niwa  <rniwa@webkit.org>

        Windows build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-04-25  Ryosuke Niwa  <rniwa@webkit.org>

        StaticHashSetNodeList is unnecessary
        https://bugs.webkit.org/show_bug.cgi?id=115219

        Reviewed by Antonio Gomes.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-04-26  Roger Fong  <roger_fong@apple.com>

        Make Apple Windows VS2010 build results into and get dependencies from __32 suffixed folders.
        Make the DebugSuffix configuration use _debug dependencies.

        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj:
        * WebKit.vcxproj/Interfaces/InterfacesCommon.props:
        * WebKit.vcxproj/Interfaces/InterfacesDebug.props:
        * WebKit.vcxproj/Interfaces/InterfacesDebugWinCairo.props:
        * WebKit.vcxproj/Interfaces/InterfacesPreBuild.cmd:
        * WebKit.vcxproj/Interfaces/InterfacesProduction.props:
        * WebKit.vcxproj/Interfaces/InterfacesRelease.props:
        * WebKit.vcxproj/Interfaces/InterfacesReleaseWinCairo.props:
        * WebKit.vcxproj/WebKit.make:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKitApple.props:
        * WebKit.vcxproj/WebKit/WebKitCommon.props:
        * WebKit.vcxproj/WebKit/WebKitDebug.props:
        * WebKit.vcxproj/WebKit/WebKitDebugWinCairo.props:
        * WebKit.vcxproj/WebKit/WebKitPostBuild.cmd:
        * WebKit.vcxproj/WebKit/WebKitPreBuild.cmd:
        * WebKit.vcxproj/WebKit/WebKitProduction.props:
        * WebKit.vcxproj/WebKit/WebKitRelease.props:
        * WebKit.vcxproj/WebKit/WebKitReleaseWinCairo.props:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorBuildCmd.cmd:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorCommon.props:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorDebug.props:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorDebugWinCairo.props:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPostBuild.cmd:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPreBuild.cmd:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorProduction.props:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorRelease.props:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorReleaseWinCairo.props:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj:
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDCommon.props:
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDDebug.props:
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDDebugWinCairo.props:
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDProduction.props:
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDRelease.props:
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDReleaseWinCairo.props:

2013-04-25  Andreas Kling  <akling@apple.com>

        Remove ENABLE(PARSED_STYLE_SHEET_CACHING) and make it always-on.

        Rubber-stamped by Anders Koivisto.

        * PlatformWinCE.cmake:

2013-04-25  Patrick Gansterer  <paroga@webkit.org>

        Remove OS(WINCE) from AccessibilityObject.h
        https://bugs.webkit.org/show_bug.cgi?id=115192

        Reviewed by Andreas Kling.

        Use the same files like the the other PLATFORM(WIN) ports use.

        * PlatformWinCE.cmake:

2013-04-24  Jessie Berlin  <jberlin@apple.com>

        Assertion failure (crash in release) attempting to delete database storage in WK1 without
        creating a WebView first
        https://bugs.webkit.org/show_bug.cgi?id=115065

        Reviewed by Brady Eidson.

        * WebKit.xcodeproj/project.pbxproj:
        Remove WebDatabaseManagerInternal.h.

2013-04-23  Benjamin Poulain  <bpoulain@apple.com>

        Remove the WebKit layer of wxWebKit
        https://bugs.webkit.org/show_bug.cgi?id=115006

        Reviewed by Anders Carlsson.

        The wxWebKit port is no longer actively maintained by Kevin
        on webkit.org. Remove the code until new maintainers resume the work.

        * wx/WebBrowserShell.cpp: Removed.
        * wx/WebBrowserShell.h: Removed.
        * wx/WebDOMSelection.cpp: Removed.
        * wx/WebDOMSelection.h: Removed.
        * wx/WebEdit.cpp: Removed.
        * wx/WebEdit.h: Removed.
        * wx/WebFrame.cpp: Removed.
        * wx/WebFrame.h: Removed.
        * wx/WebFramePrivate.h: Removed.
        * wx/WebKitDefines.h: Removed.
        * wx/WebKitSupport/ChromeClientWx.cpp: Removed.
        * wx/WebKitSupport/ChromeClientWx.h: Removed.
        * wx/WebKitSupport/ContextMenuClientWx.cpp: Removed.
        * wx/WebKitSupport/ContextMenuClientWx.h: Removed.
        * wx/WebKitSupport/DragClientWx.cpp: Removed.
        * wx/WebKitSupport/DragClientWx.h: Removed.
        * wx/WebKitSupport/EditCommandWx.h: Removed.
        * wx/WebKitSupport/EditorClientWx.cpp: Removed.
        * wx/WebKitSupport/EditorClientWx.h: Removed.
        * wx/WebKitSupport/FrameLoaderClientWx.cpp: Removed.
        * wx/WebKitSupport/FrameLoaderClientWx.h: Removed.
        * wx/WebKitSupport/FrameNetworkingContextWx.h: Removed.
        * wx/WebKitSupport/InspectorClientWx.cpp: Removed.
        * wx/WebKitSupport/InspectorClientWx.h: Removed.
        * wx/WebSettings.cpp: Removed.
        * wx/WebSettings.h: Removed.
        * wx/WebView.cpp: Removed.
        * wx/WebView.h: Removed.
        * wx/WebViewPrivate.h: Removed.
        * wx/bindings/python/samples/simple.py: Removed.
        * wx/bindings/python/webview.i: Removed.
        * wx/bindings/python/wscript: Removed.
        * wx/wscript: Removed.

2013-04-22  Jessie Berlin  <jberlin@apple.com>

        Speculative Windows build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-04-22  Benjamin Poulain  <benjamin@webkit.org>

        Remove the memory instrumentation code
        https://bugs.webkit.org/show_bug.cgi?id=114931

        Reviewed by Andreas Kling.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-04-21  Benjamin Poulain  <benjamin@webkit.org>

        Improve StringImpl code density for older ARM hardware
        https://bugs.webkit.org/show_bug.cgi?id=114898

        Reviewed by Geoffrey Garen.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-04-19  Roger Fong  <roger_fong@apple.com>

        Unreviewed. WebKit_Source is incorrectly set.

        * WebKit.vcxproj/WebKit.make:

2013-04-19  Jose Lejin PJ  <jose.lejin@gmail.com>

        [EFL] Add method in ewk_settings for setting the CSS media type
        https://bugs.webkit.org/show_bug.cgi?id=113284

        Reviewed by Gyuyoung Kim.

        test_ewk_setting is added.

        * PlatformEfl.cmake:

2013-04-18  Sam Weinig  <sam@webkit.org>

        Network Process crashing trying to read in IDNScriptWhiteList.txt
        https://bugs.webkit.org/show_bug.cgi?id=114827

        Reviewed by Anders Carlsson.

        Move IDNScriptWhiteList.txt from WebKit to WebCore, so that the NetworkProcess does not have to link against
        WebKit. It was a layering violation for WebCore to be trying to access WebKit resources anyway.

        * WebKit.xcodeproj/project.pbxproj:

2013-04-14  Roger Fong  <roger_fong@apple.com>

        Copy make-file-export-generator script to the the Source folders of the projects that use it.
        <rdar://problem/13675604>

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj.filters:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorBuildCmd.cmd:
        * WebKit.vcxproj/WebKitExportGenerator/make-export-file-generator: Copied from Source/WebCore/make-export-file-generator.

2013-04-16  Brent Fulgham  <bfulgham@webkit.org>

        [Windows] Unreviewed VS2010 build correction.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorCommon.props:
        Add correct link library to avoid mixture of ICU 4.0 and 4.6
        syumbol use.

2013-04-12  Jer Noble  <jer.noble@apple.com>

        TimeRanges::nearest() returns incorrect results.
        https://bugs.webkit.org/show_bug.cgi?id=114483

        Reviewed by Eric Carlson.

        Add symbols needed by WebCoreTestSupport to the exports list.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-04-11  Rune Lillesveen  <rune@opera.com>

        Incorrect evaluation of resolution media queries
        https://bugs.webkit.org/show_bug.cgi?id=114029

        Reviewed by Kenneth Rohde Christiansen.

        Removed setResolutionOverride from exports.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-04-05  Roger Fong  <roger_fong@apple.com>

        Build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-04-08  Jeff Rogers  <jrogers@rim.com>

        [BlackBerry] Update BlackBerry JavaScript API
        https://bugs.webkit.org/show_bug.cgi?id=114065

        Reviewed by Rob Buis.

        Internal PR 317350
        Remove obsolete files.

        * PlatformBlackBerry.cmake:

2013-04-07  Patrick Gansterer  <paroga@webkit.org>

        Remove references to Skia and V8 from CMake files
        https://bugs.webkit.org/show_bug.cgi?id=114130

        Reviewed by Geoffrey Garen.

        * PlatformBlackBerry.cmake:

2013-04-06  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Remove general include directories from platform specific files

        Move the include directories, which are required by all CMake ports
        to the general CMakeLists.txt to fix the build for Windows CE port.

        * CMakeLists.txt:
        * PlatformBlackBerry.cmake:
        * PlatformEfl.cmake:

2013-04-05  Roger Fong  <roger_fong@apple.com>

        More VS2010 solution makefile fixes.
        <rdar://problem/13588964>

        * WebKit.vcxproj/WebKit.make:

2013-04-04  Benjamin Poulain  <benjamin@webkit.org>

        Remove Webkit/chromium
        https://bugs.webkit.org/show_bug.cgi?id=113998

        Reviewed by Ryosuke Niwa.

        O Knights of Ni, you are just and fair, and we will return with a shrubbery.

        * chromium: Removed.

2013-04-04  Christophe Dumez  <ch.dumez@sisa.samsung.com>

        [Cairo] Fix canvas drawing of SVG-based patterns and remove NativeImageCairo
        https://bugs.webkit.org/show_bug.cgi?id=113929

        Reviewed by Martin Robinson.

        Remove outdated symbols now that NativeImageCairo was removed.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-04-03  Roger Fong  <roger_fong@apple.com>

        Unreviewed VS2010 build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-03-27  Mark Lam  <mark.lam@apple.com>

        Rolling out r147044.
        https://bugs.webkit.org/show_bug.cgi?id=113352.

        Not Reviewed.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-03-27  Mark Lam  <mark.lam@apple.com>

        Greening the Apple Win bot (debug build).
        https://bugs.webkit.org/show_bug.cgi?id=113352.

        Not Reviewed.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-03-27  Mark Lam  <mark.lam@apple.com>

        Greening the Apple Win bot.
        https://bugs.webkit.org/show_bug.cgi?id=113352.

        Not Reviewed.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-03-22  Ryosuke Niwa  <rniwa@webkit.org>

        The second part of the build fix for r146702. This should do it.
        I had to see the mangled name for the new signature.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-03-22  Ryosuke Niwa  <rniwa@webkit.org>

        Build fix attempt after r146702.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-03-22  Carlos Garcia Campos  <cgarcia@igalia.com>

        [BlackBerry] Add custom BackForwardList client implementation
        https://bugs.webkit.org/show_bug.cgi?id=113024

        Reviewed by Rob Buis.

        PR 310030
        Internally reviewed by Joe Mason.

        * PlatformBlackBerry.cmake: Add new files to compilation.

2013-03-21  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Move common props files for VS2010 solution to WebKitLibraries folder and update all projects accordingly.

        * WebKit.vcxproj/FeatureDefines.props: Removed.
        * WebKit.vcxproj/FeatureDefinesCairo.props: Removed.
        * WebKit.vcxproj/WebKit/cURL.props: Removed.
        * WebKit.vcxproj/WinCairo.props: Removed.
        * WebKit.vcxproj/common.props: Removed.
        * WebKit.vcxproj/debug.props: Removed.
        * WebKit.vcxproj/debug_wincairo.props: Removed.
        * WebKit.vcxproj/debugsuffix.props: Removed.
        * WebKit.vcxproj/production.props: Removed.
        * WebKit.vcxproj/release.props: Removed.

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

        Windows build fix after r146430.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-03-20  Brent Fulgham  <bfulgham@webkit.org>

        [WinCairo] Top-level solution change to build under VS2010.
        https://bugs.webkit.org/show_bug.cgi?id=112861.

        Reviewed by Tim Horton.

        * WebKit.vcxproj/WebKit.sln: Add final set of WinCairo build
        targets.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Add #if/def guards around some media-specific exports that
        are not provided by the WinCairo port.

2013-03-19  Brent Fulgham  <bfulgham@webkit.org>

        [WinCairo] Build the WebKit.dll under VS2010.
        https://bugs.webkit.org/show_bug.cgi?id=112759

        Reviewed by Tim Horton.

        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj: Update project to
        build WinCairo variant using new property sheets.
        * WebKit.vcxproj/Interfaces/InterfacesDebugWinCairo.props: Added.
        * WebKit.vcxproj/Interfaces/InterfacesReleaseWinCairo.props: Added.
        * WebKit.vcxproj/WebKit.sln: Update solution to use WinCairo
        build targets for WebKit.dll-related projects.
        * WebKit.vcxproj/WebKit/WebKit.vcxproj: Update project to build
        WinCairo variant using new property sheets.
        * WebKit.vcxproj/WebKit/cURL.props: Added.
        * WebKit.vcxproj/WebKit/WebKitDebugWinCairo.props: Added.
        * WebKit.vcxproj/WebKit/WebKitReleaseWinCairo.props: Added.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj:
        Update project to build WinCairo variant using new property sheets.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorDebugWinCairo.props: Added.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorReleaseWinCairo.props: Added.
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj: Update project to
        build WinCairo variant using new property sheets.
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDDebugWinCairo.props: Added.
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDReleaseWinCairo.props: Added.
        * WebKit.vcxproj/WinCairo.props: Added.
        * WebKit.vcxproj/debug_wincairo.props: Added.

2013-03-20  Eric Carlson  <eric.carlson@apple.com>

        Allow ports specific text track menu
        https://bugs.webkit.org/show_bug.cgi?id=112800

        Reviewed by Dean Jackson.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add new exports.
        * win/WebKit.vcproj/WebKitExports.def.in: Ditto.

2013-03-20  Roger Fong  <roger_fong@apple.com>

        AppleWin VS2010 build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-03-18  Brent Fulgham  <bfulgham@webkit.org>

        [WinCairo] Build WinCairo port under VS2010 
        https://bugs.webkit.org/show_bug.cgi?id=112604

        Reviewed by Tim Horton.

        * WebKit.vcxproj/WebKit.sln: Add Debug_WinCairo and Release_WinCairo
        build targets. No other changes in this patch.
        * WebKit.vcxproj/FeatureDefinesCairo.props: Add parallel property
        sheet for WinCairo version of build.

2013-03-18  Roger Fong  <roger_fong@apple.com>

        AppleWin VS2010 build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-03-14  Simon Hausmann  <simon.hausmann@digia.com>

        [Qt] Improve the handling of mock geolocation, device orientation and motion clients

        Reviewed by Tor Arne Vestbø.

        The mock versions of these web facing features should be instantiated when
        running in DumpRenderTree only. In order for them to work, no extra Qt modules
        such as QtLocation are actually needed.

        This patch decouples enabling device orientation/motion and geolocation from
        the underlying Qt modules and makes them available in developer builds
        (!production_build) and backed by mock backends when running in drt.

        So if the Qt 5 modules are available, they'll be used (unless drtRun). For
        developers the web facing features are always enabled (although requests will
        time out) and the mock backends are enabled inside DRT, allowing for the layout
        tests to run with less dependencies.

        In addition this also enables the mock device motion client, which was
        previously never instantiated.

        * WebKit1.pri:
        * WebKit1.pro:

2013-03-13  Genevieve Mak  <gmak@rim.com>

        [BlackBerry] Add Proximity Detector.
        https://bugs.webkit.org/show_bug.cgi?id=112278

        Reviewed by Rob Buis.

        Internally Reviewed by Mike Lattanzio.
        PR #243385

        * PlatformBlackBerry.cmake:

2013-03-08  Roger Fong  <roger_fong@apple.com>

        Build fix for AppleWin VS2010.

        * WebKit.vcxproj/FeatureDefines.props:

2013-03-06  Jer Noble  <jer.noble@apple.com>

        Unreviewed partial roll-out of r145003. Disable
        ENABLE_CURSOR_VISIBILITY on win.

        * WebKit.vcxproj/FeatureDefines.props:

2013-03-04  Jer Noble  <jer.noble@apple.com>

        Default mouse cursor behavior should be auto-hide for full screen video with custom controls
        https://bugs.webkit.org/show_bug.cgi?id=107601

        Reviewed by Beth Dakin.

        Enable the CURSOR_VISIBILITY feature.

        * WebKit.vcxproj/FeatureDefines.props:

2013-03-05  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Build break with latest EFL libraries
        https://bugs.webkit.org/show_bug.cgi?id=111028

        Reviewed by Dirk Pranke.

        * PlatformEfl.cmake: Added ECORE_X_INCLUDE_DIRS.

2013-03-04  Roger Fong  <roger_fong@apple.com>

        Unreviewed. AppleWin build fix.

        * WebKit.vcxproj/FeatureDefines.props:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

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

        Unreviewed, rolling out r144567.
        http://trac.webkit.org/changeset/144567
        https://bugs.webkit.org/show_bug.cgi?id=111266

        Does not compile on apple-win (Requested by abarth on
        #webkit).

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-02-26  Roger Fong  <roger_fong@apple.com>

        Unreviewed AppleWin build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorCommon.props:

2013-02-26  Alberto Garcia  <agarcia@igalia.com>

        [BlackBerry] Upstream the datalist support UI
        https://bugs.webkit.org/show_bug.cgi?id=110736

        Reviewed by Rob Buis.

        Original code by Otto Derek Cheung <otcheung@rim.com>

        * PlatformBlackBerry.cmake:

2013-02-25  Roger Fong  <roger_fong@apple.com>

        Unreviewed. VS2010 solution build fix.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-02-22  Aaron Colwell  <acolwell@chromium.org>

        Disable MediaSource on Apple Windows port
        https://bugs.webkit.org/show_bug.cgi?id=110494

        Reviewed by Tim Horton.

        * WebKit.vcxproj/FeatureDefines.props:

2013-02-20  Roger Fong  <roger_fong@apple.com>

        Get VS2010 Solution B&I ready.
        <rdar://problem/1322988>

        Rubberstamped by Timothy Horton.        
        
        Add Production configuration. 
        Add a WebKit submit solution with a DebugSuffix configuration. 
        Modify WebKit.make as necessary.
        
        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj:
        * WebKit.vcxproj/Interfaces/InterfacesProduction.props: Added.
        * WebKit.vcxproj/Interfaces/InterfacesRelease.props:
        * WebKit.vcxproj/WebKit.make: Added.
        * WebKit.vcxproj/WebKit.sln:
        * WebKit.vcxproj/WebKit.submit.sln: Added.
        * WebKit.vcxproj/WebKit/WebKit.vcxproj:
        * WebKit.vcxproj/WebKit/WebKitCommon.props:
        * WebKit.vcxproj/WebKit/WebKitProduction.props: Added.
        * WebKit.vcxproj/WebKit/WebKitRelease.props:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorCommon.props:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPostBuild.cmd:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPreBuild.cmd:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorProduction.props: Added.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorRelease.props:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj:
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDProduction.props: Added.
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDRelease.props:
        * WebKit.vcxproj/common.props:
        * WebKit.vcxproj/debugsuffix.props: Added.
        * WebKit.vcxproj/production.props: Added.
        * WebKit.vcxproj/releaseproduction.props: Removed.

2013-02-19  Tony Chang  <tony@chromium.org>

        Unreviewed, include exports for VS2010 as well.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-02-18  Brent Fulgham  <bfulgham@webkit.org>

        [Windows] Unreviewed VS2010 build correction.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Sync
        export definition with VS2005 version.

2013-02-15  Rik Cabanier  <cabanier@adobe.com>

        Add platform support for -webkit-background-blend-mode to CG context
        https://bugs.webkit.org/show_bug.cgi?id=108549

        Reviewed by Dean Jackson.

        Fixed build issue.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-02-14  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Touch-ups to the VS2010 WebKit solution.
        Remove un-needed include directories and force includes. 
        Update exports file.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        * WebKit.vcxproj/common.props:
        * DumpRenderTree/DumpRenderTree.vcxproj/DumpRenderTree/DumpRenderTreeLauncherCommon.props:
        * DumpRenderTree/DumpRenderTree.vcxproj/ImageDiff/ImageDiffLauncherCommon.props:
        * DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/TestNetscapePlugin.vcxproj:
        * DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/TestNetscapePlugin.vcxproj.filters:
        * TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPI.vcxproj:
        * TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPI.vcxproj.filters:
        * WinLauncher/WinLauncher.vcxproj/WinLauncherCommon.props:
        * win/record-memory/record-memoryCommon.props:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * JavaScriptCore.vcxproj/JavaScriptCoreCommon.props:
        * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
        * JavaScriptCore.vcxproj/jsc/jscCommon.props:
        * JavaScriptCore.vcxproj/testRegExp/testRegExp.vcxproj:
        * JavaScriptCore.vcxproj/testapi/testapi.vcxproj:
        * WTF.vcxproj/WTFCommon.props:

2013-02-14  Tony Chang  <tony@chromium.org>

        Unreviewed, set svn:eol-style native for .sln, .vcproj, and .vsprops files.
        https://bugs.webkit.org/show_bug.cgi?id=96934

        * WebKit.vcxproj/WebKit.sln: Modified property svn:eol-style.

2013-02-14  Tony Chang  <tony@chromium.org>

        Unreviewed, set svn:eol-style CRLF for .sln files.

        * WebKit.vcxproj/WebKit.sln: Modified property svn:eol-style.

2013-02-14  Roger Fong  <roger_fong@apple.com>

        Add TestWebKitAPI, gtest-md and record-memory projects to VS2010 WebKit solution.
        https://bugs.webkit.org/show_bug.cgi?id=107034.

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit.sln:

2013-02-12  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Build fix for VS2010 WebKit solution.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-02-11  Adenilson Cavalcanti  <cavalcantii@gmail.com>

        Build fix: r142549 broke EFL build
        https://bugs.webkit.org/show_bug.cgi?id=109527

        Reviewed by Kentaro Hara.

        Build fix.

        * CMakeLists.txt:

2013-02-11  Brent Fulgham  <bfulgham@webkit.org>

        Rename Visual Studio solution folders to avoid conflicts with project names
        https://bugs.webkit.org/show_bug.cgi?id=109484

        Reviewed by Tim Horton.

        * WebKit.vcxproj/WebKit.sln: Rename several solution folders (e.g.,
        WTF, WebCore, WebKit, JavaScriptCore) so that they do not conflict
        with projects using the same name.

2013-02-08  Benjamin Poulain  <bpoulain@apple.com>

        Move workerThreadCount from TestRunner to WebCore Internals
        https://bugs.webkit.org/show_bug.cgi?id=109239

        Reviewed by Darin Adler.

        * WebKit.xcodeproj/project.pbxproj:

2013-02-07  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Corrections the exports definition file.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-02-07  Roger Fong  <roger_fong@apple.com>

        Unreviewed. More VS2010 WebKit solution touchups.
        Make WebKitExports.def.in be treated as a custom build file so that changes to it cause the exports to be rebuilt.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj.filters:
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-02-06  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Touchups to VS2010 WebKit solution.
        Add WinLauncher projects to solution.

        * WebKit.vcxproj/WebKit.sln:

2013-02-05  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Get rid of redundant exports in export definitions file.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

2013-02-05  Brent Fulgham  <bfulgham@webkit.org>

        Unreviewed Visual Studio 2010 build correction.

        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
        Link export definitions out of date with ToT.  Corrected.

2013-02-05  Roger Fong  <roger_fong@apple.com>

        Add a JavaScriptCore Export Generator project.
        https://bugs.webkit.org/show_bug.cgi?id=108971.

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/WebKit.sln:

2013-02-05  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Delete some errant preprocessor definitions.

        * WebKit.vcxproj/WebKit/WebKitCommon.props:

2013-02-05  Roger Fong  <roger_fong@apple.com>

        VS2010 WebKit projects, scripts, and property sheets.
        https://bugs.webkit.org/show_bug.cgi?id=106989.

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj/Interfaces: Added.
        * WebKit.vcxproj/Interfaces/FixMIDLHeaders.pl: Copied from win/WebKit.vcproj/FixMIDLHeaders.pl.
        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj: Added.
        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj.filters: Added.
        * WebKit.vcxproj/Interfaces/Interfaces.vcxproj.user: Added.
        * WebKit.vcxproj/Interfaces/InterfacesCommon.props: Added.
        * WebKit.vcxproj/Interfaces/InterfacesDebug.props: Added.
        * WebKit.vcxproj/Interfaces/InterfacesPostBuild.cmd: Added.
        * WebKit.vcxproj/Interfaces/InterfacesPreBuild.cmd: Added.
        * WebKit.vcxproj/Interfaces/InterfacesRelease.props: Added.
        * WebKit.vcxproj/WebKit: Added.
        * WebKit.vcxproj/WebKit.sln:
        * WebKit.vcxproj/WebKit/WebKit.vcxproj: Added.
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters: Added.
        * WebKit.vcxproj/WebKit/WebKit.vcxproj.user: Added.
        * WebKit.vcxproj/WebKit/WebKitApple.props: Added.
        * WebKit.vcxproj/WebKit/WebKitCFLite.props: Added.
        * WebKit.vcxproj/WebKit/WebKitCommon.props: Added.
        * WebKit.vcxproj/WebKit/WebKitDebug.props: Added.
        * WebKit.vcxproj/WebKit/WebKitDirectX.props: Added.
        * WebKit.vcxproj/WebKit/WebKitPostBuild.cmd: Added.
        * WebKit.vcxproj/WebKit/WebKitPreBuild.cmd: Added.
        * WebKit.vcxproj/WebKit/WebKitPreLink.cmd: Added.
        * WebKit.vcxproj/WebKit/WebKitRelease.props: Added.
        * WebKit.vcxproj/WebKit/resource.h: Copied from win/WebKit.vcproj/resource.h.
        * WebKit.vcxproj/WebKitExportGenerator: Added.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj: Added.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj.filters: Added.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj.user: Added.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorBuildCmd.cmd: Added.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorCommon.props: Added.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorDebug.props: Added.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPostBuild.cmd: Added.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPreBuild.cmd: Added.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorRelease.props: Added.
        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Copied from win/WebKit.vcproj/WebKitExports.def.in.
        * WebKit.vcxproj/WebKitGUID: Added.
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj: Added.
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj.filters: Added.
        * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj.user: Added.
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDCommon.props: Added.
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDDebug.props: Added.
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDPostBuild.cmd: Added.
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDPreBuild.cmd: Added.
        * WebKit.vcxproj/WebKitGUID/WebKitGUIDRelease.props: Added.

2013-01-31  Christophe Dumez  <dchris@gmail.com>

        [EFL] Disable Web Intents
        https://bugs.webkit.org/show_bug.cgi?id=108457

        Reviewed by Alexey Proskuryakov.

        Remove intents files from EFL CMake project.

        * PlatformEfl.cmake:

2013-01-25  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Rename LLInt projects folder and make appropriate changes to solutions.

        * WebKit.vcxproj/WebKit.sln:

2013-01-23  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Add svn:eol-style to solution file, not eol-style.

        * WebKit.vcxproj/WebKit.sln: Added property svn:eol-style. Removed property eol-style.

2013-01-23  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Added eol-style=native to solution file.

        * WebKit.vcxproj/WebKit.sln: Added property eol-style.

2013-01-23  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Checkin the OpenSource WebKit solution.

        * WebKit.vcxproj/WebKit.sln:

2013-01-23  Tony Chang  <tony@chromium.org>

        Unreviewed, set svn:eol-style to CRLF on Windows .sln files.

        * WebKit.vcxproj/WebKit.sln: Added property svn:eol-style.

2013-01-23  Roger Fong  <roger_fong@apple.com>

        Add the VS2010 WebKit solution folder and solution file.
        The solution of course will not load until the dependent projects are all completed.
        https://bugs.webkit.org/show_bug.cgi?id=106949.

        Reviewed by Brent Fulgham.

        * WebKit.vcxproj: Added.
        * WebKit.vcxproj/WebKit.sln: Added.

2013-01-22  Krzysztof Czech  <k.czech@samsung.com>

        [EFL] Adds Accessibility support to wk1
        https://bugs.webkit.org/show_bug.cgi?id=107440

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake: Adds ATK headers and libraries.

2013-01-17  Poul Sysolyatin  <psytonx@gmail.com>

        32-bit build for Qt5 on Mac OS fails.
        https://bugs.webkit.org/show_bug.cgi?id=107094

        We need to define NS_BUILD_32_LIKE_64 for 32-bit build for Mac OS.
        Fixed 32-bit build detection for support Qt5.

        Reviewed by Benjamin Poulain.

        * WebKit1.pro:

2013-01-14  Dean Jackson  <dino@apple.com>

        [ANGLE] Update ANGLE in WebKit
        https://bugs.webkit.org/show_bug.cgi?id=106274

        Unreviewed attempted build fix.

        The khrplatform.h file is now a public header without a directory
        prefix. Update the include path to look in the right place.

        * PlatformEfl.cmake:

2013-01-14  Max Vujovic  <mvujovic@adobe.com>

        [ANGLE] Update ANGLE in WebKit
        https://bugs.webkit.org/show_bug.cgi?id=106274

        Reviewed by Dean Jackson.

        Update ANGLE to r1641.

        * PlatformEfl.cmake: Add ANGLE/include to the include directories list because ShaderLang.h
        now includes "KHR/khrplatform.h", which is located in ANGLE/include/KHR/khrplatform.h.

2013-01-10  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Add gstreamer 1.0.5 to jhbuild
        https://bugs.webkit.org/show_bug.cgi?id=106178

        Reviewed by Laszlo Gombos.

        Remove GSTREAMER_INTERFACES_LIBRARIES from EFL
        CMake configuration.

        * PlatformEfl.cmake:

2013-01-07  Ryosuke Niwa  <rniwa@webkit.org>

        Sorted the xcodeproj file.

        * WebKit.xcodeproj/project.pbxproj:

2012-12-20  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Build break with latest EFL libraries.
        https://bugs.webkit.org/show_bug.cgi?id=104827

        Reviewed by Laszlo Gombos.

        * PlatformEfl.cmake: Includes eo EFL library.

2012-12-18  Joseph Pecoraro  <pecoraro@apple.com>

        [Mac] Add Build Phase to Check Headers for Inappropriate Macros (Platform.h macros)
        https://bugs.webkit.org/show_bug.cgi?id=104279

        Reviewed by David Kilzer.

        Add a build phase to check the public WebKit headers for
        inappropriate macros. Also set the executable as an input
        path on the other check-* build phases.

        * WebKit.xcodeproj/project.pbxproj:

2012-12-12  Mark Lam  <mark.lam@apple.com>

        Encapsulate externally used webdatabase APIs in DatabaseManager.
        https://bugs.webkit.org/show_bug.cgi?id=104741.

        Reviewed by Sam Weinig.

        Use DatabaseManager instead of accessing DatabaseTracker, AbstractDatabase,
        and DatabaseContext directly. This is to prepare for upcoming webkit2
        refactoring.

        * WebKit.xcodeproj/project.pbxproj:

2012-12-05  Halton Huo  <halton.huo@intel.com>

        [CMake] Unify coding style for CMake files
        https://bugs.webkit.org/show_bug.cgi?id=103605

        Reviewed by Laszlo Gombos.

        Update cmake files(.cmake, CMakeLists.txt) with following style rules:
        1. Indentation
        1.1 Use spaces, not tabs.
        1.2 Four spaces as indent.
        2. Spacing
        2.1 Place one space between control statements and their parentheses.
            For eg, if (), else (), elseif (), endif (), foreach (),
            endforeach (), while (), endwhile (), break ().
        2.2 Do not place spaces between function and macro statements and
            their parentheses. For eg, macro(), endmacro(), function(),
            endfunction().
        2.3 Do not place spaces between a command or function or macro and its
            parentheses, or between a parenthesis and its content. For eg,
            message("testing") not message( "testing") or message ("testing" )
        2.4 No space at line ending.
        3. Lowercase when call commands macros and functions. For eg,
           add_executable() not ADD_EXECUTABLE(), set() not SET().

        * CMakeLists.txt:
        * PlatformBlackBerry.cmake:
        * PlatformEfl.cmake:
        * PlatformWinCE.cmake:

2012-12-03  Pierre Rossi  <pierre.rossi@digia.com>

        [Qt] another stab at fixing the windows build 

        It seems the QT_BUILD_{TARGET}_LIB are not set as they should by qt_module.prf.
        Define them by hand to be on the safe side.

        * WebKit1.pro:

2012-11-30  Simon Hausmann  <simon.hausmann@digia.com>, Pierre Rossi  <pierre.rossi@digia.com>

        [Qt] Separate Qt WebKit into Qt WebKit and Qt WebKit Widgets
        https://bugs.webkit.org/show_bug.cgi?id=99314

        Reviewed by Tor Arne Vestbø.

        This big change separates QtWebKit into QtWebKit and QtWebKitWidgets as
        shared libraries.

        It's a big refactoring that mostly involves moving WebCore dependent
        code into QtWebKit and accessing it through exported QWebFrameAdapter
        and QWebPageAdapter classes.

        * WebKit1.pro:
        * WebKitWidgets.pri: Removed.
        * WebKitWidgets.pro: Removed.

2012-11-22  Jeff Rogers  <jrogers@rim.com>

        [BlackBerry] Update Web Notifications Implementation
        https://bugs.webkit.org/show_bug.cgi?id=102621

        Reviewed by George Staikos.

        Reviewed internally by George Staikos and Joe Mason.
        Internal PR 172120
        Add new Notification files and remove obsolete ones.

        * PlatformBlackBerry.cmake:

2012-11-22  Simon Hausmann  <simon.hausmann@digia.com>, Pierre Rossi <pierre.rossi@digia.com>

        [Qt] Separate QWidget dependant code into separate WebKitWidgets static library
        https://bugs.webkit.org/show_bug.cgi?id=102800

        Reviewed by Tor Arne Vestbø.

        This patch separates code that needs to use QWidget related APIs in
        WebKit/qt/WebCoreSupport and Api from code that doesn't. This means for
        example FrameLoaderClientQt.cpp remains in the WebKit1 static library,
        while qwebpage.cpp and qwebframe.cpp become part of the WebKitWidgets
        static library. WebKit1 is compiled without QT += widgets and therefore
        any widget related dependency has been moved "up" and out of WebKit1 into
        the WebKitWidgets library.

        Between the code in WebKit.a and WebKitWidgets.a new adapters and
        interfaces have been introduced, such as QWebPageAdapter and
        QWebFrameAdapter. QWebPageAdapter, when used from WebKit1, is a way to
        call out into the API layer, implemented by QWebPage (QWebPagePrivate).
        The other way around if QWebPage wants to access WebCore or
        WebCoreSupport related functionality, it will go through
        QWebPageAdapater (as base class). The separation in the direction up
        into the API layer is complete with this patch, no code in WebKit1
        depends on QtWidgets. The separation the other way around, code in the
        API layer not using any WebCore types, is not complete yet.

        Some classes such as QWebSettings, QWebElement or
        DumpRenderTreeSupportQt remain in WebKit1. While they are API layer,
        they do not depend on widget related Qt APIs and they make much more
        use of WebCore internal APIs and therefore are easier to keep in
        WebKit1.

        In the future we plan to place a real shared library boundary between
        WebKit1 and WebKitWidgets, by keeping the WebKit1 static library as
        part of the QtWebKit shared library and by turning the WebKitWidgets
        static library into a shared one.

        * WebKit1.pri:
        * WebKit1.pro:
        * WebKitWidgets.pri: Copied from Source/WebKit/WebKit1.pri.
        * WebKitWidgets.pro: Added.

2012-11-21  Kai Koehne  <kai.koehne@digia.com>

        [Qt] MinGW: Don't add OpenGL library dependencies here
        https://bugs.webkit.org/show_bug.cgi?id=102924

        Reviewed by Simon Hausmann.

        As the comment suggests the dependency is already for WebCore, so add it there instead.

        * WebKit1.pri:

2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>

        [CMake] Consolidate common input files
        https://bugs.webkit.org/show_bug.cgi?id=101632

        Reviewed by Rob Buis.

        Consolidate and sort the list of files.

        * PlatformEfl.cmake:

2012-11-12  Timothy Hatcher  <timothy@apple.com>

        Add a dock button to the top right corner of the Web Inspector window (similar to the full screen button).

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

        Reviewed by Joseph Pecoraro.

        * WebKit.xcodeproj/project.pbxproj: Added Dock.pdf.

2012-11-08  Laszlo Gombos  <l.gombos@samsung.com>

        [EFL] Remove non-variable options from the build system
        https://bugs.webkit.org/show_bug.cgi?id=101506

        Reviewed by Kenneth Rohde Christiansen.

        Remove WTF_USE_FREETYPE and ENABLE_GLIB_SUPPORT cmake variables
        as these are always set to const 1 and not really configurable.

        * PlatformEfl.cmake:

2012-11-07  Andreas Kling  <akling@apple.com>

        Remove build-webkit dependency on Java SDK for Apple Mac WebKit.
        <http://webkit.org/b/101492>

        Reviewed by Anders Carlsson.

        * WebKit.xcodeproj/project.pbxproj: Remove WebJavaPlugIn.h

2012-11-06  Laszlo Gombos  <l.gombos@samsung.com>

        [EFL] Simplify the build system
        https://bugs.webkit.org/show_bug.cgi?id=101392

        Reviewed by Kenneth Rohde Christiansen.

        Use WTF_USE_3D_GRAPHICS to guard the inclusion of surfaces and textmap 
        directories under WebCore/graphics to be consistent with 
        WebCore/PlatformEfl.cmake.

        * PlatformEfl.cmake:

2012-11-04  Halton Huo  <halton.huo@intel.com>

        [EFL] Use _LIBRARIES instead of _LIBRARY
        https://bugs.webkit.org/show_bug.cgi?id=101042

        Reviewed by Gyuyoung Kim.

        In CMake Find files, _LIBRARY is intended for internal use, should
        use _LIBRARIES instead.

        * PlatformEfl.cmake: s/_LIBRARY}/_LIBRARIES}

2012-11-01  Seonae Kim  <sunaeluv.kim@samsung.com>

        [EFL][DRT] Support Geolocation
        https://bugs.webkit.org/show_bug.cgi?id=97427

        Reviewed by Gyuyoung Kim. 

        Add a mock directory to use GeolocationClientMock in DumpRenderTree.

        * PlatformEfl.cmake:

2012-10-31  Otto Derek Cheung  <otcheung@rim.com>

        [BlackBerry] Adding window.external to our port
        https://bugs.webkit.org/show_bug.cgi?id=100868

        Reviewed by Rob Buis.

        Adding ExternalExtension classes to the BB cmake file.

        * PlatformBlackBerry.cmake:

2012-10-31  Michał Pakuła vel Rutka  <m.pakula@samsung.com>

        [EFL][DRT] EventSender requires contextClick implementation
        https://bugs.webkit.org/show_bug.cgi?id=86091

        Reviewed by Gyuyoung Kim.

        Add new unit test file, needed due to ewk API changes.

        * PlatformEfl.cmake:

2012-10-30  Peter Wang  <peter.wang@torchmobile.com.cn>

        [BlackBerry] Clean the code of "JavaScriptDebuggerBlackBerry"
        https://bugs.webkit.org/show_bug.cgi?id=100724

        Reviewed by Rob Buis.

        Remove the code of JavaScriptDebuggerBlackBerry.

        * PlatformBlackBerry.cmake:

2012-10-28  Mark Rowe  <mrowe@apple.com>

        Remove references to unsupported OS and Xcode versions.

        Reviewed by Anders Carlsson.

        * WebKit.xcodeproj/project.pbxproj:

2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r132601.
        http://trac.webkit.org/changeset/132601
        https://bugs.webkit.org/show_bug.cgi?id=100494

        It broke the Qt build (Requested by Ossy on #webkit).

        * PlatformEfl.cmake:

2012-10-26  Xiaobo Wang  <xbwang@torchmobile.com.cn>

        [BlackBerry] Support pixel tests for BlackBerry DRT
        https://bugs.webkit.org/show_bug.cgi?id=100210

        Reviewed by Rob Buis.

        Adds a step to build ImageDiff from Qt for DRT. Most of the works are
        accomplished by Christopher Wells.

        * PlatformBlackBerry.cmake:

2012-10-24  Alexey Proskuryakov  <ap@apple.com>

        Add a strategy for shared workers
        https://bugs.webkit.org/show_bug.cgi?id=100165

        EFL build fix by Christophe Dumez.

        Reviewed by Brady Eidson.

        * CMakeLists.txt: Add WebCore/workers to include paths.

2012-10-24  Otto Derek Cheung  <otcheung@rim.com>

        [BlackBerry] Rename GeolocationControllerClientBlackBerry to GeolocationClientBlackBerry
        https://bugs.webkit.org/show_bug.cgi?id=100250

        Reviewed by Rob Buis.

        Rename GeolocationControllerClientBlackBerry to GeolocationClientBlackBerry
        to prevent confusion.

        PR 230196

        * PlatformBlackBerry.cmake:

2012-10-23  Hyowon Kim  <hw1008.kim@samsung.com>

        [Texmap][EFL] Add AcceleratedCompositingContextEfl to the build system.
        https://bugs.webkit.org/show_bug.cgi?id=88630

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake: Add the AcceleratedCompositingContextEfl.cpp file
        and INCLUDE paths for TEXTURE_MAPPER_GL.

2012-10-18  Kangil Han  <kangil.han@samsung.com>

        [EFL] Add unit test for ewk_frame_source_get.
        https://bugs.webkit.org/show_bug.cgi?id=95984

        Reviewed by Gyuyoung Kim.

        Add test_ewk_frame.cpp for unit test.

        * PlatformEfl.cmake:

2012-10-15  David Kilzer  <ddkilzer@apple.com>

        Move framework and library linking into WebKit.xcconfig
        <http://webkit.org/b/99284>

        Reviewed by Mark Rowe.

        * WebKit.xcodeproj/project.pbxproj: Remove frameworks and
        libraries from Xcode project file.

2012-10-15  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL][WK2] Implement Favicons API
        https://bugs.webkit.org/show_bug.cgi?id=99087

        Reviewed by Kenneth Rohde Christiansen.

        Remove ewk_util.cpp from PlatformEfl.cmake now that its
        code has been moved to WebCore to be reused in WK2.

        * PlatformEfl.cmake:

2012-10-15  Dongwoo Joshua Im  <dw.im@samsung.com>

        [EFL] Set the basepath of the File System API.
        https://bugs.webkit.org/show_bug.cgi?id=98344

        Reviewed by Gyuyoung Kim.

        Set the basepath of the File System API using the internal setter function.

        * PlatformEfl.cmake: Add new include path.

2012-10-15  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Share resources installed for inspector
        https://bugs.webkit.org/show_bug.cgi?id=98991

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake:
        Extracted build scripts which install resources to WebKit/PlatformEfl.cmake.

2012-10-15  George Staikos  <staikos@webkit.org>

        [BlackBerry] Adapt to Platform API changes in string handling
        https://bugs.webkit.org/show_bug.cgi?id=99248

        Reviewed by Yong Li.

        Convert usage of WebString, char* and std::string to BlackBerry::Platform::String.

        * PlatformBlackBerry.cmake:

2012-10-13  Jakob Petsovits  <jpetsovits@rim.com>

        [BlackBerry] Fetch blit rects from a viewport accessor
        https://bugs.webkit.org/show_bug.cgi?id=98581
        RIM PR 173292

        Reviewed by George Staikos.
        Internally reviewed by Arvid Nilsson.

        Add new ViewportAccessor files to the build.
        See Source/WebKit/blackberry/ChangeLog for the
        verbose commit message.

        * PlatformBlackBerry.cmake:

2012-10-12  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r131189.
        http://trac.webkit.org/changeset/131189
        https://bugs.webkit.org/show_bug.cgi?id=99187

        Made inspector http tests crash on WK2. (Requested by rakuco
        on #webkit).

        * PlatformEfl.cmake:

2012-10-12  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Share resources installed for inspector
        https://bugs.webkit.org/show_bug.cgi?id=98991

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake:
        Extracted build scripts which install resources to WebKit/PlatformEfl.cmake.

2012-10-11  Chris Guan  <chris.guan@torchmobile.com.cn>

        [Blackberry] makes NavigatorContentUtils work
        https://bugs.webkit.org/show_bug.cgi?id=99022

        Reviewed by Rob Buis.

        Because r126735 renamed RegisterProtocolHandler API to NavigatorContentUtils, So we
        need add Modules/navigatorcontentutils into WebKit_INCLUDE_DIRECTORIES.

        * PlatformBlackBerry.cmake:

2012-10-10  Konrad Piascik  <kpiascik@rim.com>

        [BlackBerry] Install inspector files into staging directory.
        https://bugs.webkit.org/show_bug.cgi?id=98930

        Reviewed by Rob Buis.

        Internally reviewed by Ming Xie.
        Install the web inspector resources into the staging directory to make it easier to flash to device.

        * PlatformBlackBerry.cmake:

2012-10-09  Simon Hausmann  <simon.hausmann@digia.com>

        [Qt] Fix build with QtMultimedia

        Reviewed by Tor Arne Vestbø.

        * WebKit1.pri: WK1 needs QtMultimediaWidgets for QVideoWidget and friends.

2012-10-08  Simon Hausmann  <simon.hausmann@digia.com>

        [Qt] Make RenderThemeQStyle/ScrollbarThemeQStyle compile without QStyle/QtWidgets
        https://bugs.webkit.org/show_bug.cgi?id=98268

        Reviewed by Tor Arne Vestbø.

        * WebKit1.pro: Add new files to the build.

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

        [BlackBerry] Sync up CMake files
        https://bugs.webkit.org/show_bug.cgi?id=98442

        Reviewed by Gyuyoung Kim.

        Amongst others use InspectorOverlayBlackBerry.

        * PlatformBlackBerry.cmake:

2012-10-05  Simon Hausmann  <simon.hausmann@digia.com>

        Unreviewed, rolling out r130495.
        http://trac.webkit.org/changeset/130495
        https://bugs.webkit.org/show_bug.cgi?id=98268

        Made WK2 tests crash....

        * WebKit1.pro:

2012-10-05  Simon Hausmann  <simon.hausmann@digia.com>

        [Qt] Make RenderThemeQStyle/ScrollbarThemeQStyle compile without QStyle/QtWidgets
        https://bugs.webkit.org/show_bug.cgi?id=98268

        Reviewed by Tor Arne Vestbø.

        * WebKit1.pro: Add new files to the build.

2012-10-04  Konrad Piascik  <kpiascik@rim.com>

        [BlackBerry] Update how we compile inspector front-end javascript.
        https://bugs.webkit.org/show_bug.cgi?id=98413

        Reviewed by Rob Buis.

        No longer cat all JavaScript together, instead use the lazy init and
        only append our custom changes script to the end of inspectorBB.html.

        * PlatformBlackBerry.cmake:

2012-10-03  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Default.edj should be generated although ENABLE_WEBKIT disabled.
        https://bugs.webkit.org/show_bug.cgi?id=97753

        Reviewed by Laszlo Gombos.

        default.edj is used in both webkit/efl and webkit2/efl.
        However, it has been generated only when ENABLE_WEBKIT is enabled.

        This patch separates the script which generates default.edj
        from source/webkit/platformefl.cmake.

        * PlatformEfl.cmake: Extracted codes which is related to default.edj.

2012-10-03  Otto Derek Cheung  <otcheung@rim.com>

        [BlackBerry] Implementing the NetworkInfo API for BB port
        https://bugs.webkit.org/show_bug.cgi?id=98273

        Reviewed by Rob Buis.

        Adding new classes to support NetworkInfo API in the
        BlackBerry Port.

        * PlatformBlackBerry.cmake:

2012-10-02  Krzysztof Czech  <k.czech@samsung.com>

        [EFL] Add file EWKTestEnvironment.cpp to build system.
        https://bugs.webkit.org/show_bug.cgi?id=94925

        Reviewed by Gyuyoung Kim.

        Change is related to modifications in wk1 unit tests.

        * PlatformEfl.cmake:

2012-09-27  Anders Carlsson  <andersca@apple.com>

        Get rid of more unused WK1 plug-in code
        https://bugs.webkit.org/show_bug.cgi?id=97835

        Reviewed by Mark Rowe.

        Remove WebNetscapeDeprecatedFunctions.c and WebNetscapeDeprecatedFunctions.h from the Xcode project.

        * WebKit.xcodeproj/project.pbxproj:

2012-09-27  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL][CMAKE] Default theme files are outdated in PlatformEfl.cmake
        https://bugs.webkit.org/show_bug.cgi?id=97769

        Reviewed by Kenneth Rohde Christiansen.

        Update Default theme files in PlatformEfl.cmake so that
        changes to those files are properly picked up by CMake
        when building incrementally.

        * PlatformEfl.cmake:

2012-09-24  Arvid Nilsson  <anilsson@rim.com>

        [BlackBerry] Add cookie database API
        https://bugs.webkit.org/show_bug.cgi?id=97102

        Reviewed by Antonio Gomes.

        Add cookie database file to build system.

        Reviewed internally by Otto D. Cheung.

        * PlatformBlackBerry.cmake:

2012-09-21  Arvid Nilsson  <anilsson@rim.com>

        [BlackBerry] Remove obsolete compositing surface code
        https://bugs.webkit.org/show_bug.cgi?id=97314

        Reviewed by Antonio Gomes.

        Remove compositing surface code from build system.

        PR 208038.

        * PlatformBlackBerry.cmake:

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

        [Qt] Make force_static_libs_as_shared work on Mac OS

        We had to move a few LIBS += around that were in the wrong place,
        and not caught when everything was just linked into the final
        QtWebKit library.

        Reviewed by Simon Hausmann.

        * WebKit1.pri: Move multimedia-stuff to WebCore, to share with WK2

2012-09-11  Raphael Kubo da Costa  <rakuco@webkit.org>

        [EFL] Rewrite the EFL-related Find modules
        https://bugs.webkit.org/show_bug.cgi?id=95237

        Reviewed by Kenneth Rohde Christiansen.

        * PlatformEfl.cmake: Stop setting the LINK_FLAGS property and add
        libraries and include directories for each Enlightenment
        Foundation Library used by the port.

2012-09-11  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Add a configure step to the Qt build system

        This allows building the Qt port using just 'qmake WebKit.pro'. Using
        the build-webkit script is still supported, and will add slightly more
        logic to the build, such as detecting the need for clean or incremental
        builds.

        Internally, the build system now uses a new variable, WEBKIT_CONFIG, for
        all things related to configuring the build, such as use/have/enable flags,
        and these are translated to defines in default_post. Project files should
        no longer check contains(DEFINES,...) to detect features, but use the new
        enable?(), use?(), and have?() functions. The no_webkit1 and no_webkit2
        options have been translated into WEBKIT_CONFIG options as well, and can
        be checked using build?().

        Reviewed by Simon Hausmann.

        * WebKit1.pri:
        * WebKit1.pro:

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

        [BlackBerry]  Implement a color picker
        https://bugs.webkit.org/show_bug.cgi?id=96001

        Reviewed by Rob Buis.

        Add color picker files into building system.

        * PlatformBlackBerry.cmake:

2012-09-06  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Fix build with ANGLE on platforms that provide EGL/GLESv2
        https://bugs.webkit.org/show_bug.cgi?id=95965

        Reviewed by Tor Arne Vestbø.

        Depend on ANGLE if necessary, due to the use WebCore types that pull in ANGLE
        headers (GraphicsContext3D.h in particular).

        * WebKit1.pro:

2012-09-04  Michał Pakuła vel Rutka  <m.pakula@samsung.com>

        [EFL] Context menu restore.
        https://bugs.webkit.org/show_bug.cgi?id=74179

        Reviewed by Gyuyoung Kim.

        Adds context menu support for EFL port using non-CROSS_PLATFORM_CONTEXT_MENUS
        approach, the same as used in WebKit2.

        * PlatformEfl.cmake: Added ContextMenuClientEfl.cpp file to sources list.

2012-08-29  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Move several files to remove webkit1 dependency from WebCore.
        https://bugs.webkit.org/show_bug.cgi?id=95264

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake: Added files which is moved.

2012-08-28  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        [EFL] Rename knob images to thumb on the default theme
        https://bugs.webkit.org/show_bug.cgi?id=95186

        Reviewed by Kenneth Rohde Christiansen.

        Updated buildsystem after renaming theme images.

        * PlatformEfl.cmake:

2012-08-27  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        Rename RegisterProtocolHandler API to NavigatorContentUtils
        https://bugs.webkit.org/show_bug.cgi?id=94920

        Reviewed by Adam Barth.

        Modified PlatformEfl.cmake so that it includes the renamed files.

        * PlatformEfl.cmake:

2012-08-20  Dominik Röttsches  <dominik.rottsches@intel.com>

        [EFL] Get rid of pango backend support once harfbuzz-ng is working
        https://bugs.webkit.org/show_bug.cgi?id=92102

        Reviewed by Kenneth Rohde Christiansen.

        Removing pango-specific includes and libraries.

        * PlatformEfl.cmake: Pango sections removed.

2012-08-17  Rob Buis  <rbuis@rim.com>

        [BlackBerry] Remove some shared libraries from linking
        https://bugs.webkit.org/show_bug.cgi?id=94253

        Reviewed by Yong Li.

        Remove some shared libraries.

        * PlatformBlackBerry.cmake:

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

        Update manual tests and comments to refer to TestRunner instead of LayoutTestController
        https://bugs.webkit.org/show_bug.cgi?id=94168

        Reviewed by Kent Tamura.

        * PlatformBlackBerry.cmake:

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

        [EFL] undefined reference to 'g_type_init' with gold linker
        https://bugs.webkit.org/show_bug.cgi?id=93935

        Unreviewed build fix. Link against glib-gobject to
        fix linking error with gold linker.

        * PlatformEfl.cmake:

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

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

        Reviewed by Rob Buis.

        * PlatformEfl.cmake: Use LIBSOUP_FOO instead of LIBSOUP24_FOO.

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

        [CMake] Remove glib-related Find modules and write single new one instead.
        https://bugs.webkit.org/show_bug.cgi?id=93786

        Reviewed by Rob Buis.

        * PlatformEfl.cmake: Use GLIB_* instead of Glib_*.

2012-08-12  Loïc Yhuel  <loic.yhuel@softathome.com>

        [Qt] Make it possible to build without QtTest/QtPrintSupport
        https://bugs.webkit.org/show_bug.cgi?id=93492

        Reviewed by Tor Arne Vestbø.

        * WebKit1.pri: Optional printsupport

2012-08-10  Joshua Netterfield  <jnetterfield@rim.com>

        [WebGL] Add support for EXT_robustness
        https://bugs.webkit.org/show_bug.cgi?id=93379

        Reviewed by George Staikos.

        RIM PR# 147510
        Internally reviewed by Arvid Nilsson.

        * CMakeLists.txt: Build system adaptation.

2012-08-10  Benjamin C Meyer  <bmeyer@rim.com>

        Introduce JavaScriptVariant object.
        https://bugs.webkit.org/show_bug.cgi?id=93644

        The JavaScriptVariant can be used for functions that return results from
        JavaScript such as executeJavaScript or functions that take arguments
        to pass a variable to JavaScript and they want to make sure the type
        is correct.

        Convert executeJavaScriptFunction() to use this data type as the
        example, other functions will be converted in the future.

        PR 14929

        Internally reviewed by Joe Mason
        Reviewed by Adam Treat

        * PlatformBlackBerry.cmake:

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

        [BlackBerry] Fix wrong include path for notifications.
        https://bugs.webkit.org/show_bug.cgi?id=93714

        Reviewed by Rob Buis.

        * PlatformBlackBerry.cmake: Change path from notifications to Modules/notifications.

2012-08-08  Antonio Gomes  <agomes@rim.com>

        [BlackBerry] Tie up the scrolling machinery to the graphics tree when applicable for in-region scroll
        https://bugs.webkit.org/show_bug.cgi?id=93482

        Reviewed by Rob Buis.

        * PlatformBlackBerry.cmake: Build system adaptation.

2012-08-07  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Remove PlatformTouchEventEfl and PlatformTouchPointEfl
        https://bugs.webkit.org/show_bug.cgi?id=93270

        Reviewed by Eric Seidel.

        * PlatformEfl.cmake: Added ewk_touch_event.cpp

2012-08-07  Konrad Piascik  <kpiascik@rim.com>

        [BlackBerry] InspectorOverlay class duplicated in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=93124

        Reviewed by Rob Buis.

        Updated InspectorOverlay build path.

        * PlatformBlackBerry.cmake:

2012-08-07  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Qt] Make it possible to build without QtQuick

        Reviewed by Simon Hausmann.

        * WebKit1.pri:

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

        [Qt] Remove Qt 4 specific code paths
        https://bugs.webkit.org/show_bug.cgi?id=88161

        Reviewed by Kenneth Rohde Christiansen.

        * WebKit.pri:
        * WebKit1.pri:
        * WebKit1.pro:

2012-08-07  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        CUSTOM_SCHEME_HANDLER flag should depend on REGISTER_PROTOCOL_HANDLER
        https://bugs.webkit.org/show_bug.cgi?id=93081

        Reviewed by Adam Barth.

        Modified PlatformEfl.cmake so that CUSTOM_SCHEME_HANDLER flag cannot act without REGISTER_PROTOCOL_HANDLER being set.

        * PlatformEfl.cmake:

2012-08-01  Antonio Gomes  <agomes@rim.com>

        [BlackBerry] Implement InRegionScroller class as a in-region scroll controller
        https://bugs.webkit.org/show_bug.cgi?id=92889
        PR #186587

        Reviewed by Yong Li.

        Internally reviewed by Arvid Nilsson.

        * PlatformBlackBerry.cmake: Added InRegionScroller.cpp|h to the build system.

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

        Unreviewed Qt/Mac build fix: Use libWebKitSystemInterfaceMountainLion.a
        on Mountain Lion.

        * WebKit1.pri:

2012-07-27  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        [EFL] WebKit API unit tests needs a timeout
        https://bugs.webkit.org/show_bug.cgi?id=92496

        Reviewed by Antonio Gomes.

        Added the same timeout value that we have for WebKit2.

        * PlatformEfl.cmake:

2012-07-27  Dominik Röttsches  <dominik.rottsches@intel.com>

        [Cairo] Add complex font drawing using HarfbuzzNG
        https://bugs.webkit.org/show_bug.cgi?id=91864

        Reviewed by Simon Hausmann and Martin Robinson.

        Adding includes for harfbuzz folders.

        * CMakeLists.txt:

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

        [EFL][WK2] Implement Network Information provider
        https://bugs.webkit.org/show_bug.cgi?id=92343

        Reviewed by Kenneth Rohde Christiansen.

        WebKit EFL not longer needs to link against EEZE
        library since the Network Information provider
        was moved to WebCore.

        * CMakeLists.txt:
        * PlatformEfl.cmake:

2012-07-26  Zoltan Nyul  <zoltan.nyul@intel.com>

        [EFL] EFL port should use XDG paths
        https://bugs.webkit.org/show_bug.cgi?id=91719

        Reviewed by Kenneth Rohde Christiansen.

        Add efreet library to get the xdg paths.

        * PlatformEfl.cmake:

2012-07-25  Kihong Kwon  <kihong.kwon@samsung.com>

        [EFL] Add File Chooser API
        https://bugs.webkit.org/show_bug.cgi?id=91957

        Reviewed by Hajime Morita.

        Add ewk_file_chooser source and header.

        * PlatformEfl.cmake:

2012-07-22  Kent Tamura  <tkent@chromium.org>

        Rename ENABLE_METER_TAG and ENABLE_PROGRESS_TAG to ENABLE_METER_ELEMENT and ENABLE_PROGRESS_ELEMENT respectively
        https://bugs.webkit.org/show_bug.cgi?id=91941

        Reviewed by Kentaro Hara.

        A flag name for an elmement should be ENABLE_*_ELEMENT.

        * PlatformEfl.cmake:

2012-07-20  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Proxy configuration should honor the no_proxy environment variable
        https://bugs.webkit.org/show_bug.cgi?id=91747

        Reviewed by Kenneth Rohde Christiansen.

        Add WebCore/platform/network/soup to INCLUDE paths.

        * PlatformEfl.cmake:

2012-07-18  Yong Li  <yoli@rim.com>

        [BlackBerry] Move about: URL handling out of WebCore
        https://bugs.webkit.org/show_bug.cgi?id=91541

        Reviewed by Rob Buis.

        AboutData.cpp is moved from WebCoreSupport to WebKitSupport.

        * PlatformBlackBerry.cmake:

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

        [CMake] Make gtest a shared library
        https://bugs.webkit.org/show_bug.cgi?id=90973

        Reviewed by Daniel Bates.

        No need to link with gtest dependencies now since it is a shared library.

        * PlatformEfl.cmake:

2012-07-17  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Move codes related to theme setting from Widget to RenderTheme
        https://bugs.webkit.org/show_bug.cgi?id=89842

        Reviewed by Kenneth Rohde Christiansen.

        * CMakeLists.txt: Added html/shadow to WebKit_INCLUDE_DIRECTORIES.

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

        Add RegisterProtocolHandlerClient to the Modules/protocolhandler
        https://bugs.webkit.org/show_bug.cgi?id=90940

        Reviewed by Hajime Morita.

        As a step to let protocol handler be moved to the modules, RegisterProtocolHandlerClient needs
        to be added to the Modules/protocolhandler. Because ChromeClient has some virtual functions for
        protocol handlers, virtual functions should be moved to RegisterProtocolHandlerClient.

        * PlatformEfl.cmake: Add RegisterProtocolHandlerEfl files and include path.

2012-07-16  Joshua Netterfield  <jnetterfield@rim.com>

        [BlackBerry] Upstream WebGL Code
        https://bugs.webkit.org/show_bug.cgi?id=91143

        Reviewed by Rob Buis.

        This patch includes BlackBerry-specific fixes for anti-aliasing, logging, and shader compilation.

        * PlatformBlackBerry.cmake: Define WTF_USE_OPENGL_ES_2 on WebGL-enabled builds.

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

        Add accessible for QWebView.
        https://bugs.webkit.org/show_bug.cgi?id=91073

        Reviewed by Simon Hausmann.

        Add classes to enable accessibility on the widget level.

        * WebKit.pri:
        * WebKit1.pro:

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

        [EFL] Move files guarded by #ifdef to existing file list.
        https://bugs.webkit.org/show_bug.cgi?id=91336

        Reviewed by Ryosuke Niwa.

        Some EFL files are already guared by #ifdef. So, cmake files doesn't need to guard
        them again. In addition, some files are missing #ifdef guard its header files. 

        * PlatformEfl.cmake:

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

        [CMake] Proper handling of ENABLE_API_TESTS build option
        https://bugs.webkit.org/show_bug.cgi?id=91221

        Reviewed by Rob Buis.

        Build unit tests only if ENABLE_API_TESTS is set.

        * PlatformEfl.cmake:

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

        Typo in path in generate-webkitversion.pl
        https://bugs.webkit.org/show_bug.cgi?id=90883

        Reviewed by Mark Rowe.

        Correct default path to version config file. In practice it wasn't a problem because only the Qt
        build system seems to use the script right now and passes the path to the version file as a
        command line parameter.

        * scripts/generate-webkitversion.pl:

2012-07-11  Crystal Zhang  <haizhang@rim.com>

        [BlackBerry] Implement Date/Time picker
        https://bugs.webkit.org/show_bug.cgi?id=90911

        Reviewed by Rob Buis.

        Add files into make file.

        * PlatformBlackBerry.cmake:

2012-07-09  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Battery status code needs refactoring to be reused in WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=90760

        Reviewed by Hajime Morita.

        Add BatteryClientEfl to PlatformEfl.cmake.

        * PlatformEfl.cmake:

2012-07-08  Kihong Kwon  <kihong.kwon@samsung.com>

        [EFL] Change notifications directory path of WebKit_INCLUDE_DIRECTORIES in the PlatformEfl.cmake
        https://bugs.webkit.org/show_bug.cgi?id=90650

        Reviewed by Laszlo Gombos.

        Change directory path for including notifications of WebCore
        from WebCore/notifications to WebCore/Modules/notifications

        * PlatformEfl.cmake:

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

        [EFL][CMake] Remove non-existent include directory
        https://bugs.webkit.org/show_bug.cgi?id=90605

        Reviewed by Kentaro Hara.

        * PlatformEfl.cmake:

2012-07-06  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        [EFL][CMake] Move gtest sources to an upper level
        https://bugs.webkit.org/show_bug.cgi?id=90602

        Reviewed by Chang Shu.

        Removed gtest since it is now built as a separated component.
        This will allow us to share it with WebKit 2 API tests.

        * PlatformEfl.cmake:

2012-07-06  Seokju Kwon  <seokju.kwon@samsung.com>

        [EFL] Add Web Inspector to WebKit-EFL
        https://bugs.webkit.org/show_bug.cgi?id=83865

        Reviewed by Pavel Feldman.

        EFL port implementation for Web Inspector.
        Prepare Web Inspector resources.

        * PlatformEfl.cmake:

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

        [EFL] Change class name from NotificationClientEfl to NotificationPresenterClientEfl.
        https://bugs.webkit.org/show_bug.cgi?id=90542

        Reviewed by Kenneth Rohde Christiansen.

        NotificationClientEfl.cpp is changed to NotificationPresenterClientEfl.cpp
        to be in line with other ports(qt, chromium, gtk).

        * PlatformEfl.cmake:

2012-07-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Remove a few un-needed load(features) after r121777

        The features are computed by configure.pro and cached in .qmake.cache.

        Reviewed by Jocelyn Turcotte.

        * WebKit1.pro:

2012-07-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Fix broken OR-operator in project file

        Qmake expects |, not ||. The result was that the block was entered, even
        if none of the two defines were set to 1.

        Reviewed by Jocelyn Turcotte.

        * WebKit1.pri:

2012-07-03  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Move BatteryClientEfl from WebKit to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=90063

        Reviewed by Kenneth Rohde Christiansen.

        Move BatteryClientEfl class from WebKit to WebCore
        so that it can be reused in WebKit2.

        * PlatformEfl.cmake:

2012-07-02  Xiaobo Wang  <xbwang@torchmobile.com.cn>

        [BlackBerry] Use PUBLIC_BUILD to enable/disable DRT
        https://bugs.webkit.org/show_bug.cgi?id=90271

        Reviewed by George Staikos.

        RIM PR #154707

        Currently DRT code will be compiled only if ENABLE_DRT is set, and it's not
        defined by default.
        We should enable DRT by default unless PUBLIC_BUILD is set. In this way we don't
        need to rebuild webkit before running DRT.

        * PlatformBlackBerry.cmake:

2012-07-02  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        [EFL][CMake] Integrate API unit tests with CTest
        https://bugs.webkit.org/show_bug.cgi?id=87251

        Reviewed by Daniel Bates.

        Add every test to the test runner build target.

        * PlatformEfl.cmake:

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

        [EFL] Rename NotificationPresenterEfl with NotificationClientEfl
        https://bugs.webkit.org/show_bug.cgi?id=90370

        Reviewed by Csaba Osztrogonác.

        Bug 80488 renamed NotificationPresenter with NotificationClient. So, EFL port needs to adjust
        it as well.

        * PlatformEfl.cmake:

2012-06-29  Krzysztof Czech  <k.czech@samsung.com>

        [EFL] Add support for Unit Tests, based on the gtest library.
        https://bugs.webkit.org/show_bug.cgi?id=68509

        Reviewed by Chang Shu.

        Add configuration for building gtest library, testing framework and unit tests.

        * PlatformEfl.cmake:

2012-06-27  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r121398.
        http://trac.webkit.org/changeset/121398
        https://bugs.webkit.org/show_bug.cgi?id=90136

        broke efl build (Requested by ryuan on #webkit).

        * PlatformEfl.cmake:

2012-06-27  Krzysztof Czech  <k.czech@samsung.com>

        [EFL] Add support for Unit Tests, based on the gtest library.
        https://bugs.webkit.org/show_bug.cgi?id=68509

        Reviewed by Chang Shu.

        Add configuration for building gtest library, testing framework and unit tests.

        * PlatformEfl.cmake:

2012-06-26  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt][Win] Symbols are not exported in QtWebKit5.dll
        https://bugs.webkit.org/show_bug.cgi?id=88873

        Reviewed by Tor Arne Vestbø.

        * api.pri: Remove MAKEDLL setting done now in win32/default_post.prf.

2012-06-25  Simon Hausmann  <simon.hausmann@nokia.com>

        Unreviewed build fix: Don't do QT += widgets with Qt 4

        * WebKit1.pro: This is already done in WebKit1.pri.

2012-06-25  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Make it possible to build WebKit without QtWidgets
        https://bugs.webkit.org/show_bug.cgi?id=78109

        Reviewed by Tor Arne Vestbø.

        Moved WebKit1 sources into a separate static library. Only WK1
        depends on QtWidgets.

        * WebKit1.pri: Added.
        * WebKit1.pro: Added.

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

        [EFL] Implement Network Information API
        https://bugs.webkit.org/show_bug.cgi?id=87067

        Reviewed by Kenneth Rohde Christiansen.

        * PlatformEfl.cmake: Add dependency of eeze library.

2012-06-22  Joshua Netterfield  <jnetterfield@rim.com>

        [BlackBerry] Sanitize GLSL code using ANGLE.

        BlackBerry port does not sanitize GLSL code with ANGLE
        https://bugs.webkit.org/show_bug.cgi?id=89583

        Reviewed by Rob Buis.

        * PlatformBlackBerry.cmake: Add ANGLE sources to BlackBerry builds.

2012-06-19  Csaba Osztrogonác  <ossy@webkit.org>

        [CMake] Unreviewed speculative buildfix after r120786.

        * CMakeLists.txt:

2012-06-13  Robin Cao  <robin.cao@torchmobile.com.cn>

        [BlackBerry] Enable MEDIA_STREAM by default
        https://bugs.webkit.org/show_bug.cgi?id=88849

        Reviewed by Antonio Gomes.

        * PlatformBlackBerry.cmake:

2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Enable SHADOW_DOM flag
        https://bugs.webkit.org/show_bug.cgi?id=87732

        Reviewed by Kentaro Hara.

        Add WebCore/bindings/generic to include directories so
        that we can include RuntimeEnabledFeatures.h.

        * CMakeLists.txt:

2012-06-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Don't use WebKit HAVE() macro in public Qt headers

        Reviewed by Kenneth Rohde Christiansen.

        * WebKit.pri:

2012-06-04  Tomasz Morawski  <t.morawski@samsung.com>

        [EFL] Refactor ewk_view_context_paint code.
        https://bugs.webkit.org/show_bug.cgi?id=85588

        Reviewed by Hajime Morita.

        Added new ewk_paint_context.cpp file to source list.

        * PlatformEfl.cmake:

2012-06-01  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] EFL's LayoutTestController needs to implement deliverWebIntent
        https://bugs.webkit.org/show_bug.cgi?id=86865

        Reviewed by Adam Barth.

        Add "${WEBCORE_DIR}/dom/default" to include directories in
        CMakeLists.txt.

        * CMakeLists.txt:

2012-06-01  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>

        [EFL] Implement PlatformStrategies
        https://bugs.webkit.org/show_bug.cgi?id=86946

        Reviewed by Carlos Garcia Campos.

        * PlatformEfl.cmake: Add PlatformStrategiesEfl file to the build
        system.

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

        [CMAKE][EFL] Remove unneeded include path
        https://bugs.webkit.org/show_bug.cgi?id=87927 

        Reviewed by Kenneth Rohde Christiansen.

        Though *wtf* directory was moved to Source/WTF, PlatformEfl.cmake is still including the previous
        path. In addition, files on EFL port are using <wtf/gobject/XXX> directly in #include line.
        So, EFL port doesn't need to include ${JAVASCRIPTCORE_DIR}/wtf/gobject path anymore.

        * PlatformEfl.cmake: Remove '${JAVASCRIPTCORE_DIR}/wtf/gobject' path from include path list.

2012-05-30  Konrad Piascik  <kpiascik@rim.com>

        [BlackBerry] Add an Accelerated Compositing layer for Web Inspector DOM highlight.
        https://bugs.webkit.org/show_bug.cgi?id=81001

        Reviewed by Antonio Gomes
        
        Added new InspectorOverlay class

        * PlatformBlackBerry.cmake:

2012-05-29  Arvid Nilsson  <anilsson@rim.com>

        [BlackBerry] WebKit-side implementation of SelectionOverlay
        https://bugs.webkit.org/show_bug.cgi?id=87605

        Reviewed by Rob Buis.

        Add SelectionOverlay to the build system.

        PR #160263

        * PlatformBlackBerry.cmake:

2012-05-29  Arvid Nilsson  <anilsson@rim.com>

        [BlackBerry] WebOverlay API
        https://bugs.webkit.org/show_bug.cgi?id=87603

        Reviewed by Rob Buis.

        Add WebOverlay related files to the build system.

        PR #156812

        * PlatformBlackBerry.cmake:

2012-05-28  Arvid Nilsson  <anilsson@rim.com>

        [BlackBerry] Add a default tap highlight
        https://bugs.webkit.org/show_bug.cgi?id=87569

        Reviewed by Rob Buis.

        Add DefaultTapHighlight to the build system

        Reviewed internally by Mike Lattanzio and Mike Fenton.

        PR #154329

        * PlatformBlackBerry.cmake:

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

        [BlackBerry] Implement select popup and remove old hook to air popup
        https://bugs.webkit.org/show_bug.cgi?id=87419

        Reviewed by Rob Buis.

        Add new files to make file.

        * PlatformBlackBerry.cmake:

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

        [EFL] Unreviewed, unbreak `make install' after r117046.

        * PlatformEfl.cmake: Remove ewk_auth_soup.h from the list of
        installed headers, since it has been made private and renamed.

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

        [EFL] Implements the registerProtocolHandler method and option.
        https://bugs.webkit.org/show_bug.cgi?id=73638

        Reviewed by Andreas Kling.

        The registerProtocolHandler() method allows Web sites to register themselves
        as possible handlers for particular schemes.

        http://dev.w3.org/html5/spec/Overview.html#dom-navigator-registerprotocolhandler

        * PlatformEfl.cmake: Adds the new file into the source list.

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

        [EFL] Minor style fixes in web intents code are needed
        https://bugs.webkit.org/show_bug.cgi?id=86986

        Reviewed by Adam Barth.

        Fix minor ordering issues in CMake files.

        * CMakeLists.txt:
        * PlatformEfl.cmake:

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

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

        Reviewed by Eric Seidel.

        Add new ewk_intent.* and ewk_intent_request.* files to CMake.

        * CMakeLists.txt:
        * PlatformEfl.cmake:

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

        [EFL] Add API for Web Database handling
        https://bugs.webkit.org/show_bug.cgi?id=85178

        Reviewed by Antonio Gomes.

        Added the new Web Database API to the buildsystem.

        * PlatformEfl.cmake:

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

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

        Unreviewed build fix.

        * PlatformEfl.cmake:

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

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

        Reviewed by Chang Shu.

        Add e_ukit library and include directory to get battery status of device.

        * PlatformEfl.cmake:

2012-05-15  Tomasz Morawski  <t.morawski@samsung.com>

        [EFL] Split ewk_private.h file to multiple private files.
        https://bugs.webkit.org/show_bug.cgi?id=84572

        Reviewed by Antonio Gomes.

        * PlatformEfl.cmake: Removed ewk_logging.h file from EWebKit_HEADERS.

2012-05-10  Sam D  <dsam2912@gmail.com>

        Web Inspector: rename InspectorBackendStub.js to InspectorBackendCommands.js
        https://bugs.webkit.org/show_bug.cgi?id=72306

        Changed name for InspectorBackendStub.js to
        InspectorBackendCommands.js

        Reviewed by Yury Semikhatsky.

        * PlatformBlackBerry.cmake:

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

        [BlackBerry] Implement a popup client for HTML controls
        https://bugs.webkit.org/show_bug.cgi?id=85670

        Reviewed by Rob Buis.

        Add popup client file to build system.
        
        * PlatformBlackBerry.cmake:

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

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

        Reviewed by Daniel Bates.

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

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

        * PlatformEfl.cmake: Update GStreamer-related variable names.

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

        [BlackBerry] AutofillManager implementation upstream
        https://bugs.webkit.org/show_bug.cgi?id=85576

        Reviewed by Rob Buis.

        Added WebKit/blackberry/WebCoreSupport/AutofillManager.cpp
        into building system of BlackBerry porting.

        * PlatformBlackBerry.cmake:

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

        Move WebKitFullScreenListener into its own file.
        https://bugs.webkit.org/show_bug.cgi?id=85640

        Reviewed by Maciej Stachowiak .

        Pull WebKitFullScreenListener into its own file.

        * WebKit.xcodeproj/project.pbxproj:

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

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

        Reviewed by Daniel Bates.

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

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

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

        * PlatformEfl.cmake: Use CAIRO_FOO instead of Cairo_FOO.

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

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

        Reviewed by Gustavo Noronha Silva.

        Enable VIDEO_TRACK feature by default for EFL port.

        * PlatformEfl.cmake:

2012-04-20  Mike Lattanzio  <mlattanzio@rim.com>

        [BlackBerry] Expose WebViewportArguments to WebPageClient
        https://bugs.webkit.org/show_bug.cgi?id=84471

        Reviewed by Antonio Gomes.

        * PlatformBlackBerry.cmake:

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

        [EFL] Add Security Origin API
        https://bugs.webkit.org/show_bug.cgi?id=84023

        Reviewed by Antonio Gomes.

        * PlatformEfl.cmake:

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

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

        Reviewed by Daniel Bates.

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

        * CMakeLists.txt:

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

        [CMake] Cleanup WTF include directories
        https://bugs.webkit.org/show_bug.cgi?id=82716

        Reviewed by Eric Seidel.

        * CMakeLists.txt:

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

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

        Reviewed by George Staikos.

        Add BatteryClientBlackBerry.cpp to the build.

        * PlatformBlackBerry.cmake:

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

        [BlackBerry] Build fix to match the latest WebCore change
        https://bugs.webkit.org/show_bug.cgi?id=83358

        Reviewed by Rob Buis.

        * PlatformBlackBerry.cmake:

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

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

        Reviewed by Rob Buis.

        * PlatformBlackBerry.cmake:

2012-04-05  Jia Pu  <jpu@apple.com>

        Move correction panel related functions from EditorClient into separated AlternativeTextClient class.
        https://bugs.webkit.org/show_bug.cgi?id=82970

        Reviewed by Enrica Casucci.

        See WebCore/ChangeLog for details.

        * WebKit.xcodeproj/project.pbxproj:

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

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

        Reviewed by Adam Barth.

        * PlatformEfl.cmake: Add dummy NetworkInfoClientEfl.cpp files in order to support network information API.

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

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

        Reviewed by Eric Seidel.

        * PlatformBlackBerry.cmake: add libots to link

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

        [CMake] Unreviewed build fix after r111778.

        * CMakeLists.txt: Replace ${JAVASCRIPTCORE_DIR}/wtf includes with
        ${WTF_DIR}/wtf ones.

2012-03-22  Hyowon Kim  <hw1008.kim@samsung.com>

        [EFL] Add PageClientEfl to WebCoreSupport.
        https://bugs.webkit.org/show_bug.cgi?id=80748

        Reviewed by Noam Rosenthal.

        * PlatformEfl.cmake: Add WebCore/platform/graphics/efl to the include path
        and PageClientEfl.cpp to the source list.

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

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

        Reviewed by Adam Barth.

        * CMakeLists.txt: Look for headers in Source/WTF.

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

        [BlackBerry] Remove OutOfMemoryHandler from the build system
        https://bugs.webkit.org/show_bug.cgi?id=81649

        Remove OutOfMemoryHandler, and change GLES2Context to WebKitSupport,
        in the build system for BlackBerry porting.

        Reviewed by Rob Buis.

        * PlatformBlackBerry.cmake:

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

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

        Add include directory and file.
        http://www.w3.org/TR/battery-status/

        Reviewed by Adam Barth.

        * PlatformEfl.cmake:

2012-03-11  Timothy Hatcher  <timothy@apple.com>

        Update how the Web Inspector resources are loaded.

        https://bugs.webkit.org/show_bug.cgi?id=80798
        rdar://problem/10359959

        Reviewed by Brian Weinstein.

        * WebKit.xcodeproj/project.pbxproj: Add a framework.

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

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

        Reviewed by Antonio Gomes.

        * CMakeLists.txt: Manually set the LINK_INTERFACE_LIBRARIES target
        property on the library being created.

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

        [EFL] Unreviewed; fix the build after r109877.

        * CMakeLists.txt: Add WebCore/Modules/webdatabase to the list of
        include directories so that #include'ing DatabaseDetails.h and
        friends still works.

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

        [BlackBerry] upstream CredentialManager and CredentialTransformData implementation
        https://bugs.webkit.org/show_bug.cgi?id=80107

        Reviewed by Antonio Gomes.

        Initial upstream of CredentialManager.[h|cpp] and
        CredentialTransformData.[h|cpp].
        No new test.

        * PlatformBlackBerry.cmake:

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

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

        Reviewed by Antonio Gomes.

        * CMakeLists.txt: Use ${LIB_INSTALL_DIR} instead of hardcoding "lib".

2012-02-24  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        [EFL][DRT] Implement setValueForUser and setAutofilled.
        https://bugs.webkit.org/show_bug.cgi?id=79237

        Reviewed by Andreas Kling.

        Adds the main directory of WebKit's source to find headers of JavaScriptCore.

        * PlatformEfl.cmake:

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

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

        Reviewed by Daniel Bates.

        * CMakeLists.txt:
        * PlatformBlackBerry.cmake: Renamed from Source/WebKit/blackberry/CMakeListsBlackBerry.txt.
        * PlatformEfl.cmake: Renamed from Source/WebKit/efl/CMakeListsEfl.txt.
        * PlatformWinCE.cmake: Renamed from Source/WebKit/wince/CMakeListsWinCE.txt.

2012-02-20  Filip Pizlo  <fpizlo@apple.com>

        JSC should be a triple-tier VM
        https://bugs.webkit.org/show_bug.cgi?id=75812
        <rdar://problem/10079694>

        Reviewed by Gavin Barraclough.

        Changed EFL's build system to include a new directory in JavaScriptCore.
        
        * CMakeLists.txt:

2012-02-21  Jon Lee  <jonlee@apple.com>

        Bring notifications support to WK1 mac: showing, canceling, removing notifications
        https://bugs.webkit.org/show_bug.cgi?id=78783
        <rdar://problem/10610578>

        Reviewed by Anders Carlsson.

        * WebKit.xcodeproj/project.pbxproj: Added new files.

2012-02-21  Adam Roben  <aroben@apple.com>

        Roll out r108309, r108323, and r108326

        They broke the 32-bit Lion build.

        Original bugs is <http://webkit.org/b/75812> <rdar://problem/10079694>.

        * CMakeLists.txt:

2012-02-16  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Adapt to the removal of WebStringIml.h
        https://bugs.webkit.org/show_bug.cgi?id=78784

        Reviewed by Antonio Gomes.

        blackberry/WebCoreSupport/WebStringImpl.h which hasn't been upstreamed
        has been removed internally. We should adapt to this removal for the
        upstreamed part of the BlackBerry port. Actually WebStringImpl is not necessary
        because it just inherits from WTF::StringImpl but adding nothing.

        * blackberry/Api/WebString.cpp:
        (BlackBerry::WebKit::WebString::WebString):
        (BlackBerry::WebKit::WebString::equalIgnoringCase):
        * blackberry/Api/WebString.h:
        (WTF):

2012-02-16  Nima Ghanavatian  <nghanavatian@rim.com>

        [BlackBerry] Style clean-up in WebPageCompositor
        https://bugs.webkit.org/show_bug.cgi?id=78738

        Reviewed by Rob Buis.

        No new functionality, no new tests.

        * blackberry/WebKitSupport/WebPageCompositor.cpp:
        (BlackBerry::WebKit::WebPageCompositor::drawLayers):
        * blackberry/WebKitSupport/WebPageCompositor.h:
        (WebKit):

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

        [CMake] Add missing include directories.

        * CMakeLists.txt:

2012-02-15  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Remove ResourceHolderImpl.cpp from build system
        https://bugs.webkit.org/show_bug.cgi?id=78779

        Reviewed by George Staikos.

        blackberry/Api/ResourceHolderImpl.cpp which hasn't been upstreamed
        has been removed internally. So remove it from the build system.

        * blackberry/CMakeListsBlackBerry.txt:

2012-02-15  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Upstream WebPageGroupLoadDeferrer.{h, cpp}
        https://bugs.webkit.org/show_bug.cgi?id=78770

        Reviewed by Rob Buis.

        Initial upstreaming, no new tests.

        * blackberry/Api/WebPageGroupLoadDeferrer.cpp: Added.
        * blackberry/Api/WebPageGroupLoadDeferrer.h: Added.

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

        [BlackBerry] Upstream BlackBerry specific Web Inspector resources
        https://bugs.webkit.org/show_bug.cgi?id=78727

        Reviewed by Rob Buis.

        * blackberry/WebCoreSupport/inspectorBB.html: Added.
        * blackberry/WebCoreSupport/inspectorBB.js: Added.
        ():
        (InspectorFrontendHost.copyText):

2012-02-15  Mike Fenton  <mifenton@rim.com>

        Initial upstreaming of EditorClientBlackBerry
        https://bugs.webkit.org/show_bug.cgi?id=78730

        Reviewed by Rob Buis.

        Initial upstreaming, no new tests.

        * blackberry/WebCoreSupport/EditorClientBlackBerry.cpp: Added.
        (WebCore):
        (WebCore::EditorClientBlackBerry::EditorClientBlackBerry):
        (WebCore::EditorClientBlackBerry::pageDestroyed):
        (WebCore::EditorClientBlackBerry::shouldDeleteRange):
        (WebCore::EditorClientBlackBerry::shouldShowDeleteInterface):
        (WebCore::EditorClientBlackBerry::smartInsertDeleteEnabled):
        (WebCore::EditorClientBlackBerry::isSelectTrailingWhitespaceEnabled):
        (WebCore::EditorClientBlackBerry::enableSpellChecking):
        (WebCore::EditorClientBlackBerry::shouldSpellCheckFocusedField):
        (WebCore::EditorClientBlackBerry::isContinuousSpellCheckingEnabled):
        (WebCore::EditorClientBlackBerry::toggleContinuousSpellChecking):
        (WebCore::EditorClientBlackBerry::isGrammarCheckingEnabled):
        (WebCore::EditorClientBlackBerry::toggleGrammarChecking):
        (WebCore::EditorClientBlackBerry::spellCheckerDocumentTag):
        (WebCore::EditorClientBlackBerry::shouldBeginEditing):
        (WebCore::EditorClientBlackBerry::shouldEndEditing):
        (WebCore::EditorClientBlackBerry::shouldInsertNode):
        (WebCore::EditorClientBlackBerry::shouldInsertText):
        (WebCore::EditorClientBlackBerry::shouldChangeSelectedRange):
        (WebCore::EditorClientBlackBerry::shouldApplyStyle):
        (WebCore::EditorClientBlackBerry::shouldMoveRangeAfterDelete):
        (WebCore::EditorClientBlackBerry::didBeginEditing):
        (WebCore::EditorClientBlackBerry::respondToChangedContents):
        (WebCore::EditorClientBlackBerry::respondToChangedSelection):
        (WebCore::EditorClientBlackBerry::didEndEditing):
        (WebCore::EditorClientBlackBerry::respondToSelectionAppearanceChange):
        (WebCore::EditorClientBlackBerry::didWriteSelectionToPasteboard):
        (WebCore::EditorClientBlackBerry::didSetSelectionTypesForPasteboard):
        (WebCore::EditorClientBlackBerry::registerCommandForUndo):
        (WebCore::EditorClientBlackBerry::registerCommandForRedo):
        (WebCore::EditorClientBlackBerry::clearUndoRedoOperations):
        (WebCore::EditorClientBlackBerry::canUndo):
        (WebCore::EditorClientBlackBerry::canRedo):
        (WebCore::EditorClientBlackBerry::canCopyCut):
        (WebCore::EditorClientBlackBerry::canPaste):
        (WebCore::EditorClientBlackBerry::undo):
        (WebCore::EditorClientBlackBerry::redo):
        (KeyDownEntry):
        (KeyPressEntry):
        (WebCore::EditorClientBlackBerry::interpretKeyEvent):
        (WebCore::EditorClientBlackBerry::handleKeyboardEvent):
        (WebCore::EditorClientBlackBerry::handleInputMethodKeydown):
        (WebCore::EditorClientBlackBerry::textFieldDidBeginEditing):
        (WebCore::EditorClientBlackBerry::textFieldDidEndEditing):
        (WebCore::EditorClientBlackBerry::textDidChangeInTextField):
        (WebCore::EditorClientBlackBerry::doTextFieldCommandFromEvent):
        (WebCore::EditorClientBlackBerry::textWillBeDeletedInTextField):
        (WebCore::EditorClientBlackBerry::textDidChangeInTextArea):
        (WebCore::EditorClientBlackBerry::ignoreWordInSpellDocument):
        (WebCore::EditorClientBlackBerry::learnWord):
        (WebCore::EditorClientBlackBerry::checkSpellingOfString):
        (WebCore::EditorClientBlackBerry::getAutoCorrectSuggestionForMisspelledWord):
        (WebCore::EditorClientBlackBerry::checkGrammarOfString):
        (WebCore::EditorClientBlackBerry::requestCheckingOfString):
        (WebCore::EditorClientBlackBerry::textChecker):
        (WebCore::EditorClientBlackBerry::updateSpellingUIWithGrammarString):
        (WebCore::EditorClientBlackBerry::updateSpellingUIWithMisspelledWord):
        (WebCore::EditorClientBlackBerry::showSpellingUI):
        (WebCore::EditorClientBlackBerry::spellingUIIsShowing):
        (WebCore::EditorClientBlackBerry::getGuessesForWord):
        (WebCore::EditorClientBlackBerry::willSetInputMethodState):
        (WebCore::EditorClientBlackBerry::setInputMethodState):
        * blackberry/WebCoreSupport/EditorClientBlackBerry.h: Added.
        (WebKit):
        (WebCore):
        (EditorClientBlackBerry):

2012-02-15  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Upstream WebPageClient.h
        https://bugs.webkit.org/show_bug.cgi?id=78660

        Reviewed by Antonio Gomes.

        Initial upstreaming, no new tests.

        * blackberry/Api/BackingStore.cpp: Add #include <BlackBerryPlatformWindow.h> because this inclusion
        is being removed from WebPageClient.h.
        * blackberry/Api/WebPageClient.h: Added.
        * blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp: Add #include <BlackBerryPlatformWindow.h>
        because this inclusion is being removed from WebPageClient.h.

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

        [BlackBerry] Upstream remaining classes in Api
        https://bugs.webkit.org/show_bug.cgi?id=78644

        Reviewed by Antonio Gomes.

        No functionalities changed, no new tests.

        * blackberry/Api/ActiveNodeContext.h: Renamed from Source/WebKit/blackberry/Api/BlackBerryContext.h.

2012-02-14  Nima Ghanavatian  <nghanavatian@rim.com>

        [BlackBerry] Upstreaming WebSettings code
        https://bugs.webkit.org/show_bug.cgi?id=78633

        Reviewed by Rob Buis.

        Initial upstreaming, no new tests.

        * blackberry/Api/WebSettings.cpp: Added.
        * blackberry/Api/WebSettings.h: Added.
        * blackberry/Api/WebSettings_p.h: Added.

2012-02-14  Nima Ghanavatian  <nghanavatian@rim.com>

        [BlackBerry] Upstreaming DOMSupport files
        https://bugs.webkit.org/show_bug.cgi?id=78607

        Reviewed by Rob Buis.

        Initial upstreaming, no new tests.

        * blackberry/WebKitSupport/DOMSupport.cpp: Added.
        * blackberry/WebKitSupport/DOMSupport.h: Added.

2012-02-14  Jeff Rogers  <jrogers@rim.com>

        [BlackBerry] Remove OpenVG references
        https://bugs.webkit.org/show_bug.cgi?id=78623

        Reviewed by Rob Buis.

        Removed references to USE(OPENVG) and the related code.

        * blackberry/Api/BackingStore.cpp:
        (BlackBerry::WebKit::BackingStorePrivate::BackingStorePrivate):
        (BlackBerry::WebKit::BackingStorePrivate::repaint):
        (BlackBerry::WebKit::BackingStorePrivate::renderContents):
        (BlackBerry::WebKit::BackingStore::createSurface):
        * blackberry/Api/BackingStore_p.h:

2012-02-14  Andy Chen  <andchen@rim.com>

        Initial upstreaming for find-in-page for BlackBerry port
        https://bugs.webkit.org/show_bug.cgi?id=78615

        Create a new class InPageSearchManager for find-in-page and
        remove the functions in SelectionHandler

        Reviewed by Rob Buis.

        * blackberry/CMakeListsBlackBerry.txt:
        * blackberry/WebKitSupport/InPageSearchManager.cpp: Added.
        (BlackBerry::WebKit::InPageSearchManager::InPageSearchManager):
        (BlackBerry::WebKit::InPageSearchManager::~InPageSearchManager):
        (BlackBerry::WebKit::InPageSearchManager::findNextString):
        (BlackBerry::WebKit::InPageSearchManager::clearTextMatches):
        (BlackBerry::WebKit::InPageSearchManager::setMarkerActive):
        * blackberry/WebKitSupport/InPageSearchManager.h: Added.
        * blackberry/WebKitSupport/SelectionHandler.cpp:
        * blackberry/WebKitSupport/SelectionHandler.h:

2012-02-14  Jacky Jiang  <zhajiang@rim.com>

        [BlackBerry] Upstream BlackBerry WebCoreSupport FrameLoaderClientBlackBerry class
        https://bugs.webkit.org/show_bug.cgi?id=78275

        Reviewed by Rob Buis.

        Initial upstream, no new tests.

        * blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp: Added.
        * blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.h: Added.

2012-02-14  Lianghui Chen  <liachen@rim.com>

        Separate mimetype and file extension mapping API from WebKit/blackberry/Api/WebKitTextCodec and complete it.
        https://bugs.webkit.org/show_bug.cgi?id=78605

        Reviewed by Rob Buis.

        Now the MIME type and file extension mapping API are in WebKitMIMETypeConverter.

        * blackberry/Api/WebKitMIMETypeConverter.cpp: Added.
        (WebKit):
        (BlackBerry::WebKit::getExtensionForMimeType):
        (BlackBerry::WebKit::getMimeTypeForExtension):
        * blackberry/Api/WebKitMIMETypeConverter.h: Added.
        (WebKit):
        * blackberry/Api/WebKitTextCodec.cpp:
        * blackberry/Api/WebKitTextCodec.h:
        * blackberry/CMakeListsBlackBerry.txt:

2012-02-14  Ed Baker  <edbaker@rim.com>

        [BlackBerry] Dragging a selection handle outside of the content bounding box does not update the selection range correctly
        https://bugs.webkit.org/show_bug.cgi?id=78608

        Ensure that when selection handles leave the content bounding box that
        the handle not being dragged remains fixed. Do not applying padding to
        a direction that would cause the selection to shrink when performing
        the handle direction detection.

        Reviewed by Rob Buis.

        * blackberry/WebKitSupport/SelectionHandler.cpp:
        (BlackBerry::WebKit::directionOfPointRelativeToRect):
        (BlackBerry::WebKit::SelectionHandler::extendSelectionToFieldBoundary):
        (BlackBerry::WebKit::SelectionHandler::clipPointToFocusNode):
        (BlackBerry::WebKit::SelectionHandler::setSelection):
        * blackberry/WebKitSupport/SelectionHandler.h:

2012-02-14  Rob Buis  <rbuis@rim.com>

        [BlackBerry] Upstream remaining classes in Api
        https://bugs.webkit.org/show_bug.cgi?id=78644

        Reviewed by Antonio Gomes.

        Initial upstream, no new tests.

        * blackberry/Api/BlackBerryContext.h: Added.
        * blackberry/Api/BlackBerryGlobal.cpp: Added.
        * blackberry/Api/BlackBerryGlobal.h: Added.
        * blackberry/Api/Version.cpp: Added.
        * blackberry/Api/Version.h: Added.

2012-02-14  Rob Buis  <rbuis@rim.com>

        [BlackBerry] Upstream backing store related classes
        https://bugs.webkit.org/show_bug.cgi?id=78517

        Reviewed by Antonio Gomes.

        Initial upstream, no new tests.

        * blackberry/WebKitSupport/BackingStoreClient.cpp: Added.
        * blackberry/WebKitSupport/BackingStoreClient.h: Added.
        * blackberry/WebKitSupport/BackingStoreCompositingSurface.cpp: Added.
        * blackberry/WebKitSupport/BackingStoreCompositingSurface.h: Added.
        * blackberry/WebKitSupport/BackingStoreTile.cpp: Added.
        * blackberry/WebKitSupport/BackingStoreTile.h: Added.

2012-02-13  Nima Ghanavatian  <nghanavatian@rim.com>

        Initial upstreaming of selection handling code for BlackBerry port
        https://bugs.webkit.org/show_bug.cgi?id=78136

        Reviewed by Rob Buis.

        Initial upstreaming, no new tests.

        * blackberry/WebKitSupport/SelectionHandler.cpp: Added.
        * blackberry/WebKitSupport/SelectionHandler.h: Added.

2012-02-10  Mike Fenton  <mifenton@rim.com>

        BlackBerry Port - Input focus is suppressed during XHR loads
        https://bugs.webkit.org/show_bug.cgi?id=78368

        Allow JS to trigger the VKB and input focus when XHR scripting
        is active.

        This switching the loaded state to checking the webpages loaded state
        which is only updated after initial load.   When additional loading
        events happen for XHR, it remains false and focus events function.

        Also add detailed FocusLog's to shouldAcceptInputFocus.

        Reviewed by Rob Buis.

        * blackberry/WebKitSupport/InputHandler.cpp:
        (BlackBerry::WebKit::InputHandler::shouldAcceptInputFocus):

2012-02-10  Mike Fenton  <mifenton@rim.com>

        BlackBerry Port - JS focus on blur can cause recursion
        https://bugs.webkit.org/show_bug.cgi?id=78368

        Prevent JS recursion of blur/focus by allowing focus
        if we are already trying to prevent focus.

        Reviewed by Rob Buis.

        * blackberry/WebKitSupport/InputHandler.cpp:
        (BlackBerry::WebKit::InputHandler::InputHandler):
        (BlackBerry::WebKit::InputHandler::shouldAcceptInputFocus):
        (BlackBerry::WebKit::InputHandler::setElementFocused):
        * blackberry/WebKitSupport/InputHandler.h:
        (InputHandler):

2012-02-10  Rob Buis  <rbuis@rim.com>

        [BlackBerry] Upstream graphics helper classes in WebKitSupport
        https://bugs.webkit.org/show_bug.cgi?id=78278

        Reviewed by Antonio Gomes.

        Initial upstream, no new tests.

        * blackberry/WebKitSupport/RenderQueue.cpp: Added.
        * blackberry/WebKitSupport/RenderQueue.h: Added.

2012-02-10  Rob Buis  <rbuis@rim.com>

        [BlackBerry] Upstream graphics helper classes in WebKitSupport
        https://bugs.webkit.org/show_bug.cgi?id=78278

        Reviewed by Antonio Gomes.

        Initial upstream, no new tests.

        * blackberry/WebKitSupport/SurfacePool.cpp: Added.
        * blackberry/WebKitSupport/SurfacePool.h: Added.
        * blackberry/WebKitSupport/TileIndex.h: Added.
        * blackberry/WebKitSupport/TileIndexHash.h: Added.

2012-02-09  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Upstream JavaScriptDebuggerBlackBerry.{h, cpp}
        https://bugs.webkit.org/show_bug.cgi?id=78203

        Reviewed by Rob Buis.

        Initial upstream, no new tests.

        * blackberry/WebCoreSupport/JavaScriptDebuggerBlackBerry.cpp: Added.
        * blackberry/WebCoreSupport/JavaScriptDebuggerBlackBerry.h: Added.

2012-02-09  Rob Buis  <rbuis@rim.com>

        [BlackBerry] Upstream BlackBerry WebKitSupport WebPageCompositor class
        https://bugs.webkit.org/show_bug.cgi?id=78276

        Reviewed by Antonio Gomes.

        Initial upstream, no new tests.

        * blackberry/WebKitSupport/WebPageCompositor.cpp: Added.
        * blackberry/WebKitSupport/WebPageCompositor.h: Added.

2012-02-08  Jacky Jiang  <zhajiang@rim.com>

        [BlackBerry] Upstream BlackBerry WebCoreSupport FrameNetworkingContextBlackBerry and IconDatabaseClientBlackBerry classes
        https://bugs.webkit.org/show_bug.cgi?id=78049

        Reviewed by Rob Buis.

        Initial upstream, no new tests.

        * blackberry/WebCoreSupport/FrameNetworkingContextBlackBerry.cpp: Added.
        * blackberry/WebCoreSupport/FrameNetworkingContextBlackBerry.h: Added.
        * blackberry/WebCoreSupport/IconDatabaseClientBlackBerry.cpp: Added.
        * blackberry/WebCoreSupport/IconDatabaseClientBlackBerry.h: Added.

2012-02-08  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Upstream InspectorClientBlackBerry.{h, cpp}
        https://bugs.webkit.org/show_bug.cgi?id=78082

        Reviewed by Rob Buis.

        Initial upstream, no new tests.

        * blackberry/WebCoreSupport/InspectorClientBlackBerry.cpp: Added.
        * blackberry/WebCoreSupport/InspectorClientBlackBerry.h: Added.

2012-02-08  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Remove EditCommandBlackBerry.cpp from build system
        https://bugs.webkit.org/show_bug.cgi?id=78078

        Reviewed by Rob Buis.

        WebKit/blackberry/WebCoreSupport/EditCommandBlackBerry.cpp which hasn't
        been upstreamed has been removed from the BlackBerry porting internally.
        So we should remove it from the build system.

        * blackberry/CMakeListsBlackBerry.txt:

2012-02-08  Rob Buis  <rbuis@rim.com>

        [BlackBerry] Upstream DumpRenderTreeBlackBerry
        https://bugs.webkit.org/show_bug.cgi?id=78042

        Reviewed by Antonio Gomes.

        Add abstract interface for our DumpRenderTree solution.

        * blackberry/Api/DumpRenderTreeClient.h: Added.

2012-02-08  Nima Ghanavatian  <nghanavatian@rim.com>

        Initial upstreaming of input handling for BlackBerry port
        https://bugs.webkit.org/show_bug.cgi?id=77992

        Reviewed by Rob Buis.

        * blackberry/WebKitSupport/InputHandler.cpp: Added.
        * blackberry/WebKitSupport/InputHandler.h: Added.

2012-02-07  Robert Kroeger  <rjkroege@chromium.org>

        [chromium] Remove no longer necessary Chromium gesture recognizer code.
        https://bugs.webkit.org/show_bug.cgi?id=77492

        Reviewed by Adam Barth.

        * blackberry/WebCoreSupport/AboutDataEnableFeatures.in:

2012-02-07  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Upstream ChromeClientBlackBerry.{h, cpp}
        https://bugs.webkit.org/show_bug.cgi?id=77843

        Reviewed by Rob Buis.

        Initial upstream, no new tests.

        * blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp: Added.
        * blackberry/WebCoreSupport/ChromeClientBlackBerry.h: Added.

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

        [BlackBerry] Upstream DumpRenderTreeSupport
        https://bugs.webkit.org/show_bug.cgi?id=77991

        Reviewed by Antonio Gomes.

        No functionalities changed, no new tests.

        * blackberry/WebKitSupport/DumpRenderTreeSupport.cpp: Added.
        (toGeolocationClientMock):
        (DumpRenderTreeSupport::DumpRenderTreeSupport):
        (DumpRenderTreeSupport::~DumpRenderTreeSupport):
        (DumpRenderTreeSupport::javaScriptObjectsCount):
        (DumpRenderTreeSupport::garbageCollectorCollect):
        (DumpRenderTreeSupport::garbageCollectorCollectOnAlternateThread):
        (DumpRenderTreeSupport::setLinksIncludedInFocusChain):
        (DumpRenderTreeSupport::linksIncludedInFocusChain):
        (DumpRenderTreeSupport::dumpConfigurationForViewport):
        (DumpRenderTreeSupport::numberOfPendingGeolocationPermissionRequests):
        (DumpRenderTreeSupport::resetGeolocationMock):
        (DumpRenderTreeSupport::setMockGeolocationError):
        (DumpRenderTreeSupport::setMockGeolocationPermission):
        (DumpRenderTreeSupport::setMockGeolocationPosition):
        (DumpRenderTreeSupport::scalePageBy):
        (DumpRenderTreeSupport::computedStyleIncludingVisitedInfo):
        * blackberry/WebKitSupport/DumpRenderTreeSupport.h: Added.
        (WebKit):
        (WebCore):
        (WTF):
        (DumpRenderTreeSupport):

2012-02-07  Jacky Jiang  <zhajiang@rim.com>

        [BlackBerry] Upstream BlackBerry WebCoreSupport DeviceOrientationClientBlackBerry and DeviceMotionClientBlackBerry classes
        https://bugs.webkit.org/show_bug.cgi?id=77993

        Reviewed by Rob Buis.

        Initial upstream, no new tests.

        * blackberry/WebCoreSupport/DeviceMotionClientBlackBerry.cpp: Added.
        * blackberry/WebCoreSupport/DeviceMotionClientBlackBerry.h: Added.
        * blackberry/WebCoreSupport/DeviceOrientationClientBlackBerry.cpp: Added.
        * blackberry/WebCoreSupport/DeviceOrientationClientBlackBerry.h: Added.

2012-02-06  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Use WebPagePrivate instead of WebPage in GeolocationControllerClientBlackBerry
        https://bugs.webkit.org/show_bug.cgi?id=77927

        Reviewed by Antonio Gomes.

        WebKit/blackberry/Api/WebPage which has a d pointer is designed for public API.
        GeolocationControllerClientBlackBerry in WebKit/blackberry/WebCoreSupport should
        use the d pointer directly because the client is internal implementation.

        No functionalities changed, no new tests.

        * blackberry/WebCoreSupport/GeolocationControllerClientBlackBerry.cpp:
        (GeolocationControllerClientBlackBerry::GeolocationControllerClientBlackBerry):
        (GeolocationControllerClientBlackBerry::requestPermission):
        (GeolocationControllerClientBlackBerry::cancelPermissionRequest):
        (GeolocationControllerClientBlackBerry::onLocationUpdate):
        (GeolocationControllerClientBlackBerry::onLocationError):
        * blackberry/WebCoreSupport/GeolocationControllerClientBlackBerry.h:
        (WebKit):
        (GeolocationControllerClientBlackBerry):

2012-02-06  Robin Cao  <robin.cao@torchmobile.com.cn>

        [BlackBerry] Remove unused variable in BackingStore
        https://bugs.webkit.org/show_bug.cgi?id=77851

        Reviewed by Kentaro Hara.

        * blackberry/Api/BackingStore.cpp:
        (BlackBerry::WebKit::BackingStorePrivate::blitContents):

2012-02-04  Jacky Jiang  <zhajiang@rim.com>

        [BlackBerry] Upstream BlackBerry WebCoreSupport ClientExtension and GeolocationControllerClientBlackBerry classes
        https://bugs.webkit.org/show_bug.cgi?id=77751

        Reviewed by Rob Buis.

        Initial upstream, no new tests.

        * blackberry/WebCoreSupport/ClientExtension.cpp: Added.
        * blackberry/WebCoreSupport/ClientExtension.h: Added.
        * blackberry/WebCoreSupport/GeolocationControllerClientBlackBerry.cpp: Added.
        * blackberry/WebCoreSupport/GeolocationControllerClientBlackBerry.h: Added.

2012-01-11  Jacky Jiang  <zhajiang@rim.com>

        [BlackBerry] ASSERT failure in BackingStorePrivate::blitVisibleContents()
        https://bugs.webkit.org/show_bug.cgi?id=76096

        Reviewed by Rob Buis.

        We shouldn't blit visible contents for direct rendering. Guard it from
        call sites.

        * blackberry/Api/BackingStore.cpp:
        (BlackBerry::WebKit::BackingStorePrivate::repaint):
        (BlackBerry::WebKit::BackingStorePrivate::slowScroll):

2012-01-11  Rafael Brandao  <rafael.lobo@openbossa.org>

        [Qt][WK2] Fix the build for newer Qt5
        https://bugs.webkit.org/show_bug.cgi?id=75964

        Reviewed by Simon Hausmann.

        * WebKit.pri: Added the new files to the buildsystem.

2012-01-10  Mike Lattanzio  <mlattanzio@rim.com>

        [BlackBerry] Fix assertion failure in BackingStore::blitContents
        https://bugs.webkit.org/show_bug.cgi?id=75976

        Prevent an assertion failure in BackingStore::blitContents by
        checking that the srcRect of the transformation matrix is non empty.

        Reviewed by Adam Treat.

        Upstream BlackBerry port is not yet building and testable.

        * blackberry/Api/BackingStore.cpp:
        (BlackBerry::WebKit::BackingStorePrivate::blitContents):

2012-01-06  Benjamin Poulain  <bpoulain@apple.com>

        [Mac] Sort the resources of WebKit.xcodeproj
        https://bugs.webkit.org/show_bug.cgi?id=75634

        Reviewed by Andreas Kling.

        * WebKit.xcodeproj/project.pbxproj:

2012-01-06  Jacky Jiang  <zhajiang@rim.com>

        [BlackBerry] Upstream BlackBerry WebCoreSupport cache client
        https://bugs.webkit.org/show_bug.cgi?id=75649

        Reviewed by Antonio Gomes.

        Initial upstream, no new tests.

        * blackberry/WebCoreSupport/CacheClientBlackBerry.cpp: Added.
        * blackberry/WebCoreSupport/CacheClientBlackBerry.h: Added.

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

        Leak of WebNotificationClient when page is destroyed
        https://bugs.webkit.org/show_bug.cgi?id=74980
        <rdar://problem/10611231>

        Reviewed by Mark Rowe.

        * blackberry/WebCoreSupport/NotificationPresenterImpl.cpp:
        (WebKit::NotificationPresenterImpl::notificationControllerDestroyed): Empty implementation, because ownership
        model differs.
        * blackberry/WebCoreSupport/NotificationPresenterImpl.h:

2011-12-15  Jacky Jiang  <zhajiang@rim.com>

        [BlackBerry] Upstream BlackBerry WebCoreSupport drag client and context menu client
        https://bugs.webkit.org/show_bug.cgi?id=74643

        Reviewed by Rob Buis.

        Initial upstream, no new tests.

        * blackberry/WebCoreSupport/ContextMenuClientBlackBerry.cpp: Added.
        * blackberry/WebCoreSupport/ContextMenuClientBlackBerry.h: Added.
        * blackberry/WebCoreSupport/DragClientBlackBerry.cpp: Added.
        * blackberry/WebCoreSupport/DragClientBlackBerry.h: Added.

2011-12-15  Jacky Jiang  <zhajiang@rim.com>

        [BlackBerry] Regression: lots of checkerboarding
        https://bugs.webkit.org/show_bug.cgi?id=74611

        Reviewed by Daniel Bates.

        Fix a regression caused by r102843 which introduced a lot of unnecessary
        checkerboarding. R102843 changed behavior by removing a check for blit
        based on whether the render actually took place and whether the
        backingstore was in the midst of suspended updates.
        The initial anthor is Adam Treat <atreat@rim.com>.

        * blackberry/Api/BackingStore.cpp:
        (BlackBerry::WebKit::BackingStorePrivate::repaint):
        (BlackBerry::WebKit::BackingStorePrivate::slowScroll):
        (BlackBerry::WebKit::BackingStorePrivate::renderVisibleContents):
        (BlackBerry::WebKit::BackingStorePrivate::renderBackingStore):
        * blackberry/Api/BackingStore_p.h:
        (BlackBerry::WebKit::BackingStorePrivate::isSuspended):

2011-12-15  Adam Treat  <atreat@rim.com>

        Reviewed by Rob Buis.

        https://bugs.webkit.org/show_bug.cgi?id=74609
        PR 122703

        For certain configurations of webpage content and zoom level we were
        failing to produce a valid backingstore matrix by being to strict on
        whether a given matrix fits the preferred matrix orientation.
        This patch fixes this by insisting on storing a candidate divisor
        whether or not it agrees with the preferred matrix orientation and then
        comparing all subsequent divisors.

        * blackberry/Api/BackingStore.cpp:
        (BlackBerry::WebKit::divisorIsPerfectWidth):
        (BlackBerry::WebKit::divisorIsPerfectHeight):
        (BlackBerry::WebKit::divisorIsPreferredDirection):
        (BlackBerry::WebKit::bestDivisor):

2011-12-14  Jacky Jiang  <zhajiang@rim.com>

        [BlackBerry] Refactor code and add some debug messages in backing store
        https://bugs.webkit.org/show_bug.cgi?id=74539

        Reviewed by Antonio Gomes.

        Refactor and get rid of the confusing and unnecessary
        'renderContentOnly' flag from the family of render methods in the
        backing store.
        Remove the overload of the render method that takes a list of rects from
        the backing store since it is just a for loop and only one place calls it.
        Add a debug message to illustrate when we start showing checkerboard and
        when we stop.
        Fix the debug messages in the DEBUG_BACKINGSTORE so that they actually compile
        and add a new message for debugging WebCore invalidation requests.
        The original author is Adam Treat <atreat@rim.com>

        * blackberry/Api/BackingStore.cpp:
        (BlackBerry::WebKit::BackingStorePrivate::resumeScreenAndBackingStoreUpdates):
        (BlackBerry::WebKit::BackingStorePrivate::repaint):
        (BlackBerry::WebKit::BackingStorePrivate::slowScroll):
        (BlackBerry::WebKit::BackingStorePrivate::renderDirectToWindow):
        (BlackBerry::WebKit::BackingStorePrivate::render):
        (BlackBerry::WebKit::BackingStorePrivate::renderVisibleContents):
        (BlackBerry::WebKit::BackingStorePrivate::renderBackingStore):
        (BlackBerry::WebKit::BackingStorePrivate::blitVisibleContents):
        (BlackBerry::WebKit::BackingStorePrivate::blitContents):
        (BlackBerry::WebKit::BackingStorePrivate::updateTile):
        (BlackBerry::WebKit::BackingStorePrivate::invalidateWindow):
        * blackberry/Api/BackingStore_p.h:

2011-12-14  Robin Qiu  <robin.qiu@torchmobile.com.cn>

        [BlackBerry] Add notification support for the BlackBerry port
        https://bugs.webkit.org/show_bug.cgi?id=73194

        Reviewed by Nikolas Zimmermann.

        Contributed by Torch team, the main contributor is Robin Qiu
        <robin.qiu@torchmobile.com.cn>.

        Initial upstream, no new tests.

        * blackberry/WebCoreSupport/NotificationPresenterImpl.cpp: Added.
        (WebKit::NotificationPresenterImpl::instance):
        (WebKit::NotificationPresenterImpl::NotificationPresenterImpl):
        (WebKit::NotificationPresenterImpl::~NotificationPresenterImpl):
        (WebKit::NotificationPresenterImpl::show):
        (WebKit::NotificationPresenterImpl::cancel):
        (WebKit::NotificationPresenterImpl::notificationObjectDestroyed):
        (WebKit::NotificationPresenterImpl::requestPermission):
        (WebKit::NotificationPresenterImpl::onPermission):
        (WebKit::NotificationPresenterImpl::cancelRequestsForPermission):
        (WebKit::NotificationPresenterImpl::checkPermission):
        (WebKit::NotificationPresenterImpl::notificationClicked):
        * blackberry/WebCoreSupport/NotificationPresenterImpl.h: Added.
        There is already a header file: Source/WebCore/notifications/NotificationPresenter.h.
        To avoid conflicting with the it, I name my header file to NotificationPresenterImpl.

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.

        Append libjpeg instead of libimg.

        * blackberry/CMakeListsBlackBerry.txt:

2011-12-14  Jacky Jiang  <zhajiang@rim.com>

        Upstream text codec and web string files of BlackBerry API
        https://bugs.webkit.org/show_bug.cgi?id=73586

        Reviewed by Daniel Bates.

        Initial upstream, no new tests.

        * blackberry/Api/WebKitTextCodec.cpp: Added.
        (BlackBerry::WebKit::isSameEncoding):
        (BlackBerry::WebKit::isASCIICompatibleEncoding):
        (BlackBerry::WebKit::transcode):
        (BlackBerry::WebKit::base64DecodePolicyForWebCore):
        (BlackBerry::WebKit::base64Decode):
        (BlackBerry::WebKit::base64Encode):
        (BlackBerry::WebKit::unescapeURL):
        (BlackBerry::WebKit::escapeURL):
        (BlackBerry::WebKit::getExtensionForMimeType):
        * blackberry/Api/WebKitTextCodec.h: Added.
        * blackberry/Api/WebString.cpp: Added.
        (BlackBerry::WebKit::WebString::WebString):
        (BlackBerry::WebKit::WebString::~WebString):
        (BlackBerry::WebKit::WebString::fromUtf8):
        (BlackBerry::WebKit::WebString::operator=):
        (BlackBerry::WebKit::WebString::utf8):
        (BlackBerry::WebKit::WebString::characters):
        (BlackBerry::WebKit::WebString::length):
        (BlackBerry::WebKit::WebString::isEmpty):
        (BlackBerry::WebKit::WebString::equal):
        (BlackBerry::WebKit::WebString::equalIgnoringCase):
        * blackberry/Api/WebString.h: Added.

2011-12-13  Arvid Nilsson  <anilsson@rim.com>

        [Blackberry] Fix a leak in BackingStore class

        Don't leak the blit generation condvar and mutex.

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

        Reviewed by Antonio Gomes.

        * blackberry/Api/BackingStore.cpp:
        (BlackBerry::WebKit::BackingStorePrivate::~BackingStorePrivate):

2011-12-09  Jacky Jiang  <zhajiang@rim.com>

        Upstream BlackBerry API backing store files
        https://bugs.webkit.org/show_bug.cgi?id=73668

        Reviewed by Daniel Bates.

        Contributed by Torch team, the main contributor is Adam Treat
        <atreat@rim.com>.

        Initial upstream, no new tests.

        * blackberry/Api/BackingStore.cpp: Added.
        * blackberry/Api/BackingStore.h: Added.
        * blackberry/Api/BackingStore_p.h: Added.

2011-12-06  Leo Yang  <leo.yang@torchmobile.com.cn>

        Upstream about: feature in WebKit/blackberry/WebCoreSupport/
        https://bugs.webkit.org/show_bug.cgi?id=73612

        Reviewed by Antonio Gomes.

        * blackberry/CMakeListsBlackBerry.txt:
        * blackberry/WebCoreSupport/AboutData.cpp: Added.
        (WebCore::numberToHTMLTr):
        (WebCore::configPage):
        (WebCore::cacheTypeStatisticToHTMLTr):
        (WebCore::memoryPage):
        * blackberry/WebCoreSupport/AboutData.h: Added.
        * blackberry/WebCoreSupport/AboutDataEnableFeatures.in: Added.
        * blackberry/WebCoreSupport/AboutDataHaveFeatures.in: Added.
        * blackberry/WebCoreSupport/AboutDataUseFeatures.in: Added.
        * blackberry/WebCoreSupport/generateAboutDataFeatures.pl: Added.

2011-12-01  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Cleanup includes to reduce code complexity.
        https://bugs.webkit.org/show_bug.cgi?id=73540

        Reviewed by Gustavo Noronha Silva.

        * CMakeLists.txt: Add loader/appcache to WebKit_INCLUDE_DIRECTORIES.

2011-11-28  Jon Lee  <jonlee@apple.com>

        Create skeleton framework for notifications support in WK2
        https://bugs.webkit.org/show_bug.cgi?id=73253
        <rdar://problem/10356943>

        Reviewed by Sam Weinig.

        * WebKit.xcodeproj/project.pbxproj: Add WebNotificationClient class.

2011-11-26  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>

        [CMake] Clean up Web Inspector target in Source/WebKit/blackberry/CMakeListsBlackBerry.txt
        https://bugs.webkit.org/show_bug.cgi?id=72784

        Reviewed by Nikolas Zimmermann.

        Abstracted the JavaScript file names from inspector/front-end/inspector.html
        to keep them in-sync with the changes of inspector.html.

        * blackberry/CMakeListsBlackBerry.txt:

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.

        * blackberry/CMakeListsBlackBerry.txt: Adjust the Source/ directory.

2011-11-20  Mark Rowe  <mrowe@apple.com>

        <http://webkit.org/b/72661> Switch to a more modern approach to retrieving the startup volume name

        Use the DiskArbitration framework to retrieve the name of the startup volume rather than using Carbon
        File Manager APIs.

        Reviewed by Dan Bernstein.

        * WebKit.xcodeproj/project.pbxproj: Link against DiskArbitration.framework. It lives in the shared cache
        so it should add only negligible launch time overhead.

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 Antonio Gomes.

        * blackberry: Added.
        * blackberry/CMakeListsBlackBerry.txt: Added.

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.

        * CMakeLists.txt:

2011-11-17  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Layer violation: qt_runtime.cpp accesses QWebElement and QTDRTNode
        https://bugs.webkit.org/show_bug.cgi?id=72595

        Reviewed by Noam Rosenthal.

        * WebKit.pri: Add qwebelement_p.h to HEADERS.

2011-11-11  Darin Adler  <darin@apple.com>

        * WebKit.xcodeproj/project.pbxproj: Let a newer Xcode update this file.
        If an older Xcode downgrades this file and we have a risk of some kind of
        oscillating commit situation, please contact me so I know not to do this again.

2011-11-08  Nikolas Zimmermann  <nzimmermann@rim.com>

        Switch SVGImage cache to store ImageBuffers instead of whole SVGImages, including a DOM/Render tree
        https://bugs.webkit.org/show_bug.cgi?id=71368

        Reviewed by Antti Koivisto.

        * CMakeLists.txt: Add svg/graphics include, for SVGImageCache.h.

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.

        * WebKit.pri: Added.

2011-10-10  Joseph Pecoraro  <joepeck@webkit.org>

        Extract WebOpenPanelResultListener out into its own file
        https://bugs.webkit.org/show_bug.cgi?id=69575

        Reviewed by David Kilzer.

        * WebKit.xcodeproj/project.pbxproj:

2011-10-06  Anders Carlsson  <andersca@apple.com>

        When building with clang, enable -Wglobal-constructors and -Wexit-time-destructors
        https://bugs.webkit.org/show_bug.cgi?id=69586

        Reviewed by Darin Adler.

        * WebKit.xcodeproj/project.pbxproj:
        When building with clang, we don't need to run the check-for-global-initializers and
        check-for-exit-time-destructors anymore.

2011-09-27  Andy Estes  <aestes@apple.com>

        WebKitLinkedOnOrAfter() check is ineffective for Solar Walk app-specific hack.
        https://bugs.webkit.org/show_bug.cgi?id=68863

        Reviewed by Darin Adler.

        The SolarWalk binary does not link against WebKit.framework directly,
        so calling NSVersionOfLinkTimeLibrary() will not return the version of
        WebKit against which SolarWalk was linked. Since Solar Walk has
        released an update that addresses the issue for which this app-specific
        hack was originally added, we should just remove the hack.

        * WebKit.xcodeproj/project.pbxproj: Remove SolarWalkQuirksUserScript.js.

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.

        * haiku: Removed.
        * haiku/WebCoreSupport: Removed.
        * haiku/WebCoreSupport/ChromeClientHaiku.cpp: Removed.
        * haiku/WebCoreSupport/ChromeClientHaiku.h: Removed.
        * haiku/WebCoreSupport/ContextMenuClientHaiku.cpp: Removed.
        * haiku/WebCoreSupport/ContextMenuClientHaiku.h: Removed.
        * haiku/WebCoreSupport/DragClientHaiku.cpp: Removed.
        * haiku/WebCoreSupport/DragClientHaiku.h: Removed.
        * haiku/WebCoreSupport/EditorClientHaiku.cpp: Removed.
        * haiku/WebCoreSupport/EditorClientHaiku.h: Removed.
        * haiku/WebCoreSupport/FrameLoaderClientHaiku.cpp: Removed.
        * haiku/WebCoreSupport/FrameLoaderClientHaiku.h: Removed.
        * haiku/WebCoreSupport/InspectorClientHaiku.cpp: Removed.
        * haiku/WebCoreSupport/InspectorClientHaiku.h: Removed.

2011-09-23  Anders Carlsson  <andersca@apple.com>

        Axe WebImageRendererFactory
        https://bugs.webkit.org/show_bug.cgi?id=68715

        Reviewed by Darin Adler.

        Remove WebImageRendererFactory.m from the Xcode project.

        * WebKit.xcodeproj/project.pbxproj:

2011-09-23  Anders Carlsson  <andersca@apple.com>

        Add OVERRIDE to a bunch of virtual member functions on clients
        https://bugs.webkit.org/show_bug.cgi?id=68712

        Reviewed by Sam Weinig.

        * WebKit.xcodeproj/project.pbxproj:

2011-09-21  Dan Bernstein  <mitz@apple.com>

        WebKit part of: Prevent the WebKit frameworks from defining inappropriately-named Objective-C classes
        https://bugs.webkit.org/show_bug.cgi?id=68451

        Reviewed by Darin Adler.

        * WebKit.xcodeproj/project.pbxproj: Added a script build phase that invokes
        check-for-inappropriate-objc-class-names, allowing only class names prefixed with "Web" or "_Web".

2011-09-19  Anders Carlsson  <andersca@apple.com>

        Remove WebViewEventHandling.mm
        https://bugs.webkit.org/show_bug.cgi?id=68387

        Reviewed by Adam Roben.

        Remove WebViewEventHandling.mm from the Xcode project.

        * WebKit.xcodeproj/project.pbxproj:

2011-09-19  Dan Bernstein  <mitz@apple.com>

        WebKit part of [mac] WebKit contains Objective-C classes that are not prefixed with its standard prefixes
        https://bugs.webkit.org/show_bug.cgi?id=68323

        Reviewed by Sam Weinig.

        Updated for the renaming of NonBlockingPanel to WebNonBlockingPanel.

        * English.lproj/WebJavaScriptTextInputPanel.nib/classes.nib: Removed.
        * English.lproj/WebJavaScriptTextInputPanel.nib/designable.nib: Added.
        * English.lproj/WebJavaScriptTextInputPanel.nib/info.nib: Removed.
        * English.lproj/WebJavaScriptTextInputPanel.nib/keyedobjects.nib:

2011-09-16  Filip Pizlo  <fpizlo@apple.com>

        DFG JIT should inline Math.abs
        https://bugs.webkit.org/show_bug.cgi?id=68227

        Reviewed by Oliver Hunt.

        Added JavaScriptCore/dfg to include path path.

        * CMakeLists.txt:

2011-09-14  Anders Carlsson  <andersca@apple.com>

        Get rid of WebCoreViewFactory and its WebViewFactory subclass
        https://bugs.webkit.org/show_bug.cgi?id=68124

        Reviewed by Sam Weinig.

        * WebKit.xcodeproj/project.pbxproj:

2011-08-23  Jonas M. Gastal <jgastal@profusion.mobi>

        Reviewed by Antonio Gomes.

        [EFL] Exporting JavaScript objects for EFL port
        https://bugs.webkit.org/show_bug.cgi?id=43446

        This patch allows to export objects to JavaScript API,
        just like qt does, but it uses the netscape api
        to do the convertion to javascript object.

        * CMakeLists.txt:
        Adding necessary files for the patch.

2011-08-05  Anders Carlsson  <andersca@apple.com>

        Remove PluginHalter
        https://bugs.webkit.org/show_bug.cgi?id=65729

        Reviewed by Darin Adler.

        Remove deleted files from Xcode project.

        * WebKit.xcodeproj/project.pbxproj:

2011-07-28  Tony Chang  <tony@chromium.org>

        Add sql to svn:ignore and remove app.

        * chromium: Modified property svn:ignore.

2011-07-08  David Reveman  <reveman@chromium.org>

        Reviewed by Stephen White.

        [Chromium] Edge anti-aliasing for composited layers.
        https://bugs.webkit.org/show_bug.cgi?id=61388

        Track changes to TilingData class which now uses an outer border.

        * chromium/tests/TilingDataTest.cpp:

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

        Reviewed by Simon Hausmann.

        generate-webkitversion.pl should not "use Switch"
        https://bugs.webkit.org/show_bug.cgi?id=63628

        Switch got deprecated on recent Perl versions and the script wasn't
        using the switch statement.
        
        * scripts/generate-webkitversion.pl: Remove "use Switch;" line.

2011-06-01  Jer Noble  <jer.noble@apple.com>

        Reviewed by Eric Carlson.

        Move Full Screen Controllers into WebCore.

        Remove dependency on QTKit from wekitExitFullscreen()
        https://bugs.webkit.org/show_bug.cgi?id=61843

        WebVideoFullscreenController, WebVideoFullscreenHUDController, and WebWindowAnimation
        have been moved into WebCore.

        * WebKit.xcodeproj/project.pbxproj:

2011-06-15  David Kilzer  <ddkilzer@apple.com>

        <http://webkit.org/b/62745> Convert WebNSFileManagerExtras.m to Objective-C++

        Reviewed by Joseph Pecoraro.

        * WebKit.xcodeproj/project.pbxproj:
        (WebNSFileManagerExtras.m): Rename to WebNSFileManagerExtras.mm
        and change file type to Objective-C++.

2011-06-02  Adam Barth  <abarth@webkit.org>

        Reviewed by Ryosuke Niwa.

        Update svn:ignore property on Source/WebKit/chromium
        https://bugs.webkit.org/show_bug.cgi?id=61952

        Add some more generated files and directories mapped in using DEPS to svn:ignore.

        * chromium: Modified property svn:ignore.

2011-05-20  Andy Estes  <aestes@apple.com>

        Reviewed by Darin Adler.

        WebView loses firstResponder status when entering full-screen mode.
        https://bugs.webkit.org/show_bug.cgi?id=61153

        * WebKit.xcodeproj/project.pbxproj: Export WebNSWindowExtras.h as a
        private header so that WebKit2 can include it.

2011-05-16  Dan Bernstein  <mitz@apple.com>

        No need to compile .js files, that is what the JIT is for.

        * WebKit.xcodeproj/project.pbxproj:

2011-05-12  Adele Peterson  <adele@apple.com>

        Reviewed by Darin Adler and Adam Barth.

        Fix for <rdar://problem/9253454> Solar Walk For Mac: Info window is blank (HTML5 parser)
        https://bugs.webkit.org/show_bug.cgi?id=60685

        * WebKit.xcodeproj/project.pbxproj: Added Misc/SolarWalkQuirksUserScript.js and copy it to Resources during the build phase. 

2011-04-18  Timothy Hatcher  <timothy@apple.com>

        Make update-webkit-localizable-strings put WebKit/win strings in WebCore
        now that all localized strings in WebKit/win use WEB_UI_STRING.

        https://webkit.org/b/58747

        Reviewed by Dan Bernstein.

        * English.lproj/Localizable.strings: Removed.

2011-04-17  Joseph Pecoraro  <joepeck@webkit.org>

        Reviewed by Timothy Hatcher.

        Move WebNodeHighlighter into its own file
        https://bugs.webkit.org/show_bug.cgi?id=58746

        * WebKit.xcodeproj/project.pbxproj: Add WebNodeHighlighter.{h,mm}.

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

        * CMakeLists.txt: Change DERIVED_SOURCES_DIR to DERIVED_SOURCES_WEBCORE_DIR

2011-04-11  Alexis Menard  <alexis.menard@openbossa.org>

        Unreviewed build fix for Mac.

        * WebKit.xcodeproj/project.pbxproj:

2011-04-11  Anna Cavender  <annacc@chromium.org>

        Reviewed by Eric Carlson.

        Setup ENABLE(TRACK) feature define + initial HTMLTrackElement
        https://bugs.webkit.org/show_bug.cgi?id=53556

        * WebKit.xcodeproj/project.pbxproj:

2011-04-08  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Oliver Hunt.

        A few heap-related renames and file moves.
        
        WeakGCPtr<T> => Weak<T>
        Global<T> => Strong<T>
        collector/ => heap/
        collector/* => heap/*
        runtime/WeakGCPtr.h => heap/Weak.h
        
        (Eventually, even more files should move into the heap directory. Like
        Heap.h and Heap.cpp, for example.)

        * CMakeLists.txt:

2011-04-08  Dan Bernstein  <mitz@apple.com>

        No need to compile .js files, that is what the JIT is for.

        * WebKit.xcodeproj/project.pbxproj:

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

        * WebKit.xcodeproj/project.pbxproj:

2011-04-07  Anna Cavender  <annacc@chromium.org>

        Reviewed by Eric Carlson.

        Setup ENABLE(TRACK) feature define + initial HTMLTrackElement
        https://bugs.webkit.org/show_bug.cgi?id=53556

        * WebKit.xcodeproj/project.pbxproj:

2011-04-07  Andrew Scherkus  <scherkus@chromium.org>

        Revert ENABLE_TRACK patch due to compile failures.

        * WebKit.xcodeproj/project.pbxproj:

2011-04-07  Andy Estes  <aestes@apple.com>

        Reviewed by Darin Adler.

        REGRESSION (r64712): Microsoft Outlook 2011: original message contents
        not included when replying to an email.
        https://bugs.webkit.org/show_bug.cgi?id=57794

        * WebKit.xcodeproj/project.pbxproj:

2011-04-05  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        Move attributedStringFromRange down to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=57905

        * WebKit.xcodeproj/project.pbxproj: Removed WebNSAttributedStringExtras, which is now in WebCore.

2011-03-29  Timothy Hatcher  <timothy@apple.com>

        Update WebKit Localizable.strings to only contain WebKit/win strings.

        https://webkit.org/b/57354

        Reviewed by Sam Weinig.

        * English.lproj/Localizable.strings: Updated.

2011-03-23  Jia Pu  <jpu@apple.com>

        Reviewed by Darin Adler.

        Hook up new AppKit autocorrection UI with WK2.
        https://bugs.webkit.org/show_bug.cgi?id=56055
        <rdar://problem/8947463>

        Please see WebCore/ChangeLog for detail.

        * WebKit.xcodeproj/project.pbxproj:

2011-03-17  Jeff Miller  <jeffm@apple.com>

        Use a consistent set of file patterns in the svn:ignore property for all .xcodeproj directories, specifically:
        
        *.mode*
        *.pbxuser
        *.perspective*
        project.xcworkspace
        xcuserdata

        * WebKit.xcodeproj: Modified property svn:ignore.

2011-03-15  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        REGRESSION (WebKit2): keygen element doesn't work
        https://bugs.webkit.org/show_bug.cgi?id=56402
        <rdar://problem/9006545>

        * WebKit.xcodeproj/project.pbxproj: Renamed WebKeyGenerator.m to use Objective C++.

2011-03-11  Anton D'Auria  <adauria@apple.com>

        Reviewed and landed by Brady Eidson.

        Add WebKit1 API to view and delete local storage
        https://bugs.webkit.org/show_bug.cgi?id=51878

        * WebKit.xcodeproj/project.pbxproj:

2011-03-02  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Fix remaining localization issues by piping all localized strings through WebCore's
        localization bottleneck.
        <rdar://problem/8728860>

        * WebKit.xcodeproj/project.pbxproj:

2011-03-01  Sam Weinig  <sam@webkit.org>

        Reviewed by Timothy Hatcher.

        WebKit2 needs to be made localizable
        https://bugs.webkit.org/show_bug.cgi?id=55483

        * StringsNotToBeLocalized.txt: Removed.
        * WebKit.xcodeproj/project.pbxproj:
        Copied Localizable.strings to WebCore, it can't be removed entirely
        yet since Windows is still using it.

2011-02-24  Peter Kasting  <pkasting@google.com>

        Reviewed by Eric Seidel.

        Drop the "U; " encryption level from the User Agent string.
        https://bugs.webkit.org/show_bug.cgi?id=54566

        * StringsNotToBeLocalized.txt:

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

        Reviewed by Alexey Proskuryakov.

        Drop the language tag part from the User Agent string
        https://bugs.webkit.org/show_bug.cgi?id=54560

        * StringsNotToBeLocalized.txt: Change the User Agent string
        template.

2011-02-18  Patrick Gansterer  <paroga@webkit.org>

        Unreviewed build fix after r78634 and r78786.

        * CMakeLists.txt:

2011-02-16  Luiz Agostini  <luiz.agostini@openbossa.org>

        Reviewed by Adam Roben.

        HTML5 <details> and <summary>: localized text
        https://bugs.webkit.org/show_bug.cgi?id=54260

        Default details summary text must be localizable.

        * English.lproj/Localizable.strings:

2011-02-06  Patrick Gansterer  <paroga@webkit.org>

        Reviewed by Andreas Kling.

        [CMake] Add dependencies for Visual Studio projects
        https://bugs.webkit.org/show_bug.cgi?id=53773

        Add a WebCore dependecy to WebKit, so CMake can 
        generate the correct build order for the solution.

        Remove JavaScriptCore dependecy, since WebCore already depends on it.

        * CMakeLists.txt:

2011-01-23  Mark Rowe  <mrowe@apple.com>

        Follow-up to r76477.

        Fix the scripts that detect problematic code such as static initializers
        and destructors, weak vtables, inappropriate files in the framework wrappers,
        and public headers including private headers. These had all been broken
        since the projects were moved in to the Source directory as the paths to the
        scripts were not updated at that time.

        * WebKit.xcodeproj/project.pbxproj:

2011-01-20  Zoltan Horvath  <zoltan@webkit.org>

        Reviewed by Csaba Osztrogonác.

        Refactoring of the custom allocation framework
        https://bugs.webkit.org/show_bug.cgi?id=49897

        Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
        The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
        equivalent macro implementation at the necessary places.

2011-01-17  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Mark Rowe.

        Update xcodeproj svn:ignore to include xcuserdata.

        * WebKit.xcodeproj: Modified property svn:ignore.

2011-01-17  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Adam Roben.

        Fix up the `make` build on Macs

        * Makefile: Point to the correct Makefile.shared

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

        * Makefile:
        * scripts/generate-webkitversion.pl:

2011-01-07  Enrica Casucci  <enrica@apple.com>

        Reviewed by Alexey Proskuryakov.

        Paste and drag and drop use different code paths to interact with the pasteboard.
        https://bugs.webkit.org/show_bug.cgi?id=52093
        The change consists in a refactoring of the code to have only one class that
        deals with the pasteboard on Mac.

        * WebKit.xcodeproj/project.pbxproj: Removed WebPasteboardHelper.mm and WebPasteboardHelper.h.

2010-12-31  Adam Barth  <abarth@webkit.org>

        Update SVN ignore property to hide two more external dependencies.

        * chromium: Modified property svn:ignore.

2010-12-22  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Mark Rowe.

        Changed WebKitTools to Tools in script build phases.

        * WebKit.xcodeproj/project.pbxproj:

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.

        * CMakeLists.txt: Add link flags to webkit library when there's a
        version script.

2010-12-07  Simon Fraser  <simon.fraser@apple.com>

        Update Xcode project for newer Xcode.

        * WebKit.xcodeproj/project.pbxproj:

2010-11-18  Darin Adler  <darin@apple.com>

        * StringsNotToBeLocalized.txt: Updated for recent changes.

2010-11-16  Patrick Gansterer  <paroga@webkit.org>

        Reviewed by Andreas Kling.

        [CMake] Remove platform dependent include directories
        https://bugs.webkit.org/show_bug.cgi?id=49553

        * CMakeLists.txt:

2010-11-12  John Knottenbelt  <jknotten@chromium.org>

        Reviewed by Steve Block.

        Rename GeolocationControllerClient to GeolocationClient.
        https://bugs.webkit.org/show_bug.cgi?id=49259

        * WebKit.xcodeproj/project.pbxproj:

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

        [EFL] Unreviewed. Build fix after r71496.

        * CMakeLists.txt: Add WebCore/loader/cache directory to WebKit's
        include directories list.

2010-11-04  Mike Thole  <mthole@apple.com>

        Reviewed by Dan Bernstein.

        Title for images should use localized numerals
        https://bugs.webkit.org/show_bug.cgi?id=49017

        * English.lproj/Localizable.strings: Updated.

2010-10-28  Mark Rowe  <mrowe@apple.com>

        Stop allowing deprecated methods to be used in NetscapePluginHostProxy.mm now
        that deprecated methods are no longer used.

        * WebKit.xcodeproj/project.pbxproj:

2010-10-26  Dan Bernstein  <mitz@apple.com>

        Build fix.

        * WebKit.xcodeproj/project.pbxproj: Allow deprecated methods to be used in NetscapePluginHostProxy.mm.

2010-10-23  David Kilzer  <ddkilzer@apple.com>

        <http://webkit.org/b/48186> Remove unneeded WebHTMLRepresentationInternal.h header

        Reviewed by Sam Weinig.

        The only method defined in WebHTMLRepresentationInternal.h is
        also defined in WebHTMLRepresentation.h, so use that instead.

        * WebKit.xcodeproj/project.pbxproj: Removed references to
        WebHTMLRepresentationInternal.h.

2010-10-21  David Kilzer  <ddkilzer@apple.com>

        <http://webkit.org/b/48047> Fix warnings found by check-Xcode-source-file-types

        Reviewed by Adam Roben.

        Fixes the following warning:

            WARNING: Incorrect file type 'sourcecode.cpp.objcpp' for file 'WebStringTruncator.h'.
            1 issues found for WebKit/WebKit.xcodeproj/project.pbxproj.

        * WebKit.xcodeproj/project.pbxproj: Removed explicit file type
        for WebStringTruncator.h to make it match other header files.

2010-10-20  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed.

        Fix efl build, add missing svg/properties include directory.

        * CMakeLists.txt:

2010-10-18  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by David Kilzer.

        https://bugs.webkit.org/show_bug.cgi?id=47864
        Convert WebNSUserDefaultsExtras.m to .mm

        * WebKit.xcodeproj/project.pbxproj: Renamed WebNSUserDefaultsExtras.m.

2010-10-12  Eric Seidel  <eric@webkit.org>

        Reviewed by Darin Adler.

        REGRESSION (new parser): Leopard/Tiger Mail <head>/<body> quirk is gone
        https://bugs.webkit.org/show_bug.cgi?id=45693

        * WebKit.xcodeproj/project.pbxproj:
         - Add the MailQuirksUserScript.js to the project.

2010-10-11  Anders Carlsson  <andersca@apple.com>

        Reviewed by Darin Adler.

        Remove WebIconFetcher from WebKit and IconFetcher from WebCore
        https://bugs.webkit.org/show_bug.cgi?id=47523

        Remove all traces of the WebKit WebIconFetcher class. It's SPI that nobody uses.

        * WebKit.xcodeproj/project.pbxproj:

2010-10-07  Jessie Berlin  <jberlin@apple.com>

        Reviewed by Sam Weinig.

        Add Private API for creating a WebKit1 WebSerializedJSValue from the internal
        representation of a WebKit2 WebSerializedScriptValue.
        https://bugs.webkit.org/show_bug.cgi?id=47390

        * WebKit.xcodeproj/project.pbxproj:
        Add WebSerializedJSValuePrivate.h.

2010-10-05  John Abd-El-Malek  <jam@chromium.org>

        Reviewed by Darin Fisher.

        [chromium] Get the link from a plugin when creating a context menu
        https://bugs.webkit.org/show_bug.cgi?id=47130

        * chromium/public/WebPlugin.h:
        (WebKit::WebPlugin::linkAtPosition):
        * chromium/public/WebView.h:
        * chromium/src/ChromeClientImpl.cpp:
        (WebKit::ChromeClientImpl::mouseDidMoveOverElement):
        * chromium/src/ContextMenuClientImpl.cpp:
        (WebKit::ContextMenuClientImpl::getCustomMenuFromDefaultItems):

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

        Unreviewed, EFL build fix.

        * CMakeLists.txt:

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

        Reviewed by Eric Carlson.

        [GTK] enhanced context menu for media elements
        https://bugs.webkit.org/show_bug.cgi?id=45021

        Updated localizable strings.

        * English.lproj/Localizable.strings:

2010-09-17  David Kilzer  <ddkilzer@apple.com>

        <http://webkit.org/b/45989> Add WebArchiveInternal.h to Xcode project

        Reviewed by Joseph Pecoraro.

        * WebKit.xcodeproj/project.pbxproj: Added missing
        WebArchiveInternal.h header file to the project.  It has been
        missing since r31281!

2010-09-16  Dan Bernstein  <mitz@apple.com>

        Reverted the previous change because r67628 has been reverted.

        * English.lproj/Localizable.strings:

2010-09-16  Dan Bernstein  <mitz@apple.com>

        Updated localizable strings.

        * English.lproj/Localizable.strings:

2010-09-10  Darin Adler  <darin@apple.com>

        Reviewed by Sam Weinig.

        Move some Dashboard stuff from WebCore to WebKit along with a bit more FrameMac cleanup
        https://bugs.webkit.org/show_bug.cgi?id=45582

        * WebKit.xcodeproj/project.pbxproj: Added WebDashboardRegion.h/mm and
        also gave the header private visibility so it will get installed in the
        PrivateHeaders directory.

2010-09-02  Steve Block  <steveblock@google.com>

        Reviewed by Adam Barth.

        Hook up LayoutTestController.setMockDeviceOrientation() on Mac.
        https://bugs.webkit.org/show_bug.cgi?id=43181

        * WebKit.xcodeproj/project.pbxproj:

2010-08-30  Andy Estes  <aestes@apple.com>

        Reviewed by Darin Adler.

        Add 'application/x-snkp' to StringsNotToBeLocalized.txt.

        * StringsNotToBeLocalized.txt:

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

        Unreviewed build fix.

        As opposed to WebCore, JavascriptCore and wtf, webkit is always a
        shared library. After r65366, libewebkit.so was not being installed
        anymore when building with SHARED_CORE=0 (which is the default). This
        partially reverts that revision in order to fix this issue.

        * CMakeLists.txt: always install webkit library.

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.

        * WebKit.xcodeproj/project.pbxproj: Added new files.

2010-08-17  Brady Eidson  <beidson@apple.com>

        Reviewed by Sam Weinig.

        Remove developmentRegion from the project file as it shouldn't have been checked in.

        * WebKit.xcodeproj/project.pbxproj:

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

        [EFL] Build fix after r65366.

        * CMakeLists.txt: Use if (VAR) instead of if (${VAR}) to check if
        they're empty.

2010-08-14  Joseph Pecoraro  <joepeck@webkit.org>

        Reviewed by Pavel Feldman.

        Web Inspector: -[WebInspector attach] and detach should work
        https://bugs.webkit.org/show_bug.cgi?id=43924

        * WebKit.xcodeproj/project.pbxproj: Added WebInspectorFrontend.{h,mm}.

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

        Reviewed by Kenneth Rohde Christiansen.

        [CMake] Set target properties only if available
        https://bugs.webkit.org/show_bug.cgi?id=43978

        * CMakeLists.txt:

2010-08-13  Gavin Barraclough  <barraclough@apple.com>

        Rubber stamped by Sam Weinig.
        Switch String::/UString::ascii() to return a CString.

        * WebKit.xcodeproj/project.pbxproj:

2010-08-06  Gavin Barraclough  <barraclough@apple.com>

        Rubber stamped by Sam Weinig

        Bug 43594 - Add string forwards to Forward.h
        This allows us to remove forward declarations for these classes from
        WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).

        * WebKit.xcodeproj/project.pbxproj:

2010-08-06  Jessie Berlin  <jberlin@apple.com>

        Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
        Unreviewed.

        * WebKit.xcodeproj/project.pbxproj:

2010-08-03  Joseph Pecoraro  <joepeck@webkit.org>

        Reviewed by David Kilzer.

        Limit ApplicationCache Total and Per-Origin Storage Capacity (Quotas)
        https://bugs.webkit.org/show_bug.cgi?id=40627

        Part 5 - Refactor Quota Management in WebSecurityOrigin into Managers

        * WebKit.xcodeproj/project.pbxproj: Add new Quota Managers, remove old SecurityOrigin subclasses.

2010-07-31  David Kilzer  <ddkilzer@apple.com>

        <http://webkit.org/b/43307> Make sure all private headers are copied to PrivateHeaders directory

        Reviewed by Dan Bernstein.

        This also fixes compilation of DumpRenderTree after changes for
        Bug 40627.

        * WebKit.xcodeproj/project.pbxproj: Set the PRIVATE attribute on
        the following headers:
        - WebFormDelegatePrivate.h
        - WebKitStatisticsPrivate.h
        - WebSecurityOriginPrivate.h

2010-07-30  Joseph Pecoraro  <joepeck@webkit.org>

        Reviewed by David Kilzer.

        Limit ApplicationCache Total and Per-Origin Storage Capacity (Quotas)
        https://bugs.webkit.org/show_bug.cgi?id=40627

        * WebKit.xcodeproj/project.pbxproj:
        * efl/WebCoreSupport/ChromeClientEfl.cpp:
        (WebCore::ChromeClientEfl::reachedApplicationCacheOriginQuota):
        * efl/WebCoreSupport/ChromeClientEfl.h:

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

        Add version and soname to libewebkit.so.

        * CMakeLists.txt:

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

        Reviewed by Antonio Gomes.

        [EFL] Move CMakeListsEfl.txt to WebKit/efl/
        https://bugs.webkit.org/show_bug.cgi?id=43002

        This should reduce the noise in WebKit/ChangeLog that comes from EFL
        port. Most of the changes on EFL port should be logged in
        WebKit/efl/ChangeLog.

        * CMakeLists.txt: Just change the path from where to include the file.

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

        Just add glib flags and directories if necessary.

        * CMakeListsEfl.txt:

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

        Just add soup/curl directories and flags for the specific
        backend being used.

        * CMakeLists.txt:
        * CMakeListsEfl.txt:

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

        Reviewed by Antonio Gomes.

        [EFL] Implement input method notification
        https://bugs.webkit.org/show_bug.cgi?id=42640

        Notify browser when keyboard should be shown/hidden. Input method
        hints are updated before sending the signal. Client should be able to
        determine the input type by calling ewk_view_imh_get().

        * efl/EWebLauncher/main.c:
        (on_inputmethod_changed): example implementation that just prints to
        stdout if keyboard should be shown or hidden and the imh flags.
        (browserCreate): listen to signal about input method changing its
        state.
        * efl/WebCoreSupport/EditorClientEfl.cpp:
        (WebCore::EditorClientEfl::setInputMethodState): call new function
        responsible for implementing this notification.
        * efl/ewk/ewk_private.h: ewk_view_input_method_state_set() is called
        only from inside WebKit.
        * efl/ewk/ewk_view.cpp: implement setters and getters
        (ewk_view_imh_get):
        (ewk_view_input_method_state_set):
        * efl/ewk/ewk_view.h: introduce Ewk_Imh enum which contains the
        possible input types.
        (_Ewk_View_Smart_Class::):

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

        Reviewed by Kenneth Rohde Christiansen.

        Fix zoom in/out on EFL after r62666. The patch for adding viewport
        missed the initialization of zoom_range.user_scalable. In case browser
        doesn't care about the viewport and does not listen to the signal,
        user_scalable will be always false, thus inhibiting zoom in/out.
        https://bugs.webkit.org/show_bug.cgi?id=42656

        * efl/EWebLauncher/main.c:
        (on_viewport_changed): when listening to signal about viewport meta tag,
        it's not sufficient to receive the parameters. One needs also to enforce
        these parameters in WebKit.
        * efl/ewk/ewk_view.cpp:
        (_ewk_view_priv_new): initialize user_scalable parameter to allow
        browser zooming in and out.

2010-07-16  Zhe Su  <suzhe@chromium.org>

        Reviewed by Darin Adler.

        REGRESSION(r61484): Broke focus behaviour on Qt and probably other platforms
        https://bugs.webkit.org/show_bug.cgi?id=42253

        Dummy implementation of EditorClient::willSetInputMethodState.

        * efl/WebCoreSupport/EditorClientEfl.cpp:
        (WebCore::EditorClientEfl::willSetInputMethodState):
        * efl/WebCoreSupport/EditorClientEfl.h:

2010-07-15  Mark Rowe  <mrowe@apple.com>

        Update the sorting in the Xcode project files.

        * WebKit.xcodeproj/project.pbxproj:

2010-07-14  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin Adler.

        Patch for https://bugs.webkit.org/show_bug.cgi?id=42232
        Make changing Cursors work in WebKit2.

        * efl/WebCoreSupport/ChromeClientEfl.cpp:
        (WebCore::ChromeClientEfl::setCursor):
        * efl/WebCoreSupport/ChromeClientEfl.h:
        Change prototype to match new one.

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

        Reviewed by Antonio Gomes.

        [EFL] Add eina_safety to popup menu deletion.
        https://bugs.webkit.org/show_bug.cgi?id=41873

        Since this is a public call, it's better to have an eina_safety on
        public calls. It would crash if browser calls this function to select
        an item of a nonexistent popup.

        * efl/ewk/ewk_view.cpp: add eina_safety to return if popup menu client does
        not exist.

2010-07-13  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/8186963> Expose RenderLayer hierarchy via Obj-C for debugging.
        
        Add WebRenderLayer files.

        * WebKit.xcodeproj/project.pbxproj:

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

        Reviewed by Antonio Gomes.

        This commit implements an API for configuring a path to the cookie
        file in the Mozilla "cookies.txt" format, and functions to deal with it
        in a more EFL like API.

        [EFL] Add API for dealing with cookies in EFL port.
        https://bugs.webkit.org/show_bug.cgi?id=41770

        * CMakeListsEfl.txt:
        * efl/ewk/EWebKit.h:
        * efl/ewk/ewk_cookies.cpp: Added.
        (ewk_cookies_file_set): Set a path to the file storing cookies.
        (ewk_cookies_clear): Clear all the cookies from the current cookie jar.
        (ewk_cookies_get_all): Get all the cookies from the current cookie jar.
        (ewk_cookies_cookie_del): Delete a specific cookie from the cookie jar.
        (ewk_cookies_cookie_free): Free memory used by a cookie.
        (ewk_cookies_policy_set): Set which acceptance policy will be used.
        (ewk_cookies_policy_get): Get current acceptance policy being used.
        * efl/ewk/ewk_cookies.h: Added.
        (_Ewk_Cookie::):

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

        Unreviewed build fix after r60050.

        * CMakeLists.txt: Add WebCore/bindings to the include path.

2010-07-11  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Reviewed by Adam Barth.

        [EFL] Fix style errors in ewk_private.h.
        https://bugs.webkit.org/show_bug.cgi?id=41742

        * efl/ewk/ewk_private.h:

2010-07-09  Darin Adler  <darin@apple.com>

        * StringsNotToBeLocalized.txt: Updated for recent changes.

2010-07-08  Joone Hur  <joone@kldp.org>

        Reviewed by Antonio Gomes.

        [EFL] fix cmake build for EWebLauncher
        https://bugs.webkit.org/show_bug.cgi?id=41830

        * CMakeListsEfl.txt: add ${LIBSOUP24_LDFLAGS} for link flags

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

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Implement several notification hooks in FrameLoaderClient.
        We just notify browser, making the appropriate type conversions about
        the events occurring in WebCore.
        https://bugs.webkit.org/show_bug.cgi?id=41005

        * efl/WebCoreSupport/FrameLoaderClientEfl.cpp:
        (WebCore::FrameLoaderClientEfl::dispatchWillSendRequest): alloc 2 new
        wrapper structures in stack in order to give client the opportunity to
        change parameters. Then, call the function it defines.
        (WebCore::FrameLoaderClientEfl::assignIdentifierToInitialRequest):
        (WebCore::FrameLoaderClientEfl::didPerformFirstNavigation): notify
        client.
        (WebCore::FrameLoaderClientEfl::saveViewStateToItem): notify client.
        (WebCore::FrameLoaderClientEfl::restoreViewState): notify client.
        (WebCore::FrameLoaderClientEfl::dispatchDidChangeLocationWithinPage):
        notify browser that the url changed.
        (WebCore::FrameLoaderClientEfl::dispatchDidReceiveIcon): notify
        browser.
        (WebCore::FrameLoaderClientEfl::dispatchDidStartProvisionalLoad):
        notify browser.
        (WebCore::FrameLoaderClientEfl::dispatchDidFinishDocumentLoad): notify
        browser.
        (WebCore::FrameLoaderClientEfl::dispatchDidFirstLayout): norify
        browser.
        (WebCore::FrameLoaderClientEfl::dispatchDidFirstVisuallyNonEmptyLayout):
        notify browser.
        (WebCore::FrameLoaderClientEfl::dispatchShow): notify browser.
        * efl/ewk/ewk_frame.cpp:
        (ewk_frame_request_will_send): emit signal notifying browser.
        (ewk_frame_request_assign_identifier): emit signal notifying browser.
        (ewk_frame_did_perform_first_navigation): emit signal notifying browser.
        (ewk_frame_view_state_save): emit signal notifying browser.
        (ewk_frame_load_provisional): emit signal notifying browser.
        (ewk_frame_load_firstlayout_finished): emit signal notifying browser.
        (ewk_frame_load_firstlayout_nonempty_finished): emit signal notifying browser.
        (ewk_frame_load_document_finished): emit signal notifying browser.
        * efl/ewk/ewk_frame.h: update documentation about signals being sent
        and implement wrapper struct for ResourceRequest.
        * efl/ewk/ewk_private.h: export private functions.

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

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Flush backing store when going to new page.
        Call client method to flush backing store when going to a new page. This
        is the notification that data related to current page should be dropped,
        since a new page is being loaded.
        https://bugs.webkit.org/show_bug.cgi?id=41008

        * efl/WebCoreSupport/FrameLoaderClientEfl.cpp:
        (WebCore::FrameLoaderClientEfl::transitionToCommittedForNewPage):

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

        Unreviewed build fix after r62676.

        [EFL] Fix build after Page constructor has changed. By now, the
        introduced BackForwardControllerClient is not used.
        https://bugs.webkit.org/show_bug.cgi?id=41825

        * efl/ewk/ewk_view.cpp:
        (_ewk_view_priv_new): Add missing parameter to WebCore::Page
        constructor.

2010-07-07  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.

        Rename the WebBaseNetscapePluginStream.cpp and .h files to WebNetscapePluginStream.cpp and .h to match the class name.

        * WebKit.xcodeproj/project.pbxproj:

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

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] EFLWebKit doesn't support viewport meta tag.
        Support viewport meta tag on EFL Port.
        https://bugs.webkit.org/show_bug.cgi?id=40278

        * efl/EWebLauncher/main.c: Process 'viewport,changed' signal.
        (viewport_set):
        (on_viewport_changed): Add a callback function for the 'viewport,changed' signal.
        (browserCreate): Register the callback function for the 'viewport,changed' signal.
        * efl/WebCoreSupport/ChromeClientEfl.cpp: Implement method to process viewport tag.
        (WebCore::ChromeClientEfl::didReceiveViewportArguments):
        * efl/WebCoreSupport/ChromeClientEfl.h: Define method to process viewport tag.
        * efl/WebCoreSupport/FrameLoaderClientEfl.cpp:
        (WebCore::FrameLoaderClientEfl::FrameLoaderClientEfl): Implement a function to set layout
        when website doesn't contain viewport tag.
        (WebCore::FrameLoaderClientEfl::dispatchDidCommitLoad):
        (WebCore::FrameLoaderClientEfl::dispatchDidFirstLayout):
        * efl/WebCoreSupport/FrameLoaderClientEfl.h:
        (WebCore::FrameLoaderClientEfl::setInitLayoutCompleted):
        (WebCore::FrameLoaderClientEfl::getInitLayoutCompleted):
        * efl/ewk/ewk_private.h: Added internal APIs to process viewport tag.
        * efl/ewk/ewk_view.cpp: Added APIs to process and to handle viewport tag.
        (_ewk_view_priv_new):
        (ewk_view_fixed_layout_size_set):
        (ewk_view_zoom_set):
        (ewk_view_zoom_weak_set):
        (ewk_view_zoom_animated_set):
        (ewk_view_viewport_set): Reports that viewport has changed.
        (ewk_view_viewport_get): Reports that viewport has changed.
        (ewk_view_zoom_range_set): Sets the zoom range.
        (ewk_view_zoom_range_min_get): Gets minimum value of zoom range.
        (ewk_view_zoom_range_max_get): Gets maximum value of zoom range.
        (ewk_view_user_scalable_set): Sets if zoom is enabled.
        (ewk_view_user_scalable_get): Gets if zoom is enabled.
        * efl/ewk/ewk_view.h:

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

        * CMakeLists.txt:
        * CMakeListsEfl.txt:

2010-07-05  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Implement downloadURL in ContextMenuClientEfl
        When user selects a download menu from context menu, send the download 
        request to application.
        https://bugs.webkit.org/show_bug.cgi?id=41149

        * efl/WebCoreSupport/ContextMenuClientEfl.cpp:
        (WebCore::ContextMenuClientEfl::downloadURL): Get url for downloading 
        file and Send it to application.
        * efl/WebCoreSupport/ContextMenuClientEfl.h:

2010-06-30  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Implement windowRect() and setWindowRect() in ChromeClientEfl.cpp
        https://bugs.webkit.org/show_bug.cgi?id=40876

        * efl/WebCoreSupport/ChromeClientEfl.cpp: Implements two methods
        to change window size.

        (WebCore::ChromeClientEfl::windowRect):
        (WebCore::ChromeClientEfl::setWindowRect):

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.

        * efl/EWebLauncher/main.c:
        * efl/ewk/ewk_view.cpp:
        (_ewk_view_zoom_animator_cb): Return Eina_Bool instead of int.

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

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Simplify zoom setting by narrowing with WebCore API.
        Instead of creating a zoom_text_only field, use the already defined enum
        by WebCore.
        https://bugs.webkit.org/show_bug.cgi?id=40993

        * efl/ewk/ewk_frame.cpp: sd->zoom_text_only => sd->zoom_mode
        (ewk_frame_zoom_set):
        (ewk_frame_zoom_text_only_get):
        (ewk_frame_zoom_text_only_set):

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

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Implement download requests
        When a download request arrives through FrameLoaderClient, forward it to
        browser in order to be possible to download files.
        https://bugs.webkit.org/show_bug.cgi?id=40967

        * efl/WebCoreSupport/FrameLoaderClientEfl.cpp:
        (WebCore::FrameLoaderClientEfl::download): get file names and
        forward to ewk_view_download_request()
        * efl/ewk/ewk_private.h: export private function to WebCoreSupport

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

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Stop frame loaders when deleting view.
        Frame loaders were still alive after view is deleted, causing
        segmentation fault when libsoup had something to deliver yet.
        https://bugs.webkit.org/show_bug.cgi?id=41007

        * efl/ewk/ewk_view.cpp:
        (_ewk_view_smart_del): stop loaders.

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

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Fix warnings about printf format
        When printing uint64_t the macro PRIu64 is needed in order to be
        portable across 32 and 64 bits. It was previously showing warning
        messages on 32-bits systems.
        https://bugs.webkit.org/show_bug.cgi?id=40965

        * efl/ewk/ewk_view.cpp:
        (ewk_view_exceeded_database_quota):

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

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Do not load error message for download and cancellation.
        When a download is made or a request is cancelled an error page should
        not be shown.
        https://bugs.webkit.org/show_bug.cgi?id=40956

        * efl/WebCoreSupport/FrameLoaderClientEfl.cpp:
        (WebCore::FrameLoaderClientEfl::dispatchDidFailLoading): return if it
        should not fallback.
        (WebCore::FrameLoaderClientEfl::dispatchDidFailLoad): return if it
        should not fallback.
        (WebCore::FrameLoaderClientEfl::interruptForPolicyChangeError): fix
        typo in related error message.
        (WebCore::FrameLoaderClientEfl::shouldFallBack): if user cancelled the
        request or the policy changed (for example, because the request is a
        download) then it should not fallback.

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

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Implement runOpenPanel method. The interface with browser was
        already implemented. Now we are actually calling it.
        https://bugs.webkit.org/show_bug.cgi?id=40923

        * efl/WebCoreSupport/ChromeClientEfl.cpp:
        (WebCore::ChromeClientEfl::runOpenPanel): implement method.
        * efl/ewk/ewk_private.h: export to WebCoreSupport the needed method

2010-06-24  Jer Noble  <jer.noble@apple.com>

        Reviewed by Eric Carlson.

        Full-screened content doesn't keep the display on: Safari not grabbing a power assertion?
        https://bugs.webkit.org/show_bug.cgi?id=40939
        rdar://problem/7996172
        
        Add IOKit.framework to the list of linked frameworks.

        * WebKit.xcodeproj/project.pbxproj:

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

        Reviewed by Gustavo Noronha Silva.

        [EFL] Add Libs.private to ewebkit.pc when building with SHARED_CORE.
        https://bugs.webkit.org/show_bug.cgi?id=40862
        
        * CMakeListsEfl.txt:
        * efl/ewebkit.pc.in:

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

        Reviewed by Gustavo Noronha Silva.

        Add implementaion of new windows for EFL port. Both cases of a link
        with target="_blank" and a javascript that does window.open() are
        treated, delegating to browser the role of actually creating the
        window (or blocking it).
        https://bugs.webkit.org/show_bug.cgi?id=40930

        * CMakeListsEfl.txt: add new file that wraps the WindowFeatures struct
        * efl/WebCoreSupport/ChromeClientEfl.cpp:
        (WebCore::ChromeClientEfl::createWindow): implement method for
        creating new window by delegating to browser its creation. Browser
        might decide to continue on the same window by returning the same
        view object.
        * efl/WebCoreSupport/FrameLoaderClientEfl.cpp:
        (WebCore::FrameLoaderClientEfl::dispatchCreatePage): implement method
        for creating new window when its creation is done by a javascript
        script.
        * efl/ewk/EWebKit.h: new header for WindowFeatures.
        * efl/ewk/ewk_private.h:
        * efl/ewk/ewk_view.cpp:
        (ewk_view_window_create): call the method implemented by browser.
        * efl/ewk/ewk_view.h:
        * efl/ewk/ewk_window_features.cpp: Added.
        (ewk_window_features_unref):
        (ewk_window_features_ref):
        (ewk_window_features_bool_property_get):
        (ewk_window_features_int_property_get):
        (ewk_window_features_new_from_core): create and wrapped struct
        containing the core struct.
        * efl/ewk/ewk_window_features.h: Added.

2010-06-18  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.

        Rename WebPluginPackage.m to make it an Objective-C++ file.

        * WebKit.xcodeproj/project.pbxproj:

2010-06-18  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.

        Make WebCoreSystemInterface.h a C++ only header
        https://bugs.webkit.org/show_bug.cgi?id=40867

        * WebKit.xcodeproj/project.pbxproj:

2010-06-18  Anders Carlsson  <andersca@apple.com>

        Reviewed by Dan Bernstein.

        Add stubbed out WebPlatformStrategies class to WebKit.
        https://bugs.webkit.org/show_bug.cgi?id=40851

        * WebKit.xcodeproj/project.pbxproj:

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

        Reviewed by Simon Hausmann.

        [qt] Better check for the declarative plugin inclusion.

        * WebKit.pro:

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

        Reviewed by Eric Seidel.

        Clean EFL header files in order to diminish the compilation time with
        EFL from subversion. We remove the EFL includes from header files and use
        forward declarations, including the headers in correspondent source
        files when needed. This causes only the needed source files to be
        recompiled in case a new version of EFL is installed instead of
        triggering a recompilation of almost all WebCore/WebKit.
        https://bugs.webkit.org/show_bug.cgi?id=40575

        * efl/WebCoreSupport/ChromeClientEfl.cpp: include needed header.
        * efl/WebCoreSupport/ChromeClientEfl.h: forward declaration.
        * efl/WebCoreSupport/EditorClientEfl.h: forward declaration.

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

        Unreviewed EFL build fix. Simple typo.

        * efl/WebCoreSupport/InspectorClientEfl.cpp:
        (WebCore::InspectorClientEfl::sendMessageToFrontend):

2010-06-14  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 directories fetched by chromium and chromium mac output dir.

        * chromium: Added property svn:ignore.

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

        Reviewed by Pavel Feldman.

        WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc
        data from inspected page to WebInspector as JSON string via http. The native
        serialization to JSON string is supported by InspectorValue's classes. This patch
        has the implementation of sendMessageToFrontend function. WebKit version of it still
        uses ScriptFunctionCall and will be switched to another transport a little bit later.
        https://bugs.webkit.org/show_bug.cgi?id=40134

        * efl/WebCoreSupport/InspectorClientEfl.cpp:
        (WebCore::InspectorClientEfl::sendMessageToFrontend):
        * efl/WebCoreSupport/InspectorClientEfl.h:

2010-06-09  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r60889.
        http://trac.webkit.org/changeset/60889
        https://bugs.webkit.org/show_bug.cgi?id=40365

        gtk bot has some kind of memory corruption (Requested by
        loislo on #webkit).

        * efl/WebCoreSupport/InspectorClientEfl.cpp:
        * efl/WebCoreSupport/InspectorClientEfl.h:

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

        Reviewed by Pavel Feldman.

        WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc
        data from inspected page to WebInspector as JSON string via http. The native
        serialization to JSON string is supported by InspectorValue's classes. This patch
        has the implementation of sendMessageToFrontend function. WebKit version of it still
        uses ScriptFunctionCall and will be switched to another transport a little bit later.
        https://bugs.webkit.org/show_bug.cgi?id=40134

        * efl/WebCoreSupport/InspectorClientEfl.cpp:
        (WebCore::InspectorClientEfl::sendMessageToFrontend):
        * efl/WebCoreSupport/InspectorClientEfl.h:

2010-06-01  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=39434
        REGRESSION (r59811): Geolocation callbacks cannot be created

        Removing unused WebGeolocationMock.

        * WebKit.xcodeproj/project.pbxproj:

2010-05-31  Lyon Chen  <liachen@rim.com>

        Reviewed by Kent Tamura.

        Enum value FORWARD, BACKWARD, RIGHT, LEFT are causing macro conflicts.
        https://bugs.webkit.org/show_bug.cgi?id=35530

        Change enum EAlteration from { MOVE, EXTEND } to { AlterationMove, AlterationExtend } and enum EDirection { FORWARD, BACKWARD, RIGHT, LEFT} to { DirectionForward, DirectionBackward, DirectionRight, DirectionLeft } to avoid macro conflict, and also better coding style conformance.

        * efl/WebCoreSupport/EditorClientEfl.cpp:
        (WebCore::EditorClientEfl::handleEditingKeyboardEvent):

2010-05-31  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Add Context Menu implementation
        https://bugs.webkit.org/show_bug.cgi?id=39821

        * CMakeListsEfl.txt: add context menu files.
        * efl/WebCoreSupport/ContextMenuClientEfl.cpp:
        (WebCore::ContextMenuClientEfl::getCustomMenuFromDefaultItems):
        (WebCore::ContextMenuClientEfl::newPlatformDescription):
        (WebCore::ContextMenuClientEfl::freePlatformDescription):
        (WebCore::ContextMenuClientEfl::appendItem):
        (WebCore::ContextMenuClientEfl::show):
        * efl/WebCoreSupport/ContextMenuClientEfl.h:
        * efl/ewk/EWebKit.h:
        * efl/ewk/ewk_contextmenu.cpp: Added. Implement the API used by
        browser for manipulating context menus.
        (ewk_context_menu_ref):
        (ewk_context_menu_unref):
        (ewk_context_menu_destroy):
        (ewk_context_menu_item_list_get):
        (ewk_context_menu_item_new):
        (ewk_context_menu_item_select):
        (ewk_context_menu_item_free):
        (ewk_context_menu_item_type_get):
        (ewk_context_menu_item_type_set):
        (ewk_context_menu_item_action_get):
        (ewk_context_menu_item_action_set):
        (ewk_context_menu_item_title_get):
        (ewk_context_menu_item_title_set):
        (ewk_context_menu_item_checked_get):
        (ewk_context_menu_item_checked_set):
        (ewk_context_menu_item_enabled_get):
        (ewk_context_menu_item_enabled_set):
        (ewk_context_menu_new):
        (ewk_context_menu_free):
        (ewk_context_menu_item_append):
        (ewk_context_menu_custom_get):
        (ewk_context_menu_show):
        * efl/ewk/ewk_contextmenu.h: Added.
        * efl/ewk/ewk_private.h:
        * efl/ewk/ewk_view.cpp:
        (ewk_view_context_menu_forward_event): inform browser a new context
        menu was created.
        (ewk_view_exceeded_database_quota): small fix to previous
        changed function.
        * efl/ewk/ewk_view.h:

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

        Reviewed by Kenneth Rohde Christiansen.

        [EF] Remove compiler warnings and add test for switching page
        encoding.
        https://bugs.webkit.org/show_bug.cgi?id=39871

        * efl/EWebLauncher/main.c:
        (print_history):
        (on_key_down):
        (main):

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

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Allow client to override default database quota. We increase the
        default database quota to 1MB (it was incorrectly set to 1KB, which is
        too low) and add methods to allow client to iteratively database quota
        when it becomes greater than the allowed value.
        https://bugs.webkit.org/show_bug.cgi?id=39867

        * efl/WebCoreSupport/ChromeClientEfl.cpp:
        (WebCore::ChromeClientEfl::exceededDatabaseQuota): reimplement method
        to allow client to increase database quota iteratively.
        * efl/ewk/ewk_private.h:
        * efl/ewk/ewk_settings.cpp:
        * efl/ewk/ewk_view.h:

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

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Add default path to web database and methods to set it.
        If a default path is not set, it will default to "/", in which a
        normal user usually does not have write permission.

        * efl/EWebLauncher/main.c: overwrite default directory with another
        one.
        (main):
        * efl/ewk/ewk_main.cpp:
        (ewk_init): add default path
        * efl/ewk/ewk_settings.cpp: add methods to set and get database path
        (ewk_settings_web_database_path_set):
        (ewk_settings_web_database_path_get):
        * efl/ewk/ewk_settings.h:

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

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Fix wrongly set clipper. Now the scrollbars from main
        frame are shown even on a zoom level lower than 1.0.

        * efl/ewk/ewk_view_single.c:
        (_ewk_view_single_smart_add):
        (_ewk_view_single_smart_backing_store_add):
        (ewk_view_single_smart_set):

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

        Reviewed by Kenneth Rohde Christiansen.

        [EFL] Add support for Popup menus
        https://bugs.webkit.org/show_bug.cgi?id=39629

        * efl/WebCoreSupport/ChromeClientEfl.cpp: implement methods to create
        and destroy popup menu.
        (WebCore::ChromeClientEfl::createSelectPopup): ditto.
        (WebCore::ChromeClientEfl::destroySelectPopup): ditto.
        * efl/WebCoreSupport/ChromeClientEfl.h: ditto.
        * efl/ewk/ewk_private.h: add function to call browser when a popup is
        created/deleted

2010-05-25  Joone Hur  <joone.hur@samsung.com>

        Reviewed by Gustavo Noronha Silva.

        [EFL] Build fix.
        http://webkit.org/b/39648

        * efl/ewk/ewk_frame.cpp:
        (ewk_frame_zoom_get): Add missed namespace 
        (ewk_frame_zoom_set): Ditto.
        (ewk_frame_zoom_text_only_set): Ditto.
        * efl/ewk/ewk_view.cpp:
        (_ewk_view_priv_new): Add a null parameter when creating a Page.

2010-05-24  Darin Adler  <darin@apple.com>

        Reviewed by Eric Seidel.

        Move view-related functions from Frame to FrameView
        https://bugs.webkit.org/show_bug.cgi?id=39366

        * efl/ewk/ewk_frame.cpp:
        (ewk_frame_editable_set): Removed call to empty function,
        removeEditingStyleFromBodyElement.
        (ewk_frame_zoom_get): Call function on FrameView.
        (ewk_frame_zoom_set): Ditto.
        (ewk_frame_zoom_text_only_set): Ditto.

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.
        * CMakeListsEfl.txt: Added.

2010-05-14  Lucas De Marchi  <lucas.demarchi@profusion.mobi>

        Reviewed by David Levin.

        [EF] Include missing header.
        http://webkit.org/b/38905

        * efl/ewk/ewk_main.cpp: Include PageGroup.h

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

        Reviewed by Laszlo Gombos.

        [EFL] Only compile database stuff if ENABLE_DATABASE is set. 
        http://webkit.org/b/38777

        * efl/WebCoreSupport/ChromeClientEfl.cpp:

2010-05-05  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/7932072> Iframes in composited layers don’t repaint correctly (affects Yahoo! Mail with Flash Player 10.1)
        https://bugs.webkit.org/show_bug.cgi?id=38427

        * WebKit.xcodeproj/project.pbxproj: Renamed WebClipView.m to WebClipView.mm and changed it to
        Objective-C++.

2010-05-03  Darin Adler  <darin@apple.com>

        * English.lproj/Localizable.strings: Regenerated.
        * StringsNotToBeLocalized.txt: Updated for recent changes.

2010-05-03  Jens Alfke  <snej@chromium.org>

        Reviewed by Darin Fisher.

        [chromium] Add "willSendSubmitEvent" hook to WebFrameClient and FrameLoaderClient
        https://bugs.webkit.org/show_bug.cgi?id=38397

        No tests (functionality is exposed only through native WebKit API.)

        * efl/WebCoreSupport/FrameLoaderClientEfl.h:
        (WebCore::FrameLoaderClientEfl::dispatchWillSendSubmitEvent):

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

        Reviewed by Gustavo Noronha Silva.

        Implement findThemePath to locate the correct theme file instead of
        relying on a hardcoded location.
        http://webkit.org/b/37996

        * efl/EWebLauncher/main.c:
        (findThemePath): Fix to locate the correct theme files.
        (main): Use findThemePath() instead of a hardcoded one.

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

        Reviewed by Gustavo Noronha Silva.

        Update efl/ewebkit.pc.in to match the variable substitution syntax
        of CMake.
        http://webkit.org/b/37999

        * efl/ewebkit.pc.in: Updated.

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

        Reviewed by Gustavo Noronha Silva.

        Update EWebKit (EFL port) to match recent API changes.
        http://webkit.org/b/37997

        * efl/ewk/ewk_frame.cpp:
        (ewk_frame_zoom_set): Change to use WebCore::ZoomMode.
        (ewk_frame_zoom_text_only_set): Change to use WebCore::ZoomMode.
        (_ewk_frame_handle_key_scrolling): s/WebCore::VK_/VK_/g
        (ewk_frame_plugin_create): Disable temporarily PluginView-related
        code until a proper plugin implementation is made.
        * efl/ewk/ewk_view.cpp: Fix typo in _parent_sc declaration.
        (ewk_view_selection_get): Fix a reference to WebCore::CString to
        WTF::CString.

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

        Reviewed by Gustavo Noronha Silva.

        Update EFL port files to match recent API changes.
        http://webkit.org/b/37876

        * efl/WebCoreSupport/ChromeClientEfl.cpp:
        (kit): Added.
        (WebCore::ChromeClientEfl::ChromeClientEfl): Coding style fix.
        (WebCore::ChromeClientEfl::runBeforeUnloadConfirmPanel): Coding
        style fix.
        (WebCore::ChromeClientEfl::mouseDidMoveOverElement): Coding style fix.
        (WebCore::ChromeClientEfl::runOpenPanel): Implemented.
        (WebCore::ChromeClientEfl::cancelGeolocationPermissionRequestForFrame): Stubbed.
        (WebCore::ChromeClientEfl::cancelGeolocationPermissionForFrame): Stubbed.
        (WebCore::ChromeClientEfl::invalidateContents): Stubbed.
        (WebCore::ChromeClientEfl::invalidateWindow): Stubbed.
        (WebCore::ChromeClientEfl::invalidateContentsAndWindow): Implemented.
        (WebCore::ChromeClientEfl::invalidateContentsForSlowScroll): Implemented.
        (WebCore::ChromeClientEfl::scroll): Updated.
        (WebCore::ChromeClientEfl::iconForFiles): Stubbed.
        (WebCore::ChromeClientEfl::chooseIconForFiles): Stubbed.
        * efl/WebCoreSupport/ChromeClientEfl.h: Add new method prototypes.
        * efl/WebCoreSupport/FrameLoaderClientEfl.cpp:
        (WebCore::FrameLoaderClientEfl::committedLoad): Call setEncoding()
        from FrameLoader::writer.
        (WebCore::FrameLoaderClientEfl::finishedLoading): Ditto.
        (WebCore::FrameLoaderClientEfl::dispatchDidFailLoading): Ditto.
        (WebCore::FrameLoaderClientEfl::setMainDocumentError): Ditto.

2010-04-21  Gustavo Sverzut Barbieri  <barbieri@profusion.mobi>

        Reviewed by Nikolas Zimmermann.

        Add missing EFL WebKit/efl theme files.
        http://webkit.org/b/37854

        * efl/DefaultTheme/default.edc: Added.
        * efl/DefaultTheme/widget/button/button.edc: Added.
        * efl/DefaultTheme/widget/check/check.edc: Added.
        * efl/DefaultTheme/widget/combo/combo.edc: Added.
        * efl/DefaultTheme/widget/entry/entry.edc: Added.
        * efl/DefaultTheme/widget/file/file.edc: Added.
        * efl/DefaultTheme/widget/radio/radio.edc: Added.
        * efl/DefaultTheme/widget/scrollbar/scrollbar.edc: Added.
        * efl/DefaultTheme/widget/search/cancel/search_cancel.edc: Added.
        * efl/DefaultTheme/widget/search/decoration/search_decoration.edc: Added.
        * efl/DefaultTheme/widget/search/field/search_field.edc: Added.

2010-04-21  Gustavo Sverzut Barbieri  <barbieri@profusion.mobi>

        Reviewed by Adam Roben.

        Update EFL port to match recent API changes.
        http://webkit.org/b/37853

        * efl/WebCoreSupport/EditorClientEfl.cpp:
        * efl/WebCoreSupport/FrameLoaderClientEfl.cpp:
        (WebCore::FrameLoaderClientEfl::didTransferChildFrameToNewDocument):
        (WebCore::FrameLoaderClientEfl::objectContentType):
        (WebCore::FrameLoaderClientEfl::dispatchDidChangeIcons):
        (WebCore::FrameLoaderClientEfl::canShowMIMEType):
        * efl/WebCoreSupport/FrameLoaderClientEfl.h:

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

        Reviewed by Kenneth Rohde Christiansen.

        Add EFL port files to efl/WebCoreSupport.
        http://webkit.org/b/35915

        * efl/WebCoreSupport/FrameLoaderClientEfl.cpp: Added.
        * efl/WebCoreSupport/FrameLoaderClientEfl.h: Added.

2010-04-15  Adam Roben  <aroben@apple.com>

        Expose UserContentURLPattern as WebKit SPI

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

        Reviewed by Tim Hatcher.

        * WebKit.xcodeproj/project.pbxproj: Add WebUserContentURLPattern.

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

        Reviewed by Kenneth Rohde Christiansen.

        Add EFL port files to efl/WebCoreSupport.
        http://webkit.org/b/35918

        * efl/WebCoreSupport/EditorClientEfl.cpp: Added.
        * efl/WebCoreSupport/EditorClientEfl.h: Added.

2010-04-10  Mark Rowe  <mrowe@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/7845305> Further adoption of formal protocols for delegates.

        Move EmptyProtocolDefinitions.h down in to WebCore, and add the new protocols. Adopt the protocols in the appropriate places.

        * WebKit.xcodeproj/project.pbxproj:

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

        Reviewed by Kenneth Rohde Christiansen.

        Add ewk_view (the high level object to acces the WebKit-EFL browser
        component) to efl/ewk.
        http://webkit.org/b/35932

        * efl/ewk/ewk_view.cpp: Added.
        * efl/ewk/ewk_view.h: Added.

2010-04-05  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=37111
        <rdar://problem/7790327> Draw replacement text when plug-in host crashes

        https://bugs.webkit.org/show_bug.cgi?id=37111
        <rdar://problem/7790327> Draw replacement text when plug-in host crashes

        * English.lproj/Localizable.strings: Added a string for plug-in failure.

2010-04-01  Leandro Pereira  <leandro@profusion.mobi>

        Reviewed by Gustavo Noronha Silva.

        Add EFL's pkg-config metadata file file to efl/.
        http://webkit.org/b/36766

        * efl/ewebkit.pc.in: Added.

2010-03-30  Gavin Barraclough  <barraclough@apple.com>

        Rubber stamped by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=36866
        Move CString to WTF

        * efl/WebCoreSupport/ChromeClientEfl.cpp:
        * efl/ewk/ewk_frame.cpp:
        (ewk_frame_name_get):
        (ewk_frame_selection_get):
        (ewk_frame_uri_changed):
        * efl/ewk/ewk_history.cpp:
        * efl/ewk/ewk_settings.cpp:

2010-03-28  Alexey Proskuryakov  <ap@apple.com>

        Build fix. Include WindowsKeyboardCodes.h instead of KeyboardCodes.h.

        * efl/ewk/ewk_frame.cpp:

2010-03-22  Kevin Decker  <kdecker@apple.com>

        Reviewed by Simon Fraser.

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

        * WebKit.xcodeproj/project.pbxproj: Remove WebNullPluginView and nullplugin.tiff from the project.

2010-03-22  Darin Adler  <darin@apple.com>

        * StringsNotToBeLocalized.txt: Updated for recent changes.

2010-03-22  Kevin Decker  <kdecker@apple.com>

        Reviewed by John Sullivan.

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

        * English.lproj/Localizable.strings: Added "Missing Plug-in" string.

2010-03-18  Leandro Pereira  <leandro@profusion.mobi>

        Reviewed by Kenneth Rohde Christiansen.

        Add EFL port files to efl/ewk.
        http://webkit.org/b/35931

        * efl/ewk/ewk_settings.cpp: Added.
        * efl/ewk/ewk_settings.h: Added.

2010-03-17  Leandro Pereira  <leandro@profusion.mobi>

        Reviewed by Kenneth Rohde Christiansen.

        Add default theme files to efl/DefaultTheme.
        http://webkit.org/b/36240

        * efl/DefaultTheme/widget/radio/img_radio_on.png: Added.
        * efl/DefaultTheme/radio/img_radio_off_hover.png: Added.
        * efl/DefaultTheme/radio/img_radio_on_hover.png: Added.
        * efl/DefaultTheme/radio/img_radio_off.png: Added.
        * efl/DefaultTheme/radio/img_radio_off_focus.png: Added.
        * efl/DefaultTheme/radio/img_radio_on_focus.png: Added.
        * efl/DefaultTheme/combo/combo_normal.png: Added.
        * efl/DefaultTheme/combo/combo_focus_button.png: Added.
        * efl/DefaultTheme/combo/combo_hover_button.png: Added.
        * efl/DefaultTheme/combo/combo_hover.png: Added.
        * efl/DefaultTheme/combo/combo_focus.png: Added.
        * efl/DefaultTheme/combo/combo_press_button.png: Added.
        * efl/DefaultTheme/combo/combo_normal_button.png: Added.
        * efl/DefaultTheme/combo/combo_press.png: Added.
        * efl/DefaultTheme/combo/icon.png: Added.
        * efl/DefaultTheme/file/file_normal.png: Added.
        * efl/DefaultTheme/file/file_press.png: Added.
        * efl/DefaultTheme/file/file_hover.png: Added.
        * efl/DefaultTheme/file/file_focus.png: Added.
        * efl/DefaultTheme/search/cancel/cancel_normal_button.png: Added.
        * efl/DefaultTheme/search/cancel/cancel_normal_button2.png: Added.
        * efl/DefaultTheme/search/decoration/decoration_normal_button.png: Added.
        * efl/DefaultTheme/search/field/field_focused.png: Added.
        * efl/DefaultTheme/search/field/field_normal.png: Added.
        * efl/DefaultTheme/search/field/field_hovered.png: Added.
        * efl/DefaultTheme/entry/img_normal.png: Added.
        * efl/DefaultTheme/entry/img_hovered.png: Added.
        * efl/DefaultTheme/entry/img_focused.png: Added.
        * efl/DefaultTheme/check/img_check_off_hover.png: Added.
        * efl/DefaultTheme/check/img_check_on.png: Added.
        * efl/DefaultTheme/check/img_check_off_focus.png: Added.
        * efl/DefaultTheme/check/img_check_on_focus.png: Added.
        * efl/DefaultTheme/check/img_check_off.png: Added.
        * efl/DefaultTheme/check/img_check_on_hover.png: Added.
        * efl/DefaultTheme/scrollbar/scrollbar_knob_h.png: Added.
        * efl/DefaultTheme/scrollbar/scrollbar_knob_v.png: Added.
        * efl/DefaultTheme/scrollbar/scrollbar_hilight.png: Added.
        * efl/DefaultTheme/scrollbar/scrollbar_v.png: Added.
        * efl/DefaultTheme/scrollbar/scrollbar_h.png: Added.
        * efl/DefaultTheme/button/img_button_normal.png: Added.
        * efl/DefaultTheme/button/img_button_focus.png: Added.
        * efl/DefaultTheme/button/img_button_hover.png: Added.
        * efl/DefaultTheme/button/img_button_press.png: Added.

2010-03-17  Leandro Pereira  <leandro@profusion.mobi>

        Reviewed by Kenneth Rohde Christiansen.

        Add EFL example browser to efl/EWebLauncher.
        http://webkit.org/b/36176

        * efl/EWebLauncher/main.c: Added.

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

        Reviewed by Kenneth Rohde Christiansen.

        Add EFL port files to efl/WebCoreSupport.
        http://webkit.org/b/35916

        * efl/WebCoreSupport/ContextMenuClientEfl.cpp: Added.
        * efl/WebCoreSupport/ContextMenuClientEfl.h: Added.

2010-03-16  Yury Semikhatsky  <yurys@chromium.org>

        Reviewed by Pavel Feldman.

        Introduce InspectorFrontendClient that provides InspectorFrontend with an interface to the embedder. InspectorClient now serves as a delegate for InspectorController and does not contain methods for managing inspector frontend window. That allows to create remote InspectorFrontendHost.

        Introduce InspectorFrontendClient that would provide InspectorFrontend with an interface to the embedder
        https://bugs.webkit.org/show_bug.cgi?id=35036

        * efl/WebCoreSupport/InspectorClientEfl.cpp:
        (WebCore::InspectorClientEfl::openInspectorFrontend):
        * efl/WebCoreSupport/InspectorClientEfl.h:

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

        Reviewed by Kenneth Rohde Christiansen.

        Add EFL port files to efl/ewk.
        http://webkit.org/b/35925

        * efl/ewk/ewk_history.cpp: Added.
        * efl/ewk/ewk_history.h: Added.

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

        Reviewed by Kenneth Rohde Christiansen.

        Add EFL port files to efl/ewk.
        http://webkit.org/b/35928

        * efl/ewk/ewk_main.cpp: Added.
        * efl/ewk/ewk_main.h: Added.

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

        Reviewed by Kenneth Rohde Christiansen.

        Add EFL port files to efl/ewk.
        http://webkit.org/b/35924

        * efl/ewk/ewk_frame.cpp: Added.
        * efl/ewk/ewk_frame.h: Added.

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

        Reviewed by Kenneth Rohde Christiansen.

        Add EFL port files to efl/ewk.
        http://webkit.org/b/35936

        * efl/ewk/ewk_view_single.c: Added.

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

        Reviewed by Kenneth Rohde Christiansen.

        Add EFL port files to efl/ewk.
        http://webkit.org/b/35929

        * efl/ewk/ewk_util.cpp: Added.
        * efl/ewk/ewk_util.h: Added.

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

        Reviewed by Kenneth Rohde Christiansen.

        Add EFL port files to efl/ewk.
        http://webkit.org/b/35934

        * efl/ewk/EWebKit.h: Added.
        * efl/ewk/ewk_eapi.h: Added.
        * efl/ewk/ewk_logging.h: Added.
        * efl/ewk/ewk_private.h: Added.

2010-03-11  Leandro Pereira  <leandro@profusion.mobi>

        Reviewed by Gustavo Noronha Silva.

        Add EFL port files to efl/WebCoreSupport.
        http://webkit.org/b/35917

        * efl/WebCoreSupport/InspectorClientEfl.h: Added.
        * efl/WebCoreSupport/InspectorClientEfl.cpp: Added.

2010-03-11  Leandro Pereira  <leandro@profusion.mobi>

        Reviewed by Gustavo Noronha Silva.

        Add EFL port files to efl/WebCoreSupport.
        http://webkit.org/b/35914

        * efl/WebCoreSupport/DragClientEfl.h: Added.
        * efl/WebCoreSupport/DragClientEfl.cpp: Added.

2010-03-11  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Mark Rowe.

        Sort the project file.

        * WebKit.xcodeproj/project.pbxproj:

2010-03-10  Leandro Pereira  <leandro@profusion.mobi>

        Reviewed by Holger Freyther.

        Add EFL port files to efl/WebCoreSupport.
        http://webkit.org/b/35913

        * efl/WebCoreSupport/ChromeClientEfl.cpp: Added.
        * efl/WebCoreSupport/ChromeClientEfl.h: Added.

2010-03-09  John Sullivan  <sullivan@apple.com>

        Fixed localized string key collision. update-webkit-localized-strings now
        runs without errors.

        Reviewed by Adam Roben.

        * English.lproj/Localizable.strings:
        Regenerated.

2010-03-09  John Sullivan  <sullivan@apple.com>

        * StringsNotToBeLocalized.txt:
        Brought this file up to date. update-webkit-localizable-strings still lists
        one key collision, but that's a separate issue.

2010-03-04  Mark Rowe  <mrowe@apple.com>

        Reviewed by Sam Weinig.

        Add a script to verify that WebKit framework headers are internally consistent.

        * WebKit.xcodeproj/project.pbxproj: Run the script during the build and fail with
        an error should the consistency check fail.

2010-02-25  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Geoffrey Garen.

        https://bugs.webkit.org/show_bug.cgi?id=35394
        <rdar://problem/7685262> Make passing objects between Java and plug-ins work

        * WebKit.xcodeproj/project.pbxproj: Added new files.

2010-02-04  Mark Rowe  <mrowe@apple.com>

        Reviewed by Timothy Hatcher.

        Build fix.  Remove a symbol corresponding to an inline function from the linker export
        file to prevent a weak external failure.

        * WebKit.xcodeproj/project.pbxproj: Accommodate rename of script.

2010-02-04  John Sullivan  <sullivan@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=34611
        WebLocalizedString() could use an assertion that it is being called on the main thread

        Reviewed by Tim Hatcher.

        * WebKit.xcodeproj/project.pbxproj:
        Updated for renamed file (WebLocalizableStrings.m -> WebLocalizableStrings.mm)

2010-01-29  Mark Rowe  <mrowe@apple.com>

        Sort Xcode projects.

        * WebKit.xcodeproj/project.pbxproj:

2010-01-19  Dan Bernstein  <mitz@apple.com>

        Redo DumpRenderTree build fix without making WebTypesInternal.h a private header

        * WebKit.xcodeproj/project.pbxproj:

2010-01-19  Simon Fraser  <simon.fraser@apple.com>

        Build fix, no review.

        Fix build of DumpRenderTree by making the header WebTypesInternal.h Private
        in WebKit.

        * WebKit.xcodeproj/project.pbxproj:

2010-01-19  Jon Honeycutt  <jhoneycutt@apple.com>

        MSAA: The child <option> elements of a non-multiple <select> are not
        exposed

        https://bugs.webkit.org/show_bug.cgi?id=33773
        <rdar://problem/7550556>

        Reviewed by Alice Liu.

        * English.lproj/Localizable.strings:
        Add new localized strings.

2010-01-13  Kevin Decker  <kdecker@apple.com>

        Reviewed by Mark Rowe.

        https://bugs.webkit.org/show_bug.cgi?id=33610
        <rdar://problem/7288546> Silverlight full screen performance problem seen on Snow Leopard.

         * WebKit.xcodeproj/project.pbxproj: Link the project against OpenGL.

2009-12-25  Darin Adler  <darin@apple.com>

        * StringsNotToBeLocalized.txt: Updated for recent changes.

2009-12-18  Dan Bernstein  <mitz@apple.com>

        Updated localizable strings after r52368

        * English.lproj/Localizable.strings:

2009-12-18  Sam Weinig  <sam@webkit.org>

        Reviewed by Dan Bernstein.

        Add Mac WebKit side of the client based geolocation provider.

        * WebKit.xcodeproj/project.pbxproj:

2009-12-16  Mark Rowe  <mrowe@apple.com>

        Build fix.  Disable debug variants of WebKit frameworks.

        * WebKit.xcodeproj/project.pbxproj:

2009-12-16  John Sullivan  <sullivan@apple.com>

        Brought this file up to date, sans review.

        * StringsNotToBeLocalized.txt:

2009-11-30  Mark Rowe  <mrowe@apple.com>

        Use the correct path to Info.plist to avoid creating an empty file at the top of the WebKit directory.

        * WebKit.xcodeproj/project.pbxproj:

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

        * chromium/features.gypi:

2009-11-24  Mark Rowe  <mrowe@apple.com>

        Fix production builds where the source tree may be read-only.

        * WebKit.xcodeproj/project.pbxproj:

2009-11-20  Dave Hyatt  <hyatt@apple.com>

        Reviewed by Oliver Hunt and Jon Honeycutt.

        Add support for WebSerializedJSValue to WebKit.  This object wraps the SerializedScriptValue functionality in WebCore
        and exposes the ability to do JS value serialization/deserialization to WebKit clients.

        * WebKit.xcodeproj/project.pbxproj:

2009-11-20  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        WAI-ARIA: add support for 'math' role
        https://bugs.webkit.org/show_bug.cgi?id=31706

        * English.lproj/Localizable.strings:
        * StringsNotToBeLocalized.txt:

2009-11-19  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/7035231>
        Support closed caption in <video> element

        * English.lproj/Localizable.strings:
            Add strings for toggle captions button.

2009-11-18  Michelangelo De Simone  <micdesim@gmail.com>

        Reviewed by Darin Adler.

        Fix for <https://bugs.webkit.org/show_bug.cgi?id=27959>.
        Support for validationMessage attribute, as per HTML5 specs.

        * English.lproj/Localizable.strings: new localizable strings

2009-11-18  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Make the Mac Geolocation API async.

        * WebKit.xcodeproj/project.pbxproj: Remove WebGeolocation.

2009-11-13  Adam Roben  <aroben@apple.com>

        Add WebFrameLoadDelegatePrivat.h to WebKit.xcodeproj

        Fixes <http://webkit.org/b/31124> Tell the WebFrameLoadDelegate when
        window objects in isolated worlds are cleared

        Reviewed by Dave Hyatt.

        * WebKit.xcodeproj/project.pbxproj: Added
        WebFrameLoadDelegatePrivate.h, which already existed.

2009-11-12  Adam Roben  <aroben@apple.com>

        Replace worldIDs with world objects

        Part of <http://webkit.org/b/31414> Implement new SPI for dealing with
        user scripts/stylesheets and isolated worlds

        Reviewed by Sam Weinig.

        * WebKit.xcodeproj/project.pbxproj: Added WebScriptWorld to the project.

2009-11-12  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        ARIA: add alert type roles
        https://bugs.webkit.org/show_bug.cgi?id=31392

        * English.lproj/Localizable.strings:
        * StringsNotToBeLocalized.txt:

2009-11-02  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by John Sullivan and Mark Rowe.

        <rdar://problem/7356733> Voiceover does not read correct media controller time values
        
        Fix localized strings for media controller time values.

        * English.lproj/Localizable.strings:

2009-11-02  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        Support ARIA "tab" roles
        https://bugs.webkit.org/show_bug.cgi?id=30842

        Add a localizable string for tab panel.

        * English.lproj/Localizable.strings:
        * StringsNotToBeLocalized.txt:

2009-10-27  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        Updated license

        * LICENSE:

2009-10-26  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Move some WebView event handling code into its own file, WebViewEventHandling.mm

        * WebKit.xcodeproj/project.pbxproj:

2009-10-19  John Gregg  <johnnyg@google.com>

        Reviewed by Dimitri Glazkov.

        set ENABLE_NOTIFICATIONS=1 for Chromium
        https://bugs.webkit.org/show_bug.cgi?id=29949

        * chromium/features.gypi:

2009-10-13  Drew Wilson  <atwilson@atwilson-macpro.local>

        Reviewed by David Levin.

        Enable SHARED_WORKERS for Chromium
        https://bugs.webkit.org/show_bug.cgi?id=30289

        * chromium/features.gypi:
        Turned on ENABLE_SHARED_WORKERS by default. This doesn't actually turn on
        SharedWorkers yet, as Chromium overrides this flag in its feature_overrides.gypi.

2009-10-12  Yaar Schnitman  <yaar@chromium.org>

        Reviewed by Dimitri Glazkov.

        Chromium Port - Windows
        https://bugs.webkit.org/show_bug.cgi?id=29969

        * chromium/DEPS: Added gtest dep required by windows and incremented some of the deps revisions.

2009-10-06  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Mark Rowe.

        accessibility/media-element.html crashes (and has incorrect result)
        https://bugs.webkit.org/show_bug.cgi?id=30108

        Fix up the accessibilty label for the newly added fullscreen button,
        and update the test result accordingly.

        * English.lproj/Localizable.strings:

2009-10-05  Kevin Decker  <kdecker@apple.com>

        Reviewed by Dan Bernstein.

        * WebKit.xcodeproj/project.pbxproj: Add WebPluginHalterClient to the project.

2009-10-05  Yaar Schnitman  <yaar@chromium.org>

        Reviewed by Dimitri Glazkov.

        One of the dependencies' SVN url was missing a @ before the revision number.

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

        * chromium/DEPS:

2009-10-05  Pierre d'Herbemont  <pdherbemont@webkit.org>

        Reviewed by Simon Fraser
        
        Support fullscreen in MediaPlayer (Mac)
        https://bugs.webkit.org/show_bug.cgi?id=26742

        Add new files for video fullscreen.

        * WebKit.xcodeproj/project.pbxproj:

2009-10-05  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Web Inspector: add testing harness for Web Inspector.

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

        * WebKit.xcodeproj/project.pbxproj:

2009-10-04  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Eric Seidel

        Enable Web Sockets in chromium build.
        https://bugs.webkit.org/show_bug.cgi?id=29917

        * chromium/features.gypi:

2009-10-02  Yaar Schnitman  <yaar@chromium.org>

        Reviewed by Dimitri Glazkov.

        Added gyp_webkit that does a subset of the things gyp_chromium does
        plus some specialization for an upstream chromium build.

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

        * chromium/DEPS: Points to gyp_webkit instead of gyp_chromium.
        * chromium/gyp_webkit: A new python file.

2009-10-01  Yaar Schnitman  <yaar@chromium.org>

        Reviewed by Dimitri Glazkov.

        Make it possible to override the list of feature defines when building
        downstream.

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

        * chromium/features.gypi:

2009-10-01  Yaar Schnitman  <yaar@chromium.org>

        Reviewed by Dimitri Glazkov.

        Added windows-specific dependencies, updated some revisions and
        re-organized file to make revision tracking easier. Also removed
        extensions/v8 dependency that is no longer needed upstream.

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

        * chromium/DEPS:

2009-09-30  Yaar Schnitman  <yaar@chromium.org>

        Reviewed by Dimitri Glazkov.

        1. Keeping up with downstream revisions.
        2. Turning off v8 snapshot build step.

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

        * chromium/DEPS

2009-09-29  Brady Eidson  <beidson@apple.com>

        Reviewed by John Sullivan.

        WebKit Mac API should provide a delegate interface for global history.
        <rdar://problem/7042773> and https://webkit.org/b/29904

        * WebKit.xcodeproj/project.pbxproj:

2009-09-28  Yaar Schnitman  <yaar@chromium.org>

        Reviewed by Dimitri Glazkov.

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

        * chromium/DEPS: Describes the chromium port's dependencies and
          is used by gclient to fetch them.
        * chromium/webkit.gyp: Currently only builds webcore but in
          the future will also build the webkit api.

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

        Part 2 of 2: <http://webkit.org/b/29753> DerivedSources.make broken for non-Mac targets

        Reviewed by Darin Adler.

        Fix ENABLE_ORIENTATION_EVENTS for non-Mac platforms.

        * chromium/features.gypi: Added 'ENABLE_ORIENTATION_EVENTS=0' to
        disable this feature by default.

2009-09-22  Yaar Schnitman  <yaar@chromium.org>

        Reviewed by David Levin.

        Create chromium directory and ported chromium.org's features.gypi for 
        the webkit chromium port.

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

        * chromium/features.gypi: Added.

2009-09-21  Dan Bernstein  <mitz@apple.com>

        Reviewed by Anders Carlsson.

        <rdar://problem/4137135> iFrame with PDF not being handled correctly on
        usps.com
        https://bugs.webkit.org/show_bug.cgi?id=4151

        * WebKit.xcodeproj/project.pbxproj: Added WebPDFDocumentExtras.{h,mm}
        and WebJSPDFDoc.{h,mm} and changed WebPDFRepresentation to
        Objective-C++.

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

        Reviewed by Adam Barth.

        Adds a mock Geolocation service. This will be used to provide predictable behavior of the
        Geolocation API for use in LayoutTests. Later changes will integrate the the mock
        Geolocation service with DumpRenderTree.
        https://bugs.webkit.org/show_bug.cgi?id=28264

        * WebKit.xcodeproj/project.pbxproj: Modified. Adds WebGeolocationMock.

2009-09-03  John Sullivan  <sullivan@apple.com>

        Reviewed by Adam Roben

        * StringsNotToBeLocalized.txt:
        Brought this file up to date.

2009-08-31  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Beth Dakin.

        Remove WebViewEditingContextMenu.nib and WebViewEditingContextMenuOld.nib.
        We stopped using these back in r18592 when we switched over to context menus
        driven by WebCore.

        * English.lproj/WebViewEditingContextMenu.nib/classes.nib: Removed.
        * English.lproj/WebViewEditingContextMenu.nib/info.nib: Removed.
        * English.lproj/WebViewEditingContextMenu.nib/objects.nib: Removed.
        * English.lproj/WebViewEditingContextMenuOld.nib/classes.nib: Removed.
        * English.lproj/WebViewEditingContextMenuOld.nib/info.nib: Removed.
        * English.lproj/WebViewEditingContextMenuOld.nib/objects.nib: Removed.
        * WebKit.xcodeproj/project.pbxproj:

2009-08-28  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by John Sullivan.

        update-webkit-localizable-strings script can no longer complete
        https://bugs.webkit.org/show_bug.cgi?id=28792

        * English.lproj/Localizable.strings:

2009-08-27  John Sullivan  <sullivan@apple.com>

        * StringsNotToBeLocalized.txt:
        Brought up to date, other than the problem mentioned in https://bugs.webkit.org/show_bug.cgi?id=28792

2009-08-25  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Oliver Hunt.

        <video> and <audio> controller should be accessible
        https://bugs.webkit.org/show_bug.cgi?id=28081

        Add localized strings for media controller accessiblility.

        * English.lproj/Localizable.strings:

2009-08-20  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Enable various "grouping" ARIA roles
        https://bugs.webkit.org/show_bug.cgi?id=28486

        * English.lproj/Localizable.strings:

2009-08-18  Drew Wilson  <atwilson@google.com>

        Reviewed by Eric Seidel.

        Need to extend DumpRenderTree to expose number of worker threads.
        https://bugs.webkit.org/show_bug.cgi?id=28292

        * WebKit.xcodeproj/project.pbxproj:
        Added WebWorkersPrivate APIs to mac WebKit to expose workerThreadCount() for DumpRenderTree.

2009-08-06  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Sam Weinig.

        Add explicit dependencies for our build verification scripts to ensure that they always run after linking has completed.

        * WebKit.xcodeproj/project.pbxproj:

2009-08-06  Mark Rowe  <mrowe@apple.com>

        Bring a little order to our otherwise out of control lives.

        * WebKit.xcodeproj/project.pbxproj:

2009-08-06  Mark Rowe  <mrowe@apple.com>

        Build fix.

        Don't attempt to build a file that Anders just deleted.

        * WebKit.xcodeproj/project.pbxproj:

2009-07-29  David Kilzer  <ddkilzer@apple.com>

        <http://webkit.org/b/27788> Don't export WebPluginController.h as a private header

        Reviewed by Mark Rowe.

        WebPluginController.h includes WebPluginContainerCheck.h, which
        is not a private header.  Since WebPluginController.h doesn't
        appear to be used anywhere, remove its private header status.

        * WebKit.xcodeproj/project.pbxproj: Remove private header
        attribute from WebPluginController.h.

2009-07-28  Maxime Simon  <simon.maxime@gmail.com>

        Reviewed by David Levin.

        Added FrameLoaderClient for Haiku WebCore support.
        https://bugs.webkit.org/show_bug.cgi?id=26952

        * haiku/WebCoreSupport/FrameLoaderClientHaiku.cpp: Added.
        (WebCore::FrameLoaderClientHaiku::FrameLoaderClientHaiku):
        (WebCore::FrameLoaderClientHaiku::setFrame):
        (WebCore::FrameLoaderClientHaiku::setWebView):
        (WebCore::FrameLoaderClientHaiku::detachFrameLoader):
        (WebCore::FrameLoaderClientHaiku::hasWebView):
        (WebCore::FrameLoaderClientHaiku::hasBackForwardList):
        (WebCore::FrameLoaderClientHaiku::resetBackForwardList):
        (WebCore::FrameLoaderClientHaiku::provisionalItemIsTarget):
        (WebCore::FrameLoaderClientHaiku::makeRepresentation):
        (WebCore::FrameLoaderClientHaiku::forceLayout):
        (WebCore::FrameLoaderClientHaiku::forceLayoutForNonHTML):
        (WebCore::FrameLoaderClientHaiku::updateHistoryForCommit):
        (WebCore::FrameLoaderClientHaiku::updateHistoryForBackForwardNavigation):
        (WebCore::FrameLoaderClientHaiku::updateHistoryForReload):
        (WebCore::FrameLoaderClientHaiku::updateHistoryForStandardLoad):
        (WebCore::FrameLoaderClientHaiku::updateHistoryForInternalLoad):
        (WebCore::FrameLoaderClientHaiku::updateHistoryAfterClientRedirect):
        (WebCore::FrameLoaderClientHaiku::setCopiesOnScroll):
        (WebCore::FrameLoaderClientHaiku::tokenForLoadErrorReset):
        (WebCore::FrameLoaderClientHaiku::resetAfterLoadError):
        (WebCore::FrameLoaderClientHaiku::doNotResetAfterLoadError):
        (WebCore::FrameLoaderClientHaiku::willCloseDocument):
        (WebCore::FrameLoaderClientHaiku::detachedFromParent2):
        (WebCore::FrameLoaderClientHaiku::detachedFromParent3):
        (WebCore::FrameLoaderClientHaiku::dispatchDidHandleOnloadEvents):
        (WebCore::FrameLoaderClientHaiku::dispatchDidReceiveServerRedirectForProvisionalLoad):
        (WebCore::FrameLoaderClientHaiku::dispatchDidCancelClientRedirect):
        (WebCore::FrameLoaderClientHaiku::dispatchWillPerformClientRedirect):
        (WebCore::FrameLoaderClientHaiku::dispatchDidChangeLocationWithinPage):
        (WebCore::FrameLoaderClientHaiku::dispatchWillClose):
        (WebCore::FrameLoaderClientHaiku::dispatchDidStartProvisionalLoad):
        (WebCore::FrameLoaderClientHaiku::dispatchDidReceiveTitle):
        (WebCore::FrameLoaderClientHaiku::dispatchDidCommitLoad):
        (WebCore::FrameLoaderClientHaiku::dispatchDidFinishDocumentLoad):
        (WebCore::FrameLoaderClientHaiku::dispatchDidFinishLoad):
        (WebCore::FrameLoaderClientHaiku::dispatchDidFirstLayout):
        (WebCore::FrameLoaderClientHaiku::dispatchDidFirstVisuallyNonEmptyLayout):
        (WebCore::FrameLoaderClientHaiku::dispatchShow):
        (WebCore::FrameLoaderClientHaiku::cancelPolicyCheck):
        (WebCore::FrameLoaderClientHaiku::dispatchWillSubmitForm):
        (WebCore::FrameLoaderClientHaiku::dispatchDidLoadMainResource):
        (WebCore::FrameLoaderClientHaiku::revertToProvisionalState):
        (WebCore::FrameLoaderClientHaiku::postProgressStartedNotification):
        (WebCore::FrameLoaderClientHaiku::postProgressEstimateChangedNotification):
        (WebCore::FrameLoaderClientHaiku::postProgressFinishedNotification):
        (WebCore::FrameLoaderClientHaiku::progressStarted):
        (WebCore::FrameLoaderClientHaiku::progressCompleted):
        (WebCore::FrameLoaderClientHaiku::setMainFrameDocumentReady):
        (WebCore::FrameLoaderClientHaiku::willChangeTitle):
        (WebCore::FrameLoaderClientHaiku::didChangeTitle):
        (WebCore::FrameLoaderClientHaiku::finishedLoading):
        (WebCore::FrameLoaderClientHaiku::canShowMIMEType):
        (WebCore::FrameLoaderClientHaiku::representationExistsForURLScheme):
        (WebCore::FrameLoaderClientHaiku::generatedMIMETypeForURLScheme):
        (WebCore::FrameLoaderClientHaiku::frameLoadCompleted):
        (WebCore::FrameLoaderClientHaiku::saveViewStateToItem):
        (WebCore::FrameLoaderClientHaiku::restoreViewState):
        (WebCore::FrameLoaderClientHaiku::restoreScrollPositionAndViewState):
        (WebCore::FrameLoaderClientHaiku::provisionalLoadStarted):
        (WebCore::FrameLoaderClientHaiku::shouldTreatURLAsSameAsCurrent):
        (WebCore::FrameLoaderClientHaiku::addHistoryItemForFragmentScroll):
        (WebCore::FrameLoaderClientHaiku::didFinishLoad):
        (WebCore::FrameLoaderClientHaiku::prepareForDataSourceReplacement):
        (WebCore::FrameLoaderClientHaiku::setTitle):
        (WebCore::FrameLoaderClientHaiku::userAgent):
        (WebCore::FrameLoaderClientHaiku::dispatchDidReceiveIcon):
        (WebCore::FrameLoaderClientHaiku::frameLoaderDestroyed):
        (WebCore::FrameLoaderClientHaiku::canHandleRequest):
        (WebCore::FrameLoaderClientHaiku::partClearedInBegin):
        (WebCore::FrameLoaderClientHaiku::updateGlobalHistory):
        (WebCore::FrameLoaderClientHaiku::updateGlobalHistoryRedirectLinks):
        (WebCore::FrameLoaderClientHaiku::shouldGoToHistoryItem):
        (WebCore::FrameLoaderClientHaiku::saveScrollPositionAndViewStateToItem):
        (WebCore::FrameLoaderClientHaiku::canCachePage):
        (WebCore::FrameLoaderClientHaiku::setMainDocumentError):
        (WebCore::FrameLoaderClientHaiku::committedLoad):
        (WebCore::FrameLoaderClientHaiku::cancelledError):
        (WebCore::FrameLoaderClientHaiku::blockedError):
        (WebCore::FrameLoaderClientHaiku::cannotShowURLError):
        (WebCore::FrameLoaderClientHaiku::interruptForPolicyChangeError):
        (WebCore::FrameLoaderClientHaiku::cannotShowMIMETypeError):
        (WebCore::FrameLoaderClientHaiku::fileDoesNotExistError):
        (WebCore::FrameLoaderClientHaiku::shouldFallBack):
        (WebCore::FrameLoaderClientHaiku::createDocumentLoader):
        (WebCore::FrameLoaderClientHaiku::download):
        (WebCore::FrameLoaderClientHaiku::assignIdentifierToInitialRequest):
        (WebCore::FrameLoaderClientHaiku::dispatchWillSendRequest):
        (WebCore::FrameLoaderClientHaiku::shouldUseCredentialStorage):
        (WebCore::FrameLoaderClientHaiku::dispatchDidReceiveAuthenticationChallenge):
        (WebCore::FrameLoaderClientHaiku::dispatchDidCancelAuthenticationChallenge):
        (WebCore::FrameLoaderClientHaiku::dispatchDidReceiveResponse):
        (WebCore::FrameLoaderClientHaiku::dispatchDidReceiveContentLength):
        (WebCore::FrameLoaderClientHaiku::dispatchDidFinishLoading):
        (WebCore::FrameLoaderClientHaiku::dispatchDidFailLoading):
        (WebCore::FrameLoaderClientHaiku::dispatchDidLoadResourceFromMemoryCache):
        (WebCore::FrameLoaderClientHaiku::dispatchDidLoadResourceByXMLHttpRequest):
        (WebCore::FrameLoaderClientHaiku::dispatchDidFailProvisionalLoad):
        (WebCore::FrameLoaderClientHaiku::dispatchDidFailLoad):
        (WebCore::FrameLoaderClientHaiku::dispatchCreatePage):
        (WebCore::FrameLoaderClientHaiku::dispatchDecidePolicyForMIMEType):
        (WebCore::FrameLoaderClientHaiku::dispatchDecidePolicyForNewWindowAction):
        (WebCore::FrameLoaderClientHaiku::dispatchDecidePolicyForNavigationAction):
        (WebCore::FrameLoaderClientHaiku::dispatchUnableToImplementPolicy):
        (WebCore::FrameLoaderClientHaiku::startDownload):
        (WebCore::FrameLoaderClientHaiku::createFrame):
        (WebCore::FrameLoaderClientHaiku::objectContentType):
        (WebCore::FrameLoaderClientHaiku::createPlugin):
        (WebCore::FrameLoaderClientHaiku::redirectDataToPlugin):
        (WebCore::FrameLoaderClientHaiku::pluginWillHandleLoadError):
        (WebCore::FrameLoaderClientHaiku::createJavaAppletWidget):
        (WebCore::FrameLoaderClientHaiku::overrideMediaType):
        (WebCore::FrameLoaderClientHaiku::windowObjectCleared):
        (WebCore::FrameLoaderClientHaiku::documentElementAvailable):
        (WebCore::FrameLoaderClientHaiku::didPerformFirstNavigation):
        (WebCore::FrameLoaderClientHaiku::registerForIconNotification):
        (WebCore::FrameLoaderClientHaiku::savePlatformDataToCachedFrame):
        (WebCore::FrameLoaderClientHaiku::transitionToCommittedFromCachedFrame):
        (WebCore::FrameLoaderClientHaiku::transitionToCommittedForNewPage):
        * haiku/WebCoreSupport/FrameLoaderClientHaiku.h: Added.
        (WebCore::FrameLoaderClientHaiku::~FrameLoaderClientHaiku):

2009-07-28  Maxime Simon  <simon.maxime@gmail.com>

        Reviewed by David Levin.

        Added ChromeClient for Haiku WebCore support.
        https://bugs.webkit.org/show_bug.cgi?id=26952

        * haiku/WebCoreSupport/ChromeClientHaiku.cpp: Added.
        (WebCore::ChromeClientHaiku::ChromeClientHaiku):
        (WebCore::ChromeClientHaiku::~ChromeClientHaiku):
        (WebCore::ChromeClientHaiku::chromeDestroyed):
        (WebCore::ChromeClientHaiku::setWindowRect):
        (WebCore::ChromeClientHaiku::windowRect):
        (WebCore::ChromeClientHaiku::pageRect):
        (WebCore::ChromeClientHaiku::scaleFactor):
        (WebCore::ChromeClientHaiku::focus):
        (WebCore::ChromeClientHaiku::unfocus):
        (WebCore::ChromeClientHaiku::canTakeFocus):
        (WebCore::ChromeClientHaiku::takeFocus):
        (WebCore::ChromeClientHaiku::createWindow):
        (WebCore::ChromeClientHaiku::createModalDialog):
        (WebCore::ChromeClientHaiku::show):
        (WebCore::ChromeClientHaiku::canRunModal):
        (WebCore::ChromeClientHaiku::runModal):
        (WebCore::ChromeClientHaiku::setToolbarsVisible):
        (WebCore::ChromeClientHaiku::toolbarsVisible):
        (WebCore::ChromeClientHaiku::setStatusbarVisible):
        (WebCore::ChromeClientHaiku::statusbarVisible):
        (WebCore::ChromeClientHaiku::setScrollbarsVisible):
        (WebCore::ChromeClientHaiku::scrollbarsVisible):
        (WebCore::ChromeClientHaiku::setMenubarVisible):
        (WebCore::ChromeClientHaiku::menubarVisible):
        (WebCore::ChromeClientHaiku::setResizable):
        (WebCore::ChromeClientHaiku::addMessageToConsole):
        (WebCore::ChromeClientHaiku::canRunBeforeUnloadConfirmPanel):
        (WebCore::ChromeClientHaiku::runBeforeUnloadConfirmPanel):
        (WebCore::ChromeClientHaiku::closeWindowSoon):
        (WebCore::ChromeClientHaiku::runJavaScriptAlert):
        (WebCore::ChromeClientHaiku::runJavaScriptConfirm):
        (WebCore::ChromeClientHaiku::runJavaScriptPrompt):
        (WebCore::ChromeClientHaiku::setStatusbarText):
        (WebCore::ChromeClientHaiku::shouldInterruptJavaScript):
        (WebCore::ChromeClientHaiku::tabsToLinks):
        (WebCore::ChromeClientHaiku::windowResizerRect):
        (WebCore::ChromeClientHaiku::repaint):
        (WebCore::ChromeClientHaiku::scroll):
        (WebCore::ChromeClientHaiku::screenToWindow):
        (WebCore::ChromeClientHaiku::windowToScreen):
        (WebCore::ChromeClientHaiku::platformWindow):
        (WebCore::ChromeClientHaiku::contentsSizeChanged):
        (WebCore::ChromeClientHaiku::scrollRectIntoView):
        (WebCore::ChromeClientHaiku::addToDirtyRegion):
        (WebCore::ChromeClientHaiku::scrollBackingStore):
        (WebCore::ChromeClientHaiku::updateBackingStore):
        (WebCore::ChromeClientHaiku::mouseDidMoveOverElement):
        (WebCore::ChromeClientHaiku::setToolTip):
        (WebCore::ChromeClientHaiku::print):
        (WebCore::ChromeClientHaiku::exceededDatabaseQuota):
        (WebCore::ChromeClientWx::reachedMaxAppCacheSize):
        (WebCore::ChromeClientHaiku::requestGeolocationPermissionForFrame):
        (WebCore::ChromeClientHaiku::runOpenPanel):
        (WebCore::ChromeClientHaiku::setCursor):
        (WebCore::ChromeClientHaiku::formStateDidChange):
        (WebCore::ChromeClientHaiku::createHTMLParserQuirks):
        * haiku/WebCoreSupport/ChromeClientHaiku.h: Added.

2009-07-28  Robert Hogan  <robert@roberthogan.net>

        Reviewed by Simon Hausmann.

        Add WebKit version API to Qt.

        Get the current version of WebKit from WebKit/mac/Configurations/Version.xcconfig
        at compile time and make it available to webkit ports through WebKitVersion.h.

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

        * scripts/generate-webkitversion.pl: Added

2009-07-24  Andrei Popescu  <andreip@google.com>

        ApplicationCache should have size limit
        https://bugs.webkit.org/show_bug.cgi?id=22700
        
        Updated the project after adding WebApplicationCache.h/mm

        * WebKit.xcodeproj/project.pbxproj:

2009-07-16  Maxime Simon  <simon.maxime@gmail.com>

        Reviewed by Eric Seidel.

        Added InspectorClient for Haiku WebCore support.
        https://bugs.webkit.org/show_bug.cgi?id=26952

        Adding two files, InspectorClientHaiku.h and InspectorClientHaiku.cpp

        * haiku/WebCoreSupport/InspectorClientHaiku.cpp: Added.
        (WebCore::InspectorClientHaiku::inspectorDestroyed):
        (WebCore::InspectorClientHaiku::createPage):
        (WebCore::InspectorClientHaiku::localizedStringsURL):
        (WebCore::InspectorClientHaiku::hiddenPanels):
        (WebCore::InspectorClientHaiku::showWindow):
        (WebCore::InspectorClientHaiku::closeWindow):
        (WebCore::InspectorClientHaiku::attachWindow):
        (WebCore::InspectorClientHaiku::detachWindow):
        (WebCore::InspectorClientHaiku::setAttachedWindowHeight):
        (WebCore::InspectorClientHaiku::highlight):
        (WebCore::InspectorClientHaiku::hideHighlight):
        (WebCore::InspectorClientHaiku::inspectedURLChanged):
        (WebCore::InspectorClientHaiku::populateSetting):
        (WebCore::InspectorClientHaiku::storeSetting):
        (WebCore::InspectorClientHaiku::removeSetting):
        * haiku/WebCoreSupport/InspectorClientHaiku.h: Added.

2009-07-16  Maxime Simon  <simon.maxime@gmail.com>

        Reviewed by Oliver Hunt.

        Added EditorClient for Haiku WebCore support.
        https://bugs.webkit.org/show_bug.cgi?id=26952

        Adding two files, EditorClientHaiku.h and EditorClientHaiku.cpp

        * haiku/WebCoreSupport/EditorClientHaiku.cpp: Added.
        (WebCore::EditorClientHaiku::EditorClientHaiku):
        (WebCore::EditorClientHaiku::setPage):
        (WebCore::EditorClientHaiku::pageDestroyed):
        (WebCore::EditorClientHaiku::shouldDeleteRange):
        (WebCore::EditorClientHaiku::shouldShowDeleteInterface):
        (WebCore::EditorClientHaiku::smartInsertDeleteEnabled):
        (WebCore::EditorClientHaiku::isSelectTrailingWhitespaceEnabled):
        (WebCore::EditorClientHaiku::isContinuousSpellCheckingEnabled):
        (WebCore::EditorClientHaiku::toggleContinuousSpellChecking):
        (WebCore::EditorClientHaiku::isGrammarCheckingEnabled):
        (WebCore::EditorClientHaiku::toggleGrammarChecking):
        (WebCore::EditorClientHaiku::spellCheckerDocumentTag):
        (WebCore::EditorClientHaiku::isEditable):
        (WebCore::EditorClientHaiku::shouldBeginEditing):
        (WebCore::EditorClientHaiku::shouldEndEditing):
        (WebCore::EditorClientHaiku::shouldInsertNode):
        (WebCore::EditorClientHaiku::shouldInsertText):
        (WebCore::EditorClientHaiku::shouldChangeSelectedRange):
        (WebCore::EditorClientHaiku::shouldApplyStyle):
        (WebCore::EditorClientHaiku::shouldMoveRangeAfterDelete):
        (WebCore::EditorClientHaiku::didBeginEditing):
        (WebCore::EditorClientHaiku::respondToChangedContents):
        (WebCore::EditorClientHaiku::respondToChangedSelection):
        (WebCore::EditorClientHaiku::didEndEditing):
        (WebCore::EditorClientHaiku::didWriteSelectionToPasteboard):
        (WebCore::EditorClientHaiku::didSetSelectionTypesForPasteboard):
        (WebCore::EditorClientHaiku::registerCommandForUndo):
        (WebCore::EditorClientHaiku::registerCommandForRedo):
        (WebCore::EditorClientHaiku::clearUndoRedoOperations):
        (WebCore::EditorClientHaiku::canUndo):
        (WebCore::EditorClientHaiku::canRedo):
        (WebCore::EditorClientHaiku::undo):
        (WebCore::EditorClientHaiku::redo):
        (WebCore::EditorClientHaiku::handleKeyboardEvent):
        (WebCore::EditorClientHaiku::handleInputMethodKeydown):
        (WebCore::EditorClientHaiku::textFieldDidBeginEditing):
        (WebCore::EditorClientHaiku::textFieldDidEndEditing):
        (WebCore::EditorClientHaiku::textDidChangeInTextField):
        (WebCore::EditorClientHaiku::doTextFieldCommandFromEvent):
        (WebCore::EditorClientHaiku::textWillBeDeletedInTextField):
        (WebCore::EditorClientHaiku::textDidChangeInTextArea):
        (WebCore::EditorClientHaiku::ignoreWordInSpellDocument):
        (WebCore::EditorClientHaiku::learnWord):
        (WebCore::EditorClientHaiku::checkSpellingOfString):
        (WebCore::EditorClientHaiku::getAutoCorrectSuggestionForMisspelledWord):
        (WebCore::EditorClientHaiku::checkGrammarOfString):
        (WebCore::EditorClientHaiku::updateSpellingUIWithGrammarString):
        (WebCore::EditorClientHaiku::updateSpellingUIWithMisspelledWord):
        (WebCore::EditorClientHaiku::showSpellingUI):
        (WebCore::EditorClientHaiku::spellingUIIsShowing):
        (WebCore::EditorClientHaiku::getGuessesForWord):
        (WebCore::EditorClientHaiku::setInputMethodState):
        (WebCore::EditorClientHaiku::isEditing):
        * haiku/WebCoreSupport/EditorClientHaiku.h: Added.

2009-07-16  Maxime Simon  <simon.maxime@gmail.com>

        Reviewed by Eric Seidel.

        Added DragClient for Haiku WebCore support.
        https://bugs.webkit.org/show_bug.cgi?id=26952

        Adding two files, DragClientHaiku.h and DragClientHaiku.cpp

        * haiku/WebCoreSupport/DragClientHaiku.cpp: Added.
        (WebCore::DragClientHaiku::actionMaskForDrag):
        (WebCore::DragClientHaiku::willPerformDragDestinationAction):
        (WebCore::DragClientHaiku::dragControllerDestroyed):
        (WebCore::DragClientHaiku::dragSourceActionMaskForPoint):
        (WebCore::DragClientHaiku::willPerformDragSourceAction):
        (WebCore::DragClientHaiku::startDrag):
        (WebCore::DragClientHaiku::createDragImageForLink):
        * haiku/WebCoreSupport/DragClientHaiku.h: Added.

2009-07-16  Maxime Simon  <simon.maxime@gmail.com>

        Reviewed by Oliver Hunt.

        Added ContextMenuClient for Haiku WebCore support.
        https://bugs.webkit.org/show_bug.cgi?id=26952

        Adding two files, ContextMenuClientHaiku.h
        and ContextMenuClientHaiku.cpp

        * haiku/WebCoreSupport/ContextMenuClientHaiku.cpp: Added.
        (WebCore::ContextMenuClientHaiku::contextMenuDestroyed):
        (WebCore::ContextMenuClientHaiku::getCustomMenuFromDefaultItems):
        (WebCore::ContextMenuClientHaiku::contextMenuItemSelected):
        (WebCore::ContextMenuClientHaiku::downloadURL):
        (WebCore::ContextMenuClientHaiku::lookUpInDictionary):
        (WebCore::ContextMenuClientHaiku::speak):
        (WebCore::ContextMenuClientHaiku::isSpeaking):
        (WebCore::ContextMenuClientHaiku::stopSpeaking):
        (WebCore::ContextMenuClientHaiku::searchWithGoogle):
        * haiku/WebCoreSupport/ContextMenuClientHaiku.h: Added.

2009-07-10  Adam Roben  <aroben@apple.com>

        Sort all our Xcode projects

        Accomplished using sort-Xcode-project-file.

        Requested by Dave Kilzer.

        * WebKit.xcodeproj/project.pbxproj:

2009-07-02  Adam Roben  <aroben@apple.com>

        Fix warnings from update-webkit-localizable-strings

        Rubber-stamped by Eric Carlson.

        * English.lproj/Localizable.strings: Updated.

2009-07-02  Adam Roben  <aroben@apple.com>

        Update StringsNotToBeLocalized.txt for (not so) recent changes

        Bug 26926: StringsNotToBeLocalized.txt is out-of-date
        <https://bugs.webkit.org/show_bug.cgi?id=26926>

        Reviewed by John Sullivan.

        * StringsNotToBeLocalized.txt:

2009-07-02  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/6518119>

        Add localized strings for media controller status messages.

        * English.lproj/Localizable.strings: Localized text.

2009-06-08  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Mark Rowe.

        - updated the project after giving Objective-C++ the .mm extension

        * WebKit.xcodeproj/project.pbxproj:

2009-06-04  Sam Weinig  <sam@webkit.org>

        Reviewed by Alice Liu.

        Move WebView internal data into WebViewData.h/mm.

        * WebKit.xcodeproj/project.pbxproj:

2009-06-03  Sam Weinig  <sam@webkit.org>

        Reviewed by Mark Rowe.

        Added WebDelegateImplementationCaching.h/mm

        * WebKit.xcodeproj/project.pbxproj:

2009-06-03  Sam Weinig  <sam@webkit.org>

        Reviewed by Mark Rowe.

        Add WebViewInternal.mm.

        * WebKit.xcodeproj/project.pbxproj:

2009-06-03  Dan Bernstein  <mitz@apple.com>

        Reviewed by Anders Carlsson.

        - WebKit project part of eliminating WebCoreTextRenderer

        * WebKit.xcodeproj/project.pbxproj: Changed WebKitNSStringExtras.m to
            compile as Objective-C++.

2009-06-01  Darin Adler  <darin@apple.com>

        Reviewed by Maciej Stachowiak.

        Bug 26113: break WebTextCompletionController out into its own source file
        https://bugs.webkit.org/show_bug.cgi?id=26113

        * WebKit.xcodeproj/project.pbxproj: Add WebTextCompletionController.h/mm.

2009-05-28  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Anders Carlsson.

        Symlink WebKitPluginHost.app in to place if needed.

        * WebKit.xcodeproj/project.pbxproj:

2009-05-24  Darin Adler  <darin@apple.com>

        * StringsNotToBeLocalized.txt: Updated for recent changes. Got rid of most full-file exceptions.

2009-05-16  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig and Dan Bernstein.

        Fix <rdar://problem/6889644>.
        
        * English.lproj/Localizable.strings:

2009-05-10  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Dan Bernstein.

        <rdar://problem/6870383> Have to enter credentials twice when downloading from a protected page

        * WebKit.xcodeproj/project.pbxproj: Renamed Misc/WebDownload.m as WebDownload.mm, so that
        it could use C++ code from AuthenticaitonMac.h.

2009-04-27  Douglas R. Davidson  <ddavidso@apple.com>

        Add localizable strings for 
        <rdar://problem/6724106> WebViews need to implement text checking

        Reviewed by Justin Garcia.

        * English.lproj/Localizable.strings:

2009-04-27  Kevin Decker  <kdecker@apple.com>

        Reviewed by Anders Carlsson.
                
        <rdar://problem/6352982>

        * WebKit.xcodeproj/project.pbxproj: Added WebNetscapeContainerCheckContextInfo.mm to the project.

2009-04-23  Kevin Decker  <kdecker@apple.com>

        Reviewed by Anders Carlsson.

        * WebKit.xcodeproj/project.pbxproj: Added WebNetscapeContainerCheckPrivate.mm and header to the project.

2009-04-21  Adam Roben  <aroben@apple.com>

        Update StringsNotToBeLocalized.txt for recent changes

        Rubber-stamped by John Sullivan.

        * StringsNotToBeLocalized.txt:

2009-04-19  Darin Adler  <darin@apple.com>

        * StringsNotToBeLocalized.txt: Updated for recent changes.

2009-04-17  David Kilzer  <ddkilzer@apple.com>

        Simplify FEATURE_DEFINES definition

        Reviewed by Darin Adler.

        This moves FEATURE_DEFINES and its related ENABLE_FEATURE_NAME
        variables to their own FeatureDefines.xcconfig file.  It also
        extracts a new ENABLE_GEOLOCATION variable so that
        FEATURE_DEFINES only needs to be defined once.

        * WebKit.xcodeproj/project.pbxproj: Added
        FeatureDefines.xcconfig file.

2009-04-10  Timothy Hatcher  <timothy@apple.com>

        Remove DOMDocumentPrivate.h now that <rdar://problem/6730996> is fixed.

        Rubber-stamped by Mark Rowe.

        * WebKit.xcodeproj/project.pbxproj:

2009-04-09  Mike Thole  <mthole@apple.com>

        Reviewed by Adam Roben.

        * WebKit.xcodeproj/project.pbxproj:
            Set the Localizable.strings encoding to UTF-16.

2009-04-07  Anders Carlsson  <andersca@apple.com>

        Try to fix the Leopard build once more.

        * WebKit.xcodeproj/project.pbxproj:

2009-04-07  Anders Carlsson  <andersca@apple.com>

        Another attempt at fixing the build.
        
        * WebKit.xcodeproj/project.pbxproj:

2009-04-02  Adele Peterson  <adele@apple.com>

        Reviewed by Darin Adler.

        * WebKit.xcodeproj/project.pbxproj: 
        Add WebDOMOperationsInternal.h and make WebDOMOperationsPrivate.h private. 

2009-04-01  Greg Bolsinga  <bolsinga@apple.com>

        Reviewed by Mark Rowe.

        https://bugs.webkit.org/show_bug.cgi?id=24990
        Put SECTORDER_FLAGS into xcconfig files.

        * WebKit.xcodeproj/project.pbxproj:

2009-03-27  Darin Adler  <darin@apple.com>

        * StringsNotToBeLocalized.txt: Updated for recent changes.

2009-03-16  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        * English.lproj/Localizable.strings: Updated.
        * StringsNotToBeLocalized.txt: Updated for recent changes.

2009-03-13  Greg Bolsinga  <bolsinga@apple.com>

        Reviewed by Simon Fraser.

        Update Geolocation perimission dialogs to be asynchronous.
        https://bugs.webkit.org/show_bug.cgi?id=24505

        Add WebGeolocation, a wrapper around WebCore::Geolocation. It mimics the
        coding style set by WebSecurityOrigin.

        * WebKit.xcodeproj/project.pbxproj:

2009-03-13  Anders Carlsson  <andersca@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/6610666> Revise the Cocoa event model text API
        
        Remove nptextinput.h
        
        * WebKit.xcodeproj/project.pbxproj:

2009-03-03  David Kilzer  <ddkilzer@apple.com>

        <rdar://problem/6581203> WebCore and WebKit should install the same set of headers during installhdrs phase as build phase

        Reviewed by Mark Rowe.

        The fix is to add INSTALLHDRS_COPY_PHASE = YES and
        INSTALLHDRS_SCRIPT_PHASE = YES to WebKit.xcconfig, then to
        make sure various build phase scripts work with the installhdrs
        build phase.

        * WebKit.xcodeproj/project.pbxproj:
        - Added shell code to prevent running "Check For Global
          Initializers", "Check For Exit Time Destructors" and "Check
          For Weak VTables" scripts during the installhdrs build phase.
        - Removed UMBRELLA_FRAMEWORKS_DIR from the Debug and Release
          targets since it's no longer needed after defining
          WEBCORE_PRIVATE_HEADERS_DIR in WebKit.xcconfig.

2009-03-03  David Kilzer  <ddkilzer@apple.com>

        Remove last vestiges of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR from WebKit

        Reviewed by Adam Roben.

        Use of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR was removed in r37465
        since NPAPI headers had migrated from JavaScriptCore to WebCore
        before that.

        * WebKit.xcodeproj/project.pbxproj: Removed
        JAVASCRIPTCORE_PRIVATE_HEADERS_DIR build setting from from Debug
        and Release configurations.

2009-03-02  Anders Carlsson  <andersca@apple.com>

        WebNetscapePluginPackage.mm is an Objective-C++ file.

        * WebKit.xcodeproj/project.pbxproj:

2009-03-02  Anders Carlsson  <andersca@apple.com>

        Reviewed by John Sullivan.

        Rename WebNetscapePluginPackage.m to WebNetscapePluginPackage.mm
        
        * WebKit.xcodeproj/project.pbxproj:

2009-02-20  Anders Carlsson  <andersca@apple.com>

        Reviewed by Dan Bernstein.

        Add new files.
        
        * WebKit.xcodeproj/project.pbxproj:

2009-02-13  Darin Adler  <darin@apple.com>

        * StringsNotToBeLocalized.txt: Updated for recent changes.

2009-02-07  Darin Adler  <darin@apple.com>

        * StringsNotToBeLocalized.txt: Updated for recent changes.

2009-02-04  Timothy Hatcher  <timothy@apple.com>

        Removed the WebDefaultScriptDebugDelegate now that we have CallScriptDebugDelegate.

        <rdar://problem/6508457> Launching widget in Dashcode debugger is
        super-slow due forwardInvocation: calling debug delegate

        Reviewed by Oliver Hunt.

        * WebKit.xcodeproj/project.pbxproj:

2009-02-02  Anders Carlsson  <andersca@apple.com>

        Reviewed by Dan Bernstein.
        
        Remove WebKitPluginContainerView.{h|mm}, they aren't used anywhere.
        
        * WebKit.xcodeproj/project.pbxproj:

2009-01-26  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Sam Weinig.

        Clean up after r40240.

        * WebKit.xcodeproj/project.pbxproj: Reinstate WebKitPluginHost.defs.

2009-01-25  Darin Adler  <darin@apple.com>

        Try to fix full build on Mac Leopard.

        * WebKit.xcodeproj/project.pbxproj: Removed WebKitPluginClient.defs from the WebKit target.
        Maybe this is temporary, but I had to do it to get the full build to succeed.

2009-01-25  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Dan Bernstein.

        Improve the consistency of settings in our .xcconfig files.

        * WebKit.xcodeproj/project.pbxproj:

2009-01-23  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Darin Adler

        Rename CachedPagePlatformData to CachedFramePlatformData to more accurately reflect its true role.

        * WebKit.xcodeproj/project.pbxproj:

2009-01-20  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.

        Add ProxyInstance files.
        
        * WebKit.xcodeproj/project.pbxproj:

2009-01-04  David Kilzer  <ddkilzer@apple.com>

        Don't install internal headers in WebKit framework

        Reviewed by Darin Adler.

        * WebKit.xcodeproj/project.pbxproj: Remove roles from internal
        headers so they're not installed.

2009-01-02  Darin Adler  <darin@apple.com>

        * StringsNotToBeLocalized.txt: Updated.

2008-12-23  Darin Adler  <darin@apple.com>

        Reviewed by Alexey Proskuryakov.

        - fix https://bugs.webkit.org/show_bug.cgi?id=22976
          crash due to Mail's use of WebArchive and WebResource on non-main thread

        * StringsNotToBeLocalized.txt: Updated.

        * WebKit.xcodeproj/project.pbxproj: Added new file WebNSObjectExtras.mm and
        existing file WebResourceInternal.h.

2008-12-08  David Kilzer  <ddkilzer@apple.com>

        Bug 22555: Sort "children" sections in Xcode project files

        <https://bugs.webkit.org/show_bug.cgi?id=22555>

        Reviewed by Eric Seidel.

        * WebKit.xcodeproj/project.pbxproj: Sorted.

2008-12-08  Darin Adler  <darin@apple.com>

        * StringsNotToBeLocalized.txt: Updated for recent changes.

2008-12-05  Dan Bernstein  <mitz@apple.com>

        Mac build fix.

        * WebKit.xcodeproj/project.pbxproj:

2008-12-05  Dan Bernstein  <mitz@apple.com>

        Mac build fix.

        * WebKit.xcodeproj/project.pbxproj:

2008-12-04  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.

        Add HostedNetscapePluginStream.
        
        * WebKit.xcodeproj/project.pbxproj:

2008-12-03  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.
        
        Move WebPluginRequest to its own file.
        
        * WebKit.xcodeproj/project.pbxproj:

2008-12-03  Steve Falkenburg  <sfalken@apple.com>

        Update strings not to be localized.

        Reviewed by Adam Roben.

        * StringsNotToBeLocalized.txt:

2008-11-26  Mark Rowe  <mrowe@apple.com>

        Build fix.

        Fix up the references to files under WebKit/mac/Plugins/Hosted.

        * WebKit.xcodeproj/project.pbxproj:

2008-11-26  Anders Carlsson  <andersca@apple.com>

        Reviewed by Mark Rowe.

        Add plug-in host related files to the Xcode project.
        
        * WebKit.xcodeproj/project.pbxproj:

2008-11-14  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - part of <rdar://problem/6234337> Add a Text Direction menu to the default context menu when appropriate

        * English.lproj/Localizable.strings: Added the Text Direction submenu
        title.

2008-11-13  John Sullivan  <sullivan@apple.com>

        fixed <rdar://problem/6361578> Web Kit UI strings: a few edits

        Reviewed by Tim Hatcher

        * English.lproj/Localizable.strings:
        updated for these changes
        
        * StringsNotToBeLocalized.txt:
        removed unused exception

2008-11-12  John Sullivan  <sullivan@apple.com>

        fixed <rdar://problem/3839110> Authentication dialogs talk about passwords being sent "in the clear"

        Reviewed by Tim Hatcher

        * English.lproj/Localizable.strings:
        * StringsNotToBeLocalized.txt:
        updated for this change

2008-11-10  Anders Carlsson  <andersca@apple.com>

        Reviewed by Kevin Decker.
        
        Add WebHostedNetscapePluginView to the project.
        
        * WebKit.xcodeproj/project.pbxproj:

2008-11-10  Anders Carlsson  <andersca@apple.com>

        Reviewed by Kevin Decker.

        Add a new WebBaseNetscapePluginView class.
        
        * WebKit.xcodeproj/project.pbxproj:

2008-11-10  Anders Carlsson  <andersca@apple.com>

        Reviewed by Adam Roben.
                
        Rename WebBaseNetscapePluginView to WebNetscapePluginView.

        * StringsNotToBeLocalized.txt:
        * WebKit.xcodeproj/project.pbxproj:

2008-11-05  Anders Carlsson  <andersca@apple.com>

        Reviewed by Kevin Decker.

        Remove WebPlugInStreamLoaderDelegate.h
        
        * WebKit.xcodeproj/project.pbxproj:

2008-11-03  Darin Adler  <darin@apple.com>

        Reviewed by Tim Hatcher.

        - https://bugs.webkit.org/show_bug.cgi?id=22061
          create script to check for exit-time destructors

        * WebKit.xcodeproj/project.pbxproj: Added a script
        phase that runs the check-for-exit-time-destructors script.

2008-10-31  Anders Carlsson  <andersca@apple.com>

        Reviewed by Kevin Decker.

        Move WebNetscapePluginEventHandler classes to a subgroup of Netscape Plug-Ins.
        
        * WebKit.xcodeproj/project.pbxproj:

2008-10-29  Matt Lilek  <webkit@mattlilek.com>

        Not reviewed, build fix.

        * WebKit.xcodeproj/project.pbxproj:

2008-10-28  Adele Peterson  <adele@apple.com>

        Reviewed by John Sullivan.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=21880
        "files" string for multifile uploads needs to be localized

        * English.lproj/Localizable.strings: Updated with new string.

2008-10-28  Adele Peterson  <adele@apple.com>

        Reviewed by Sam Weinig. 

        * English.lproj/Localizable.strings:
        Updated.

2008-10-27  Darin Adler  <darin@apple.com>

        * StringsNotToBeLocalized.txt: Updated for recent changes.

2008-10-24  Timothy Hatcher  <timothy@apple.com>

        Implement new InspectorClient methods to work with Settings.

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

        Reviewed by Darin Adler.

        * WebKit.xcodeproj/project.pbxproj: Add the new InspectorClientCF.cpp file.

2008-10-15  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Brady Eidson.

        <rdar://problem/5803460> A file named StringsNotToBeLocalized.txt file is installed Webkit.framework/Resources.

        * WebKit.xcodeproj/project.pbxproj: Don't install StringsNotToBeLocalized.txt.

2008-10-14  Maxime Britto  <britto@apple.com>

        Reviewed by Darin Adler.

        * WebKit.xcodeproj/project.pbxproj: Added two files for the 
        WebTextIterator, and made the WebTextIterator.h private

2008-10-04  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        Add a 'Check For Weak VTables' build phase to catch weak vtables as early as possible.

        * WebKit.xcodeproj/project.pbxproj:

2008-09-24  Darin Adler  <darin@apple.com>

        * StringsNotToBeLocalized.txt: Updated for recent changes.

2008-09-15  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler, Beth Dakin

        Support strings for AXLists

        * English.lproj/Localizable.strings:

2008-09-15  Anders Carlsson  <andersca@apple.com>

        Reviewed by Mitz.

        Merge WebNetscapePluginStream into WebBaseNetscapePluginStream.
        
        * WebKit.xcodeproj/project.pbxproj:

2008-09-02  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        Build fix.  Remove the now unnecessary check for "4" in the user agent string.

        * WebKit.xcodeproj/project.pbxproj:

2008-08-17  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Cameron Zwarich.
        
        Updated project files to XCode 3.1.

        * WebKit.xcodeproj/project.pbxproj:

2008-08-15  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Geoff Garen.

        <rdar://problem/6139914> Please include a _debug version of JavaScriptCore framework

        * WebKit.xcodeproj/project.pbxproj: Enable the debug variant.

2008-08-05  Anders Carlsson  <andersca@apple.com>

        Reviewed by Darin Adler.

        Remove MainThreadObjectDeallocator.{h|mm}.
        
        * WebKit.xcodeproj/project.pbxproj:

2008-08-04  Mark Rowe  <mrowe@apple.com>

        Reviewed by Darin Adler.

        Declare empty protocols when using versions of AppKit that do not use formal protocols for delegates and data sources.
        Part one of fix for <rdar://problem/5853147>.

        * WebKit.xcodeproj/project.pbxproj:

2008-07-31  David D. Kilzer  <ddkilzer@webkit.org>

        Fix layout test results for webarchive/test-xml-stylesheet.xml

        Reviewed by Darin Adler.

        * WebKit.xcodeproj/project.pbxproj: Added WebHTMLRepresentationInternal.h.
        Changed WebHTMLRepresentationInternal.h and WebHTMLRepresentationPrivate.h
        to private so they're copied into PrivateHeaders.

2008-07-11  Stephanie Lewis  <slewis@apple.com>

        Reviewed by Darin Adler.

        Move WebPreferences.m to objc++ so it can include the new WTF leak counting class.

        * WebKit.xcodeproj/project.pbxproj:

2008-07-07  Mark Rowe  <mrowe@apple.com>

        Fix references to WebRenderNode.h and WebRenderNode.mm in Xcode project
        so that they don't have an unnecessary ".." in the path.

        * WebKit.xcodeproj/project.pbxproj:

2008-07-05  Mark Rowe  <mrowe@apple.com>

        Reviewed by John Sullivan.

        Remove WebSearchableTextView as it has been unused for some time now.

        * WebKit.xcodeproj/project.pbxproj:

2008-06-26  Anders Carlsson  <andersca@apple.com>

        Reviewed by Darin Adler.

        Add MainThreadObjectDeallocator to sources.
        
        * WebKit.xcodeproj/project.pbxproj:

2008-06-24  John Sullivan  <sullivan@apple.com>

        Rubber-stamped by Sam Weinig

        * StringsNotToBeLocalized.txt:
        brought this file up to date

2008-06-17  Mark Rowe  <mrowe@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/5775802> WebKit should not force use of GCC 4.0.

        * WebKit.xcodeproj/project.pbxproj:

2008-05-22  Timothy Hatcher  <timothy@apple.com>

        <rdar://problem/5956403> Update the Develop menu to match the new Inspector items

        Reviewed by Adam Roben.

        * English.lproj/Localizable.strings: Added new strings.

2008-05-21  Anders Carlsson  <andersca@apple.com>

        Reviewed by Maciej.

        Add WebIconFetcher files.
        
        * WebKit.xcodeproj/project.pbxproj:

2008-05-16  Timothy Hatcher  <timothy@apple.com>

        Removes WebScriptDebugServer files and related calls. This removes
        the hooks that Drosera uses for debugging. Now that the Web Inspector
        has a better debugger, we don't need these anymore.

        Reviewed by Sam Weinig.

        * StringsNotToBeLocalized.txt:
        * WebKit.xcodeproj/project.pbxproj:

2008-05-13  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin

        <rdar://problem/4780592> WebKit application has its window announced as HTML content

        * English.lproj/Localizable.strings:
        * WebKit.xcodeproj/project.pbxproj:

2008-05-09  Anders Carlsson  <andersca@apple.com>

        Reviewed by Oliver.

        <rdar://problem/5774495> Make Unicode text input possible in Netscape-style plug-ins
        
        Add nptextinput.h as a public header.
        
        * WebKit.xcodeproj/project.pbxproj:

2008-05-06  Stephanie Lewis  <slewis@apple.com>

        Reviewed by Andersca.

        prepare for plugin fast teardown work - make WebPluginDatabase a objective C++ file.

        * WebKit.xcodeproj/project.pbxproj:

2008-05-01  Anders Carlsson  <andersca@apple.com>

        Reviewed by Tim.

        Remove npfunctions.h
        
        * WebKit.xcodeproj/project.pbxproj:

2008-05-01  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Turn off deprecated warnings for WebNetscapePluginEventHandlerCarbon.mm.

        * WebKit.xcodeproj/project.pbxproj:

2008-04-30  Anders Carlsson  <andersca@apple.com>

        Reviewed by Adam.

        Add Cocoa event handler.
        
        * WebKit.xcodeproj/project.pbxproj:

2008-04-29  Anders Carlsson  <andersca@apple.com>

        Reviewed by Adam.

        Add new event handlers.
        
        * WebKit.xcodeproj/project.pbxproj:

2008-04-07  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim
        
        - made the JavaScript text input panel not block Quit (part of 4133196)

        * English.lproj/WebJavaScriptTextInputPanel.nib/classes.nib:
        * English.lproj/WebJavaScriptTextInputPanel.nib/info.nib:
        * English.lproj/WebJavaScriptTextInputPanel.nib/keyedobjects.nib:
        Made the panel be a NonBlockingPanel

2008-04-04  Ada Chan  <adachan@apple.com>

        Updated the format string for window title for a standalone image to take integers.

        Reviewed by Dan.

        * English.lproj/Localizable.strings:

2008-03-28  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Darin Adler

        Remove WebArchiver.h/mm

        * WebKit.xcodeproj/project.pbxproj:

2008-03-25  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin

        <rdar://problem/4516169> - Support WebArchives on Windows

        * WebKit.xcodeproj/project.pbxproj:

2008-03-24  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin's rubberstamp

        Rename a .m to .mm

        * WebKit.xcodeproj/project.pbxproj:

2008-03-20  John Sullivan  <sullivan@apple.com>

        * StringsNotToBeLocalized.txt:
        Brought this file up to date

2008-03-20  Adam Roben  <aroben@apple.com>

        Mark WebNodeHighlight.m and WebNodeHighlightView.m Obj-C++

        Reviewed by Tim Hatcher.

        * WebKit.xcodeproj/project.pbxproj:

2008-03-12  Darin Adler  <darin@apple.com>

        Reviewed by Anders.

        - http://bugs.webkit.org/show_bug.cgi?id=17640
          eliminate WebCoreFrameBridge

        * StringsNotToBeLocalized.txt: Updated for recent changes.
        * WebKit.xcodeproj/project.pbxproj: Removed WebFrameBridge.h and WebFrameBridge.mm.

2008-03-11  Darin Adler  <darin@apple.com>

        Reviewed by Anders.

        * WebKit.xcodeproj/project.pbxproj: Change WebDynamicScrollBarsView.m to be Obj-C++.
        We can rename the file later.

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

        Reviewed by Oliver Hunt.

        Fix WebKit build with GCC 4.2.

        * WebKit.xcodeproj/project.pbxproj:  Mark WebTypesInternal.h as a private header so that DumpRenderTree can use it.

2008-03-06  Darin Adler  <darin@apple.com>

        * WebKit.xcodeproj/project.pbxproj: Added WebHistoryInternal.h.

2008-03-06  David D. Kilzer  <ddkilzer@apple.com>

        Name the WebKit build phase script that generates WebKit.LP64.exp.

        * WebKit.xcodeproj/project.pbxproj: Name the build phase script
        that generates the 64-bit export file to match the corresponding
        build phase script in WebCore.

2008-03-05  Adam Roben  <aroben@apple.com>

        Remove WebCoreScriptDebugger.{h,mm}

        Reviewed by Kevin M.

        * WebKit.xcodeproj/project.pbxproj:

2008-03-05  Adam Roben  <aroben@apple.com>

        Rename WebCoreScriptDebuggerImp.{h,mm} to WebScriptDebugger.{h,mm}

        Reviewed by Kevin M.

        * WebKit.xcodeproj/project.pbxproj:

2008-03-05  Adam Roben  <aroben@apple.com>

        Remove WebScriptDebugger

        Reviewed by Kevin M.

        * WebKit.xcodeproj/project.pbxproj: Remove
        WebScriptDebugDelegatePrivate.h from the project.

2008-03-05  Adam Roben  <aroben@apple.com>

        Move WebCoreScriptDebuggerImp to its own source files

        Reviewed by Kevin M.

        * WebKit.xcodeproj/project.pbxproj: Added new files to the project.

2008-03-05  Adam Roben  <aroben@apple.com>

        Move WebCoreScriptDebugger to WebKit

        Reviewed by Darin Adler.

        * WebKit.xcodeproj/project.pbxproj: Added WebCoreScriptDebugger.{h,mm}
        to the project.

2008-01-26  Greg Bolsinga  <bolsinga@apple.com>

        <rdar://problem/5708388> WebDashboardRegion.h duplicated between WebCore / WebKit

        Reviewed by Darin Adler.

        * WebKit.xcodeproj/project.pbxproj: Removed WebDashboardRegion.h.

2008-01-23  Steve Falkenburg  <sfalken@apple.com>

        Update localization exceptions.
        
        Reviewed by Darin Adler.

        * English.lproj/Localizable.strings:
        * StringsNotToBeLocalized.txt:

2008-01-20  Mark Rowe  <mrowe@apple.com>

        Reviewed by Dan Bernstein.

        Remove code bracketed by REMOVE_SAFARI_DOM_TREE_DEBUG_ITEM as we are no longer
        interested in supporting Safari 2 with TOT WebKit.

        * WebKit.xcodeproj/project.pbxproj: Don't define REMOVE_SAFARI_DOM_TREE_DEBUG_ITEM
        as it is no longer used. 

2008-01-03  Darin Adler  <darin@apple.com>

        - fix Safari build

        * WebKit.xcodeproj/project.pbxproj: Mark header private (fixes Safari build).

2008-01-02  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        Removed "BackwardDelete", which is no longer present in source code.

        * StringsNotToBeLocalized.txt:

2007-12-16  Mark Rowe  <mrowe@apple.com>

        Reviewed by Maciej Stachowiak.

        Refactor Mac plugin stream code to use the shared NetscapePlugInStreamLoader implementation.

        * WebKit.xcodeproj/project.pbxproj: Add new files.

2007-12-14  Darin Adler  <darin@apple.com>

        * StringsNotToBeLocalized.txt: Updated.

2007-12-12  Brady Eidson  <beidson@apple.com>

        Reviewed by Sam Weinig

        Fix for <rdar://problem/4886844> and lay groundwork for <rdar://problem/4516170> (Back/Forward Cache on Windows)

        * WebKit.xcodeproj/project.pbxproj: Added a new file

2007-12-12  Mark Rowe  <mrowe@apple.com>

        Reviewed by Dave Kilzer.

        Remove abuse of projectDirPath from WebKit.xcodeproj to fix Production builds.

        * WebKit.xcodeproj/project.pbxproj:

2007-11-19  Brady Eidson <beidson@apple.com>

        Reviewed by Maciej

        * WebKit.xcodeproj/project.pbxproj: Sorted!

2007-11-17  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Mark Rowe.

        Bug 13470: i18n: The Web Inspector is not localizable
        http://bugs.webkit.org/show_bug.cgi?id=13470

        Update the localized strings and the file encoding of WebInspectorClient.mm.

        * English.lproj/Localizable.strings:
        * StringsNotToBeLocalized.txt:
        * WebKit.xcodeproj/project.pbxproj:

2007-11-16  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        Build WebCore as a sub-framework of WebKit in all configurations.

        * WebKit.xcodeproj/project.pbxproj:

2007-11-16  Brady Eidson  <beidson@apple.com>

        * WebKit.xcodeproj/project.pbxproj: WebDatabaseManagerPrivate.h, also!

2007-11-16  Brady Eidson  <beidson@apple.com>

        * WebKit.xcodeproj/project.pbxproj: Mark WebSecurityOriginPrivate.h private so
          it is exported

2007-11-16  Brady Eidson  <beidson@apple.com>

        Reviewed by John

        Database management API tweaks

        * WebKit.xcodeproj/project.pbxproj:

2007-11-15  Brady Eidson  <beidson@apple.com>

        Reviewed by John

        Stubbing out everything required for a WebKit API for databases

        * WebKit.xcodeproj/project.pbxproj:

2007-11-12  Adam Roben  <aroben@apple.com>

        * StringsNotToBeLocalized.txt: Updated.

2007-11-08  Kevin Ollivier  <kevino@theolliviers.com>

        Adding the wx WebKit implementation.

        Reviewed by Mark Rowe.

        * wx: Added.

2007-11-07  Mark Rowe  <mrowe@apple.com>

        Reviewed by Kevin Decker.

        Fix 64-bit Mac build.

        * WebKit.xcodeproj/project.pbxproj: Change paths specified relative to SRCROOT
        to be relative to PROJECT_DIR.  PROJECT_DIR takes into account the projectDirPath
        setting of the project, which in this instance includes the necessary "mac"
        subdirectory.

