| 06:02 | <farre> | Noam Rosenthal, annevk: it looks like neither Chrome nor Safari does this. is there a reason for that? |
| 06:03 | <farre> | and if we don't want carry over to be the default for non-Navigation API navigations, should we add a
value to the options of the navigation api methods (including updateCurrentEntry)? |
| 06:08 | <annevk> | I'm not sure. Is there a test Chrome and Safari fail? |
| 06:08 | <farre> | not yet, but soon |
| 06:09 | <farre> | but we've been discussing a bit around what is actually preferable |
| 06:14 | <annevk> | I suspect you and Jake Archibald are probably a better judge of that than I am. |
| 06:15 | <sideshowbarker> | So for Ladybird, IÆve implemented support for downloading So I‘m looking at step 3 and step 4 of https://html.spec.whatwg.org/multipage/browsing-the-web.html#loading-a-document. And I’m not implementing step 3 at all — because we’re not going to do “displaying some sort of inline content, e.g., a native rendering of the content or an error message”. So OK then I move on to step 4. We’re not going to do “Hand-off to external software”. What we‘re doing is just “handle as a download”. |
| 06:21 | <sideshowbarker> | My problem is: The language for that step 4 doesn’t normatively state anything that actually seems to allow me to conformantly do “handle as a download” in this case. Instead, the language there just says kind of hand-wavingly alludes to the possibility that there are cases where “an unknown type that will be processed by handle as a download”. But never says how to actually normatively make that decision. So the https://html.spec.whatwg.org/multipage/links.html#handle-as-a-download algorithm is not actually called normatively for this case — though it is for related |
| 06:21 | <farre> | yeah, and I assume Noam Rosenthal also |
| 06:24 | <annevk> | This was rather hard to follow, but given the quote I think you mean step 4 of https://html.spec.whatwg.org/multipage/browsing-the-web.html#loading-a-document ? |
| 06:24 | <sideshowbarker> | Yeah |
| 06:25 | <annevk> | Ooh I only saw this second post from you somehow. I see there's one more when I scroll up. Oops. |
| 06:25 | <sideshowbarker> | No worries yeah it was a lot of words I as trying to type in a short time 😅 |
| 06:27 | <annevk> | I think we should probably split 4. So we first in an implementation-defined manner check that it goes to external software and if so hand it off and then have a step 5 that's otherwise which calls handle as a download. |
| 06:28 | <annevk> | Would be good if farre Jake Archibald Noam Rosenthal chimed in as well. |
| 06:29 | <annevk> | (The problem I had btw was that the given link preview windows pushed your earlier message out of my screen and I assumed you had only typed one message since I saw you were typing one. Funny that.) |
| 06:29 | <sideshowbarker> | Element UX is … not ideal |
| 06:37 | <sideshowbarker> | Anyway yeah what you said about splitting would certainly seem to make sense. What I can say implementation-wise at least is: The user behavior (described in the issue I linked to) has caused our implementation of https://html.spec.whatwg.org/multipage/browsing-the-web.html#loading-a-document to get hit. And unless we make some change, then we end up just spinning there in the way way the user describes. So, we’ve gotta do something here. We’re already in that code, and we’re at that point, and we’ve gotta do something different. We know we are not going to hand off to an external app. And we know we are not going to try to display the content inline. We could display an error message. But then we’d just be (unnecessarily) completely blocking the user from getting (to) the resource. So we already know we want to just download the resource for the user. And I can do that (and already implemented it). It’s just a question of kind of trying to make that OK as far as the spec requirements go. |
| 06:59 | <Noam Rosenthal> | I remember a related social media chat with Jake Archibald about this recently. Other than that I can dig a bit into the history next week. |
| 06:59 | <annevk> | hsivonen: perhaps the URL standard should name its operations "string to ASCII domain" and "domain to Unicode" for maximum clarity |
| 07:00 | <annevk> | It would be a pretty straightforward specification change that I think we would accept as a bug fix as this is hard to test regardless. Do you want to make it? |
| 07:15 | <farre> | I don't have lots of input, other than that I agree that the spec text is vague. for us the external handler also more or less also does handle as a download as part of it's implementation, so I'm not entirely sure if we'd need to adapt to such a spec change. smaug might know more. |
| 07:17 | <farre> | would we make the handle as a download step optional? otherwise it looks like we'd change behaviour here |
| 07:47 | <annevk> | I was thinking it would always be handled as a download as final step. I think handled as a download still allows you to just return early though. |
| 08:30 | <smaug> | Would allow-downloads vs allow-top-navigation-to-custom-protocols matter here |
| 08:58 | <annevk> | Hmm yeah, I suppose so. If handle as a download doesn't handle those I suppose there might be further issues. |
| 08:59 | <annevk> | And it doesn't seem like it does so meh. |
| 09:05 | <Jake Archibald> | One of the big complaint about the history API was that state was lost just because the user clicked an internal page link |
| 09:05 | <Jake Archibald> | The navigation API was intended to avoid this footgun |
| 09:27 | <sfarre> | Was this explicitly for the frag nav case or the general case? Because this means that all navigations via < a href ="#foo" > now will clone the state regardless (and the user has no control). There was a bug filed from a user who was surprised to see that navigation.navigate("#foo") and < a href="#foo" > did not lead to the same behavior which started this whole thing. |
| 09:35 | <hsivonen> | annevk: Do you intend to make it so that you wouldn't pass raw input to either one, but you'd have to (at least conceptually) pass the output of the former as input to the latter? |
| 10:09 | <annevk> | hsivonen: that is already the case, "domain to ASCII" takes a string, "domain to Unicode" takes a domain |
| 10:10 | <hsivonen> | annevk: Well, then the current naming is indeed bad. |
| 10:10 | <hsivonen> | annevk: And what's the point of beStrict in the "domain to Unicode" operation, then? |
| 10:11 | <hsivonen> | When reading the spec, I have managed to miss that "domain" is a strongly-typed thing distinct from a string that's used for domain purpose. |
| 10:15 | <annevk> | I think beStrict is indeed meaningless as it is already enforced when a string becomes a domain. I don't think I quite had that realization before as domain to Unicode also signified validation errors which is not needed. Not sure. |
| 10:33 | <farre> | turn of events: looks like location.hash = "#foo" actually will carry over in Chrome |
| 11:06 | <Noam Rosenthal> | Yea I remember it working correctly last time I checked |
| 11:06 | <Noam Rosenthal> | It doesn't carry over if you navigate programmatically via the history/nav API, only if the user navigates or with the other APIs. But I am sure there could be edge cases here as always |
| 11:14 | <farre> | Yeah, the egde case is `<a href=hash>` |
| 11:15 | <farre> | Which spec says should carry over |
| 13:17 | <annevk> | hsivonen: https://github.com/whatwg/url/pull/915 |
| 15:10 | <hsivonen> | r+. Thanks. |
| 15:36 | <sfarre> | Noam Rosenthal: why doesn't navigation.navigate("#foo") carry over, do you know? |
| 16:32 | <Noam Rosenthal> | Noam Rosenthal: why doesn't navigation.navigate("#foo") carry over, do you know? |
| 17:08 | <smaug> | jarhar: just a sec, reading the PRs. And also trying to figure out if everything works fine in cases like https://mozilla.pettay.fi/composed-events-dispatch.html scenario K (although that example is about relatedTarget) |
| 18:13 | <smaug> | jarhar: hmm, do we need tweaks to the UI event PR or should we just ask someone to merge it? I don't know if tests have been written. UI Events doesn't have a real editor atm |
| 18:14 | <jarhar> | If you click the approve button then I'm happy to deal with finding a person with permissions |
| 18:14 | <jarhar> | to merge it |
| 18:14 | <jarhar> | im asking around to figure out the issue with boundary events, but that can also be done as a followup |
| 18:14 | <jarhar> | it sounds like the existing retargeting stuff in the pr is good though? |
| 18:14 | <jarhar> | i can also help out more with tests |
| 18:19 | <smaug> | Xiaoqian from w3c might need to do the merge? sideshowbarker ? |
| 18:19 | <smaug> | I think the retargeting should work yes |