| 00:02 | <jyasskin> | TabAtkins: I wonder if Bikeshed should automatically insert an "X depends on the Infra Standard" statement into specs it builds. Or have an easy way to produce that statement, since nearly all specs will do so. |
| 00:02 | <TabAtkins> | jyasskin: Reffing a term from Infra will insert it into the Index. |
| 00:02 | <TabAtkins> | And I think the biblio? |
| 00:03 | <jyasskin> | Yeah, but https://infra.spec.whatwg.org/#usage says to add one more sentence. Maybe that's unnecessary though given the references. |
| 00:07 | <Domenic> | The idea is that if you insert that sentence then all of https://infra.spec.whatwg.org/#conventions applies |
| 00:08 | <Domenic> | So then you don't need your own conformance section for example |
| 02:11 | <gsnedders> | UTF-16 pages need either a BOM or an HTTP header to work, right? Or have the undefined heuristics conclude they're UTF-16? |
| 02:11 | <Domenic> | <meta charset> seems like it'd work, and it's a more-or-less defined heuristic? |
| 02:12 | <gsnedders> | <meta charset> only works for ASCII-superset encodings |
| 02:12 | <gsnedders> | the undefined heuristic I meant is the "The user agent may attempt to autodetect the character encoding from applying frequency analysis or other algorithms to the data stream." |
| 02:15 | <gsnedders> | Domenic: for one, it'll never find the sequence of ASCII bytes "<meta"! |
| 02:15 | <gsnedders> | (well, I suppose it could, but that'd be something weird in UTF-16 :)) |
| 02:18 | <Domenic> | Ah I see |
| 02:19 | <Domenic> | There's also <?xml sniffing but bz didn't want to specify what WebKit/Blink did last time I proposed it and didn't have any ideas for something better to specify. https://github.com/whatwg/html/pull/1752 |
| 02:25 | <gsnedders> | Oh. Yeah. That. |
| 02:45 | <MikeSmith> | mkwst: can’t make this stuff up http://stackoverflow.com/questions/41818474/how-to-link-to-a-css-stylesheet-uploaded-on-a-ftp-server |
| 02:45 | <MikeSmith> | (from just today) |
| 05:58 | <annevk> | gsnedders: I think there is a default, utf-16 maps to utf-16le or be on the web |
| 05:59 | <annevk> | gsnedders: oh declare at all, hmm, yes, in theory, but there is still sniffing here and there |
| 06:50 | <rniwa> | annevk, Domenic: where are we adding type=module tests? |
| 06:55 | <annevk> | rniwa: I don't know about an agreed upon location |
| 06:55 | <annevk> | rniwa: http://w3c-test.org/html/semantics/scripting-1/the-script-element/ would make some sense to me (should at least have a forward pointer if not there) |
| 06:55 | <rniwa> | annevk: alright, i'm just add it to html/semantics/scripting-1/the-script-element |
| 06:56 | <rniwa> | annevk: ya |
| 07:23 | <annevk> | Domenic: Alex is not responding to my questions on the URL issues so I don't know |
| 07:24 | <annevk> | Domenic: I guess we have to wait for Alex |
| 07:25 | <slightlyoff> | Sorry, what'd I miss? |
| 07:29 | <annevk> | slightlyoff: heh, Christensen, not Russell |
| 07:29 | <annevk> | slightlyoff: different company too |
| 07:35 | <annevk> | rniwa: if you could have a quick look at https://github.com/w3c/web-platform-tests/pull/4541 that'd be great |
| 07:37 | <rniwa> | annevk: oh, lots of dup'ed code! |
| 07:38 | <annevk> | rniwa: okay, so then we should indeed ask him to rewrite |
| 07:38 | <rniwa> | annevk: yeah, it's really silly to duplicate the code to create a test tree for example |
| 07:38 | <rniwa> | annevk: that should be clearly shared |
| 07:38 | <rniwa> | annevk: i think duplicating assertions is okay |
| 07:39 | <rniwa> | annevk: because we don't want expected results to be the result of running some algorithm LOL |
| 07:39 | <annevk> | rniwa: add a quick comment? |
| 07:39 | <rniwa> | annevk: 'cause then we have to be testing that algorithm |
| 07:39 | <rniwa> | annevk: did |
| 07:39 | <annevk> | ta |
| 07:40 | <annevk> | I do write those sometimes, but the algorithms are somewhat straightforward |
| 07:52 | <annevk> | mathiasbynens: could you review https://github.com/whatwg/meta/issues/7#issuecomment-274599778 pretty please? |
| 07:52 | <annevk> | mathiasbynens: somehow I think you know all about .gitattributes |
| 07:52 | <rniwa> | annevk, Domenic: presumably nomodule should also prevent loading, right? |
| 07:52 | <annevk> | rniwa: yeah, there wouldn't be much point in fetching |
| 07:53 | <rniwa> | annevk: which part of https://github.com/whatwg/html/pull/2261/files says that? |
| 07:53 | <annevk> | rniwa: I guess you can test by setting a cookie and fetching it via some other means and see if the cook is set? |
| 07:53 | annevk | looks |
| 07:53 | <rniwa> | annevk: well, I can just check load events |
| 07:55 | <annevk> | rniwa: the paragraph at the end that's together with a note modifies "prepare a script" in a place before script fetching happens |
| 07:56 | <annevk> | rniwa: so if those conditions are met, no fetching would happen |
| 07:56 | <rniwa> | annevk: ah, okay |
| 08:48 | <mkwst> | MikeSmith: FWIW, I think it's a use-case worth breaking. |
| 08:49 | <mkwst> | annevk: I'm planning on sending you some patches to Fetch. I'm not sure how to write tests for either, since WPT doesn't seem to support either FTP or basic auth. |
| 08:49 | <mkwst> | But, you know, I'll work something out. |
| 08:50 | <annevk> | mkwst: basic auth you can implement right? there might already be some python scripts that do so |
| 08:50 | <annevk> | mkwst: FTP is indeed a rather interesting proposition, best to loop jgraham and gsnedders in on that one |
| 08:51 | <mkwst> | Yes, I'm sure I can work that out, I just didn't find anything that implemented it for me (nor is the automation part clear). |
| 08:51 | <annevk> | mkwst: did you look in the XMLHttpRequest dir as well? |
| 08:51 | <mkwst> | annevk: I did, in #testing. They said ¯\_(ツ)_/¯ |
| 08:51 | <annevk> | good times |
| 08:52 | <annevk> | mkwst: I guess we can just use ftp://example.com/ and make sure the failure is reasonably fast? nearly as fast as rejecting ftp://test:test/ for instance? |
| 08:53 | <annevk> | mkwst: little icky of course to rely on timing, but... |
| 08:53 | <mkwst> | Point to a real FTP server? |
| 08:54 | <mkwst> | If we point to a server that doesn't exist, then the failure mode for the current behavior (network error) is the same as the success mode for the new behavior (network error). |
| 08:54 | <mkwst> | It just takes longer. |
| 08:54 | <mkwst> | Pointing to a real FTP server is icky. And Blink's test environment actually blocks the bots from making external connections, so. |
| 08:55 | <rniwa> | annevk, Domenic: https://github.com/w3c/web-platform-tests/pull/4611 |
| 08:55 | <Ms2ger> | Same for Gecko |
| 08:57 | <annevk> | mkwst: yeah, so if a real server isn't an option, than doing a timing "attack" is a way to go, but icky |
| 08:57 | <mkwst> | Ok. *shrug* I'll play with it a bit to see what might make sense. |
| 09:04 | <annevk> | rniwa: cool, I'll let Domenic review those since he's more familiar with it |
| 09:09 | <rniwa> | annevk: ok |
| 09:31 | <mkwst> | Amusingly, it doesn't look like Blink's test server supports FTP either. |
| 09:32 | <annevk> | mkwst: that's a good security reason for removal |
| 09:32 | <MikeSmith> | mkwst: Yeah agreed about breaking that ftp use case |
| 09:32 | <annevk> | mkwst: complete removal, even |
| 09:34 | <mkwst> | annevk: Indeed. |
| 09:36 | <nox> | annevk: I'm currently looking at https://github.com/whatwg/html/issues/1698, |
| 09:36 | <nox> | annevk: does WebKit even prompt to unload, unload and abort the current document? |
| 09:41 | <annevk> | nox: sorry, no bandwidth for lifecycle questions |
| 09:41 | <nox> | Heh ok. :) |
| 09:41 | <annevk> | nox: my recommendation is to write many many tests covering all aspects and then figure out what everyone can agree on to move forward with |
| 09:46 | <annevk> | mkwst: btw, the other thing we need for the PRs is some positive noise from other vendors |
| 09:46 | <mkwst> | Yup. I'll poke folks. |
| 09:46 | <annevk> | mkwst: ta |
| 09:58 | <smaug> | https://fetch.spec.whatwg.org/#concept-bodyinit-extract |
| 09:58 | <smaug> | BufferSource part |
| 09:59 | <smaug> | apparently browsers do use "application/octet-stream" in some cases |
| 10:02 | <smaug> | at least with sendBeacond |
| 10:02 | <smaug> | Beacon |
| 10:04 | <annevk> | smaug: o_O |
| 10:04 | <annevk> | smaug: sendBeacon() should really not do more than HTML <form> |
| 10:04 | <annevk> | smaug: it violates the same-origin policy otherwise |
| 10:04 | <annevk> | smaug: since it doesn't use CORS at all apparently |
| 10:07 | <annevk> | smaug: that was fixed in https://github.com/w3c/beacon/commit/8a6fbdca25115aa5a66c32cfc37d4882384b3398 by Ilya |
| 10:08 | <annevk> | (not the greatest model, but I suppose it works) |
| 10:09 | <smaug> | annevk: it is just that baku is making some cleanups to BodyInit handling and we noticed that currently Gecko does use "application/octet-stream", and so does Blink |
| 10:09 | <smaug> | so it is unclear whether following the spec will break something |
| 10:10 | <annevk> | smaug: a Blob with an empty type defaults to that or some such? |
| 10:10 | <annevk> | smaug: does that result in a CORS preflight? |
| 10:10 | <smaug> | don't know about Blob |
| 10:10 | <smaug> | this is about ArrayBuffer/ArrayBufferView |
| 10:11 | smaug | tests Blob |
| 10:11 | <annevk> | smaug: okay, if that happens without preflight it would be a security issue |
| 10:11 | <annevk> | smaug: although maybe enshrined if both Chrome and Gecko do it :/ |
| 10:13 | <smaug> | Blob sends no contentType |
| 10:14 | smaug | tries some cross-origin case |
| 10:16 | <smaug> | cross-origin arraybuffer* works the same way |
| 10:31 | <annevk> | I'm somewhat annoyed we let sendBeacon() happen, it didn't work out well |
| 10:31 | <annevk> | much churn and low adoption |
| 10:31 | <annevk> | and potentially some new holes (I believe Chrome still hasn't fixed some) |
| 12:25 | <tobie> | annevk: any idea why function objects exist (https://heycam.github.io/webidl/#dfn-function-object) and what makes them different from functions? |
| 12:27 | <annevk> | tobie: not really |
| 12:27 | <tobie> | annevk: darn. |
| 12:27 | <tobie> | Domenic: ^ |
| 12:28 | <tobie> | annevk: thanks. |
| 12:31 | <nox> | tobie: Isn't it just what ES itself call these? |
| 12:32 | <tobie> | nox: maybe? In which case it wouldn't make any sense to define them in the WebIDL spec again. |
| 12:33 | <tobie> | nox: I'm actually trying to fix a bug you filed early last year |
| 12:33 | <annevk> | tobie: well, IDL duplicates a number of things so you have both an IDL concept thing and an ECMAScript thing, but I'm not sure if this is one of those |
| 12:33 | <nox> | tobie: About callback interfaces with an interface object? |
| 12:33 | <tobie> | annevk: it shouldn't be, it's in the bindings. |
| 12:34 | <nox> | tobie, annevk: https://tc39.github.io/ecma262/#sec-ecmascript-function-objects |
| 12:35 | <tobie> | nox: https://github.com/heycam/webidl/issues/78 |
| 12:35 | <nox> | tobie: Can't believe I guessed that right. :P |
| 12:36 | <tobie> | nox: that's a sign you don't file enough bugs against WebIDL :P |
| 12:36 | <nox> | Mozlando meeting omg, I wasn't even working for Mozilla back then. |
| 12:38 | <tobie> | Oh, neat, irccloud just added how long ago someone was active in the nick autocomplete. |
| 12:40 | <tobie> | nox: I'm trying to parse the last 2 paragraphs of https://heycam.github.io/webidl/#interface-object |
| 12:41 | <nox> | tobie: What about them? |
| 12:41 | <tobie> | sorry, last three. |
| 12:42 | <tobie> | nox: non-callback interfaces are function objects |
| 12:43 | <nox> | tobie: Yes. |
| 12:43 | <nox> | tobie: The ticket you linked is about callback interface objects. |
| 12:43 | <tobie> | nox: yes, that's right below |
| 12:44 | <tobie> | nox: The internal [[Prototype]] property of an interface object for a callback interface must be the Function.prototype object. |
| 12:44 | <nox> | tobie: I think that's new, |
| 12:44 | <nox> | and that that was done for my ticket, |
| 12:44 | <tobie> | nox: which makes it a function, no? |
| 12:44 | <nox> | but my ticket was left open or something. |
| 12:44 | <tobie> | nox: but then the note says: Remember that interface objects for callback interfaces only exist if they have constants declared on them; when they do exist, they are not function objects. |
| 12:45 | <nox> | Mmh. |
| 12:45 | <tobie> | My feeling exactly. |
| 12:45 | <tobie> | Also: typeof NodeFilter => "function" in FF & Chrome |
| 12:47 | <nox> | tobie: https://github.com/heycam/webidl/commit/6b0eb63d6cba3ff1f90f4ef3e733749ff51751a0 |
| 12:48 | <tobie> | alright, so I guess we just need to cleanup some of the surrounding notes. |
| 12:48 | <tobie> | nox: thanks |
| 13:03 | <annevk> | JakeA: should we prepare anything for later today? I'm thinking just saying hi and listening to what folks have to say |
| 13:04 | <JakeA> | annevk: I wasn't going to do much more than make sure the thread's in my head |
| 13:05 | <JakeA> | annevk: As far as I can tell it's "people who absolutely think the fetch should be externally abortable, else it's a no better than XHR" -vs- "people who think the fetch should only be internally abortable, else it's no better than XHR" |
| 13:05 | <JakeA> | Both groups are strongly opinionated, and people are doing to be disappointed with whatever outcome |
| 13:09 | <annevk> | JakeA: I'm not sure what those two variants would mean |
| 13:09 | <annevk> | JakeA: that's something I'm afraid of, that we don't have enough common language on this subject for people to understand each other |
| 13:10 | <JakeA> | annevk: if I pass you the result of fetch(url), should you be able to control its priority & abort it, or do only I get to do that, because I started the fetch? |
| 13:10 | <JakeA> | That seems to be one of the fundamental disagreements |
| 13:11 | <annevk> | JakeA: okay, that's clear |
| 13:13 | <ondras> | what improvement over XHR do I get with a tool that is not externally abortable? |
| 13:17 | <annevk> | ondras: you can still hand someone the "internal" abortion tool |
| 13:17 | <ondras> | ah |
| 13:17 | <ondras> | so just a terminology |
| 13:18 | <ondras> | or, well, you do not exactly pass the fetch around |
| 13:18 | <ondras> | and the result of fetch() is just a promise |
| 13:19 | <ondras> | so there really is no surface for a truly external abortion, imho |
| 13:19 | <annevk> | ondras: we could subclass the promise |
| 13:20 | <ondras> | would a subclassed promise be externally abortable? sounds very inconsistent with the existing promise resolution policy |
| 13:22 | <annevk> | There's no reason it couldn't be |
| 13:30 | <ondras> | annevk: consistency reason? offering fulfill/reject only to the creator, but abort to consumer? |
| 13:32 | <JakeA> | ondras: that's the argument. Although I don't know if it's all that bad that fetch promises are different |
| 13:32 | <JakeA> | I mean, once you've got the request, the consumer can consume it |
| 13:32 | <JakeA> | and that's seen by other consumers |
| 13:40 | <tobie> | Do we have cases where there is a NamedConstructor but no Constructor? |
| 13:41 | <tobie> | Mmm. nm. |
| 13:42 | <Ms2ger> | Yes |
| 13:42 | <Ms2ger> | All three of them |
| 13:42 | <ondras> | JakeA: I am not sure I follow the example/argument with "consumer consumering stuff seen by other consumers" |
| 13:46 | <JakeA> | ondras: const p = fetch(url); p.then(r => r.json()); p.then(r => r.json()); The second .json call will fail |
| 13:52 | <annevk> | JakeA: do you know what https://github.com/whatwg/fetch/issues/447#issuecomment-273633060 is proposing? |
| 13:52 | <annevk> | JakeA: looking at bluebird there's no external cancel/abort API as far as I can see |
| 13:52 | <tobie> | Ms2ger: ta |
| 13:52 | <annevk> | JakeA: or am I missing something? |
| 13:53 | <annevk> | JakeA: I am, http://bluebirdjs.com/docs/api/cancel.html |
| 13:53 | <annevk> | JakeA: okay, so Netflix folks would prefer some form of subclassing, jan-ivar and others are leaning more towards controller/observer patterns |
| 13:54 | <annevk> | JakeA: I'm personally on the fence |
| 13:55 | <JakeA> | annevk: Yep, and both groups are absolutely certain they're right :D |
| 13:56 | <tobie> | Can someone running Edge tell me what the result of running NodeFilter.prototype; is? |
| 13:56 | <tobie> | Pretty please. |
| 13:57 | <JakeA> | annevk: I'm on the fence too. Separating the controller & observer makes sense as you can pass on the observer without giving control. Eg, the service worker should only get the observer. |
| 13:57 | <annevk> | tobie: undefined in Edge 13 |
| 13:57 | <tobie> | annevk: ty |
| 13:57 | <ondras> | JakeA: aha, interesting. I would say that both .json() calls shall return the same value. |
| 13:58 | <ondras> | but I obviously never tried doing so |
| 13:58 | <tobie> | annevk: so only chromium is weird. |
| 13:58 | <JakeA> | ondras: that means the value has to be buffered forever, which is a problem if the response is a 1gb video |
| 13:58 | <JakeA> | ondras: https://jakearchibald.com/2014/reading-responses/ |
| 13:59 | <annevk> | tobie: also undefined in Edge 14 |
| 14:00 | <annevk> | JakeA: do you know Tim O'Ryan btw? I never heard back from them? |
| 14:01 | <JakeA> | annevk: I don't :( |
| 14:03 | <ondras> | JakeA: okay, I see. but still, the part of the fetch transation whose state is modified by the consumer is the response. And you do not want to abort the response, but the request, right? |
| 14:03 | <tobie> | foolip: I'm cleaning up the WebIDL spec for NodeFilter. |
| 14:03 | <JakeA> | ondras: correct |
| 14:04 | <tobie> | foolip: realized Chromium still has a weird prototype defined on it. |
| 14:04 | <tobie> | foolip: all the other browsers have none defined. |
| 14:05 | <tobie> | foolip: do you want me to file a bug against this? |
| 14:06 | <tobie> | foolip: or is https://bugs.chromium.org/p/chromium/issues/detail?id=591919 where you're tracking it. |
| 14:06 | <annevk> | tobie: we also want to turn these into "legacy interface callback" at some point I think |
| 14:07 | <tobie> | annevk: yes, I've built that into my PR. |
| 14:07 | <annevk> | tobie: will you file downstream issues/PRs too? |
| 14:08 | <tobie> | annevk: oh, you want a syntax change too. |
| 14:09 | <annevk> | tobie: kinda, but calling it out as legacy is a good first step |
| 14:09 | <annevk> | tobie: not having it in the syntax still encourages copy-and-pasting unfortunately |
| 14:11 | <tobie> | annevk: how any callback interfaces do we have which don't have constants? |
| 14:11 | <annevk> | tobie: the goal is to turn IDL into something where when you ignore things prefixed with legacy, it's likely you'll do the right thing |
| 14:11 | <annevk> | tobie: number of callback interfaces - 1 |
| 14:11 | <annevk> | (I don't really know) |
| 14:12 | <tobie> | annevk: OK, I was just wondering if there were going out too at some point, but it appears not, right? |
| 14:13 | <annevk> | tobie: I'm not sure what you mean? |
| 14:14 | <tobie> | annevk: the only ones we want deprecated are the NodeFilter kind. |
| 14:14 | <tobie> | annevk: correct? |
| 14:14 | <annevk> | tobie: no all of them |
| 14:14 | <tobie> | annevk: oh really? |
| 14:14 | <annevk> | tobie: future is plain callbacks or promises |
| 14:15 | <tobie> | annevk: good thing I asked. I was assuming otherwise. |
| 14:27 | <wanderview> | annevk: I now face the most difficult of challenges... getting google hangouts to work on my machine |
| 14:27 | <annevk> | wanderview: oh my, I hope my setup actually works |
| 14:28 | <wanderview> | annevk: I can use my laptop which works... but no matter how many times I try to install the plugin on my windows machine it never recognizes |
| 14:28 | <annevk> | wanderview: I do remember hitting some issue the last time around, will be a short meeting for me if that happens again |
| 14:28 | <Ms2ger> | Don't we have webrtc now? |
| 14:29 | <annevk> | Actually, I think my phone is guaranteed to work if there are no network issues, so I should be somewhat good |
| 14:29 | <annevk> | Ms2ger: always the troll |
| 14:38 | <gsnedders> | anyone happen to know what int type Opera/Presto used for CSS percentages? |
| 14:45 | <wanderview> | annevk: is there a document describing the current proposals on the table for the meeting? |
| 14:46 | <wanderview> | so I can refresh my memory before joining the call |
| 14:51 | <annevk> | wanderview: https://github.com/whatwg/fetch/issues/447 |
| 14:51 | <botie> | well, https://github.com/whatwg/fetch/issues/447 is already long again |
| 14:51 | <wanderview> | annevk: yea... I was hoping for a summary of "latest best ideas"... but its ok |
| 14:51 | <wanderview> | I guess JakeA's final posts kind of do that |
| 14:52 | <annevk> | wanderview: yeah, I think all ideas floated so far apart from tokens are still possible |
| 14:53 | <JakeA> | I'll update the post after the meeting |
| 14:53 | <annevk> | let's see if Hangouts works on my laptop |
| 15:57 | <JakeA> | annevk: thanks for organising that |
| 15:59 | <annevk> | JakeA: thanks for writing the summary :-) |
| 18:09 | <annevk> | JakeA: just listened to HTTP 203, guess the meeting was timely considering your Q1 goals |
| 18:12 | <JakeA> | annevk: we're recording another on Thursday so will be able to talk about the results |
| 19:36 | <annevk> | Domenic: https://github.com/whatwg/dom is back to 99.9% HTML \o/ |
| 19:48 | <Domenic> | Haha nice |
| 19:48 | <Domenic> | Oh shoot I forgot to read this channel this morning |
| 19:50 | <tobie> | Domenic: the interface object rabbit hole took me to https://github.com/heycam/webidl/issues/281 |
| 19:50 | <tobie> | Domenic: Thoughts as to how to fix that? |
| 19:50 | <Domenic> | Hold your horses I'm only up to 4am |
| 19:50 | <Domenic> | ;) |
| 19:54 | <Domenic> | tobie: I guess just don't add things to an interface prototype object if there is no interface prototype object? |
| 19:55 | <tobie> | Domenic: yeah. Let me rephrase that. Rewriting the interface objects using a more modern style |
| 19:55 | <tobie> | Domenic: I was wondering whether I should include setting the constants in them |
| 19:55 | <Domenic> | Ah! |
| 19:56 | <Domenic> | That sounds great, although, it seems important to be sure that the "spec code" for setting constants is a "function" that you call twice, one for interface and once for interface prototype object (if applicable) |
| 19:56 | <Domenic> | https://heycam.github.io/webidl/#es-constants |
| 19:57 | <Domenic> | "The location of the property is determined as follows:" |
| 19:57 | <Domenic> | I wonder if the two complicated cases even exist on the platform |
| 19:57 | <Domenic> | I think for now maybe just preserve them |
| 19:57 | <Domenic> | But as a follow-up consider removing them from the spec and adding restrictions (e.g., constants cannot be used on [Global]s or consequential interfaces of [Global]s) to prohibit them |
| 19:59 | <Domenic> | Constants are also legacy IMO |
| 19:59 | <annevk> | Yup |
| 19:59 | <annevk> | String enums |
| 19:59 | <annevk> | ftw |
| 20:00 | <tobie> | Do we *not* have any on [Global]s or consequential interfaces of [Global] at this point? |
| 20:01 | <wanderview> | JakeA: annevk: this github issue makes me sad... maybe we should have an easier way for sites to pre-cache requests so they can be safely used for navigations (redirects causing issue here) https://github.com/GoogleChrome/sw-precache/issues/220 |
| 20:02 | <annevk> | tobie: EventTarget |
| 20:03 | <annevk> | tobie: oh no, hmm |
| 20:03 | <annevk> | tobie: there's a chance globals might not have constants |
| 20:12 | <tobie> | Domenic: so I had some further questions, but they required me to show you the legacy callback interface object creation algorithm, but I just borked my stash, so that'll have to wait. |
| 20:12 | <Domenic> | :( |
| 20:18 | <tobie> | Domenic: fixed. |
| 20:18 | <tobie> | Domenic: https://gist.github.com/tobie/54473a62c7f6984c3ada862e8cb68c96 |
| 20:19 | <Domenic> | tobie: looks excellent |
| 20:21 | <tobie> | Domenic: so should "create a legacy callback interface object" also set the constants? |
| 20:22 | <Domenic> | tobie: yes, in theory. But doing that in a way that factors out constant-creation so all places that create constants use it seems a little tricky. I would do what you have as a first PR. |
| 20:22 | <tobie> | Domenic: cool |
| 20:22 | <Domenic> | It's not too tricky, but there's no reason to couple it. |
| 20:22 | <tobie> | yeah, it's the coupling I wasn't to sure about. |
| 20:22 | <tobie> | There's already a lot going here. |
| 20:23 | <Domenic> | annevk: tests for https://github.com/whatwg/url/pull/216 are coming at some point I assume? |
| 20:25 | <annevk> | Domenic: hmm I think I wrote tests already |
| 20:26 | <annevk> | Domenic: maybe I forgot to create a PR, there's a commit linked from the issue |
| 20:26 | annevk | looks |
| 20:27 | <annevk> | yup, fixed |
| 20:29 | <Domenic> | Hmm whatwg-url already passes them, let's see what the deal is |
| 21:11 | <tobie> | Domenic, annevk: what's the best practice for setting variables in algorithm to the result of if..else clauses? |
| 21:12 | <Domenic> | Meh, there are lots of options, kind of depends on how long hte computation process is |
| 21:12 | <Domenic> | Lemme create a gist |
| 21:12 | <tobie> | if: 3 steps otherwise: 1 step |
| 21:13 | <tobie> | Domenic: should it go in infra? |
| 21:13 | <Domenic> | Not sure... |
| 21:13 | <Domenic> | What is the 1 step? |
| 21:15 | <Domenic> | Here are the most obvious patterns https://gist.github.com/domenic/b621f2c538ddd1b1dc288ce7a56032e5 |
| 21:16 | <tobie> | Oh, you do it nicely like that, making sure to define the variable first. Cool. |
| 21:16 | <tobie> | Thanks |
| 22:34 | <tobie> | Domenic: if feels weird that no [[HasInstance]] is defined for named constructors |
| 22:35 | <tobie> | Domenic: am I missing something? |
| 22:36 | <tobie> | Domenic: I'm getting both `new Image() instanceof HTMLImageElement` and `new Image() instanceof Image` return `true` in FF and Chrome. |
| 22:36 | <tobie> | Domenic: is that because of some kind of UA magic? |
| 22:42 | <tobie> | Domenic: filed https://github.com/heycam/webidl/issues/282 |
| 22:52 | <jsbell> | Just don't try `document createElement('img') instanceof Image` |
| 22:58 | <tobie> | jsbell: document createElement('img') instanceof HTMLImageElement is just as bad. |
| 22:59 | <tobie> | jsbell: oh no, it isn't |
| 22:59 | <tobie> | jsbell: that's mind boggling. |
| 23:01 | <tobie> | Domenic: sorry. :-/ |