WebCore:
authorsullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 21 Aug 2007 14:32:21 +0000 (14:32 +0000)
committersullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 21 Aug 2007 14:32:21 +0000 (14:32 +0000)
commit091d0ea2d642436297ae15172ab55f67549719d3
treeed4a4cbf51bc1faa685563dc0d781e39a1706e1b
parentd370c78bba5036ae6e9b3bb0bcd4a60e36ed7160
WebCore:

        Reviewed by Adam Roben

        WebCore part of fix for:
        <rdar://problem/5417777> WebKit focus ring color no longer matches system focus rings

        Adele wrote the first version of this patch. No test cases added because I made sure the
        layout tests are unaffected. Two additional bug fixes were made in passing, but neither
        of them had any effect on any known real-world case, and both were too difficult to write
        test cases for to be worthwhile.

        * WebCore.exp:
        added symbols for these new functions so WebKit can call them

        * WebCore.xcodeproj/project.pbxproj:
        updated for new file

        * platform/graphics/mac/ColorMac.h: Added.
        New file to hold the increasing amount of Mac-specific color stuff.

        * platform/graphics/Color.h:
        removed #if PLATFORM(MAC) code, which is now in ColorMac.h

        * platform/graphics/mac/ColorMac.mm:
        (WebCore::makeRGBAFromNSColor):
        new static function to convert an NSColor object to an RGBA32 struct
        (WebCore::colorFromNSColor):
        new public function to convert an NSColor object to a WebCore-style Color object
        (WebCore::focusRingColor):
        Uses (cached) systemFocusRingColor instead of hardwired values, unless usesTestModeFocusRingColor is true,
        in which case it uses the old hardwired color
        (WebCore::usesTestModeFocusRingColor):
        returns value of global var
        (WebCore::setUsesTestModeFocusRingColor):
        sets value of global var
        (+[WebCoreControlTintObserver controlTintDidChange]):
        Uses [NSColor keyboardFocusIndicatorColor] to set systemFocusRingColor; don't compile if COLORMATCH_EVERYTHING
        is set since we don't know what it would take to satisfy this state.

        * bindings/objc/DOMRGBColor.mm:
        now includes ColorMac.h to account for moved declarations
        * bridge/mac/WebCoreAXObject.mm:
        ditto

        * page/mac/FrameMac.mm:
        (WebCore::convertAttributesToUnderlines):
        now uses new colorFromNSColor. The old code was swapping G & B, but it didn't matter in practice because
        this function is only used to convert the color of an input manager's marked text underline, which is always black

        * page/mac/WebCoreFrameBridge.mm:
        (-[WebCoreFrameBridge setBaseBackgroundColor:]):
        now uses new colorFromNSColor. The old code was swapping G & B, but it didn't matter in practice because
        this function is only called with a grayscale color perhaps containing an alpha value

        * rendering/RenderView.cpp:
        (WebCore::RenderView::paintBoxDecorations):
        just updated a comment

WebKit:

        Reviewed by Adam Roben

        WebKit part of fix for:
        <rdar://problem/5417777> WebKit focus ring color no longer matches system focus rings

        * Misc/WebNSAttributedStringExtras.mm:
        now includes <WebCore/ColorMac.h> to account for moved declaration
        * WebView/WebFrame.mm:
        ditto

        * WebView/WebViewPrivate.h:
        * WebView/WebView.mm:
        (+[WebView _setUsesTestModeFocusRingColor:]):
        new SPI, calls through to new WebCore function. This is used by DumpRenderTree to make sure the
        focus ring color is always the same when performing layout tests, regardless of OS X version.
        (+[WebView _usesTestModeFocusRingColor]):
        new SPI, calls through to new WebCore function

WebKitTools:

        Reviewed by Adam Roben

        * DumpRenderTree/DumpRenderTree.m:
        (runTest):
        call new +[WebView _setUsesTestModeFocusRingColor:YES] so we get the same focus ring colors
        in layout tests on Tiger and Leopard

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@25169 268f45cc-cd09-0410-ab3c-d52691b4dbfc
18 files changed:
WebCore/ChangeLog
WebCore/WebCore.exp
WebCore/WebCore.xcodeproj/project.pbxproj
WebCore/bindings/objc/DOMRGBColor.mm
WebCore/bridge/mac/WebCoreAXObject.mm
WebCore/page/mac/FrameMac.mm
WebCore/page/mac/WebCoreFrameBridge.mm
WebCore/platform/graphics/Color.h
WebCore/platform/graphics/mac/ColorMac.h [new file with mode: 0644]
WebCore/platform/graphics/mac/ColorMac.mm
WebCore/rendering/RenderView.cpp
WebKit/ChangeLog
WebKit/Misc/WebNSAttributedStringExtras.mm
WebKit/WebView/WebFrame.mm
WebKit/WebView/WebView.mm
WebKit/WebView/WebViewPrivate.h
WebKitTools/ChangeLog
WebKitTools/DumpRenderTree/DumpRenderTree.m