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.

