- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Wed, 13 Apr 2011 10:35:43 -0700
- To: Boris Zbarsky <bzbarsky@mit.edu>
- Cc: www-style list <www-style@w3.org>
On Tue, Apr 12, 2011 at 9:46 PM, Boris Zbarsky <bzbarsky@mit.edu> wrote: > On 4/11/11 4:55 PM, Tab Atkins Jr. wrote: >> >> Yeah, compat's always an issue. I'd prefer trying for the (imo) >> better API first, though, and only giving up and switching to the >> version on window when we learn that there's a problem. > > If browsers ship every 6 weeks, then we probably learn that there is a > problem after two releases have shipped... And then we can fix it 6 weeks later, rather than a year or two later. ^_^ >>> I'm not sure we need to burden the core CSSOM and style system with that >>> edge case, though. The number of such editor implementations in the >>> world >>> is _very_ small, and they all rely on non-public APIs and will continue >>> to >>> do so (e.g. they do need to show the cross-site style rules). >> >> Hm, possibly. The two concepts are separable, so we can talk about >> them separately. > > We can, sure. But if all the use cases for one are also use cases for the > other, then we should ask ourselves whether we need a web API for the former > if the latter won't be doable with web APIs anyway. So you're arguing that disabling rulesets is possibly reasonable for a web API, but disabling individual properties is probably only useful for full-on editors which will need specialized non-web-facing APIs anyway, so can just put the functionality in the latter APIs? >> Yup. While there's no guarantee we won't change syntax in the future, >> we are rightfully pretty conservative on this matter. Particularly, >> there are performance reasons to not expose new syntax that looks like >> a property-name/value pair. > > Really? I'm not aware of any offhand.... For example, assume you're defining some sort of ruleset nesting, like this: div { color: red; font-face:hover a a a a a a a a a { color: blue; } } The intention here is that this desugars to: div { color: red; } font-face:hover a a a a a a a a a { color: blue; } But to the parser it *looks* like you're just setting the font-face property (to a font name starting with "hover a a a..."), up until the point the { is seen, at which point you have to backtrack an arbitrary amount. This is apparently a problem, given how much effort we spent on trying to eliminate arbitrary backtracking from url() and comment parsing. ~TJ
Received on Wednesday, 13 April 2011 17:36:32 UTC