2010-01-08  Mark Rowe  <mrowe@apple.com>

        Merge r52141.

    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-10-13  Mark Rowe  <mrowe@apple.com>

        Merge r49026.

    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-10-12  Mark Rowe  <mrowe@apple.com>

        Merge r48775.

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

