[webkit-reviews] review granted: [Bug 6002] WebKit does not properly handle SVG <cursor> element : [Attachment 10701] css parser fixes

bugzilla-request-daemon at opendarwin.org bugzilla-request-daemon at opendarwin.org
Fri Sep 22 03:03:52 PDT 2006


Eric Seidel <macdome at opendarwin.org> has granted Eric Seidel
<macdome at opendarwin.org>'s request for review:
Bug 6002: WebKit does not properly handle SVG <cursor> element
http://bugzilla.opendarwin.org/show_bug.cgi?id=6002

Attachment 10701: css parser fixes
http://bugzilla.opendarwin.org/attachment.cgi?id=10701&action=edit

------- Additional Comments from Eric Seidel <macdome at opendarwin.org>
I don't think we want this:
+#if SVG_SUPPORT
+	     if (uri.startsWith("#")) {
+		 if (!list)
+		     list = new CSSValueList; 
+		 list->append(new CSSPrimitiveValue(uri,
CSSPrimitiveValue::CSS_URI));
+		 value = valueList->next();
+	     } else
+#endif

That treats url(#foo) differently from url(foo.png).  The latter allows CSS3
hotspots, the former does not.	I'm not sure which should win out (the <cursor>
specified hotspot or the css3  one, but I don't think it should be an error.)

I'm surprised this is only an error in strict mode:
+		 if (strict && value && !(value->unit == Value::Operator &&
value->iValue == ','))
+		     return false;

If it's only going to be an error in strict mode, maybe it only needs to be
required in strict mode?  Or maybe in non-strict mode an ; is also allowed?

I think this function should have a different name to denote its different
behavior:
style->addCursor(primitiveValue->getStringValue().substring(1))
perhaps addSVGCursor ?

You might also want to call the parameter fragmentId:
+void RenderStyle::addCursor(const String& id)

Great patch.  This has been an awfully long journey to get this landed, but I
think you're basically there.  I don't need to see the code again.   But if you
could make those tweaks before landing that would be great.  I still need to
check the test case.

r=me.



More information about the webkit-reviews mailing list