- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Wed, 19 Mar 2014 11:02:57 -0400
- To: Simon Pieters <simonp@opera.com>, www-style@w3.org, Daniel Glazman <daniel.glazman@disruptive-innovations.com>
- CC: "rune@opera.com" <rune@opera.com>, Jacob Rossi <Jacob.Rossi@microsoft.com>
On 3/19/14 10:25 AM, Simon Pieters wrote:
> I'm not Daniel but I think the scenario is more like: you start out with
> a stylesheet that has a bunch of rules and no @namespace and no rules
> using namespace prefixes. Then you want to insert @namespace svg "...";
> at the top and svg|foo { ... } somewhere else.
OK. So in this scenario you insert the @namespace rule first and then
insert the rule using the prefix. That all seems fine to me.
> You are right that in that scenario it would not actually affect the
> existing rules, but if we allow insertion and changing of @namespace
> rules, I think it seems sane to have the other rules change.
It does, but you start running into various insane edge cases. Say I
have a stylesheet with |@namespace svg "..."| and a rule containing
"svg|foo" in the selector. Then I remove the namespace rule. What
should happen?
And as a side note, what then happens when such a thing is serialized?
After all, that's what CSS editors really care about in the end:
producing a serialization that will then later be parsed by a CSS renderer.
> No, also ones that define prefixes, and not only inserting but also
> changing existing ones.
OK. That adds a lot more complexity, which I'm a bit loath to do unless
we have concrete use cases. In particular, without concrete use cases
it's hard to define the behavior in various edge cases here.
> More interesting is maybe editing of an existing @namespace rule, e.g.
> if there was a typo in the value.
That's a good concrete use case, assuming you mean a typo in the
namespace URI, yes. I agree that for an editor it's desirable to
support this.
> What if you want to change the prefix? Changing it would render rules
> using the old prefix invalid. Should they be dropped? Or magically also
> change their prefixes? Or be kept in in an invalid state? Or should the
> setter throw?
>
> What should happen when an @namespace rule is removed?
Yep. I'll just note I hadn't read this far when I asked the same
question above. ;)
>> If we _do_ have to support it, that requires storing the prefix when
>> it's present with the selectors in the sheet, which is not required
>> right now, as far as I can tell.
>
> You have to store the unparsed selector already since it's exposed in
> CSSOM
Where is it exposed? Gecko does not store unparsed selectors; we simply
serialize the parsed representation if requested (e.g. if someone gets
.cssText on a selector).
-Boris
Received on Wednesday, 19 March 2014 15:03:28 UTC