2019-09-17  Jonathan Bedard  <jbedard@apple.com>

        Follow-up: [iOS 13] Enable WebKit build
        https://bugs.webkit.org/show_bug.cgi?id=199481
        <rdar://problem/52619048>

        Unreviewed build-fix.

        * WebKitPrivateFrameworkStubs/iOS/13/DeviceIdentity.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/13/DeviceIdentity.framework/DeviceIdentity.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/13/IOSurfaceAccelerator.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/13/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd: Added.

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

        [iOS 13] Enable WebKit build
        https://bugs.webkit.org/show_bug.cgi?id=199481
        <rdar://problem/52619048>

        Reviewed by Tim Horton.

        Added iOS 13 framework stubs, used tbd version 3 in all new stubs.

        * WebKitPrivateFrameworkStubs/iOS/13: Added.
        * WebKitPrivateFrameworkStubs/iOS/13/AppSupport.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/13/AssertionServices.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/13/AuthKit.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/13/CorePDF.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/13/CorePrediction.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/13/SafariSafeBrowsing.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/13/URLFormatting.framework: 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.

        * WebKitPrivateFrameworkStubs/Mac: Added.
        * WebKitPrivateFrameworkStubs/Mac/101500: Added.
        * WebKitPrivateFrameworkStubs/Mac/101500/AuthKit.framework: Added.
        * WebKitPrivateFrameworkStubs/Mac/101500/AuthKit.framework/AuthKit.tbd: Added.

2019-04-29  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
        <rdar://problem/50224412>

        Reviewed by Ross Kirsling.

        Modify script not to invoke SVN command if the directory for SVN doesn't exists.

        * win/tools/scripts/auto-version.pl:

2019-04-12  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Software keyboard is shown too frequently on some websites
        https://bugs.webkit.org/show_bug.cgi?id=195856
        <rdar://problem/49191395>

        Reviewed by Darin Adler.

        Add a symbol for GSEventSetHardwareKeyboardAttached.

        * WebKitPrivateFrameworkStubs/iOS/12/GraphicsServices.framework/GraphicsServices.tbd:

2019-01-01  Jeff Miller  <jeffm@apple.com>

        Update user-visible copyright strings to include 2019
        https://bugs.webkit.org/show_bug.cgi?id=192811

        Reviewed by Mark Lam.

        * win/tools/scripts/COPYRIGHT-END-YEAR:

2018-11-11  Daniel Bates  <dabates@apple.com>

        [iOS] Draw caps lock indicator in password fields
        https://bugs.webkit.org/show_bug.cgi?id=190565
        <rdar://problem/45262343>

        Reviewed by Dean Jackson.

        Expose some more symbols.

        * WebKitPrivateFrameworkStubs/iOS/12/GraphicsServices.framework/GraphicsServices.tbd:

2018-11-09  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r238047.

        Introduced layout test failures on iOS simulator.

        Reverted changeset:

        "[iOS] Draw caps lock indicator in password fields"
        https://bugs.webkit.org/show_bug.cgi?id=190565
        https://trac.webkit.org/changeset/238047

2018-11-09  Daniel Bates  <dabates@apple.com>

        [iOS] Draw caps lock indicator in password fields
        https://bugs.webkit.org/show_bug.cgi?id=190565
        <rdar://problem/45262343>

        Reviewed by Dean Jackson.

        Expose some more symbols.

        * WebKitPrivateFrameworkStubs/iOS/12/GraphicsServices.framework/GraphicsServices.tbd:

2018-06-27  Jonathan Bedard  <jbedard@apple.com>

        Enable WebKit iOS 12 build
        https://bugs.webkit.org/show_bug.cgi?id=187024
        <rdar://problem/39759057>

        Reviewed by David Kilzer.

        * WebKitPrivateFrameworkStubs/iOS/12: Added.

2018-05-24  Joseph Pecoraro  <pecoraro@apple.com>

        [iOS] Hard link AppSupport instead of soft linking
        https://bugs.webkit.org/show_bug.cgi?id=185959
        <rdar://problem/40506538>

        Reviewed by Timothy Horton.

        * WebKitPrivateFrameworkStubs/iOS/10/AppSupport.framework/AppSupport.tbd:
        * WebKitPrivateFrameworkStubs/iOS/11/AppSupport.framework/AppSupport.tbd:
        Add stub for ObjC Class CPNetworkObserver.

2018-03-17  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Implement authenticatorMakeCredential
        https://bugs.webkit.org/show_bug.cgi?id=183527
        <rdar://problem/35275886>

        Reviewed by Brent Fulgham.

        * WebKitPrivateFrameworkStubs/iOS/11/DeviceIdentity.framework/DeviceIdentity.tbd: Added.

2018-02-20  Tim Horton  <timothy_horton@apple.com>

        Introduce HAVE(IOSURFACE_ACCELERATOR)
        https://bugs.webkit.org/show_bug.cgi?id=182955
        <rdar://problem/37699510>

        Reviewed by Sam Weinig.

        * WebKitPrivateFrameworkStubs/iOS/10/IOSurface.framework/IOSurface.tbd:
        * WebKitPrivateFrameworkStubs/iOS/10/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/11/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd: Added.
        Switch IOSurfaceAccelerator symbols over to the still-private IOSurfaceAccelerator framework.

2018-01-19  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r227211.

        Breaks iOS Simulator tests.

        Reverted changeset:

        "Expose Safe Browsing SPI"
        https://bugs.webkit.org/show_bug.cgi?id=181804
        https://trac.webkit.org/changeset/227211

2017-12-22  Jeff Miller  <jeffm@apple.com>

        Update user-visible copyright strings to include 2018
        https://bugs.webkit.org/show_bug.cgi?id=181141

        Reviewed by Dan Bernstein.

        * win/tools/scripts/COPYRIGHT-END-YEAR:

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.

        * libWebKitSystemInterfaceElCapitan.a: Removed.
        * libWebKitSystemInterfaceIOSDevice10.a: Removed.
        * libWebKitSystemInterfaceIOSDevice11.a: Removed.
        * libWebKitSystemInterfaceIOSSimulator10.a: Removed.
        * libWebKitSystemInterfaceIOSSimulator11.a: Removed.
        * libWebKitSystemInterfaceOSX10.12.a: Removed.
        * libWebKitSystemInterfaceOSX10.13.a: Removed.

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

        Add WebKitPrivateFrameworkStubs for iOS 11
        https://bugs.webkit.org/show_bug.cgi?id=173988

        Reviewed by David Kilzer.

        * WebKitPrivateFrameworkStubs/iOS/9: Add Mac architecture for Simulator.
        * WebKitPrivateFrameworkStubs/iOS/10: Ditto..
        * WebKitPrivateFrameworkStubs/iOS/11: Added.

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

        [iOS] Remove code only needed when building for iOS 9.x
        https://bugs.webkit.org/show_bug.cgi?id=174068

        Reviewed by Tim Horton.

        * WebKitPrivateFrameworkStubs/iOS/9: Removed.
        * WebKitPrivateFrameworkStubs/iOS/9/AppSupport.framework: Removed.
        * WebKitPrivateFrameworkStubs/iOS/9/AppSupport.framework/AppSupport.tbd: Removed.
        * WebKitPrivateFrameworkStubs/iOS/9/AssertionServices.framework: Removed.
        * WebKitPrivateFrameworkStubs/iOS/9/AssertionServices.framework/AssertionServices.tbd: Removed.
        * WebKitPrivateFrameworkStubs/iOS/9/CorePDF.framework: Removed.
        * WebKitPrivateFrameworkStubs/iOS/9/CorePDF.framework/CorePDF.tbd: Removed.
        * WebKitPrivateFrameworkStubs/iOS/9/GraphicsServices.framework: Removed.
        * WebKitPrivateFrameworkStubs/iOS/9/GraphicsServices.framework/GraphicsServices.tbd: Removed.
        * WebKitPrivateFrameworkStubs/iOS/9/IOSurface.framework: Removed.
        * WebKitPrivateFrameworkStubs/iOS/9/IOSurface.framework/IOSurface.tbd: Removed.

2017-06-29  Jonathan Bedard  <jbedard@apple.com>

        Add WebKitSystemInterface for iOS 11
        https://bugs.webkit.org/show_bug.cgi?id=173936

        Reviewed by Lucas Forschler.

        * libWebKitSystemInterfaceIOSDevice11.a: Added.
        * libWebKitSystemInterfaceIOSSimulator11.a: Added.

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

        [iOS] Ensure that GraphicsServices is initialized before calling GSFontPurgeFontCache().
        https://bugs.webkit.org/show_bug.cgi?id=173616
        <rdar://problem/30780050>

        Reviewed by Chris Dumez.

        * WebKitPrivateFrameworkStubs/iOS/10/GraphicsServices.framework/GraphicsServices.tbd:

2017-06-09  Lucas Forschler  <lforschler@apple.com>

        <rdar://problem/32683422>
        
        Update existing WebKitSystemInterface libraries.
        Add macOS 10.13 libraries.
        Remove macOS 10.10 libraries.
        Remove iOS 10.9 libraries.
        
        Reviewed by Conrad Schultz.

        * libWebKitSystemInterfaceElCapitan.a:
        * libWebKitSystemInterfaceIOSDevice10.a:
        * libWebKitSystemInterfaceIOSDevice9.a: Removed.
        * libWebKitSystemInterfaceIOSSimulator10.a:
        * libWebKitSystemInterfaceIOSSimulator9.a: Removed.
        * libWebKitSystemInterfaceOSX10.12.a:
        * libWebKitSystemInterfaceOSX10.13.a: Added.
        * libWebKitSystemInterfaceYosemite.a: Removed.

2017-04-11  Dan Bernstein  <mitz@apple.com>

        [Cocoa] WebKit unnecessarily soft-links CorePrediction
        https://bugs.webkit.org/show_bug.cgi?id=170644

        Reviewed by Sam Weinig.

        * WebKitPrivateFrameworkStubs/iOS/10/CorePrediction.framework: Added this framework stub.
        * WebKitPrivateFrameworkStubs/iOS/10/CorePrediction.framework/CorePrediction.tbd: Added.

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

        Removed an empty directory left behind after r212841.

        * WebKitPrivateFrameworkStubs/iOS/10/CorePrediction.framework: Removed.

2017-02-20  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r212685.

        This change broke the 32-bit Sierra build.

        Reverted changeset:

        "Resource Load Statistics: Add alternate classification
        method"
        https://bugs.webkit.org/show_bug.cgi?id=168347
        http://trac.webkit.org/changeset/212685

2017-02-20  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Add alternate classification method
        https://bugs.webkit.org/show_bug.cgi?id=168347
        <rdar://problem/30352793>

        Reviewed by Alex Christensen.

        * WebKitPrivateFrameworkStubs/iOS/10/CorePrediction.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/10/CorePrediction.framework/CorePrediction.tbd: Added.
            Stubs for private framework.

2017-01-12  Andreas Kling  <akling@apple.com>

        [iOS] Purge GraphicsServices font cache on memory warning.
        <https://webkit.org/b/154343>

        Reviewed by Antti Koivisto.

        * WebKitPrivateFrameworkStubs/iOS/10/GraphicsServices.framework/GraphicsServices.tbd: Add SPI.

2017-01-01  Jeff Miller  <jeffm@apple.com>

        Update user-visible copyright strings to include 2017
        https://bugs.webkit.org/show_bug.cgi?id=166278

        Reviewed by Dan Bernstein.

        * win/tools/scripts/COPYRIGHT-END-YEAR:

2016-09-07  Daniel Bates  <dabates@apple.com>

        Update WebKitSystemInterface

        Rubber-stamped by Dean Jackson.

        Additionally, add WebKitSystemInterface for iOS 10.

        * libWebKitSystemInterfaceElCapitan.a:
        * libWebKitSystemInterfaceIOSDevice10.a: Added.
        * libWebKitSystemInterfaceIOSDevice9.a:
        * libWebKitSystemInterfaceIOSSimulator10.a: Added.
        * libWebKitSystemInterfaceIOSSimulator9.a:
        * libWebKitSystemInterfaceOSX10.12.a:
        * libWebKitSystemInterfaceYosemite.a:

2016-08-19  Daniel Bates  <dabates@apple.com>

        Attempt to fix the iOS 9.3 build

        Reorder the keys in the text-based stubs to make linker happy.

        * WebKitPrivateFrameworkStubs/iOS/9/AppSupport.framework/AppSupport.tbd:
        * WebKitPrivateFrameworkStubs/iOS/9/AssertionServices.framework/AssertionServices.tbd:
        * WebKitPrivateFrameworkStubs/iOS/9/CorePDF.framework/CorePDF.tbd:
        * WebKitPrivateFrameworkStubs/iOS/9/GraphicsServices.framework/GraphicsServices.tbd:
        * WebKitPrivateFrameworkStubs/iOS/9/IOSurface.framework/IOSurface.tbd:

2016-08-16  Daniel Bates  <dabates@apple.com>

        WKSI static library should be named by major iOS revision, not individual updates
        https://bugs.webkit.org/show_bug.cgi?id=160727
        <rdar://problem/22274848>

        Reviewed by Alexey Proskuryakov.

        * libWebKitSystemInterfaceIOSDevice9.0.a: Removed.
        * libWebKitSystemInterfaceIOSDevice9.2.a: Removed.
        * libWebKitSystemInterfaceIOSDevice9.a: Renamed from WebKitLibraries/libWebKitSystemInterfaceIOSDevice9.3.a.
        * libWebKitSystemInterfaceIOSSimulator9.0.a: Removed.
        * libWebKitSystemInterfaceIOSSimulator9.2.a: Removed.
        * libWebKitSystemInterfaceIOSSimulator9.a: Renamed from WebKitLibraries/libWebKitSystemInterfaceIOSSimulator9.3.a.

2016-08-15  Daniel Bates  <dabates@apple.com>

        Cannot build WebKit for iOS device using Xcode 7.3/iOS 9.3 public SDK due to missing
        private frameworks and libraries
        https://bugs.webkit.org/show_bug.cgi?id=155931
        <rdar://problem/25807989>

        Reviewed by Dan Bernstein.

        Add text-based stubs for private frameworks in iOS 9 and iOS 10 beta.

        * WebKitPrivateFrameworkStubs: Added.
        * WebKitPrivateFrameworkStubs/iOS: Added.
        * WebKitPrivateFrameworkStubs/iOS/10: Added.
        * WebKitPrivateFrameworkStubs/iOS/10/AppSupport.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/10/AppSupport.framework/AppSupport.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/10/AssertionServices.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/10/AssertionServices.framework/AssertionServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/10/CorePDF.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/10/CorePDF.framework/CorePDF.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/10/GraphicsServices.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/10/GraphicsServices.framework/GraphicsServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/10/IOSurface.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/10/IOSurface.framework/IOSurface.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/9: Added.
        * WebKitPrivateFrameworkStubs/iOS/9/AppSupport.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/9/AppSupport.framework/AppSupport.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/9/AssertionServices.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/9/AssertionServices.framework/AssertionServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/9/CorePDF.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/9/CorePDF.framework/CorePDF.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/9/GraphicsServices.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/9/GraphicsServices.framework/GraphicsServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/9/IOSurface.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/9/IOSurface.framework/IOSurface.tbd: Added.

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

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

        Reviewed by Alex Christensen.

        Avoid using environment variable WEBKIT_LIBRARIES when finding version stamper utility,
        in case it is not defined. Instead, use the location of the perl script to find the
        utility.

        * win/tools/scripts/version-stamp.pl:

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.

        The version stamping will fail if the target path has forward slashes.

        * win/tools/scripts/version-stamp.pl: Replace forward slashes with backslashes.

2016-06-14  Lucas Forschler  <lforschler@apple.com>

        Update existing WebKitSystemInterface Libraries.
        Add macOS Sierra WebKitSystemInterface.

        Rubber-stamped by Alexey Proskuryakov.

        * libWebKitSystemInterfaceElCapitan.a:
        * libWebKitSystemInterfaceIOSDevice9.2.a:
        * libWebKitSystemInterfaceIOSSimulator9.2.a:
        * libWebKitSystemInterfaceOSX10.12.a: Added.
        * libWebKitSystemInterfaceYosemite.a:

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

        Clean up Visual Studio properties files after switching to CMake.

        * win/tools/WinTools.make: Removed.
        * win/tools/vsprops: Removed.
        * win/tools/vsprops/FeatureDefines.props: Removed.
        * win/tools/vsprops/FeatureDefinesCairo.props: Removed.
        * win/tools/vsprops/GStreamer32.props: Removed.
        * win/tools/vsprops/GStreamer64.props: Removed.
        * win/tools/vsprops/GStreamerCommon.props: Removed.
        * win/tools/vsprops/WinCairo.props: Removed.
        * win/tools/vsprops/cURL.props: Removed.
        * win/tools/vsprops/common.props: Removed.
        * win/tools/vsprops/debug.props: Removed.
        * win/tools/vsprops/debug_wincairo.props: Removed.
        * win/tools/vsprops/debugsuffix.props: Removed.
        * win/tools/vsprops/production.props: Removed.
        * win/tools/vsprops/release.props: Removed.

2016-04-28  Dean Jackson  <dino@apple.com>

        Update WebKitSystemInterface to internal version 82799.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceElCapitan.a:
        * libWebKitSystemInterfaceIOSDevice9.2.a:
        * libWebKitSystemInterfaceIOSSimulator9.2.a:
        * libWebKitSystemInterfaceYosemite.a:

2016-03-25  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: make at the root should not create a WebKitLibraries/--lvm directory
        https://bugs.webkit.org/show_bug.cgi?id=155918

        Reviewed by Timothy Hatcher.

        * Makefile:
        Remove no longer used --llvm option.

2016-03-25  Daniel Bates  <dabates@apple.com>

        Add WebKitSystemInterface for iOS 9.3
        https://bugs.webkit.org/show_bug.cgi?id=155893

        Rubber-stamped by Alexey Proskuryakov.

        * libWebKitSystemInterfaceIOSDevice9.3.a: Added.
        * libWebKitSystemInterfaceIOSSimulator9.3.a: Added.

2016-03-13  Joseph Pecoraro  <pecoraro@apple.com>

        Remove ENABLE(ES6_TEMPLATE_LITERAL_SYNTAX) guards
        https://bugs.webkit.org/show_bug.cgi?id=155417

        Reviewed by Yusuke Suzuki.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2016-02-24  Nikos Andronikos  <nikos.andronikos-webkit@cisra.canon.com.au>

        [web-animations] Add AnimationTimeline, DocumentTimeline and add extensions to Document interface
        https://bugs.webkit.org/show_bug.cgi?id=151688

        Reviewed by Dean Jackson.

        Enables the WEB_ANIMATIONS compiler switch.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2016-02-17  Filip Pizlo  <fpizlo@apple.com>

        Remove LLVM dependencies from WebKit
        https://bugs.webkit.org/show_bug.cgi?id=154323

        Reviewed by Antti Koivisto and Benjamin Poulain.

        * LLVMIncludesElCapitan.tar.bz2: Removed.
        * LLVMIncludesIOS9.tar.bz2: Removed.
        * LLVMIncludesMavericks.tar.bz2: Removed.
        * LLVMIncludesYosemite.tar.bz2: Removed.
        * LLVMLibrariesElCapitan.tar.bz2: Removed.
        * LLVMLibrariesIOS9.tar.bz2: Removed.
        * LLVMLibrariesMavericks.tar.bz2: Removed.
        * LLVMLibrariesYosemite.tar.bz2: Removed.

2016-01-27  Daniel Bates  <dabates@apple.com>

        Remove WebKitSystemInterface for iOS SDK < 9
        https://bugs.webkit.org/show_bug.cgi?id=153570

        Reviewed by Andy Estes.

        We no longer support building for iOS < 9.

        * libWebKitSystemInterfaceIOSDevice8.1.a: Removed.
        * libWebKitSystemInterfaceIOSDevice8.2.a: Removed.
        * libWebKitSystemInterfaceIOSDevice8.3.a: Removed.
        * libWebKitSystemInterfaceIOSDevice8.4.a: Removed.
        * libWebKitSystemInterfaceIOSSimulator8.1.a: Removed.
        * libWebKitSystemInterfaceIOSSimulator8.2.a: Removed.
        * libWebKitSystemInterfaceIOSSimulator8.3.a: Removed.
        * libWebKitSystemInterfaceIOSSimulator8.4.a: Removed.

2016-01-26  Daniel Bates  <dabates@apple.com>

        Add WebKitSystemInterface for iOS 9.2
        https://bugs.webkit.org/show_bug.cgi?id=153355

        Rubber-stamped by David Kilzer.

        * WebKitSystemInterface.h:
        * WebKitSystemInterfaceIOS.h: Removed.
        * libWebKitSystemInterfaceIOSDevice9.2.a: Added.
        * libWebKitSystemInterfaceIOSSimulator9.2.a: Added.

2016-01-02  Andy Estes  <aestes@apple.com>

        Try to fix the Windows build

        After r194496, the Windows build appeared to use a stale copy of StdLibExtras.h. I deleted the build directory
        on the bots, and am touching this file to force a new build.

        * win/tools/vsprops/common.props:

2016-01-01  Jeff Miller  <jeffm@apple.com>

        Update user-visible copyright strings to include 2016
        https://bugs.webkit.org/show_bug.cgi?id=152531

        Reviewed by Alexey Proskuryakov.

        * win/tools/scripts/COPYRIGHT-END-YEAR:

2015-12-19  Dan Bernstein  <mitz@apple.com>

        [Mac] WebKit contains dead source code for OS X Mavericks and earlier
        https://bugs.webkit.org/show_bug.cgi?id=152462

        Reviewed by Alexey Proskuryakov.

        * libWebKitSystemInterfaceMavericks.a: Removed.

2015-12-16  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        [Fetch API] Add fetch API compile time flag
        https://bugs.webkit.org/show_bug.cgi?id=152254

        Reviewed by Darin Adler.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

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

        [ES6] Implement LLInt/Baseline Support for ES6 Generators and enable this feature
        https://bugs.webkit.org/show_bug.cgi?id=150792

        Reviewed by Saam Barati.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2015-12-01  Commit Queue  <commit-queue@webkit.org>

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

        JSC tests for this change are failing on 32 and 64-bit bots
        (Requested by ryanhaddad on #webkit).

        Reverted changeset:

        "[ES6] Implement LLInt/Baseline Support for ES6 Generators and
        enable this feature"
        https://bugs.webkit.org/show_bug.cgi?id=150792
        http://trac.webkit.org/changeset/192914

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

        [ES6] Implement LLInt/Baseline Support for ES6 Generators and enable this feature
        https://bugs.webkit.org/show_bug.cgi?id=150792

        Reviewed by Saam Barati.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2015-11-05  Nikos Andronikos  <nikos.andronikos-webkit@cisra.canon.com.au>

        Add runtime and compile time flags for enabling Web Animations API and model.
        https://bugs.webkit.org/show_bug.cgi?id=150914

        Reviewed by Benjamin Poulain.

        Add ENABLE_WEB_ANIMATIONS compile time flag, runtime flag webAnimationsEnabled and Expose WK2 preference for runtime flag.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2015-11-01  Yusuke Suzuki  <utatane.tea@gmail.com>

        [ES6] Support Generator Syntax
        https://bugs.webkit.org/show_bug.cgi?id=150769

        Reviewed by Geoffrey Garen.

        Added ENABLE_ES6_GENERATORS flag.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2015-10-26  Dana Burkart  <dburkart@apple.com>

        `make analyze` should build using the debug configuration
        https://bugs.webkit.org/show_bug.cgi?id=150571

        Reviewed by Lucas Forschler.

        * Makefile:

2015-10-20  Yoav Weiss  <yoav@yoav.ws>

        Rename the PICTURE_SIZES flag to CURRENTSRC
        https://bugs.webkit.org/show_bug.cgi?id=150275

        Reviewed by Dean Jackson.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2015-10-08  Daniel Bates  <dabates@apple.com>

        Add LLVM binaries for iOS 9 device
        https://bugs.webkit.org/show_bug.cgi?id=149913

        Rubber-stamped by Filip Pizlo.

        Add LLVM 3.6.2 binaries for ARM64-based iOS devices. We make use of LLVM for the FTL,
        which is enabled for 64-bit iOS devices.

        I built these binaries by performing the following:

        1) Check out WebKit to a directory like /some/path/OpenSource.

        2) Download and expand the archive <http://llvm.org/releases/3.6.2/llvm-3.6.2.src.tar.xz> into /some/path/OpenSource/llvm.

        3) In /some/path/OpenSource, delete the WebKitBuild directory to ensure a clean build.

        4) Run `Tools/Scripts/build-jsc --release --device ARCHS=arm64 ONLY_ACTIVE_ARCH=NO` to build both LLVM and JavaScriptCore.

        5) Run `Tools/Scripts/export-llvm-build -i WebKitLibraries/LLVMIncludesIOSDevice9.tar.bz2 -l WebKitLibraries/LLVMLibrariesIOSDevice9.tar.bz2 -b llvm/wkLLVMBuild -B llvm/wkLLVMBuild/Release+Asserts -s llvm` to produce files LLVM{Includes, Libraries}IOS9.tar.bz2.

        * LLVMIncludesIOS9.tar.bz2: Added.
        * LLVMLibrariesIOS9.tar.bz2: Added.

2015-09-25  Alex Christensen  <achristensen@webkit.org>

        Prepare internal AppleWin build for CMake
        https://bugs.webkit.org/show_bug.cgi?id=149570

        Reviewed by Brent Fulgham.

        * win/tools/scripts/auto-version.pl:
        Use the WEBKIT_LIBRARIES environment variable if it exists.

2015-09-25  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix.

        * win/tools/vsprops/FeatureDefines.props: Let Windows build know about
        the STREAMS_API feature.

2015-09-24  Daniel Bates  <dabates@apple.com>

        Add WebKitSystemInterface for iOS 9.0
        https://bugs.webkit.org/show_bug.cgi?id=149550

        Rubber-stamped by Alexey Proskuryakov.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceIOSDevice9.0.a: Added.
        * libWebKitSystemInterfaceIOSSimulator9.0.a: Added.

2015-09-18  Alex Christensen  <achristensen@webkit.org>

        Remove last required use of WEBKIT_LIBRARIES environment variable on Windows
        https://bugs.webkit.org/show_bug.cgi?id=149355

        Reviewed by Brent Fulgham.

        * win/tools/scripts/auto-version.pl:
        Use the directory of $0 (the currently executed perl script) to find the perl script instead of an environment variable.
        This makes it possible to build WebKit on Windows without environment variables.

2015-09-14  Chris Dumez  <cdumez@apple.com>

        Disable PICTURE_SIZES on AppleWin
        https://bugs.webkit.org/show_bug.cgi?id=149125

        Reviewed by Alexey Proskuryakov.

        * win/tools/vsprops/FeatureDefines.props:

2015-08-31  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix.

        * win/lib32/WebKitSystemInterface.lib: Update with VS2015 build of this
        library to avoid linker errors on build bots.

2015-08-21  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix.

        * win/tools/vsprops/common.props: Ignore a warning that is filling the
        build logs with useless cruft.

2015-08-20  Lucas Forschler  <lforschler@apple.com>

        Check in LLVM 3.6.2 binary drops for OS X Mavericks.
        Check in drops built from the LLVM 3.6.2 open source release. 

        * LLVMIncludesMavericks.tar.bz2:
        * LLVMLibrariesMavericks.tar.bz2:

2015-08-12  Lucas Forschler  <lforschler@apple.com>

        Check in LLVM 3.6.2 binary drops for OS X Yosemite
        Check in drops built from the LLVM 3.6.2 open source release.

2015-08-11  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix for VS2015 targets.

        * win/lib32/WebKitSystemInterface.lib: Update with VS2015 version of library.

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

        Fix quirks with CMake and VS2015
        https://bugs.webkit.org/show_bug.cgi?id=147663

        Reviewed by Brent Fulgham.

        * win/tools/vsprops/common.props:
        Hide some warnings.  Using the same variable names in nested scopes is ok for now.

2015-08-04  Brent Fulgham  <bfulgham@apple.com>

        [Win] Update Apple Windows build for VS2015
        https://bugs.webkit.org/show_bug.cgi?id=147653

        Reviewed by Dean Jackson.

        * win/tools/vsprops/common.props: Fix build flags to use Windows 7
        (WINVER=0x601) as minimum build target for 64-bit builds.

2015-08-03  Filip Pizlo  <fpizlo@apple.com>

        Check in LLVM 3.6.2 binary drops for El Capitan
        https://bugs.webkit.org/show_bug.cgi?id=147582

        Reviewed by Alexey Proskuryakov.
        
        Check in drops built from the LLVM 3.6.2 open source release.
        
        These drops were built by doing:
        
        1) Check out WebKit to a directory like /some/path/OpenSource.

        2) Unpack LLVM 3.6.2 into /some/path/OpenSource/llvm. I got LLVM 3.6.2 from:
        
        http://llvm.org/releases/3.6.2/llvm-3.6.2.src.tar.xz

        3) While in /some/path/OpenSource, run Tools/Scripts/build-jsc --release. Make sure it's a
        totally clean build (i.e. delete WebKitBuild before starting).

        4) Run the following to create binary drops:

        Tools/Scripts/export-llvm-build -i WebKitLibraries/LLVMIncludesElCapitan.tar.bz2 -l WebKitLibraries/LLVMLibrariesElCapitan.tar.bz2 -b llvm/wkLLVMBuild -B llvm/wkLLVMBuild/Release+Asserts -s llvm

        * LLVMIncludesElCapitan.tar.bz2: Added.
        * LLVMLibrariesElCapitan.tar.bz2: Added.

2015-07-28  Yusuke Suzuki  <utatane.tea@gmail.com>

        [ES6] Add ENABLE_ES6_MODULES compile time flag with the default value "false"
        https://bugs.webkit.org/show_bug.cgi?id=147350

        Reviewed by Sam Weinig.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2015-07-20  Gordon Sheridan  <gordon_sheridan@apple.com>

        WKSI support for blocking a plug-in for non-security reasons.
        https://bugs.webkit.org/show_bug.cgi?id=145009

        Reviewed by Anders Carlsson.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceYosemite.a:

2015-07-02  Daniel Bates  <dabates@apple.com>

        [iOS] Add WebKitSystemInterface for iOS 8.4
        https://bugs.webkit.org/show_bug.cgi?id=146548

        Rubber-stamped by Zalan Bujtas.

        * WebKitSystemInterfaceIOS.h:
        * libWebKitSystemInterfaceIOSDevice8.4.a: Added.
        * libWebKitSystemInterfaceIOSSimulator8.4.a: Added.

2015-06-30  Andy VanWagoner  <thetalecrafter@gmail.com>

        Implement ECMAScript Internationalization API
        https://bugs.webkit.org/show_bug.cgi?id=90906

        Reviewed by Benjamin Poulain.

        * win/tools/vsprops/FeatureDefines.props: add ENABLE_INTL flag
        * win/tools/vsprops/FeatureDefinesCairo.props: add ENABLE_INTL flag

2015-06-29  Hyungwook Lee  <hyungwook.lee@navercorp.com>

        [Win] Activate SSE support for 32-bit builds.
        https://bugs.webkit.org/show_bug.cgi?id=144923

        Reviewed by Brent Fulgham.

        * win/tools/vsprops/common.props:

2015-06-26  Per Arne Vollan  <peavo@outlook.com>

        [WinCairo] Enable WEB_TIMING.
        https://bugs.webkit.org/show_bug.cgi?id=146357

        Reviewed by Brent Fulgham.

        * win/tools/vsprops/FeatureDefinesCairo.props:

2015-06-26  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed buildfix after r185971, disable WEB_TIMING.

        * win/tools/vsprops/FeatureDefinesCairo.props:

2015-06-25  Brent Fulgham  <bfulgham@apple.com>

        [WIN] Enable WEB_TIMING API
        https://bugs.webkit.org/show_bug.cgi?id=146330
        <rdar://problem/21530765>

        Reviewed by Dean Jackson.

        Enable WEB_TIMING features on Windows by activating the feature flag,
        and correcting some build errors.

        * win/tools/vsprops/FeatureDefines.props: Enable feature flag.
        * win/tools/vsprops/FeatureDefinesCairo.props: Ditto.

2015-05-27  Dean Jackson  <dino@apple.com>

        img.currentSrc problem in strict mode with old picturefill
        https://bugs.webkit.org/show_bug.cgi?id=144095
        <rdar://problem/21087013>

        Reviewed by Simon Fraser.

        Add a PICTURE_SIZES flag.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2015-05-09  Yoav Weiss  <yoav@yoav.ws>

        Remove the PICTURE_SIZES build flag
        https://bugs.webkit.org/show_bug.cgi?id=144679

        Reviewed by Benjamin Poulain.

        Removed the PICTURE_SIZES build time flag.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2015-05-05  daegyu lee  <daegyu.lee@navercorp.com>

        Remove the remaining vestiges of SVG feature define
        https://bugs.webkit.org/show_bug.cgi?id=144655

        Reviewed by Alexey Proskuryakov.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2015-04-29  Per Arne Vollan  <peavo@outlook.com>

        [WinCairo] Turn on WebGL.
        https://bugs.webkit.org/show_bug.cgi?id=144389

        Reviewed by Brent Fulgham.

        * win/tools/vsprops/FeatureDefinesCairo.props:

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.

        * win/tools/vsprops/FeatureDefines.props: Turn off the WEB_GL
        feature for the Apple Windows port.

2015-04-28  Per Arne Vollan  <peavo@outlook.com>

        [Win] Enable ES6 template literals
        https://bugs.webkit.org/show_bug.cgi?id=144316

        Reviewed by Csaba Osztrogonác.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2015-04-25  Martin Robinson  <mrobinson@igalia.com>

        Rename ENABLE_3D_RENDERING to ENABLE_3D_TRANSFORMS
        https://bugs.webkit.org/show_bug.cgi?id=144182

        Reviewed by Simon Fraser.

        * win/tools/vsprops/FeatureDefines.props: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
        * win/tools/vsprops/FeatureDefinesCairo.props: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.

2015-04-17  Daniel Bates  <dabates@apple.com>

        Not able to build WebKit against iOS Simulator 8.3 SDK
        https://bugs.webkit.org/show_bug.cgi?id=143883

        Reviewed by David Kilzer.

        Add WebKitSystemInterface for iOS 8.3.

        * libWebKitSystemInterfaceIOSDevice8.3.a: Added.
        * libWebKitSystemInterfaceIOSSimulator8.3.a: Added.

2015-04-06  Myles C. Maxfield  <mmaxfield@apple.com>

        [Win] [SVG -> OTF Converter] Turn off on Windows until I can get the tests under control

        Unreviewed.

        * win/tools/vsprops/FeatureDefines.props:

2015-04-06  Myles C. Maxfield  <mmaxfield@apple.com>

        [Win] [SVG -> OTF Converter] Support the SVG -> OTF Font Converter
        https://bugs.webkit.org/show_bug.cgi?id=143402

        Reviewed by Darin Adler.

        * win/tools/vsprops/FeatureDefines.props: Enable the define.

2015-03-09  Daniel Bates  <dabates@apple.com>

        [iOS] Add WebKitSystemInterface for iOS 8.2
        https://bugs.webkit.org/show_bug.cgi?id=142505

        Reviewed by Andy Estes.

        * libWebKitSystemInterfaceIOSDevice8.2.a: Added.
        * libWebKitSystemInterfaceIOSSimulator8.2.a: Added.

2015-03-06  Csaba Osztrogonác  <ossy@webkit.org>

        Remove Mountain Lion libraries since ML isn't supported
        https://bugs.webkit.org/show_bug.cgi?id=142332

        Reviewed by Darin Adler.

        * LLVMIncludesMountainLion.tar.bz2: Removed.
        * LLVMLibrariesMountainLion.tar.bz2: Removed.

2015-03-03  Brent Fulgham  <bfulgham@apple.com>

        [Win] [Attachment] New Tests fail on Windows
        https://bugs.webkit.org/show_bug.cgi?id=142017

        Unreviewed test fix. Just activate the feature.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2015-02-26  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix after r180676.

        I forgot to checkin one of the more important changes!

        * win/tools/vsprops/common.props:

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.

        * win/tools/vsprops/common.props:

2015-02-25  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] WinLauncher is not starting on Vista.
        https://bugs.webkit.org/show_bug.cgi?id=141905

        Reviewed by Alex Christensen.

        We have to soft link with Media Foundation functions to be able
        to start on Vista and WinXP.

        * win/tools/vsprops/WinCairo.props: Remove Media Foundation input libraries.

2015-02-03  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix. Turn on feature flags for items
        we currently ship/test on Mac.

        * win/tools/vsprops/FeatureDefines.props: Activate ENABLE_DOM4_EVENTS_CONSTRUCTOR
        and CURSOR_VISIBILITY.

2015-01-28  Sam Weinig  <sam@webkit.org>

        Remove libWebKitSystemInterfaceMountainLion.a

        Reviewed by Mark Rowe.

        * libWebKitSystemInterfaceMountainLion.a: Removed.

2015-01-28  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Enable CSS_SELECTORS_LEVEL4.
        https://bugs.webkit.org/show_bug.cgi?id=141003

        Reviewed by Brent Fulgham.

        * win/tools/vsprops/FeatureDefinesCairo.props:

2015-01-22  David Kilzer  <ddkilzer@apple.com>

        [iOS] Fix build for external iphoneos SDK

        Reviewed by Daniel Bates.

        * WebKitSystemInterface.h: Remove import of the
        <IOSurface/IOSurface.h> header, and add a typedef for
        IOSurfaceRef in its place.

2015-01-22  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed gardening.

        Activate ENABLE(MOUSE_CURSOR_SCALE). This works on Windows and causes more tests to pass.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2015-01-20  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed gardening.

        * win/tools/vsprops/FeatureDefines.props: Add feature definition for SVG converter,
        but do NOT turn it on.
        * win/tools/vsprops/FeatureDefinesCairo.props: Ditto.

2015-01-19  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo][Video] Windows Media Foundation implementation is not completed.
        https://bugs.webkit.org/show_bug.cgi?id=140337

        Reviewed by Alex Christensen.

        Link with Media Foundation libraries.

        * win/tools/vsprops/WinCairo.props:

2015-01-01  Jeff Miller  <jeffm@apple.com>

        Update user-visible copyright strings to include 2015
        https://bugs.webkit.org/show_bug.cgi?id=139880

        Reviewed by Darin Adler.

        * win/tools/scripts/COPYRIGHT-END-YEAR:

2014-12-19  Daniel Bates  <dabates@apple.com>

        [iOS] Add WebKitSystemInterface for iOS 8.1
        https://bugs.webkit.org/show_bug.cgi?id=139831

        Reviewed by Alexey Proskuryakov.

        Towards building the iOS WebKit port using the public SDK, add the
        WebKitSystemInterface for iOS version 8.1.

        * WebKitSystemInterfaceIOS.h: Added.
        * libWebKitSystemInterfaceIOSDevice8.1.a: Added.
        * libWebKitSystemInterfaceIOSSimulator8.1.a: Added.

2014-12-17  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix (for full build)

        * win/tools/vsprops/FeatureDefines.props: Add missing export so the
        derived sources are generated properly.
        * win/tools/vsprops/FeatureDefinesCairo.props: Ditto.

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

        Implement action menus for data detected items
        https://bugs.webkit.org/show_bug.cgi?id=138178
        <rdar://problem/18709436>

        Reviewed by Anders Carlsson.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceMountainLion.a:
        * libWebKitSystemInterfaceYosemite.a:
        Update WebKitSystemInterface.

2014-10-14  Brent Fulgham  <bfulgham@apple.com>

        [Win] Enable Encrypted Media Support
        https://bugs.webkit.org/show_bug.cgi?id=137710
        <rdar://problem/18652699>

        Reviewed by Jer Noble.

        * win/tools/vsprops/FeatureDefines.props: Activate the
        ENCRYPTED_MEDIA_V2 flag on Windows.

2014-10-01  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/137308> WebKit should build on OS X Yosemite for external users

        Add versions of WebKitSystemInterface and LLVM for Yosemite. The LLVM build is from
        LLVM SVN r206312, matching the Mavericks and Mountain Lion builds.

        Reviewed by Dan Bernstein.

        * LLVMIncludesYosemite.tar.bz2: Added.
        * LLVMLibrariesYosemite.tar.bz2: Added.
        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceMountainLion.a:
        * libWebKitSystemInterfaceYosemite.a: Added.

2014-09-23  Roger Fong  <roger_fong@apple.com>

        [Windows] Enable CSS Supports Rule on Windows.

        * win/tools/vsprops/FeatureDefines.props:

2014-09-19  Brent Fulgham  <bfulgham@apple.com>

        [Win] Turn off SSE Instructions for 32-bit Builds
        https://bugs.webkit.org/show_bug.cgi?id=136959
        <rdar://problem/18375370>

        Reviewed by Dean Jackson.

        * win/tools/vsprops/common.props: Conditionally exclude the enhanced (SSE) instruction
        set when building for 32-bit Windows. Otherwise, continue using SSE.

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.

        * win/tools/vsprops/GStreamerCommon.props: Add user macro ENABLE_GSTREAMER_WINCAIRO.

2014-09-08  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>

        Remove FILTERS flag
        https://bugs.webkit.org/show_bug.cgi?id=136571

        Reviewed by Darin Adler.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2014-09-04  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>

        Remove CSS_FILTERS flag
        https://bugs.webkit.org/show_bug.cgi?id=136529

        Reviewed by Dirk Schulze.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2014-08-27  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Link error.
        https://bugs.webkit.org/show_bug.cgi?id=136286

        Reviewed by Darin Adler.

        Link with the dynamic runtime libraries, since the WinCairo libraries link with these.

        * win/tools/vsprops/common.props:

2014-08-26  Brent Fulgham  <bfulgham@apple.com>

        [Win] Version stamp should include package-level version
        https://bugs.webkit.org/show_bug.cgi?id=136266
        <rdar://problem/18134138>

        Reviewed by David Kilzer.

        * win/tools/scripts/auto-version.pl: Retain the full major build
        version in addition to the three-digit value we use internally.
        * win/tools/scripts/version-stamp.pl: Find and use the full 3+ digit
        major build version when stamping the final output file.


2014-08-25  Brent Fulgham  <bfulgham@apple.com>

        [Win] Pass OFFICIAL_BUILD flag to WebInspectorUI build process
        https://bugs.webkit.org/show_bug.cgi?id=136229

        Reviewed by Dean Jackson.

        * win/tools/vsprops/common.props: Pass OFFICIAL_BUILD argument
        from VS to child Make processes.

2014-08-17  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix.

        Upload static VS2013 version of WebKitSystemInterface.

        * win/lib32/WebKitSystemInterface.lib:

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

        [Win] Link to static VS2013 runtime library.
        https://bugs.webkit.org/show_bug.cgi?id=136007
        <rdar://problem/18037766>

        Reviewed by Dean Jackson.

        * win/tools/vsprops/common.props: Update link command.
        * win/tools/vsprops/debugsuffix.props: Ditto.

2014-08-14  Brent Fulgham  <bfulgham@apple.com>

        [Win] Extend auto-version and version-stamp for RC_ProjectBuildVersion
        https://bugs.webkit.org/show_bug.cgi?id=135948
        <rdar://problem/18022221>

        Reviewed by David Kilzer.

        * win/tools/scripts/auto-version.pl:
        (splitVersion): Use RC_ProjectBuildVersion (or RC_PROJECTBUILDVERSION) if set
        in the environment as the 'Build Version', unless the multi-tuple version
        supplied by RC_ProjectSourceVersion already has a fourth component.
        * win/tools/scripts/version-stamp.pl: Check for RC_ProjectBuildVersion and
        use it in preference to RC_PROJECTBUILDVERSION.

2014-08-08  Joseph Pecoraro  <pecoraro@apple.com>

        make clean does not work in OpenSource, fails in WebKitLibraries
        https://bugs.webkit.org/show_bug.cgi?id=135734

        Reviewed by David Kilzer.

        * Makefile:
        Add a "clean" target that runs copy-webkitlibraries-to-product-dir
        with the new --clean switch.

2014-08-04  Benjamin Poulain  <benjamin@webkit.org>

        Add a flag for the CSS Selectors level 4 implementation
        https://bugs.webkit.org/show_bug.cgi?id=135535

        Reviewed by Andreas Kling.

        * win/tools/vsprops/FeatureDefines.props:

2014-07-31  Brent Fulgham  <bfulgham@apple.com>

        [Win] Use RC_PROJECTBUILDVERSION as build portion of version
        https://bugs.webkit.org/show_bug.cgi?id=135478

        Reviewed by David Kilzer.

        * win/tools/scripts/version-stamp.pl: Check environment for
        RC_PROJECTBUILDVERSION, and use it for the build portion of
        the file version resource. Otherwise, use the __VERSION_BUILD__
        value we calculated from the version string.

2014-07-31  Brent Fulgham  <bfulgham@apple.com>

        [Win] Fix build failure when using 5-tuple build versions.
        https://bugs.webkit.org/show_bug.cgi?id=135464
        <rdar://problem/17872507>

        Reviewed by David Kilzer.

        * win/tools/scripts/version-stamp.pl: Modify the environment for
        the VersionStamper sub-process to work around bug in that tool.

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.

        Revise the auto-version.pl script so that it generates a set of packed
        version tuples that allow us to map 5-tuple versions into something
        that will work with Windows' 3-tuple version structure.

        * win/tools/scripts/auto-version.pl:
        (packTwoValues): Added,
        (splitVersion): Revised to return packed combination of minor-tiny and
        micro-nano to be used as "MINOR" and "TINY" portion of version.
        (splitBuildMajorVersion): Deleted.
        * win/tools/scripts/version-stamp.pl: Added.

2014-07-23  Bem Jones-Bey  <bjonesbe@adobe.com>

        Remove CSS_EXCLUSIONS compile flag and leftover code
        https://bugs.webkit.org/show_bug.cgi?id=135175

        Reviewed by Zoltan Horvath.

        At this point, the CSS_EXCLUSIONS flag guards nothing but some useless
        stubs. This removes the flag and the useless code.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2014-07-22  Brent Fulgham  <bfulgham@apple.com>

        Correct handling of __VERSION_TEXT__ for 4+-tuple versions
        https://bugs.webkit.org/show_bug.cgi?id=135161
        <rdar://problem/17763546>

        Reviewed by David Kilzer.

        Revise the auto-version.pl script to properly handle version
        strings with 4 (or more) version tuples. Previously these were
        being truncated from the version.

        * win/tools/scripts/auto-version.pl:
        (splitVersion): Return truncated version of
        overall version string.

2014-07-21  Brent Fulgham  <bfulgham@apple.com>

        [Win] Extend auto-version.pl to handle 5-tuple versions
        https://bugs.webkit.org/show_bug.cgi?id=135124
        <rdar://problem/17750334>

        Reviewed by David Kilzer.

        Extend tuple parsing to handle up to five tuples, and as
        few as a single tuple. On Windows, the two additional
        tuples are unused.

        Also corrected regular expression capture logic to use local
        blocks, preventing later capture expressions from reusing
        previous capture results when the current expression failed
        to find a match (GRRR, Perl!).

        Clean up code by putting logic into a couple of subroutines.

        * win/tools/scripts/auto-version.pl:

2014-07-21  Brent Fulgham  <bfulgham@apple.com>

        [Win] Correct auto-version.pl script for two-digit version numbers
        https://bugs.webkit.org/show_bug.cgi?id=135119
        <rdar://problem/17743959>

        Reviewed by David Kilzer.

        The $MAJOR_VERSION must be the first digit of $BUILD_MAJOR_VERSION,
        and $MINOR_VERSION must be the remaining digits.

        Also correct regexp (line 90) that was allowing version numbers
        larger than three digits to be processed.

        * win/tools/scripts/auto-version.pl: Correct regular expression.

2014-07-18  Dana Burkart  <dburkart@apple.com>

        Add a new 'analyze' target to the makefile. This will make use of a new
        'PATH_TO_SCAN_BUILD' which, if set will wrap xcodebuild in the clang
        static analyzer.
        https://bugs.webkit.org/show_bug.cgi?id=135057
        <rdar://problem/10193187>

        Reviewed by David Kilzer.

        * Makefile:
        * Makefile.shared:
        * Source/Makefile:

2014-07-10  Alex Christensen  <achristensen@webkit.org>

        Enable same features on all Windows ports.
        https://bugs.webkit.org/show_bug.cgi?id=134715

        Reviewed by Brent Fulgham.

        * win/tools/vsprops/FeatureDefinesCairo.props:
        Made identical to FeatureDefines.props.

2014-07-09  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix.

        Build bots don't have a three-part default version string,
        breaking pattern matching. Handle this case.

        * win/tools/scripts/auto-version.pl:

2014-07-09  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed gardening.

        * win/tools/scripts/auto-version.pl: Protect against
        malformed paths (trailing backslashes).
        * win/tools/scripts/feature-defines.pl: Make sure result
        has an EOL character.

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.

        * win/tools/scripts/feature-defines.pl: Copied from WebKitLibraries/win/tools/scripts/feature-defines.sh.
        * win/tools/scripts/feature-defines.sh: Removed.

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.

        Translate the auto-version.sh bash script into an equivalent
        Perl script.

        * win/tools/scripts/auto-version.pl: Added.
        * win/tools/scripts/auto-version.sh: Removed.

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.

        * win/tools/vsprops/FeatureDefines.props: Added compile flag.

2014-07-01  Pratik Solanki  <psolanki@apple.com>

        Encode/decode CFURLRequestRefs when USE(CFNETWORK) is enabled
        https://bugs.webkit.org/show_bug.cgi?id=134454
        <rdar://problem/17510980>

        Reviewed by Andreas Kling.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceMountainLion.a:

2014-06-25  Laszlo Gombos  <l.gombos@samsung.com>

        Remove build guard for progress element
        https://bugs.webkit.org/show_bug.cgi?id=134292

        Reviewed by Benjamin Poulain.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2014-06-21  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>

        Removing PAGE_VISIBILITY_API compile guard.
        https://bugs.webkit.org/show_bug.cgi?id=133844

        Reviewed by Gavin Barraclough.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2014-06-11  Jer Noble  <jer.noble@apple.com>

        Update WKSI for <rdar://problem/17009091>.

        Rubber stamped by Eric Carlson.

        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceMountainLion.a:

2014-06-02  David Kilzer  <ddkilzer@apple.com>

        Error running copy-webkitlibraries-to-product-directory
        <http://webkit.org/b/133449>
        <rdar://problem/17047638>

        Reviewed by Filip Pizlo.

        * Makefile: Ignore the mysterious future.  Use "@true" to
        suppress the annoying "Nothing to be done for `libs'." message.

2014-05-27  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>

        Remove BLOB guards
        https://bugs.webkit.org/show_bug.cgi?id=132863

        Reviewed by Csaba Osztrogonác.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2014-05-20  Dean Jackson  <dino@apple.com>

        [Mac] Allow popup menus to override default appearance
        https://bugs.webkit.org/show_bug.cgi?id=133129

        Reviewed by Tim Horton.

        Add a new parameter to WKPopupMenu.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceMountainLion.a:

2014-05-14  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>

        Remove CSS_STICKY_POSITION guards
        https://bugs.webkit.org/show_bug.cgi?id=132676

        Reviewed by Simon Fraser.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2014-05-06  David Kilzer  <ddkilzer@apple.com>

        Add Makefile targets for copying static libraries (LLVM and WKSI)
        <http://webkit.org/b/132619>

        Reviewed by Mark Rowe.

        * Makefile: Added.
        (libs): Install both LLVM and WKSI static libraries.
        (all): Add dependency on 'libs' target.
        (debug d): Set configuration, the call 'libs' target.
        (release r): Ditto.

2014-05-05  Dean Jackson  <dino@apple.com>

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

        Update WebKitSystemInterface to allow animated focus rings.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceMountainLion.a:

2014-05-05  Brent Fulgham  <bfulgham@apple.com>

        [WIN] Enhance auto-version.sh to handle all-caps or mixed-case build environment variable
        https://bugs.webkit.org/show_bug.cgi?id=132580
        <rdar://problem/16811179>

        Reviewed by Dean Jackson.

        * win/tools/scripts/auto-version.sh: Incorporate Mark's revised syntax.

2014-05-05  Brent Fulgham  <bfulgham@apple.com>

        [WIN] Enhance auto-version.sh to handle all-caps or mixed-case build environment variable
        https://bugs.webkit.org/show_bug.cgi?id=132580
        <rdar://problem/16811179>

        Reviewed by Dean Jackson.

        * win/tools/scripts/auto-version.sh: Fall back to all-caps version
        of environment variable if mixed-case version is not present.

2014-05-01  Brent Fulgham  <bfulgham@apple.com>

        Correct case of environment variables in auto-version.sh scripts
        https://bugs.webkit.org/show_bug.cgi?id=132455

        Reviewed by Dean Jackson.

        Although we have historically used RC_PROJECTSOURCEVERSION in our scripts,
        the actual environment variable is RC_ProjectSourceVersion. Old versions of
        Cygwin converted this to all-caps by default, but this is no longer the case.
        We need to use the proper case to avoid build failures.

        * win/tools/scripts/auto-version.sh: Although we have historically coded
        this as 'RC_PROJECTSOURCEVERSION', it is actually 'RC_ProjectSourceVersion'.

2014-04-25  Dean Jackson  <dino@apple.com>

        Update WKSI for https://webkit.org/b/132195
        <rdar://problem/16175750>

        Sorry, I forgot to update the header. This should fix
        the Mac builds.

        * WebKitSystemInterface.h:

2014-04-25  Dean Jackson  <dino@apple.com>

        Update WKSI for https://webkit.org/b/132195
        <rdar://problem/16175750>

        Reviewed by Jessie Berlin.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceMountainLion.a:

2014-04-22  Alex Christensen  <achristensen@webkit.org>

        Removed old stdbool and inttypes headers.
        https://bugs.webkit.org/show_bug.cgi?id=131966

        Reviewed by Brent Fulgham.

        * win/tools/vsprops/WinCairo.props:
        Removed references to os-win32 directory.

2014-04-15  Filip Pizlo  <fpizlo@apple.com>

        Update LLVM binary drops for Mountain Lion to LLVM r206312.

        Rubber stamped by Geoffrey Garen.

        * LLVMIncludesMountainLion.tar.bz2:
        * LLVMLibrariesMountainLion.tar.bz2:

2014-04-15  Filip Pizlo  <fpizlo@apple.com>

        Add LLVM binary drops for Mavericks using LLVM r206312.

        Rubber stamped by Geoffrey Garen.

        * LLVMIncludesMavericks.tar.bz2: Added.
        * LLVMLibrariesMavericks.tar.bz2: Added.

2014-04-03  Brent Fulgham  <bfulgham@apple.com>

        [Win] Enable the CSS_GRID_LAYOUT feature.
        https://bugs.webkit.org/show_bug.cgi?id=131147

        Reviewed by Simon Fraser.

        Just like the CANVAS_PATH feature, this seems to have been
        overlooked when it was turned on for other ports.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2014-04-02  Dean Jackson  <dino@apple.com>

        Update WKSI.
        <rdar://problem/16321286>

        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceMountainLion.a:

2014-04-02  Brent Fulgham  <bfulgham@apple.com>

        [Win] Enable the CANVAS_PATH feature.
        https://bugs.webkit.org/show_bug.cgi?id=131114

        Reviewed by Dean Jackson.

        This code build and runs on Windows just fine. It was overlooked when the feature
        was activated on other platforms.

        * win/tools/vsprops/FeatureDefines.props: Turn on the feature.
        * win/tools/vsprops/FeatureDefinesCairo.props: Ditto.

2014-03-31  Alex Christensen  <achristensen@webkit.org>

        [WinCairo] Unreviewed build fix after r166496.

        * win/tools/vsprops/GStreamerCommon.props:
        Added gio-2.0.lib to list of GStreamer includes.

2014-03-24  Brent Fulgham  <bfulgham@apple.com>

        [Win] Enable WebVTT Regions on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=130680

        Reviewed by Eric Carlson.

        * win/tools/vsprops/FeatureDefines.props: Turn on WEBVTT_REGIONS
        * win/tools/vsprops/FeatureDefinesCairo.props: Ditto.

2014-03-19  Jer Noble  <jer.noble@apple.com>

        [Mac][EME] Query whether decoder support exists before creating a new MediaKeys object.
        https://bugs.webkit.org/show_bug.cgi?id=130459

        Reviewed by Eric Carlson.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceMountainLion.a:

2014-03-18  Alex Christensen  <achristensen@webkit.org>

        [WinCairo] Unreviewed build fix after r165763.

        * win/tools/vsprops/GStreamerCommon.props:
        Link to gsttag-1.0.lib in addition to other GStreamer libraries.

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.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/tools/scripts/auto-version.sh:

2014-03-14  Dean Jackson  <dino@apple.com>

        Remove libWebKitSystemInterfaceLion.a
        https://bugs.webkit.org/show_bug.cgi?id=130254

        Reviewed by Geoffrey Garen and Andreas Kling.

        We don't support Lion any more.

        * libWebKitSystemInterfaceLion.a: Removed.

2014-03-13  Dean Jackson  <dino@apple.com>

        <rdar://problem/16317198>

        Update WKSI to fix a small leak on iOS.

        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceMountainLion.a:

2014-03-12  Dean Jackson  <dino@apple.com>

        [WebGL] WebKit1 + WebKit2 iOS clients should check load policy
        https://bugs.webkit.org/show_bug.cgi?id=130162

        Add iOS implementations of WebGL load policy queries.

        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceMountainLion.a:

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.

        * win/tools/vsprops/common.props: Pass WEBKIT_LIBRARIES value to subprocesses.
        * win/tools/vsprops/debugsuffix.props: Make sure OFFICIAL_BUILD is set.
        * win/tools/vsprops/production.props: Ditto.

2014-03-06  Dean Jackson  <dino@apple.com>

        Update WebKitSystemInterface.
        <rdar://problem/16256214>

        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceMountainLion.a:

2014-03-05  Dean Jackson  <dino@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=129722
        Update WKSI, again, to fix the build.

        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceMountainLion.a:

2014-03-05  Dean Jackson  <dino@apple.com>

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

        And remember to copy the header file!

        * WebKitSystemInterface.h:

2014-03-05  Dean Jackson  <dino@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=129722
        Update WKSI.

        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceMountainLion.a:

2014-03-05  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Show external device name/type in placeholder
        https://bugs.webkit.org/show_bug.cgi?id=129723

        Reviewed by Jer Noble.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceMountainLion.a:

2014-02-21  Jeffrey Pfau  <jpfau@apple.com>

        [Mac] Cache callbacks for cache partitioning may be passed null
        https://bugs.webkit.org/show_bug.cgi?id=129175

        Reviewed by Brady Eidson.

        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceMountainLion.a:

2014-02-11  Roger Fong  <roger_fong@apple.com>

        [Windows] Set ENABLE_CSS_SHAPE_INSIDE feature flag on Windows.

        * win/tools/vsprops/FeatureDefines.props:

2014-02-04  Andreas Kling  <akling@apple.com>

        Remove <iframe seamless> support.
        <https://webkit.org/b/128213>

        Rubber-stamped by Antti Koivisto.

        * win/tools/vsprops/FeatureDefines.props:

2014-01-29  Csaba Osztrogonác  <ossy@webkit.org>

        Remove ENABLE(JAVASCRIPT_DEBUGGER) leftovers
        https://bugs.webkit.org/show_bug.cgi?id=127845

        Reviewed by Joseph Pecoraro.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2014-01-23  Roger Fong  <roger_fong@apple.com>

        [Windows] Unreviewed. Disable unnecessary warning C4309, "truncation of constant value".

        * win/tools/vsprops/common.props:

2014-01-16  Alexey Proskuryakov  <ap@apple.com>

        [Mac] [iOS] Add support for CFHTTPCookieStorageAcceptPolicyExclusivelyFromMainDocumentDomain
        https://bugs.webkit.org/show_bug.cgi?id=127139

        Reviewed by Brady Eidson.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceMountainLion.a:
        Update WebKitSystemInterface.

2014-01-16  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: Enable subpixel layout for Apple Windows.
        https://bugs.webkit.org/show_bug.cgi?id=127074

        Reviewed by Antti Koivisto.

        This should make the Apple Windows bots happier. It probably still needs rebaselining.

        * win/tools/vsprops/FeatureDefines.props:

2014-01-11  Alexey Proskuryakov  <ap@apple.com>

        [Mac] [Windows] Stop scheduling network requests in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=126789
        <rdar://problem/15114727>

        Update Windows WKSI.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib32/WebKitSystemInterface.lib:

2014-01-11  Alexey Proskuryakov  <ap@apple.com>

        [Mac] [Windows] Stop scheduling network requests in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=126789
        <rdar://problem/15114727>

        Update WKSI.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMavericks.a:
        * libWebKitSystemInterfaceMountainLion.a:

2014-01-10  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Crash when rendering (in pixman dll)
        https://bugs.webkit.org/show_bug.cgi?id=126750

        Reviewed by Brent Fulgham.

        Since we link with cairo.lib, and the gstreamer installation also comes with cairo.lib,
        we link with the wrong cairo.lib, and loads gstreamers cairo dll, instead of our own.
        We should user our own cairo dll for rendering.

        * win/tools/vsprops/GStreamer32.props: Put gstreamer lib path last, so we link with the correct cairo.lib.
        * win/tools/vsprops/GStreamer64.props: Ditto.

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

        [WinCairo] Enable video using GStreamer.
        https://bugs.webkit.org/show_bug.cgi?id=126015

        Reviewed by Darin Adler.

        * win/tools/vsprops/FeatureDefinesCairo.props:
        Define ENABLE_MEDIA_CONTROLS_SCRIPT, ENABLE_VIDEO_TRACK, and ENABLE_VIDEO.

2013-12-30  Roger Fong  <roger_fong@apple.com>

        [Windows] Disable some annoying build warnings.

        * win/tools/vsprops/common.props:

2013-12-23  Lucas Forschler  <lforschler@apple.com>

        <rdar://problem/15682948> Update copyright strings

        Reviewed by Dan Bernstein.

        * win/tools/scripts/COPYRIGHT-END-YEAR:

2013-12-19  Alex Christensen  <achristensen@webkit.org>

        Final preparations for GStreamer on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=125958

        Reviewed by Benjamin Poulain.

        * win/tools/vsprops/FeatureDefinesCairo.props:
        Removed duplicate ENABLE_VIDEO_TRACK definition.

2013-12-18  Alex Christensen  <achristensen@webkit.org>

        [WinCairo] Unreviewed build fix after r160798.

        * win/tools/vsprops/FeatureDefinesCairo.props:
        Removed ENABLE_MEDIA_CONTROLS_SCRIPT definition for now.

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.

        * win/tools/vsprops/FeatureDefinesCairo.props:
        Added ENABLE_MEDIA_CONTROLS_SCRIPT and ENABLE_VIDEO_TRACK for DerivedSources.make.
        * win/tools/vsprops/GStreamer32.props: Added.
        * win/tools/vsprops/GStreamer64.props: Added.
        * win/tools/vsprops/GStreamerCommon.props: Added.

2013-12-13  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix for VS2013

        * win/lib32/WebKitSystemInterface.lib: Updated to use VS2013 _MSC_VER symbols
        for linking.

2013-12-09  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, update LLVM binary drops to r196830.

        * LLVMIncludesMountainLion.tar.bz2:
        * LLVMLibrariesMountainLion.tar.bz2:

2013-12-05  Bear Travis  <betravis@adobe.com>

        [CSS Shapes] Enable CSS Shapes on Windows
        https://bugs.webkit.org/show_bug.cgi?id=89957

        Reviewed by Brent Fulgham.

        Turn on CSS_SHAPES on Windows now that bug 121883 has been fixed.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2013-11-26  Ryosuke Niwa  <rniwa@webkit.org>

        Enable HTML template element on Windows ports
        https://bugs.webkit.org/show_bug.cgi?id=124758

        Reviewed by Andreas Kling.

        Enable TEMPLATE_ELEMENT. Also removed UNDO_MANAGER since that feature has been removed
        from the tree in r133326.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

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.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2013-11-17  Filip Pizlo  <fpizlo@apple.com>

        Update binary drops to include atrick's "Ran out of registers" fix in r194942.

        * LLVMIncludesMountainLion.tar.bz2:
        * LLVMLibrariesMountainLion.tar.bz2:

2013-11-08  Filip Pizlo  <fpizlo@apple.com>

        Update binary drops to a version that includes new stackmap fixes and exposes the new calling conventions.

        * LLVMIncludesMountainLion.tar.bz2:
        * LLVMLibrariesMountainLion.tar.bz2:

2013-11-03  Filip Pizlo  <fpizlo@apple.com>

        Update binary drops to a version that includes my pretty stack trace changes.

        * LLVMIncludesMountainLion.tar.bz2:
        * LLVMLibrariesMountainLion.tar.bz2:

2013-11-02  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, update binary drops.
        
        These include my LLVMDisablePrettyStackTrace() fix and are built with --enable-crash-overrides=no

        * LLVMIncludesMountainLion.tar.bz2:
        * LLVMLibrariesMountainLion.tar.bz2:

2013-10-21  Mark Rowe  <mrowe@apple.com>

        Add a version of WebKitSystemInterface for Mavericks.

        Reviewed by Ryosuke Niwa.

        * libWebKitSystemInterfaceMavericks.a: Added.

2013-10-17  Anthony Johnson  <anthony.johnson@flexsim.com>

        Crash fix for Windows XP.
        https://bugs.webkit.org/show_bug.cgi?id=122790

        Reviewed by Geoffrey Garen.

        * win/tools/vsprops/common.props:
        Replaced stack and heap sizes of zero with blank stack and heap sizes.

2013-10-16  Filip Pizlo  <fpizlo@apple.com>

        libllvmForJSC shouldn't call exit(1) on report_fatal_error()
        https://bugs.webkit.org/show_bug.cgi?id=122905
        <rdar://problem/15237856>

        Reviewed by Michael Saboff.

        * LLVMIncludesMountainLion.tar.bz2:
        * LLVMLibrariesMountainLion.tar.bz2:

2013-10-10  Filip Pizlo  <fpizlo@apple.com>

        Update the binary drops to the latest version of LLVM, built without -fvisibility=hidden
        now that we have soft linking. Also include DataTypes.h in the drop.

        Rubber stamped by Michael Saboff.

        * LLVMIncludesMountainLion.tar.bz2:
        * LLVMLibrariesMountainLion.tar.bz2:

2013-10-01  Filip Pizlo  <fpizlo@apple.com>

        FTL should use the new version of LLVM MCJIT memory manager APIs that take a SectionName
        https://bugs.webkit.org/show_bug.cgi?id=122193

        Reviewed by Geoffrey Garen.

        * LLVMIncludesMountainLion.tar.bz2:
        * LLVMLibrariesMountainLion.tar.bz2:

2013-10-01  Brent Fulgham  <bfulgham@apple.com>

        [Win] Implement the media controls in JavaScript.
        https://bugs.webkit.org/show_bug.cgi?id=122166

        Reviewed by Jer Noble.

        * win/tools/vsprops/FeatureDefines.props: Activate the
        ENABLE_MEDIA_CONTROLS_SCRIPT flag.

2013-09-24  Bear Travis  <betravis@adobe.com>

        Disable CSS_SHAPES on Windows
        https://bugs.webkit.org/show_bug.cgi?id=121879

        Reviewed by Brent Fulgham.

        Enabling CSS_SHAPES on Windows is currently causing crashes in DRT.
        Turn the feature off until it can be appropriately fixed.

        * win/tools/vsprops/FeatureDefines.props: Disable on Win port
        * win/tools/vsprops/FeatureDefinesCairo.props: Disable on WinCairo port

2013-09-23  Patrick Gansterer  <paroga@webkit.org>

        use NOMINMAX instead of #define min min
        https://bugs.webkit.org/show_bug.cgi?id=73563

        Reviewed by Brent Fulgham.

        Use NOMINMAX instead of #define min/max as a cleaner
        way of ensuring that Windows system header files don't
        define min/max as macro in the first place.

        * win/tools/vsprops/common.props:

2013-09-20  Mark Rowe  <mrowe@apple.com>

        Fix link errors for external users when building WebKit with Xcode 5.

        Reviewed by Oliver Hunt.

        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

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.

        * win/tools/vsprops/FeatureDefines.props: Add the CSS_SHAPES compile flag on Windows.

2013-09-19  Dan Bernstein  <mitz@apple.com>

        Removed WebCoreSQLite3. It has been unused for years.

        Rubber-stamped by Mark Rowe.

        * WebCoreSQLite3: Removed.
        * WebCoreSQLite3/sqlite3.h: Removed.
        * WebCoreSQLite3/sqlite3ext.h: Removed.
        * libWebCoreSQLite3.a: Removed.

2013-09-18  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Unreviewed build fix: Expose PlatformArchitecture macro to build system.

        * win/tools/vsprops/common.props:

2013-09-13  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Enable Page Visibility API
        https://bugs.webkit.org/show_bug.cgi?id=121340

        Reviewed by Anders Carlsson.

        * win/tools/vsprops/FeatureDefines.props: Activate feature.
        * win/tools/vsprops/FeatureDefinesCairo.props: Ditto.

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

        [Windows] Update WKSI library for Open Source builders.

        * win/lib32/WebKitSystemInterface.lib: Recompile with latest WebKit to use newer
        WTF.dll symbol exports.

2013-08-29  Filip Pizlo  <fpizlo@apple.com>

        Just linking LLVM into JSC causes all plugin tests to fail
        https://bugs.webkit.org/show_bug.cgi?id=113915

        Reviewed by Oliver Hunt.
        
        Updated the binary drops to r189627 of llvm.org, and used the new configure-llvm that does CPPFLAGS=-fvisibility=hidden.

        * LLVMIncludesMountainLion.tar.bz2:
        * LLVMLibrariesMountainLion.tar.bz2:

2013-08-29  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Unreviewed build fix after r154847.

        * win/tools/vsprops/FeatureDefines.props: Add missing definition for ENABLE_PROMISES
        * win/tools/vsprops/FeatureDefinesCairo.props: Ditto

2013-08-26  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Updates to WKSI to get external builders working.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib32/WebKitSystemInterface.lib:

2013-08-24  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Another attempt to fix the Windows bots. Need to retain older
        QuickTime player features for external builders.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib32/WebKitSystemInterface.lib:

2013-08-23  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Forgot to check in the header as well!

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:

2013-08-23  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Unreviewed build correction.

        * win/lib32/WebKitSystemInterface.lib: Update with new API for r132545.

2013-08-23  Beth Dakin  <bdakin@apple.com>

        REGRESSION (r132545): Some PDFs generated by WebKit are blank when viewed in 
        Adobe Reader
        https://bugs.webkit.org/show_bug.cgi?id=120240
        -and corresponding-
        <rdar://problem/14634453>

        Reviewed by Anders Carlsson.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

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.

        * win/tools/vsprops/common.props:
        Export PlatformArchitecture to be used by make and cmd scripts.
        Use PlatformArchitecture to determine correct build directory
        (lib32/bin32/obj32 or lib64/bin64/obj64).

2013-08-22  Filip Pizlo  <fpizlo@apple.com>

        Update LLVM binary drops and scripts to the latest version from SVN
        https://bugs.webkit.org/show_bug.cgi?id=120184

        Reviewed by Mark Hahnenberg.

        Updated binary drops to r189066.

        * LLVMIncludesMountainLion.tar.bz2:
        * LLVMLibrariesMountainLion.tar.bz2:

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).

        * win/tools/vsprops/common.props:

2013-08-21  Alex Christensen  <achristensen@apple.com>

        <https://webkit.org/b/120137> Separating Win32 and Win64 builds.

        Reviewed by Brent Fulgham.

        * win/tools/vsprops/common.props:
        Export PlatformArchitecture to be used by make and cmd scripts.
        Use PlatformArchitecture to determine correct build directory
        (lib32/bin32/obj32 or lib64/bin64/obj64).

2013-08-21  Brent Fulgham  <bfulgham@apple.com>

        <https://webkit.org/b/120113> [Windows] Enable CSS_IMAGE_SET

        Reviewed by Anders Carlsson.

        * win/tools/vsprops/FeatureDefines.props: Enable CSS_IMAGE_SET feature.
        * win/tools/vsprops/FeatureDefinesCairo.props: Ditto.

2013-08-15  Eric Carlson  <eric.carlson@apple.com>

        [Mac] Remove "legacy" media UI
        https://bugs.webkit.org/show_bug.cgi?id=119752

        Reviewed by Jer Noble.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

2013-08-13  Simon Fraser  <simon.fraser@apple.com>

        Various media tests spew "CGContextScaleCTM: invalid context 0x0" errors
        https://bugs.webkit.org/show_bug.cgi?id=119490

        New versions of WKSI that fix a bug that caused spew about null CGContexts,
        and update WebKitSystemInterface.h.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

2013-08-08  Alex Christensen  <achristensen@apple.com>

        Windows build fixes.

        Rubberstamped by Brent Fulgham.

        * win/tools/vsprops/debug_wincairo.props: Removed MinimalRebuild option preventing parallel compiling.

2013-07-30  Sanghyun Park  <sh919.park@samsung.com>

        Missing the rename REGISTER_PROCOTOL_HANDLER Macro to NAVIGATOR_CONTENT_UTILS in WebKitLibraries.
        https://bugs.webkit.org/show_bug.cgi?id=119239

        According to "https://bugs.webkit.org/show_bug.cgi?id=94920", REGISTER_PROCOTOL_HANDLER macro was changed to NAVIGATOR_CONTENT_UTILS.
        But, FeatureDefines.props and FeatureDefinesCairo.props was not changed.

        Reviewed by Brent Fulgham.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefinesCairo.props:

2013-05-22  Filip Pizlo  <fpizlo@apple.com>

        Updated LLVM drops to include MCJIT memory management APIs.

        Rubber stamped by Mark Hahnenberg.

        * LLVMIncludesMountainLion.tar.bz2:
        * LLVMLibrariesMountainLion.tar.bz2:

2013-04-30  Filip Pizlo  <fpizlo@apple.com>

        Updated LLVM drops to include MCJIT fixes and newly exposed API.

        Rubber stamped by Mark Hahnenberg.

        * LLVMIncludesMountainLion.tar.bz2:
        * LLVMLibrariesMountainLion.tar.bz2:

2013-04-16  Filip Pizlo  <fpizlo@apple.com>

        Updated LLVM drops to include MCJIT fixes.

        * LLVMIncludesMountainLion.tar.bz2:
        * LLVMLibrariesMountainLion.tar.bz2:

2013-04-03  Filip Pizlo  <fpizlo@apple.com>

        Updated LLVM drops to include LLVM_DO_NOT_INCLUDE_CPP_HEADERS changes.

        Rubber stamped by Mark Hahnenberg.

        * LLVMIncludesMountainLion.tar.bz2:
        * LLVMLibrariesMountainLion.tar.bz2:

2013-03-29  Filip Pizlo  <fpizlo@apple.com>

        fourthTier: Check in a known-good build of LLVM into WebKitLibraries, and have a story for updating it
        https://bugs.webkit.org/show_bug.cgi?id=113452

        Rubber stamped by Mark Hahnenberg.

        * LLVMIncludesMountainLion.tar.bz2: Added.
        * LLVMLibrariesMountainLion.tar.bz2: Added.

2013-07-18  Roger Fong  <roger_fong@apple.com>

        Make sure to link against _debug binaries when appropriate.
        <rdar://problem/14473010>.

        * win/tools/vsprops/debugsuffix.props:

2013-07-02  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r152233.
        http://trac.webkit.org/changeset/152233
        https://bugs.webkit.org/show_bug.cgi?id=118304

        hopeful attempt to restore windows buildage (Requested by
        kling on #webkit).

        * win/tools/vsprops/debugsuffix.props:

2013-07-01  Brent Fulgham  <bfulgham@apple.com>

        [Windows] Unreviewed correction to DEBUG_ALL target.  Target was undefining DEBUG_ALL and DEBUG_INTERNAL,
        which prevented proper build operation.

        * win/tools/vsprops/debugsuffix.props: We should DEFINE (not UNDEFINE) the DEBUG_ALL and DEBUG_INTERNAL
        macros when building with 'debugsuffix' target.

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.

        * win/tools: Copied from win/tools32.
        * win/tools/WinTools.make:
        * win/tools/scripts/auto-version.sh:
        * win/tools/scripts/feature-defines.sh:
        * win/tools32: Removed.
        * win/tools32/WinTools.make: Removed.
        * win/tools32/scripts: Removed.
        * win/tools32/scripts/COPYRIGHT-END-YEAR: Removed.
        * win/tools32/scripts/VERSION: Removed.
        * win/tools32/scripts/auto-version.sh: Removed.
        * win/tools32/scripts/feature-defines.sh: Removed.
        * win/tools32/vsprops: Removed.
        * win/tools32/vsprops/FeatureDefines.props: Removed.
        * win/tools32/vsprops/FeatureDefines.vsprops: Removed.
        * win/tools32/vsprops/FeatureDefinesCairo.props: Removed.
        * win/tools32/vsprops/FeatureDefinesCairo.vsprops: Removed.
        * win/tools32/vsprops/WinCairo.props: Removed.
        * win/tools32/vsprops/WinCairo.vsprops: Removed.
        * win/tools32/vsprops/cURL.props: Removed.
        * win/tools32/vsprops/cURL.vsprops: Removed.
        * win/tools32/vsprops/common.props: Removed.
        * win/tools32/vsprops/common.vsprops: Removed.
        * win/tools32/vsprops/debug.props: Removed.
        * win/tools32/vsprops/debug.vsprops: Removed.
        * win/tools32/vsprops/debug_all.vsprops: Removed.
        * win/tools32/vsprops/debug_wincairo.props: Removed.
        * win/tools32/vsprops/debug_wincairo.vsprops: Removed.
        * win/tools32/vsprops/debugsuffix.props: Removed.
        * win/tools32/vsprops/production.props: Removed.
        * win/tools32/vsprops/production.vsprops: Removed.
        * win/tools32/vsprops/release.props: Removed.
        * win/tools32/vsprops/release.vsprops: Removed.
        * win/tools32/vsprops/releaseproduction.vsprops: Removed.

2013-06-12  Brent Fulgham  <bfulgham@webkit.org>

        [WinCairo] Unreviewed build correction.

        * win/tools32/vsprops/WinCairo.props: Switch from using the
          $WebKitLibraries environment variable to the newer
          $WebKit_Libraries.
        * win/tools32/vsprops/debug_wincairo.props: Ditto.

2013-06-11  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Another part of rollout of r151408.

        * win/tools64: Removed.
        * win/tools64/scripts: Removed.
        * win/tools64/vsprops: Removed.

2013-06-11  Roger Fong  <roger_fong@apple.com>

        Unreviewed. WinTools makefile fix.

        * win/tools32/WinTools.make:

2013-06-11  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r151408.
        http://trac.webkit.org/changeset/151408
        https://bugs.webkit.org/show_bug.cgi?id=117519

        Opting for a different approach (Requested by rfong on
        #webkit).

        * win/WinTools.make: Removed.
        * win/tools32/WinTools.make: Renamed from WebKitLibraries/win/tools64/WinTools.make.
        * win/tools64/scripts/COPYRIGHT-END-YEAR: Removed.
        * win/tools64/scripts/VERSION: Removed.
        * win/tools64/scripts/auto-version.sh: Removed.
        * win/tools64/scripts/feature-defines.sh: Removed.
        * win/tools64/vsprops/FeatureDefines.props: Removed.
        * win/tools64/vsprops/FeatureDefines.vsprops: Removed.
        * win/tools64/vsprops/FeatureDefinesCairo.props: Removed.
        * win/tools64/vsprops/FeatureDefinesCairo.vsprops: Removed.
        * win/tools64/vsprops/WinCairo.props: Removed.
        * win/tools64/vsprops/WinCairo.vsprops: Removed.
        * win/tools64/vsprops/cURL.props: Removed.
        * win/tools64/vsprops/cURL.vsprops: Removed.
        * win/tools64/vsprops/common.props: Removed.
        * win/tools64/vsprops/common.vsprops: Removed.
        * win/tools64/vsprops/debug.props: Removed.
        * win/tools64/vsprops/debug.vsprops: Removed.
        * win/tools64/vsprops/debug_all.vsprops: Removed.
        * win/tools64/vsprops/debug_wincairo.props: Removed.
        * win/tools64/vsprops/debug_wincairo.vsprops: Removed.
        * win/tools64/vsprops/debugsuffix.props: Removed.
        * win/tools64/vsprops/production.props: Removed.
        * win/tools64/vsprops/production.vsprops: Removed.
        * win/tools64/vsprops/release.props: Removed.
        * win/tools64/vsprops/release.vsprops: Removed.
        * win/tools64/vsprops/releaseproduction.vsprops: Removed.

2013-06-10  Roger Fong  <roger_fong@apple.com>

        Change WebKitLibraries/win folder structure around.
        <rdar://problem/14097829>

        Reviewed by Lucas Forschler.

        * win/WinTools.make: Copied from win/tools32/WinTools.make.
        * win/tools32/WinTools.make: Removed.
        * win/tools64: Copied from win/tools32.

2013-06-05  Bear Travis  <betravis@adobe.com>

        [CSS Exclusions][CSS Shapes] Split CSS Exclusions & Shapes compile & runtime flags
        https://bugs.webkit.org/show_bug.cgi?id=117172

        Reviewed by Alexandru Chiculita.

        Adding the CSS_SHAPES compile flag.

        * win/tools32/vsprops/FeatureDefines.vsprops:
        * win/tools32/vsprops/FeatureDefinesCairo.vsprops:

2013-06-03  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Some AppleWin VS2010 house cleaning.

        * win/tools32/scripts/auto-version.sh: Replaced with win/tools32/scripts/auto-version2010.sh.
        * win/tools32/scripts/auto-version2010.sh: Removed.
        * win/tools32/scripts/feature-defines.sh: Replaced with win/tools32/scripts/feature-defines2010.sh.
        * win/tools32/scripts/feature-defines2010.sh: Removed.

2013-06-03  Roger Fong  <roger_fong@apple.com>

        Nuke VS2005 files from the tree.
        <rdar://problem/14042021>.

        Rubberstamped by Brent Fulgham.

        * win/lib: Removed.
        * win/lib/WebKitSystemInterface.lib: Removed.
        * win/tools: Removed.
        * win/tools/WinTools.make: Removed.
        * win/tools/scripts: Removed.
        * win/tools/scripts/COPYRIGHT-END-YEAR: Removed.
        * win/tools/scripts/VERSION: Removed.
        * win/tools/scripts/auto-version.sh: Removed.
        * win/tools/scripts/auto-version2010.sh: Removed.
        * win/tools/scripts/feature-defines.sh: Removed.
        * win/tools/scripts/feature-defines2010.sh: Removed.
        * win/tools/vsprops: Removed.
        * win/tools/vsprops/FeatureDefines.props: Removed.
        * win/tools/vsprops/FeatureDefines.vsprops: Removed.
        * win/tools/vsprops/FeatureDefinesCairo.props: Removed.
        * win/tools/vsprops/FeatureDefinesCairo.vsprops: Removed.
        * win/tools/vsprops/WinCairo.props: Removed.
        * win/tools/vsprops/WinCairo.vsprops: Removed.
        * win/tools/vsprops/cURL.props: Removed.
        * win/tools/vsprops/cURL.vsprops: Removed.
        * win/tools/vsprops/common.props: Removed.
        * win/tools/vsprops/common.vsprops: Removed.
        * win/tools/vsprops/debug.props: Removed.
        * win/tools/vsprops/debug.vsprops: Removed.
        * win/tools/vsprops/debug_all.vsprops: Removed.
        * win/tools/vsprops/debug_wincairo.props: Removed.
        * win/tools/vsprops/debug_wincairo.vsprops: Removed.
        * win/tools/vsprops/debugsuffix.props: Removed.
        * win/tools/vsprops/production.props: Removed.
        * win/tools/vsprops/production.vsprops: Removed.
        * win/tools/vsprops/release.props: Removed.
        * win/tools/vsprops/release.vsprops: Removed.
        * win/tools/vsprops/releaseproduction.vsprops: Removed.

2013-05-29  Jeffrey Pfau  <jpfau@apple.com>

        [Mac] Enable cache partitioning and the public suffix list on 10.8
        <rdar://problem/13679019>

        Rubber-stamped by David Kilzer.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

2013-05-14  Beth Dakin  <bdakin@apple.com>

        Printing in 1Password app is broken with screen fonts disabled
        https://bugs.webkit.org/show_bug.cgi?id=116133
        -and corresponding-
        <rdar://problem/13162981>

        Reviewed by Anders Carlsson.

        Need WKExecutableWasLinkedOnOrBeforeMountainLion() for this quirk.

        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

2013-05-08  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Update WebKitLibraries/win to handle different architectures properly.

        * win/lib32: Copied from win/lib.
        * win/tools/WinTools.make:

2013-05-02  Roger Fong  <roger_fong@apple.com>

        Unreviewed Windows build fix.

        * win/lib/WebKitSystemInterface.lib:

2013-05-01  Alexey Proskuryakov  <ap@apple.com>

        Update WebKitSystemInterface.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

2013-04-29  Chris Fleizach  <cfleizach@apple.com>

        WEB SPEECH: need to identify the default voice per language
        https://bugs.webkit.org/show_bug.cgi?id=115366

        Reviewed by Simon Fraser.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

2013-04-29  Roger Fong  <roger_fong@apple.com>

        Need a tools32 folder for VS2010 builds. 
        tools folder will be nuked when we nuke VS2005.

        * win/tools32: Copied from WebKitLibraries/win/tools.

2013-04-26  Roger Fong  <roger_fong@apple.com>

        Disable sub-pixel-layout on Apple Windows port, VS2005 edition.

        * win/tools/vsprops/FeatureDefines.vsprops:

2013-04-26  Roger Fong  <roger_fong@apple.com>

        Disable sub-pixel-layout on Apple Windows port.

        * win/tools/vsprops/FeatureDefines.props:

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.

        * win/tools/WinTools.make:
        * win/tools/scripts/auto-version2010.sh:
        * win/tools/scripts/feature-defines2010.sh:
        * win/tools/vsprops/common.props:
        * win/tools/vsprops/debugsuffix.props:

2013-04-25  Chris Fleizach  <cfleizach@apple.com>

        WEB SPEECH: language support does not work as expected
        https://bugs.webkit.org/show_bug.cgi?id=115119

        Reviewed by Alexey Proskuryakov.

        * WebKitSystemInterface.h:

2013-04-24  Roger Fong  <roger_fong@apple.com>

        Have VS2010 WebKit solution look in WebKit_Libraries/lib32 for dependencies.

        * win/tools/vsprops/common.props:

2013-04-23  Antoine Quint  <graouts@apple.com>

        Initial advance of text runs should be taken into account
        https://bugs.webkit.org/show_bug.cgi?id=114949

        Reviewed by Darin Adler.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

2013-04-12  Jeffrey Pfau  <jpfau@apple.com>

        Query directly for cache partition names
        https://bugs.webkit.org/show_bug.cgi?id=114538

        Reviewed by David Kilzer.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

2013-04-08  Roger Fong  <roger_fong@apple.com>

        Build fix.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2013-04-11  Alexey Proskuryakov  <ap@apple.com>

        <rdar://problem/10416316> [Mac] WebSocket doesn't work with authenticating proxies
        https://bugs.webkit.org/show_bug.cgi?id=114464

        Update WebKitSystemInterface.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

2013-04-10  Benjamin Poulain  <bpoulain@apple.com>

        Mass remove all the empty directories

        Rubberstamped by Ryosuke Niwa.

        * win/bin: Removed.
        * win/lib/WebKitSystemInterface: Removed.

2013-04-05  Roger Fong  <roger_fong@apple.com>

        More VS2010 solution makefile fixes.
        <rdar://problem/13588964>

        * win/tools/WinTools.make:

2013-04-03  Brent Fulgham  <bfulgham@webkit.org>

        [Windows, WinCairo] Unreviewed VS2010 Build Correction

        * win/tools/scripts/auto-version2010.sh: Added properties svn:eol-style and svn:executable.
        * win/tools/scripts/feature-defines2010.sh: Added properties svn:eol-style and svn:executable.

2013-04-01  Roger Fong  <roger_fong@apple.com>

        Update FEATURE_DEFINES string generation for VS2010 solution.
        https://bugs.webkit.org/show_bug.cgi?id=113737.

        Reviewed by Timothy Horton.

        * win/tools/scripts/feature-defines2010.sh: Added.

2013-03-29  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Rollout r146818.

        * win/tools/vsprops/FeatureDefines.props:

2013-03-25  Kent Tamura  <tkent@chromium.org>

        Rename ENABLE_INPUT_TYPE_DATETIME
        https://bugs.webkit.org/show_bug.cgi?id=113254

        Reviewed by Kentaro Hara.

        Rename ENABLE_INPUT_TYPE_DATETIME to ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE.
        Actually I'd like to remove the code, but we shouldn't remove it yet
        because we shipped products with it on some platforms.

        * win/tools/vsprops/FeatureDefines.props:
        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.props:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2013-03-25  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r146816, r146821, and r146830.
        http://trac.webkit.org/changeset/146816
        http://trac.webkit.org/changeset/146821
        http://trac.webkit.org/changeset/146830
        https://bugs.webkit.org/show_bug.cgi?id=113262

        Broke all the Windows tests (Requested by rfong on #webkit).

        * win/tools/vsprops/FeatureDefines.vsprops:

2013-03-25  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Also enable CSS_REGIONS and EXCLUSIONS for VS2010 solution.

        * win/tools/vsprops/FeatureDefines.props:

2013-03-25  Roger Fong  <roger_fong@apple.com>

        Enable CSS_REGIONS and CSS_EXCLUSIONS.
        https://bugs.webkit.org/show_bug.cgi?id=87519

        Reviewed by Timothy Horton.

        * win/tools/vsprops/FeatureDefines.vsprops:

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.

        * win/tools/vsprops/FeatureDefines.props: Copied from ../Source/WebKit/WebKit.vcxproj/FeatureDefines.props.
        * win/tools/vsprops/FeatureDefinesCairo.props: Copied from ../Source/WebKit/WebKit.vcxproj/FeatureDefinesCairo.props.
        * win/tools/vsprops/WinCairo.props: Copied from ../Source/WebKit/WebKit.vcxproj/WinCairo.props.
        * win/tools/vsprops/cURL.props: Copied from ../Source/WebKit/WebKit.vcxproj/WebKit/cURL.props.
        * win/tools/vsprops/common.props: Copied from ../Source/WebKit/WebKit.vcxproj/common.props.
        * win/tools/vsprops/debug.props: Copied from ../Source/WebKit/WebKit.vcxproj/debug.props.
        * win/tools/vsprops/debug_wincairo.props: Copied from ../Source/WebKit/WebKit.vcxproj/debug_wincairo.props.
        * win/tools/vsprops/debugsuffix.props: Copied from ../Source/WebKit/WebKit.vcxproj/debugsuffix.props.
        * win/tools/vsprops/production.props: Copied from ../Source/WebKit/WebKit.vcxproj/production.props.
        * win/tools/vsprops/release.props: Copied from ../Source/WebKit/WebKit.vcxproj/release.props.

2013-03-19  Brent Fulgham  <bfulgham@webkit.org>

        [WinCairo] Unreviewed build fix.

        * win/tools/vsprops/FeatureDefinesCairo.vsprops: This file was out
        of sync with the main Windows build, and the VS2010 version of the
        WinCairo port, preventing consistent builds.

2013-03-13  Ryosuke Niwa  <rniwa@webkit.org>

        Threaded HTML Parser is missing feature define flags in all but Chromium port's build files
        https://bugs.webkit.org/show_bug.cgi?id=112277

        Reviewed by Adam Barth.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2013-03-06  Jer Noble  <jer.noble@apple.com>

        Unreviewed roll-out of r145011.

        * win/tools/vsprops/FeatureDefines.vsprops:

2013-03-06  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix.  Add ENABLE_CURSOR_VISIBILITY to the list of FEATURE_DEFINES for
        (non-Cairo) Windows builds.

        * win/tools/vsprops/FeatureDefines.vsprops:

2013-03-05  Kiran Muppala  <cmuppala@apple.com>

        Remove deprecated process suppression assertion SPI from WebKitSystemInterface
        https://bugs.webkit.org/show_bug.cgi?id=111501

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=111387 replaced all usage of
        WKNSProcessInfoProcessAssertionWithTypes() with
        -[NSProcessInfo beginSuspensionOfSystemBehaviors:].  Hence, remove
        the now deprecated SPI.

        * WebKitSystemInterface.h: Remove
        WKNSProcessInfoProcessAssertionWithTypes and associated declarations.

2013-03-05  Kiran Muppala  <cmuppala@apple.com>

        Use new assertion API for process suppression on Mac
        https://bugs.webkit.org/show_bug.cgi?id=111387

        Reviewed by Alexey Proskuryakov.

        Add WKProcessSuppressionSystemBehaviors constant for use in WebKit2 to
        take a process suppression assertion.

        * WebKitSystemInterface.h:

2013-03-05  Jeffrey Pfau  <jpfau@apple.com>

        Clear associated cache partitions when deleting origins' cache
        https://bugs.webkit.org/show_bug.cgi?id=111383

        Reviewed by Maciej Stachowiak.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

2013-03-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        Add build flag for FontLoader
        https://bugs.webkit.org/show_bug.cgi?id=111289

        Reviewed by Benjamin Poulain.

        Add ENABLE_FONT_LOAD_EVENTS build flag (disabled by default).

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2013-02-27  Glenn Adams  <glenn@skynav.com>

        Add ENABLE_CSS3_TEXT_LINE_BREAK flag.
        https://bugs.webkit.org/show_bug.cgi?id=110944

        Reviewed by Dean Jackson.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2013-02-21  Jeffrey Pfau  <jpfau@apple.com>

        Optionally partition cache to prevent using cache for tracking
        https://bugs.webkit.org/show_bug.cgi?id=110269

        Reviewed by Maciej Stachowiak.

        Update WKSI bindings.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

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.

        * win/tools/vsprops/FeatureDefines.vsprops:

2013-02-22  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Make WinTools.make stop copying vsprops into nested vsprops folders.

        * win/tools/WinTools.make:

2013-02-14  Anders Carlsson  <andersca@apple.com>

        Add WKContextIsPlugInUpdateAvailable
        https://bugs.webkit.org/show_bug.cgi?id=109862
        <rdar://problem/13173140>

        Reviewed by Sam Weinig.

        Roll WebKitSystemInterface DEPS.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

2013-02-13  Roger Fong  <roger_fong@apple.com>

        Move all .props files from WebKitLibraries folder to WebKit Source folder.
        https://bugs.webkit.org/show_bug.cgi?id=109761

        Reviewed by Brent Fulgham.

        * win/tools/vsprops/FeatureDefines.props: Removed.
        * win/tools/vsprops/common.props: Removed.
        * win/tools/vsprops/debug.props: Removed.
        * win/tools/vsprops/release.props: Removed.
        * win/tools/vsprops/releaseproduction.props: Removed.

2013-02-07  Roger Fong  <roger_fong@apple.com>

        Unreviewed. More VS2010 WebKit solution touchups.
        Move an ignored warning from a project to common properties.

        * win/tools/vsprops/common.props:

2013-02-06  Mike West  <mkwst@chromium.org>

        Add an ENABLE_NOSNIFF feature flag.
        https://bugs.webkit.org/show_bug.cgi?id=109029

        Reviewed by Jochen Eisinger.

        This new flag will control the behavior of 'X-Content-Type-Options: nosniff'
        when processing script and other resource types.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2013-02-01  Alexis Menard  <alexis@webkit.org>

        Enable unprefixed CSS transitions by default.
        https://bugs.webkit.org/show_bug.cgi?id=108216

        Reviewed by Dean Jackson.

        Rename the flag CSS_TRANSFORMS_ANIMATIONS_TRANSITIONS_UNPREFIXED
        to CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED which will be used later to 
        guard the unprefixing work for CSS Transforms and animations.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2013-01-30  Alexey Proskuryakov  <ap@apple.com>

        Update WebKitSystemInterface for <rdar://problem/13111288>.

        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

        * WebKitSystemInterface.h: Removed WKEnterPluginSandbox, which has been unused now.

2013-01-28  Kiran Muppala  <cmuppala@apple.com>

        Add window occlusion criteria to determine page visibility on Mac
        https://bugs.webkit.org/show_bug.cgi?id=107494

        Reviewed by Simon Fraser.

        Add enum constants to specify window occlusion notification type to
        notification registration/unregistration methods.  Add typedef for
        window ID data passed to the window occlusion notification handler.
        Add method to enable occlusion notifications for a particular window.

        * WebKitSystemInterface.h: Add
        WKOcclusionNotificationTypeWindowBecameVisible,
        WKOcclusionNotificationTypeWindowBecameOccluded,
        WKWindowID,
        WKEnableWindowOcclusionNotifications().

2013-01-25  Andy Estes  <aestes@apple.com>

        Update WKSI header and libraries after r140875.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

2013-01-24  Brent Fulgham  <bfulgham@webkit.org>

        Get WTF compiling in VS2010 (32bit)
        https://bugs.webkit.org/show_bug.cgi?id=106986

        Reviewed by Tim Horton.

        If you do not have Cygwin in the overall operating system
        PATH, the project will not build.  In VS2005 we had logic
        in the build system to guard against this.  We should
        retain this in the VS2010 work.

        Furthermore, VS2010 has a nasty bug where to Visual Studio
        tools path is not defined when performing a 'clean' phase
        on an NMAKE-based build.  This is corrected here as well.

        * win/tools/vsprops/common.props: Revise environment setup
        to ensure proper tools are in path during build.

2013-01-19  Roger Fong  <roger_fong@apple.com>

        Add WebKitLibraries property sheets for compiling WebKit in VS2010.
        https://bugs.webkit.org/show_bug.cgi?id=106949

        Reviewed by Brent Fulgham.

        * win/tools/vsprops/FeatureDefines.props: Added.
        * win/tools/vsprops/common.props: Added.
        * win/tools/vsprops/debug.props: Added.
        * win/tools/vsprops/release.props: Added.
        * win/tools/vsprops/releaseproduction.props: Added.

2013-01-21  Dirk Schulze  <dschulze@adobe.com>

        Add build flag for Canvas's Path object (disabled by default)
        https://bugs.webkit.org/show_bug.cgi?id=107473

        Reviewed by Dean Jackson.

        Add CANVAS_PATH build flag to build systems.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2013-01-10  Roger Fong  <roger_fong@apple.com>

        Update WebkitSystemInterface lib for Windows port.
        This hasn't been done in a while and the current one is out of date.
        In addition I believe it will fix:
        <rdar://problem/12990844>

        Rubberstamped by Timothy Horton.

        * win/lib/WebKitSystemInterface.lib:

2013-01-08  Kiran Muppala  <cmuppala@apple.com>

        Add WebKitSystemInterface needed for overriding system proxies on Mac
        https://bugs.webkit.org/show_bug.cgi?id=106410

        Reviewed by Stephanie Lewis.

        This patch is in anticipation of the fix for https://bugs.webkit.org/show_bug.cgi?id=104197,
        Add user defaults to override system proxy settings for NetworkProcess on Mac, which
        is awaiting the approval of a WebKit2 committer.  Commiting the WKSI portion separately,
        so that the internal repository commit for generating the WKSI libraries does not have to
        be rolled back every time the rest of the patch changes.

        Add WKCFNetworkSetOverrideSystemProxySettings(), needed by NetworkProcess to set
        custom proxies during initialization.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

2013-01-04  Adam Klein  <adamk@chromium.org>

        Remove ENABLE_MUTATION_OBSERVERS #define
        https://bugs.webkit.org/show_bug.cgi?id=105459

        Reviewed by Ryosuke Niwa.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2013-01-01  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/12942239> Update copyright strings

        Reviewed by Sam Weinig.

        * win/tools/scripts/COPYRIGHT-END-YEAR:

2012-12-28  Mark Rowe  <mrowe@apple.com>

        Move logic for extracting the OS X marketing version in to WebCore
        <http://webkit.org/b/105841> / <rdar://problem/10736041>

        Reviewed by Dan Bernstein.

        * WebKitSystemInterface.h:

2012-12-19  Kiran Muppala  <cmuppala@apple.com>

        Adopt new assertion SPI for process suppression on Mac
        https://bugs.webkit.org/show_bug.cgi?id=105378

        Reviewed by Mark Rowe.

        Add WKNSProcessInfoProcessAssertionWithTypes().

        * WebKitSystemInterface.h:

2012-12-19  Alexis Menard  <alexis@webkit.org>

        Implement CSS parsing for CSS transitions unprefixed.
        https://bugs.webkit.org/show_bug.cgi?id=104804

        Reviewed by Dean Jackson.

        Add a new flag ENABLE_CSS_TRANSFORMS_ANIMATIONS_TRANSITIONS_UNPREFIXED
        to cover the work of unprefixing Transforms, Animations and 
        Transitions. It will let the possibility of each ports to turn it off 
        in their release branches until we're confident that these CSS 
        properties are ready to be unprefixed.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-12-12  Roger Fong  <roger_fong@apple.com>

        Enable VIDEO_TRACK on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=104706.

        Reviewed by Timothy Horton.

        Enable VIDEO_TRACK on Windows and update project property files.

        * win/tools/vsprops/FeatureDefines.vsprops:

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

        Unreviewed, rolling out r137491.
        http://trac.webkit.org/changeset/137491
        https://bugs.webkit.org/show_bug.cgi?id=104828

        broke the builtd (Requested by rfong on #webkit).

        * win/tools/vsprops/FeatureDefines.vsprops:

2012-12-11  Roger Fong  <roger_fong@apple.com>

        Enable VIDEO_TRACK on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=104706.

        Reviewed by Timothy Horton.

        Enable VIDEO_TRACK on Windows and update project property files.

        * win/tools/vsprops/FeatureDefines.vsprops:

2012-12-10  Alexis Menard  <alexis@webkit.org>

        [CSS3 Backgrounds and Borders] Remove CSS3_BACKGROUND feature flag.
        https://bugs.webkit.org/show_bug.cgi?id=104539

        Reviewed by Antonio Gomes.

        As discussed on webkit-dev it is not needed to keep this feature flag 
        as support for <position> type is a small feature that is already 
        implemented by three other UAs. It was useful while landing this 
        feature as partial bits were landed one after one.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-12-06  Rick Byers  <rbyers@chromium.org>

        CSS cursor property should support webkit-image-set
        https://bugs.webkit.org/show_bug.cgi?id=99493

        Reviewed by Beth Dakin.

        Add ENABLE_MOUSE_CURSOR_SCALE - disabled by default

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-11-26  Roger Fong  <roger_fong@apple.com>

        Unreviewed. ENABLE_ACCELERATED_OVERFLOW_SCROLLING not enabled on Windows.
        Add a feature flag and skip some failing tests.
        https://bugs.webkit.org/show_bug.cgi?id=103294

        Tests skipped:
        compositing/overflow/scrolling-without-painting.html
        compositing/overflow/updating-scrolling-content.html

        * win/tools/vsprops/FeatureDefines.vsprops:

2012-11-23  Alexis Menard  <alexis@webkit.org>

        [CSS3 Backgrounds and Borders] Implement new CSS3 background-position parsing.
        https://bugs.webkit.org/show_bug.cgi?id=102104

        Reviewed by Julien Chaffraix.

        Protect the new feature behind a feature flag.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-11-19  Kihong Kwon  <kihong.kwon@samsung.com>

        Add PROXIMITY_EVENTS feature
        https://bugs.webkit.org/show_bug.cgi?id=102658

        Reviewed by Kentaro Hara.

        Add PROXIMITY_EVENTS feature to win and win-cairo prot.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-11-12  Beth Dakin  <bdakin@apple.com>

        Build fix. Forgot these bits last time.

        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

2012-11-12  Beth Dakin  <bdakin@apple.com>

        Zoomed-in scrolling is very slow when deviceScaleFactor > 1
        https://bugs.webkit.org/show_bug.cgi?id=101787

        Reviewed by Simon Fraser.

        wkSetCGFontRenderingMode now takes a BOOL parameter.
        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

2012-11-08  Anders Carlsson  <andersca@apple.com>

        Roll WebKitSystemInterface DEPS.

        Rubber-stamped by Andreas Kling.

        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

2012-11-07  Roger Fong  <roger_fong@apple.com>

        Enable Subpixel Layout on Windows. Rebaseline any failing tests that were rebaselined in r133351.
        https://bugs.webkit.org/show_bug.cgi?id=101538

        Rubberstamped by Tim Horton.

        * win/tools/vsprops/FeatureDefines.vsprops:

2012-11-06  Anders Carlsson  <andersca@apple.com>

        Build fix.

        * WebKitSystemInterface.h:

2012-11-06  Anders Carlsson  <andersca@apple.com>

        Update Java related WKSI function names
        https://bugs.webkit.org/show_bug.cgi?id=101414

        Reviewed by Sam Weinig.

        Roll WebKitSystemInterface DEPS.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

2012-11-06  Alexey Proskuryakov  <ap@apple.com>

        Clean up which storage cookie jar functions use
        https://bugs.webkit.org/show_bug.cgi?id=101395

        Reviewed by Brady Eidson.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:
        Added WKHTTPCookies() and WKDeleteAllHTTPCookies(). Updated ifdefs for currently
        supported OS versions.

2012-11-06  Alexey Proskuryakov  <ap@apple.com>

        Delete Leopard and Snow Leopard versions of WKSI. These have not been updated in ages.

        Rubber-stampted by Mark Rowe.

        * libWebKitSystemInterfaceLeopard.a: Removed.
        * libWebKitSystemInterfaceSnowLeopard.a: Removed.

2012-11-05  Alexey Proskuryakov  <ap@apple.com>

        Get rid of setCookieStoragePrivateBrowsingEnabled.
        https://bugs.webkit.org/show_bug.cgi?id=101247

        Reviewed by Brady Eidson.

        * WebKitSystemInterface.h: Removed the function.

2012-11-02  Anders Carlsson  <andersca@apple.com>

        Don't instantiate the Java plug-in if it's inactive
        https://bugs.webkit.org/show_bug.cgi?id=101102
        <rdar://problem/12595679>

        Reviewed by Andreas Kling.

        Update WebKitSystemInterface to a version that has WKJLReportWebComponentsUsed.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:
        Roll WebKitSystemInterface DERPS.

2012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>

        Conditionalize XHR timeout support
        https://bugs.webkit.org/show_bug.cgi?id=100356

        Reviewed by Adam Barth.

        Adding ENABLE_XHR_TIMEOUT feature, which is default off for Apple Win.
        See also https://bugs.webkit.org/show_bug.cgi?id=100349 for an attempt
        to fix timeout support for CF Network.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-10-24  Eric Carlson  <eric.carlson@apple.com>

        Allow ports to override text track rendering style
        https://bugs.webkit.org/show_bug.cgi?id=97800
        <rdar://problem/12044964>

        Reviewed by Maciej Stachowiak.

        Update WKSI header with SPI for getting the user caption appearance preferences.

        * WebKitSystemInterface.h:

2012-10-19  Dongwoo Joshua Im  <dw.im@samsung.com>

        Rename ENABLE_CSS3_TEXT_DECORATION to ENABLE_CSS3_TEXT
        https://bugs.webkit.org/show_bug.cgi?id=99804

        Reviewed by Julien Chaffraix.

        CSS3 text related properties will be implemented under this flag,
        including text decoration, text-align-last, and text-justify.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-10-18  Pablo Flouret  <pablof@motorola.com>

        Implement css3-conditional's @supports rule
        https://bugs.webkit.org/show_bug.cgi?id=86146

        Reviewed by Antti Koivisto.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:
            Add an ENABLE_CSS3_CONDITIONAL_RULES flag.

2012-10-08  Kiran Muppala  <cmuppala@apple.com>

        Throttle DOM timers on hidden pages.
        https://bugs.webkit.org/show_bug.cgi?id=98474

        Reviewed by Maciej Stachowiak.

        Add HIDDEN_PAGE_DOM_TIMER_THROTTLING feature define.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

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

        Unreviewed, rolling out r130556 and r130564.
        http://trac.webkit.org/changeset/130556
        http://trac.webkit.org/changeset/130564
        https://bugs.webkit.org/show_bug.cgi?id=98572

        The patch wasn't reviewed by a reviewer and it is breaking
        Chromium Windows (Requested by jchaffraix on #webkit).

        * WebKitSystemInterface.h:

2012-10-05  Tim Horton  <timothy_horton@apple.com>

        Update WebKitSystemInterface libraries and header.

        Reviewed by Simon Fraser.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2012-10-04  Eric Carlson  <eric.carlson@apple.com>

        Allow ports to override text track rendering style
        https://bugs.webkit.org/show_bug.cgi?id=97800
        <rdar://problem/12044964>

        Reviewed by Silvia Pfeiffer.

        Update WKSI header with SPI for getting the user caption appearance preferences.

        * WebKitSystemInterface.h:

2012-09-28  Eric Carlson  <eric.carlson@apple.com>

        Allow ports to override text track rendering style
        <rdar://problem/12044964>

        Reviewed by Jessie Berlin.

        Update WKSI libraries.

        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2012-09-25  Simon Fraser  <simon.fraser@apple.com>

        <rdar://problem/12351906> Have DumpRenderTree and WebKitTestRunner crash logs show which test crashed

        Reviewed by Tim Horton.

        New WKSI libraries and header.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2012-09-08  Sam Weinig  <sam@webkit.org>

        Switch to entering the sandbox directly from main(), rather than waiting for the initialization message
        https://bugs.webkit.org/show_bug.cgi?id=96194

        Reviewed by Dan Bernstein.

        Update WKSI with SPI for getting the bundle URL from an executable URL.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        Adds WKCopyBundleURLForExecutableURL().

2012-08-29  Tony Chang  <tony@chromium.org>

        Remove ENABLE_CSS3_FLEXBOX compile time flag
        https://bugs.webkit.org/show_bug.cgi?id=95382

        Reviewed by Ojan Vafai.

        Everyone is already enabling this by default and the spec has stablized.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-08-15  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>

        [css3-text] Add CSS3 Text decoration compile flag
        https://bugs.webkit.org/show_bug.cgi?id=93863

        Reviewed by Julien Chaffraix.

        This patch handles the compile flag implementation, which will come disabled by
        default, thus not exposing the CSS3 text decoration features to the web, unless
        when explicitly enabling it with "--css3-text-decoration" build parameter.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-08-14  Alex Christensen  <alex.christensen@flexsim.com>

        /SAFESEH should not be a common linker option
        https://bugs.webkit.org/show_bug.cgi?id=89372

        Reviewed by Darin Adler.

        * win/tools/vsprops/common.vsprops:
        removed /SAFESEH as a default option for the linker (doesn't work for x64)

2012-08-13  Roger Fong  <roger_fong@apple.com>

        Enable CSS Sticky Position on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=93905

        Reviewed by Tim Horton.

        As per https://bugs.webkit.org/show_bug.cgi?id=90046, the ENABLE_CSS_STICKY_POSITION needs to be turned on for Windows as well.

        * win/tools/vsprops/FeatureDefines.vsprops:
        Include ENABLE_CSS_STICKY_POSITION flag. 
        
2012-08-06  Anders Carlsson  <andersca@apple.com>

        If the Apple Java plug-in is blocked and no runtime is installed, don't load it
        https://bugs.webkit.org/show_bug.cgi?id=93289
        <rdar://problem/11730092>

        Reviewed by Dan Bernstein.

        Add WKJLIsRuntimeAndWebComponentsInstalled().

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:

2012-08-01  Jon Lee  <jonlee@apple.com>

        Update WKSI.

        Reviewed by Mark Rowe.

        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2012-07-29  Rik Cabanier  <cabanier@adobe.com>

        Add ENABLE_CSS_COMPOSITING flag
        https://bugs.webkit.org/show_bug.cgi?id=92553

        Reviewed by Dirk Schulze.

        Adds compiler flag CSS_COMPOSITING to build systems to enable CSS blending and compositing. See spec https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-07-23  Roger Fong  <roger_fong@apple.com>

        Disable flexbox on Windows
        https://bugs.webkit.org/show_bug.cgi?id=92047
        <rdar://problem/11570384>

        Reviewed by Darin Adler.

        Disabled Flexbox CSS3 syntax on Mac, need to do the same for Windows.

        * win/tools/vsprops/FeatureDefines.vsprops:
        Disable ENABLE_CSS3_FLEXBOX property.
        
2012-07-23  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.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-07-22  Kent Tamura  <tkent@chromium.org>

        Rename ENABLE_DETAILS to ENABLE_DETAILS_ELEMENT
        https://bugs.webkit.org/show_bug.cgi?id=91928

        Reviewed by Kentaro Hara.

        A flag name for an elmement should be ENABLE_*_ELEMENT.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-07-20  Kent Tamura  <tkent@chromium.org>

        Rename ENABLE_DATALIST to ENABLE_DATALIST_ELEMENT
        https://bugs.webkit.org/show_bug.cgi?id=91846

        Reviewed by Kentaro Hara.

        A flag name for an elmement should be ENABLE_*_ELEMENT.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

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

        Add a Mountain Lion version of libWebKitSystemInterface.a.

        Update the WebKitSystemInterface header and binaries.

        Reviewed by John Sullivan.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceMountainLion.a: Added.
        * libWebKitSystemInterfaceSnowLeopard.a:

2012-07-04  John Mellor  <johnme@chromium.org>

        Text Autosizing: Add compile flag and runtime setting
        https://bugs.webkit.org/show_bug.cgi?id=87394

        This patch renames Font Boosting to Text Autosizing.

        Reviewed by Adam Barth.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-06-29  Mihai Balan  <mibalan@adobe.com>

        [CSS Regions] Adding feature defines for CSS Regions for Windows
        https://bugs.webkit.org/show_bug.cgi?id=88645

        Reviewed by Tony Chang.

        Re-trying to enable CSS regions on Windows. This time only enabling
        regions since exclusions lead to some very strange compiling/linking
        problems.

        * win/tools/vsprops/FeatureDefines.vsprops: Added default value for ENABLE_CSS_REGIONS
        * win/tools/vsprops/FeatureDefinesCairo.vsprops: ditto

2012-06-28  Brent Fulgham  <bfulgham@webkit.org>

        [WinCairo] Unreviewed build correction.  Add two missing macro
        declarations to vsprops file.

        * win/tools/vsprops/FeatureDefinesCairo.vsprops: Add missing
        ENABLE_HIGH_DPI_CANVAS and ENABLE_REQUEST_ANIMATION_FRAME macros.

2012-06-27  Brent Fulgham  <bfulgham@webkit.org>

        [WinCairo] Unreviewed build correction.  Accidentally turned on
        CSS_FILTERS, which is not available in tree.

        * win/tools/vsprops/FeatureDefinesCairo.vsprops: Turn CSS_FILTERS
        back off for WinCairo target.

2012-06-27  Brent Fulgham  <bfulgham@webkit.org>

        [WinCairo] Unreviewed build correction.  Resync feature defines with
        Apple port. Things have drifted apart a little.

        * win/tools/vsprops/FeatureDefinesCairo.vsprops: Update to match
        Apple port, define some missing features.

2012-06-19  Mike West  <mkwst@chromium.org>

        Introduce ENABLE_CSP_NEXT configuration flag.
        https://bugs.webkit.org/show_bug.cgi?id=89300

        Reviewed by Adam Barth.

        The 1.0 draft of the Content Security Policy spec is just about to
        move to Last Call. We'll hide work on the upcoming 1.1 spec behind
        this ENABLE flag, disabled by default.

        Spec: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-06-15  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r120280.
        http://trac.webkit.org/changeset/120280
        https://bugs.webkit.org/show_bug.cgi?id=89273

        Enabling CSS regions broke all Windows tests (Requested by
        jhomeycutt on #webkit).

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-06-13  Mihai Balan  <mibalan@adobe.com>

        Fix for #88645 - enabling regions on Windows

        [CSS Regions] Adding feature defines for CSS Regions & exclusions for Windows
        https://bugs.webkit.org/show_bug.cgi?id=88645

        Reviewed by Sam Weinig.

        Previous work on #87442 added feature defines to allow proper disabling of CSS Regions and
        exclusions (previously even with the feature disabled, parsing still worked). However, the
        feature defines were enabled on Mac only - they were broken on Windows. This
        patch adds the feature defines to (re)enable regions and exclusions on Windows.

        * win/tools/vsprops/FeatureDefines.vsprops: Added default value for ENABLE_CSS_EXCLUSIONS and ENABLE_CSS_REGIONS
        * win/tools/vsprops/FeatureDefinesCairo.vsprops: ditto

2012-06-11  Alexis Menard  <alexis.menard@openbossa.org>

        [CSS3 Backgrounds and Borders] Protect box-decoration-break behind a feature flag.
        https://bugs.webkit.org/show_bug.cgi?id=88804

        Reviewed by Tony Chang.

        Protect box-decoration-break behind a feature flag enabled by default.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-06-11  Anders Carlsson  <andersca@apple.com>

        Pass the right color space over to the web process so we can set it on our CA context
        https://bugs.webkit.org/show_bug.cgi?id=88819
        <rdar://problem/11629050>

        Reviewed by John Sullivan.

        Add WKCAContextSetColorSpace and WKCAContextGetColorSpace.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2012-06-09  Sukolsak Sakshuwong  <sukolsak@google.com>

        Add UNDO_MANAGER flag
        https://bugs.webkit.org/show_bug.cgi?id=87908

        Reviewed by Tony Chang.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

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

        Add 'isProtocolHandlerRegistered' and 'unregisterProtocolHandler'.
        https://bugs.webkit.org/show_bug.cgi?id=73176

        Reviewed by Adam Barth.

        Two more APIs are added in Custom Scheme Handler specification.
        http://dev.w3.org/html5/spec/Overview.html#custom-handlers
        One is 'isProtocolHandlerRegistered' to query whether the specific URL
        is registered or not.
        The other is 'unregisterProtocolHandler' to remove the registered URL.

        * win/tools/vsprops/FeatureDefines.vsprops: Add a macro 'ENABLE_CUSTOM_SCHEME_HANDLER'.
        * win/tools/vsprops/FeatureDefinesCairo.vsprops: Add a macro 'ENABLE_CUSTOM_SCHEME_HANDLER'.

2012-05-29  Jessie Berlin  <jberlin@apple.com>

        [Win] ~1/2 of all the iframe seamless tests fail
        https://bugs.webkit.org/show_bug.cgi?id=87543

        Rubber-stamped by Eric Seidel.

        Finish enabling IFRAME_SEAMLESS on Windows.

        * win/tools/vsprops/FeatureDefines.vsprops:

2012-05-28  Vivek Galatage  <vivekgalatage@gmail.com>

        Remove obsolete feature define ENABLE_3D_CANVAS from FeatureDefines.vsprops for windows
        https://bugs.webkit.org/show_bug.cgi?id=87622

        Reviewed by Eric Seidel.

        Removed the ENABLE_3D_CANVAS from the property define as this is
        obsolete since bug #53041

        * win/tools/vsprops/FeatureDefines.vsprops:

2012-05-24  John Mellor  <johnme@chromium.org>

        Font Boosting: Add compile flag and runtime setting
        https://bugs.webkit.org/show_bug.cgi?id=87394

        Reviewed by Adam Barth.

        Add ENABLE_FONT_BOOSTING.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-05-23  Ojan Vafai  <ojan@chromium.org>

        add back the ability to disable flexbox
        https://bugs.webkit.org/show_bug.cgi?id=87147

        Reviewed by Tony Chang.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-05-10  Anders Carlsson  <andersca@apple.com>

        WebKit1: Add a way to blacklist specific plug-ins/plug-in versions
        https://bugs.webkit.org/show_bug.cgi?id=86150
        <rdar://problem/9551196>

        Reviewed by Sam Weinig.

        Add WKShouldBlockPlugin.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2012-05-08  Jon Lee  <jonlee@apple.com>

        Safari warns that it needs to resend the form in an iFrame when going back
        https://bugs.webkit.org/show_bug.cgi?id=82658
        <rdar://problem/11292558>

        Reviewed by Darin Adler.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2012-05-07  Eric Seidel  <eric@webkit.org>

        Add ENABLE_IFRAME_SEAMLESS so Apple can turn off SEAMLESS if needed
        https://bugs.webkit.org/show_bug.cgi?id=85822

        Reviewed by Adam Barth.

        * win/tools/vsprops/FeatureDefines.vsprops:

2012-05-06  Eric Seidel  <eric@webkit.org>

        Remove 3D_CANVAS define from vsprops files (it was renamed WEBGL many months ago)
        https://bugs.webkit.org/show_bug.cgi?id=85743

        Reviewed by Adam Barth.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-05-02  Eric Seidel  <eric@webkit.org>

        Resort FeatureDefinesCairo.vcprops to actually be alphabetical (in preparation for autogeneration)
        https://bugs.webkit.org/show_bug.cgi?id=85454

        Reviewed by Adam Barth.

        The PreprocessorDefinitions line is still not sorted, but I'll do that in a separate patch.
        There is no functional change in this patch.  Just moving the defines around.
        Its interesting to me that now that it's sorted and I can easily compare this with other
        ports and found that a whole bunch of defines which should be on for Cairo are off,
        likely due to Cairo simply being overlooked.  These oversights should be easy to avoid
        in an autogenerated world.

        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-05-02  Eric Seidel  <eric@webkit.org>

        Fix tabs vs. space formating in FeatureDefines.vsprops and fix alphabetical sorting
        https://bugs.webkit.org/show_bug.cgi?id=85445

        Reviewed by Adam Barth.

        I noticed this when comparing my auto-generated output for this file vs. the one
        we have checked in.  Seems we might as well fix the checked in file to be
        consistent in style with itself. :)

        * win/tools/vsprops/FeatureDefines.vsprops:

2012-04-27  Gavin Peters  <gavinp@chromium.org>

        Add new ENABLE_LINK_PRERENDER define to control the Prerendering API
        https://bugs.webkit.org/show_bug.cgi?id=84871

        Reviewed by Adam Barth.

        Prerendering is currently covered by the ENABLE_LINK_PREFETCH macro, but the new Prerendering
        API separates it from prefetching.  Having separate include guards lets ports enable prefetching,
        a relatively easy change, without needing to build the infrastructure for prerendering, which
        is considerably more complicated.

        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-04-10  Adam Barth  <abarth@webkit.org>

        Limit -apple- and -khtml- to ENABLE(DASHBOARD_SUPPORT)
        https://bugs.webkit.org/show_bug.cgi?id=83256

        Reviewed by Eric Seidel.

        * win/tools/vsprops/FeatureDefines.vsprops:

2012-04-09  Beth Dakin  <bdakin@apple.com>

        <rdar://problem/11214796>

        New WKSI will hopefully fix a common crash seen by the bots in libRIP.A.dylib: 
        symmetric_convolve

        Reviewed by Simon Fraser.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

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

        <rdar://problem/10912476> HiDPI: Have canvas use a hidpi backing store, but downsample upon access

        Reviewed by Sam Weinig.

        * win/tools/vsprops/FeatureDefines.vsprops: Added ENABLE_HIGH_DPI_CANVAS.

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

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

        Reviewed by Kent Tamura.

        * win/tools/vsprops/FeatureDefines.vsprops: Disabled ENABLE_DATALIST.

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

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

        Reviewed by Kent Tamura.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-03-20  Steve Falkenburg  <sfalken@apple.com>

        Disable LTCG on Windows to avoid out of process space errors while linking
        https://bugs.webkit.org/show_bug.cgi?id=81714

        Reviewed by Jessie Berlin.

        * win/tools/vsprops/production.vsprops:

2012-03-14  Jer Noble  <jer.noble@apple.com>

        Wrong icon to restore to windowed mode in full screen video panel
        https://bugs.webkit.org/show_bug.cgi?id=70437

        Reviewed by Eric Carlson.

        * WebKitSystemInterface.h: Added WKMediaUIPartExitFullscreenButton.
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

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

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

        Reviewed by Adam Barth.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-03-12  Enrica Casucci  <enrica@apple.com>

        WebKit2: remove NSPasteboard access for promised data from the WebProcess
        https://bugs.webkit.org/show_bug.cgi?id=80073

        * WebKitSystemInterface.h: Touched the file to make build system happy.
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

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

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

        Reviewed by Adam Barth.

        Prep for b80472: Update API for Web Notifications
        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-03-09  Ashod Nakashian  <ashodnakashian@yahoo.com>

        Bash scripts should support LF endings only
        https://bugs.webkit.org/show_bug.cgi?id=79509

        Reviewed by David Kilzer.

        * win/tools/scripts/feature-defines.sh: Modified property svn:eol-style.

2012-03-05  Sam Weinig  <sam@webkit.org>

        Fix the SnowLeoaprd build.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2012-03-05  Sam Weinig  <sam@webkit.org>

        Update WebKitSystemInterface for WKCAContext additions.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

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

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

        Reviewed by Adam Barth.

        Add ENABLE_SCRIPTED_SPEECH.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-03-01  Nikolas Zimmermann  <nzimmermann@rim.com>

        Unreviewed, rolling out r109255.
        http://trac.webkit.org/changeset/109255
        https://bugs.webkit.org/show_bug.cgi?id=79932

        Breaks rounded rects with dashed strokes in SVG

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2012-02-29  Tim Horton  <timothy_horton@apple.com>

        Make use of CG rounded-rect primitives
        https://bugs.webkit.org/show_bug.cgi?id=79932
        <rdar://problem/9274953>

        Reviewed by Simon Fraser.

        Add wkCGPathAddRoundedRect.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2012-02-28  Jer Noble  <jer.noble@apple.com>

        Full screen video volume slider has "progress bar"
        https://bugs.webkit.org/show_bug.cgi?id=79812

        Reviewed by Eric Carlson.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2012-02-28  Simon Fraser  <simon.fraser@apple.com>

        Update WebKitSystemInterface.

        Reviewed by Sam Weinig.
        
        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2012-02-28  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Add an experimental SPI for plug-ins to enter sandbox
        https://bugs.webkit.org/show_bug.cgi?id=79709

        This pulls a lot of WKSI changes at once, because the script that updates it didn't
        work for a while.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

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

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

        Reviewed by Ojan Vafai.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-02-06  Matthew Delaney  <mdelaney@apple.com>

        toDataURL() uses stale data after putImageData()
        https://bugs.webkit.org/show_bug.cgi?id=65767

        Added WKCGContextResetClip for use in reseting clip for new putByteArray method.

        Reviewed by Chris Marrin.
        
        * WebKitSystemInterface.h: Added WKCGContextResetClip.
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceLion.a:

2012-02-02  Chris Marrin  <cmarrin@apple.com>

        Turn on CSS Filters on Windows
        https://bugs.webkit.org/show_bug.cgi?id=76667

        Turned on CSS_FILTERS for Windows

        Reviewed by Adele Peterson.

        * win/tools/vsprops/FeatureDefines.vsprops:

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

        Unreviewed, rolling out r106566.
        http://trac.webkit.org/changeset/106566
        https://bugs.webkit.org/show_bug.cgi?id=77673

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

        * win/tools/vsprops/FeatureDefines.vsprops:

2012-02-02  Chris Marrin  <cmarrin@apple.com>

        Turn on CSS Filters on Windows
        https://bugs.webkit.org/show_bug.cgi?id=76667

        Turned on CSS_FILTERS for Windows

        Reviewed by Adele Peterson.

        * win/tools/vsprops/FeatureDefines.vsprops:

2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Fix win build, by disabling ENABLE_SHADOW_DOM by default.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-01-25  Hajime Morita  <morrita@google.com>>

        ENABLE_SHADOW_DOM should be available via build-webkit --shadow-dom
        https://bugs.webkit.org/show_bug.cgi?id=76863

        Reviewed by Dimitri Glazkov.

        Added a feature flag.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2012-01-16  Brent Fulgham  <bfulgham@webkit.org>

        [WinCairo] Build correction. Switch to Apple style builds without
        the _debug postfix so that launching tools, etc., will work properly.

        * win/tools/vsprops/debug_wincairo.vsprops: Remove use of _debug in
        output files to be consistent with WebKit build/test tools.

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

        <rdar://problem/10633760> Update copyright strings

        Reviewed by Mark Rowe.

        * win/tools/scripts/COPYRIGHT-END-YEAR:

2011-12-06  Roland Steiner  <rolandsteiner@chromium.org>

        <style scoped>: disable on Windows by default
        https://bugs.webkit.org/show_bug.cgi?id=73893

        Reviewed by Andreas Kling.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-11-20  Roland Steiner  <rolandsteiner@chromium.org>

        <style scoped>: add ENABLE(STYLE_SCOPED) flag to WebKit
        https://bugs.webkit.org/show_bug.cgi?id=72848

        Reviewed by Dimitri Glazkov.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-11-14  Julien Chaffraix  <jchaffraix@webkit.org>

        Add --css-grid-layout to build-webkit and the build systems
        https://bugs.webkit.org/show_bug.cgi?id=72320

        Reviewed by Ojan Vafai.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-11-14  Tony Chang  <tony@chromium.org>

        Remove the CSS3_FLEXBOX compile time flag and enable on all ports
        https://bugs.webkit.org/show_bug.cgi?id=72196

        Reviewed by Ojan Vafai.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-11-11  Alexey Proskuryakov  <ap@apple.com>

        WebProcess should use AppSandbox style quarantine
        https://bugs.webkit.org/show_bug.cgi?id=72168
        <rdar://problem/10434292>

        Reviewed by Darin Adler.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        Added WKEnableSandboxStyleFileQuarantine().

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        Not sure why these also changed, but updating to match most recent build.

2011-11-02  Dean Jackson  <dino@apple.com>

        Add ENABLE_CSS_SHADERS flag
        https://bugs.webkit.org/show_bug.cgi?id=71394

        Reviewed by Sam Weinig.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-10-24  Michael Saboff  <msaboff@apple.com>

        WebKit doesn't build with recent changes to libdispatch
        https://bugs.webkit.org/show_bug.cgi?id=70737

        Added new WebKitSystemInterface method CreateVMPressureDispatchOnMainQueue.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-10-21  Jeff Miller  <jeffm@apple.com>

        Focus rings are too thin in HiDPI in WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=70396
        
        Rename wkSetPatternBaseCTM() to wkSetBaseCTM().

        Reviewed by Beth Dakin.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2011-10-19  Beth Dakin  <bdakin@apple.com>

        Try to fix the Chromium build.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-10-19  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=70396
        Focus rings are too thin in HiDPI in WebKit2
        -and corresponding-
        <rdar://problem/10086876>

        Reviewed by Dan Bernstein.

        Renamed an existing WebKitSystemInterface function.
        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-10-18  Adam Barth  <abarth@webkit.org>

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

        Reviewed by Eric Seidel.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-10-17  Adam Roben  <aroben@apple.com>

        Windows build fix

        Here's the error:

        5>c:\cygwin\home\buildbot\slave\win-release\build\webkitbuild\release\obj\webcore\derivedsources\jssvgpathsegcurvetoquadraticrel.cpp(128) : fatal error C1128: number of sections exceeded object file format limit : compile with /bigobj

        * win/tools/vsprops/common.vsprops: Specify /bigobj to the compiler.

2011-10-16  Adam Barth  <abarth@webkit.org>

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

        Reviewed by Eric Seidel.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-10-14  Dan Bernstein  <mitz@apple.com>

        REGRESSION (Safari 5.1 - 5.1.1): CSS nesw-resize cursor shows up as a sw-resize cursor
        https://bugs.webkit.org/show_bug.cgi?id=70081

        Reviewed by Anders Carlsson.

        * WebKitSystemInterface.h: Unrelated change, perhaps needed for bug 68478.
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-10-13  Arko Saha  <arko@motorola.com>

        Microdata: Basic implementation of document.getItems() method.
        https://bugs.webkit.org/show_bug.cgi?id=68610

        Reviewed by Ryosuke Niwa.

        Added ENABLE(MICRODATA) feature flag. Implement document.getItems() DOM API.
        Spec: http://www.whatwg.org/specs/web-apps/current-work/complete/microdata.html

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-10-12  Adam Barth  <abarth@webkit.org>

        Remove ENABLE(XHTMLMP) and associated code
        https://bugs.webkit.org/show_bug.cgi?id=69729

        Reviewed by David Levin.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-10-11  Kent Tamura  <tkent@chromium.org>

        C4481 warning should be disabled for OVERRIDE and FINAL.
        https://bugs.webkit.org/show_bug.cgi?id=69904

        Reviewed by Adam Roben.

        * win/tools/vsprops/common.vsprops: Disable C4481.

2011-10-04  Kent Tamura  <tkent@chromium.org>

        Introduce feature flags for incomplete input types
        https://bugs.webkit.org/show_bug.cgi?id=68971

        Reviewed by Hajime Morita.

        * win/tools/vsprops/FeatureDefines.vsprops:
        Add ENABLE_INPUT_TYPE_* flags. They are disabled by default.
        * win/tools/vsprops/FeatureDefinesCairo.vsprops: ditto.

2011-10-04  Scott Graham  <scottmg@chromium.org>

        Add GAMEPAD feature flag
        https://bugs.webkit.org/show_bug.cgi?id=66859

        Reviewed by Darin Fisher.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-09-26  Chris Marrin  <cmarrin@apple.com>

        Enable requestAnimationFrame on Windows
        https://bugs.webkit.org/show_bug.cgi?id=68397

        Reviewed by Simon Fraser.

        Enable REQUEST_ANIMATION_FRAME for Windows

        * win/tools/vsprops/FeatureDefines.vsprops:

2011-09-24  Adam Barth  <abarth@webkit.org>

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

        Reviewed by Eric Seidel.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-09-23  Adam Klein  <adamk@chromium.org>

        Add ENABLE_MUTATION_OBSERVERS feature flag
        https://bugs.webkit.org/show_bug.cgi?id=68732

        Reviewed by Ojan Vafai.

        This flag will guard an implementation of the "Mutation Observers" proposed in
        http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1622.html

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-09-22  Dean Jackson  <dino@apple.com>

        Add ENABLE_CSS_FILTERS
        https://bugs.webkit.org/show_bug.cgi?id=68652

        Reviewed by Simon Fraser.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-09-19  Adam Barth  <abarth@webkit.org>

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

        Reviewed by Eric Seidel.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-09-15  Adam Barth  <abarth@webkit.org>

        Rename ENABLE(DATABASE) to ENABLE(SQL_DATABASE)
        https://bugs.webkit.org/show_bug.cgi?id=68205

        Reviewed by Eric Seidel.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

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

        Remove ENABLE(SVG_AS_IMAGE) since all major ports have it on by default
        https://bugs.webkit.org/show_bug.cgi?id=68182

        Reviewed by Adam Barth.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

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

        Remove ENABLE_SVG_ANIMATION as all major ports have it on by default
        https://bugs.webkit.org/show_bug.cgi?id=68022

        Reviewed by Ryosuke Niwa.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-09-14  Eric Seidel  <eric@webkit.org>

        Remove ENABLE_SVG_USE as <use> is required by HTML5
        https://bugs.webkit.org/show_bug.cgi?id=68019

        Reviewed by Ryosuke Niwa.

        I missed a couple uses of SVG_USE in my previous patch.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-09-13  Eric Seidel  <eric@webkit.org>

        Remove ENABLE_SVG_USE as <use> is required by HTML5
        https://bugs.webkit.org/show_bug.cgi?id=68019

        Reviewed by Ryosuke Niwa.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-09-13  Eric Seidel  <eric@webkit.org>

        Remove ENABLE_SVG_FOREIGN_OBJECT as it is a required part of HTML5
        https://bugs.webkit.org/show_bug.cgi?id=68018

        Reviewed by Ryosuke Niwa.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-09-01  Tim Horton  <timothy_horton@apple.com>

        REGRESSION: Rendering artifacts on a rotated, pattern filled shape
        https://bugs.webkit.org/show_bug.cgi?id=53055
        <rdar://problem/8910917>

        Reviewed by Simon Fraser.

        Introduce wkCGPatternCreateWithImageAndTransform.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2011-08-30  Aaron Colwell  <acolwell@chromium.org>

        Add MediaSource API to HTMLMediaElement
        https://bugs.webkit.org/show_bug.cgi?id=64731

        Reviewed by Eric Carlson.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-08-24  Lucas Forschler  <lforschler@apple.com>

        Update SVN properties to help out the Windows EWS bots.
        
        Reviewed by Adam Roben.

        * win: Modified properties svn:ignore.
        * win/include: Modified property svn:ignore.
        * win/lib: Modified property svn:ignore.

2011-08-18  Beth Dakin  <bdakin@apple.com>

        Reviewed by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=66495
        Lion-specific scroller SPIs can use forward declaration instead of 
        WebKitSystemInterface

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-07-28  Dan Bernstein  <mitz@apple.com>

        WebKitSystemInterface support for
        <rdar://problem/9589433> Displaying Japanese dictionary contents in vertical orientation takes a couple of seconds

        Reviewed by Darin Adler.

        * WebKitSystemInterface.h: Added WKGetVerticalGlyphsForCharacters().
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-07-22  Jessie Berlin  <jberlin@apple.com>

        [WebKit2] Changing the cookie accept policy in Private Browsing doesn’t work.
        https://bugs.webkit.org/show_bug.cgi?id=64997

        Reviewed by Ada Chan.

        Add a wrapper around the setter for the CF HTTP cookie accept policy (since it is not
        declared in the public headers on Snow Leopard). This wrapper is not necessary for Windows.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-07-15  Pratik Solanki  <psolanki@apple.com>

        Part of https://bugs.webkit.org/show_bug.cgi?id=63674
        Get webkit to compile with USE(CFNETWORK) enabled on Mac

        Reviewed by David Kilzer.

        New WebKitSystemInterface functions for CFNetwork-based loader.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-07-12  Brent Fulgham  <bfulgham@webkit.org>

        Standardize WinCairo conditionalized code under PLATFORM macro.
        https://bugs.webkit.org/show_bug.cgi?id=64377

        Reviewed by Maciej Stachowiak.

        * win/tools/vsprops/WinCairo.vsprops: Update to comply with PLATFORM
          macro definition (WTF_PLATFORM_WIN_CAIRO)

2011-07-02  Mark Rowe  <mrowe@apple.com>

        Update the header file too.

        * WebKitSystemInterface.h:

2011-07-02  Mark Rowe  <mrowe@apple.com>

        Update WebKitSystemInterface binaries.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceLion.a: Added.
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-06-28  Brent Fulgham  <bfulgham@webkit.org>

        Unreviewed build correction.  Link to correct library for
        the zlib1.dll.

        * win/tools/vsprops/WinCairo.vsprops: Don't link to the static
        zlib.lib when building for WinCairo.

2011-06-21  MORITA Hajime  <morrita@google.com>

        Unreviewed, rolling out r89401 and r89403.
        http://trac.webkit.org/changeset/89401
        http://trac.webkit.org/changeset/89403
        https://bugs.webkit.org/show_bug.cgi?id=62970

        Breaks mac build and mistakenly enables the spellcheck API

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-06-20  MORITA Hajime  <morrita@google.com>

        Reviewed by Kent Tamura.

        Spellcheck API should be build-able.
        https://bugs.webkit.org/show_bug.cgi?id=62970

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-06-20  Pratik Solanki  <psolanki@apple.com>

        Reviewed by David Kilzer.

        HTTP pipelining functions on mac should match windows
        https://bugs.webkit.org/show_bug.cgi?id=63012

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

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

        Reviewed by Dimitri Glazkov.

        rename ENABLE_NEW_FLEXBOX to ENABLE_CSS3_FLEXBOX
        https://bugs.webkit.org/show_bug.cgi?id=62578

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

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

        Reviewed by Adam Barth.

        rename ENABLE_FLEXBOX to ENABLE_NEW_FLEXBOX
        https://bugs.webkit.org/show_bug.cgi?id=62545

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-06-10  Tony Chang  <tony@chromium.org>

        Reviewed by Ojan Vafai.

        add a compile guard ENABLE(FLEXBOX)
        https://bugs.webkit.org/show_bug.cgi?id=62049

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-06-07  Tim Horton  <timothy_horton@apple.com>

        Reviewed by Alexey Proskuryakov.

        Use correct CFURLStorageSessionRef definition on Snow Leopard
        https://bugs.webkit.org/show_bug.cgi?id=62223

        * WebKitSystemInterface.h:

2011-06-06  Alexandru Chiculita  <achicu@adobe.com>

        Reviewed by Kent Tamura.

        Add ENABLE_CSS_EXCLUSIONS support for build-webkit script
        https://bugs.webkit.org/show_bug.cgi?id=61628

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-06-06  Mihnea Ovidenie  <mihnea@adobe.com>

        Reviewed by Kent Tamura.

        Add ENABLE(CSS_REGIONS) guard for CSS Regions support
        https://bugs.webkit.org/show_bug.cgi?id=61631

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-05-25  Jer Noble  <jer.noble@apple.com>

        Reviewed by Dan Bernstein.

        30 second rewind button dysfunctional viewing trailers fullscreen.
        https://bugs.webkit.org/show_bug.cgi?id=61505

        Updated WKSI Libraries with new images for Backward buttons in default
        video controls.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-05-25  Jer Noble  <jer.noble@apple.com>

        Reviewed by Darin Adler.

        Video fails to play on Vimeo
        https://bugs.webkit.org/show_bug.cgi?id=61403

        Added functions to retrieve the resolved URL for media types supported on 
        mac.

        * WebKitSystemInterface.h:
        * WebKitSystemInterface.m:
        (WKAVAssetResolvedURL): Added.
        (WKQTMovieResolvedURL): Added.

2011-05-24  Keishi Hattori  <keishi@webkit.org>

        Reviewed by Kent Tamura.

        Disable input color. Add INPUT_COLOR feature flag. Implement input color sanitizer.
        https://bugs.webkit.org/show_bug.cgi?id=61273

        * win/tools/vsprops/FeatureDefines.vsprops: Added INPUT_COLOR feature flag.
        * win/tools/vsprops/FeatureDefinesCairo.vsprops: Added INPUT_COLOR feature flag.

2011-05-12  Jessie Berlin  <jberlin@apple.com>

        Reviewed by Darin Adler.

        [Windows WebKit2] Use cookies set in WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=60274

        Update WKSI with the changes to wkCreatePrivateStorageSession.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2011-05-11  Jessie Berlin  <jberlin@apple.com>

        Reviewed by Steve Falkenburg.

        [Windows WebKit2] Use cookies set in WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=60274

        Take 3 after rolling out KB2465367 from my system.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2011-05-11  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r86255.
        http://trac.webkit.org/changeset/86255
        https://bugs.webkit.org/show_bug.cgi?id=60660

        REGRESSION (r86255): Lots of tests crashing in
        CFWriteStreamCreateWithAllocatedBuffers on Windows 7 Release
        (WebKit2 Tests) (Requested by aroben on #webkit).

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2011-05-11  Jessie Berlin  <jberlin@apple.com>

        Reviewed by Steve Falkenburg.

        [Windows WebKit2] Use cookies set in WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=60274

        Take 3 after rolling out KB2465367 from my system.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2011-05-09  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r86075.
        http://trac.webkit.org/changeset/86075
        https://bugs.webkit.org/show_bug.cgi?id=60495

        broke windows tests (Requested by jessieberlin on #webkit).

        * win/lib/WebKitSystemInterface.lib:

2011-05-09  Jessie Berlin  <jberlin@apple.com>

        Take 2 on updating the WKSI libraries.

        * win/lib/WebKitSystemInterface.lib:

2011-05-08  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r86037.
        http://trac.webkit.org/changeset/86037
        https://bugs.webkit.org/show_bug.cgi?id=60453

        broke Windows tests (Requested by jessieberlin on #webkit).

        * win/lib/WebKitSystemInterface.lib:

2011-05-08  Jessie Berlin  <jberlin@apple.com>

        Rubber-stamped by Alice Liu.

        Update the WKSI libraries.

        * win/lib/WebKitSystemInterface.lib:

2011-05-07  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r86016.
        http://trac.webkit.org/changeset/86016
        https://bugs.webkit.org/show_bug.cgi?id=60445

        caused crashes on the WK2 Windows bots (Requested by
        jessieberlin on #webkit).

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2011-05-07  Jessie Berlin  <jberlin@apple.com>

        Reviewed by Steve Falkenburg.

        [Windows WebKit2] Use cookies set in WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=60274

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2011-05-05  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        WebKitSystemInterface part of <rdar://problem/9155590> Broken animation in iAd producer

        * WebKitSystemInterface.h: Added WKExecutableWasLinkedOnOrBeforeSnowLeopard().

2011-04-29  Jer Noble  <jer.noble@apple.com>

        Reviewed by Eric Seidel.

        Implement FULLSCREEN_API on Windows, Part 4: Enable it
        https://bugs.webkit.org/show_bug.cgi?id=59798

        * win/tools/vsprops/FeatureDefines.vsprops: Set ENABLE_FULLSCREEN_API to true.

2011-05-03  David Kilzer  <ddkilzer@apple.com>

        Part 1 of 2: <http://webkit.org/b/59838> Implement HTTP pipelining for CoreFoundation-based networking
        <rdar://problem/8924448>

        Reviewed by Adam Roben.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        (wkGetHTTPPipeliningPriority): Added declaration.
        (wkSetHTTPPipeliningMaximumPriority): Added declaration.
        (wkSetHTTPPipeliningPriority): Added declaration.
        * win/lib/WebKitSystemInterface.lib: Updated.

2011-04-28  David Levin  <levin@chromium.org>

        Reviewed by Adam Barth.

        Remove IMAGE_RESIZER related code.
        https://bugs.webkit.org/show_bug.cgi?id=59735

        * win/tools/vsprops/FeatureDefines.vsprops: Also removed WML which was missed in r85256.
        * win/tools/vsprops/FeatureDefinesCairo.vsprops: Ditto.

2011-04-28  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Maciej Stachowiak.

        Allow remote accessibility API for WK2 to build on SnowLeopard.
        <rdar://problem/9324507>

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-04-27  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Geoff Garen.

        Remove some files that are no longer relevant.

        * libWebKitSystemInterfaceTiger.a: Removed.

2011-04-23  Brent Fulgham  <bfulgham@webkit.org>

        [WinCairo] Unreviewed build change.

        Activate Geolocation API, as it will work with WinCairo assuming
        an appropriate Geolocation Provider is registered.

        * win/tools/vsprops/FeatureDefinesCairo.vsprops: Activate the
          Geolocation features.

2011-04-21  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Adam Roben.

        Add a feature define to allow <details> and <summary> to be disabled
        https://bugs.webkit.org/show_bug.cgi?id=59118
        <rdar://problem/9257045>
        
        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-04-20  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Dan Bernstein.

        Adopt QTKit API for listing and deleting file in its media cache.
        <rdar://problem/9130029> 
        https://bugs.webkit.org/show_bug.cgi?id=58795

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-04-19  Jessie Berlin  <jberlin@apple.com>

        Reviewed by Sam Weinig.

        Roll r81683 back in.

        Going to certain pages causes a download of "st.html" or "jsp.html" (news.yahoo.com, etc.)
        <rdar://problem/9139245>

        "Windows edition".

        * win/lib/WebKitSystemInterface.lib:

2011-04-15  Shishir Agrawal  <shishir@chromium.org>

        Reviewed by James Robinson.

        Add a flag to guard Page Visibility API changes.
        https://bugs.webkit.org/show_bug.cgi?id=58464

        * win/tools/vsprops/FeatureDefines.vsprops:

2011-04-14  Pratik Solanki  <psolanki@apple.com>

        Reviewed by David Kilzer.

        Set minimum priority for fast lane connections
        https://bugs.webkit.org/show_bug.cgi?id=58353

        Add WKSetHTTPPipeliningMinimumFastLanePriority.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

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

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-04-07  Anna Cavender  <annacc@chromium.org>

        Reviewed by Eric Carlson.

        Setup ENABLE(TRACK) feature define
        https://bugs.webkit.org/show_bug.cgi?id=53556

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-04-07  Andrew Scherkus  <scherkus@chromium.org>

        Revert ENABLE_TRACK patch due to compile failures.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-04-06  Dai Mikurube  <dmikurube@chromium.org>

        Reviewed by David Levin.

        Add QUOTA build flag for unified quota API
        https://bugs.webkit.org/show_bug.cgi?id=57918

        * win/tools/vsprops/FeatureDefines.vsprops: Added QUOTA build flag
        * win/tools/vsprops/FeatureDefinesCairo.vsprops: Added QUOTA build flag

2011-04-04  David Kilzer  <ddkilzer@apple.com>

        <http://webkit.org/b/57384> CFNetwork and WebCore load priorities should match

        Reviewed by Alexey Proskuryakov.

        * WebKitSystemInterface.h:
        (WKSetHTTPPipeliningMaximumPriority): Added declaration.
        (WKExtractWordDefinitionTokenRangeFromContextualString): Added
        missing declaration from r81890.
        (WKShowWordDefinitionWindow): Ditto.
        (WKHideWordDefinitionWindow): Ditto.
        * libWebKitSystemInterfaceLeopard.a: Updated.
        * libWebKitSystemInterfaceSnowLeopard.a: Updated.

2011-04-04  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Adam Roben.

        Remove unused AnalyzeWithLargeStack code from Windows build files
        https://bugs.webkit.org/show_bug.cgi?id=57771
        
        This was used for us to build with prefast automatically,
        but it is out-of-date and hasn't been used for some time.
        Removing completely for now.

        * win/tools/vsprops/common.vsprops:

2011-04-04  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Brian Weinstein.

        Fix Windows build warning.
        https://bugs.webkit.org/show_bug.cgi?id=57767

        * win/tools/vsprops/common.vsprops:

2011-04-01  Brent Fulgham  <bfulgham@webkit.org>

        [WinCairo] Unreviewed build fix.

        Define DEBUG_ALL for WinCairo debug builds so that the correct
        labeled DLLs ("*_debug.dll") are linked for testing runs.

        * win/tools/vsprops/debug_wincairo.vsprops:

2011-04-01  Timothy Hatcher  <timothy@apple.com>

        Make momentum scroll event latching work in WebKit2 on Mac.

        <rdar://problem/8751861>

        Reviewed by Darin Adler.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a: Updated to remove WKIsLatchingWheelEvent and add WKGetNSEventMomentumPhase.
        * libWebKitSystemInterfaceSnowLeopard.a: Ditto.

2011-03-30  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Adam Roben.

        Should turn off frame pointer omission (FPO) for Release (not Production) builds
        https://bugs.webkit.org/show_bug.cgi?id=54403

        Leave it enabled for Windows Production builds.
        Disabling this optimization improves stack traces for memory and performance tools like umdh and xperf.
        
        We use both /Oy- and OmitFramePointers="false" since OmitFramePointers="false" isnt' enough
        to override /O2.

        * win/tools/vsprops/release.vsprops:

2011-03-30  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Adam Roben.

        Share most vsprops between Release and Production builds in releaseproduction.vsprops
        https://bugs.webkit.org/show_bug.cgi?id=57508

        * win/tools/vsprops/release.vsprops:
        * win/tools/vsprops/releaseproduction.vsprops: Copied from WebKitLibraries/win/tools/vsprops/release.vsprops.

2011-03-30  Steve Falkenburg  <sfalken@apple.com>

        Rubber stamped by Adam Roben.

        Remove unnecessary NDEBUG define.

        * win/tools/vsprops/production.vsprops:

2011-03-30  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Adam Roben.

        Update Windows production build logic for new production configurations
        https://bugs.webkit.org/show_bug.cgi?id=57494

        * win/tools/vsprops/common.vsprops:
        * win/tools/vsprops/production.vsprops: Added.

2011-03-29  Brent Fulgham  <bfulgham@webkit.org>

        Unreviewed build change to activate MathML for WinCairo.

        * win/tools/vsprops/FeatureDefinesCairo.vsprops: Enable MathML.

2011-03-29  Jessie Berlin  <jberlin@apple.com>

        Update the WebKitSystemInterface libraries for changes in the implementation.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-03-28  Jeff Miller  <jeffm@apple.com>

        Reviewed by Adam Roben.

        Include certificate when sending a WebCore::ResourceError to UI process on Windows
        https://bugs.webkit.org/show_bug.cgi?id=57195

        Rename wkGetSSLPeerCertificateData() to wkGetSSLPeerCertificateDataBytePtr(), since it returns a void*, and
        implement wkGetSSLPeerCertificateData() to return a CFDataRef.  Add wkSetSSLPeerCertificateData() so
        WebCore::ResourceError can set the certificate in the user info dictionary.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2011-03-28  Jeff Miller  <jeffm@apple.com>

        Rubber-stamped by Adam Roben.

        Remove WebKitSystemInterface_debug.lib, it hasn't been used for a few months now.

        * win/lib/WebKitSystemInterface_debug.lib: Removed.

2011-03-25  Brent Fulgham  <bfulgham@webkit.org>

        Kick the build machines after r81977.

        * win/tools/vsprops/common.vsprops:

2011-03-22  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r81683.
        http://trac.webkit.org/changeset/81683
        https://bugs.webkit.org/show_bug.cgi?id=56872

        Crashing in some tests (Requested by weinig on #webkit).

        * win/lib/WebKitSystemInterface.lib:

2011-03-22  Sam Weinig  <sam@webkit.org>

        Reviewed by Adam Roben.

        Going to certain pages causes a download of "st.html" or "jsp.html" (news.yahoo.com, etc.)
        <rdar://problem/9139245>

        "Windows edition".

        * win/lib/WebKitSystemInterface.lib:

2011-03-22  Sam Weinig  <sam@webkit.org>

        Reviewed by Brady Eidson.

        Going to certain pages causes a download of "st.html" or "jsp.html" (news.yahoo.com, etc.)
        <rdar://problem/9139245>

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-03-17  Anders Carlsson  <andersca@apple.com>

        Add WKWindowWillOrderOffScreenNotification.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-03-14  Pratik Solanki  <psolanki@apple.com>

        Rubber-stamped by Mark Rowe.

        I checked in Intel-only version of these files in r80975. This fixes that by building all
        the correct slices - i386/x86_64/ppc for SnowLeopard and i386/x86_64/ppc/ppc64 for Leopard.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-03-13  Pratik Solanki  <psolanki@apple.com>

        Reviewed by Brady Eidson.

        Make adjustMIMETypeIfNecessary use CFNetwork directly
        https://bugs.webkit.org/show_bug.cgi?id=55912

        Add new WKSI functions needed to implement adjustMIMETypeIfNecessary.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-03-09  Jessie Berlin  <jberlin@apple.com>

        Reviewed by Adam Roben.

        Use the Cookie Storage from the Private Browsing Storage Session directly
        https://bugs.webkit.org/show_bug.cgi?id=55986

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2011-03-07  Steve Falkenburg  <sfalken@apple.com>

        Bump version.

        * win/tools/scripts/VERSION:

2011-03-06  Jessie Berlin  <jberlin@apple.com>

        Reviewed by Sam Weinig.

        WebKit2: Use CFNetwork Sessions API.
        https://bugs.webkit.org/show_bug.cgi?id=55435.

        When Private Browsing is enabled, use cookies from a in-memory Cookie Storage based on the
        Private Browsing Storage Session.

        Update WebKitSystemInterface headers and libraries with the new functions.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2011-03-04  Jessie Berlin  <jberlin@apple.com>

        Reviewed by Maciej Stachowiak.

        WebKit2: Use CFNetwork Sessions API.
        https://bugs.webkit.org/show_bug.cgi?id=55435.

        When Private Browsing is enabled, get the cached url response from the cache associated with
        the Private Browsing Storage Session.

        Update WebKitSystemInterface headers and libraries with the new functions.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2011-03-03  Jessie Berlin  <jberlin@apple.com>

        Reviewed by Adam Roben.

        WebKit2: Use CFNetwork Sessions API.
        https://bugs.webkit.org/show_bug.cgi?id=55435

        Set the Private Browsing Storage Session on requests when Private Browsing is enabled.

        Update WebKitSystemInterface headers and libraries with the new functions.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2011-03-02  Jessie Berlin  <jberlin@apple.com>

        Update WebKitSystemInterface libraries. Library changes reviewed by Darin Adler.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-03-02  Jessie Berlin  <jberlin@apple.com>

        Windows build fix. Unreviewed.

        * win/lib/WebKitSystemInterface.lib:

2011-03-02  Jessie Berlin  <jberlin@apple.com>

        Rubber-stamped by Adam Roben.

        WebKit2: Use CFNetwork Sessions API.
        https://bugs.webkit.org/show_bug.cgi?id=55435

        Add the ability to create a Private Browsing Storage Session.

        Update WebKitSystemInterface headers and libraries with the new functions.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2011-03-02  Daniel Cheng  <dcheng@chromium.org>

        Reviewed by David Levin.

        Add feature define for data transfer items
        https://bugs.webkit.org/show_bug.cgi?id=55510

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-03-02  Adam Roben  <aroben@apple.com>

        Try to force a clean build on the Windows bots

        Some of the bots are running into bogus linker errors due to MSVC's "minimal rebuild"
        feature not rebuilding files it should. See <http://queues.webkit.org/results/8076907> for
        an example.

        * win/tools/vsprops/common.vsprops: Touched to force a rebuild.

2011-03-01  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r80079.
        http://trac.webkit.org/changeset/80079
        https://bugs.webkit.org/show_bug.cgi?id=55547

        "Broke the Win debug build?" (Requested by dcheng on #webkit).

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-03-01  Daniel Cheng  <dcheng@chromium.org>

        Reviewed by David Levin.

        Add feature define for data transfer items
        https://bugs.webkit.org/show_bug.cgi?id=55510

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-03-01  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        WebKit2 needs to be made localizable
        <rdar://problem/8728860>

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-02-25  Brian Weinstein  <bweinstein@apple.com>

        Fix linking of Chromium Mac build. 

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-02-21  Brian Weinstein  <bweinstein@apple.com>

        Reviewed by Adam Roben.

        WebResourceCacheManager should be responsible for managing the CFURLCache as well
        as the WebCore memory cache.
        https://bugs.webkit.org/show_bug.cgi?id=54886
        Part of <rdar://problem/8971738>
        
        Update WebKitSystemInterface headers and libraries with new functions.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2011-02-21  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Dan Bernstein.

        Update WebKitSystemInterface.h on Mac. The header that was in the tree didn't
        match the current WebKitSystemInterface.h.

        * WebKitSystemInterface.h:

2011-02-08  Patrick Gansterer  <paroga@webkit.org>

        Reviewed by Adam Roben.

        [WIN] Add missing forward declarations in WebKitSystemInterface.h
        https://bugs.webkit.org/show_bug.cgi?id=53889

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:

2011-02-04  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Adam Roben.

        Bump Windows minimum system requirement to XPSP2
        https://bugs.webkit.org/show_bug.cgi?id=53807

        * win/tools/vsprops/common.vsprops:

2011-02-03  James Kozianski  <koz@chromium.org>

        Reviewed by Dimitri Glazkov.

        Add navigator.registerProtocolHandler behind a flag.
        https://bugs.webkit.org/show_bug.cgi?id=52609

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-02-02  Steve Lacey  <sjl@chromium.org>

        Reviewed by Eric Carlson.

        Implement basic media statistics on media elements.
        https://bugs.webkit.org/show_bug.cgi?id=53322

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2011-01-28  Anders Carlsson  <andersca@apple.com>

        Build fix.
        
        Update WKSI.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-01-26  David Kilzer  <ddkilzer@apple.com>

        <http://webkit.org/b/53192> Add experimental support for HTTP pipelining in CFNetwork
        <rdar://problem/8821760>

        Reviewed by Antti Koivisto.

        * WebKitSystemInterface.h:
            New methods added for HTTP pipelining support.
        (WKGetHTTPPipeliningPriority): Added.
        (WKSetHTTPPipeliningPriority): Added.
            Unrelated methods added after updating the header.
        (WKMakeScrollbarPainter): Added.
        (WKScrollbarPainterPaint): Added.
        * libWebKitSystemInterfaceLeopard.a: Updated.
        * libWebKitSystemInterfaceSnowLeopard.a: Updated.

2011-01-24  Jer Noble  <jer.noble@apple.com>

        Reviewed by Eric Carlson.

        REGRESSION (r72119): Audio never plays on Star Wars intro animation
        https://bugs.webkit.org/show_bug.cgi?id=52467
        
        Add wkGetQuickTimeMIMETypeList() function.
        
        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2011-01-18  Anders Carlsson  <andersca@apple.com>

        Reviewed by Darin Adler.

        Add WKPopupContextMenu.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-01-17  Adam Roben  <aroben@apple.com>

        Make it possible to both set and clear a wkCACFContext's D3D device

        Fixes <http://webkit.org/b/52587> WKCACFLayerRenderer is hard to use

        Reviewed by Chris Marrin.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2011-01-07  Chris Marrin  <cmarrin@apple.com>

        Unreviewed.

        Minor change to check for null context

        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2011-01-07  Chris Marrin  <cmarrin@apple.com>

        Unreviewed.

        Added one more API to WKSI to get the user data
        out of the CACFContext.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2011-01-07  Chris Marrin  <cmarrin@apple.com>

        Unreviewed.

        Adding updated WKSI files missed in http://trac.webkit.org/changeset/75262

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2011-01-05  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Darin Adler.

        Debug and Release builds on Windows clobber each other
        https://bugs.webkit.org/show_bug.cgi?id=49185

        Changes the structure of WebKitBuild build products directory so we
        completely separate each build configuration into independent directories.
        
        Although we previously had per-configuration directories for obj, this change adds
        per-configuration directories for bin, lib, obj, and include. Each configuration's
        build products are stored within a directory inside of WebKitBuild.
        
        Most use of $(WebKitOutputDir) in the build files has been replaced by $(ConfigurationBuildDir),
        defined in common.vsprops to be $(WebKitOutputDir)\$(ConfigurationName).

        * win/tools/vsprops/common.vsprops: 

2011-01-03  Chris Fleizach  <cfleizach@apple.com>

        Reviewed, tweaked and landed by Sam Weinig.

        WebKit2: Accessibility support (42130)
        <rdar://problem/7660629>

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2011-01-02  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Simon Fraser.

        <rdar://problem/8812159> Update copyright strings

        * win/tools/scripts/COPYRIGHT-END-YEAR:

2010-12-21  Sam Weinig  <weinig@apple.com>

        Reviewed by Anders Carlsson.

        Add serialization for CFURLRequestRef and CFURLResponseRef.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:

2010-12-14  Anders Carlsson  <andersca@apple.com>

        Reviewed by Dan Bernstein.

        Add WKGetScriptCodeFromCurrentKeyboardInputSource function.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2010-12-10  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Adam Roben.

        Add CACFContextGetLastCommitTime to WebKitSystemInterface for Windows.
        Also got rid of WebKitSystemInterface_debug.lib as recommended by
        Adam Roben. No OpenSource builds use it since r72327.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib: Removed.

2010-12-09  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.

        Cannot use NSKeyedArchiver in WK2 for ResourceResponses
        https://bugs.webkit.org/show_bug.cgi?id=50792
        <rdar://problem/8741799>

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2010-12-03  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.

        Dispatch keyboard events in the Carbon event model
        https://bugs.webkit.org/show_bug.cgi?id=50503

        Make WKGetNSEventKeyChar available in 32-bit.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2010-12-02  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.

        Plug-ins should be able to update the mouse cursor
        https://bugs.webkit.org/show_bug.cgi?id=50399

        Add WKEnableSettingCursorWhenInBackground.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2010-12-01  Adam Roben  <aroben@apple.com>

        Don't let harmless errorlevels from the "set" utility leak into
        project-specific build scripts

        When using set to unset an environment variable that didn't previously
        exist, set raises the errorlevel to 1. This was leaking into
        project-specific scripts, causing them to think the build has failed.
        We now clear the errorlevel after we finish setting environment
        variables.

        Fixes <http://webkit.org/b/50350> Windows builds mysteriously fail in
        some configurations

        Reviewed by Steve Falkenburg.

        * win/tools/vsprops/common.vsprops: Call "cmd /c" after setting
        environment variables to get rid of any errorlevel that "set" set.

2010-12-01  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Adam Roben.

        vcproj changes can't be applied cleanly by the Windows EWS bot
        https://bugs.webkit.org/show_bug.cgi?id=50328

        * win/tools/vsprops/WinCairo.vsprops: Added property svn:eol-style.
        * win/tools/vsprops/cURL.vsprops: Added property svn:eol-style.
        * win/tools/vsprops/debug_wincairo.vsprops: Added property svn:eol-style.

2010-11-29  Steve Falkenburg  <sfalken@apple.com>

        Windows build fix (part 2).
        Define Visual Studio internal variables used in pre-build/pre-link/post-build commands in environment for separated cmd files.

        * win/tools/vsprops/common.vsprops:

2010-11-19  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Adam Roben.

        Add a mechanism for Windows pre-build/pre-link/post-build events to be separated into individual cmd files
        https://bugs.webkit.org/show_bug.cgi?id=49858
        
        We're migrating our prebuild/prelink/postbuild steps out of vcproj and vsprops files:
        - To simplify editing (editing vsprops build steps is confusing).
        - For more readable diffs.
        
        To add a prebuild/prelink/postbuild step for a vcproj,
        Add a new file named {ProjectName}PreBuild|PreLink|PostBuild.cmd to the project directory.
        For example, a WTF prebuild script would be named WTFPreBuild.cmd and would be located
        in the directory JavaScriptCore/JavaScriptCore.vcproj/WTF (alongside WTF.vcproj).

        * win/tools/vsprops/common.vsprops:
        * win/tools/vsprops/release.vsprops:

2010-11-29  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig and Simon Fraser.

        WebKitSystemInterface.h piece of r72438.

        * WebKitSystemInterface.h:

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

        Use paths relative to $WebKitVSPropsRedirectionDir to access shared .vsprops files

        Apple's Windows build allows placing header files and import libraries for WebKit's
        dependencies (CoreGraphics, CFNetwork, SQLite, etc.) outside the source tree via the
        $WebKitLibrariesDir environment variable. This is both required for production builds and
        convenient for Apple-internal developer builds. Apple's production builds also require that
        WebKit's shared .vsprops files be accessed relative to $WebKitLibrariesDir. In production
        builds, the files are copied into that directory tree by the
        WebKitLibraries/win/tools/WinTools.make file. In Apple-internal developer builds, the
        copying is done by
        JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make.

        This .vsprops copying is problematic in one very important case: when a developer updates
        their source tree and then tries to build. Visual Studio only reads .vsprops files when a
        project is first loaded. So, when Visual Studio is first opened after the .vsprops files are
        updated, it reads in the old files that were already residing in $WebKitLibrariesDir. When a
        build is started, JavaScriptCoreGenerated.make copies the new .vsprops files into
        $WebKitLibrariesDir, but Visual Studio will not pick up the changes.  The rest of the build
        will proceed with out-of-date .vsprops files, which will likely result in a build failure.

        To fix this, we now use normal relative paths to access the .vsprops files in the source
        tree rather than in $WebKitLibrariesDir, but prefix those paths with a new environment
        variable, $WebKitVSPropsRedirectionDir. In developer builds, this environment variable is
        unset, so the normal relative paths are used to read the .vsprops files out of the source
        tree directly. In production builds, this environment variable is set to a fake directory
        that will cause the .vsprops files in $WebKitLibrariesDir to be found when the relative path
        is resolved.
        
        For example, JavaScriptCore.vcproj uses this path for FeatureDefines.vsprops:

        $(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops

        In developer builds, where $WebKitVSPropsRedirectionDir is unset, this will point to the
        files in WebKitLibraries\win\tools\vsprops in the source tree. In production builds,
        JavaScriptCore.make sets $WebKitVSPropsRedirectionDir to
        "$(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\1\2\3\", so the full path for
        FeatureDefines.vsprops becomes:

        $(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\1\2\3\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops

        which resolves to:

        $(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops

        (We rely on the fact that Windows doesn't care whether the directories "1", "2", and "3"
        actually exist since they are matched by an equal number of ".." path components.)

        Note that Visual Studio still won't pick up changes made to .vsprops files while Visual
        Studio is open, but that problem hasn't seemed to cause developers many headaches so far.

        Fixes <http://webkit.org/b/49181> Windows build fails mysteriously when .vsprops files are
        updated

        Reviewed by Dave Hyatt.

        * win/tools/WinTools.make: Copy the shared .vsprops files into a directory tree beneath
        AppleInternal\tools\vsprops that matches the source directory tree. This allows production
        builds to redirect the relative paths used to find the shared .vsprops files into
        AppleInternal by setting $WebKitVSPropsRedirectionDir to the appropriate value.

2010-11-18  Steve Falkenburg  <sfalken@apple.com>

        Rubber-stamped by Adam Roben.

        Remove unused debug_internal vsprops file.

        * win/tools/vsprops/debug_internal.vsprops: Removed.

2010-11-18  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Adam Roben.

        Debug_Internal Windows configuration is unnecessary, should be removed
        https://bugs.webkit.org/show_bug.cgi?id=49753

        * win/tools/vsprops/debug.vsprops:
        * win/tools/vsprops/debug_internal.vsprops:

2010-11-17  Steve Falkenburg  <sfalken@apple.com>

        Rubber-stamped by Adam Roben.

        Update WebKitSystemInterfaceWin.

        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

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

        Ignore files from libdispatch/zlib

        Rubber-stamped by Eric Seidel.

        * win/include: Modified property svn:ignore.
        * win/lib: Modified property svn:ignore.

2010-11-10  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by David Hyatt.

        HTML5 Ruby support should be mandatory feature
        https://bugs.webkit.org/show_bug.cgi?id=49272

        Remove Ruby as optional feature.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2010-10-29  Dan Bernstein  <mitz@apple.com>

        Snow Leopard PowerPC build fix.

        * libWebKitSystemInterfaceSnowLeopard.a:

2010-10-29  Dan Bernstein  <mitz@apple.com>

        Leopard PowerPC build fix.

        * libWebKitSystemInterfaceLeopard.a:

2010-10-29  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Adam Roben and David Kilzer.

        Fix and cleanup of build systems
        https://bugs.webkit.org/show_bug.cgi?id=48342

        Remove unnecessary ENABLE_SANDBOX.
        Add missing features to converge to FeatureDefines.xcconfig.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2010-10-28  Dan Bernstein  <mitz@apple.com>

        Reviewed by John Sullivan.

        Added UniCharProvider-based ways to create a CTTypeSetter and a CTLine, to be used in an
        upcoming ComplexTextController patch.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2010-10-28  Ivan Krstić  <ike@apple.com>

        Reviewed by Mark Rowe.

        Remove unused experimental proxied panel interface.
        <rdar://problem/7237059>

        * WebKitSystemInterface.h:

2010-10-27  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.

        Find indicators do not bounce
        https://bugs.webkit.org/show_bug.cgi?id=48490
        <rdar://problem/8564276>

        Add bounce animation context functions.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2010-10-26  Adam Roben  <aroben@apple.com>

        Fix duplicate vsprops name

        * win/tools/vsprops/FeatureDefinesCairo.vsprops: Renamed to
        "FeatureDefinesCairo" to match the filename.

2010-10-23  Alexey Proskuryakov  <ap@apple.com>

        Windows build fix.

        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:
        
2010-10-23  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Anders Carlsson.

        https://bugs.webkit.org/show_bug.cgi?id=48083
        <rdar://problem/8489082> Need WebKit2 API for private browsing (48083)

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:
        Updated WebKitSystemInterface with necessary methods.

2010-10-22  Adam Roben  <aroben@apple.com>

        Turn on ENABLE_3D_RENDERING on all Windows builds

        Reviewed by Sam Weinig.

        * win/tools/vsprops/FeatureDefines.vsprops:

2010-10-20  Adam Roben  <aroben@apple.com>

        Windows build fix

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:
        Use a WKCFURLCredentialRef type to protect against changes to the
        definition of CFURLCredentialRef.

2010-10-19  Adam Roben  <aroben@apple.com>

        Windows build fix

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h: Check in
        this file that I meant to check in in r70129.

2010-10-19  Adam Roben  <aroben@apple.com>

        Add WKCACFContext and related functions

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

        Reviewed by Sam Weinig.

        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2010-10-14  Ada Chan  <adachan@apple.com>

        Rubber-stamped by Adam Roben.

        Fix Windows build.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2010-10-14  Ada Chan  <adachan@apple.com>

        Reviewed by Steve Falkenburg.

        Add wkGetSSLCertificateChainContext for fetching the certificate chain.
        Needed for https://bugs.webkit.org/show_bug.cgi?id=47603.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2010-10-11  Mike Thole  <mthole@apple.com>

        Reviewed by Darin Adler.

        Rename WKCertificateInfoGetPeerCertificates() to WKCertificateInfoGetCertificateChain()
        https://bugs.webkit.org/show_bug.cgi?id=47495

        * WebKitSystemInterface.h: 
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

2010-10-03  Brent Fulgham  <bfulgham@webkit.org>

        Unreviewed build fix.

        WinCairo also needs access to the <inttypes.h> header requirement
        introduced by Bug 46357.

        * win/tools/vsprops/WinCairo.vsprops:

2010-09-17  Sam Weinig  <sam@webkit.org>

        Reviewed, tweaked, and landed by Anders Carlsson.

        Add WKCopyNSURLResponsePeerCertificates.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

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

        Reviewed by Jian Li.

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

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2010-09-09  Jer Noble  <jer.noble@apple.com>

        Reviewed by Eric Carlson.

        Adopt shared control drawing for <video> controls on Windows
        https://bugs.webkit.org/show_bug.cgi?id=45490

        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2010-09-10  Anders Carlsson  <andersca@apple.com>

        WebKitSystemInterface part of:
        Set the visible name for the web process
        https://bugs.webkit.org/show_bug.cgi?id=45564
        <rdar://problem/8416970>

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:

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

        Reviewed by David Levin.

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

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2010-08-04  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        WebKitSystemInterface part of: Allow the language for hyphenation to be specified
        https://bugs.webkit.org/show_bug.cgi?id=43467

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2010-08-03  Beth Dakin  <bdakin@apple.com>

        Reviewed by Alice Liu.

        Enable MathML on Windows.

        * win/tools/vsprops/FeatureDefines.vsprops:

2010-07-30  Adam Roben  <aroben@apple.com>

        Roll our r64361 and r64363

        We can't make these changes until QuartzCore.lib is included in
        WebKitSupportLibrary.

2010-07-30  Adam Roben  <aroben@apple.com>

        Add WKCACFContext and related functions

        Also added some functions used by WKCAImageQueue.

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

        Reviewed by Sam Weinig.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

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

        Reviewed by Ojan Vafai.

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

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2010-07-12  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Sam Weinig.

        Update WebKitSystemInterface.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2010-07-12  Adam Roben  <aroben@apple.com>

        Stop generating stripped symbols for Release builds

        It turns out we can strip the symbols after-the-fact using PDBCopy.

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

        Reviewed by Steve Falkenburg.

        * win/tools/vsprops/release.vsprops: Removed the StripPrivateSymbols
        attribute, which caused link.exe to generate a stripped PDB file for
        each project.

2010-07-08  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Dan Bernstein.

        Update WebKitSystemInterface.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2010-07-07  Dumitru Daniliuc  <dumi@chromium.org>

        Reviewed by Adam Roben.

        Disable MSVC warning 4288.
        https://bugs.webkit.org/show_bug.cgi?id=41804

        MSVC has a non-standard extension that allows variables declared
        in for-loops to remain visible in the same scope even after
        exiting the for-loop
        (http://msdn.microsoft.com/en-us/library/bk5hc10s.aspx). The /Ze
        option (turned on by default) enables all MSVC extensions, and
        /Zc:forScope- tells the compiler to issue a C4288 warning when the
        same variable is declared in the for-loop and re-declared later in
        the same scope.

        There seems to be a bug in VS2005 that erroneously enables
        /Zc:forScope- even when that option is not specified
        (http://connect.microsoft.com/VisualStudio/feedback/details/338010/bogus-compiler-warning-c4288). Looks
        like our build got hit by that bug, so we need to disable warning
        4288 to fix it.

        * win/tools/vsprops/common.vsprops:

2010-07-01  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Sam Weinig.

        <rdar://problem/8154047>
        
        Update WebKitSystemInterface, making some functions used by
        WebKit2 available in 32-bit (for reals this time).

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2010-07-01  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Sam Weinig.

        <rdar://problem/8154047>
        
        Update WebKitSystemInterface, making some functions used by
        WebKit2 available in 32-bit.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

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

        Reviewed by Kent Tamura.

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

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2010-06-27  Steve Falkenburg  <sfalken@apple.com>

        Windows (Cairo) build fix.
        Add missing ENABLE_WEB_TIMING feature define.

        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2010-06-27  Steve Falkenburg  <sfalken@apple.com>

        Windows build fix.
        Disable ENABLE_WEB_TIMING on Windows.

        * win/tools/vsprops/FeatureDefines.vsprops:

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

        Reviewed by Dimitri Glazkov.

        Add a VS macro for enabling Web Timing support.
        https://bugs.webkit.org/show_bug.cgi?id=38924

        * win/tools/vsprops/FeatureDefines.vsprops:

2010-06-21  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Update WebKitSystemInterface.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2010-06-21  Dan Bernstein  <mitz@apple.com>

        Speculative build fix.

        * WebKitSystemInterface.h:

2010-06-21  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        WebKitSystemInterface part of CSS3: Implement the 'hyphens' and 'hyphenate-character' properties
        https://bugs.webkit.org/show_bug.cgi?id=10228

        * WebKitSystemInterface.h: Added WKGetHyphenationLocationBeforeIndex().
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

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

        Reviewed by Steve Block.

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

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

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

        Reviewed by David Levin.

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

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2010-05-24  Jer Noble  <jer.noble@apple.com>

        No review; build fix only.
        
        Roll-out changes r60110.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2010-05-24  Jer Noble  <jer.noble@apple.com>

        No review; build fix only.

        Roll-out changes r60094, 60096-60097.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2010-05-23  Jer Noble  <jer.noble@apple.com>

        Reviewed by Eric Carlson.

        HTML5 <video> tag performance worse than Flash
        https://bugs.webkit.org/show_bug.cgi?id=39577
        rdar://problem/7982458

        Added WebKitSystemInterface calls for new CAImageQueue APIs.
        
        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2010-05-20  Steve Block  <steveblock@google.com>

        Reviewed by Jeremy Orlow.

        Provide bindings for DeviceOrientation
        https://bugs.webkit.org/show_bug.cgi?id=39210

        Adds ENABLE_DEVICE_ORIENTATION to VisualStudio project files, always disabled.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2010-04-09  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Maciej Stachowiak.

        https://bugs.webkit.org/show_bug.cgi?id=24572
        XMLHttpRequest.statusText returns always "OK" on Mac

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2010-04-07  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Steve Falkenburg.

        Remove QuartzCoreInterface from the build
        
        No longer needed since QuartzCore.dll is now included in  the latest Safari release (4.0.5).

        * win/bin/QuartzCoreInterface.dll: Removed.
        * win/include/QuartzCoreInterface: Removed.
        * win/include/QuartzCoreInterface/QuartzCoreInterface.h: Removed.
        * win/lib/QuartzCoreInterface.lib: Removed.

2010-04-02  Jer Noble  <jer.noble@apple.com>

        Reviewed by Eric Carlson.
        
        https://bugs.webkit.org/show_bug.cgi?id=36624

        Update WebKitSystemInterface

        * WebKitSystemInterface.h: add WKQTMovieSelectPreferredAlternates.
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

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

        Reviewed by Dmitry Titov.

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

        Adds ENABLE_FILE_READER and ENABLE_FILE_WRITER feature flags
        for FileReader and FileWriter support.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2010-03-25  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Dan Bernstein.

        Update WebCoreSQLite3 to SQLite v3.6.12.

        * WebCoreSQLite3/sqlite3.h:
        * WebCoreSQLite3/sqlite3ext.h:
        * libWebCoreSQLite3.a:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2010-03-23  Dan Bernstein  <mitz@apple.com>

        Reviewed by John Sullivan.

        WebKitSystemInterface part of
        <rdar://problem/7197736> Plug-in clip rect does not update when overflow
        clip changes
        https://bugs.webkit.org/show_bug.cgi?id=36479.

        * WebKitSystemInterface.h: Added WKSyncSurfaceToView().
        * libWebKitSystemInterfaceSnowLeopard.a: Updated

2010-03-16  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        Fix incorrect glyph advances when using the Core Graphics (non-GDI) glyph look.

        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2010-03-15  Andy Estes  <aestes@apple.com>

        Reviewed by John Sullivan.

        Added two new output arguments to WKGetWheelEventDeltas() to return
        the number of scroll wheel ticks in the x and y directions.

        https://bugs.webkit.org/show_bug.cgi?id=29601.
        <rdar://problem/7453254>

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2010-03-14  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        WebKitSystemInterface part of removing support for legacy versions of Core Graphics

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h: Removed
        wkCanCreateCGFontWithLOGFONT(), wkSetFontPlatformInfo(), wkAddFontsInDirectory(),
        wkAddFontsAtPath(), wkAddFontsFromRegistry(), wkAddFontsFromPlist(), and
        wkCreateFontsPlist().
        * win/lib/WebKitSystemInterface.lib: Updated.
        * win/lib/WebKitSystemInterface_debug.lib: Updated.

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

        Reviewed by Dmitry Titov.

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

        Add ENABLE_BLOB_SLICE feature define.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

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

        Reviewed by David Levin.

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

        * win/tools/vsprops/FeatureDefines.vsprops:

2010-02-18  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Dan Bernstein.

        WebKit on Windows needs a mechanism to listen for WM_SETTINGCHANGED messages
        https://bugs.webkit.org/show_bug.cgi?id=35076

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib: Updated to add wkSystemFontSmoothingChanged.
        * win/lib/WebKitSystemInterface_debug.lib: Updated to add wkSystemFontSmoothingChanged.

2010-02-16  Gavin Barraclough  <barraclough@apple.com>

        Reviewed by NOBODY (Build fix).

        Disable warnings preventing use of anonymous structs/onions -
        don't take all my fun toys away, these are useful & awesome!

        * win/tools/vsprops/common.vsprops:

2010-02-11  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Eric Seidel.

        Turn back on SVG Filters on Windows, as they were accidentally disabled and cause
        test breakage.

        * win/tools/vsprops/FeatureDefines.vsprops:

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

        Reviewed by Cameron Zwarich.

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

        * win/tools/vsprops/FeatureDefines.vsprops:

2010-02-04  Mark Rowe  <mrowe@apple.com>

        Reviewed by Steve Falkenburg.

        Update auto-version.sh to better handle major version numbers with fewer than three digits,
        and the case when WEBKITLIBRARIESDIR is not set.

        * win/tools/scripts/auto-version.sh:

2010-02-04  Steve Falkenburg  <sfalken@apple.com>

        Windows build fix for projects not defining WebKitLibrariesDir.

        * win/tools/scripts/auto-version.sh:

2010-02-03  Dan Bernstein  <mitz@apple.com>

        Reviewed by Anders Carlsson.

        Fixed a bug where WKSetNSURLConnectionDefersCallbacks(true) did not defer callbacks during modal dialogs.

        * libWebKitSystemInterfaceLeopard.a:

2010-02-02  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Darin Adler.

        Copyright year updating for Windows version resources should be automatic
        https://bugs.webkit.org/show_bug.cgi?id=34503

        * win/tools/scripts/auto-version.sh:

2010-02-02  Martin Robinson  <mrobinson@webkit.org>

        Unreviewed build fix.

        The WinCairo build requires this script to be executable.

        * win/tools/scripts/feature-defines.sh: Added property svn:executable.

2010-01-29  Mark Rowe  <mrowe@apple.com>

        Keep the Windows feature defines in sync with FeatureDefines.xcconfig.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2010-01-26  Alexey Proskuryakov  <ap@apple.com>

        More Windows build fixing.

        * win/tools/vsprops/common.vsprops: Disable warning C4180 (qualifier applied to function
        type has no meaning; ignored). This is a known bug - MSVC tries to compile a wrong
        specialization sometimes - but it's not instantiated, so it's harmless.

2010-01-22  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=34025
        Enable client-based Geolocation abstraction for Mac, Windows AppleWebKit targets.

        * win/tools/vsprops/FeatureDefines.vsprops:
        * win/tools/vsprops/FeatureDefinesCairo.vsprops:

2010-01-20  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Darin Adler and Adam Roben.

        Feature defines are difficult to maintain on Windows builds
        https://bugs.webkit.org/show_bug.cgi?id=33883
        
        FeatureDefines.vsprops are now maintained in a way similar to
        Configurations/FeatureDefines.xcconfig, with the added advantage
        of having a single FeatureDefines file across all projects.
        
        Keep this list of features (not enabled/disabled state) in sync with
        FeatureDefines.xcconfig files in JavaScriptCore, WebCore, and WebKit.
        
        Add new features to both PreprocessorDefinitions and UserMacro sections.
        Set any ENABLE_FEATURE_NAME macro to an empty string to disable that feature.

        * win/tools/scripts/feature-defines.sh: Added.
        * win/tools/vsprops/FeatureDefines.vsprops: Added.
        * win/tools/vsprops/FeatureDefinesCairo.vsprops: Added.
        * win/tools/vsprops/WinCairo.vsprops: Removed ENABLE_FILTERS. Now set in FeatureDefinesCairo.vsprops.

2010-01-13  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/7532544>
        
        Expose new method on WebKitSystemInterface, WKGetUserToBaseCTM(), which will
        be used for a shadow drawing fix. Once more, with feeling. On Windows.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2010-01-13  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/7532544>
        
        Expose new method on WebKitSystemInterface, WKGetUserToBaseCTM(), which will
        be used for a shadow drawing fix.
        
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2010-01-13  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/7532544>
        
        Expose new method on WebKitSystemInterface, WKGetUserToBaseCTM(), which will
        be used for a shadow drawing fix.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2010-01-07  Alexey Proskuryakov  <ap@apple.com>

        Not reviewed, build fix.

        Windows buid fix - disable warning 4251 (class needs to have dll-interface to be used by
        clients of another class). WebCore doesn't use all methods of JSString, so
        we don't export all classes clients could theoretically access via JSString.

        * win/tools/vsprops/common.vsprops:

2009-12-21  Mark Rowe  <mrowe@apple.com>

        Reviewed by Samuel Weinig.

        Update WebKitSystemInterface.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-12-21  Mark Rowe  <mrowe@apple.com>

        Reviewed by Samuel Weinig.

        Update WebKitSystemInterface.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-12-18  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Update WebKitSystemInterface for <rdar://problem/7237059>.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-12-15  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adam Roben.

        WebKitSystemInterface part of <rdar://problem/7173515> Use LOGFONT support in
        Core Graphics when available

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h: Declared
            wkCanCreateCGFontWithLOGFONT().
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2009-12-12  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Darin Adler.

       <rdar://problem/7453726> Pull shared UI code into WebKit

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-12-11  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Adam Roben.

        Add QuartzCore build files to OpenSource tree
        https://bugs.webkit.org/show_bug.cgi?id=31856
        
        This allows proper building and linking with QuartzCore
        when present.

        * win/bin: Added.
        * win/bin/QuartzCoreInterface.dll: Added.
        * win/include/QuartzCoreInterface: Added.
        * win/include/QuartzCoreInterface/QuartzCoreInterface.h: Added.
        * win/lib/QuartzCoreInterface.lib: Added.

2009-12-07  Adam Roben  <aroben@apple.com>

        Windows build fix for checkouts with a space in the path

        * win/tools/scripts/auto-version.sh: Quote the output file's directory
        before passing it to mkdir.

2009-12-01  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=32036
        Implement CredentialStorage::getFromPersistentStorage for CFNetwork

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:
        Update WebKitSystemInterface.

2009-11-24  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Brady Eidson.

        https://bugs.webkit.org/show_bug.cgi?id=31844
        SocketStreamHandleCFNet should support CONNECT proxy credentials

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:
        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:
        Update WebKitSystemInterface.

2009-11-22  Dan Bernstein  <mitz@apple.com>

        Reviewed by Eric Carlson.

        Updated WebKitSystemInterface.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-11-22  Dan Bernstein  <mitz@apple.com>

        Reviewed by Cameron Zwarich.

        Fixed a leak in WKDrawMediaUIPart().

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-11-20  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/7414396> Leopard & Tiger: Support closed caption in <video> element

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-11-19  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/7035231>
        Support closed caption in <video> element

        * WebKitSystemInterface.h:
            Add prototypes for WKQTMovieHasClosedCaptions and WKQTMovieSetShowClosedCaptions,
            define WKMediaUIPartToggleClosedCaptionsButton.

2009-11-13  Anders Carlsson  <andersca@apple.com>

        Reviewed by Dan Bernstein.

        Update WebKitSystemInterface.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-11-13  Brent Fulgham  <bfulgham@webkit.org>

        Build correction.  No review.

        The WinCairo build requires ENABLE_FILTERS to work properly.

        * win/tools/vsprops/WinCairo.vsprops:

2009-11-02  Dan Bernstein  <mitz@apple.com>

        Reviewed by John Sullivan.

        WebKitSystemInterface part of making the appearance of the full-screen video HUD match
        QuickTime Player X’s HUD.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-10-26  Mark Rowe  <mrowe@apple.com>

        Reviewed by Adam Roben.

        Clean up the regex madness in auto-version.sh to make it obvious what the script is doing.

        Also teaches auto-version.sh to handle RC_PROJECTSOURCEVERSION that has more than three digits
        in the major component of the version number.

        * win/tools/scripts/auto-version.sh:

2009-10-19  Marshall Culpepper  <mculpepper@appcelerator.com>

        Reviewed by Eric Seidel.

        added cairo include and lib directories to debug_wincairo.vsprops
        https://bugs.webkit.org/show_bug.cgi?id=29831

        * win/tools/vsprops/debug_wincairo.vsprops:

2009-10-16  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=30456
        Fixes for new Debug_All Windows build configuration.

        * win/tools/vsprops/debug_all.vsprops:
        Define DEBUG_ALL in Debug_All configuration.
        Continue to define USE_DEBUG_SAFARI_THEME for open source SafariTheme header usage.

2009-10-16  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Adam Roben.

        Add a Debug_All configuration to build entire stack as debug.
        Change Debug_Internal to:
        - stop using _debug suffix for all WebKit/Safari binaries
        - not use _debug as a DLL naming suffix
        - use non-debug C runtime lib.

        * win/tools/vsprops/debug_all.vsprops: Added.
        Use debug C runtime library in debug_all.
        Specify USE_DEBUG_SAFARI_THEME to get "_debug" suffix for debug_all.
        * win/tools/vsprops/debug_internal.vsprops:
        Don't specify debug C runtime library in debug_internal.
        Don't specify _debug suffix for standard debug_internal builds.

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
        
        New methods required for video fullscreen.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-10-02  Steve Falkenburg  <sfalken@apple.com>

        Windows build fix.
        Re-apply lost changes to auto-version.sh.
        
        * win/tools/scripts/auto-version.sh:

2009-10-02  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Adam Roben.

        <rdar://problem/7271334> 
        Rename MediaControllerThemeQT to MediaControllerThemeQuickTime

        * WebKitSystemInterface.h: 
        MediaControllerThemeQT -> MediaControllerThemeQuickTime

2009-10-02  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Mark Rowe.

        <https://bugs.webkit.org/show_bug.cgi?id=29989>
        Safari version number shouldn't be exposed in WebKit code
        
        For a WebKit version of 532.3.4:
        Product version is: 5.32.3.4 (was 4.0.3.0)
        File version is: 5.32.3.4 (was 4.532.3.4)

        * win/tools/scripts/PRODUCTVERSION: Removed.
        * win/tools/scripts/auto-version.sh: Re-worked script to remove references to PRODUCTVERSION.

2009-09-25  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adam Roben.

        WebKitSystemInterface changes for
        <rdar://problem/7211635> 2 byte characters are displayed as garbaged
        <rdar://problem/7212626> garbled/gibberish text (off-by-one)

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h: Added
        wkAddFontsFromPlistRepresentation() and replaced
        wkCreateFontsPlistRepresentation() with wkCreateFontsPlist() and
        wkAddFontsFromPlistRepresentation() with wkAddFontsFromPlist().
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2009-09-23  Marshall Culpepper  <mculpepper@appcelerator.com>

        Reviewed by Eric Seidel.
        
        Added $(WebKitLibrariesDir)/include/cairo so cairo.h is found by
        default when the necessary dependencies are extracted into the
        WebKitLibrariesDir.
        https://bugs.webkit.org/show_bug.cgi?id=29661

        * win/tools/vsprops/WinCairo.vsprops:

2009-09-09  Brent Fulgham  <bfulgham@webkit.org>

        Reviewed by Dave Levin.

        Adjust WinCairo-specific property sheet to use static versions of
        libjpeg.lib and libpng.lib.  Change to libpng.lib required addition
        of zlib.lib to link.

        * win/tools/vsprops/WinCairo.vsprops:

2009-08-28  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Adam Roben.

        Define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1
        to automatically use secure versions of C runtime lib calls on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=28824
        
        * win/tools/vsprops/common.vsprops:

2009-08-25  Brent Fulgham  <bfulgham@webkit.org>

        Rubber stamped by Steve Falkenburg.

        debug_wincairo.vsprops was linking against wrong C runtime.

        * win/tools/vsprops/debug_wincairo.vsprops: Link to correct
          C runtime (as in the standard 'debug.vsprops' file.)

2009-08-24  Brent Fulgham  <bfulgham@webkit.org>

        Reviewed by Steve Falkenburg.

        Revise CFLite Debug build to emit DLL's with _debug label.
        https://bugs.webkit.org/show_bug.cgi?id=28695.

        * win/tools/vsprops/debug_wincairo.vsprops: Added.

2009-08-12  Peter Kasting  <pkasting@google.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=27323
        Change pattern that strips all trailing whitespace to just remove EOL
        chars (\r, \n), to make it clear that varying EOL chars is the primary
        problem being solved.

        * win/tools/scripts/auto-version.sh:

2009-08-10  Peter Kasting  <pkasting@google.com>

        Reviewed by George Staikos.

        https://bugs.webkit.org/show_bug.cgi?id=27323
        Even more line ending-stripping for auto-version.sh, based on output
        provided by Jessie Berlin.

        * win/tools/scripts/auto-version.sh:

2009-08-10  Brent Fulgham  <bfulgham@webkit.org>

        Reviewed by Adam Roben.

        https://bugs.webkit.org/show_bug.cgi?id=28048.
        Move various WinCairo build settings into *.vsprops file.

        * win/tools/vsprops/cURL.vsprops: Added.

2009-08-06  Peter Kasting  <pkasting@google.com>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=27323
        Strip line endings at all points auto-version.sh reads data, not just
        the one I happened to run into.

        * win/tools/scripts/auto-version.sh:

2009-07-27  Peter Kasting  <pkasting@google.com>

        Reviewed by Adam Roben.

        https://bugs.webkit.org/show_bug.cgi?id=27323
        Correctly parse command output, even when the line endings are not LF,
        so that we don't create an autoversion.h that MSVC chokes on.

        * win/tools/scripts/auto-version.sh:

2009-07-13  Brent Fulgham  <bfulgham@webkit.org>

        Reviewed by Adam Roben.

        Add new configuration flag for redistributable Windows build.
        https://bugs.webkit.org/show_bug.cgi=27087
        
        * win/tools/vsprops/WinCairo.vsprops: Added.  Defines the
          new WIN_CAIRO flag used to drive non-Apple Windows build.

2009-07-10  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        Update WebKitSystemInterface for <rdar://problem/7049066>.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-07-06  Eric Carlson  <eric.carlson@apple.com>

        Update WebKitSystemInterface for <rdar://problem/7008093>.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-07-06  Anders Carlsson  <andersca@apple.com>

        Update WebKitSystemInterface.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-07-02  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Simon Fraser.

        Update WebKitSystemInterface for <rdar://problem/6518119>

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-07-01  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        Update WebKitSystemInterface for <rdar://problem/7014990>

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-06-29  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        Update WebKitSystemInterface for <rdar://problem/7014813>

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-06-25  Simon Fraser  <simon.fraser@apple.com>

        Rubber-stamped by Mark Rowe.
        
        <rdar://problem/6999737>
        
        Update the media controller images.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-06-16  Simon Fraser  <simon.fraser@apple.com>

        Rubber-stamped by Anders Carlsson.

        Update WebKitSystemInterface for <rdar://problem/6937882>.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-06-02  Anders Carlsson  <andersca@apple.com>

        Rubber-stamped by Mark Rowe.

        Update WebKitSystemInterface.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-05-27  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Dan Bernstein.

        Update WebKitSystemInterface.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a: Added.
        * libWebKitSystemInterfaceTiger.a:

2009-05-26  Anders Carlsson  <andersca@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/6901751> 
        REGRESSION (r35515): Tiger crash painting the selection on registration page of car2go.com

        Remove WKCGContextIsSafeToClip.
        
        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceTiger.a:

2009-05-21  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Mark Rowe.

        - correct a copyright header accidently reverted in r43964

        * WebKitSystemInterface.h:

2009-05-21  Dan Bernstein  <mitz@apple.com>

        Reviewed by Anders Carlsson.

        - WebKitSystemInterface part of <rdar://problem/6901751> REGRESSION
          (r35515): Tiger crash painting the selection on registration page of
          car2go.com

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceTiger.a:

2009-05-07  Simon Fraser  <simon.fraser@apple.com>

        Source changes reviewed by Darin Adler
        
        <rdar://problem/6864091> Endcap of media controls slider is fuzzy
        
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-04-28  Steve Falkenburg  <sfalken@apple.com>

        Fix extraneous warning about AnalyzeWithLargeStack not being defined in Windows builds.
        Indirected definition through a UserMacro.
        
        Reviewed by Mark Rowe.

        * win/tools/vsprops/common.vsprops:

2009-04-28  Steve Falkenburg  <sfalken@apple.com>

        Fix extraneous warning about PRODUCTION not being defined in Windows builds.
        Indirected definition for __PRODUCTION__ through a UserMacro.
        
        Reviewed by Mark Rowe.

        * win/tools/vsprops/common.vsprops:

2009-04-24  Simon Fraser  <simon.fraser@apple.com>

        Source changes reviewed by Darin Adler
        
        https://bugs.webkit.org/show_bug.cgi?id=22242
        
        Update WebKitSystemInterface for Mac with fixes for video controller drawing.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-04-22  Ada Chan  <adachan@apple.com>

        Update WebKitSystemInterface with new method that maps CFNetwork error code to localized description.
        
        Reviewed by Darin Adler.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2009-04-20  Steve Falkenburg  <sfalken@apple.com>

        Separate JavaScriptCore.dll from WebKit.dll.
        Slight performance improvement or no change on benchmarks.
        
        Allows us to break a circular dependency between CFNetwork and WebKit on Windows,
        and simplifies standalone JavaScriptCore builds.

        Reviewed by Oliver Hunt.

        * win/tools/vsprops/common.vsprops: Add BUILDING_{project} preprocessor define.

2009-04-18  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Mark Rowe.

        <rdar://problem/6781295> video.buffered and video.seekable are not
        the same. video.buffered should return only what is buffered and
        not what is seekable

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-04-18  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Adele Peterson.
        
        <rdar://problem/6747241> work around QTKit no longer reaching
        QTMovieLoadStateComplete

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-04-15  Steve Falkenburg  <sfalken@apple.com>

        Updated WebKitSystemInterface for Windows.
        Changes needed for <rdar://problem/6785760>

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2009-04-14  Mark Rowe  <mrowe@apple.com>

        Update WebKitSystemInterface so that the Tiger portion supports PowerPC.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-04-13  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin Adler.
        
        <rdar://problem/6740294> Increase the connection count per host

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-04-10  Eric Carlson  <eric.carlson@apple.com>

        WebKitSystemInterface changes for <rdar://problem/6646998>

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-04-10  Simon Fraser  <simon.fraser@apple.com>

        Fix the leopard build by updating WebKitSystemInterface.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:

2009-03-30  Steve Falkenburg  <sfalken@apple.com>

        Bump version to 530.

        * win/tools/scripts/VERSION:

2009-03-26  Adam Roben  <aroben@apple.com>

        Remove SafariThemeConstants.h, which is now provided by
        WebKitSupportLibrary

        * win/include/SafariTheme: Removed.
        * win/include/SafariTheme/SafariThemeConstants.h: Removed.

2009-03-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Mark Rowe.

        - WebKitSystemInterface part of removing build-time and run-time support
          for legacy versions of CFNetwork and Core Graphics

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2009-01-30  Dan Bernstein  <mitz@apple.com>

        Reviewed by Timothy Hatcher.

        - <rdar://problem/6545912> expose the build number in autoversion.h

        * win/tools/scripts/auto-version.sh: Added a #define __BUILD_NUMBER__
        with the full build number.

2009-01-08  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adam Roben.

        - WebKitSystemInterface changes to support Core Graphics native glyph drawing

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2008-11-11  Ada Chan  <adachan@apple.com>

        Fix: https://bugs.webkit.org/show_bug.cgi?id=22187
        Bug 22187: CLEARTYPE_QUALITY flag is not supported on Win2000
        
        Update window versions to correspond to Windows XP.

        Reviewed by Steve Falkenburg.

        * win/tools/vsprops/common.vsprops:

2008-10-23  Anders Carlsson  <andersca@apple.com>

        Reviewed by John Sullivan.

        Fix <rdar://problem/6306513> by adding a workaround for <rdar://problem/6304600>.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2008-10-08  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Jon Honeycutt.

        Remove restriction on version number ending in a 4.

        * win/tools/scripts/auto-version.sh:

2008-10-07  Anders Carlsson  <andersca@apple.com>

        Reviewed by Mitz Pettel.

        Update WebKitSystemInterface.
        
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2008-09-09  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - WebKitLibraries part of <rdar://problem/6206244> Use alternate character-to-glyph interface on Leopard

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:

2008-09-04  Adam Roben  <aroben@apple.com>

        Ignore warning LNK4221 on Windows

        This warning is emitted when an object file with no public symbols is
        passed to the linker/librarian. This often occurs in WebCore for files
        that have been disabled via ENABLE()/USE() macros.

        Rubberstamped by Anders Carlsson.

        * win/tools/vsprops/common.vsprops: Ignore warning LNK4221.

2008-08-27  Timothy Hatcher  <timothy@apple.com>

        Adds the WKAdvanceDefaultButtonPulseAnimation function.

        <rdar://problem/6173530> Add Mac support for -webkit-appearance: default-button

        Reviewed by Adele Peterson.

        * WebKitSystemInterface.h: Added WKAdvanceDefaultButtonPulseAnimation.
        * libWebKitSystemInterfaceLeopard.a: Updated.
        * libWebKitSystemInterfaceTiger.a: Updated.

2008-08-26  Adam Roben  <aroben@apple.com>

        Disable a truncation warning that is disabled/doesn't exist on Mac

        This warning was firing when initializing floats from double literals.
        I haven't yet found any other situation that would cause this warning
        to arise.

        Reviewed by Sam Weinig.

        * win/tools/vsprops/common.vsprops: Turn off warning C4305.

2008-07-20  Steve Falkenburg  <sfalken@apple.com>

        Build fix.

        * win/tools/vsprops/common.vsprops:

2008-07-08  Dan Bernstein  <mitz@apple.com>

        Reviewed by John Sullivan.

        - WebKitSystemInterface part of <rdar://problem/6008409> Need a way to disable updates in offscreen views

        * WebKitSystemInterface.h: Added WKWindowWillOrderOnScreenNotification.
        * libWebKitSystemInterfaceLeopard.a: Updated.
        * libWebKitSystemInterfaceTiger.a: Updated.

2008-07-01  Steve Falkenburg  <sfalken@apple.com>

        Bump version numbers.
        
        Reviewed by Mark Rowe.

        * win/tools/scripts/PRODUCTVERSION:
        * win/tools/scripts/VERSION:

2008-05-13  Dan Bernstein  <mitz@apple.com>

        Reviewed by John Sullivan.

        - WebKitSystemInterface support for <rdar://problem/5725912> improve render quality of transformed text

        * libWebKitSystemInterfaceLeopard.a: Improved glyph positioning in
        transformed graphics contexts.
        * win/include/WebKitSystemInterface/WebKitSystemInterface.h: Added
        wkSetCGContextFontRenderingStyle().
        * win/lib/WebKitSystemInterface.lib: Updated.
        * win/lib/WebKitSystemInterface_debug.lib: Updated.

2008-05-09  Adam Roben  <aroben@apple.com>

        Disable a MSVC warning

        Reviewed by Darin Adler.

        * win/tools/vsprops/common.vsprops: Add warning 4503 to the list of
        disabled warnings. It's a warning about decorated names being longer
        than MSVC's limit of 4096 characters. This warning doesn't indicate a
        correctness problem, but these truncated decorated names will be
        harder to recognize during debugging or when they appear in linker
        errors.

2008-04-28  Darin Adler  <darin@apple.com>

        Reviewed by Adam.

        - fix Windows build

        * win/tools/vsprops/common.vsprops: Add warning 4344 to the list of disabled warnings.
        It's really a warning about a bug they fixed in MSVC -- not helpful to us in WebKit.

2008-04-24  Mark Rowe  <mrowe@apple.com>

        Reviewed by Sam Weinig.

        Remove code for calculating the glyph cache size.

        * WebKitSystemInterface.h: Remove unused symbol.
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2008-03-28  Steve Falkenburg  <sfalken@apple.com>

        Versioning.

        * win/tools/scripts/PRODUCTVERSION:

2008-03-26  Adam Roben  <aroben@apple.com>

        Windows build fix after r31322

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h: Updated.
        * win/lib/WebKitSystemInterface.lib: Updated.
        * win/lib/WebKitSystemInterface_debug.lib: Updated.

2008-03-26  Mark Rowe  <mrowe@apple.com>

        Reviewed by David Hyatt.

        Make the Ahem font antialias correctly on Acid3 on Tiger.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceTiger.a:

2008-03-19  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Sam Weinig.

        Fix http://bugs.webkit.org/show_bug.cgi?id=17816.
        Bug 17816: libWebCoreSQLite3.a is 2-architecture universal binary (not 4-architecture)

        * libWebCoreSQLite3.a:  Land a 4-way fat binary.

2008-03-12  Steve Falkenburg  <sfalken@apple.com>

        New version of WebKitSystemInterface.lib with
        more compiler warnings suppressed.

        * win/lib/WebKitSystemInterface.lib:
        * win/tools/vsprops/common.vsprops:

2008-03-12  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler and Sam Weinig.

        - <rdar://problem/4433248> use CoreText API instead of SPI on Leopard

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:

2008-03-11  Steve Falkenburg  <sfalken@apple.com>

        Disable two PGO/LTCG specific warnings.
        
        Reviewed by Oliver.

        * win/tools/vsprops/common.vsprops:

2008-02-29  Mark Rowe  <mrowe@apple.com>

        Update Tiger version of WebKitSystemInterface to match r30690.

        * libWebKitSystemInterfaceTiger.a:

2008-02-29  Adele Peterson  <adele@apple.com>

        Reviewed by Mark.

        Auto-generate image arrays.

        * libWebKitSystemInterfaceLeopard.a:

2008-02-29  Mark Rowe  <mrowe@apple.com>

        Reviewed by Anders Carlsson.

        Replace use of WKPathFromFont with implementation in terms of public API.

        * WebKitSystemInterface.h:  Remove unused symbol.
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2008-02-29  Mark Rowe  <mrowe@apple.com>

        Reviewed by Oliver Hunt.

        Fix spelling of "request" in name of WKNSURLProtocolClassForRequest.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2008-02-29  Mark Rowe  <mrowe@apple.com>

        Reviewed by Oliver Hunt.

        Don't use WKSupportsMultipartXMixedReplace on Leopard as multipart/x-mixed-replace is always handled by NSURLRequest.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:

2008-02-29  Mark Rowe  <mrowe@apple.com>

        Reviewed by Oliver Hunt and Oliver Hunt.

        <rdar://problem/4753845> WebKit should use CGEventSourceSecondsSinceLastEventType in place of WKSecondsSinceLastInputEvent SPI.

        * WebKitSystemInterface.h:  Remove unused symbol.
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2008-02-28  Mark Rowe  <mrowe@apple.com>

        Reviewed by Dan Bernstein.

        Remove two unused functions from WebKitSystemInterface.

        * WebKitSystemInterface.h:  Remove WKPreferRGB32Key and WKGetDefaultGlyphForChar as they are unused. Also remove
        a duplicate declaration of WKSecondsSinceLastInputEvent.
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2008-02-28  Mark Rowe  <mrowe@apple.com>

        Reviewed by Dave Hyatt.

        Make use of new CGFont APIs on Leopard rather than making a WebKitSystemInterface call.

        * WebKitSystemInterface.h:  Only declare WKGetFontMetrics on Tiger.
        * libWebKitSystemInterfaceLeopard.a:  Update for removal of WKGetFontMetrics.

2008-02-27  Brady Eidson  <beidson@apple.com>

        Tiger build fix

        * libWebKitSystemInterfaceTiger.a:

2008-02-27  Brady Eidson  <beidson@apple.com>

        Reviewed by Mark Rowe

        Removed some unused methods:
        WKGetNSURLResponseCalculatedExpiration
        WKGetNSURLResponseMustRevalidate

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2008-02-13  Adam Roben  <aroben@apple.com>

        * win/tools/scripts/auto-version.sh: Removed a redundant symbol.

2008-02-12  Adam Roben  <aroben@apple.com>

        Clean up auto-version.sh a bit

        It now does quite a bit less file I/O and many fewer fork/exec pairs.
        It's also quite a bit easier to read.

        Reviewed by Steve.

        * win/tools/scripts/auto-version.sh:

2008-02-12  Steve Falkenburg  <sfalken@apple.com>

        Versioning script change.

        * win/tools/scripts/auto-version.sh:

2008-02-07  Ada Chan  <adachan@apple.com>

        Added 4 new methods:
        wkSetClientCertificateInSSLProperties, 
        wkCanAccessCFURLRequestHTTPBodyParts,
        wkCFURLRequestCopyHTTPRequestBodyParts,
        wkCFURLRequestSetHTTPRequestBodyParts

        Rubber-stamped by Steve.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2008-02-04  Timothy Hatcher  <timothy@apple.com>

        <rdar://problem/5722735> Merge fix for SQLITE_FULL error
        is given even if the max_page_count is increased (2920)

        * libWebCoreSQLite3.a:

2008-02-01  Steve Falkenburg  <sfalken@apple.com>

        <rdar://problem/5717523> Don't set DEP opt-in flag (data execution prevention) since it is incompaible with the video plugin used on CNN.com
        
        Rubber-stamped by Jon Honeycutt.

        * win/tools/vsprops/common.vsprops:

2008-01-29  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        <rdar://problem/5600926> WebCore on Tiger must link to its own copy of SQLite 3.4 or newer (so HTML database behavior will be correct).

        * WebCoreSQLite3/sqlite3.h: Added.
        * WebCoreSQLite3/sqlite3ext.h: Added.
        * libWebCoreSQLite3.a: Added.

2008-01-29  Alexey Proskuryakov  <ap@webkit.org>

        Debug (external) build fix.

        Removed _DEBUG preprocessor definition, which indicates that debug libraries are used (while they aren't).
        This preprocessor definition is automatically set by Visual Studio as needed anyway.

        * win/tools/vsprops/debug.vsprops:

2008-01-17  Steve Falkenburg  <sfalken@apple.com>

        Add preprocessor define accidently dropped in my unification,
        and required by some builds.  Fixes an issue that caused both
        debug and release DLLs to be loaded.
        
        Rubber-stamped by Jon Honeycutt.

        * win/tools/vsprops/debug_internal.vsprops:

2008-01-16  Steve Falkenburg  <sfalken@apple.com>

        Use recommended security-related compiler settings.
        
        Reviewed by Adam.

        * win/tools/vsprops/common.vsprops:

2008-01-16  Steve Falkenburg  <sfalken@apple.com>

        Build fix.

        * win/tools/vsprops/release.vsprops:

2008-01-15  Adele Peterson  <adele@apple.com>

        Reviewed by Adam and Antti.

        Updated libraries for <rdar://problem/5619062> Add load progress indicator to video controls

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:
        * win/include/SafariTheme: Added.
        * win/include/SafariTheme/SafariThemeConstants.h: Added. Placeholder empty header until we release an updated WebKitSupportLibrary.

2008-01-14  Steve Falkenburg  <sfalken@apple.com>

        Use shared vsprops for most vcproj properties.
        
        Reviewed by Darin Adler.

        * win/tools/vsprops/common.vsprops:
        * win/tools/vsprops/debug.vsprops:
        * win/tools/vsprops/debug_internal.vsprops:
        * win/tools/vsprops/release.vsprops:

2008-01-11  Steve Falkenburg  <sfalken@apple.com>

        Share common files across projects.
        
        Unify vsprops files
        Debug:          common.vsprops, debug.vsprops
        Debug_Internal: common.vsprops, debug.vsprops, debug_internal.vsprops
        Release:        common.vsprops, release.vsprops
        
        Shared properties can go into common.vsprops, shared debug settings can go into debug.vsprops.
        debug_internal.vsprops will be mostly empty except for file path prefix modifiers.

        Moved auto-version.sh, VERSION, PRODUCTVERSION to tools.

        Reviewed by Adam Roben.

        * win/tools/WinTools.make:
        * win/tools/scripts: Added.
        * win/tools/scripts/PRODUCTVERSION: Added.
        * win/tools/scripts/VERSION: Added.
        * win/tools/scripts/auto-version.sh: Copied from WebCore/WebCore.vcproj/auto-version.sh.
        * win/tools/vsprops/debug.vsprops:
        * win/tools/vsprops/debug_internal.vsprops: Added.
        * win/tools/vsprops/release.vsprops:

2008-01-11  Steve Falkenburg  <sfalken@apple.com>

        Add shared vsprops to help unify our Windows tools settings.

        Reviewed by Hyatt.

        * win/tools: Added.
        * win/tools/WinTools.make: Added.
        * win/tools/vsprops: Added.
        * win/tools/vsprops/common.vsprops: Added.
        * win/tools/vsprops/debug.vsprops: Added.
        * win/tools/vsprops/release.vsprops: Added.

2008-01-07  Mark Rowe  <mrowe@apple.com>

        Update Tiger library to a G3-friendly version.

        * libWebKitSystemInterfaceTiger.a:

2008-01-07  Adele Peterson  <adele@apple.com>

        Reviewed by Antti, Adam, and Mitz.

        WebKitLibraries part of fix for 
        <rdar://problem/5619073> Updated look for <video> controls
        <rdar://problem/5619057> Add volume control to video controls

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2008-01-03  Mark Rowe  <mrowe@apple.com>

        Update Tiger library to a G3-friendly version.

        * libWebKitSystemInterfaceTiger.a:

2008-01-03  Adele Peterson  <adele@apple.com>

        Update libraries for <rdar://problem/4106190> Include "Where from" metadata in drag-and-dropped images

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2007-12-21  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Dan Bernstein.

        Fix http://bugs.webkit.org/show_bug.cgi?id=16549.
        Bug 16549: WebKit nightly build failing to launch on PowerPC G3s

        * libWebKitSystemInterfaceTiger.a: Update to a G3-friendly version.

2007-12-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - updated system interface for fixing <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2007-11-27  John Sullivan  <sullivan@apple.com>

        Fixed 5614525, caused by a recent bug in WKGetExtensionsForMIMEType
        that affects Safari.
        
        reviewed by Kevin Decker

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2007-11-26  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam Roben.

        Bug 16137: Web Inspector window on Leopard should have a unified toolbar and window title
        http://bugs.webkit.org/show_bug.cgi?id=16137

        Add a new function to make bottom window corners square for textured windows.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceTiger.a:
        * libWebKitSystemInterfaceLeopard.a:

2007-11-23  Adam Roben  <aroben@apple.com>

        Add wkSetPatternPhaseInUserSpace to WebKitSystemInterface on Windows

        Reviewed by Tim.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h: Added
        declaration.
        * win/lib/WebKitSystemInterface.lib: Updated.
        * win/lib/WebKitSystemInterface_debug.lib: Updated.

2007-11-16  Anders Carlsson  <andersca@apple.com>

        Reviewed by Adam.

        <rdar://problem/5603832>
        XMLHttpRequest readyState 3 & responseText buffer issues.

        Add wkSetCFURLRequestShouldContentSniff.
        
        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2007-11-05  Antti Koivisto  <antti@apple.com>

        Reviewed by Sam.
        
        Update WKQTMovieViewSetDrawSynchronously.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2007-11-02  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin Adler.
        
        Update to add WKQTMovieViewSetDrawSynchronously

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2007-10-26  Adele Peterson  <adele@apple.com>

        Reviewed by Tim Hatcher.

        Updating header too for WKDrawCapsLockIndicator.

        * WebKitSystemInterface.h:

2007-10-26  Adele Peterson  <adele@apple.com>

        Reviewed by Oliver.

        Adding WKDrawCapsLockIndicator in preparation for fixing the caps lock indicator.

        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2007-10-25  Adam Roben  <aroben@apple.com>

        Add wkSetPatternBaseCTM.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2007-10-25  Sam Weinig  <sam@webkit.org>

        Fix the windows build.

        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2007-10-25  Timothy Hatcher  <timothy@apple.com>

        Add WKSetPatternBaseCTM.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2007-10-25  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam.

        Update the Leopard WebKitSystemInterface to be 4-way univeral to include 64-bit.

        * libWebKitSystemInterfaceLeopard.a:

2007-10-25  Sam Weinig  <sam@webkit.org>

        Added wrapper for getting the foundation cache directory.

        Reviewed by Adam Roben.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2007-10-24  Adam Roben  <aroben@apple.com>

        Added some font-related functions needed for <rdar://5549919>

        Reviewed by Ada.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2007-10-24  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Mark Rowe.

        <rdar://problem/5069711> OpenSource version of libWebKitSystemInterface.a is Tiger only, causes issues if used on Leopard

        Add system specific versions of WebKitSystemInterface.

        * libWebKitSystemInterface.a: Removed.
        * libWebKitSystemInterfaceLeopard.a: Added.
        * libWebKitSystemInterfaceTiger.a: Added.

2007-10-11  Ada Chan  <adachan@apple.com>

        <rdar://problem/5534421>
        Added wkGetDefaultHTTPCookieStorage().  Updated libraries.

        Reviewed by Darin Adler.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2007-09-27  Sam Weinig  <sam@webkit.org>

        Build fix. Ran update-webkitsysteminterface script on Tiger, because
        the resulting binary differs when built on Tiger.

        * libWebKitSystemInterface.a:

2007-09-27  David Hyatt  <hyatt@apple.com>

        Update WebKitSYstemInterface for @font-face changes.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2007-09-18  Geoffrey Garen  <ggaren@apple.com>

        Build fix. Ran update-webkitsysteminterface script on Tiger, because
        the resulting binary differs when built on Tiger. See 
        <rdar://problem/5490613>.

        * libWebKitSystemInterface.a:

2007-09-18  Geoffrey Garen  <ggaren@apple.com>

        Build fix. Ran update-webkitsysteminterface script.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2007-08-28  Anders Carlsson  <andersca@apple.com>

        Add WKSetNSURLRequestShouldContentSniff.
        
        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2007-08-28  Ada Chan  <adachan@apple.com>

        <rdar://problem/4876242> Added SPI to fetch SSL certificate information.
        Updated libraries.
        
        Reviewed by Adam.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2007-07-23  Ada Chan  <adachan@apple.com>

        Reviewed by Steve.
        
        Update WebKitSystemInterface.{h,lib}.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2007-07-19  Ada Chan  <adachan@apple.com>

        Rubber-stamped by Adam.
        
        Update libraries.

        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2007-07-06  Adam Roben  <aroben@apple.com>

        Update WebKitSystemInterface.{h,lib} for <rdar://problem/5301994>

        Reviewed by Alice.

        * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
        * win/lib/WebKitSystemInterface.lib:
        * win/lib/WebKitSystemInterface_debug.lib:

2007-06-29  Antti Koivisto  <antti@apple.com>

        Reviewed by Maciej.
        
        Added WKQTMovieDataRate and WKQTMovieMaxTimeLoaded

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2007-03-29  Beth Dakin  <bdakin@apple.com>

        Rubber-stamped by Adam.

        Keep OpenSource building.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2007-03-28  Antti Koivisto  <antti@apple.com>

        Update libWebKitSystemInterface, previous version was out of date.

        * libWebKitSystemInterface.a:

2007-03-27  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin Adler.
        
        Added wkGetWheelEventDeltas

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

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

        Build fix.  Rebuild against 10.4 SDK.

        * libWebKitSystemInterface.a:

2007-03-06  Kevin Decker  <kdecker@apple.com>

        Reviewed by Brady

        Fixed: <rdar://problem/4126976> private keys imported by WebKit should not be accessible by all applications

        * libWebKitSystemInterface.a:

2007-02-21  Anders Carlsson  <acarlsson@apple.com>

        Add new version with WKCGContextIsBitmapContext.
        
        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2006-12-16  Adele Peterson  <adele@apple.com>

        Reviewed by Adam.

        WebKitLibraries part of fix for:
        <rdar://problem/4463829> Switch to use new search field implementation for <input type="search">

        Added wkDrawTextFieldCellFocusRing.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2006-10-11  Darin Adler  <darin@apple.com>

        Reviewed by John Sullivan.

        * WebKitSystemInterface.h: Updated to a C++-compatible version.

2006-08-31  Adele Peterson  <adele@apple.com>

        Reviewed by John Sullivan.

        Removed wkSecureEventInput and wkSetSecureEventInput, since this can be done with API.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2006-08-30  Adele Peterson  <adele@apple.com>

        Reviewed by Hyatt.

        Updated for http://bugs.webkit.org/show_bug.cgi?id=10575
        Enable secure input mode for new password fields

        * WebKitSystemInterface.h: Added WKSetSecureEventInput and WKSecureEventInput;
        * libWebKitSystemInterface.a:

2006-07-09  Anders Carlsson  <acarlsson@apple.com>

        Reviewed by Darin Adler.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:
        Add WKPathFromFont.
        
2006-07-05  Adele Peterson  <adele@apple.com>

        Reviewed by Maciej and Hyatt.

        * WebKitSystemInterface.h: Updated.
        * libWebKitSystemInterface.a: Updated.

2006-06-16  Adele Peterson  <adele@apple.com>

        Reviewed by Alice.

        * WebKitSystemInterface.h: Added WKDrawBezeledTextArea().
        * libWebKitSystemInterface.a: ditto.

2006-04-01  Eric Seidel  <eseidel@apple.com>

        * libWebKitSystemInterface.a: commit a universal binary.

2006-04-01  Darin Adler  <darin@apple.com>

        Reviewed by Beth.

        * libWebKitSystemInterface.a: Changed alpha in the focus-ring drawing
        code to use the system default alpha.

2006-03-17  Eric Seidel  <eseidel@apple.com>

        * libWebKitSystemInterface.a: commit a universal binary.

2006-03-17  Adele Peterson  <adele@apple.com>

        * WebKitSystemInterface.h: Added WKDrawBezeledTextFieldCell()
        * libWebKitSystemInterface.a: ditto

2006-02-28  John Sullivan  <sullivan@apple.com>

        * WebKitSystemInterface.h: Removed WKMouseIsDown()
        * libWebKitSystemInterface.a: ditto

2006-02-23  Timothy Hatcher  <timothy@apple.com>

        New build to fix the i386 arch. (The _cuEnc64 symbol was missing.)

        * libWebKitSystemInterface.a:

2006-02-19  Darin Adler  <darin@apple.com>

        * WebKitSystemInterface.h: Added WKDrawFocusRing.
        * libWebKitSystemInterface.a: Ditto.

2006-02-06  John Sullivan  <sullivan@apple.com>

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:
        removed WKExecutableLinkedInTigerOrEarlier

2005-11-01  Darin Adler  <darin@apple.com>

        * libWebKitSystemInterface.a: Updated.

2005-10-04  Maciej Stachowiak  <mjs@apple.com>

        - updated

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2005-09-08  Justin Garcia  <justin.garcia@apple.com>

        * WebKitSystemInterface.h: Update to latest
        * libWebKitSystemInterface.a: ditto

2005-09-04  Darin Adler  <darin@apple.com>

        * WebKitSystemInterface.h: Update to latest
        * libWebKitSystemInterface.a: Ditto.

2005-08-07  Darin Adler  <darin@apple.com>

        * libWebKitSystemInterface.a: Universal binary.
        * WebKitSystemInterface.h: Updated for calls that Eric recently removed.

2005-07-01  John Sullivan  <sullivan@apple.com>

        - added WKExecutableLinkedInTigerOrEarlier

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2005-06-06  Maciej Stachowiak  <mjs@apple.com>

        - updated for crashing bugfix

        * libWebKitSystemInterface.a:

2005-06-06  Maciej Stachowiak  <mjs@apple.com>

        - updated

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2005-06-06  Maciej Stachowiak  <mjs@apple.com>

        - updated

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2005-06-06  Maciej Stachowiak  <mjs@apple.com>

        - updated

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2005-06-06  Maciej Stachowiak  <mjs@apple.com>

        - updated

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2005-06-06  Maciej Stachowiak  <mjs@apple.com>

        - updated

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2005-06-06  Maciej Stachowiak  <mjs@apple.com>

        - updated

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2005-06-06  Maciej Stachowiak  <mjs@apple.com>

        - updated

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2005-06-06  Maciej Stachowiak  <mjs@apple.com>

        - updated

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2005-06-05  Maciej Stachowiak  <mjs@apple.com>

        - added a few more bits of SPI

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2005-06-05  Maciej Stachowiak  <mjs@apple.com>

        - added file type and NSURLResponse caching SPI

        * WebKitSystemInterface.h:
        * libWebKitSystemInterface.a:

2005-06-05  Maciej Stachowiak  <mjs@apple.com>

        - initial checkin of WebKitSystemInterface binary

        * WebKitSystemInterface.h: Added.
        * libWebKitSystemInterface.a: Added.

