05:34:21 RRSAgent has joined #virtual-scroller 05:34:21 logging to https://www.w3.org/2019/09/18-virtual-scroller-irc 05:34:49 ScribeNick: zcorpan 05:34:52 dauwhe_ has joined #virtual-scroller 05:34:57 present+ 05:35:00 Kiyoshi has joined #virtual-scroller 05:35:06 RRSAgent, make logs world-readable 05:35:14 RRSAgent, make logs 05:35:14 I'm logging. I don't understand 'make logs', zcorpan__. Try /msg RRSAgent help 05:35:16 Zakim has joined #virtual-scroller 05:35:22 stantonm has joined #virtual-scroller 05:35:22 RRSAgent, make minutes 05:35:22 I have made the request to generate https://www.w3.org/2019/09/18-virtual-scroller-minutes.html zcorpan__ 05:35:24 present+ 05:35:28 present+ 05:35:30 present+ 05:35:39 present+ 05:35:40 spectranaut has joined #virtual-scroller 05:35:43 Topic: Virtual scroller 05:35:54 [presentation] 05:35:59 note taking reference: https://docs.google.com/spreadsheets/d/1bor78BuB-bnb_m-5JSWziMirgUivI00197l3QqdGNgU/edit?usp=sharing 05:36:16 marisa has joined #virtual-scroller 05:36:31 present+ 05:37:03 rniwa has joined #virtual-scroller 05:37:14 present+ 05:37:18 present+ 05:38:05 rakina has joined #virtual-scroller 05:38:12 fergal_daly: behaves mostly as an empty div 05:38:21 fergal_daly: contains style and layout at the moment 05:38:59 present+ Valerie Young, Bocoup 05:39:08 drousso has joined #virtual-scroller 05:39:10 present_ 05:39:12 present+ 05:39:12 present- Bocoup 05:39:35 fergal_daly: the contents are not in the DOM... 05:39:40 fergal_daly: like display: none 05:39:51 krit has joined #virtual-scroller 05:40:13 present+ 05:40:28 rbyers has joined #virtual-scroller 05:40:35 present+ 05:40:52 fergal_daly: WICG/display-locking 05:41:06 fergal_daly: activatable 05:41:19 fergal_daly: has same perf characteristics 05:41:21 JakeA has joined #virtual-scroller 05:41:29 I made the DOM comment before 05:41:30 fergal_daly: behave as if it's visible 05:42:02 fergal_daly: focus() scrollIntoView(), find in page, can reveal content 05:42:07 fergal_daly: deferred cost 05:42:13 fergal_daly: tab navigation 05:42:21 fergal_daly: anchor navigation, selection 05:42:41 fergal_daly: a11y purposes 05:42:54 fergal_daly: idea is that you build a scroller using this 05:43:05 fergal_daly: previously you would delete DOM objects 05:43:15 fergal_daly: instead you can build a scroller where things are invisible activatable 05:43:22 fergal_daly: things inside are visible as normal 05:43:31 fergal_daly: the browser will activate and scroll into view 05:43:39 fergal_daly: make the things around it visible as well 05:43:59 smfr: are you relying on intersectionobserver? 05:44:02 fergal_daly: yes 05:44:10 fergal_daly: debate on when things are activated 05:44:27 heycam: type cntr+f 05:44:39 fergal_daly: activate the first one 05:44:46 fergal_daly: have to figure out what to do with the tick parts 05:44:47 q= 05:44:49 q+ 05:45:14 q+ 05:45:25 Domenic: all the elements above will push down 05:45:53 Domenic: accuracy of scrollbars vs performance 05:46:03 Domenic: tickmarks will be "pretty good" 05:46:11 fergal_daly: yeah, tradeoff 05:46:13 koji has joined #virtual-scroller 05:46:34 mstange 05:46:37 Domenic has joined #virtual-scroller 05:46:46 sanketj has joined #virtual-scroller 05:46:48 mstange: if the user presses the first letter of the find bar ??? 05:46:59 X???: something something 05:47:08 q? 05:47:19 cbiesinger: does it require javacsript to activate? 05:47:21 q? 05:47:22 s/find bar ???/find bar, does the entire page need to be styled?/ 05:47:24 q+ 05:47:27 fergal_daly: yes 05:47:31 q+ for selection activation 05:47:43 fergal_daly: should scrolling activate or not? 05:47:43 s/X???: something something/fergal_daly: Yes, but you can do it in chunks./ 05:48:04 Chris: I'll go with consensus 05:48:06 chrishtr has joined #virtual-scroller 05:48:13 smfr: find a bunch of things containing A's 05:48:21 fergal_daly: first thing will be activated 05:48:33 smfr: it's now always going to paint, unless JS makes it invisible again? 05:48:45 smfr: ctrl+a can make all things visible? 05:48:55 Domenic: only the first thing that is found 05:49:06 fergal_daly: it will reveal the one with "a" 05:49:10 fergal_daly: it will scroll to that 05:49:17 fergal_daly: it should reveal everything around it 05:49:31 rniwa: something 05:50:01 rniwa: have to do layout in order to find anything at all 05:50:12 AmeliaBR: innerText workings 05:50:16 rniwa: which requires layout 05:50:22 Domenic: in browsers and spec 05:50:29 rniwa: that's not how you'd implement it 05:50:48 koji: (something) 05:51:02 smfr: the UA part of that is UA-dependent how to find stuff 05:51:15 Domenic: thjere's nothing in the spec about find 05:51:16 smfr has joined #virtual-scroller 05:51:21 q? 05:51:22 Domenic: anchor navigation is specified 05:51:27 rniwa: it's observable 05:51:33 q+ interested to hear the order of events on anchor navigation 05:51:36 rniwa: how would you find out what's there 05:51:43 rniwa: image doesn't load, use alt text 05:51:43 q- 05:51:46 ack cbiesinger 05:51:57 rniwa: sounds like a terrible user experience 05:52:12 Domenic: currently user doesn't find anything at all because it's not in th eDOM 05:52:21 rniwa: if you choose to implement your website that way 05:52:27 fergal_daly: people do 05:52:39 fergal_daly: for a largely text site it should just work 05:52:40 q? 05:52:49 ack drousso 05:52:56 drousso: if you're dealing with custom elements 05:52:58 q+ 05:53:04 drousso: have to delay until custom element finishes its upgrade 05:53:05 q+ 05:53:16 drousso: delaying until script is done 05:53:18 fergal_daly: yes 05:53:40 fergal_daly: can imagine things in the DOM where things are done nicely first before the user scrolls 05:53:48 fergal_daly: take control of sequencing 05:54:03 drousso: (something) 05:54:05 jackbsteinberg has joined #virtual-scroller 05:54:22 q? 05:54:46 Chris: if you remove those values from the list of things in the render subtree 05:55:03 Chris: elements not defined in the subtree will be run in the next microtask subtask 05:55:11 Domenic: spec is not finilized 05:55:22 chrishtr: will be kicked off in the usual order 05:55:27 q? 05:55:48 ack xiaochengh 05:55:48 xiaochengh, you wanted to discuss selection activation 05:56:01 xiaochengh: interaction , can't activate the subtree 05:56:09 fergal_daly: all we can do is better than what we do now 05:56:12 fergal_daly: it's not magic 05:56:20 fergal_daly: we need to have things formatted and pasted 05:56:30 xiaochengh: can we delay that until Cntrl+c 05:56:48 chrishtr: we can do it sync when we want, just like ctrl+f 05:57:05 q+ 05:57:05 AmeliaBR: making it more UA-dependent when this content becomes real instead of virtual 05:57:16 AmeliaBR: the UA can decide how to interact with these in a useful way 05:57:17 q? 05:57:25 ack interested 05:57:25 interested, you wanted to hear the order of events on anchor navigation 05:57:36 smaug: breaks microtask model 05:57:49 smaug: calls (something) at random times 05:57:55 smaug: extra microtask checkpoints 05:58:02 Domenic: let's cue a task to do a thing 05:58:03 smaug: ok 05:58:08 chrishtr: point well taken 05:58:18 JakeA: if there's a sudden movement in scroll pos 05:58:28 JakeA: anchor is visible but jumping to 500'th 05:58:35 fergal_daly: virtual scroller problem 05:58:42 fergal_daly: if it's "scroll by this many pixels" 05:58:54 fergal_daly: we need an API for author or external user for size hinting or something 05:59:13 fergal_daly: absolute size, relative to things you've seen so far... 05:59:15 q? 05:59:19 fergal_daly: tradeoff of do you want to render or not 05:59:29 JakeA: the invisible ones, or they all come into view at once 05:59:30 q? 05:59:38 ack heycam 05:59:39 q- 05:59:43 q- 05:59:51 heycam: in this model of virtual scroller 06:00:02 heycam: would be pretty common to style the entire page 06:00:08 heycam: when you find in page 06:00:20 heycam: a box for those things, potentially very large DOM 06:00:23 heycam: large box tree 06:00:28 fergal_daly: many things in a row 06:00:38 heycam: yea. not be able to avoid styling the entire doc 06:00:48 heycam: reflow and frame construction for rthings not displayed 06:00:57 heycam: hwo perf gonna be when you still need to do those things 06:01:05 fergal_daly: it's a problem, will come to it later 06:01:15 Domenic: demos show how fast this makes things 06:01:25 Topic: Scroller API 06:01:41 fergal_daly: JSON<-> DOM 06:01:48 fergal_daly: unusual API but I think it's nice 06:02:05 fergal_daly: API is , put yoru content inside, it works 06:02:13 fergal_daly: it knows when to hide stuff 06:02:24 smfr: you're proposing a new element? 06:02:30 fergal_daly: it's a custom element 06:02:33 LOL 06:02:41 fergal_daly: it's very nice! 06:02:47 fergal_daly: you can delete divs, 06:02:52 fergal_daly: scrollbars require an API 06:03:10 fergal_daly: it's a container that knows when to hide its children 06:03:23 fergal_daly: how gonna do it? not machine learning... 06:03:28 fergal_daly: observe visible content 06:03:35 fergal_daly: tradeoffs, can't have everything 06:03:47 fergal_daly: assumes visible order == DOM order 06:03:54 fergal_daly: latency issue, no timing guarantees 06:03:59 fergal_daly: hasn't been a problem yet 06:04:09 fergal_daly: interserction observer looks like. it's observing these elements 06:04:12 fergal_daly: also mutation observer 06:04:29 fergal_daly: just moving things around, all we need to do is observe things visible, one above, one below 06:04:40 fergal_daly: will trigger at least one of the observers and we'll react 06:04:48 fergal_daly: if anyone can think of other cases... 06:05:09 AmeliaBR: interserction observer uses position after transformations? 06:05:10 fergal_daly: yes 06:05:17 fergal_daly: don't need to observe the whole world 06:05:41 fergal_daly: mutation observer, lets us know when content has changed 06:05:55 fergal_daly: slots everything into one big slot 06:06:07 fergal_daly: later prototype with 1 slot per child 06:06:20 fergal_daly: can baloon the number of slots, but seems to work ok 06:06:37 fergal_daly: this would actually scroll. a div, overflow:scroll, virtual-scroller inside 06:06:37 q? 06:06:42 fergal_daly: we don't know about scrollbars 06:06:48 Topic: Demos 06:07:01 fergal_daly: simple infinite scroller 06:07:10 q+ 06:07:30 (shows demo that scrolls and stuff is fetched on scroll) 06:07:40 fergal_daly: can't observe thing being locked, but it is 06:07:52 fergal_daly: just replace div with virtual-scroller 06:08:05 fergal_daly: another demo. this is more interesting because this is just content 06:08:13 fergal_daly: addresss book 06:08:17 fergal_daly: sticky position 06:08:23 fergal_daly: B pops up as you go 06:08:27 fergal_daly: done the same way 06:08:38 fergal_daly: all it does is replace virtual-scroller with div 06:08:48 fergal_daly: some virtual scroller have ??? 06:08:58 fergal_daly: do things as you would normally 06:09:15 fergal_daly: (demo resizing doing relayout) 60fps 06:09:20 fergal_daly: with div, 30fps 06:10:07 heycam: how many elements? 06:10:10 fergal_daly: 500 06:10:16 fergal_daly: wanted to add more 06:10:24 JakeA: hwo are you handling fling scrolling? 06:10:38 fergal_daly: it does unlock a region above and below 06:10:43 fergal_daly: can't do in this demo 06:10:46 fergal_daly: it's an issue 06:10:52 fergal_daly: fling can jump very far 06:11:00 Domenic: it takes a frame or so to catch up 06:11:15 JakeA: hit intersection observer... layout trashing? 06:11:21 Domenic: happens once a frame 06:11:29 Domenic: fling takes half a second. 30 frames 06:11:46 chrishtr: how much does JS need to catch up 06:11:50 smfr: (missed) 06:12:03 fergal_daly: don't have a demo 06:12:10 s/(missed)/it depends on how your IO works. you can add margins too 06:12:13 AmeliaBR: intersectionobserver would tell something is onscreen 06:12:27 fergal_daly: figuring out what should be onscreen takes JS to figure out 06:12:34 fergal_daly: it gets new stuff on screen in the same frame 06:12:39 JakeA: fixed height? 06:12:53 fergal_daly: it won't be the same stuff that comes on screen. will be different stuff 06:13:09 fergal_daly: it'll go down 60% and determine based on placeholder heights 06:13:18 JakeA: so for display:none, things are at the top 06:13:23 JakeA: JS has to take a guess 06:13:25 fergal_daly: yes 06:13:47 q- 06:14:13 fergal_daly: can resize font 06:14:18 fergal_daly: can restlye things 06:14:26 fergal_daly: lower fps with the div 06:14:38 fergal_daly: ok so the HTML standard... 06:14:47 fergal_daly: it's a pretty heavy doc. 11MB with a lot of stuff 06:14:54 fergal_daly: not as bad as it used to be 06:15:07 fergal_daly: (showing waterfall of page load) 06:15:23 fergal_daly: happily it's a doc with 11000 elements that are siblings 06:15:32 fergal_daly: using virtual-scroller is easy 06:15:36 fergal_daly: far fewer red frames 06:16:12 fergal_daly: doc got better at some point 06:16:20 Domenic: cntrl+f works! 06:16:31 Domenic: user experience when loading page is much smoother 06:16:49 fergal_daly: there was a problem with ctrl+f... took 5 minutes with 100% cpu 06:16:53 Domenic: few more days! 06:17:12 AmeliaBR: perf issue of HTML spec can have to do with custom element upgrading 06:17:43 fergal_daly: 1000 divs is still pretty heavy 06:17:53 fergal_daly: more proof of concept than a prototype 06:18:13 fergal_daly: loading the HTML standard again, loading into a thing 06:18:18 fergal_daly: many many slots 06:18:22 fergal_daly: takes a while to load 06:18:46 fergal_daly: resizing the HTML standard, 20-30 fps 06:19:06 heycam: what content size property? 06:19:14 fergal_daly: this is a different implementation. tree impl 06:19:27 fergal_daly: tree impl builds a 16 way tree of elements 06:19:31 fergal_daly: leaves are slots 06:19:43 fergal_daly: leaves are grouped together in 16, in 16, etc 06:19:51 fergal_daly: slots and all of their ancestors 06:19:58 fergal_daly: no long runs of divs of what is unlocked 06:20:08 koji: (missed question) 06:20:19 heycam: may be relevant for scrollbar thumb size 06:20:25 fergal_daly: sets a fixed content sizes 06:20:31 fergal_daly: sums them and makes them bigger 06:20:43 fergal_daly: tree one has more complex implementation 06:21:05 fergal_daly: 10,000 pagagraphs, works fine 06:21:08 present+ 06:21:11 q? 06:21:15 fergal_daly: sibling can go down to 2fps 06:21:18 s/10,000/100,000 06:21:29 Domenic: rendersubtree is very scalable 06:21:41 smfr: (something) 06:22:04 AmeliaBR: in initial intro, virtual scrolelr is about content loading. also as you scroll down, removing content 06:22:09 s/(something)/this is a different virtual-scroller impl, right? yes. so you can nest them? yes 06:22:12 AmeliaBR: that side doesn't seem to be part of the proposal 06:22:20 AmeliaBR: accumulate 06:22:26 q+ 06:22:29 fergal_daly: invisible things at the top 06:22:36 fergal_daly: small window of visible things 06:22:42 fergal_daly: browser CAN discard 06:22:50 mattwoodrow has joined #virtual-scroller 06:22:57 AmeliaBR: ok, 2 things that are tangled 06:23:01 AmeliaBR: custom element 06:23:11 AmeliaBR: browser would be able to address things based on user interaction 06:23:16 AmeliaBR: removing the attribute 06:23:27 AmeliaBR: i don't know how it would know how to put the attribute back on 06:23:31 fergal_daly: the browser wouldn't 06:23:44 koji: doing subtree? 06:23:53 fergal_daly: rendersubtree is more readily standardizable thing 06:24:16 Domenic: interest in ??? need primitive first. 06:24:26 koji: rendersubtree is what we want to standardize 06:24:34 fergal_daly: no proposal to standardize virtual-scroller 06:24:49 Majid: (missed) 06:24:57 fergal_daly: tab set.. details element 06:25:11 fergal_daly: cant' currently recreate the details element, can with this 06:25:17 q? 06:25:20 chrishtr: optimizing page load generally 06:25:39 chrishtr: do the details element , or not actually close the details element and stil have good perf 06:26:06 fergal_daly: google style guides, all collapsed, ctrl+f... need to uncollapse before searching 06:26:20 chrishtr: invisible content is still in the DOM, still has layout conceptually 06:26:32 chrishtr: if script wanted to it could read that layout without displaying content 06:26:44 Majid: accessibility 06:26:50 fergal_daly: the content is there 06:27:05 AmeliaBR: hope there's an area for virtual content 06:27:25 smfr: hwo much of the proposal can you remove but keep optimization in the browser 06:27:34 smfr: you can remove complexity 06:27:41 smfr: is there a reduced version of this? 06:27:45 kiyoshi has joined #virtual-scroller 06:27:48 smfr: can we not need this attribute? 06:28:02 smfr: containment plus content-size plsu something custom elements 06:28:03 present+ 06:28:16 Domenic: need an opt-in fo rthe perf tradeoff 06:28:35 Domenic: CSSWG wanted to maek it usable for visible content 06:28:42 chrishtr: if we had a thing like that... 06:28:55 chrishtr: browser could notice that it doesn't need to render 06:29:01 chrishtr: remove the size containment 06:29:08 chrishtr: it would have to remove the inviisble thing 06:29:15 chrishtr: would result in something like this 06:29:28 chrishtr: if yo ucan think of another way to do it, would be amazing 06:29:42 JakeA: tabs case compelling... not something yo uscroll to 06:29:49 smfr: background tab, events 06:30:04 rniwa: (missed) not for us 06:30:16 chrishtr: it's technically not required 06:30:19 duga has joined #virtual-scroller 06:30:22 fergal_daly: filtering with mutation observer 06:30:28 q? 06:30:32 JakeA: do we have other APIs where browser changes attributes? 06:30:35 Domenic: details 06:30:44 RRSAgent, make minutes 06:30:44 I have made the request to generate https://www.w3.org/2019/09/18-virtual-scroller-minutes.html zcorpan__ 06:31:10 https://docs.google.com/spreadsheets/d/1bor78BuB-bnb_m-5JSWziMirgUivI00197l3QqdGNgU/edit#gid=0 06:32:15 rniwa has joined #virtual-scroller 06:33:22 dauwhe has joined #virtual-scroller 07:23:05 duga has joined #virtual-scroller 07:24:04 duga has joined #virtual-scroller 07:24:07 dauwhe has joined #virtual-scroller 07:26:06 bwalderman has joined #virtual-scroller 07:26:28 marisa has joined #virtual-scroller 07:28:19 zcorpan has joined #virtual-scroller 07:31:50 smfr has joined #virtual-scroller 07:31:55 drousso has joined #virtual-scroller 07:32:03 smfr has left #virtual-scroller 07:33:27 zcorpan has joined #virtual-scroller 07:33:33 duga has joined #virtual-scroller 07:34:01 Domenic has left #virtual-scroller 07:34:13 toshiakikoike has joined #virtual-scroller 07:38:24 mstange has left #virtual-scroller 07:49:54 s/hope there's an area for virtual content/hope you're coordinating with the aria-virtualcontent proposal/ 07:50:13 RRSAgent, make minutes 07:50:13 I have made the request to generate https://www.w3.org/2019/09/18-virtual-scroller-minutes.html AmeliaBR 08:06:14 mattwoodrow has joined #virtual-scroller 08:06:29 mattwoodrow has left #virtual-scroller 08:25:18 dauwhe has joined #virtual-scroller 08:30:39 drousso has joined #virtual-scroller 08:31:08 drousso has joined #virtual-scroller 08:33:09 toshiakikoike has joined #virtual-scroller 08:35:06 dauwhe has joined #virtual-scroller 08:44:11 dauwhe has joined #virtual-scroller 08:57:26 Zakim has left #virtual-scroller 09:07:43 dauwhe has joined #virtual-scroller