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: http://svn.webkit.org/repository/webkit/trunk@25169 268f45cc-cd09-0410-ab3c-d52691b4dbfc
18 files changed