00:00
<Domenic>
they have document.URL though! not to be confused with window.URL.
00:00
jgraham
still has to actually do the review to make the plan come together
00:00
<jgraham>
But I think it's looking good
00:01
<jsbell>
Domenic: you say "they're all incompatible!". I hear "maybe we can delete it!"
00:01
<jsbell>
I doubt we're that lucky
00:01
<Domenic>
jsbell: I wonder if we could. Still for <custom-a> I need access to "the element's base URL"
00:08
<caitp>
this isn't a custom elements thing because you mentioned IE11, so what is it? o_o
00:20
<terinjokes>
does IE11 support global.URL?
00:20
<terinjokes>
s/global/window/
00:33
<caitp>
its not URL, really
00:52
<JonathanNeal>
Let me apologize in advance for not getting it, but is there a browser runnable version of Domenic’s Promise tests?
00:52
<JonathanNeal>
^ https://github.com/promises-aplus/promises-tests
02:18
<JonathanNeal>
Is there a differencee between return undefined; and return; ?
03:19
<roc>
JonathanNeal: I think we'd like Mozilla Marketplace to work cross-browser/OS.
04:08
<zcorpan>
JonathanNeal: no
04:09
<JonathanNeal>
zcorpan: no, there is not a browser runnable version of Domenic’s Promise tests, or no there is no difference between return; and return undefined;, or both?
04:09
<zcorpan>
the return thing
04:09
<Domenic>
caitp: it started with some custom elements stuff, then delved into discovering interop hell.
04:10
<Domenic>
terinjokes: no URL in IE11
04:10
<Domenic>
JonathanNeal: the tests are browserifyable
04:10
<zcorpan>
JonathanNeal: unless you do var undefined or something like that maybe
04:11
<JonathanNeal>
Domenic: is it obvious or do i have to do something tricky?
04:11
<Domenic>
JonathanNeal: there is a difference in certain scenarios e.g. `function f(undefined) { return undefined; } f(5);` or `function (undefined){ /* ... 100s of lines later ... */ function g() { return undefined; /* will return 5 */ } /* ... more code here ... */ }(5)
04:11
<Domenic>
JonathanNeal: if you've used browserify before should be pretty simple
04:49
<JonathanNeal>
Interesting, IE10’s Object.create method does not assign the correct prototype.
07:25
<annevk>
Domenic: note that hopefully only document.baseURI is important going forward
07:25
<annevk>
Domenic: document.body.baseURI will just return that value (if we need to preserve the propery)
07:31
<annevk>
MikeSmith: I closed it, but I notice now that https://www.w3.org/Bugs/Public/show_bug.cgi?id=27202 is spam
07:31
<annevk>
MikeSmith: see the URL field
11:46
<erlehmann>
https://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-November/033914.html does not redirect to http://lists.w3.org/Archives/Public/public-whatwg-archive/2011Nov/0186.html
11:46
<erlehmann>
and it is not in the wayback machine
11:46
<erlehmann>
this breaks a link on https://news.ycombinator.com/item?id=3264074
11:50
<annevk>
We don't have an easy way of fixing that
11:57
<erlehmann>
annevk what is it about lists.whatwg.org?
11:57
<erlehmann>
is it gone?
11:58
<annevk>
erlehmann: it's not accessible over TLS
12:00
<erlehmann>
but it was? i see.
12:26
<Ms2ger>
...
12:26
<Ms2ger>
Chrome has a quirk in option.text
13:12
<Ms2ger>
And IE throws on document.createElement("option").label
13:22
<annevk>
Film at 11?
13:59
<Domenic>
annevk: curious in what situations they can be different
13:59
<Domenic>
annevk: although I guess per spec it seems like "the element's base URL" and "the document's base URL" are the same.
14:00
<Ms2ger>
xml:base
14:01
<Domenic>
right -_-
14:12
<annevk>
Domenic: the plan is to nuke xml:base
14:12
<annevk>
Domenic: there's various open bugs on browsers
14:12
<annevk>
Domenic: most browsers don't really respect it...
14:14
<erlehmann>
what is with normal base element?
14:14
<annevk>
erlehmann: that sets the document's base URL
14:15
<annevk>
(and it would be nice if it didn't exist or was not dynamic at least, but...)
14:19
<annevk>
Domenic: https://www.w3.org/Bugs/Public/show_bug.cgi?id=20976 has my rough plan for replacing the current base URL setup, but I'm waiting for either Chrome or Firefox to remove their remaining xml:base support
14:21
<Domenic>
annevk: I just wonder if we can fix chrome's baseURI property to return something sensible
14:22
<Domenic>
wait ... this morning/on my home computer it's being not-retarded... was i hallucinating? will report back when in the office
14:22
<annevk>
Domenic: make it return the associated document's base URL...
14:23
<Domenic>
No wait it's retarded in Canary even on this computer...
14:25
<Domenic>
https://www.dropbox.com/s/hfba5zwbv9ti30y/Screenshot%202014-10-31%2010.25.13.png?dl=0
14:27
<annevk>
Domenic: fascinating
14:28
<annevk>
Domenic: Firefox has about:newtab
14:28
<Domenic>
Yeah seems Chrome opens up a google.com page that uses AppCache
14:29
<Domenic>
In yesterday's cursory testing Firefox had sensible baseURI values, Chrome did the weird filename + querystring thing, and IE gave undefined.
14:29
<Domenic>
This discovery that Chrome 38 gives sensible values too is new
14:30
<annevk>
Hmm, VMWare is broken in OS X 10.10
14:30
<annevk>
If IE returns undefined, can we do away with baseURI? Would be too good to be true I'm sure
14:32
<Domenic>
OMG
14:32
<Domenic>
OMG
14:32
<Domenic>
OMG
14:32
<Domenic>
Developer tools is fucking with me
14:33
<Domenic>
document.baseURI
14:33
<Domenic>
"newtab?espv=2&ie=UTF-8:1"
14:33
<Domenic>
"hello" + document.baseURI
14:33
<Domenic>
"hellohttps://www.google.com/_/chrome/newtab?espv=2&ie=UTF-8";
14:34
<annevk>
o_O
14:34
<ondras>
:-)
14:34
<erlehmann>
lelele
14:35
<erlehmann>
ondras
14:35
<erlehmann>
lest we meet again
14:35
<ondras>
:-)
14:36
ondras
has been idling on this channel for ages
14:36
<erlehmann>
never seen you befor
14:36
<erlehmann>
JonathanNeal how about the table sortable polyfill?
14:37
<erlehmann>
document.baseURI
14:37
<erlehmann>
"https://www.google.de/_/chrome/newtab?espv=2&ie=UTF-8";
14:37
<erlehmann>
'hello'+document.baseURI
14:37
<erlehmann>
"hellohttps://www.google.de/_/chrome/newtab?espv=2&ie=UTF-8";
14:37
<JonathanNeal>
erlehmann: what about it? =D
14:37
<erlehmann>
chromium Version 37.0.2062.120 Debian jessie/sid (281580)
14:37
<erlehmann>
JonathanNeal how far along is it?
14:38
<Domenic>
erlehmann: yeah it's a regression from M38
14:38
<Domenic>
https://code.google.com/p/chromium/issues/detail?id=429178
14:38
<Domenic>
I always wondered if I had a one-character email address (d⊙dm) whether the bug tracker would insert ...s after the character (d...⊙dm). Turns out it does.
14:39
<JonathanNeal>
Firefox is funny. typeof XMLHttpRequest /* “function" */ XMLHttpRequest instance Function /* true */ XMLHttpRequest.name /* “” */ Function.prototype.toString.call(XMLHttpRequest) /* TypeError */
14:40
<JonathanNeal>
erlehmann: paused development a while back, but i’d be happy to work on it today.
14:40
<Domenic>
JonathanNeal: that *is* weird.
14:41
<Domenic>
XMLHttpRequest.toString() works
14:41
<Domenic>
Function.prototype.toString !== XMLHttpRequest.toString apparently
14:42
<Domenic>
I wonder if that's true for all DOM objects
14:42
<JonathanNeal>
Maybe. Similarly, Safari considers XMLHttpRequest an object.
14:43
<annevk>
Domenic: I guess you didn't have any luck with that panel the other day as WebRTC decided to not require TLS
14:43
<annevk>
Domenic: I'm thinking of putting W3C's infamous Formal Objection to test when the time is there to see if that can be reversed
14:44
<JonathanNeal>
erlehmann: would you like to help me get back to speed with table sort?
14:44
<Domenic>
annevk: ummm they were supposed to add a note encouraging browsers to ship with only TLS
14:44
<annevk>
Domenic: though with the latest STFU to Apple about longdesc I don't have much hope
14:44
<Domenic>
annevk: I think it's a non-starter to require HTTPS for GUM but not for webkitGUM though
14:44
<annevk>
Domenic: why can't they make migration happen?
14:44
<Domenic>
annevk: isn't that up to browsers?
14:45
<annevk>
Domenic: if we leave security up to browsers, should we leave APIs up to them too?
14:45
<Domenic>
annevk: IMO they should have a note like https://xhr.spec.whatwg.org/#sync-warning
14:46
<Domenic>
i will send an email
14:47
<Domenic>
i looked at too much internet today before breakfast, need to get to the office and eat...
14:52
<annevk>
Domenic: they can do better than that I think, flag day seems feasible
14:52
<annevk>
Domenic: but yes, actual deprecation would be good
14:52
<annevk>
Domenic: the resolution of the bug I tweeted made it sound like they would just add some text about how it's bad but not have an actual plan
14:53
<JonathanNeal>
When ToLength caps lengths at 2^53-1, why is that? The bit limit in JavaScript?
14:56
<MikeSmith>
annevk: thanks (about that bug)
14:57
<JonathanNeal>
^ http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength
14:58
<boogyman>
JonathanNeal: it would make sense if that were the case
14:59
<boogyman>
gaps start to appear beyond that definition.
15:03
<Ms2ger>
JonathanNeal, once you cross that limit, not all integers are representable as IEEE doubles
15:04
<JonathanNeal>
Thanks. noted.
15:34
<Domenic>
annevk: "authenticated" is the new "secure" w.r.t. origins?
15:35
<annevk>
Domenic: it's not stable
15:35
<annevk>
Domenic: and it's not tied to origins
15:36
<annevk>
Domenic: https://w3c.github.io/webappsec/specs/mixedcontent/#powerful-features is the current thinking of Mike and I
15:36
<annevk>
Domenic: mostly Mike
15:43
<annevk>
https://annevankesteren.nl/2014/10/tls-browser-ui
15:48
<Domenic>
annevk: enumerateDevices is privacy-sensitive from my understanding, yes? Although just in the fingerprinting sense...
15:49
<annevk>
Domenic: prolly
15:51
<Ms2ger>
Hm
15:51
<Ms2ger>
Is it expected that canvas2d font parsing depends on quirkiness?
16:30
<Hixie>
erlehmann: lists.whatwg.org was never accessible via TLS, but we have HSTS set up for whatwg.org now so browsers who have visited whatwg.org won't accept to visit lists.whatwg.org except through TLS
16:31
<Hixie>
erlehmann: if you visit the URL with http:// rather than https:// in a browser that has never seen whatwg.org, you can copy-and-paste the text from that URL into Google and get the w3.org equivalent.
16:31
<Hixie>
someone should write a cgi script to just do that
16:33
<erlehmann>
but that means there is a cert for whatwg.org … but not for subdomains?
16:40
<Hixie>
we have a cert
16:40
<Hixie>
we just have no way to install it for lists.whatwg.org specifically
16:40
<Hixie>
because that subdomain is run by dreamhost
16:48
<Domenic>
Hixie: that clean-browser trick won't work once we make it onto the HSTS preload list
17:14
<Hixie>
Domenic: yeah, you'll have to use an old browser
17:39
<annevk>
https://unicorn-wg.github.io/sslv3-diediedie/ heh
18:11
<annevk>
http://tantek.com/2014/304/b1/url-started-as-udi-conversation-w3c-tpac is relevant to my interests
18:11
<annevk>
Did not realize URN started at around the same time or was already ongoing
18:26
<TabAtkins>
JonathanNeal: In particular, between 2^53 and 2^54-1, only even integers can be represented. Between 2^54 and 2^55-1, only integers divisible by 4 can be represented. Etc.
18:29
<TabAtkins>
JonathanNeal: Re "return undefined;", "undefined" is technically a variable on the global object, and can be overridden. (Unlike true/false/null/etc, which are language keywords and can't be overridden.) Its initial value is the undefined value.
18:31
<TabAtkins>
So "return;" always returns the undefined value, while "return undefined;" might not. If you ever explicitly want the undefined value, you can use the "void" operator, which is a prefix operator that takes one value, does nothing with it, and returns undefined.
18:31
<TabAtkins>
Like "void 0"
18:31
<TabAtkins>
(Which also happens to be shorter to type than "undefined".)
18:33
<caitp>
to be fair, global.undefined is [[writable]]: false, [[configurable]]: false
18:33
<caitp>
unless it gets shadowed, which hopefully it doesn't, it doesn't matter
18:35
<TabAtkins>
Right, but most JS code happens inside of a function, so you shadowing a legit possibility.
18:35
<caitp>
not if you smack anyone that tries to check in code declaring a variable named `undefined`!
18:42
<TabAtkins>
Sure, sure.
18:43
<TabAtkins>
But, for example, jQuery goes out of its way to keep this from being a problem by taking a final argument in its init code that they don't actually pass (just so they get a guaranteed undefined value).
19:05
<smola>
"file" -> Unfortunate as it is, this is left as an exercise to the reader. When in doubt, return a new globally unique identifier.
19:05
<smola>
LOLSTANDARD? :p
19:12
<smola>
annevk: I'm trying to catch up with the URL Standard changes... what's with all the blob stuff?
19:12
<smola>
having an associated object to a URL seems out of scope
19:14
<smola>
stuffing File API internals into the URL Standard looks like a call to "include all URL schemes' internals into the spec"
19:14
<smola>
(e.g. git://, ed2k://, magnet:...)
19:20
<annevk>
smola: it's something the web platform needs, but you can ignore that
19:20
<annevk>
smola: i could probably write it down more cleanly
19:22
<smola>
annevk: it would be nice to have a note, somewhere, noting that "blob" stuff is for people implementing the File API, or for the "web platform", or something like that
19:23
<smola>
I just want to spare me arguments about why that doesn't need to be implemented in a "non-web context" to comply with the URL parsing standard
19:24
<MikeSmith>
annevk: sounds like you need to add some text defining different conformance classes
19:24
<annevk>
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27215
19:24
<annevk>
smola: MikeSmith: ^^
19:24
<annevk>
patches welcome :p
19:24
<MikeSmith>
:-)
19:25
<smola>
annevk: \o/
20:14
<Hixie>
if i have an expression with an object literal, as in { foo: 'bar' }
20:14
<Hixie>
i can add methods to it by making the property value be a function
20:14
<Hixie>
is there an object literal syntax to add getters and setters?
20:15
<Domenic>
Wierd, InfoQ basically copied the "model" section of the streams spec + some questions into a news article. http://www.infoq.com/news/2014/10/whatwg-streams
20:15
<Domenic>
Hixie: yes, `{ get foo() { return 'bar'; } set foo(v) { ... } }
20:17
<Hixie>
Domenic: does anyone implement that?
20:17
<Domenic>
Hixie: IE9+
20:17
<Domenic>
(and everyone else, obviously)
20:17
<Hixie>
{ set foo(a) { } } in Chrome gets me a syntax error
20:18
<Hixie>
oh i have to make it an expression
20:18
<Domenic>
wrap it in parens
20:18
<Hixie>
i see
20:18
<Domenic>
yeah
20:18
<MikeSmith>
InfoQ is hard to take seriously. I wonder who actually reads it, or why
20:19
<Domenic>
agreed. it seems like a quantity thing?
20:38
<wanderview>
jsbell: ping
20:46
<wanderview>
jsbell: wrote a bug instead: https://code.google.com/p/chromium/issues/detail?id=429316
20:47
<jsbell>
wanderview: I think the intent is that put() implicitly clones (or eventually tees the stream)
20:48
<wanderview>
jsbell: I think the decision was not to do implicit clones
20:48
<wanderview>
let me find the issue
20:50
<wanderview>
jsbell: it was the result of this (long) issue
20:51
<wanderview>
seemed to come to the explicit clone conclusion
20:54
<jsbell>
wanderview: https://github.com/slightlyoff/ServiceWorker/issues/510
20:55
<wanderview>
jsbell: that only prevents marking the body used when doing cache.Match(myRequest)
20:55
<wanderview>
it avoids invoking the Request copy constructor... only create a Request object if a string was passed in
20:56
<wanderview>
but it doesn't stop the Cache from reading the body in order to store the Request in cache.put()
20:56
<jsbell>
wanderview: ah, right...
20:56
<wanderview>
sorry, I have to head out early to take my daughter trick-or-treating
20:57
<jsbell>
wanderview: kk; I think you should raise a spec issue on this; I don't see anything in the specs that would actually set the used flag, even if conceptually it "should"
20:57
<wanderview>
k
20:58
<wanderview>
I just don't see how it could not if we must retrieve the Request in keys()... means the cache had to store the body
21:01
<wanderview>
jsbell: https://github.com/slightlyoff/ServiceWorker/issues/550
21:02
<jsbell>
wanderview: thx; Happy Halloween!
21:02
<wanderview>
np... Happy Halloween to you too!
22:01
<annevk>
MikeSmith: InfoQ ends up generating a ton of tweets somehow
22:04
<MikeSmith>
yeah
22:04
<MikeSmith>
kind of baffling
22:06
<Hixie>
anyone know if JS has static properties?
22:06
<Hixie>
i want my class { } thingy to define a property that appears on the constructor and the instances, readonly
22:10
<annevk>
Hixie: per IDL constants are non-writable non-configurable properties
22:10
<Domenic>
Hixie: proper static properties don't exist on the instances, only the class
22:10
<annevk>
Hixie: not sure if there's sugar though
22:10
<Domenic>
Hixie: but you can do `class { static foo() { } static get bar() { } } etc
22:12
<Hixie>
Domenic: k
22:46
<TabAtkins>
Hixie: Or with today's JS, you just add them as properties on the constructor function, rather than the prototype.
22:46
<TabAtkins>
Instances wont' get it.
22:47
<TabAtkins>
You'd have two forms of inheritance (from constructor and from prototype), which we've rejected in general.
22:52
<Hixie>
yeah
22:53
<Hixie>
i always get a headache when trying to fiddle with JS prototype stuff
23:02
<Domenic>
Is https://html.spec.whatwg.org/multipage/rendering.html#phrasing-content-3 missing `:link { cursor: pointer; }` ?
23:04
<jgraham>
Hixie: With the focus spec, is it possible to have the document node be the focused one?
23:04
<Hixie>
jgraham: it's possible to have the viewport be focused
23:04
<Hixie>
jgraham: i don't think the Document node itself can technically be focused itself? but i could be wrong
23:04
<jgraham>
Hixie: Is that the same?
23:04
<Hixie>
Domenic: yeah, looks like it
23:05
<Hixie>
jgraham: not technically
23:05
<jgraham>
Hixie: So I thought that the focused area was always a node?
23:06
<Hixie>
jgraham: oh no, definitely not
23:06
<jgraham>
Or at least always had a DOM anchor
23:06
<Hixie>
jgraham: there's all kinds of crap that can be focused these days that isn't anode
23:06
<Hixie>
the viewport uses the document as its dom anchor iirc
23:06
<jgraham>
OK
23:07
<Hixie>
jgraham: see https://html.spec.whatwg.org/#focusable-area
23:07
<Domenic>
Hixie: shall I file a bug or are you fixing already?
23:07
<Hixie>
Domenic: file a bug
23:07
<Hixie>
thanks
23:10
<Domenic>
Wow did not know (remember?) that :link did not match visited links... fun times
23:10
<Hixie>
:any-link
23:11
<Domenic>
yepyep.
23:12
<Domenic>
can't find a straight answer as to whether :any-link is equivalent to `:matches(a[href], area, link)`, hmm
23:13
<Domenic>
I guess CSS is decoupled from HTML in that respect
23:13
<Domenic>
CSS just says "represents a link ... for example in [HTML5] ..."
23:14
<TabAtkins>
Yeah, it's the host language that defines what a link is.
23:16
<Hixie>
:any-link is equivalent to :matches(:link, :visited)
23:17
<Domenic>
yeah just curious what :link matches I guess
23:17
<Domenic>
in terms of elements
23:17
<Domenic>
gotta trace the references
23:17
<Hixie>
oh
23:18
<Hixie>
that's in the spec
23:18
<Hixie>
html spec
23:18
<Domenic>
yeah
23:18
<Hixie>
search for :link
23:18
<Domenic>
oh it's that easy that sounds nice
23:18
<Domenic>
hmm no :active in the UA stylesheet either
23:21
<jgraham>
Hixie: Thanks
23:24
<Hixie>
jgraham: it's about as far from what browsers implement today as the spec was a few months ago, but the spec has changed drastically in that time, fwiw
23:24
<Hixie>
jgraham: i think the new spec is way more comprehensive in terms of what browsers actually need to do
23:24
<Hixie>
jgraham: so if you haven't read that section recently, now's a good time
23:26
<jgraham>
Hixie: At the moment I'm mainly trying to convince the webdriver people not to define their own concept of focus
23:26
<jgraham>
This has not been too hard, fortunately
23:26
<Hixie>
oh man yeah
23:26
<Hixie>
defining focus is a huge pain
23:27
<Hixie>
i'm pretty sure what the HTML spec has now is close to complete relative to what the web needs
23:27
<Hixie>
so they should just use that
23:27
<wilhelm_>
Other things that should be defined elsewhere and referenced from our spec: visibility, hit testing.
23:29
Hixie
pretends to have gotten an important phone call and runs out of the room
23:31
<Domenic>
Is there any way for me to be the first subscriber to an event, but only do my thing if no other subscribers call `e.preventDefault()`? Maybe delaying a turn then checking e.defaultPrevented?
23:32
<Hixie>
register yourself on the parent element? :-)
23:32
<Hixie>
what happens if you register yourself during dispatch
23:33
<Domenic>
oooh interesting
23:33
<Domenic>
seems like it would work, although maybe browsers do weird things
23:44
<Domenic>
aww doesn't work
23:44
<Domenic>
setTimeout(, 0) seems like my best bet
23:46
<jamesr_>
Hixie: registering yourself during dispatch should do nothing for that event, the propagation chain is computed before firing any handlers
23:46
<Hixie>
yeah, that seems reasonable
23:46
<Hixie>
pity
23:49
<jamesr_>
otherwise it's insanity
23:50
<Hixie>
totally
23:51
<Hixie>
would have solved this case though ;-)