08:32:56 RRSAgent has joined #svg 08:32:56 logging to http://www.w3.org/2014/08/22-svg-irc 08:32:58 topic: Agenda review 08:32:59 Agenda: http://www.w3.org/Graphics/SVG/WG/wiki/F2F/London_2014/Agenda 08:33:02 scribenick: birtles 08:33:04 chair: ed 08:33:05 scribe: birtles 08:33:20 jwatt has joined #svg 08:33:26 ed: one suggestion was to split up the spec editing over all the days 08:33:34 ... e.g. one hour per day for editing instead of a full day 08:33:47 shepazu: just a suggestion, e.g. 4-5pm 08:33:53 heycam: maybe not the end of the day 08:34:02 ... just after/before lunch? 08:34:08 shepazu: after lunch is fine 08:34:47 (shuffling of PM agenda to put spec editing after lunch) 08:35:27 Tav has joined #svg 08:35:41 ed: any other topics missing from agenda? 08:35:50 krit: I'd like to give a progress report about CSS layout properties 08:35:54 ... and discuss fill/stroke properties 08:36:01 ... any day other than today is fine 08:36:53 Tav: I'd like to get some review on my talk for the conference if there's time at the end 08:37:00 (conference = graphical web conference) 08:37:04 ed: no one calling in? 08:37:07 heycam: I don't think so 08:37:52 topic: The topic index 08:37:54 https://www.w3.org/Graphics/SVG/WG/wiki/Topics 08:38:12 heycam: one problem we seem to have is that we easily lose track of previous discussion about topics 08:38:30 ... we type up our minutes, send them to the ml, tracker picks up issues/actions but apart from that there's no indexing/tracking of topics 08:38:40 ... often you want to find out the latest on an issue and you have to trawl through the ml 08:38:51 ... so I wrote a couple of scripts to manage links to discussions on particular topics 08:39:00 ... they harvest mails sent to the mailing list 08:39:13 ... the above link, links to pages from telcon minutes etc. 08:39:14 https://www.w3.org/Graphics/SVG/WG/wiki/Topic_database 08:39:19 ... if you follow the first link ^ 08:39:25 ... that's where it's getting its information from 08:39:41 ... I've only added a couple of topic lists just to give you an idea of the kind of format 08:39:51 ... new ones will automatically get added as we send out more minutes to the list 08:40:02 ... it extracts out the names of topics and resolutions 08:40:02 jet has joined #svg 08:40:08 ... since tracker doesn't do that for us 08:40:23 krit: are resolutions also tracked? 08:40:34 heycam: they're automatically added but they're not automatically copied to the topic page 08:41:00 shepazu: is this a tool that you can make available to other WGs? 08:41:15 heycam: it's on my github but there may be some SVG-specific code 08:41:24 krit: so we have to use the same topic every time? 08:41:36 heycam: that is a problem but you can go back and edit the topic names 08:42:07 ... the new minutes will get added automatically and then myself or someone else will adjust the titles so they coalesce 08:42:38 nikos: I've got a similar record on our wiki if you want to use that data for historical records 08:42:48 heycam: I could also run the script on old mails 08:42:58 ... hopefully that's useful 08:43:04 ... let me know if you have problems/suggestions 08:43:25 shepazu: w3c is looking now at exposing group/spec data through an API 08:43:38 ... so this might be another tool 08:43:58 ... we're finally abandoning the RDF structures we use internally 08:44:16 ... it's quite likely that this information would be useful.. to be able to drill down into topics that a WG discussed 08:44:27 ... for example we manually maintain a list of our specifications 08:44:31 cyril has joined #svg 08:44:37 ... there's no way for us right now to get all our specifications and their statuses 08:44:40 krit: what 08:44:51 ... what's the problem with that? 08:45:15 shepazu: it's not nicely maintained, e.g. what WG is producing what specs etc. 08:45:22 ... which revision each spec is etc. 08:45:40 ... if there's any data you feel you want from w3c then let us know 08:45:45 krit: resolutions are really important 08:45:55 shepazu: I think this is good, and if it's in a wiki that good too 08:46:00 ... can we edit to add notes? 08:46:12 heycam: it expects a precise format the moment but I can adjust that 08:46:26 shepazu: we use various bots 08:46:37 RRSAgent, pointer 08:46:37 See http://www.w3.org/2014/08/22-svg-irc#T08-46-37 08:46:37 ... I've never been very happy with the way we handle minutes 08:47:00 ... it might be worth fixing those bots 08:47:10 heycam: that's something I've often wanted to do, have links to etherpads etc. 08:47:23 krit: can we add it to svgwg.org as well? 08:47:26 RRSAgent, draft minutes 08:47:26 I have made the request to generate http://www.w3.org/2014/08/22-svg-minutes.html cyril 08:47:27 heycam: yes, of course 08:47:53 nikos: it might be good to highlight which telcons have resolutions 08:48:22 heycam: I have this infrastructure to munch emails from the list now 08:48:37 topic: Putting SVG 2 spec on GitHub 08:49:03 heycam: so Dirk asked about this recently... 08:49:08 krit: other WGs are experimenting with this 08:49:14 ... HTML is one of them 08:49:20 ... it's helping others to contribute to the specification 08:49:34 RRSAgent, make minutes public 08:49:34 I'm logging. I don't understand 'make minutes public', heycam. Try /msg RRSAgent help 08:49:38 RRSAgent, make logs public 08:49:40 RRSAgent, make minutes 08:49:40 I have made the request to generate http://www.w3.org/2014/08/22-svg-minutes.html heycam 08:51:03 krit: some developers would be interested in submitting PRs for specs 08:51:13 ... I think we could accept PRs under the W3C license 08:51:34 heycam: I put the WebIDL spec on github and have accepted a few PRs 08:51:50 ... but it was a bit unclear if PRs from non-w3c members was ok 08:51:59 krit: you could put a license on the repo 08:52:47 (discussion about how hard it is/isn't to learn GitHub) 08:53:29 heycam: one thing is that the mercurial repo does automatic building of the spec when you push changes 08:53:36 ... would that work with github? 08:53:47 ed: you can do that with git 08:53:54 ChrisL: with git or github? 08:54:11 ed: because we have our own server, we can use that 08:54:31 (discussion about how we could set up automatic building with github) 08:54:46 krit: the CSS testsuite runs some scripts on every push 08:55:02 http://stackoverflow.com/questions/19041220/how-to-run-post-receive-hook-on-github 08:55:05 ed: using webhooks we can trigger actions from github 08:55:27 heycam: if someone's willing to do the work for that I don't see a problem 08:55:36 krit: I don't have the experience yet to do that 08:55:59 ChrisL: who was pushing for that? 08:56:10 heycam: I think Anne was looking to make some changes 08:56:26 ChrisL: is he ok to pushes changes under W3C license? 08:56:53 shepazu: it's not just about him, a lot of people are doing this and seeing good results 08:58:20 ed: would we also push to the w3c mercurial repo? 08:58:27 shepazu: I'd prefer to just push to the github 08:58:32 (general agreement) 08:58:40 jwatt: so we'd dump the w3c repo? 08:58:47 shepazu: MikeSmith has some experience with doing this 08:59:29 ChrisL: are we moving all the specs for this WG? 08:59:34 shepazu: yes, I think so 09:00:12 ed: on a related note, I noticed that web-platform-tests is on github and I suggest we drop the svg2-test repository and switch to web-platform-tests 09:00:57 RESOLUTION: We will move SVG WG's specs from the W3C mercurial server to Github 09:01:21 Tav: are we going to use github exclusively or if we still need our own server 09:01:39 ed: we'll still need our own server to run the build scripts since we can't run arbitrary scripts on github 09:01:56 jwatt: but as for the WG members, they'd just be using github 09:02:06 Tav: and I'd still be able to build it locally 09:02:09 ed: yes, sure 09:02:13 Tav: so all the tools are included too 09:02:41 ACTION: Doug to talk to Mike Smith about migrating the SVG WG repository to Github 09:02:41 Created ACTION-3638 - Talk to mike smith about migrating the svg wg repository to github [on Doug Schepers - due 2014-08-29]. 09:03:09 ed: who's going to look at webhooks from github to get a ping when someone pushes 09:03:14 ... so we can tell svgwg.org to rebuild the spec 09:04:53 ACTION: Dirk to actually perform the migration of SVG specs to Github in cooperation with Mike Smith 09:04:53 Created ACTION-3639 - Actually perform the migration of svg specs to github in cooperation with mike smith [on Dirk Schulze - due 2014-08-29]. 09:05:28 jwatt: we need to decide where it lives in github 09:05:45 shepazu: Mike says he's happy to help and it all looks do-able 09:06:14 https://github.com/w3c/csswg-drafts 09:07:20 ed: regarding tests, there's web-platform-tests 09:07:24 https://github.com/w3c/web-platform-tests 09:07:52 ChrisL: regarding that, we previously decided we want to work with CSS WG's test infrastructure 09:08:09 ... and their tools do lots of linking between specs 09:08:18 ... but none of that's going to be on web-platform-tests 09:08:34 there's also https://github.com/w3c/csswg-test 09:08:36 ... so we should choose wisely 09:08:56 shepazu: the way that CSS has done things is idiosyncratic to the rest of the consortium 09:09:10 ... I think we're probably better off aligning with the rest of the consortium 09:09:21 ... I think there will be other tools built around web-platform-tests 09:09:46 heycam: the advantage of doing things in the CSS repository is that Peter Linss is very active, and works very hard to get things going right 09:10:03 ChrisL: he is very active and we do do a lot of work together with the CSSWG 09:10:27 heycam: it seems like the CSS tests are primarily reftests, where do their scripted tests run? 09:10:34 ChrisL, krit: same repo 09:10:51 krit: the JS tests can still have metadata 09:11:30 birtles: the web-platform-tests can have a fair bit of metadata 09:11:58 shepazu: from the perspective of web-platform org is that we're looking for something like icanuse.com 09:12:10 ... MDN's equivalent is just a table that someone inputs 09:12:41 ... but for webplatform.org we have scripts that do that automatically now 09:13:09 ... caniuse is good but it's based on very few tests and we want to be more rigorous than that 09:13:21 ... and have a clickable field where you can drill down to individual tests 09:13:30 ... so you have a confidence score about how well a feature is supported 09:14:06 ed: do we still want the svg2-tests repository or use one of the others? 09:14:22 ... do we want a separate one? 09:14:29 krit: shepherd doesn't care 09:15:10 ChrisL: what you (shepazu) described about drilling down to individual tests sounds great 09:15:13 ... but how far away is that 09:15:21 shepazu: what we have now is a JSON structure that generates the tables 09:15:30 ... so we can plug anything into those tables we want 09:15:41 ... going from there to drilling down is probably a couple of weeks work 09:15:56 ... it hasn't been a priority until now but it will be in the coming few months 09:16:18 ChrisL: that's good for developers, but what about the WG who are looking for "how far are we from CR?" etc 09:16:27 Tav: how can I put Inkscape's test results in? 09:16:43 shepazu: I guess you would have to do it manually 09:16:58 heycam: are you referring to the boxes in the CSS spec? 09:17:17 krit: you'd have to ask Peter 09:17:32 ChrisL: I think you'd have to fill in this data and pass a pointer... it's been asked before 09:18:12 ... I think the answer is to mail Peter and ask 09:18:32 shepazu: it sounds to me like people are leaning towards shepherd 09:18:57 ... for webplatform.org we'd rather the data be all in one place and rather the CSS WG joined in what everyone else did 09:19:29 krit: we can join these test repositories later 09:20:05 ... i.e. go to CSS repo first and then merge to web platform later 09:20:24 birtles: can we go the other way? 09:20:27 ChrisL: no 09:20:50 Rozvan: what about tests which are only supported behind a flag? 09:21:46 ... we had this problem for crowdsourcing tests for CSS shapes 09:22:06 ... users wouldn't know that they had to enable these flags so they'd report incorrect results 09:22:52 shepazu: for webplatform.org we just want to get the results of tests (not create them or run them) 09:24:02 birtles: I know we're doing some work to better integrate web-platform-tests into the Mozilla build system 09:24:36 krit: we have that for the CSS repo as well 09:24:48 heycam: we have some scripts for the CSS repo too 09:25:20 shepazu: I'd like to avoid going to the mercurial of tests systems 09:25:44 ed: what about user-submitted tests? 09:25:56 ... do we want to decide a structure for that 09:26:08 birtles: so TTWF normally submits tests to web-platform-tests? 09:26:12 ed: yes 09:26:23 ChrisL: but there are some tests in shepherd from TTWF 09:27:15 heycam: at some point we need to convert our SVG 1.1 test suite to reftests etc. (i.e. automated tests) 09:27:34 shepazu: that might be a good topic for TTWF 09:28:15 (discussion about how to write reftests for things like paths) 09:29:04 ed: another thing to consider about dropping svg2-tests is that it's not being pulled into blink's repo 09:29:34 shepazu: at some point I'd like to add to the agenda discussion about using annotations in the SVG spec 09:30:09 ... we should decide between the CSS test repo or web-platform-tests 09:31:15 heycam: I'd like to know if web-platform-tests supports reftests 09:31:50 https://github.com/w3c/web-platform-tests/ 09:33:00 ... it would be good to use the structure from CSS for reftests and the boxes with test results 09:33:09 shepazu: that's why I'd like to talk about annotations 09:33:24 ... since we're planning on building that functionality 09:33:51 ... if that kind of feature is useful, it will get added to web-platform-tests 09:34:54 ed: it doesn't seem like we're arriving at consensus over which repo to use 09:35:06 ChrisL: I feel like I don't have enough information to decide 09:35:14 Tav: I'd like to see a demonstration of both 09:36:38 RESOLUTION: We will migrate tests from svg2-tests to either the CSS test repository or web-platform-tests (or both) 09:38:08 (discussion about who to demonstrate the test repositories) 09:39:08 (break 15mins) 09:39:55 ChrisL has joined #svg 09:40:55 jwatt_ has joined #svg 09:42:38 oslego has joined #svg 10:05:44 ScribeNick: heycam 10:08:01 nikos has joined #svg 10:09:50 Topic: marker, symbol: refX and refY shorthand anchor points: 'top left' 'center center', etc. 10:10:09 Tav: if you remember we decided to extend refX and refY to apply to symbols, like markers 10:10:14 ... Andreas Neumann had requested that 10:10:24 ... he's also now requested for us to consider adding shorthands: top, left, center 10:10:31 ... because this is typically what people doing mapping stuff use 10:10:44 krit: center would be the bbox center? 10:10:46 Tav: yes 10:10:52 krit: do we support % on these attributes? 10:10:54 Tav: don't know 10:11:28 ed: they are length in SVG 1.1 10:11:31 krit: which means it includes percentages 10:11:35 ... what's it resolved against? 10:11:53 ChrisL: so we could make left,center,right mean 0%,50%,100% 10:12:07 ... that's the point of having a symbol rather than g, it has its own viewport 10:12:14 krit: but no viewBox? 10:12:18 ChrisL: yes 10:12:36 Tav: right now it's the viewport that's being used 10:12:49 krit: of the marker or the path? 10:13:04 ... for refX and refY, is this % resolved against the viewport of the marker? 10:13:06 Tav: yes 10:13:16 ... I wasn't aware that % was already supported there 10:13:32 actually it does have a viewBox attribute http://www.w3.org/TR/SVG/struct.html#SymbolElement 10:13:38 heycam: if the %s mean what Andreas is requesting, then I would say just use the %s 10:14:20 shepazu: this is what I wanted to roll these all up in one 10:14:24 Tav: I was looking at that... 10:14:44 Tav: these different elements differ enough in their uses that I think it would be hard? 10:15:04 ChrisL: I think there is an advantage to having separate names for these things 10:15:11 Tav: e.g. markers change depending on stroke-width, or not 10:15:22 shepazu: that's sort of like a use? you can change some aspect of it, or not 10:15:30 Tav: there's an attribute that controls whether it scales according to stroke width 10:15:33 advantage is you can optimise based on typical use eg caching patterns 10:15:56 shepazu: if they haven't different behaviours, that's one thing, but if they have additional behaviours, I think we should try to do this 10:16:06 ... consistency of the model, understandability 10:16:20 ... bugs, etc. if you only have to do one different thing for this other use... 10:16:26 Tav: I can try to find the work I did looking at this 10:16:36 shepazu: maybe it doesn't make much sense for Inkscape but it does for the spec 10:16:48 ChrisL: if we had a new DOM we could make all of these inherit from the one interface 10:17:03 ed: your question is whether to allow the keywords? 10:17:10 Tav: I didn't know percentages were already allowed 10:17:38 ChrisL: so if we did support 'top left' it would be a shorthand for '0% 0%' etc.? 10:17:39 Tav: it would be 10:17:56 ... I'll ask what Andreas thinks about using the percentages 10:18:14 ChrisL: one advantage to the shorthands is that CSS does that for thing like boxes, tiling of background images it has this center top syntax 10:18:17 ... but it's just syntactic sugar 10:18:25 ... the one thing to remember is to switch off the clipping 10:18:33 ... otherwise you only get the first quadrant of your symbol 10:18:48 ... don't understand why overflow isn't visible by default 10:19:43 krit: so this is overflow: visible for symbol? 10:19:44 shepazu: by default 10:20:02 ChrisL: the only downside I can think of is if they have hidden things in the other quadrants 10:21:13 ... I suggest we do that and have authoring guideliness to define symbol around (0,0) to make your life easier 10:21:27 Tav: Andreas pointed out that in mapping you often have different anchor points 10:21:34 ... a tower would be aligned to the center bottom, for example 10:22:24 RESOLUTION: symbol will be overflow:visible by default by the UA style sheet in SVG 2 10:22:55 ACTION: Chris to add |symbol { overflow: visible; }| to the UA style sheet and add authoring suggestion to say to design symbols around (0,0) 10:22:56 Created ACTION-3640 - Add |symbol { overflow: visible; }| to the ua style sheet and add authoring suggestion to say to design symbols around (0,0) [on Chris Lilley - due 2014-08-29]. 10:23:16 ed: what about the keywords? 10:23:23 ... transform-origin has these 10:23:26 Tav: that's where I got the names frmo 10:23:33 ... it might be useful if that's how it's done in CSS already 10:23:41 ed: I think it's fine to add that 10:24:21 heycam: I would prefer not adding the keywords 10:24:56 ed: do you see refX/refY becoming presentation attribtues in the future? 10:25:00 krit: to x and y maybe 10:26:12 Tav: I don't think they need to be presentation attributes 10:26:27 krit: I think for authors it's more important to have the basic shape geometry attribtues as properties 10:26:52 nikos: I don't see any need to add the keywords; I think the meaning of the percentages are clear 10:26:56 shepazu: no strong feeling 10:27:02 krit: I don't think we should add the keywords 10:27:07 Tav: ok I'll get back to Andreas with that 10:27:55 ACTION: Tav to get back to Andreas about refX/refY top/left/etc. 10:27:55 Created ACTION-3641 - Get back to andreas about refx/refy top/left/etc. [on Tavmjong Bah - due 2014-08-29]. 10:28:40 jwatt_ has joined #svg 10:29:36 krit: for overflow:visible I thought we were talking about marker, not symbol 10:29:39 ChrisL: I think we should do it for both 10:30:47 ACTION-3640: Actually this should remove the existing UA style rule to set |overflow: hidden| 10:30:47 Notes added to ACTION-3640 Add |symbol { overflow: visible; }| to the ua style sheet and add authoring suggestion to say to design symbols around (0,0). 10:31:42 krit: did IE make overflow:visible by default on root of inline SVG? 10:31:58 Rossen_: it made the most sense 10:32:03 ed: it's what people would expect 10:32:35 Rossen_: I'd expect it to be visible for foreignObject too 10:32:43 ed: per spec that would be hidden since it's a viewport-establishing element 10:35:17 https://svgwg.org/svg2-draft/masking.html#OverflowProperty 10:35:22 ed: so I would prefer to drop the last bullet point in that section 10:35:41 krit: I would worry about the inner SVG becoming overflow:visible 10:35:51 krit: otoh I'm surprised that inline root SVG is not breaking anything for IE 10:36:02 ed: I think people are told to workaround it by putting overflow:hidden 10:36:21 ed: the less special handling for overflow in SVG the better 10:36:35 krit: that's a benefit, but I'm just noting that people are using inline SVG and I'm not sure if that new behaviour would be better 10:36:45 ... maybe we can make this change and see implementation feedback? 10:37:07 ed: pattern too? 10:37:11 heycam: no I think that would break things 10:37:36 The initial value for ‘overflow’ as defined in [CSS21-overflow] is 'visible', and this applies also to the rootmost ‘svg’ element; however, for child elements of an SVG document, SVG's user agent style sheet overrides this initial value and sets the ‘overflow’ property on elements that establish new viewports (e.g., ‘svg’ elements), ‘pattern’ elements and ‘marker’ elements to the value hidden. 10:37:53 (this is the last bulletpoint in the link I pasted above) 10:38:08 ed: so pattern would remain 10:38:29 ... but viewport establishing elements would all go to overflow:visible 10:38:38 ed: overflow doesn't apply to mask 10:38:52 krit: mask default has this 10% margin region 10:38:59 ... this has changed in the masking specification to be auto 10:39:08 ... so it's effectively overflow:visible 10:41:46 RESOLUTION: All viewport-establishing elements will be overflow:visible by default, except for root of SVG whole documents. 10:42:01 ACTION-3640: Plus more, check the minutes here. 10:42:01 Notes added to ACTION-3640 Add |symbol { overflow: visible; }| to the ua style sheet and add authoring suggestion to say to design symbols around (0,0). 10:42:52 Topic: variable stroke width 10:43:27 birtles: last time I put forward the proposals for syntax 10:43:27 https://www.w3.org/Graphics/SVG/WG/wiki/Proposals/Variable_width_stroke 10:43:44 ... the next action coming out was to make a polyfill 10:43:55 ... I did the part that does the parsing, but I didn't do the part which actually draws the stroke 10:44:04 ... I don't have the time to do that 10:44:13 ... so if anyone wants to see the feature progress, it needs your help to do that 10:44:24 shepazu: I've done a lot of that stuff in the past 10:44:33 ChrisL: did you try and it was complicated? or that's just where you stopped 10:44:49 https://rawgit.com/birtles/curvy/master/index.html 10:45:26 birtles: I haven't updated the syntax for what we discussed in Germany 10:45:36 ... if you look at the wiki page, the property is now called stroke-profile 10:45:41 ... but in the prototype here it's called stroke-widths 10:45:48 ... so it's not up to date with the proposal 10:46:17 shepazu: I see it supports inner and outer 10:46:21 birtles: asymmetric stroke yes 10:46:43 shepazu: how does it interpolate between the points? 10:46:51 birtles: we were going to try different ways with the prototype 10:47:03 ChrisL: would be a good option for Catmull-Rom 10:47:42 ... the wikipedia page mentions a few different forms of Catmull-Rom, some of which are more well behaved than others 10:47:52 ... i.e. doesn't produce cusps/loops 10:47:56 Tav: inkscape has something similar implemented 10:49:58 ACTION: Tav to ask Inkscape vsw implementor to add Catmull-Rom interpolation to see what it's like 10:49:58 Created ACTION-3642 - Ask inkscape vsw implementor to add catmull-rom interpolation to see what it's like [on Tavmjong Bah - due 2014-08-29]. 10:53:51 cabanier: there's an Adobe guy who probably would be eager to help with the prototype 10:54:33 ACTION: Rik to ask the Adobe guy about working on the vsw prototype 10:54:34 Created ACTION-3643 - Ask the adobe guy about working on the vsw prototype [on Rik Cabanier - due 2014-08-29]. 10:54:47 Tav: we have cubic bezier, linear, and spiro as interpolations in Inkscape 10:54:53 ... shouldn't be that hard to add Catmull-Rom 10:55:41 Tav: I think this isn't the harder part of the problem 10:55:49 ... joins are harder 10:55:52 krit: dashes too 10:58:38 [discussion about various corner cases] 11:00:27 http://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_spline Centripetal Catmull–Rom spline 11:00:48 jet has joined #svg 12:13:17 jet has joined #svg 12:23:22 jwatt has joined #svg 12:39:28 jwatt_ has joined #svg 12:49:09 nikos has joined #svg 12:58:59 nikos_ has joined #svg 13:02:45 [work on actions until 3.15pm] 13:07:16 trackbot, close ACTION-3599 13:07:16 Closed ACTION-3599. 13:15:35 jwatt has joined #svg 13:18:46 trackbot, close ACTION-3168 13:18:46 Closed ACTION-3168. 13:18:54 trackbot, close ACTION-3170 13:18:54 Closed ACTION-3170. 13:46:53 jwatt_ has joined #svg 13:48:16 trackbot, close ACTION-3634 13:48:16 Closed ACTION-3634. 14:05:38 action-3640? 14:05:38 action-3640 -- Chris Lilley to Add |symbol { overflow: visible; }| to the ua style sheet and add authoring suggestion to say to design symbols around (0,0) -- due 2014-08-29 -- OPEN 14:05:38 http://www.w3.org/Graphics/SVG/WG/track/actions/3640 14:06:53 glenn has joined #svg 14:08:02 OMG its full of stars 14:10:55 s/star>/star\//g 14:26:33 nikos_ has joined #svg 14:29:35 richardschwerdtfeger has joined #svg 14:48:48 Scribe: Nikos 14:48:55 scribenick: nikos 14:49:11 Topic: New SVG DOM 14:51:37 heycam: last time we discussed the DOM stuff, the discussion ended on the point where a couple of people weren't sure about going ahead in this direction 14:51:48 ... so we decided to write a polyfill for experimentation 14:52:15 ... the polyfill only works in recent FF with a certain pref on 14:52:27 ... relies on web components, shadow trees, mutation events, and some other features 14:52:55 ... I'll take you through some of the examples that are in the repo 14:53:12 ... graphics element causes the new DOM interfaces to be put on elements 14:53:28 ... I realised that to avoid breaking the pages that use the old one, we need some syntactic way to opt into the new stuff 14:53:36 ... the best way seemed to be to have a different element name for the root 14:53:43 ... so that existing content gets the old interfaces 14:53:51 ... and new elements can go in html namespace 14:54:10 krit: does polyfill create elements in the html namespace? 14:54:27 heycam: the root graphics element gets a shadow tree. The whole tree gets cloned in the shadow tree with updated names and cases and so on 14:54:32 ... and it watches for updates 14:54:55 ... there are limitations - events, etc 14:55:09 ed: if you were to have nested graphics elements this wouldn't work right? 14:55:20 heycam: no. inner things are called viewport and outer are graphics 14:55:29 ed: foreignObject? 14:55:33 heycam: I didn't do it 14:56:04 ... I rely on html parsing and these elements go in html namespace. there are some tricky bits that require parser changes 14:56:18 ... if we had foreignObject it would probably be a good chance to use a different name 14:56:43 birtles: we are going to look at using svg elements in html without foreignObject on Monday 14:57:12 shepazu: rather than be a new element, couldn't the flag be svg element without the ns? 14:57:21 heycam: you don't put the ns already in inline svg in html 14:57:32 shepazu: the key is that things are going in the html ns 14:57:34 heycam: yep 14:57:59 heycam shows some demos 14:58:24 heycam: there are some options for lengths. There are some modes you can set to try different options 14:59:03 ... I'm not sure which would be best 14:59:33 ... in terms of the namespace. Because we're in html ns. If I want to create a new rectangle I can just use createElement("rect") 15:00:01 ... certain things get a lot shorter - interaction with attributes, creation of element 15:00:43 shepazu: why can't we expose these methods on existing svg elements? 15:00:52 heycam: the names are already taken 15:01:14 ... currently if you're interacting with a rect you use rect.x.baseVal.value = 100 15:01:21 ... if you wanted rect.x = 100, that would work 15:01:28 ... but rect.x == 100 wouldn't work 15:01:33 ... it doesn't know you want x to be a number 15:02:12 ... I have an example showing the different ways of exposing svg lengths - moving-rects-0.html 15:02:30 ... this is using the existing dom 15:02:58 ... creates 10 rectangles, initially diagonally down the page at 0em, 1em, etc 15:03:14 ... then does an animation where a random amount is added each update 15:03:26 ... most concise way to set is via setAttribute 15:03:50 ... jittering rectangles around means you need .x.baseVal.value to get to a number 15:04:58 ... same example using strings. Creating the object and setting initial values is more concise and more familiar for html authors 15:05:30 ... doing the numeric stuff is a problem because you need to convert to numeric values 15:05:40 ... this is a limitation of reflecting lengths only as strings 15:05:49 ChrisL: could it be reflected multiple ways? 15:06:12 birtles: you can't overload the getter but you can for the setter 15:06:44 heycam: reflecting as strings is one option, but there are a few other options 15:07:04 ... next example the properties on assignment can take number or string, but when you get them out you always get the user unit out 15:07:30 ChrisL: so when getting values all numbers are converted to a canonical unit? 15:07:42 heycam: yes 15:08:03 ... this is nicer than string only, but you can't use .x to get the string value 15:08:13 ... final way you could do it is to have parallel accessors 15:08:28 ... e.g. rect.x_px 15:08:56 ChrisL: I don't like that as much as .x.px 15:10:04 shepazu: chaining is a common pattern, I don't know if it's only with methods or if it would also be useful for properties 15:10:05 no, I was unclear. I don't like either x.px or x_px; prefer just .x returning a number 15:10:19 heycam: not really relevant for properties 15:10:39 krit: I was talking with Dmitry. He doesn't like this kind of magic 15:11:05 ... where you set with one value and getter returns a different value because it's in a different unit 15:11:17 heycam: I think that's a valid point and might be reason to pick another proposal over this one 15:11:29 ... might be an author expectation that returned value is the same as the set value 15:11:43 krit: Dmitry suggested something like x.getPixel() 15:11:48 shepazu: that's also magical 15:12:01 ChrisL: problem with returning strings is you have to parse them or have utility functions for dealing with them 15:12:18 ... I think there's something in css where you can assign but the returned value is a canonical type 15:12:22 ... why can't it be the same here? 15:12:27 krit: not the same in css 15:12:36 ... internally css uses a canonical type 15:12:51 ChrisL: I think it will align down the road with css 15:13:04 heycam: depends if css goes down the road where you assign one type and get another out 15:13:09 ... but they might not go in that direction 15:13:21 ... whatever they do, it would be good to follow the same pattern 15:13:27 birtles: I thought the long term plan was to use value objects 15:13:32 heycam: don't think it's going to happen soon 15:13:54 birtles: I don't want us to paint ourselves into a corner where we can't align 15:14:20 krit: I'm not sure if it's magic, as far as I read the proposal from Tab it's pretty straight forward 15:14:26 heycam: I don't see that happening soon 15:14:31 krit: could svg wg push that forward? 15:15:04 ... I added new section in SVG 2 with x, y presentation attributes. We could start working on om for css 15:15:59 krit: I have a fear with any new OM. it's svg specific 15:16:03 jwatt has joined #svg 15:16:12 heycam: it's not svg specific in terms of the pattern of interacting with objects 15:16:31 ... the pattern of exposing all properties as types appropriate to the property 15:16:39 ChrisL: people like that sort of thing 15:17:01 heycam: think there's a lot of antipathy wrt to getAttribute and setAttribute 15:17:09 krit: I support the part of making everything in html namespace 15:17:13 ... don't support new graphics element 15:17:31 ... it took 12 years for svg to be adopted. Now they have to learn something new 15:17:41 ChrisL: we can't break all the existing scripts 15:17:51 krit: if we decide to use new dom we can't 15:18:02 ChrisL: only way to move forward is to introduce a new element with the new dom 15:18:14 ... so you're arguing for breaking all scripting in svg with new dom? 15:18:31 krit: I'm arguing that we shouldn't introduce new dom because we won't do it right this time 15:18:35 ... like last two times 15:18:46 ... i prefer to follow pattern of new CSS OM 15:18:52 ... rather than creating new SVG model 15:19:21 ... implementations won't support elements in two namespaces 15:19:31 ... it's duplication of maintenance effort 15:19:36 heycam: I don't think it'll be too much work 15:19:49 ... will just be an extra line in tables 15:19:58 ... I think this DOM thing is actually rather small 15:20:02 ... mostly it's accessor things 15:20:11 ... which html elements already have code for reflection of attributes 15:20:24 ... if we have string or length then that's a bit different than html but it's not too much extra 15:20:32 ... plus a couple of methods for dealing with list type things 15:20:40 ... so total code to support new DOM is not that big 15:20:52 krit: for webkit it would be a major change because svg animation uses old dom 15:20:58 ... and needs to be mapped to new dom as well 15:21:16 ChrisL: I see your point that we need to consider implementer feedback 15:21:24 ... if we allow opting in and promote the new dom 15:21:31 ... in a few years we can drop the old method 15:21:41 ... and break content that hasn't updated 15:22:02 krit: my point is that supporting new svg dom in the meantime with long term plan to go to css om 15:22:11 ... means three things we have to maintain at once 15:22:22 ChrisL: css om is 5-10 years away 15:22:34 krit: new svg dom will be same time frame before it is in mainstream use 15:22:38 ChrisL: don't agree 15:23:02 krit: in this case you said we'd break a lot of content with svg dom, but the adoption of the new dom will be lower than you expect 15:23:25 ChrisL: I think as soon as this is implemented people will want to use it - it's simpler, probably more performant, etc 15:23:30 ... everyone hates the existing dom 15:23:39 ... number one thing people want is the dom fixed 15:23:52 krit: we are seeing most content comes from tools or scripts 15:24:09 ... people aren't using svg dom 15:24:13 shepazu: possibly because it's so crap 15:25:40 shepazu: the performance hit for marshalling is bad, this might fix it right? 15:25:58 heycam: for lists it should 15:26:18 ... I can show an example - transform-changes-1.html 15:26:51 ... graphics element, 3 shapes, each has an initial transform and we're doing some script animations 15:26:59 ... instead of having svg transform list and all the items in the list 15:27:40 ... we have getTransformItems() which returns an array of objects 15:27:51 ... each item in the array is a plain javascript object with dictionary 15:27:58 ... it's not a live reflection of the thing 15:28:29 ... you can push some new object onto the end of the array and it takes effect 15:28:32 krit: that's pretty neat 15:28:36 ... but it would just work on svg elements? 15:28:58 heycam: the model I'm thinking of, for elements that have attributes, for each attribute there's some accessor method 15:29:02 ... why couldn't we use that on a div 15:29:05 ... ? 15:29:22 ... if cssom had some nice list method like this (which it doesn't) then you could 15:29:38 shepazu: why do you think it's important that it's a generic one rather than one that works with svg elements 15:29:43 krit: it's important to have a unified model 15:29:57 shepazu: in what way is this not similar to getting the href of an a element in html? 15:30:06 Rossen_ has joined #svg 15:30:14 ... I think there's a core difference between svg and html content 15:30:26 ... html is light on attributes and attributes don't have complex values 15:30:42 ... I think this is about as close as you can get with how a html dom would work 15:30:58 ed: looking at an attribute with a complex structure - say path - there's talk of adding path to css 15:31:06 ... would this work similarly on path in css? 15:31:12 heycam: I would want the same dictionary values to be used 15:31:34 krit: with css the attribute has the least priority in the cascade, you would constantly override the values 15:31:46 heycam: maybe that's an argument for not having accessors on divs 15:31:51 krit: it's the same with svg attributes 15:31:53 heycam: that's true 15:32:02 krit: I do like this api more than what we have on svg currently 15:32:09 ... but it should apply to everything that's transformable 15:32:18 shepazu: for transform you have a point 15:33:14 heycam: maybe it would have been better to show an example on path 15:33:23 jet: I was hoping to see the sprite model on svg 15:33:33 ... what I'm seeing is svg is more machine generated 15:33:44 ... lists would have many elements and iterating over isn't pratical 15:34:05 ... what I'm seeing is that you can't pick out a particular object 15:34:45 heycam: one step in making it faster is the 'willchange' property 15:35:11 ... in terms of the dom memory size issue, if you're not going to make modifications, it's been suggested to take a snapshot of the tree as a raster and throw away the tree 15:35:20 ... it's kind of possible now with some work using Canvas 15:35:48 shepazu: there's a problem with that technique because you lose quality if someone zooms or does anything similar 15:35:56 ... though perhaps you could just reconstruct 15:36:09 heycam: depends if you've thrown away the subtree 15:37:03 s/ css the attribute/ the SVG attribute/ 15:37:49 birtles: you could use an image element with a data uri to generate a sprite and throw away the dom tree 15:38:20 heycam: it's a bit like the original promise of use 15:38:31 shepazu: and by having params you could optimise on what would change and what would not 15:38:38 ... so you could decide what bits to throw away and what to retain 15:39:07 ... I hadn't considered that aspect, but params along with variables could be used as an optimisation hint 15:39:22 ... one of the interesting things about svg is that you don't just have a static image - you have something you can change 15:39:30 ... that is an advantage over rasters 15:39:42 jet: I'm not just talking about performance, but usage 15:39:48 ... vast majority of svg isn't programmed 15:39:57 ... so I'd like to be able to opt in to enabling programming on svg content 15:40:13 shepazu: you could specify that on the graphics element 15:40:27 jwatt: you could probably determine that programatically 15:40:42 ... you'd need to take note of percentages and layout 15:40:54 ... it's kind of the thing that you don't want an author to decide 15:41:11 heycam: if it's inline svg markup you need to have the dom because changes could come from outside 15:41:41 jet: programmable graphics is useful, but we're making assumptions about the dom that come from html 15:41:51 ... which is mostly hand written, but svg is generated 15:42:09 ... author just wants a scalable image, but it's slow because all the stuff going on under the hood to support the dom 15:42:24 heycam: you can already make that decision as an author by placing the image in line or not 15:42:59 ... if you're doing inline svg you've made the decision that the dom needs to stick around 15:43:33 krit: if you scale the webpage, is there a performance difference between scaling an inline svg or an image svg? 15:44:00 Rossen_: you will see differences if you use percentages 15:44:25 krit: if percentages aren't use will images always be faster in IE? 15:44:27 Rossen_: yes 15:44:46 ... which goes back to the point before about using the svg as an image 15:44:54 krit: I'm not sure about WebKit, what's FF like? 15:45:57 birtles: we have optimisations on img that will make it faster 15:46:28 birtles: I think we've worked out a way to reduce the cost of the DOM if that's what you want 15:46:38 krit: is there a cost on the dom other than memory? 15:47:06 jwatt: for us there would be - e.g. hit testing on elements 15:47:25 krit: for re-rendering only the render tree would be used (in WebKit) 15:47:47 heycam: back to the polyfill 15:48:29 Rossen_: there was a css value proposal that Tab had - I liked that he hid all the properties behind a CSS object 15:48:31 krit: that's the css om 15:48:41 Rossen_: have you thought of applying the same approach here? 15:49:01 heycam: I think we considered at one point doing something like giving different united access 15:49:12 ... e.g. element.px.width 15:50:05 Rossen_: I liked it all being behind css 15:50:26 ... related to dirk talking about transform, it's clear which you're working with 15:50:58 jet has joined #svg 15:51:11 link to Tab's proposal http://www.xanthir.com/b4UD0 15:51:45 ed: we are moving more svg properties to css om, there's less unique svg elements in the dom 15:52:03 s/elements/attributes (or objects) 15:52:40 heycam: for everything that has an attribute on an element, there's a dot something that lets you access it 15:52:49 ... for consistency with html there should be some way of doing that 15:52:51 jwatt_ has joined #svg 15:52:58 krit: not sure if we need to be consistent with html at that point 15:53:08 heycam: I think that's a consistency that hasn't been broken in html 15:53:16 ... an author can always guess how to interact with an object 15:53:46 ed: rather than breaking existing dom, phase it out and upgrade what we have 15:54:01 heycam: to achieve that new objects shouldn't have access to the old dom 15:54:29 s/rather than breaking existing dom/I'd rather break the existing dom 15:54:40 shepazu: I'm don't think there's too much content using the current dom 15:54:46 heycam: we get bugs filed all the time when things change 15:55:20 krit: there's lots of differences now between Blink and WebKit and we don't get many bugs filed on it 15:56:21 shepazu: I'm skeptical that there's content using the specific part of the dom that we would break 15:56:43 ... some content would break obviously, but is there a significant amount? 15:56:54 heycam: didn't we do a search last time and we found that d3 uses some 15:56:59 krit: just transform, with a fallback 15:57:20 shepazu: I think we talked last time about reaching out to those library authors and seeing how they feel 15:57:31 birtles: it's all the sites that have installed it and aren't updating it 15:57:45 ChrisL: I'd like to take up your point, get Dmitry's input for example 15:58:05 shepazu: that's not what I'm talking about. I'm talking about the proposal not having this new graphics element 15:58:14 ed: are there any other ways of opting in? 15:58:19 heycam: I couldn't think of any that are reasonable 15:58:27 shepazu: I'm suggesting that we break backwards compatibility 15:58:43 ... just say rather than maintain these two paths, just break it 15:58:53 krit: speaking for WebKit and Apple, we would do it 15:59:01 jwatt: if you do it and get away with it I'd be happy to do it 15:59:18 shepazu: put out a build and see if people complain 15:59:36 krit: we can't break getPathLength, but we can break animval stuff 15:59:51 heycam: I agree that if it's possible to completely replace things then that's the best solution 15:59:55 ... but I'm cautious about doing that 16:00:14 shepazu: there will be content that breaks, old documentation that will no longer be applicable 16:00:23 ... but I suspect most of that content is not content that is being used 16:00:55 ... a lot of the content would be from the old days 16:01:10 ... FF broke almost all SVG content when it insisted we include the ns in the svg root 16:02:04 shepazu: I think we should be aggressive and try to change it and see what people say 16:02:32 ed: as long as there's an alternative to the functionality 16:02:35 shepazu: you can do it with a shim 16:02:39 ed: that would be difficult with animval 16:03:25 heycam: 1. whether or not new accessors are what we want 16:03:48 2. is backwards compat what we want? 16:04:51 heycam: I still think we should have the nice accessors, but it means we can do it in stages 16:05:08 shepazu: I would be happy with any of the suggestions rather than what we have now 16:05:18 ... I couldn't decide on which one we want now 16:05:35 ed: it should be possible to drop parts of the old svg 16:05:44 heycam: what do you think about the dictionary things? 16:05:52 krit: everything using dictionaries is more like coding today 16:06:18 s/drop parts of the old svg/drop parts of the old svg e.g the SVGPathSeg* API 16:07:09 krit: could we map svg namespace to html namespace? 16:07:14 heycam: that's a big dom core change but .... 16:07:33 ed: we had some hacks in presto to let you do that 16:07:48 heycam: could hack html parser now to put svg elements into html namespace 16:07:55 ... and rely on not inspecting the namespace 16:08:16 krit: we got bug reports on that - about inheritance of objects 16:08:28 s/presto to let you do that/presto to let you do that (document.createElement("rect") got you an SVGRectElement if the document had an root) 16:08:41 krit: right now is the best time to change svg this way 16:08:59 Some modern HTML5 elements that have added numerical DOM properties: 16:09:01 http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#the-meter-element 16:09:03 http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#the-progress-element 16:09:04 http://www.whatwg.org/specs/web-apps/current-work/multipage/embedded-content.html#media-elements 16:09:05 shepazu: right now people are using svg like an image, in the next few years people will be using it more like something you can program 16:09:17 (so precedent for heycam's proposal) 16:09:41 heycam: I think we have to provide a nice scripted interface. Don't think it's good to require people to use libraries 16:10:10 jwatt: dirk was saying he didn't like having numerical properties - there's precedent for doing that in html5 16:11:49 heycam: I think we have a path to the next step now 16:11:54 ... if we can rip the band aid off then that's good 16:12:02 ... we would still need to work out the details regarding namespace stuff 16:12:09 ... if we're not using a new root element name 16:12:54 shepazu: I wonder if this is something we should talk about at graphical web? 16:12:58 ... on the panel thing 16:14:56 heycam: for a couple of the changes here, can you change href and classname to a string? 16:15:19 shepazu: you should also allow href without the xlink 16:15:26 krit: we also need to talk about image vs img 16:15:38 heycam: that was one of the wrinkles with this 16:15:48 ... any way we go about it it's going to require changes to parsing 16:15:55 ... maybe we should allow img 16:16:37 ... we are already switching to object-fit and object-position 16:17:59 heycam: so to summarise the plan: 16:18:10 ... 1. can we just remove the existing svg dom? dirk will try 16:18:26 ... 2. if so, various parts of this proposal don't need to be done because we don't need to opt in 16:18:42 ... we should give people whatever nicer options we can as soon as possible, but it doesn't have to be all at the same time 16:18:50 ... 3. if it fails then we re-evaluate 16:19:01 krit: WebKit only releases every year 16:19:12 ... need to talk to someone else for Blink 16:19:34 ed: I think as long as there's use counter data then it might be possible 16:19:39 krit: introduce a compile or runtime flag 16:19:49 heycam: decision about switching that flag? 16:20:29 krit: easy on nightly 16:20:39 ed: we can do it in parallel 16:20:59 heycam: dirk, how close are you to being convinced to doing something like this if the plan fails? 16:21:15 krit: my main concern was having a new graphics element that forces people to the new svg 16:21:27 heycam: we didn't talk about lower casing all attributes 16:22:45 shepazu: it might be advantageous for Blink and WebKit if you could point to this conversation and say this is what the svg wg is interested in doing to gather data 16:23:13 jwatt: we should clarify that we're not removing the entire svg dom 16:23:20 ... someone should come up with a list 16:23:36 shepazu: we could give an example - say everything that is reflecting something 16:25:22 RESOLUTION: We will remove SVG DOM attribute accessors pending web compatibility checks 16:25:57 all IDL attributes of type SVGAnimated* 16:26:00 ACTIONS: Erik to add run time flag to disable parts of SVG DOM in Blink 16:26:17 ACTION: Dirk to add compile time flag to disable parts of SVG DOM in WebKit 16:26:18 Created ACTION-3644 - Add compile time flag to disable parts of svg dom in webkit [on Dirk Schulze - due 2014-08-29]. 16:26:59 krit: I'd be interested in whether MS would remove the DOM if others did? 16:27:04 Rossen_: likely would 16:27:26 ... would be in favour of better accessors 16:27:35 heycam: dirk your biggest concern is graphics element? 16:27:40 krit: yes, duplicating code paths 16:27:57 heycam: if we can't do removing and I can come up with another method of opting in without root graphics element would you be happier? 16:27:59 krit: yes 16:28:12 heycam: I'm not sure there is another way but I could think about it 16:28:28 ed: the point is to make existing svg elements inherit from HTMLElement 16:28:30 heycam: yes 16:28:54 shepazu: image element isn't as big a worry as a element as far as conflicts go 16:28:59 krit: it's not used very much 16:29:05 ... we'd have to discuss with html community 16:29:17 krit: most of html community would be happy if we move to html namespace 16:29:21 ... not sure they realise the cost though 16:29:47 heycam: I wonder if we're at a point where we decide that we want to put things in the html namespace? 16:30:12 krit: I think we should 16:30:27 shepazu: I'm in favour of it 16:30:30 ed: I'd like it if possible 16:31:10 heycam: I propose that we work towards having all svg elements in the html namespace 16:31:22 krit: do we need changes to the content model if we do that? 16:31:30 ... e.g. circle having nested elements? 16:31:47 heycam: don't think changes would be needed 16:31:55 shepazu: think it would lead to changes but they're not required 16:32:03 heycam: I don't want to change the structure of elements 16:33:04 krit: if we decide this is the direction we want to go. we can devote next f2f to resolving the issues 16:33:41 Rossen_: moving to a namespace free world would be awesome 16:37:50 RESOLUTION: We want better accessor methods for list type things. e.g. return array of plain javascript values 16:39:43 RESOLUTION: All SVG elements should be moved to html namespace pending further discussion about details of doing that 16:40:59 heycam: in my proposal I said that you can put things in html namespace or no namespace 16:41:10 ... with the aim that if you're writing xml by hand you can leave off the xmlns 16:41:18 ... seemed like the nicest thing to do 16:44:28 RRSAgent, make minutes 16:44:28 I have made the request to generate http://www.w3.org/2014/08/22-svg-minutes.html ed 16:45:26 glenn has joined #svg 16:47:02 Meeting: SVG WG London F2F 2014 16:47:49 present: Chris, Erik, Cameron, Doug, Nikos, Jet, Jonathan, Brian, Razvan, Dirk, Rossen, Rik, Tav 16:47:52 RRSAgent, make minutes 16:47:52 I have made the request to generate http://www.w3.org/2014/08/22-svg-minutes.html ed 17:18:44 glenn has joined #svg 17:48:06 glenn has joined #svg 18:04:17 thorton has joined #svg 19:02:35 thorton has joined #svg 19:23:18 glenn has joined #svg 20:07:21 jwatt has joined #svg 21:06:11 jwatt has joined #svg 21:43:26 ed: s/Leipzig/London ….many similarities