[Webkit-unassigned] [Bug 6129] Incomplete implementation of CSS 2.1 system colors

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Dec 16 10:47:52 PST 2007


http://bugs.webkit.org/show_bug.cgi?id=6129


darin at apple.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #17908|review?                     |review+
               Flag|                            |




------- Comment #22 from darin at apple.com  2007-12-16 10:47 PDT -------
(From update of attachment 17908)
Looks good. I'm saying review+, but there's one issue that needs to be fixed.
This will break 64-bit unless we change one use of unsigned to NSUInteger.

Yes, you were right and I was wrong about +[NSGraphicsContext
saveGraphicsState].

I don't see any reason for systemColor to take a Color& instead of returning a
Color object. These are small objects and need not be returned using out
reference parameters.

RenderTheme::systemColor uses a switch statement instead of an array the way
CSSStyleSelector.cpp did. The array seems easier to read than the switch. The
switch statement is big and it's hard to see which color has which value.

Color objects are simply RGBA values (integers) plus a valid flag. Because of
that, I think m_systemColorCache could store RGBA values instead of color
objects. We don't really need a way to store an invalid object in the cache.

We normally use a different position of the * for ObjC classes than C++
classes; this patch has things like NSColor* where we use NSColor * -- I'm not
a big fan of the rule but I do like to stay consistent.

I think this rect could just be constructed on the line of code where we paint.
We don't really need a 0,0 1x1 rect for the bitmap setup.

 203         NSRect offscreenRect = NSMakeRect(0, 0, 1, 1);

We normally use "unsigned" rather than "unsigned int" in code like this. Also,
this should be declared further down in the file, right where it's used. Also,
this should be NSUInteger, not "unsigned", so it compiles under 64-bit.

 205         unsigned int pixel[4];

There's no reason to first initialize this to nil and then give it a real value
two lines later:

 204         NSBitmapImageRep* offscreenRep = nil;

I think these lines could just say "1" -- there's no real value in getting the
size out of the rect and I don't think it makes things a lot clearer.

 207                                                               
pixelsWide:offscreenRect.size.width
 208                                                               
pixelsHigh:offscreenRect.size.height

I don't think it's helpful to use alpha in the NSBitmapImageRep that we use to
figure out what the color is. We don't read the alpha value out, so we
shouldn't write it in.

 210                                                          
samplesPerPixel:4
 211                                                                 
hasAlpha:YES

There's no need to include a typecast here. 0 would work fine without it.

 214                                                             
bitmapFormat:(NSBitmapFormat)0

This can just be value 4 rather than doing math, and I think it might be
clearer.

 215                                                              
bytesPerRow:(4 * offscreenRect.size.width)


-- 
Configure bugmail: http://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the webkit-unassigned mailing list