01:08 | <sideshowbarker> | Has anybody made a diagram that shows the relationship/structure for navigables, browsing contexts, Windows, documents? For example, something similar to https://docs.google.com/presentation/d/1ZRIQbUKw9Tf077odCh66OrrwRIVNLvI_nhLm2Gi__F0/embed?start=false&loop=false&delayms=3000&slide=id.g30f0fc55_0_152 |
01:22 | <Domenic> | Some attempts in https://github.com/whatwg/html/issues/3863 , outdated by now |
01:54 | <sideshowbarker> | One thing that’s challenging about implementing spec features is that the abstractions/classes used in browser-engine source — other than Document and maybe Window — don’t clearly map to spec constructs. I mean the fact that, for example, there’s no, say, BrowsingContext class in WebKit/Blink — instead the closest thing to that (and to a navigable) is called Frame, and it’s not completely clear that really does correspond very directly to the spec constructs. And then WebKit and Blink have a Page class — which in Gecko corresponds maybe to a docshell? But neither Page nor docshell seem to map clearly to anything in the spec. And because of all that, sometimes when I look at some particular conditional check in the engine sources, I can’t see what particular observable (JavaScript-testable) condition in frontend JavaScript code that condition corresponds to — or even if it corresponds to any observable/JavaScript-testable condition. Example: Since I don’t know what (if anything) a Page maps to in the spec, I also don’t know what it means for a Frame to not have an associated Page, and whether a change to the code block for that condition is something that will be observable from frontend code and potentially affect existing tests — or that should require new tests. |
03:51 | <Domenic> | Dominic Farolino has thought a lot about these things in Chromium |
06:19 | <sideshowbarker> | Dominic Farolino has thought a lot about these things in Chromium |
07:15 | <annevk> | Domenic: do you recall the story around Uint8Array in more detail? https://github.com/whatwg/fetch/issues/1724 |
07:15 | <annevk> | It certainly wasn't about what implementations were doing |
07:16 | <Domenic> | It was originally a constraint on outputs. Then for upload streams we decided not to allow anything else... not sure exactly why. Maybe because you should only be upload-streaming bytes, not float32s? |
07:16 | <Domenic> | For arguments to methods, accepting BufferSource seems like the general rule. |
07:18 | <annevk> | Maybe for upload streams it was so that code path could be optimized? But okay, that matches my general recollection. |
15:34 | <Chris de Almeida> | 😜 |
17:37 | <Chris de Almeida> | ☝️ apparently the cat has been at the keyboard |
22:03 | <akaster> | Is it intended that a browsing context group should be 1-1 with an agent cluster, and a browsing context should be 1-1 with an agent, from ECMA 262? |
22:07 | <akaster> | It seems like the AO to create a new browsing context and document is essentially saying, "create a new agent". But it's not clear to me what part of the algorithms following from the rules for choosing a target navigable tell me whether I need to create a new process for the browsing context. Or rather, what part of the rules tell me whether a new navigable should live within the same agent cluster or not. |
22:10 | <akaster> | Or wait no. Create a new browsing context and document says to create a new realm. Which is not the same as an agent. 😵💫 |