Changes made using insertRule(rule, index) and deleteRule(index) do not get reflected into the rendering. I beleive all that's needed is to add the line stylesheet()->styleSheetChanged() to the two functions.
Created attachment 11991 [details]
Patch with 2 test cases. The only thing that worries me is the call to stylesheet() could return null.
Comment on attachment 11991 [details]
styleSheet() is a function that can return NULL, and other spots in WebCore chck for NULL, so I think you should, too. If you know that styleSheet() should never be NULL in this case (and, according to the spec, I don't think it should), then use an ASSERT instead. Eventually, it may be worth clearing up exactly when styleSheet() can return NULL. (I believe it's only in the case of a computed style declaration.)
(In reply to comment #2)
> If you know that styleSheet() should
> never be NULL in this case (and, according to the spec, I don't think it
> should), then use an ASSERT instead.
I believe stylesheet()->styleSheetChanged() would crash as reliably as an assert, so maybe a comment is enough.
Created attachment 12003 [details]
Adds comments noting that stylesheet() can only return 0 for computed style declarations.
Didn't notice Geoff's r+, landed in r18410 with the new comments.