| 00:01 | <Hixie> | success! my pipline now outputs the same as anolis |
| 00:01 | <Hixie> | ...for the first line of the file, anyway |
| 01:23 | <MikeSmith> | Hixie: validator.nu is fast enough that it can check the entire HTML spec in less than 3 seconds |
| 01:24 | <MikeSmith> | Hixie: the part of that time that's taken up by parsing is milliseconds |
| 02:19 | <Manishearth> | annevk: around? |
| 02:50 | <Hixie> | gsnedders: hey do you know what order anolis uses for attributes when serialising? |
| 02:50 | <Hixie> | MikeSmith: really? |
| 02:50 | <Hixie> | MikeSmith: it always seems to take quite a lot longer, to me... |
| 02:51 | <Hixie> | MikeSmith: hm, no, i guess you're right |
| 02:52 | <Hixie> | MikeSmith: that's pretty impressive |
| 02:52 | <MikeSmith> | the power of hsivonen |
| 02:52 | <Hixie> | of course this is a different machine |
| 02:52 | <Hixie> | so i dunno how it compares |
| 02:52 | <MikeSmith> | true |
| 02:54 | <Hixie> | what tricks does the parser use? |
| 02:54 | <Hixie> | i mean, things like interning the strings to do string comparisons, dispatch tables, etc |
| 02:54 | <MikeSmith> | that you would need to ask Henri about |
| 02:55 | <MikeSmith> | I'm really only familiar with the parts of the parser code that I've patched, which isn't very many parts, and mostly trivial |
| 02:56 | <MikeSmith> | though I'm not reminded that I'm waiting on Henri to make a decision about handling of un-ambiguous ampersands in the parser to bring it into conformance with the HTML spec |
| 02:57 | <Hixie> | i don't understand the whitespace stripping that anolis does |
| 02:57 | <Hixie> | actually i guess it's probably libhtml or whatever parser anolis uses |
| 02:57 | <MikeSmith> | (the validator error messages about, e.g., the ampersand in "http://x?foo&bar" being invalid are actually generated by the parser, which is an error-reporting implementation) |
| 02:58 | <MikeSmith> | Hixie: bingo |
| 02:58 | <Hixie> | still, i don't understand it |
| 02:59 | <MikeSmith> | in my experience there are a lot of WTFs in the results from the 3rd-party library code that anolis and the splitter use |
| 03:00 | <Hixie> | yeah but if i don't reproduce those wtfs precisely, it's gonna be a pain to check the results :-) |
| 03:00 | <MikeSmith> | ah |
| 03:01 | <Manishearth> | Hey, I'm a bit unclear about the xhr spec, anyone who can help with that? |
| 03:02 | <Manishearth> | Specifically, http://xhr.spec.whatwg.org/#the-send()-method step 13 |
| 03:02 | <MikeSmith> | Hixie: I dealt with them in the past just be doing some post-processing. but I never noticed weirdness in teh WS handling |
| 03:02 | <Manishearth> | The handling for synchronous requests is not totally clear to me since it seems to omit some important steps |
| 03:03 | <MikeSmith> | Manishearth: annevk would be the one to ask but pretty sure he's sleeping at these hours |
| 03:03 | <Manishearth> | yeah |
| 03:03 | <Manishearth> | Ms2ger isn't around either, usually I ask him :) |
| 03:04 | <MikeSmith> | Manishearth: I wonder why you want to handle synchronous requests |
| 03:05 | <Manishearth> | MikeSmith: because I'm implementing XHR, and web-platform-tests wants them |
| 03:05 | <Manishearth> | :) |
| 03:06 | <Manishearth> | wpt uses sync fetch often to get better workflow. I agree that sync fetch is a rather bad way of doing things on the web |
| 03:07 | <MikeSmith> | indeed |
| 03:07 | <MikeSmith> | I didn't know wpt was doing that |
| 03:08 | <Manishearth> | The one that's breaking for me right now is https://github.com/w3c/web-platform-tests/blob/master/XMLHttpRequest/abort-after-send.htm |
| 03:08 | MikeSmith | looks |
| 03:08 | <Manishearth> | because I'm not setting the readystate properly |
| 03:08 | <Manishearth> | When the spec says "If req's synchronous flag is set, pass the return value, synchronously, to process response end-of-file below." |
| 03:09 | <Manishearth> | I'm not sure if I'm suposed to skip the other "process" steps. I'm doing the steps, storing the data, but not sure if I should be changing ready state and firing events |
| 03:09 | <Manishearth> | readystatechange/onprogress doesn't make much sense for sync anyway |
| 03:09 | <MikeSmith> | right |
| 03:10 | <Manishearth> | So for sync should the only effect on the XHR object be the changing of the ready state to Done when it finishes? |
| 03:11 | <Manishearth> | or should I be changing the ready state each step for sync, but not firing the event? |
| 03:13 | MikeSmith | tries to think of who else might be around right now who's implemented XHR |
| 03:13 | <MikeSmith> | ah wait you're the one who's working on the XHR ipmlementation for servo? |
| 03:14 | MikeSmith | scratches off his "ask that guy who's working on the XHR implementation in servo" suggestion |
| 03:15 | <Manishearth> | pahaha |
| 03:15 | <MikeSmith> | smaug's not awake yet either |
| 03:18 | <Manishearth> | np, I'll wait till Ms2ger comes back then. I have one way of fixing the immediate issue, but I think it's best if I'm clear about that part of the spec |
| 05:29 | <zcorpan> | Hixie: maybe you can run anolis with html5lib instead for comparison of the result? |
| 06:33 | <annevk> | Manishearth: around now |
| 06:34 | <annevk> | Manishearth: yeah, even for synchronous you should dispatch readystatechange et al in the end |
| 06:35 | <annevk> | Manishearth: but yeah, that could be done better |
| 06:38 | <jamesr_> | Manishearth: sync XHR is one of those fun APIs that runs javascript reentrantly |
| 06:38 | <jamesr_> | the blink implementation is pretty straightforward, i can check things if you'd like |
| 06:38 | <annevk> | jamesr_: not per spec |
| 06:38 | <jamesr_> | annevk: oh? in webkit/blink the rsc events fire 'under' the send() call, i believe |
| 06:38 | jamesr_ | cooks up test |
| 06:39 | <annevk> | jamesr_: per spec there's only a final set of events just before send() returns |
| 06:39 | <annevk> | jamesr_: but since the events are sync too, that's not re-entrant |
| 06:39 | <jamesr_> | the event handlers run before control returns to whoever calls send(), no? |
| 06:40 | <annevk> | jamesr_: sure |
| 06:40 | <annevk> | jamesr_: I guess that's a bit re-entrant, but no more than some custom function I have invoking dispatchEvent() |
| 06:40 | <jamesr_> | ok. i guess it's a terminology difference, then. to me that's reentrant |
| 06:40 | <jamesr_> | right, since they are event handlers |
| 06:40 | <annevk> | jamesr_: fair, I was thinking nested event loop |
| 06:41 | <annevk> | jamesr_: which is what Gecko has at the moment and is definitely not supported by the spec |
| 06:41 | <jamesr_> | nah. we don't run anything else while the xhr is out |
| 06:41 | <jamesr_> | in chromium, the entire process's blink thread is locked |
| 06:50 | <annevk> | So six months after the purported deadline of ES6, class design is being reconsidered |
| 06:51 | <annevk> | When I said a while back it would take at least a year for people to get around to do proper subclassing everywhere, people got angry |
| 06:54 | <Manishearth> | annevk: lunchtime for me, will get back to you on this. Thanks! |
| 06:58 | <jamesr_> | is servo attempting the storage mutex stuff? or skipping it? |
| 07:05 | annevk | doesn't know |
| 07:10 | <krit> | annevk: morning |
| 07:10 | <krit> | annevk: I added a question to the pad on the first algorithm |
| 07:11 | <krit> | annevk: if the associated document is document.svg would url(document.svg#frag) be treated as element reference? |
| 07:12 | <krit> | annevk: ..assuming the specified value is on an external CSS |
| 07:12 | <krit> | annevk: it certainly can’t be used as image since it would reference itself |
| 07:13 | <annevk> | krit: why can't it be fetched and treated as image? |
| 07:13 | <annevk> | krit: more important, what do implementations do now? |
| 07:14 | <krit> | annevk: depends on the property… need to check an example with image… one moment |
| 07:15 | <annevk> | I'm again surprised these questions haven't come up before, but I guess it's good we are addressing them now |
| 07:18 | <krit> | annevk: there are no properties that reference images in SVG |
| 07:19 | <krit> | annevk: With the exception of ‘cursor' |
| 07:19 | <annevk> | krit: okay, but is it treated as an external reference today or an internal? |
| 07:20 | <annevk> | krit: if url(style.css#frag) is internal, surely that must be external |
| 07:20 | <krit> | annevk: that depends on the property. There is no implemented property that can be either of both today |
| 07:20 | <annevk> | krit: not even in Gecko? |
| 07:21 | <krit> | annevk: not even in Gecko…. however, give me a couple of minutes and I reproduce it with fill and cursor |
| 07:22 | <annevk> | krit: okay, but we should still be able to answer the question, if url(style.css#frag) is internal, then url(document.svg#frag) is either external or should not work |
| 07:22 | <annevk> | krit: can we at least confirm that much? |
| 07:23 | <krit> | annevk: ok, self referencing with cursor doesn’t work |
| 07:23 | <annevk> | krit: are you testing in a browser that supports SVG for cursors? |
| 07:23 | <krit> | annevk: needs checking in FF as well. I already told you what Blink and WebKit would do |
| 07:23 | <krit> | annevk: I would need to search a browser that doesn't |
| 07:24 | <krit> | annevk: of course it supports SVG |
| 07:24 | <annevk> | krit: does it start working if the style sheet is then associated with a different document? |
| 07:25 | <annevk> | Are the tests online? |
| 07:26 | <krit> | annevk: no, can paste them |
| 07:26 | <krit> | https://www.irccloud.com/pastebin/vf3hQKYS |
| 07:27 | <krit> | style.css#grad doesn’t work, self.html#grad does in Firefox |
| 07:27 | <annevk> | and #grad does too? |
| 07:28 | <krit> | annevk: yes |
| 07:28 | <annevk> | :-( |
| 07:28 | <krit> | annevk: same behavior in Blink WebKit (to my surprise) |
| 07:29 | <krit> | annevk: so the algorithm does not what FF, Chrome and Safari do today |
| 07:32 | <annevk> | krit: in http://dump.testsuite.org/svg/url-parsing.html with #grad it does not work in Firefox |
| 07:33 | <krit> | annevk: it does |
| 07:33 | <krit> | annevk: it is red |
| 07:33 | <annevk> | krit: refresh |
| 07:34 | <annevk> | In Nightly there is no red |
| 07:34 | <annevk> | Only if I change it to url-parsing.html#grad |
| 07:34 | <annevk> | That means Firefox actually does sensible URL parsing here |
| 07:35 | <krit> | annevk: hm, interesting… it does work locally |
| 07:35 | <krit> | no it doesn't |
| 07:36 | <annevk> | Yay Firefox for sanity |
| 07:37 | <krit> | annevk: It does work in Safari, Chrome and IE |
| 07:38 | <annevk> | krit: I recommend we get them to fix this bug |
| 07:38 | <krit> | ed: willing to change the behavior on Blink —^ |
| 07:38 | <krit> | *in |
| 07:39 | <annevk> | not sure ed is in this channel |
| 07:39 | <krit> | argh, wait |
| 07:39 | <krit> | he is offline :( |
| 07:39 | <annevk> | ah okay |
| 07:39 | <krit> | I know why this happens in WebKit and Blink and the implementation needs to be fixed anyway |
| 07:40 | <annevk> | Yeah, you told me they parse the URL and then grab the fragment not doing any comparisons |
| 07:40 | <krit> | annevk: I wouldn’t mind changing the behavior in WebKit when I get to implement it |
| 07:40 | <annevk> | Very happy Firefox didn't fuck it up |
| 07:40 | <krit> | annevk: this is not fully true anymore…. style.css#frag doesn’t work either |
| 07:41 | <annevk> | Fair, so they must special case # at the start somehow |
| 07:42 | <krit> | annevk: yes, I assume we check the baseURL at the beginning… later we just care about the fragment identifier |
| 07:42 | <krit> | annevk: I am willing to change that |
| 07:43 | <krit> | annevk: so /document/ is still not correct in the algorithm… it must always check associated document URL |
| 07:43 | <krit> | annevk: which can be /document/ but doesn’t need to |
| 07:43 | <annevk> | krit: yeah, we should probably split CSS and element handling |
| 07:43 | <annevk> | krit: otherwise this gets too confusing |
| 07:44 | <krit> | annevk: yes, we would split it anyway and the behavior needs to go to CSS directly |
| 07:44 | <krit> | annevk: as a general behavior for future usage of url() |
| 07:46 | <annevk> | krit: yeah, my plan is to write an email to www-style about this and work with TabAtkins to make it happen |
| 07:47 | <annevk> | krit: but before I do that I think it would be good for us to write the actual algorithms to make sure we're not missing anything |
| 07:48 | <krit> | annevk: k. |
| 07:48 | <krit> | annevk: Btw. with stacked SVGs, fragment sniffing is still possible cross domain |
| 07:48 | <krit> | annevk: the one thing the abarth thought would be a problem |
| 07:49 | <krit> | annevk: not sure if it really is a problem since you can mostly do it with JS today |
| 07:49 | <krit> | annevk: or even manually |
| 07:50 | <krit> | annevk: just clip-path: url() is still a problem since it changes geometry… but this would require sensitive data within the clip-path |
| 07:51 | <krit> | ...so encoding a password in the path data of clip-path |
| 07:52 | <krit> | which we of course can not prevent someone from doing…. but it is extremely unlikely as well |
| 07:57 | <annevk> | how can you do fragment sniffing using :target? |
| 07:58 | <krit> | annevk: no, abarth use case was the active involvement of the user |
| 07:58 | <krit> | annevk: with :target you can make certain element visible or invisible |
| 07:58 | <annevk> | but you don't know anything about the remote file |
| 07:58 | <krit> | annevk: not without the help of the user |
| 07:59 | <krit> | annevk: the link from abarth https://news.ycombinator.com/item?id=7855168 |
| 07:59 | <annevk> | I don't understand, the remote file would have to use :target |
| 07:59 | <krit> | annevk: yes, that is true |
| 07:59 | <annevk> | I don't really follow the attack scenario |
| 08:00 | <annevk> | Anyway, back in a bit |
| 08:44 | <Manishearth> | annevk: So do you think that in the sync case, all readystatechange events should be fired? |
| 08:45 | <Manishearth> | because thir handlers will only be executed after the sync finishes |
| 08:45 | <Manishearth> | or should the *last* one be the only one to fire? |
| 08:49 | <annevk> | krit: I updated the algorithms |
| 08:49 | <annevk> | krit: they now work for either style sheets or documents |
| 08:49 | <krit> | looking |
| 08:49 | <annevk> | Manishearth: only the last |
| 08:50 | <Manishearth> | annevk: Alrighty. Same answer for progress events? |
| 08:50 | <Manishearth> | (only fire the last triplet of events) |
| 08:51 | <annevk> | Manishearth: the idea is that sync would invoke "To process response end-of-file for response, run these substeps: " |
| 08:51 | <annevk> | Manishearth: there's a bug now though that state would not be LOADING |
| 08:51 | <Manishearth> | annevk: exactly :) |
| 08:51 | <Manishearth> | that's how I found it out |
| 08:52 | <annevk> | Manishearth: yeah I should rewrite this a bit to make it more clear what the synchronous handling is |
| 08:52 | <Manishearth> | My ready state in sync wasn't changing because I had implemented the spec, and I thought I had misinterpreted the "If req's synchronous flag is set, pass the return value, synchronously, to process response end-of-file below." |
| 08:54 | <annevk> | Manishearth: how would you like to be acknowledged? |
| 08:54 | <annevk> | Manish Goregaokar? |
| 08:54 | <Manishearth> | annevk: I think a simple `If state is LOADING or the sync flag is set, run these subsubsteps:` would work |
| 08:54 | <Manishearth> | annevk: yeah |
| 08:54 | <Manishearth> | thanks |
| 08:54 | <krit> | annevk: to confirm, for #get-svg-element it is not possible for authors to specify a dataURL or blob… in general it seems just possible for fetching images |
| 08:54 | <krit> | annevk: note: no idea if dataURL or blog would make sense |
| 08:54 | <krit> | hee |
| 08:54 | <krit> | here |
| 08:55 | <annevk> | why would it not be possible? |
| 08:56 | <krit> | annevk: in your algorithm it would run into fetch, no? |
| 08:56 | <annevk> | krit: yes, and Fetch handles data and blob URLs |
| 08:56 | <krit> | annevk: fetch is not permitted if /internal only flag/ is true |
| 08:57 | <krit> | annevk: that means dataURL and blob are not allowed for SVG as image |
| 08:57 | <krit> | image/svg+xml |
| 08:57 | <annevk> | krit: no it doesn't |
| 08:57 | <annevk> | krit: the internal only flag is for cases that don't handle external references |
| 08:57 | <annevk> | krit: it's not for SVG as image |
| 08:57 | <krit> | ok, got it |
| 08:58 | <annevk> | lets rename that one to local only flag |
| 08:58 | <krit> | annevk: #get-local-svg-element seems to allow style.css#frag |
| 08:58 | <annevk> | no it doesn't |
| 08:59 | <annevk> | /baseURL/ would be the style sheet's URL and /document/ would be the style sheet's associated document |
| 08:59 | <krit> | annevk: oh, because we do not look at external CSS anymore? |
| 08:59 | <krit> | ahh |
| 08:59 | <krit> | ok |
| 08:59 | <krit> | annevk: is that defined that way in Fetch alread? |
| 08:59 | <krit> | annevk: or does the algorithm need to do that |
| 09:00 | <annevk> | Is what defined? |
| 09:00 | <annevk> | Manishearth: it might take me a while to get to this, I'd like to fix it more properly than that |
| 09:00 | <Manishearth> | annevk: Ah, I see. No problem |
| 09:00 | <krit> | annevk: this “/document/ would be the style sheet's associated document" |
| 09:00 | <Manishearth> | We might have to change the wording for the error handling too |
| 09:01 | <annevk> | krit: no, that all needs to be handled by SVG and CSS |
| 09:01 | <annevk> | krit: Fetch only deals with getting a bag of bits out of a URL |
| 09:01 | <annevk> | krit: and all the hassle that comes with that, it doesn't have magic built in |
| 09:02 | <krit> | no magic, k :D |
| 09:02 | <annevk> | krit: what Fetch handles is indicated with [FETCH] |
| 09:02 | <krit> | thanks |
| 09:03 | <annevk> | everything else, including the line indicated with [FETCH] (so everything really) needs to be in SVG / CSS |
| 09:05 | <annevk> | krit: actually, maybe these algorithms should take a parsedURL and a document, that seems better |
| 09:06 | <krit> | annevk: fetching an SVG element: “...MIME type is not image/svg+xml” what about application/xml |
| 09:06 | <krit> | annevk: SVG can still be an XML documen |
| 09:06 | <krit> | t |
| 09:06 | <krit> | annevk: or, inline SVG, where the fetched SVG element is in an HTML document |
| 09:06 | <annevk> | I thought that was outlawed |
| 09:07 | <krit> | annevk: The CSS example that you uploaded used it. ok was local, but I think FF supports it for other HTML documents as well |
| 09:08 | <krit> | annevk: only Firefox would support it… |
| 09:08 | <annevk> | local is completely different |
| 09:08 | <annevk> | krit: depends, how does <use> work? |
| 09:09 | <krit> | annevk: uses the processing algorithm from SVG that you referenced yesterday |
| 09:10 | <krit> | annevk: not restricted to mime type it seems |
| 09:10 | <krit> | annevk: http://www.w3.org/TR/SVG/linking.html#processingIRI |
| 09:11 | <annevk> | krit: what about implementations? |
| 09:11 | <krit> | annevk: again, just Firefox would have implemented it… maybe Presto |
| 09:11 | <krit> | annevk: creating an example |
| 09:12 | <annevk> | krit: I thought ed demonstrated external <use> support in Blink? |
| 09:12 | <krit> | oh right… was about to check for CSS |
| 09:17 | <krit> | annevk: for CSS I don’t even get it to work with paint server in another SVG file right now... |
| 09:17 | <krit> | annevk: same for paint server in an SVG |
| 09:17 | <krit> | s/SVG/HTML/ |
| 09:19 | <krit> | annevk: ok, paint server in SVG document works… in HTML doesn't |
| 09:19 | <krit> | annevk: for CSS on Firefox |
| 09:19 | <annevk> | krit: so I thought the idea was that external SVG elements would follow the SVG as image path |
| 09:19 | <annevk> | krit: which means only image/svg+xml |
| 09:20 | <krit> | annevk: the same mode… |
| 09:20 | <krit> | annevk: same mode as image/svg+xml |
| 09:20 | <krit> | annevk: but let me check <use> first |
| 09:23 | <krit> | annevk: example with <use> to other <svg> https://dl.dropboxusercontent.com/u/39760138/self/selfReference.html |
| 09:24 | <krit> | annevk: seems not to work in FF, but in Safar/Chrome |
| 09:25 | <krit> | annevk: https://dl.dropboxusercontent.com/u/39760138/self/selfReference2.html <use> element reference to HTML |
| 09:25 | <krit> | annevk: doesn’t work anywhere |
| 09:27 | <krit> | annevk: ok, had a styling issue… first example works in FF now |
| 09:27 | <krit> | annevk: 2nd seems to run in loops |
| 09:28 | <krit> | annevk: FF doesn’t stop loading |
| 09:28 | <krit> | annevk: possibly a bug in FF |
| 09:29 | <krit> | annevk: https://dl.dropboxusercontent.com/u/39760138/self/selfReference3.html in this case I have a other.xml that I reference it works… but probably because browsers don’t always trust the mime type |
| 09:30 | <krit> | annevk: Firefox loads it with MIME type application/xml |
| 09:30 | <krit> | annevk: other.xml |
| 09:31 | <annevk> | krit: okay, that does indicate the MIME type check is different for external references from images |
| 09:31 | <krit> | so image/svg+xml and application/xml should be possible |
| 09:31 | <annevk> | which seems like a good reason keep external references and images distinct |
| 09:31 | <annevk> | and potentially apply different fetch modes to them |
| 09:37 | <roc> | this again! |
| 09:38 | <roc> | I thought we had previously converged on a consensus to make external references and images use the same fetch model |
| 09:40 | <annevk> | hey roc |
| 09:40 | <annevk> | roc: it seems that is impossible given that we support things like image.svg#test |
| 09:41 | <annevk> | roc: http://dahlström.net/svg/structure/svgstack-usage.html |
| 09:41 | <annevk> | roc: we're trying to figure out SVG/CSS fetching bits a bit more formally here https://etherpad.mozilla.org/fixing-svg-processing |
| 09:50 | <roc> | I thought the resolution was to make everything use the image model |
| 10:01 | <annevk> | roc: given mask:url(someurl#test) |
| 10:01 | <annevk> | roc: how do we know whether that's an image with #test or an mask identified by #test? |
| 10:02 | <roc> | do an image load |
| 10:02 | <roc> | if #test is a <mask> element, treat it as a mask |
| 10:03 | <roc> | do some kind of same-origin check |
| 10:03 | <roc> | We had this worked out somewhere |
| 10:04 | <annevk> | Manishearth: should be more clear now |
| 10:04 | <annevk> | roc: yes, except http://dahlström.net/svg/structure/svgstack-usage.html seems to kill that solution |
| 10:05 | <annevk> | roc: and apparently we allow more than SVG images for these loads (e.g. application/xml resources) |
| 10:05 | <roc> | no it doesn't. None of the referenced elements there are <mask>s |
| 10:05 | <roc> | or <pattern>s or gradients |
| 10:06 | <annevk> | roc: fair |
| 10:06 | <annevk> | roc: what about supporting more than image/svg+xml? |
| 10:08 | <annevk> | roc: I think the other thing that changed is that we learned image fetching is really rather involved: https://www.w3.org/Bugs/Public/show_bug.cgi?id=24055 |
| 10:08 | <roc> | I don't think supporting application/xml is important |
| 10:08 | <roc> | servers are likely to map *.svg to image/svg+xml anyway |
| 10:08 | <annevk> | roc: which means that overloading it with external element references might be painful, but I guess we can deal |
| 10:09 | <annevk> | I'm happy to write out that solution |
| 10:09 | <roc> | I don't think we'd be overloading it. I assume the image fetch algorithm eventually can produce something with an SVG DOM |
| 10:09 | <annevk> | krit: ^ |
| 10:09 | <annevk> | roc: yeah fair, image fetch has a branch for image/svg+xml |
| 10:09 | <roc> | that is, I assume it can produce many results, at least some of which have an SVG DOM |
| 10:10 | <roc> | then we just need to be able to do some kind of same-origin check and get read-only access to the DOM |
| 10:11 | <annevk> | yeah, we'd parse with scripting disabled |
| 10:11 | <roc> | of course animations could be running in the DOM so it's a bit more complicated than that, but it should work |
| 10:11 | <annevk> | and then we need some kind of "safe render mode for SVG" that handles the rest |
| 10:11 | <annevk> | that disables fetching more resources |
| 10:12 | <roc> | yeah, we already have that implemented. I think SVG specced something like that or at least talked about it |
| 10:12 | <annevk> | only talk so far, we're trying to write down the basics now |
| 10:12 | <krit> | roc: the solution from annevk adds heuristics that would allow assumptions on the fetched resource before fetching it…. local element or image is that |
| 10:13 | <krit> | roc: that would be significant easier to implement in WebKit and Blink |
| 10:13 | <krit> | roc: without need to rewrite our CSS engine |
| 10:13 | <roc> | krit: you mean heuristics to guess whether it's an image load or an external resource load? |
| 10:13 | <roc> | I advocated that for a long time myself :-) |
| 10:13 | <krit> | roc: yes |
| 10:13 | <annevk> | krit: no |
| 10:13 | <annevk> | that algorithm only handles local references or images |
| 10:13 | <annevk> | not external references |
| 10:14 | <annevk> | if you want both you need the solution roc and I came up with a year ago |
| 10:14 | <krit> | annevk: of course since your algo. does not allow fetching for things that can get an element or image… so we check the baseURL to figure that part out |
| 10:14 | <krit> | annevk: my point |
| 10:14 | <roc> | I thought we could say url(...#foo) is an external resource load and too bad about SVG image stacks |
| 10:14 | <roc> | however |
| 10:14 | <krit> | annevk: I don’t want both |
| 10:14 | <annevk> | krit: yes but roc does |
| 10:14 | <roc> | I don't want that approach anymore |
| 10:14 | <roc> | now I think just using image fetch will be fine |
| 10:15 | <roc> | and simpler |
| 10:15 | <krit> | roc: would you be fine with no external paint server loads on url() function? |
| 10:15 | <krit> | roc: cool |
| 10:15 | <roc> | er |
| 10:15 | <annevk> | krit: you misunderstand roc |
| 10:15 | <krit> | maybe |
| 10:15 | <krit> | roc: say again please? |
| 10:15 | <roc> | I'm saying you can have external paint servers, it's just that the document is always loaded using the image fetch algorithm |
| 10:16 | <krit> | roc: yeah, that is what Anne and I discussed on monday |
| 10:16 | <annevk> | krit: if image fetch returns an SVG document and fragment points to a <mask> in it, it's a mask, otherwise an image, stuff like that |
| 10:16 | <roc> | so fill:url(foo.svg#bar) would load foo.svg as an image, and then if the 'bar' element is a paint server, it gets used as a paint server, otherwise it's treated as the foo.svg#bar image |
| 10:16 | <krit> | roc: again, would require to rewrite parts of WebKit and Blinks CSS engine |
| 10:17 | <krit> | roc: Blink doesn’t seem to be keen about external element fetches for url() either |
| 10:17 | <krit> | *as well |
| 10:17 | <roc> | I don't see what the problem is |
| 10:17 | <annevk> | krit: Blink is fine with it as long as the security check is there |
| 10:17 | <annevk> | abarth said as much the other day |
| 10:17 | <krit> | roc: no, abarth is |
| 10:17 | <roc> | Blink/Webkit don't currently support "external resource reference" loads, but they do support SVG image loads. Gecko supports both |
| 10:17 | <krit> | annevk: —^ |
| 10:18 | <krit> | roc: right, we don't |
| 10:18 | <roc> | I'm proposing we eliminate external resource reference loads and only use SVG image loads, which Webkit/Blink already have. This is a great proposal for those guys :-) |
| 10:18 | <krit> | roc: that is Annes solution |
| 10:18 | <krit> | roc: element references just in the current SVG document |
| 10:19 | <krit> | roc: no external element references |
| 10:19 | <annevk> | krit: no it's not |
| 10:19 | <annevk> | geez |
| 10:19 | <roc> | krit: I think you're confused but I don't know exactly how :-) |
| 10:19 | <krit> | annevk: #get-svg-element To get an SVG element given a /url/, a /document/, and an optional /internal only flag/: does exactly that |
| 10:20 | <annevk> | krit: no it doesn't support external SVG elements |
| 10:20 | <annevk> | krit: roc is proposing we do |
| 10:20 | <krit> | roc: fill: url(externDocument.svg#pattern) is not supported in WebKit and Blink… but in FF… do you want it to work or don’t you care? |
| 10:20 | <annevk> | krit: you apply the same fetch algorithm as for images, and then you do post processing to determine whether or not it's an image or an external ref |
| 10:21 | <roc> | what Anne said |
| 10:21 | <krit> | roc: too bad :( |
| 10:21 | <roc> | ? |
| 10:22 | <krit> | roc: I am not advocating for allowing external paint servers |
| 10:22 | <roc> | you mean you're against it? |
| 10:22 | <krit> | roc: so your opinion is not mine :) |
| 10:22 | <krit> | roc: even so I agree that it works in theory |
| 10:24 | <krit> | roc: don’t believe that the implementation efforts for fetching the resource and figuring out what it is are worth it in WebKit |
| 10:24 | <roc> | ok |
| 10:24 | <krit> | roc: simple cost to usage calculation |
| 10:24 | <roc> | that's a reasonable position |
| 10:25 | <annevk> | roc: would you apply the same restrictions on <use>? |
| 10:26 | <roc> | Given we already support external references in some form, the Gecko situation is a bit different and we might reach a different conclusion. |
| 10:27 | <krit> | annevk: <use> is a different code path for us. However, <pattern> and co. with xlink:href still don’t need to reference external elements IMO |
| 10:27 | <krit> | roc: yes, right now I am entirely speaking as implementer... |
| 10:28 | <krit> | …implementer for WebKit and Blink |
| 10:28 | <roc> | annevk: I would just say that <use> does an SVG image load and uses any element it can find. I don't think <use> is or will be specced to actually use an image. |
| 10:29 | <annevk> | roc: yeah, just wondering if it would be restricted to image/svg+xml as well, but that sounds good to me |
| 10:29 | <krit> | roc: so we could agree on the general "fetch as image” algorithm. It might be implemented in two stages in WebKit and Blink… 2nd stage being external element |
| 10:29 | <krit> | s |
| 10:29 | <krit> | roc: annevk: speaking for the CSS part of it |
| 10:30 | <roc> | annevk: yeah, I think there's no point in speccing a fetch algorithm just for <use> |
| 10:30 | <annevk> | roc: sgtm |
| 10:31 | <krit> | roc: What about <pattern>, <linearGradient>/ |
| 10:32 | <krit> | roc: both are not allowed to reference external elements in SVG… at least it could be interpreted that way |
| 10:32 | <krit> | roc: (SVG is not specific enought) |
| 10:32 | <krit> | roc: does Firefox allow referencing elements in other documents? <pattern xlink:href=“other.svg#patter”/> |
| 10:33 | <roc> | yeah I think so |
| 10:33 | <roc> | in Gecko we have nsReferencedElement which handles tracking dynamic ID changes etc |
| 10:33 | <roc> | it also handles external resource loads automatically |
| 10:33 | <krit> | roc: ok |
| 10:34 | <krit> | roc: I guess WebKit can generalize the code more to handle these elements as well |
| 10:35 | <krit> | annevk: ok, looks like one algorithm could be enough with a sub algorithm for image handling |
| 10:36 | <krit> | roc: another question mask: url(other.svg#maskDoesNotExist) would you interpret that as image with the new mask-image syntax? |
| 10:36 | <annevk> | krit: yeah, and we'd disable the image path for <use> and such |
| 10:36 | <annevk> | krit: yes that would be an image |
| 10:37 | <annevk> | krit: otherwise "stacked images" would not work |
| 10:37 | <krit> | annevk: exactly |
| 10:37 | <annevk> | we already covered that earlier |
| 10:38 | <krit> | annevk: also, ignore abarth external image fragment sniffing? |
| 10:38 | <krit> | annevk: (me doesn’t think it is a strong case anyway) |
| 10:39 | <annevk> | krit: well we could require CORS opt-in for the external ref case (and only make images work for opaque responses) |
| 10:39 | <annevk> | krit: depends a bit on security guys |
| 10:39 | <krit> | annevk: yes |
| 10:40 | <annevk> | I guess this requires some additional parameter to the algorithm to indicate what is expected |
| 10:41 | <krit> | annevk: we require that later anyway when url() gets CORS arguments, don’t we? |
| 10:41 | <annevk> | krit: if we don't require it now, CORS won't make a difference later |
| 10:41 | <krit> | annevk: so the algorithm can already pretend that this is an argument |
| 10:42 | <krit> | annevk: well what is the point of the parameters for url() anyway then |
| 10:42 | <annevk> | we need it at least for @import |
| 10:42 | <krit> | annevk: ok |
| 10:42 | <annevk> | we might need it for the external ref case, that depends on security analysis |
| 10:43 | <annevk> | it seems we need it for clip too |
| 10:44 | <krit> | annevk: shape-outside as well |
| 10:45 | <krit> | annevk: which has same-origin restrictions at the moment IIRC |
| 10:45 | <krit> | annevk: http://dev.w3.org/csswg/css-shapes/#shape-outside-property |
| 10:46 | <krit> | annevk: see <image> |
| 10:46 | <krit> | annevk: CORS enabled fetch |
| 10:47 | <annevk> | Fonts have something similar, so I guess CSS is already a bit of a mismatch between things |
| 10:49 | krit | head out for lunch |
| 10:58 | <Ms2ger> | SVG iframe element? Wat? |
| 11:00 | <roc> | yes, I'm not a fan either |
| 11:01 | <Ms2ger> | Do we expect Intent to Implement for preffed-off features? |
| 11:03 | <annevk> | Ms2ger: wrong channel? But I think so |
| 11:03 | <Ms2ger> | I'm pretty sure I haven't seen one for SVG iframes |
| 11:38 | <Ms2ger> | Anyone else having trouble reaching krijn? |
| 11:39 | <annevk> | Ms2ger: he seems to be doing some cycling |
| 11:39 | <Ms2ger> | Carrying his server? |
| 11:56 | <krit> | Ms2ger: roc: Not a fan of it as well. But maybe from a different perspective? I don’t like the duplication of code… tho could be done with <foreignObject …><html><iframe/></html></foreignObject> today. At least in theory. Just Firefox allows iframe as ancestor of <foreignObject>. |
| 11:59 | <roc> | Ms2ger: powercycling perhaps? |
| 11:59 | <roc> | krit: you mean descendant |
| 11:59 | <krit> | roc: right |
| 12:03 | <Ms2ger> | krit, sure, but fixing browser bugs by implementing new features doesn't really work |
| 12:05 | <krit> | Ms2ger: I don’t like having iframe in HTML NS and another one in SVG NS. Even though both use the same code in the background. And I am not saying that it is intend to be a work around for browser bugs. |
| 12:06 | <Ms2ger> | Oh, misread, then |
| 12:08 | <roc> | annevk: oh boy. https://svgwg.org/svg2-draft/embedded.html |
| 12:08 | <roc> | annevk: I did not know about this. |
| 12:08 | <Ms2ger> | SVG 2 Requirement: - Have a video element in SVG namespace with the same characteristics as the HTML 5 video element. |
| 12:08 | <Ms2ger> | - Support 'canvas' element in SVG 2 |
| 12:08 | <Ms2ger> | Nice |
| 12:09 | Ms2ger | volunteers roc to keep an eye on the SVGWG |
| 12:16 | <annevk> | roc: not sure if we should do any of that |
| 12:17 | <roc> | it looks crazy to me |
| 12:17 | <Ms2ger> | Yay, namespaces! |
| 12:18 | <krit> | annevk: well, we should keep image! |
| 12:18 | <krit> | the rest won’t survive the CR period |
| 12:18 | <krit> | (and foreignObject should stay as well… for legacy) |
| 12:19 | <Ms2ger> | Let's kick it out before CR? |
| 12:19 | <roc> | people are trying to implement SVGIframeElement for Gecko |
| 12:19 | <roc> | we need to kick it out now |
| 12:19 | <krit> | roc: they do? |
| 12:19 | <roc> | yep |
| 12:19 | <annevk> | roc: why was there no email to dev.platform? |
| 12:19 | <Ms2ger> | Yes |
| 12:19 | <roc> | not us |
| 12:19 | <krit> | roc: didn’t see an intent to implement |
| 12:19 | <roc> | contributors |
| 12:19 | <Ms2ger> | Nope |
| 12:19 | <roc> | right |
| 12:20 | <Ms2ger> | That's what I was complaining about above |
| 12:20 | <roc> | I actually noticed this a month ago, commented in the bug, and then forgot about it. Oops. |
| 12:20 | <krit> | :) |
| 12:20 | <krit> | Do make it clear: I support having video and canvas within SVG content… just not SVG elements for it |
| 12:21 | <roc> | yeah |
| 12:21 | <annevk> | SVG hasn't even explained their version of the <script> element in detail |
| 12:22 | <annevk> | Is there some way to leave comments on the SVG spec that won't get lost? |
| 12:22 | <roc> | www-svg |
| 12:22 | <Ms2ger> | I don't think so |
| 12:22 | <Ms2ger> | Mailing list comments tend to get lost |
| 12:22 | <Ms2ger> | More so if convenient |
| 12:22 | <roc> | you can always point to them and say "I told you so" |
| 12:22 | <roc> | that's the most important thing for me :-) |
| 12:23 | <Ms2ger> | I'd say getting the spec fixed is more important, as is having a clear list of open issues |
| 12:23 | <roc> | maybe |
| 12:24 | <roc> | in practice it's usually easier for me to send an email to a list than file a bug or use some other issue tracker |
| 12:24 | <roc> | so that's what I do |
| 12:24 | <roc> | if I can |
| 12:24 | <Ms2ger> | I didn't say that was easier :) |
| 12:24 | <Ms2ger> | I said it was less likely to get lost |
| 12:25 | <krit> | roc: oh, annevk can do that |
| 12:26 | <krit> | roc: Ms2ger: also, <script> will be specced in the way it is in HTML |
| 12:26 | <Ms2ger> | I'd have suggested heycam, but I need him for IDL |
| 12:27 | <krit> | roc: Ms2ger: there is just a difference how to reference an external script.. which we try to harmonize as well |
| 12:27 | <krit> | Ms2ger: heycam is *just* the chair of the SVG WG… what can he do :P |
| 12:27 | <annevk> | roc: I'll sort it out |
| 12:28 | <Ms2ger> | Fix IDL bugs full-time for the next 6 months :) |
| 12:28 | <krit> | annevk: well, what is there to sort out if we follow HTML on <style>, <script> and the other elements derived from HTML? |
| 12:28 | <roc> | I'm composing an email to www-svg right now :-) |
| 12:29 | <annevk> | oh ok |
| 12:29 | <krit> | annevk: even synchronous loading… event handling and so on is harmonized with HTML now |
| 12:29 | annevk | is preparing some eggs |
| 12:30 | <annevk> | krit: you can't just say "follow", you actually have to write things out and see if it works |
| 12:30 | <annevk> | krit: e.g. <html:style> does not work if there's no associated browsing context |
| 12:31 | <annevk> | krit: seems like SVG wants something else there |
| 12:31 | <krit> | annevk: you have to write that <script> behaves as HTML <script> and reference HTML <script>… no complex wording needed. That was one of the biggest mistakes of SVG 1.1 that it did that |
| 12:31 | <annevk> | Yeah so that is bullshit |
| 12:31 | <krit> | annevk: no it is not |
| 12:31 | <krit> | annevk: it is bullshit to disrespect everything others do |
| 12:33 | <annevk> | ? |
| 12:33 | <annevk> | I just gave an example of why it doesn't work and then you say it does |
| 12:33 | <Ms2ger> | <annevk> Yeah so that is bullshit |
| 12:35 | <MikeSmith> | sloppy work doesn't deserve respect |
| 12:35 | <MikeSmith> | it merits being called what it is |
| 12:36 | <roc> | people do though |
| 12:36 | <MikeSmith> | sure |
| 12:37 | <MikeSmith> | but it's important for people to not get defensive when others point out sloppiness in their work |
| 12:38 | <MikeSmith> | and it's important for them to also understand why people lose patience with sloppiness |
| 12:38 | <krit> | MikeSmith: defensive by asking for respect in the wording you use? That is called politeness. |
| 12:39 | <MikeSmith> | he was just speaking his mind |
| 12:39 | <MikeSmith> | he didn't write that up as a message to the group or the editors |
| 12:39 | jgraham | is convinced that having an argument will solve everything |
| 12:39 | <krit> | MikeSmith: being impolite nearly always results in defensive and offensive behavior which will never lead to better specws |
| 12:40 | <krit> | jgraham: agree |
| 12:40 | <Ms2ger> | I don't think using "bullshit" was necessary or helpful |
| 12:42 | <krit> | anyway, to get back… We, speaking as a member of the SVG WG, always welcome feedback… www-svg is the right email list for that. The chairs are usually good at tracking the feedback we get and bring it up during calls. |
| 12:45 | <krit> | even better are concrete examples that don’t work and suggestions how to improve the situation. |
| 12:46 | <krit> | annevk: so if you could bring up your issue with the associated browsing context and <style> to the www-svg mailing list, this would be very appreciated |
| 12:48 | <krit> | annevk: as said before… the general theme for SVG2 is to harmonize the spec with HTML as much as possible. Browsers mostly do that today anyway. |
| 12:50 | <krit> | annevk: there are even ideas to let SVG elements inherit from HTMLElement… this is an ambitious task that needs a lot of considerations |
| 12:51 | <darobin> | I have to say that's the kind of bullshit that I would welcome heartily |
| 12:51 | <annevk> | Yes it does, can you sympathise with "bullshit" re "no complex wording needed" above? |
| 12:52 | <annevk> | roc: are you going to give feedback about <iframe> and such or should I? |
| 12:55 | <roc> | I will |
| 12:57 | <Ms2ger> | krit, inherit sounds weird... Right now "implements HTMLElement" === "in the HTML namespace", I'd rather not mess with that invariant |
| 12:58 | <krit> | Ms2ger: yes the namespacing is one of the issues… the biggest one for backwards and forwards compatibility |
| 12:58 | <krit> | Ms2ger: but in the long term.. do we really want to preserve the SVG namespace? |
| 12:59 | <Ms2ger> | I have no love for it |
| 12:59 | <Ms2ger> | But I don't know if that's worth the time to fight with |
| 13:00 | <krit> | Ms2ger: well, we are talking about months of fighting for years or decades of complaining |
| 13:01 | <Ms2ger> | What do you mean by preserving the SVG namespace? |
| 13:01 | <Ms2ger> | There's significant deployed SVG-in-XML that uses i |
| 13:02 | <Ms2ger> | So I suspect browsers won't be able to forget it entirely |
| 13:02 | <krit> | Ms2ger: no, that is indeed a huge part of the discussion |
| 13:03 | <annevk> | You could change the XML parser |
| 13:03 | <Ms2ger> | That's an option, yes |
| 13:03 | <Ms2ger> | Not one I'd take lightly, though |
| 13:04 | <krit> | Ms2ger: there are more issues. One is the <image> element with its different function set than <img> |
| 13:04 | <krit> | Ms2ger: <image> works in most HTML documents today and will create an HTMLImageElement |
| 13:05 | <krit> | Ms2ger: so how to differ between SVG <image> and “HTML” <image> |
| 13:05 | <Ms2ger> | I wish I could forget about that, but I know :/ |
| 13:06 | <krit> | Ms2ger: it goes on with (and we come back to it) <script> and <style> which we are working on harmonizing but certain things are still special for legacy content… like xlink:href on <script> |
| 13:07 | <krit> | Ms2ger: this might require changes to HTML… would HTML be willing to do that? |
| 13:08 | <Ms2ger> | I'm not going to say no without a concrete proposal |
| 13:08 | <Ms2ger> | It seems possible |
| 13:08 | <krit> | Ms2ger: on the other hand… SVG DOM for <style> is mostly useless… it won’t hurt to get rid of it |
| 13:10 | <krit> | Ms2ger: Btw. the Blink team experimented with using the HTML parser even for standalone SVG documents. Missing support for XML entities seemed to be the biggest problem… not a huge problem for newer content though |
| 13:10 | <annevk> | XML entities? |
| 13:10 | <annevk> | People actually declare internal DTDs for SVG? |
| 13:12 | <krit> | annevk: in the past they did |
| 13:20 | <darobin> | I haven't seen that in a while though tbh |
| 13:20 | <darobin> | annevk: a large part of the problem here is that Illustrator would make use of that |
| 13:20 | <darobin> | I think more recent versions don't do that anymore |
| 13:21 | <annevk> | good times |
| 13:26 | <darobin> | annevk: that's possibly the least of the horrors that Illustrators did to SVG :) |
| 13:41 | <annevk> | krit: I updated the algorithm |
| 13:41 | <annevk> | krit: could remove most of it now |
| 14:23 | <zewt> | |
| 14:23 | <zewt> | |
| 14:24 | <zewt> | well okay |
| 15:06 | <JonathanNeal> | What happened to SVG? |
| 15:12 | <TabAtkins> | annevk: I'm convincing blink people that working on "just put SVG in the HTML namespace" is worthwhile. |
| 15:12 | <TabAtkins> | The hoops you have to jump through to get Web components to work with SVG are terrible currently. |
| 15:18 | <darobin> | TabAtkins: that would be awesome |
| 15:20 | <annevk> | TabAtkins: I'm not sure what that means |
| 15:21 | <annevk> | TabAtkins: are you also convincing your employer to employ an editor to work fulltime on fixing SVG? :) |
| 15:28 | <Domenic> | At Lab49 we did a lot of SVG for our banking apps, and it was slow/buggy in Chrome. Might be able to squeeze it into the mobile performance banner. |
| 15:28 | <Ms2ger> | Remove SVG for mobile perf? |
| 15:28 | <Ms2ger> | Be careful what you wish for |
| 15:32 | <jgraham> | If we make SVG the way froward, presto is the rendering engine of the future |
| 15:32 | <jgraham> | *forward |
| 15:54 | <TabAtkins> | annevk: It roughly means what I said: putting svg into the html namespace. |
| 15:54 | <TabAtkins> | Plus the attendant changes to deal with that. |
| 15:55 | <annevk> | TabAtkins: what happens to the SVG namespace? |
| 15:55 | <annevk> | TabAtkins: what classes do they implement? |
| 15:55 | <TabAtkins> | We're working out the details. |
| 15:55 | <annevk> | TabAtkins: in public? |
| 15:55 | <TabAtkins> | It'll be hacky, I'm sure. |
| 15:55 | <TabAtkins> | Once we have an inkling if what might work, yes. |
| 15:56 | <jgraham> | That sounds like "no" |
| 15:57 | <Ms2ger> | I heard "no" too |
| 15:58 | <TabAtkins> | You guys have some strange ears |
| 16:00 | <annevk> | More like strange IRC clients |
| 16:08 | <Ms2ger> | jamesr_, not doing storage mutex stuff by virtue of not doing any storage in Servo |
| 16:08 | <annevk> | Ms2ger: no cookies? |
| 16:08 | <Ms2ger> | None yet |
| 16:25 | <annevk> | darobin: http://discourse.specifiction.org/t/wheres-the-do-not-like-button/341 has been loading for several seconds now |
| 16:25 | <darobin> | annevk: just loaded in a snap from here |
| 16:25 | <annevk> | hmm |
| 16:25 | <darobin> | maybe some temporary hiccup? |
| 16:25 | <annevk> | seems there's occasional hanging |
| 16:25 | <darobin> | I doubled the server's power about a week ago |
| 16:26 | <darobin> | so far the load seems to be okay; but please don't hesitate to tell me again and I might double it again |
| 16:27 | <caitp> | http://jsfiddle.net/d29gj/ who's idea was this? |
| 16:27 | <caitp> | smh .v. |
| 16:30 | <caitp> | does it not, I don't know, make sense to maybe throw a type error or something if a form control's name is a property from lets say, Node or something, to avoid that nonsense? I mean really @_@ |
| 16:31 | <jgraham> | No, the design problem is that name shadows properties at all |
| 16:31 | <caitp> | yes |
| 16:32 | <caitp> | well, that whole scenario is pretty sad =( jeeze |
| 16:33 | <Domenic> | Good ol' @HTML5_Chewbacca managed to get the word out about <picture> landing: https://twitter.com/HTML5_Chewbacca/status/479277675853651968 |
| 16:38 | <caitp> | anyways, was that introduced in html of old, is that one of the more recent failures? I want to know if it's too late to file a bug about that nonsense |
| 16:39 | <jgraham> | Umm, that's actually pretty insulting |
| 16:39 | <jgraham> | :) |
| 16:39 | <caitp> | well it's clearly a failure, the question is if it's too late to fix it or not |
| 16:39 | <jgraham> | I don't think anyone would have introduced that feature in the last 10 years |
| 16:39 | <jgraham> | Far too late |
| 16:40 | <jgraham> | It probably works like that in NS4 or IE5 or something |
| 16:40 | <caitp> | bleh |
| 16:40 | <caitp> | the immobility of this stuff is really disheartening =) |
| 16:44 | <annevk> | mounir: is denying of locking exceptional? https://www.w3.org/Bugs/Public/show_bug.cgi?id=25054#c8 |
| 16:44 | <annevk> | mounir: otherwise you should not reject the promise |
| 16:47 | <annevk> | Domenic: that bit about promises is really unintuitive at the moment |
| 16:47 | <annevk> | Domenic: it makes more sense in the try await catch world, but now... |
| 16:47 | <Domenic> | it seems reasonable, for a method named lockOrientation, that if you can't lock the orientation, it's an exceptional condition |
| 16:48 | <Domenic> | if it were named canLockOrientation(), then getting back "no" would not be exceptional |
| 16:48 | <Domenic> | if it were named "requestToLockOrientation()," then the answer is kind of wishy-washy. |
| 16:49 | <Domenic> | but yes, you should generally assume any time you reject a promise, that is essentially like throwing an exception, especially since people coding with try/catch/await will have exactly that experience. |
| 16:49 | <jgraham> | Yeah, it seems like if it were sync code you might well implement it with an exception |
| 16:54 | <mounir> | annevk: the entire lock flow assume that the lock happened when the promise succeeds |
| 16:56 | <Hixie> | zcorpan: yeah that's not a bad idea |
| 17:06 | <SamB> | so, any reason why it shouldn't *be* an exception? |
| 17:07 | <SamB> | I mean, I see no reason why exceptions can only be transported by throwing |
| 17:41 | <Hixie> | jgraham: you around? i'm getting an assertion trying to use html5lib instead of lxml.html |
| 17:41 | <Hixie> | in your anolis instance |
| 17:42 | <Hixie> | assert isinstance(buffer, bytes) is throwing, in detectEncodingMeta in inputstream.py |
| 18:09 | <gsnedders> | Hixie: anolis should just serialize attributes in alphabetical order |
| 18:09 | <gsnedders> | Hixie: and if that assertion is being hit something is badly wrong :| |
| 18:10 | <Hixie> | i'm apparently using "serializer=alllib" too, i guess i should change that to html5lib |
| 18:10 | <gsnedders> | alllib? what on earth is that |
| 18:10 | <Ms2ger> | ^ |
| 18:10 | Hixie | shrugs |
| 18:10 | gsnedders | blames jgraham |
| 18:10 | <Ms2ger> | I think the alphabetical-serializing merged |
| 18:10 | <Hixie> | merged? |
| 18:11 | <gsnedders> | Ms2ger: given I think jgraham hasn't updated PMS in years… |
| 18:11 | <Ms2ger> | That's the new-fangled term for landing a patch |
| 18:11 | <Ms2ger> | gsnedders, I thought he did at some point |
| 18:12 | <gsnedders> | Ms2ger: idk, I ignore all this PMS-related, um, stress |
| 18:12 | <Ms2ger> | I see what you did there |
| 18:14 | <gsnedders> | Gosh darn it Firefox crashing again |
| 18:51 | <IZh> | IZh: Hi. As I see from the standard the e-mail input field's value must consist of [a-zA-Z0-9-] characters in domain part (after @). But what about international domain names? |
| 18:51 | <IZh> | I mean user@москва.рф |
| 18:52 | <Ms2ger> | Punycode |
| 18:52 | <Ms2ger> | There is no requirement that the user sees ASCII, note |
| 18:53 | <IZh> | Ms2ger: but should a user know it's ugly e-mail version? |
| 18:53 | <Ms2ger> | No, the user could enter the internationalized version |
| 18:54 | <IZh> | And a browser will transparently convert the value? |
| 18:59 | <gsnedders> | IZh: yes |
| 18:59 | <caitp> | I don't think browsers currently do transparently convert the value, I checked that a few weeks ago when it was brought up on angular |
| 18:59 | <caitp> | unless it's locale-dependent or something |
| 19:00 | <gsnedders> | IZh: or at least that is the intention |
| 19:00 | <gsnedders> | IZh: the spec only defines the over-the-wire format and at the JS API; what the browser displays in the UI is tangential |
| 19:06 | <IZh> | I mean, if non-ascii value is not acceptable in JS, then a browser must do the convertion. |
| 19:07 | <IZh> | Or user will enter an international value and it could be considered as invalid by a browser. |
| 19:08 | <gsnedders> | But the user doesn't see the JS API. |
| 19:09 | <gsnedders> | They see whatever widget the browser provides. |
| 19:10 | <gsnedders> | How inputs in the widget map to values exposed at the JS level is up to the browser |
| 19:12 | <IZh> | Yes. But if a user will type user@москва.рф, then will it be considered invalid by browser according to the spec? |
| 19:13 | <gsnedders> | The spec makes no comment on such things. |
| 19:13 | <gsnedders> | The spec makes no requirements on UI. |
| 19:13 | <caitp> | http://jsfiddle.net/UMrw6/ yeah still no punicod-ification, need to polyfill that stuff =( |
| 19:13 | <caitp> | kind of unfortunate |
| 19:13 | <gsnedders> | An extreme example would be exposing input@type="date" (which uses the Georgian calendar at a JS/wire level) as another calendar in the UI, esp. in locales where other calendars are the default |
| 19:15 | <caitp> | gsnedders; the spec actually does comment on that |
| 19:15 | <caitp> | although I guess it's not normative per se, but |
| 19:16 | <gsnedders> | caitp: okay, only my latter statement was true |
| 19:16 | <caitp> | right, that is true |
| 19:16 | <IZh> | Ah... I see. The phrase " The value attribute, if specified and not empty, must have a value that is a single valid e-mail address." is related to only markup's and JS' provided values, and not to a value that is typed by user. |
| 19:17 | <Ms2ger> | Correct |
| 19:18 | <gsnedders> | IZh: The obvious example of this is to look at implementations of input@type="color" |
| 19:18 | <gsnedders> | IZh: Most don't expose the raw value anywhere |
| 19:21 | <IZh> | I see... |
| 20:51 | <Hixie> | gsnedders: even more obvious is type=password |
| 22:06 | <SamB> | hmm, where are the same-origin rules codified these days ... |
| 22:09 | <Hixie> | which ones? |
| 22:09 | <Hixie> | the same-origin policy pervades the entire platform |
| 22:15 | <smaug____> | anyone here familiar with dart2js? |
| 22:16 | <smaug____> | (if the whole thing is still being developed at all) |
| 22:17 | <smaug____> | ah, #dart |
| 22:17 | <SamB> | Hixie: well, I'm wondering about the definition of "same", and the interface for setting the origin to a more accessible value |
| 22:18 | <SamB> | and, like, what do different ports do to things? |
| 22:19 | <SamB> | or, say, http:// vs https:// vs ftp:// ? |
| 22:19 | <Hixie> | the definition of "same" is http://whatwg.org/html#same-origin |
| 22:19 | <Hixie> | not sure what "the interface for setting the origin to a more accessible value" means |
| 22:20 | <Hixie> | nor what you mean by "things" |
| 22:20 | <Hixie> | though i think the definition of "same" might answer that? |
| 22:20 | <SamB> | forget the "and, " before the "like, " there |
| 22:21 | <SamB> | so, yeah |
| 22:23 | <SamB> | Hixie: ah, nice, that's exactly what I was looking for |
| 22:23 | <SamB> | Hixie: anyway, I half expected this section to have been pulled out into its own spec |
| 22:23 | <Hixie> | it might be in the origin RFC as well? |
| 22:23 | <Hixie> | i'm not sure what the state of that is |
| 22:24 | <Hixie> | (i try to keep the number of specs down where possible) |
| 22:24 | <SamB> | meh @ IETF |
| 22:24 | <SamB> | except opus seems pretty cool |
| 22:26 | <SamB> | (even if it is missing the "expected results" half of its test suite ...) |
| 22:26 | <rillian> | SamB: you mean the opus test suite? |
| 22:26 | <SamB> | yeah |
| 22:26 | <rillian> | there's validation code in the RFC |
| 22:27 | <SamB> | hmm |
| 22:27 | <SamB> | maybe they just need a README in that directory on their website or something then |
| 22:27 | <rillian> | I keep meaning to run it through emscripten and make a browser test page with it |
| 22:28 | <SamB> | how does it work? |
| 22:28 | SamB | goes to see if he can understand it ... |
| 22:28 | <rillian> | https://tools.ietf.org/html/rfc6716#section-6.1 |
| 22:29 | <rillian> | the idea with opus_compare is to do a fuzzy-match, so we can declare implementations compliant even if they're not bit-exact |
| 22:29 | <rillian> | giving implementors freedom to optimize the code |
| 22:30 | <SamB> | Hixie: I'm kind of surprised there isn't a "domain name to ASCII" algorithm that converts a whole name to ASCII, putting dots between the components ... |
| 22:30 | <rillian> | there's also a smaller set for testing the .opus file encapsulation implementation. I'll agree with you that side isn't complete. |
| 22:34 | <Hixie> | SamB: http://url.spec.whatwg.org/#concept-domain-to-ascii |
| 22:34 | <Hixie> | oh nevermind |
| 22:35 | <Hixie> | that's still per-label |
| 22:35 | <Hixie> | or no? |
| 22:35 | <Hixie> | http://url.spec.whatwg.org/#concept-domain doesn't make sense to me |
| 22:35 | <Hixie> | what does "the form of a domain" look like? |
| 22:36 | <Hixie> | filed https://www.w3.org/Bugs/Public/show_bug.cgi?id=26138 |
| 22:38 | <SamB> | rillian: I guess I'd basically want to see some files like the ones on http://www.opus-codec.org/examples/ alongside the opus versions, at least |
| 22:39 | <SamB> | though I might have expected FLAC rather than .wav |
| 22:40 | <rillian> | SamB: for human listening tests? |
| 22:40 | <SamB> | rillian: I mean, I understand that implementations aren't required to use any particular output sampling rate |
| 22:43 | <SamB> | but you could downsample, say, 48k sample decodings to whatever output rate you're actually working at and test if the output is plausibly close, yeah? |
| 22:43 | <SamB> | or, worst case, do it by ear, yes |
| 22:44 | <rillian> | SamB: that's what opus_compare tries to do |
| 22:44 | <rillian> | part of the problem is that there are both fixed and floating point implementations |
| 22:44 | <rillian> | so you can exactly verify the entropy coder output, but not the audio output |
| 22:45 | <rillian> | how would you test 'plausibly close'? |
| 22:46 | <SamB> | well, I'd *probably* start by transforming to the frequency domain |
| 22:47 | <rillian> | https://git.xiph.org/?p=opus.git;a=blob;f=src/opus_compare.c |
| 22:47 | <SamB> | or possibly by buying a DSP book, or at least another signal processing book since someone lost the one I had for school ... |
| 22:49 | <SamB> | hmm, I suck at googling and chatting at the same time ;-) |
| 22:51 | <rillian> | it looks like it splits the audio into overlapped blocks, does a rough transform, and applies some psychoacoustic stuff |
| 22:51 | <SamB> | anyway, I guess http://people.xiph.org/~greg/opus_testvectors/ is the one I was confused by |
| 22:51 | <SamB> | and I was thinking for decode testing; encoder testing is obviously MUCH more involved |
| 22:51 | <rillian> | yeah, that could use a readme |
| 22:55 | <SamB> | Hixie: I really miss the days when I could use the single-page spec; too bad I have no real idea what changed that makes that so unpleasant now ... |
| 22:55 | <Hixie> | what browser? |
| 22:56 | <SamB> | well, ISTR it used to work okay in Chrome, but no more. Not sure if it was something on your end or Chrome's end, even ... |
| 22:56 | <Hixie> | chrome sucking on the html spec these days is https://code.google.com/p/chromium/issues/detail?id=376847 |
| 22:56 | <SamB> | I mean, *something* started demanding more RAM, but I'm not sure what ... |
| 22:57 | <SamB> | not sure if it worked okay in Firefox or not |
| 22:57 | <Hixie> | firefox is fine once it's loaded |
| 22:57 | <Hixie> | but loading the spec in firefox is painful |
| 22:57 | <Hixie> | not sure if they have a bug on that |
| 22:57 | <SamB> | how much memory does it use once it's loaded? |
| 22:57 | <Hixie> | in which? |
| 22:58 | <SamB> | firefox |
| 22:59 | <Hixie> | about half a gig |
| 22:59 | <Hixie> | (including the browser) |
| 22:59 | <Hixie> | chrome uses a little over a quarter of a gig (not including the browser) |
| 22:59 | <Hixie> | memory isn't the issue though |
| 23:01 | <SamB> | it is *an* issue for me |
| 23:02 | <Hixie> | buy more ram |
| 23:02 | <Hixie> | :-) |
| 23:04 | <SamB> | yeah, iirc the SMBIOS data on this thing claims I can triple my RAM by doubling the size of the existing modules and installing a third, but I'm not positive the third slot actually exists |
| 23:04 | <Hixie> | heh |
| 23:05 | <Hixie> | how much ram do you have? |
| 23:05 | <SamB> | 1 gig :-( |
| 23:05 | <Hixie> | 1 gig! |
| 23:06 | <Hixie> | what is this, 1997? :-P |
| 23:06 | <Hixie> | ok filed https://bugzilla.mozilla.org/show_bug.cgi?id=1027382 on firefox hanging while loading the html spec |
| 23:07 | <SamB> | dude, the computer we got in, like, 1996 or 1997 came with 16 megs and my dad had to upgrade it to 32 megs |
| 23:07 | <zewt> | Hixie: fwiw, I think refusing to adjust the spec when it's doing uncommon things (an unusually large page doing unusual things with CSS) to try to force browsers to do optimizations that they don't have time to do is unreasonable and harmful |
| 23:08 | <SamB> | zewt: he's doing that? |
| 23:08 | <SamB> | I mean, on purpose? |
| 23:08 | <Hixie> | zewt: it's not that unusual, and firefox handles it perfectly. Plus, until recently the situation was reversed (the CSS did something that hurt Firefox, but not Chrome, because Chrome cheated), so it's about time the tables were turned. |
| 23:08 | <zewt> | that's what my takeaway was from https://code.google.com/p/chromium/issues/detail?id=376847#c26 |
| 23:10 | <zewt> | i'm sure there are tons of cases where either browser is faster than the other; I think the HTML spec is the wrong place to wage these battles (all it means is today, I'm much less likely to load the spec to answer a question than I was a couple months ago) |
| 23:11 | <Hixie> | it's not like this is on purpose |
| 23:11 | <Hixie> | i just wrote CSS that should work, and it did work |
| 23:11 | <Hixie> | except in chrome |
| 23:11 | <zewt> | making the spec convenient to access is far more important than trying to coerce a browser into making some whack-a-mole CSS optimization |
| 23:11 | <smaug____> | Hixie: fixing that responsiveness issue in FF needs multiprocess setup. That way UI wouldn't be blocked, only the child process. Similar to Chrome, where scrolling or resizing while loading html spec isn't working too well. |
| 23:11 | <Hixie> | smaug____: yeah, that was my guess too |
| 23:12 | <smaug____> | (fortunately e10s project is doing quite well) |
| 23:12 | <smaug____> | I do profile html spec loading occasionally |
| 23:12 | <SamB> | zewt: I don't think it counts as what you said unless he's insisting on sticking with his original approach in the face of a reasonable alternative |
| 23:13 | <Hixie> | SamB: i haven't looked into what an alternative would look like |
| 23:13 | <Hixie> | SamB: but i'm sure it'd be possible to find one |
| 23:13 | <SamB> | so, um, is there some way to let firefox take a breather during the loading process |
| 23:13 | <zewt> | someone recommended something on the ticket, iirc |
| 23:14 | <smaug____> | SamB: it is mostly layout stuff... need to improve interruptible layout |
| 23:14 | <roc> | In Firefox nightlies you can actually open the HTML5 spec in a separate process tab, so problem solved if you remember to do that :-) |
| 23:14 | <SamB> | Hixie: also, it sounds kind of unreasonable to expect a transition that impacts every element to be too quick |
| 23:14 | <SamB> | smaug____: ah |
| 23:14 | <Hixie> | SamB: it's blazing fast in firefox |
| 23:15 | <Hixie> | SamB: not even a slight hickup |
| 23:15 | <Hixie> | SamB: buttery smooth 60fps goodness |
| 23:15 | <SamB> | Hixie: huh, what properties ... |
| 23:15 | SamB | goes to check |
| 23:15 | <smaug____> | SamB: chrome is equally bad too with resizing the window for example |
| 23:15 | <Hixie> | roc: how do i do that? |
| 23:15 | <Hixie> | roc: i mean, i only have this one page open... |
| 23:16 | <Hixie> | roc: but as soon as i try to open the spec, it messes up command-tabbing around the OS and so on, because it doesn't respond any more |
| 23:16 | <SamB> | Hixie: presumably it has the client area in the other process but the chrome still in the main process |
| 23:16 | <SamB> | oh, it screws with the OS? |
| 23:16 | <zewt> | reasonable to expect it or not, having the spec be fast and convenient for everyone is so much more important than any style changes (the spec was perfectly fine before, IMO) |
| 23:17 | <smaug____> | in the menu FF has open New e10s Window |
| 23:17 | <smaug____> | one may need to do Customize first, I think |
| 23:17 | <Hixie> | roc: yeah, i just created a new e10s window and while the page is loading, if i command-tab to another app, the window stays up |
| 23:17 | <zewt> | "e10s"? is that supposed to be meaningful? heh |
| 23:17 | <Hixie> | roc: and if i click on another app then command-tab back to firefox, the window doesn't show |
| 23:17 | <Hixie> | zewt: internal codename |
| 23:17 | <zewt> | heh okay |
| 23:17 | <SamB> | anyway, *my* problems probably started >1y ago ... |
| 23:18 | <Hixie> | zewt: the spec wasn't fine before, we got lots of complaints about the look. but yeah, it's sad that it's slow in chrome, i just don't like working around what are just bugs. |
| 23:18 | <Hixie> | zewt: and since i never worked around firefox bugs, it seems bad that i work around chrome bugs |
| 23:19 | <SamB> | Hixie: what firefox bugs did you decide not to work around, and why? |
| 23:19 | <Hixie> | some similar performance issue with selectors |
| 23:19 | <Hixie> | and for the same reason |
| 23:19 | <SamB> | "because it was just bugs", not "because the workaround was fugly"? |
| 23:20 | <Hixie> | right |
| 23:20 | <Hixie> | bugs should be fixed :-) |
| 23:20 | <Hixie> | not worked around |
| 23:20 | <SamB> | well, yeah, I guess your hands are tied then |
| 23:20 | <Hixie> | i'll probably end up working around this one eventually if they don't fix it, because it is somewhat more eggregious |
| 23:21 | <SamB> | however, you're perfectly at liberty to work around my lack of RAM, since that's not actually a bug in some vendor's code ;-P |
| 23:21 | <Hixie> | (and zewt is right) |
| 23:21 | <Hixie> | (that the spec being readable is more important) |
| 23:21 | <Hixie> | SamB: that's what the multipage spec is for |
| 23:21 | <SamB> | though I don't expect you to find your own workaround |
| 23:21 | <SamB> | yeah, that does help |
| 23:22 | <SamB> | but still, I miss the nifty crossref thing working document-wide, and Ctrl+F ... |
| 23:24 | <SamB> | Hixie: what is "additional data"? |
| 23:24 | <Hixie> | for origins? |
| 23:24 | <SamB> | yeah |
| 23:24 | <Hixie> | e.g. certification signature or whatever |
| 23:24 | <Hixie> | certificate |
| 23:24 | <Hixie> | probably nothing, in practice |
| 23:28 | <SamB> | hmm, needs more hyperlinks |