[webkit-dev] WebView vs. Safari color management

Jonathan Hammer jonathan at e3software.com
Tue Apr 9 20:40:39 PDT 2013


I apologize in advance if this is the wrong list for this question—please let me know.

I am trying to understand why CSS colors appear to render in a different color space when the HTML document is loaded in Safari versus loaded in a WebView (in the Obj-C WebKit.framework).

Specifically, this document (http://ethreesoftware.com/misc/colortest.html) has a background-color of rgb(70, 130, 180). When Safari renders the document and a screenshot is taken (PNG tagged with the current display profile), sampling the background pixels in Photoshop yields the correct rgb(70, 130, 180) values. If I render the _same_ document inside of a WebView, take a screenshot, and sample the background pixels, the colors are instead rgb(58, 128, 182). Example: http://ethreesoftware.com/misc/webview-left-safari-right.png

I'm just not sure what I'm missing here. Is the WebView not using NSDeviceRGBColorSpace but Safari is? Is there some kind of OpenGL surface interaction that's going on? The above results seem consistent no matter what application I test with (i.e. WebViews in Apple Mail, third-party apps like Coda, and reduced test-case apps consisting of just a window containing a WebView all render the "wrong" color). 

My searches through WebKit and WebCore are ongoing, but I thought I'd reach out to the community for a clue, if possible. Thanks for any guidance you can give!

OS X 10.8.3 (12D78), Safari 6.0.3 (8536.28.10)

Jonathan Hammer
e3 Software

More information about the webkit-dev mailing list