| 02:04 | <MikeSmith> | me tries to figure out why an app that's already using a browser engine as its runtime would need a <webview> element |
| 02:09 | <MikeSmith> | there's no plan to allow this <webview> element in actual Web content, right? |
| 02:10 | <MikeSmith> | I mean in content that runs under the Web security model |
| 02:10 | <MikeSmith> | as opposed to whatever other unspecified security models this non-Web stuff runs in |
| 02:17 | <TabAtkins> | MikeSmith: Context? |
| 02:18 | <MikeSmith> | TabAtkins: hang on will get some links |
| 02:19 | <MikeSmith> | TabAtkins: https://developer.chrome.com/apps/tags/webview |
| 02:20 | <MikeSmith> | and now proposed draft standard at http://benfrancis.github.io/webview/ |
| 02:20 | <TabAtkins> | Ah, yeah. It's a better <iframe> - forced cross-origin, because the synchronous links are filtered out. |
| 04:10 | <SimonSapin> | Does the platform need an XML parser, other than for image/svg+xml ? |
| 04:17 | <pdr> | Does the platform even need an xml parser for svg? :) |
| 04:22 | <SimonSapin> | pdr: Exactly. I’ve heard about Blink wanting to use their HTML parser for image/svg+xml, so I was wondering if there is anything *else* that requires an XML parser, or if we could get away with not having one in Servo. |
| 04:35 | <pdr> | SimonSapin, XSLT was the other user of the XML parser in blink. |
| 04:50 | <zcorpan> | annevk: i agree with foolip, you either want to validate regions or error for extra lines. not silently skip |
| 05:10 | <MikeSmith> | SimonSapin: for (the relatively few) pages on the Web that are actually served as application/xhtml+xml |
| 05:12 | <SimonSapin> | MikeSmith: do they break if parsed as HTML? |
| 05:13 | <MikeSmith> | SimonSapin: things like <script src="foo.j"/> will |
| 05:14 | <MikeSmith> | that is, self-closing tag syntax for and element that requires an end tag in text/html |
| 05:14 | <SimonSapin> | I see, thanks |
| 06:52 | <annevk> | zcorpan: right, that's what I thought |
| 07:15 | <annevk> | https://code.google.com/p/chromium/issues/detail?id=412053#c5 \o/ |
| 07:15 | <annevk> | https://code.google.com/p/chromium/issues/detail?id=417850 (removing utf-32) |
| 07:47 | <foolip> | annevk: sounds like silvia plans to add regions support to the validator, make sure to let her know if you're not excited about that so she doesn't waste time |
| 07:47 | <annevk> | foolip: if it's going in implementations I guess I'll add it |
| 07:47 | <annevk> | foolip: I don't really understand the current WebVTT landscape |
| 07:48 | <foolip> | annevk: well that's the thing, I don't want to ship that feature :) |
| 07:49 | <annevk> | foolip: it seems kind of sneaky to add these meaningless metadata fields after they've been rejected for over a year |
| 07:49 | <annevk> | foolip: and then add normative dependencies on them that not everyone wants |
| 07:49 | <annevk> | meh |
| 07:49 | <annevk> | foolip: I added a comment to the PR thread |
| 07:49 | <foolip> | annevk: I agree, there are several things in the spec I don't like and don't want to implement/ship |
| 07:50 | <annevk> | foolip: so how is that going to work out with the shared code base? |
| 07:50 | <annevk> | foolip: sylvia is still Google, no? |
| 07:50 | <foolip> | no, not for a while now |
| 07:50 | <foolip> | If Chrome wants to ship it we will too, of course |
| 07:51 | <zcorpan> | foolip: what happened to changing the position/align thing? |
| 07:52 | <annevk> | foolip: oh okay |
| 07:52 | <annevk> | foolip: I haven't followed subtitles for a while, it moved into a CG for unclear reasons |
| 07:53 | <annevk> | foolip: and then the W3C chartered this group that made things even uglier |
| 07:53 | <annevk> | foolip: Mozilla's representatives were not pleased |
| 07:53 | <foolip> | annevk: it's not clear yet what will happen, none of Google's engineers are paying any attention to WebVTT |
| 07:53 | <hsivonen_> | annevk: many newspapers are illgical and wrong when they write "web" or "internet" instead of "the Web" or "the Internet" |
| 07:53 | <foolip> | annevk: you mean the TTWG wanting to publish a WebVTT Rec? |
| 07:54 | <annevk> | hsivonen_: illogical? |
| 07:54 | <hsivonen_> | annevk: in IETF-speak, "an internet" and "the Internet" had meanings before the Guardian had heard of either |
| 07:54 | <annevk> | foolip: yes |
| 07:55 | <foolip> | zcorpan: the size clamping was put back, we added an auto position so that align by itself does something sane, and there's this lineAlign/positionAlign stuff I don't want to implement |
| 07:55 | <hsivonen_> | annevk: they take the position that the Internet and the Web are not proper nouns for specific, albeit large, distributed systems |
| 07:55 | <annevk> | http://en.wikipedia.org/wiki/Capitalization_of_%22Internet%22 |
| 07:55 | <annevk> | So if you spell it "internet" you poop on history |
| 07:56 | <hsivonen_> | annevk: right |
| 07:56 | <annevk> | Given how words change meaning it doesn't seem so bad |
| 07:56 | <foolip> | annevk: I'm worried about the TTWG involvement as well, if the WG hopes to make changes to the spec based on their consensus I doubt things can go well |
| 07:56 | <hsivonen_> | annevk: also, the NYT argument is bogus |
| 07:56 | <foolip> | but I haven't walked away just yet |
| 07:56 | <hsivonen_> | "the Internet" does not refer to technology but to a specific large network using the technology |
| 07:57 | <hsivonen_> | (there are also publication that fight against trademark like iMac and iPhone) |
| 07:58 | <annevk> | Domenic: there's no BufferSource in https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html |
| 07:58 | <annevk> | Domenic: BufferSource is an IDL construct for ArrayBuffer / ArrayBufferView |
| 07:59 | <annevk> | hsivonen: yeah I saw that |
| 07:59 | <Domenic> | annevk: sorry, SOurceBuffer |
| 07:59 | <annevk> | hsivonen: iPhone 5s vs iPhone 5S |
| 08:00 | <hsivonen> | annevk: I mean writing "Imac" |
| 08:00 | <annevk> | Domenic: window.SourceBuffer is undefined in Firefox and Chrome |
| 08:00 | <annevk> | hsivonen: understood, was giving another example |
| 08:01 | <Domenic> | annevk: that's a good sign then |
| 08:01 | <Domenic> | annevk: on the other hand IE11 has both SourceBuffer and ... SourceBufferList -_-. I don't know what the latter is but I'm betting it's a new fake-array. |
| 08:01 | <annevk> | Domenic: that we have both SourceBuffer and BufferSource and that they mean radically different things... |
| 08:02 | <annevk> | Domenic: yeah, TAG has not beating enough groups with the clue stick |
| 08:02 | <annevk> | Domenic: told WebRTC not to use named getters, creates a whole thread of people not understanding why; chair said the IDL worked perfectly fine in C++ |
| 08:02 | <Domenic> | -___________- |
| 08:04 | <annevk> | Should maybe get that David Graham guy involved in specs somehow, he thought Fetch was easy to follow |
| 08:04 | <terinjokes> | question I've been meaning to ask: where is USVString defined? |
| 08:04 | <zcorpan> | terinjokes: webidl |
| 08:04 | <terinjokes> | but google |
| 08:05 | <annevk> | Domenic: for groups like WebRTC it seems somewhat vital IDL is maintained and we change stuff like "getter" into "legacygetter" (filed a bug on that the other day) |
| 08:05 | <annevk> | Domenic: you can add that to the list of arguments to convince the powers that be |
| 08:05 | <annevk> | terinjokes: http://heycam.github.io/webidl/ |
| 08:05 | <Domenic> | terinjokes: sounds like you are looking at /TR/ URLs... the ED has USVString |
| 08:05 | <terinjokes> | annevk: yep, just found it |
| 08:06 | <terinjokes> | Domenic: no, i googled USVString which gave helpful "USB String" results |
| 08:06 | <Domenic> | oh haha |
| 08:06 | <annevk> | I kind of want to try to get IDL rename DOMString to String again |
| 08:06 | <annevk> | Last time it didn't work because implementations claimed they needed to alias, but it seems developers read IDL more than implementers |
| 08:09 | <Domenic> | terinjokes: which sequence<DOMString> were you confused about? |
| 08:10 | <Domenic> | annevk: not worth it, wait for The Great Renaming that we always dream of |
| 08:10 | <Domenic> | burn the political capital all at once |
| 08:10 | <annevk> | So far I've had more success with incremental changes |
| 08:11 | <terinjokes> | Domenic: sequence<sequence<DOMString> or object> the rows can contain any types |
| 08:11 | <terinjokes> | https://www.dropbox.com/s/vduood93hjp7d8j/Screenshot%202014-10-14%2001.11.23.png?dl=0 |
| 08:11 | <Domenic> | terinjokes: hmm OK the internet said it was either a 2D array or an array of objects |
| 08:12 | <Domenic> | terinjokes: oh I see for the second param |
| 08:12 | <Domenic> | terinjokes: but I think it converts all types into object keys, which are strings |
| 08:12 | <terinjokes> | yeah, the second parameter is an array of indexes or properties |
| 08:12 | <Domenic> | indices are strings really, just in disguise ;) |
| 08:12 | <Domenic> | might as well let WebIDL convert them to strings for you |
| 08:13 | <terinjokes> | i still think that's wrong |
| 08:13 | <terinjokes> | you're saying a matrix of strings or an array of objects |
| 08:14 | <Domenic> | are we talking about second param or first param? |
| 08:14 | <terinjokes> | first |
| 08:14 | <Domenic> | oh ok |
| 08:14 | <Domenic> | yeah i see |
| 08:14 | <Domenic> | so sequence<sequence<any>> or sequence<object>? |
| 08:15 | <terinjokes> | the second paramter i already had as an array of DOMStrings? (which you changed to an optional sequence of DOMString) |
| 08:15 | <Domenic> | remember "array" = fake array in WebIDL |
| 08:15 | <Domenic> | and yeah that's why I was confused |
| 08:15 | <terinjokes> | yeah, i got confused which sequence or array. so i just picked one |
| 08:16 | <terinjokes> | sequence<sequence<any> or object> |
| 08:16 | <terinjokes> | which might be what you just said |
| 08:17 | <Domenic> | ah yeah i bet they are slightly different but let's go with the latter for now |
| 08:17 | <Domenic> | this will need review from an IDL expert |
| 08:17 | <Domenic> | also I forgot to < things |
| 08:17 | <Domenic> | will force push a revision |
| 08:17 | <terinjokes> | ok, awaiting |
| 08:19 | <Domenic> | terinjokes: done |
| 08:19 | <annevk> | terinjokes: Domenic: can't you just copy IDL from browsers? |
| 08:20 | <Domenic> | good question ... browsers do such weird things though I am unsure they implement console with IDL |
| 08:20 | <annevk> | http://mxr.mozilla.org/mozilla-central/source/dom/webidl/Console.webidl |
| 08:21 | <Domenic> | https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/core/frame/ConsoleBase.idl&sq=package:chromium |
| 08:21 | <terinjokes> | "data' sounds better than "obj" imho… |
| 08:23 | <Domenic> | So mostly it looks like they just give up on using IDL |
| 08:23 | <Domenic> | using either no arguments (Blink) or any... in all cases (Gecko) |
| 08:24 | <Domenic> | Wish we had IE source to look at in this regard |
| 08:24 | <Domenic> | They like WebIDL, I bet they tried at least to create a good console IDL |
| 08:25 | <terinjokes> | i, like Gecko, did any… for most places |
| 08:26 | <terinjokes> | because those methods to really take anything atm |
| 08:26 | <terinjokes> | also, sadly, that change makes bikeshed very unhappy |
| 08:27 | <Domenic> | lolllll |
| 08:27 | <Domenic> | to be fair Bikeshed is probably better at judging what is conformant IDL than I am |
| 08:28 | <Domenic> | maybe change table to any as first arg |
| 08:30 | <terinjokes> | should i just copy in Blink's IDL then? :P |
| 08:30 | <Domenic> | I think it's worth a try at least to be better |
| 08:30 | <Domenic> | or ask around for people who know IDL on how to encode what we're trying to say |
| 08:31 | <Domenic> | no wait |
| 08:31 | <Domenic> | it's just any |
| 08:31 | <Domenic> | console.table("asdf") works |
| 08:32 | <Domenic> | terinjokes: are you capping line length? |
| 08:33 | <terinjokes> | In the bikeshed source, no |
| 08:34 | <terinjokes> | each sentence is on its own line though |
| 08:35 | <Domenic> | terinjokes: new revision pushed. i suppose i should test bikeshed on it |
| 08:36 | <terinjokes> | it works, just has weird spacing between "any" and "tabularData" |
| 08:37 | <Domenic> | bikeshed bug? |
| 08:37 | <terinjokes> | probably |
| 08:38 | <Domenic> | aigh going back to sleep now |
| 08:39 | <terinjokes> | why did we get up again? |
| 08:40 | <Domenic> | for me, it was because i accidentally napped around 9pm, then woke up at 3:30 with the lights on |
| 08:45 | <terinjokes> | :) |
| 08:46 | <terinjokes> | PR merged, new version published |
| 08:46 | <terinjokes> | and now back to bed for me |
| 08:57 | <mathiasbynens> | var file = new File([''], { 'type': 'text/html', 'name': 'test.html' }); file.name === '[object Object]'; // true |
| 08:57 | <mathiasbynens> | ^ is that per spec, and if so, how is that useful? |
| 08:57 | <mathiasbynens> | http://dev.w3.org/2006/webapi/FileAPI/#file |
| 08:58 | <mathiasbynens> | http://dev.w3.org/2006/webapi/FileAPI/#dfn-name |
| 08:59 | <mathiasbynens> | seems like it should return whatever was passed as the `name`, but since both Chromium and Firefox do something else, I figured I’d ask |
| 09:07 | <JakeA> | annevk: if a response contains 2 headers of "access-control-allow-origin:*", it should fail a CORS check right? |
| 09:20 | <annevk> | JakeA: yes |
| 09:21 | <annevk> | mathiasbynens: the constructor suggests that the fileName argument comes before the property bag argument |
| 09:21 | <annevk> | mathiasbynens: that seems like a somewhat broken constructor, but ... |
| 09:22 | <annevk> | mathiasbynens: emailing public-webapps might be a good first step here |
| 09:27 | <annevk> | mathiasbynens: per spec it's var file = new File([''], "test.html", { type : "text/html" }) |
| 09:29 | <mathiasbynens> | hmm, and that does work as expected |
| 09:30 | <annevk> | yeah, it's just rather ugly |
| 09:31 | <annevk> | I think these days you would just make that new File(options) with some arguments being required |
| 11:20 | <annevk> | jgraham: gsnedders: any tips for 'Add whole load of tests for "Loading Web Pages".'? |
| 11:20 | <annevk> | jgraham: gsnedders: I could take a look, but it seems somewhat daunting |
| 11:21 | <gsnedders> | annevk: get jgraham's tests running and deal with the old review comments |
| 11:23 | <annevk> | Hmm, the comment in https://bugzilla.mozilla.org/show_bug.cgi?id=1081097 does not inspire confidence |
| 11:23 | <annevk> | Okay, so that would be hard work, not just fact checking |
| 11:23 | <gsnedders> | Yes. |
| 11:24 | <gsnedders> | Also note that jgraham deviated from the spec where he was suggesting spec changes to match web compat |
| 11:24 | <annevk> | I think I'll leave it to jgraham then to figure out navigation |
| 11:24 | <gsnedders> | This is basically my view. |
| 11:25 | <annevk> | I have enough open tickets as is. If someone has outstanding reviews though that are closer to the finish line I'm willing to help |
| 11:29 | <annevk> | zcorpan: thanks for helping rubys out |
| 11:30 | <zcorpan> | annevk: np |
| 12:02 | <jgraham> | annevk: Yeah, so the problem there is it needs someone to actually be working on it. I don't think I can land those tests just by sitting down with the spec for an afternoon |
| 12:02 | <annevk> | foolip: https://www.w3.org/Bugs/Public/show_bug.cgi?id=25428#c4 it seems that link for hasFeature() no longer works |
| 12:04 | <annevk> | jgraham: we have broken tests and reportedly a somewhat broken spec; I guess the question is what obvious next steps would be |
| 12:04 | <annevk> | jgraham: anyone other than you would have to basically start from scratch |
| 12:05 | <jgraham> | annevk: Not really. I think the next step is to run the tests that we have and investigate ones that fail |
| 12:05 | <darobin> | preferably against all UAs |
| 12:06 | <darobin> | for hairy stuff like this I wonder if it wouldn't be a good idea to have a high bandwidth hack day where a bunch of us sit in a room and try to make our way through the mess |
| 12:07 | jgraham | breaks out his copy of Amaya |
| 12:07 | <jgraham> | Or was this some other meaning of "all UAs"? ;) |
| 12:07 | <zcorpan> | jgraham: do most tests fail in all browsers? |
| 12:07 | <jgraham> | zcorpan: I don't think so |
| 12:08 | <jgraham> | I haven't tried for about 2 years though |
| 12:08 | <zcorpan> | ok |
| 12:35 | <foolip> | annevk: the link in comment 4 is for SVG usage, the two hasFeature() counters are in the first comment (0 I guess) |
| 12:40 | <mathiasbynens> | TabAtkins: http://dev.w3.org/csswg/css-images/ doesn’t have `image-rendering: pixelated` anymore – what happened to it? |
| 12:43 | <mathiasbynens> | ah, it’s level 3, and the draft is now level 4 |
| 12:43 | <mathiasbynens> | http://dev.w3.org/csswg/css-images-3/#the-image-rendering |
| 12:43 | <mathiasbynens> | /TR/ strikes again |
| 12:54 | <annevk> | foolip: that reports 10%? |
| 12:54 | <annevk> | foolip: mkay |
| 12:55 | <annevk> | foolip: ta |
| 12:56 | <jgraham> | "We would like to offer our sincere thanks to all the people that we have been in touch with regarding this draft for their reviews and feedback." |
| 12:56 | <jgraham> | So sincere is the thanks that we couldn't even be bothered to remember their names |
| 13:06 | <annevk> | jgraham: context? |
| 13:12 | <Ms2ger> | Your favourite search engine says http://www.w3.org/TR/performance-timeline/ |
| 13:17 | <jgraham> | All of those specs in fact |
| 13:17 | <foolip> | annevk: right, around 10% of page loads have an <svg> element in a document. measuring <svg> anywhere gives higher numbers, presumably because of feature testing: https://www.chromestatus.com/metrics/feature/timeline/popularity/138 |
| 13:17 | <annevk> | that group... |
| 13:18 | <Ms2ger> | foolip, that seems surprisingly large |
| 13:19 | <foolip> | Ms2ger: yeah, it's probably because of SVG icons or fonts |
| 13:24 | <smaug____> | foolip: are you sure that is right |
| 13:25 | <smaug____> | though, if google uses <svg> |
| 13:25 | <smaug____> | or fb |
| 13:33 | <foolip> | smaug____: no, I'm not sure |
| 13:33 | <foolip> | those graphs are all the information I have to go by |
| 13:38 | <rubys> | anne: ping? |
| 13:38 | <rubys> | s/anne/annevk/ |
| 13:59 | <annevk> | rubys: here |
| 14:01 | <annevk> | rubys: if input is the empty string, doesn't the pointer point to EOF? |
| 14:10 | <jgraham> | New theory: these specs were written to piss me off |
| 14:10 | <jgraham> | Me personally |
| 14:12 | <Ms2ger> | Not bz? |
| 14:13 | <darobin> | they were written to piss off bz, getting pissed off as well is just a sign of growing enlightenment |
| 14:16 | <rubys> | annevk: I'm back. |
| 14:16 | <rubys> | the spec line in question: "Keep running the following state machine by switching on state. If after a run pointer points to the EOF code point, go to the next step. Otherwise, increase pointer by one and continue with the state machine. " |
| 14:16 | <rubys> | Note: "If after a run" |
| 14:18 | <rubys> | and inside "scheme state": "and start over" |
| 14:24 | <annevk> | rubys: why would re reach scheme state? |
| 14:26 | <rubys> | annevk: you are correct. Here is what I should have pointed to: |
| 14:26 | <rubys> | "Otherwise, if state override is not given, set state to no scheme state, and decrease pointer by one. " |
| 14:28 | <annevk> | rubys: yeah, that seems broken, no? |
| 14:30 | <annevk> | If input is EOF, then if you decrease the pointer it would be negative... but I guess that would work out okayish... Still not very clean |
| 14:35 | <rubys> | If you want, I'll submit a pull request that says "if after a run the >>>pointer is non-negative and<<< points to the EOF code point" |
| 14:36 | <annevk> | I think it's okay |
| 14:36 | <annevk> | https://www.w3.org/Bugs/Public/show_bug.cgi?id=25946 is the longer term rewrite goal |
| 14:37 | <annevk> | rubys: are you familiar with gethostbyname/getaddrinfo? Do you know if there's a way to make them skip IPv4 address parsing? |
| 14:37 | <annevk> | rubys: see https://www.w3.org/Bugs/Public/show_bug.cgi?id=26431 for context |
| 14:38 | rubys | looking at 25946 |
| 14:42 | <rubys> | I've used gethostbyname/getaddrinfo before, but no, I don't know if there's a way to make them skip IPv4 address parsing? |
| 14:44 | rubys | installing rust |
| 14:44 | <annevk> | rubys: the problem is that they do weird things with IPv4 address parsing that we don't really want to support |
| 14:45 | <annevk> | rubys: e.g. they support octal numbers there, very long sequences without dots, etc. |
| 14:46 | <annevk> | rubys: so ideally the URL Standard handles IPv4 itself; so you either have a domain, IPv4, or IPv6 |
| 14:46 | <rubys> | so: only call those functions when the the input can't be confused with an ipv4 address? |
| 14:46 | <annevk> | rubys: but then you need a way to get an IP address for domain that does not do IPv4 parsing on it |
| 14:48 | <annevk> | rubys: in http://0x800f0906/ "0x800f0906" could be legit domain; however it's mapped to 128.15.9.6 in some implementations |
| 14:52 | <annevk> | SimonSapin: "the behavior of gethostbyname() when passed a numeric address string is unspecified" http://pubs.opengroup.org/onlinepubs/009695399/functions/gethostbyaddr.html |
| 15:04 | <SimonSapin> | annevk: yay interop |
| 15:05 | <annevk> | SimonSapin: from http://www.beej.us/guide/bgnet/output/html/multipage/getnameinfoman.html it seems there's some way to require a DNS lookup |
| 15:05 | <annevk> | SimonSapin: not sure how universal getnameinfo is though |
| 15:05 | <annevk> | "NI_NAMEREQD will cause the function to fail if the name cannot be found with a DNS lookup" |
| 15:06 | <SimonSapin> | that’s not the same as "don’t bypass DNS lookup for addresses that look numeric" |
| 15:09 | <annevk> | SimonSapin: granted that it's not ideal, but it seems sufficient for the cases we're looking at, no? |
| 15:09 | <annevk> | E.g. it's unlikely 0x800f0906 would ever DNS resolve in practice |
| 15:10 | <SimonSapin> | annevk: my point is I’m not convinced this flag actually does what you hope it does |
| 15:16 | <jgraham> | So… there isn't a convenient API to tell if a stylesheet has loaded? |
| 15:19 | <SimonSapin> | jgraham: document.stylesheets? |
| 15:20 | <SimonSapin> | not sure if not-loaded-yet stylesheets show up there |
| 15:20 | <TabAtkins> | They don't. |
| 15:20 | <TabAtkins> | So if it shows up, it's loaded. |
| 15:28 | <TabAtkins> | mathiasbynens: Yeah, the effort of keeping Images 3 and 4 both updated in their overlap was too large for me to bother with it, in practice, so I chopped 4 down to a delta spec until it's ready to be published for real. |
| 15:30 | <TabAtkins> | terinjokes, Domenic: Bikeshed uses plinss's widlparser, which implements the grammar straight out of the WebIDL spec. Any errors are likely to be on your side (unless there was a recent grammar change, like what we had with Promise<void>). |
| 15:34 | <JakeA> | Quick poll, does the image load for you? https://jsbin.com/gucugo/1/quiet |
| 15:35 | <boogyman> | MacOSX Chrome 38.0.2125.101 - yes |
| 15:35 | <JakeA> | Is it failing for anyone? |
| 15:35 | <JakeA> | I think *some* of their servers have gone crap |
| 15:36 | <TabAtkins> | Loads for me |
| 15:37 | <boogyman> | JakeA: I spun up a windows VM and worked on Chrome/Fx/IE11 too |
| 15:38 | <JakeA> | boogyman: Cheers. Failing for me because of duplicate access-control-* headers, but I think only *some* of their network is sending it |
| 15:39 | <mathiasbynens> | TabAtkins: makes sense |
| 15:41 | <terinjokes> | TabAtkins: as we suspected |
| 15:50 | <annevk> | SimonSapin: bypassing DNS lookup for such addresses is probably mostly fine, what's important is that they fail |
| 15:51 | <annevk> | SimonSapin: it would be better if they did DNS lookups |
| 15:51 | <annevk> | SimonSapin: I guess we could recognize all patterns in the URL parser itself and fail early for some... |
| 15:51 | <SimonSapin> | by bypassing DNS lookup I mean parsing hex or octal into an IPv4 address, which I thought this was about preventing |
| 15:58 | <annevk> | SimonSapin: what does NI_NAMEREQD do instead then? |
| 15:59 | <annevk> | SimonSapin: it seems to me that if you have such an hex/octal sequence, the function would fail due to that flag |
| 16:00 | <annevk> | JakeA: fails here on Mac OS X Firefox Nightly |
| 16:00 | <SimonSapin> | annevk: my understanding is that if the function does a DNS lookup and that lookup fails or returns "non existent", then the function will return an error |
| 16:00 | <SimonSapin> | but with a numeric address the lookup does not fail since there is no lookup in the first place |
| 16:00 | <annevk> | SimonSapin: and without that flag it would do what? |
| 16:01 | <SimonSapin> | “(if you don't specify this flag and the name can't be found, getnameinfo() will put a string version of the IP address in host instead.)” |
| 16:01 | <SimonSapin> | wait |
| 16:01 | <SimonSapin> | this is for reverse DNS |
| 16:03 | <SimonSapin> | looks like getaddrinfo(), not getnameinfo(), is relevant to URLs |
| 16:39 | <annevk> | SimonSapin: reading http://pubs.opengroup.org/onlinepubs/009695399/functions/getaddrinfo.html it does not look like it has a suitable option |
| 16:48 | <annevk> | I missed http://googledevelopers.blogspot.ch/2014/07/noto-cjk-font-that-is-complete.html |
| 16:50 | <annevk> | SimonSapin: "Continuing on with the input paramters, you'll likely want to set ai_family to AF_UNSPEC which tells getaddrinfo() to look for both IPv4 and IPv6 addresses. You can also restrict yourself to one or the other with AF_INET or AF_INET6." via http://www.beej.us/guide/bgnet/output/html/multipage/getaddrinfoman.html looks relevant? |
| 16:51 | <annevk> | SimonSapin: if the IPv6 parsing of that method is sane, restricting it to IPv6 parsing might help |
| 16:52 | <SimonSapin> | interesting |
| 16:53 | <annevk> | I can't believe there's not a method that only does a DNS lookup |
| 16:53 | <annevk> | It's so weird |
| 16:55 | <SimonSapin> | annevk: wait, "look for" as a numeric address, or in DNS results? |
| 16:56 | <annevk> | SimonSapin: hmm not sure |
| 16:56 | <SimonSapin> | http://msdn.microsoft.com/en-us/library/windows/desktop/ms738520%28v=vs.85%29.aspx says "A value of AF_UNSPEC for ai_family indicates the caller will accept any protocol family. This value can be used to return both IPv4 and IPv6 addresses for the host name pointed to by the pNodeName parameter." |
| 17:02 | <annevk> | ah okay |
| 17:28 | <jgraham> | Uh |
| 17:28 | <jgraham> | So |
| 17:28 | <jgraham> | Can someone try going to http://rustbyexample.com/borrow/mut.html in Firefox and tell me what the first script you see in the source is? |
| 17:29 | <jgraham> | And also whether the sidebar appers |
| 17:30 | <annevk> | SimonSapin: note that per that API port is a string |
| 17:30 | <annevk> | jgraham: sidebar opens, first has #jsrepl-scrip |
| 17:31 | <SimonSapin> | annevk: per getaddrinfo? |
| 17:31 | jgraham | cries |
| 17:31 | <annevk> | SimonSapin: yes |
| 17:31 | <jgraham> | When I open it I get some CDN version of ace.js |
| 17:32 | <jgraham> | Which interferes with the version of ace.js that's packaged in the app.js (or something) |
| 17:32 | <jgraham> | and the whole thing breaks |
| 17:32 | <annevk> | jgraham: the internet hates you |
| 17:32 | <jgraham> | But I am super-confused about what's inserting the CDN content |
| 17:32 | <jgraham> | I never see it in Chrome |
| 17:32 | <jgraham> | And sometimes don't in Gecko |
| 17:33 | <jgraham> | And it comes before any other scripts |
| 17:34 | <SimonSapin> | annevk: that string also takes service names like "http", I don’t know if it’s used that much in practice. It least the Rust API takes a 16-bit integer http://doc.rust-lang.org/std/io/net/tcp/struct.TcpStream.html#method.connect |
| 17:34 | <annevk> | SimonSapin: did you raise this question on StackOverflow btw? |
| 17:34 | <SimonSapin> | which question? |
| 17:34 | <annevk> | SimonSapin: the IPv4 thing |
| 17:34 | <SimonSapin> | I did not |
| 17:34 | <annevk> | SimonSapin: what's the rust library built on top of though? |
| 17:35 | <SimonSapin> | lots of things, what part do you mean? DNS lookups? |
| 17:35 | <annevk> | SimonSapin: seems the Rust library doesn't have clean separation either |
| 17:35 | <SimonSapin> | separation of what? |
| 17:35 | <annevk> | SimonSapin: domain names and IP addresses |
| 17:36 | <SimonSapin> | right |
| 17:37 | <SimonSapin> | I checked a while ago, IIRC it goes through a couple layers of abstraction, including IPv4 and IPv6 parsing written in Rust, and eventually calls getaddrinfo (which also does IPv4 and IPv6 parsing) |
| 17:39 | <annevk> | how efficient |
| 17:41 | <SimonSapin> | I often don’t know what I’m doing… but sometimes I feel like nobody else does either :) |
| 17:44 | <annevk> | SimonSapin: well it seems pretty clear here :p |
| 17:52 | <SimonSapin> | annevk: so apparently PostgreSQL uses percent-encoded filenames in the "host" of an URL for Unix sockets, but the URL standard blacklists / in domains https://github.com/servo/rust-url/issues/26 |
| 17:56 | <annevk> | SimonSapin: why would postgres parse per relative scheme rules? |
| 17:58 | <annevk> | SimonSapin: oh, you're parsing the domain I guess, hmm |
| 17:58 | <annevk> | SimonSapin: no never mind that second remark |
| 19:33 | <SimonSapin> | annevk: they want to split into user, password, host, port number, and path |
| 19:34 | <SimonSapin> | but instead of TCP sockets you can also use Unix sockets, in which case you have a filename instead of host/port |
| 19:34 | <SimonSapin> | so they percent-encode the filename as the "host" |