2021-09-24  Jonathan Bedard  <jbedard@apple.com>

        [iOS 15] Support building WebKit (Part 3)
        https://bugs.webkit.org/show_bug.cgi?id=227002
        <rdar://problem/79316598>

        Reviewed by Ryan Haddad.

        * WebKitPrivateFrameworkStubs/iOS/15/VisionKitCore.framework/VisionKitCore.tbd: Added.

2021-07-07  Tim Horton  <timothy_horton@apple.com>

        Add WKHoverPlatter and some knobs to tweak its appearance
        https://bugs.webkit.org/show_bug.cgi?id=227735
        <rdar://problem/79198262>

        Reviewed by Sam Weinig.

        * WebKitPrivateFrameworkStubs/appletvos/14/PrototypeTools.framework/PrototypeTools.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/15/PrototypeTools.framework/PrototypeTools.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/PrototypeTools.framework/PrototypeTools.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/15/PrototypeTools.framework/PrototypeTools.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/PrototypeTools.framework/PrototypeTools.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/8/PrototypeTools.framework/PrototypeTools.tbd: Added.

2021-06-16  Wenson Hsieh  <wenson_hsieh@apple.com>

        [watchOS] Reenable modern text input UI for non-numeric text input types
        https://bugs.webkit.org/show_bug.cgi?id=226988
        rdar://78102953

        Reviewed by Tim Horton.

        * WebKitPrivateFrameworkStubs/watchos/7/PepperUICore.framework/PepperUICore.tbd:
        * WebKitPrivateFrameworkStubs/watchos/8/PepperUICore.framework/PepperUICore.tbd:

2021-06-15  Jonathan Bedard  <jbedard@apple.com>

        [tvOS 15] Support building WebKit
        https://bugs.webkit.org/show_bug.cgi?id=227037
        <rdar://problem/79354143>

        Reviewed by Alex Christensen.

        * WebKitPrivateFrameworkStubs/appletvos/15/AppSupport.framework/AppSupport.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/15/CorePrediction.framework/CorePrediction.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/15/FileProvider.framework/FileProvider.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/15/GraphicsServices.framework/GraphicsServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/15/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/15/RunningBoardServices.framework/RunningBoardServices.tbd: Added.

2021-06-15  Jonathan Bedard  <jbedard@apple.com>

        [iOS 15] Support building WebKit (Part 2)
        https://bugs.webkit.org/show_bug.cgi?id=227002
        <rdar://problem/79316598>

        Reviewed by Alex Christensen.

        * WebKitPrivateFrameworkStubs/iOS/15/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd: Added.

2021-06-15  Jonathan Bedard  <jbedard@apple.com>

        [watchOS 8] Support building WebKit
        https://bugs.webkit.org/show_bug.cgi?id=227050
        <rdar://problem/79365320>

        Reviewed by Tim Horton.

        * WebKitPrivateFrameworkStubs/watchos/8/AppSupport.framework/AppSupport.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/8/CorePrediction.framework/CorePrediction.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/8/FileProvider.framework/FileProvider.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/8/GraphicsServices.framework/GraphicsServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/8/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/8/PepperUICore.framework/PepperUICore.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/8/RunningBoardServices.framework/RunningBoardServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/8/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/8/URLFormatting.framework/URLFormatting.tbd: Added.

2021-06-15  Jonathan Bedard  <jbedard@apple.com>

       [iOS 15] Support building WebKit
        https://bugs.webkit.org/show_bug.cgi?id=227002
        <rdar://problem/79316598>

        Reviewed by Tim Horton.

        * WebKitPrivateFrameworkStubs/iOS/15/AppSupport.framework/AppSupport.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/15/AuthKit.framework/AuthKit.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/15/BackBoardServices.framework/BackBoardServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/15/CorePrediction.framework/CorePrediction.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/15/GraphicsServices.framework/GraphicsServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/15/RunningBoardServices.framework/RunningBoardServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/15/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/15/URLFormatting.framework/URLFormatting.tbd: Added.

2021-01-04  Jeff Miller  <jeffm@apple.com>

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

        Reviewed by Anders Carlsson.

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

2020-10-08  Keith Rollin  <krollin@apple.com>

        Remove copy-webkitlibraries-to-product-directory
        https://bugs.webkit.org/show_bug.cgi?id=217465
        <rdar://problem/70082193>

        Reviewed by Darin Adler.

        This script no longer does anything, so remove it along with the
        scaffolding around it that invokes it during the build.

        * Makefile: Removed.

2020-10-06  Devin Rousso  <drousso@apple.com>

        CSS hover and "pointer: fine" media queries do not evaluate to true with iOS 13.4 mouse support
        https://bugs.webkit.org/show_bug.cgi?id=209292
        <rdar://problem/60663124>

        Reviewed by Tim Horton.

        * WebKitPrivateFrameworkStubs/iOS/13/BackBoardServices.framework/BackBoardServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/BackBoardServices.framework/BackBoardServices.tbd: Added.
        Use `BackBoardServices` to listen for mouse devices changes.

2020-10-04  Ryan Hostetler  <rhost@apple.com>

        Submission failure with "make: *** No rule to make target `installsrc'. Stop"
        https://bugs.webkit.org/show_bug.cgi?id=214696
        <rdar://problem/62268104>

        Reviewed by Darin Adler.

        Add support for XBS single base project build for WebKit repository.
        This change allows internal tools to submit and build from the repository root in a single step.

        * Makefile:
        WebKitLibraries do not need to be submitted, so we stub out the installsrc phase.

2020-07-26  Wenson Hsieh  <wenson_hsieh@apple.com>

        REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=214688
        <rdar://problem/65993683>

        Reviewed by Darin Adler.

        Remove logging added in r264882, r264890, r264892, and r264896.

        * WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd:
        * WebKitPrivateFrameworkStubs/appletvos/14/GraphicsServices.framework/GraphicsServices.tbd:
        * WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework/GraphicsServices.tbd:
        * WebKitPrivateFrameworkStubs/iOS/14/GraphicsServices.framework/GraphicsServices.tbd:
        * WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework/GraphicsServices.tbd:
        * WebKitPrivateFrameworkStubs/watchos/7/GraphicsServices.framework/GraphicsServices.tbd:

2020-07-26  Wenson Hsieh  <wenson_hsieh@apple.com>

        Unreviewed, add even more logging to try and diagnose a flaky test
        https://bugs.webkit.org/show_bug.cgi?id=214688
        <rdar://problem/65993683>

        Add symbol stubs for non-internal builds.

        * WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd:
        * WebKitPrivateFrameworkStubs/appletvos/14/GraphicsServices.framework/GraphicsServices.tbd:
        * WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework/GraphicsServices.tbd:
        * WebKitPrivateFrameworkStubs/iOS/14/GraphicsServices.framework/GraphicsServices.tbd:
        * WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework/GraphicsServices.tbd:
        * WebKitPrivateFrameworkStubs/watchos/7/GraphicsServices.framework/GraphicsServices.tbd:

2020-07-25  Wenson Hsieh  <wenson_hsieh@apple.com>

        REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=214688
        <rdar://problem/65993683>

        Reviewed by Tim Horton.

        Declare the symbol for `GSKeyboardGetLiveModifierState()`, for non-internal builds.

        * WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd:
        * WebKitPrivateFrameworkStubs/appletvos/14/GraphicsServices.framework/GraphicsServices.tbd:
        * WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework/GraphicsServices.tbd:
        * WebKitPrivateFrameworkStubs/iOS/14/GraphicsServices.framework/GraphicsServices.tbd:
        * WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework/GraphicsServices.tbd:
        * WebKitPrivateFrameworkStubs/watchos/7/GraphicsServices.framework/GraphicsServices.tbd:

2020-07-23  Brady Eidson  <beidson@apple.com>

        Add Gamepad tests that exercise the native frameworks
        <rdar://problem/65343674> and https://bugs.webkit.org/show_bug.cgi?id=214188

        Reviewed by Tim Horton.

        * WebKitPrivateFrameworkStubs/Mac/101500/HID.framework/HID.tbd: Added.
        * WebKitPrivateFrameworkStubs/Mac/101600/HID.framework/HID.tbd: Added.
        * WebKitPrivateFrameworkStubs/Mac/110000/HID.framework/HID.tbd: Added.

2020-07-17  Jonathan Bedard  <jbedard@apple.com>

        Add WebKitPrivateFrameworkStubs for Big Sur
        https://bugs.webkit.org/show_bug.cgi?id=214503
        <rdar://problem/65746594>

        Reviewed by Alexey Proskuryakov.

        * WebKitPrivateFrameworkStubs/Mac/101600: Added.
        * WebKitPrivateFrameworkStubs/Mac/101600/AuthKit.framework: Added.
        * WebKitPrivateFrameworkStubs/Mac/101600/AuthKit.framework/AuthKit.tbd: Added.
        * WebKitPrivateFrameworkStubs/Mac/110000: Added.
        * WebKitPrivateFrameworkStubs/Mac/110000/AuthKit.framework: Added.
        * WebKitPrivateFrameworkStubs/Mac/110000/AuthKit.framework/AuthKit.tbd: Added.

2020-07-17  Jonathan Bedard  <jbedard@apple.com>

        Add WebKitPrivateFrameworkStubs for watchOS 7
        https://bugs.webkit.org/show_bug.cgi?id=214479
        <rdar://problem/65727787>

        Reviewed by Tim Horton.

        * WebKitPrivateFrameworkStubs/watchos/7: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/AppSupport.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/AppSupport.framework/AppSupport.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/AssertionServices.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/AssertionServices.framework/AssertionServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/AuthKit.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/AuthKit.framework/AuthKit.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/CorePrediction.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/CorePrediction.framework/CorePrediction.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/DeviceIdentity.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/DeviceIdentity.framework/DeviceIdentity.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/FileProvider.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/FileProvider.framework/FileProvider.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/GraphicsServices.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/GraphicsServices.framework/GraphicsServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/IOKit.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/IOKit.framework/IOKit.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/IOSurfaceAccelerator.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/LocalAuthentication.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/LocalAuthentication.framework/LocalAuthentication.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/PepperUICore.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/PepperUICore.framework/PepperUICore.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/RunningBoardServices.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/RunningBoardServices.framework/RunningBoardServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/SafariSafeBrowsing.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/URLFormatting.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/7/URLFormatting.framework/URLFormatting.tbd: Added.

2020-07-17  Jonathan Bedard  <jbedard@apple.com>

        Add WebKitPrivateFrameworkStubs for tvOS 14
        https://bugs.webkit.org/show_bug.cgi?id=214476
        <rdar://problem/65725761>

        Reviewed by Tim Horton.

        * WebKitPrivateFrameworkStubs/appletvos/14: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/AppSupport.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/AppSupport.framework/AppSupport.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/AssertionServices.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/AssertionServices.framework/AssertionServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/AuthKit.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/AuthKit.framework/AuthKit.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/CorePrediction.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/CorePrediction.framework/CorePrediction.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/DeviceIdentity.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/DeviceIdentity.framework/DeviceIdentity.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/FileProvider.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/FileProvider.framework/FileProvider.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/GraphicsServices.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/GraphicsServices.framework/GraphicsServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/IOKit.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/IOKit.framework/IOKit.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/IOSurfaceAccelerator.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/LocalAuthentication.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/LocalAuthentication.framework/LocalAuthentication.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/RunningBoardServices.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/RunningBoardServices.framework/RunningBoardServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/SafariSafeBrowsing.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/URLFormatting.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/14/URLFormatting.framework/URLFormatting.tbd: Added.

2020-07-16  Jonathan Bedard  <jbedard@apple.com>

        Add WebKitPrivateFrameworkStubs for iOS 14
        https://bugs.webkit.org/show_bug.cgi?id=214432
        <rdar://problem/65695714>

        Reviewed by Tim Horton.

        * WebKitPrivateFrameworkStubs/iOS/14: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/AppSupport.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/AppSupport.framework/AppSupport.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/AssertionServices.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/AssertionServices.framework/AssertionServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/AuthKit.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/AuthKit.framework/AuthKit.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/CorePrediction.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/CorePrediction.framework/CorePrediction.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/DeviceIdentity.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/DeviceIdentity.framework/DeviceIdentity.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/GraphicsServices.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/GraphicsServices.framework/GraphicsServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/IOSurfaceAccelerator.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/RunningBoardServices.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/RunningBoardServices.framework/RunningBoardServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/SafariSafeBrowsing.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/URLFormatting.framework: Added.
        * WebKitPrivateFrameworkStubs/iOS/14/URLFormatting.framework/URLFormatting.tbd: Added.

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

        [watchOS] Support armv7k build
        https://bugs.webkit.org/show_bug.cgi?id=214306
        <rdar://problem/65549901>

        Reviewed by Aakash Jain.

        * WebKitPrivateFrameworkStubs/watchos/6/FileProvider.framework/FileProvider.tbd: Add armv7k to supported architectures.
        * WebKitPrivateFrameworkStubs/watchos/6/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd: Ditto.
        * WebKitPrivateFrameworkStubs/watchos/6/LocalAuthentication.framework/LocalAuthentication.tbd: Ditto.
        * WebKitPrivateFrameworkStubs/watchos/6/PepperUICore.framework/PepperUICore.tbd: Ditto.
        * WebKitPrivateFrameworkStubs/watchos/6/RunningBoardServices.framework/RunningBoardServices.tbd: Ditto.
        * WebKitPrivateFrameworkStubs/watchos/6/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd: Ditto.
        * WebKitPrivateFrameworkStubs/watchos/6/URLFormatting.framework/URLFormatting.tbd: Ditto.

2020-06-15  Jonathan Bedard  <jbedard@apple.com>

        watchOS/tvOS: Remote unneeded FileProvider symbols
        https://bugs.webkit.org/show_bug.cgi?id=213216
        <rdar://problem/64380232>

        Reviewed by Alexey Proskuryakov.

        * WebKitPrivateFrameworkStubs/appletvos/13/FileProvider.framework/FileProvider.tbd:
        * WebKitPrivateFrameworkStubs/watchos/6/FileProvider.framework/FileProvider.tbd:

2020-06-10  Jonathan Bedard  <jbedard@apple.com>

        Catalyst WebKit apps continue to play audio after quitting (Follow-up fix)
        https://bugs.webkit.org/show_bug.cgi?id=212981
        <rdar://problem/57089471>

        Unreviewed build fix.

        * WebKitPrivateFrameworkStubs/appletvos/13/RunningBoardServices.framework/RunningBoardServices.tbd:
        * WebKitPrivateFrameworkStubs/watchos/6/RunningBoardServices.framework/RunningBoardServices.tbd:

2020-06-10  Jer Noble  <jer.noble@apple.com>

        Catalyst WebKit apps continue to play audio after quitting
        https://bugs.webkit.org/show_bug.cgi?id=212981
        <rdar://problem/57089471>

        Reviewed by Chris Dumez.

        * WebKitPrivateFrameworkStubs/iOS/13/RunningBoardServices.framework/RunningBoardServices.tbd:

2020-06-04  Jonathan Bedard  <jbedard@apple.com>

        tvOS: Remove arm64e references in .tbd files
        https://bugs.webkit.org/show_bug.cgi?id=212792
        <rdar://problem/64003670>

        Reviewed by Tim Horton.

        * WebKitPrivateFrameworkStubs/appletvos/13/AppSupport.framework/AppSupport.tbd:
        * WebKitPrivateFrameworkStubs/appletvos/13/AssertionServices.framework/AssertionServices.tbd:
        * WebKitPrivateFrameworkStubs/appletvos/13/AuthKit.framework/AuthKit.tbd:
        * WebKitPrivateFrameworkStubs/appletvos/13/CorePDF.framework/CorePDF.tbd:
        * WebKitPrivateFrameworkStubs/appletvos/13/CorePrediction.framework/CorePrediction.tbd:
        * WebKitPrivateFrameworkStubs/appletvos/13/DeviceIdentity.framework/DeviceIdentity.tbd:
        * WebKitPrivateFrameworkStubs/appletvos/13/FileProvider.framework/FileProvider.tbd:
        * WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd:
        * WebKitPrivateFrameworkStubs/appletvos/13/IOKit.framework/IOKit.tbd:
        * WebKitPrivateFrameworkStubs/appletvos/13/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd:
        * WebKitPrivateFrameworkStubs/appletvos/13/LocalAuthentication.framework/LocalAuthentication.tbd:
        * WebKitPrivateFrameworkStubs/appletvos/13/RunningBoardServices.framework/RunningBoardServices.tbd:
        * WebKitPrivateFrameworkStubs/appletvos/13/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd:
        * WebKitPrivateFrameworkStubs/appletvos/13/URLFormatting.framework/URLFormatting.tbd:

2020-06-04  Jonathan Bedard  <jbedard@apple.com>

        Add tvOS framework stubs
        https://bugs.webkit.org/show_bug.cgi?id=212760
        <rdar://problem/63986134>

        Reviewed by Tim Horton.

        * WebKitPrivateFrameworkStubs/appletvos: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/AppSupport.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/AppSupport.framework/AppSupport.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/AssertionServices.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/AssertionServices.framework/AssertionServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/AuthKit.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/AuthKit.framework/AuthKit.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/CorePDF.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/CorePDF.framework/CorePDF.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/CorePrediction.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/CorePrediction.framework/CorePrediction.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/DeviceIdentity.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/DeviceIdentity.framework/DeviceIdentity.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/FileProvider.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/FileProvider.framework/FileProvider.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/IOKit.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/IOKit.framework/IOKit.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/IOSurfaceAccelerator.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/LocalAuthentication.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/LocalAuthentication.framework/LocalAuthentication.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/RunningBoardServices.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/RunningBoardServices.framework/RunningBoardServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/SafariSafeBrowsing.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/URLFormatting.framework: Added.
        * WebKitPrivateFrameworkStubs/appletvos/13/URLFormatting.framework/URLFormatting.tbd: Added.

2020-06-04  Jonathan Bedard  <jbedard@apple.com>

        Add watchOS framework stubs
        https://bugs.webkit.org/show_bug.cgi?id=212761
        <rdar://problem/63986144>

        Reviewed by Tim Horton.

        * WebKitPrivateFrameworkStubs/watchos: Added.
        * WebKitPrivateFrameworkStubs/watchos/6: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/AppSupport.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/AppSupport.framework/AppSupport.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/AssertionServices.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/AssertionServices.framework/AssertionServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/AuthKit.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/AuthKit.framework/AuthKit.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/CorePDF.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/CorePDF.framework/CorePDF.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/CorePrediction.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/CorePrediction.framework/CorePrediction.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/DeviceIdentity.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/DeviceIdentity.framework/DeviceIdentity.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/FileProvider.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/FileProvider.framework/FileProvider.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework/GraphicsServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/IOKit.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/IOKit.framework/IOKit.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/IOSurfaceAccelerator.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/LocalAuthentication.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/LocalAuthentication.framework/LocalAuthentication.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/PepperUICore.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/PepperUICore.framework/PepperUICore.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/RunningBoardServices.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/RunningBoardServices.framework/RunningBoardServices.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/SafariSafeBrowsing.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/URLFormatting.framework: Added.
        * WebKitPrivateFrameworkStubs/watchos/6/URLFormatting.framework/URLFormatting.tbd: Added.

2020-04-24  Chris Dumez  <cdumez@apple.com>

        [iOS] Stop using legacy BKSApplicationStateMonitor
        https://bugs.webkit.org/show_bug.cgi?id=210945

        Reviewed by Tim Horton.

        * WebKitPrivateFrameworkStubs/iOS/13/RunningBoardServices.framework/RunningBoardServices.tbd:

2020-03-16  Keith Rollin  <krollin@apple.com>

        Remove support for WebKitSystemInterface
        https://bugs.webkit.org/show_bug.cgi?id=208894
        <rdar://problem/60297590>

        Reviewed by Brent Fulgham.

        This project provided support for facilities that are now handled
        elsewhere and is no longer needed.

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

2020-01-27  Chris Dumez  <cdumez@apple.com>

        Unreviewed, revert r253984 as it appears to be causing assertion leaks.
        https://bugs.webkit.org/show_bug.cgi?id=205687

        * WebKitPrivateFrameworkStubs/iOS/13/RunningBoardServices.framework/RunningBoardServices.tbd: Removed.

2020-01-10  Jonathan Bedard  <jbedard@apple.com>

        WebKitLibraries: Remove old private framework stubs
        https://bugs.webkit.org/show_bug.cgi?id=206067
        <rdar://problem/58479518>

        Reviewed by Alexey Proskuryakov.

        * WebKitPrivateFrameworkStubs/iOS/10: Removed.
        * WebKitPrivateFrameworkStubs/iOS/11: Removed.
        * WebKitPrivateFrameworkStubs/iOS/12: Removed.

2020-01-08  Mark Lam  <mark.lam@apple.com>

        Rename testing build configuration to release+assert, and add new testing build configuration.
        https://bugs.webkit.org/show_bug.cgi?id=205954

        Reviewed by Yusuke Suzuki.

        * Makefile:

2020-01-07  Keith Miller  <keith_miller@apple.com>

        Add a testing target to make that is release + assertions
        https://bugs.webkit.org/show_bug.cgi?id=205895

        Reviewed by Mark Lam.

        * Makefile:

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

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

        Reviewed by Darin Adler.

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

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.

