07:30
<asmodai>
Have to admit it has some nice ideas: http://blog.brackets.io/
07:38
<annevk>
cool
07:39
<Velmont>
what is that? irc on phone doesnt make it easy to press hyperlinks :p
07:39
<asmodai>
Web-tech code editor with some nifty ideas
07:39
<asmodai>
open source project by Adobe
07:41
<Philip`>
Velmont: Sounds like you need a better IRC client - even irssi over SSH in ConnectBot lets you follow links :-)
07:42
<annevk>
hmm nobody pointed out this far that iconUrl needs to be resolved
07:42
<Velmont>
Philip`: using fingerterm with a remote irssi. running meego on nokia n9.
07:43
<Velmont>
i'm sure there is a way, just haven't found it yet
07:43
<Velmont>
ooh. found it now. its actually very well made.
07:43
<MikeSmith>
asmodai: I've been messing around with brackets for a few days. indeed pretty nice
07:43
<MikeSmith>
JS editor written in JS
07:44
<MikeSmith>
not unique in that regard I guess but the way they have done is different
07:45
<MikeSmith>
e.g., the fact that it exposes its own source code right in the UI so you can hack on it easily
07:46
<asmodai>
MikeSmith: Some of the ideas are very nice. I like the CSS part editing with the quick edit from HTML
07:46
<MikeSmith>
I didn't even see the CSS stuff yet I guess
07:46
<asmodai>
MikeSmith: Did you see the YouTube vid?
07:47
<Velmont>
oh, yes, looks nice. and livepreview in a real editor ftw.
07:47
<annevk>
also, MIT license
07:47
<MikeSmith>
I looked at parts of several youtube videos from Adobe people involved in the project
07:47
<annevk>
Adobe being awesome
07:47
<asmodai>
annevk: It can happen :)
07:47
<annevk>
I wonder who managed to steer Adobe in the right direction
07:48
<MikeSmith>
Adobe is kicking ass these days for sure
07:48
<Velmont>
so need to get that runn7ng in opera :]
07:48
<MikeSmith>
annevk: several people I bet, at the same time
07:48
<MikeSmith>
Mike Chambers for one
07:49
<MikeSmith>
Arno and Vincent Hardy for sure, and whatever manager they report to
07:49
<annevk>
but Vincent was hired after the fact
07:49
<asmodai>
annevk: Nice video that, I think, also touches on software usability: http://vimeo.com/25058185 :)
07:49
<asmodai>
(Dutch language)
07:49
<MikeSmith>
annevk: yeah but Arno's been there for a while I think
07:50
<annevk>
asmodai: nooit van "cow paths" gehoord zeker
07:50
<asmodai>
annevk: Ik kende alleen de Nederlandse term. :)
07:51
<annevk>
asmodai: olifantenpaadjes is echt een ding?
07:52
<annevk>
asmodai: had er niet eerder van gehoord
07:52
<asmodai>
annevk: Yep. :)
07:52
<annevk>
asmodai: wel van http://www.w3.org/TR/html-design-principles/#pave-the-cowpaths natuurlijk...
07:52
<annevk>
geinig wel
07:54
<MikeSmith>
annevk: I'm really glad you and Maciej took the time to put that doc together and get it published when you did
07:54
<asmodai>
annevk: Absolutely. But cool to see so many parallels. :)
07:55
<MikeSmith>
it is hard to imagine that document ever getting published as-is in the current group
07:58
<asmodai>
Too many discussions?
08:00
<asmodai>
Personally I always like background and guideline documents
08:03
<annevk>
MikeSmith: heh yeah
08:04
<MikeSmith>
we managed to get a lot of stuff done back in the day
08:04
<annevk>
MikeSmith: with the current regime you'd have to resort to undercover outfits like the WHATWG
08:27
<zcorpan>
Hixie: should we move document.domain to the obsolete section?
08:32
jgraham
is apparently behind the times, since he thought "IRC on phone" must be some kind of text<->speech bridge so you could listen to the conversations
08:33
<jgraham>
On the other hand I am so out of touch that I read "deprecated" when Hixie specs say "obsolete"
08:36
<Philip`>
Speech on a phone? You mean like the Skype app?
08:37
<Philip`>
It'll never catch on
08:38
<annevk>
using Skype all the time actually since the Phone app is broken again
08:38
<Ms2ger>
asmodai, elephants?
08:38
<annevk>
I have no idea why my iPhone keeps doing bullshit like that
08:38
<annevk>
but I'm out of warranty now
08:41
<Ms2ger>
Get a B2G phone ;)
08:42
<annevk>
I'm locked in the Apple ecosystem, need my iTunes
08:48
<asmodai>
Ms2ger: elephant paths, aka cowpaths
08:48
<asmodai>
Ewww, iTunes
08:49
<annevk>
actually small elephant paths
08:49
<annevk>
which makes no sense
08:49
<annevk>
because Dutch
08:49
<asmodai>
It does make sense in a way
08:49
<asmodai>
Elephants travel single file
08:50
<annevk>
they take down trees and everything
08:51
<asmodai>
Maybe we should unleash elephants on W3C meetings?
08:52
<Philip`>
Elephants are scared of mice, but mice are scared of snakes, so elephants travel in single file to make themselves look like an enormous snake
08:52
<annevk>
asmodai: in a Dutch way, just like Python :)
08:53
<asmodai>
I wonder why Adobe Air keeps insisting it needs to be installed when trying to install/update Balsamiq on Chrome. Firefox works as it should. Must be some plugin weirdness going on I guess.
08:53
<asmodai>
annevk: Heh
09:17
<MikeSmith>
does anybody know of particular sites that use keygen?
09:41
<MikeSmith>
Philip`: have you ever run a report on keygen?
09:41
<MikeSmith>
from your corpus of sites I mean
09:51
<Philip`>
MikeSmith: I vaguely remember looking and not finding anything interesting, though I'd expect anything interesting to be on e.g. bank login pages so I wouldn't see those anyway
09:52
<MikeSmith>
hmm true that I guess
09:53
<annevk>
there's a few banks, I think that's it
10:01
<Stevef_>
grepped top 10,000 home pages did not find keygen element
10:17
<MikeSmith>
Stevef_: thanks man
10:17
<MikeSmith>
I guess that's to be expected
10:19
<MikeSmith>
http://lists.w3.org/Archives/Public/public-whatwg-archive/ has turned out to be a nice way to look up history of stuff
10:20
<MikeSmith>
can use http://www.w3.org/Search/Mail/Public/advanced_search?type-index=public-whatwg-archive&index-type=t&resultsperpage=20&page=1&sortby=date and choose "Oldest message first" for the "Sort by" field
10:35
<zcorpan>
no keygens in web200904 either
10:37
<kennyluck>
wow
10:39
<zcorpan>
but i recall safari implemented keygen (and hence it was added to the spec) because some banks required either keygen or ActiveX
10:50
<AryehGregor>
It's amazing how much faster and less boring it is to annotate reftests if I don't also have to change all the style attributes to <style> elements.
10:51
<AryehGregor>
MikeSmith, BTW, it turns out that Peter is okay with me submitting preexisting tests that aren't formatted per guidelines, it was someone else who marked them Needs Work for stylistic reasons.
10:51
<MikeSmith>
oh really?
10:51
<MikeSmith>
so do I still need to talk with plh about it?
10:51
<AryehGregor>
MikeSmith, no, I don't think so.
10:51
<MikeSmith>
OK
10:51
<AryehGregor>
Thanks, though.
10:51
<MikeSmith>
OK
10:51
<MikeSmith>
thanks for letting me know
10:52
<AryehGregor>
Thanks for offering to help.
10:52
<AryehGregor>
Yeah, keygen is only used by a few sites, but they're important. Maciej once said that WebKit implemented it because it was either that or a whole array of MS-specific technologies, such as (IIRC) the Win32 API.
10:53
<AryehGregor>
Because it's not enough to support ActiveX, you have to support the binaries that are delivered using it . . .
10:53
<AryehGregor>
Too bad keygen is awful.
10:53
<MikeSmith>
yeah
10:54
<MikeSmith>
the problem is that, now that it's in the spec, people who don't know the history behind it now come across it and think that's it some shiny to do new things with
10:55
<MikeSmith>
(btw, I did actually already talk with plh about the CSS test requirements, and we were planning to talk about it on our weekly Interaction Domain call today. So I'll ask him to drop it from the agenda and hopefully we can actually end the meeting earlier.)
11:00
<zcorpan>
AryehGregor: yeah, i should have said ActiveX+win32
11:53
<zcorpan>
https://bugzilla.mozilla.org/show_bug.cgi?id=248239#c49 what behavior do we want here?
12:05
<Ms2ger>
jgraham / zcorpan: any of you who feels like explaining http://dvcs.w3.org/hg/webapps/file/a38857de5129/Workers/tests/submissions/Opera/constructors/Worker/004.html to me? :)
12:06
<jgraham>
Well zcorpan wrote is so…
12:06
<jgraham>
Wait, what?
12:07
<zcorpan>
Ms2ger: sure. cross-origin URLs (except data: ) should throw
12:07
<jgraham>
Well it says that Velmont / odinho wrote it (whichever secret identity he is using today), so maybe I'm wrong
12:08
<jgraham>
Argh
12:08
<zcorpan>
uh, i'm pretty sure i wrote that test :-)
12:08
<jgraham>
No I just don't follow the hg output
12:08
<Ms2ger>
So 'unsupported:' is resolvable?
12:08
<jgraham>
I *was* quite sure that you wrote it too :p
12:08
<zcorpan>
Ms2ger: ask annevk :-)
12:09
<Ms2ger>
He's not here, dammit
12:10
<jgraham>
Really, putting "author Odin Hørthe Omdal <odinho⊙oc>" on the display of a file he never touched is just silly
12:12
<zcorpan>
Ms2ger: http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1619 opera and firefox seem to resolve it (the space turns into %20) but chrome leaves the space (which maybe means it fails to resolve)
12:13
<zcorpan>
Ms2ger: but, depending on what the URL spec ends up saying, that might need to change to expect SyntaxError instead
12:16
<Ms2ger>
annevk!
12:16
<annevk>
hey man
12:17
<Ms2ger>
So, URLs :)
12:17
<annevk>
that is the plan
12:17
<Ms2ger>
And in particular, http://dvcs.w3.org/hg/webapps/file/a38857de5129/Workers/tests/submissions/Opera/constructors/Worker/004.html
12:17
<annevk>
but it's vacation and somehow I managed to stress myself already
12:17
annevk
looks
12:18
<annevk>
why would "http://www.example.invalid/"; throw?
12:18
<annevk>
I'm not entirely familiar with new Worker() I guess
12:19
<Ms2ger>
Resolve the scriptURL argument relative to the entry script's base URL, when the method is invoked.
12:19
<Ms2ger>
If this fails, throw a SyntaxError exception.
12:19
<Ms2ger>
If the origin of the resulting absolute URL is not the same as the origin of the entry script, then throw a SecurityError exception.
12:19
<MikeSmith>
that test doesn't actually display anything
12:20
<Ms2ger>
MikeSmith, it uses an Opera-internal test harness
12:20
<Ms2ger>
Which I'm fixing
12:20
<MikeSmith>
ah OK
12:20
<annevk>
a origin checks
12:20
<annevk>
that makes sense
12:21
<annevk>
so I guess we haven't decided yet whether resolving can actually fail
12:21
<annevk>
I'm leaning towards yes
12:21
<annevk>
most browsers have a concept of invalid URLs
12:21
<Ms2ger>
Hmm, Gecko doesn't seem to throw much
12:21
<annevk>
all those exceptions for new Worker are origin-related no?
12:21
<annevk>
SecurityError is 18
12:22
<annevk>
so not really about URLs
12:22
<Ms2ger>
Yeah
12:22
<Ms2ger>
Well, the question is if the resolving should already have failed before the origin check
12:24
<zcorpan>
annevk: the unclear case was "unsupported:" since it's not clear if that should resolve to begin with
12:25
<zcorpan>
annevk: if it doesn't resolve, it should throw SyntaxError; if it does resolve, it should throw SecurityError
12:27
<annevk>
I think it should resolve
12:27
<annevk>
it's a valid scheme so it's not a relative reference
12:28
<zcorpan>
ok. wfm! make sure the URL spec agrees :-)
12:30
<Ms2ger>
Now, the data: url
12:32
<annevk>
that becomes a sniffed text/plain resource I guess
12:33
<annevk>
we have made data URLs same-origin for XMLHttpRequest
12:33
<annevk>
not sure why Workers should be an exception
12:33
<annevk>
zcorpan: that's the plan
12:34
<Ms2ger>
So the spec is wrong?
12:34
<zcorpan>
Ms2ger: we gave spec feedback asking data: to be supported for workers. hixie said it seemed reasonable, but the spec hasn't changed, iirc
12:34
<AryehGregor>
How about we make them both throw the same so we don't have to care why it failed? :)
12:35
<zcorpan>
Ms2ger: we don't support data: for shared workers because it turned out different-origin pages suddenly could communicate if they both open the same data: shared worker, however that is fixable by remembering which origin opened the shared data: url
12:35
<Ms2ger>
Let's kill DOMException and only throw Error :)
12:36
<Ms2ger>
zcorpan, sounds like I'll have the test expect an exception, then :)
12:36
<zcorpan>
yeah i'm fine with making the test match what the spec currently says
12:37
<zcorpan>
but i still think we should change the spec, since data: urls can be useful :-)
12:37
<zcorpan>
Ms2ger: thanks for doing this btw
12:37
<Ms2ger>
Np
12:38
<Ms2ger>
It's more useful than arguing about signed / unsigned integers over in #developers :)
12:38
<zcorpan>
heh
12:38
<niloy>
can someone please tell me how the browser decides the encoding of responses over ajax ?
12:39
<Ms2ger>
Black magic
12:39
<niloy>
:(
12:39
<annevk>
niloy: do you mean XMLHttpRequest?
12:39
<niloy>
yes
12:40
<annevk>
niloy: what kind of attribute are you accessing?
12:40
<niloy>
JSON data
12:40
<annevk>
niloy: do you set responseType to "json"?
12:40
<Ms2ger>
http://dvcs.w3.org/hg/webapps/file/a38857de5129/Workers/tests/submissions/Opera/constructors/Worker/005.html
12:40
<niloy>
No, text data later parsed with JSON.parse
12:40
<annevk>
niloy: and then use response? or do you parse responseText?
12:40
<annevk>
k
12:41
<annevk>
niloy: it's described here: http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#text-response-entity-body
12:41
<Ms2ger>
zcorpan, any particular reason to make that test both "#" as a URL and the properties of the global?
12:41
<niloy>
annevk, thanks
12:44
<zcorpan>
Ms2ger: "#" as the URL is the standard way of loading the worker script in this testsuite, ugly hack to make the worker script be in the same file
12:44
<zcorpan>
Ms2ger: it should work per spec!
12:45
<Ms2ger>
So should document.all ;)
12:45
<zcorpan>
i don't see how that's relevant here :-P
12:46
<Ms2ger>
This standard way hurts my eyes :)
12:46
<zcorpan>
sorry about that
12:49
<Ms2ger>
Actually...
12:49
<Ms2ger>
Should <!-- in JS work per spec? :)
12:49
<Ms2ger>
(ECMA spec, that is)
12:49
<zcorpan>
should work per http://mathias.html5.org/specs/web-ecmascript/ !
12:50
<matjas>
not per ES
12:51
<Ms2ger>
Then why do you use //-->? :)
12:52
<zcorpan>
the interop with --> was not as good as with <!--. but probably not necessary
12:52
<zcorpan>
feel free to drop it :-)
13:06
<annevk>
smaug____: did you reach dougt?
13:06
<annevk>
MikeSmith: do you feel like waiting another week or should we just publish it next Thursday?
13:09
<MikeSmith>
annevk: I guess let's wait a week and have plenty of time to get it ready
13:09
<annevk>
cool cool cool
13:14
<MikeSmith>
kind of surprised there have not been any responses to the HTTP WG call for expressions of interest for HTTP2
13:14
<MikeSmith>
http://trac.tools.ietf.org/wg/httpbis/trac/wiki/Http2CfI
13:15
<MikeSmith>
http://lists.w3.org/Archives/Public/ietf-http-wg/2012AprJun/0718.html
13:23
<annevk>
Ms2ger: any reason the key "script's base URL" would not work?
13:23
<annevk>
found it
13:23
<annevk>
lowercase yadayadayada
13:27
<smaug____>
annevk: not yet
13:27
<smaug____>
I did send email
13:34
<MikeSmith>
smaug____: wonder if Doug hangs out on #mobile
13:34
<MikeSmith>
on mozilla irc I mean
13:36
<smaug____>
MikeSmith: yes. I just ping'ed him
13:37
<MikeSmith>
k
14:20
<jgraham>
So, does anyone want to write me a browser extension that does inline find just on idl blocks?
14:29
<Philip`>
jgraham: How about one that lets you type in an XPath query to search for?
14:29
<jgraham>
Philip`: You so funny
14:30
<Ms2ger>
Funnier than you :)
14:30
<Philip`>
Something like https://addons.mozilla.org/en-US/firefox/addon/xpather/ with a suitable query looks like it should work
14:31
<jgraham>
Ms2ger: You've heard the expression "damned by faint praise"?
14:31
<Ms2ger>
:D
15:04
<zcorpan>
http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1621 http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1622
15:05
<Ms2ger>
WorkerGlobalScope.ononline / WorkerGlobalScope.onoffline
15:05
<Ms2ger>
New?
15:06
<zcorpan>
Ms2ger: ononline and onoffline was added to the spec at some point
15:07
<Ms2ger>
Well, presumably it was :)
15:07
<zcorpan>
which was after the events were added to the spec
15:10
<Ms2ger>
Also, Chrome doesn't do btoa
15:12
<MikeSmith>
http://html9responsiveboilerstrapjs.com/ fun stuff
15:13
<Ms2ger>
\o/
15:13
<Hixie>
zcorpan: data: for workers is on my todo list
15:14
<zcorpan>
Hixie: ah, ok
15:16
<Ms2ger>
Is the set of todo list entries before that uncountable?
15:16
<Hixie>
no
15:16
<Hixie>
but it's not small
15:17
<Hixie>
re keygen, iirc the bulk of the usage was on intranet sites when i last looked into it
15:21
<zcorpan>
Ms2ger: you ok with introducing a new quirk here? https://bugzilla.mozilla.org/show_bug.cgi?id=248239#c56
15:48
<Ms2ger>
No
15:48
Ms2ger
goes and reads
15:50
<Ms2ger>
Talk to dbaron, please?
16:00
<annevk>
someone should figure out tables first
16:01
<annevk>
almost never makes sense in my experience to fix bits and pieces without understanding the complete picture
17:25
<zewt>
bleh, bit by unnecessary setTimeout delays again
17:27
<zewt>
now i have to try to remember if there were any hacks around that...
17:29
<jsbell>
ms2ger: thanks for the bug link re: "null" dicts.
17:29
<Ms2ger>
Np
17:29
<Ms2ger>
It's been that way all of a day, why didn't you know? ;)
17:33
<jsbell>
I swear I was looking at the "red" version of the spec when I typed my message; I blame caching. :)
17:34
<[tm]>
Hixie: thanks for info about keygen
17:38
<Ms2ger>
[tm], is there some way to get notified about changes to the WebIDL ED?
17:39
<[tm]>
Hixie: but the spec rightly should have a big disclaimer saying "don't actually use this for anything"
17:40
<[tm]>
Ms2ger: no but you can roll one yourself
17:40
<[tm]>
or i guess i can set something up for you
17:41
<Ms2ger>
I don't care, it's for bz :)
17:41
<[tm]>
if you big me enough about it
17:41
<[tm]>
ah
17:42
<[tm]>
well then i will definitely make something then :)
17:42
<[tm]>
bz deserves it for sure
17:43
<Ms2ger>
I need to remember that line ;)
17:44
<[tm]>
heh
17:45
[tm]
bows to the force for goodness in the universe that bz is
17:50
<[tm]>
Ms2ger: you are a similar force for goodness btw
17:50
<Ms2ger>
Me? Naah
17:54
<jwalden>
gsnedders: I have mail written, fwiw, doing a couple things first before I send it -- probably later this week
17:56
<Ms2ger>
/month/year/century
18:26
<[tm]>
Ms2ger: you fully deserve the love
18:26
Ms2ger
wonders how much [tm] had to drink
18:27
<n00lk0w>
why on earth is theh global draggable attribute enumerated?
18:30
<gsnedders>
jwalden: k, then I won't subvert you :P
18:30
<[tm]>
n00lk0w: no
18:31
<jwalden>
gsnedders: :-) it was suggested to me that it's harder to stop-energy a patch, so I'll probably do that
18:31
<[tm]>
maybe in order to match how it's actually implemented, maybe
18:31
<jwalden>
and maybe send mail after
18:31
<Ms2ger>
[tm], is draggable implemented?
18:32
<Hixie>
[tm]: that applies to a lot in the spec...
18:33
<gsnedders>
jwalden: Right, I'll almost certainly push change to Carakan this week regardless of what happens. Only possible change will be poisioning it so you can't get the setter.
18:34
gsnedders
had to back it out when he tried before, because he screwed up, and hasn't got around to fixing it till now
18:40
<n00lk0w>
Hixie: do you know why it's enumerated?
18:40
<n00lk0w>
<a href=/page draggable>alsdkfj</a> seems pretty intuitive to me
18:40
<Hixie>
hm?
18:41
<n00lk0w>
gramattically, it's indentical to the term "hidden"
18:41
<Hixie>
what is the question?
18:41
<n00lk0w>
it's an adjective describing an aspect of the element.
18:41
<n00lk0w>
...why isn't the global @draggable attribute boolean?
18:41
<n00lk0w>
why does it require an explicitly declared value?
18:41
Hixie
looks
18:42
<n00lk0w>
seems entirely illogical to me.
18:42
<Hixie>
oh because it has three states
18:42
<n00lk0w>
http://developers.whatwg.org/dnd.html#the-draggable-attribute
18:42
<Hixie>
if it was a boolean there'd be no way to turn off dragging an image using the attribute, e.g.
18:42
<Hixie>
bbiab, lunch
18:43
<n00lk0w>
Hixie: right, but the auto statecould be declared indicated by the absence of that attribute.
18:43
<n00lk0w>
Hixie: can you elaborate a bit on the image scenario, please?
18:44
<Ms2ger>
<img>
18:44
<Ms2ger>
^ you can drag that
18:44
<n00lk0w>
Ms2ger: and...?
19:12
<n00lk0w>
is there a way to declare the default "auto" value of draggable on a per-document basis?
19:18
<Hixie>
n00lk0w: it varies on a per-element basis
19:33
<Hixie>
heycam|away: is there some special phrasing i should use to invoke a callback object that might be null?
19:53
<n00lk0w>
Hixie: then what is the point of the auto value?
19:53
<n00lk0w>
Hixie: also, can you explain your earlier image dragging scenario?
19:55
<Hixie>
n00lk0w: on a page that doesn't have any script or anything, you can drag an image and a link, but you can't drag a div.
19:56
<Hixie>
n00lk0w: right?
20:06
<jgraham>
HTML pop quiz: <script>var a = window; document.open(); document.close(); setTimeout(function() {alert(a === window)}, x)</script> - what happens and does it depend on the value of x?
20:06
<n00lk0w>
Hixie: right.
20:06
<jgraham>
Where by "pop quiz" I mean "I know what some browsers do but I'm not sure I understand what's going on"
20:09
<eighty4>
jgraham: it gives me "true". Am I right on that at least?
20:10
<jgraham>
eighty4: Yes.
20:11
<eighty4>
jgraham: and what would be wrong with that? So not following :/
20:11
<Hixie>
jgraham: Window gets replaced, but the WindowProxy does not, so it always alerts true.
20:12
<jgraham>
Hixie: Right, I think my example doesn't quite demonstrate the issue clearly
20:12
<Hixie>
n00lk0w: ok so that means the default value of "draggable" needs to be something that makes <img> be draggable and <div> not be draggable
20:12
<Hixie>
n00lk0w: so it can't be either "true" or "false"
20:12
<jgraham>
The question is, why does the timeout run at all? It is called on the *old* window object
20:14
<Hixie>
oh, interesting question
20:16
<Hixie>
jgraham: it should not fire
20:16
<Hixie>
jgraham: document.open() clears the timeouts list
20:16
<Hixie>
jgraham: so my original answer was wrong. it should not alert.
20:17
<jgraham>
Hixie: The timeout is set *after* document.open
20:17
<jgraham>
http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1624
20:17
<Hixie>
oh
20:17
<Hixie>
well then where's the question?
20:17
<jgraham>
It seems the timeout is a function on the old window object but is called in the context of the new window object
20:18
<Hixie>
no no
20:18
<Hixie>
it's on the new Window object
20:18
<jgraham>
How?
20:18
<eighty4>
I'm so not following at all :/ Why would it not run? in what way is the settimeout related to you opening/closing a document?
20:19
<jgraham>
eighty4: opening/closing a document changes the window object for a new one, but doesn't change the global scope of the current script
20:19
<Hixie>
jgraham: "this" is the WindowProxy
20:19
<Hixie>
jgraham: not the Window
20:19
<jgraham>
So in general foo != window.foo
20:19
<Hixie>
foo === window.foo always
20:19
<Hixie>
unless "this" is something other than the WindowProxy of course
20:20
<Hixie>
or you're in a with()...
20:20
<Hixie>
because this.window === window === this
20:20
<jgraham>
When you say "always" what do you mean? If I set a property "a" on window window.a !== a
20:20
<Hixie>
?
20:21
<Hixie>
assuming you're in the global scope, window.a === a
20:21
<Hixie>
unless you have variables i guess
20:21
<Hixie>
window.a === this.a
20:21
<jgraham>
Right, that's what I meant
20:21
<Hixie>
other than in a long set of complicated cases, my statement is always true.
20:21
<Hixie>
:-P
20:22
<Hixie>
"i'll come in a gain"
20:22
<Hixie>
again, even
20:22
<Hixie>
man i can't even type memes right
20:22
<jgraham>
Heh
20:22
<Hixie>
anyway my point is that "this" is the WindowProxy in your example
20:22
<jgraham>
OK, so you have a function setTimeout on the original Window object
20:22
<jgraham>
and you replace window
20:23
<jgraham>
and call the original function
20:23
<eighty4>
so you're saying that b = window; document.open(); b === window should return false?
20:23
<Hixie>
what?
20:23
<Hixie>
is the name setTimeout() relevant to the question?
20:23
<Hixie>
i.e. is this a question about JS or about setTimeout
20:23
<jgraham>
Not really
20:24
<n00lk0w>
Hixie: got it. thanks :P
20:24
<Hixie>
jgraham: i don't understand your question
20:25
<Hixie>
jgraham: but "window" and "this" at the global scope are both the same object, namely, the magic WindowProxy object.
20:25
<jgraham>
Well I guess setTimeout is relevant because it lets you run code later, after the current script
20:26
<Hixie>
try asking a new question
20:26
<jgraham>
Hixie: The point was that after document.open I would expect window.setTimeout !== setTimeout
20:27
<Hixie>
ah ok
20:27
<Hixie>
well that point is wrong
20:27
<jgraham>
Which seems to be true
20:27
<Hixie>
window.setTimeout === this.setTimeout because window === this.
20:27
<jgraham>
http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1625 says true in Gecko at least
20:27
<jgraham>
Yeah but this is not the global scope at that point
20:27
<Hixie>
what does "a" have to do with anything in that test?
20:28
<Hixie>
the setTimeout() callback's |this| is also the WindowProxy
20:28
<Hixie>
http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1626
20:28
<Hixie>
the correct answers are "true" and "true"
20:28
<jgraham>
a is irrelevant, I should have deleted it
20:29
<Hixie>
k
20:29
<jgraham>
I don't see how the first is supposed to be "true"
20:30
<jgraham>
I assume the global scope isn't supposed to change under the unning script
20:30
<Hixie>
do you agree that "foo" is equivalent to "this.foo" in a function with no arguments, no variables, and no with statement?
20:30
<jgraham>
*running
20:31
<jgraham>
In pure ECMAScript I think that is true. A browser is not pure
20:32
<Hixie>
well if (foo !== this.foo) in a function with no arguments, no variables, and no with statement, i've no idea what it would be then
20:33
<Hixie>
if that statement is not true then my assumptions are flawed and i cannot draw any conclusions
20:33
<jgraham>
Well it's not true in Gecko at least
20:33
<jgraham>
According to your test
20:33
<Hixie>
gecko is buggy.
20:34
<jgraham>
Perhaps
20:35
<smaug____>
jgraham: in which case foo !== this.foo ?
20:35
<smaug____>
ah, I see
20:35
<Hixie>
http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1628
20:36
<Hixie>
<script>onload = function() { document.open(); document.close(); foo = {}; w(this.foo === foo); }</script>
20:36
<smaug____>
I wonder if the spec is buggy
20:36
<Hixie>
i don't understand how foo = {}; w(this.foo === foo); can print false.
20:36
<smaug____>
this points to the old window
20:36
<Hixie>
this points to the WindowProxy
20:37
<smaug____>
it points to the this of the load event listener
20:37
<jgraham>
I should note that WebKit cheats with document.open; it doesn't replace the window object at all
20:37
<Hixie>
oh, hm, the this of hte load event...
20:37
<Hixie>
interesting
20:37
<Hixie>
but still, whether it's the this of the load event or not
20:37
<Hixie>
i don't understand how foo = {}; w(this.foo === foo); can print false
20:38
<Hixie>
surely "foo" is equivalent to "this.foo"
20:38
<Hixie>
in that code
20:38
<smaug____>
why ?
20:38
<smaug____>
hmm
20:38
<Hixie>
oh wait...
20:38
<Hixie>
this is that thing the ES group refuses to spec
20:38
<Hixie>
isn't it
20:38
<smaug____>
foo would be set to the current global, no?
20:38
<Hixie>
that the global scope doesn't equal the global
20:38
<Hixie>
er
20:38
<Hixie>
that the global scope doesn't equal the this
20:39
<jgraham>
It depends if this is a pointer to the window or the global scope
20:39
<smaug____>
in load event listener 'this is pointer to the window
20:40
<Hixie>
riiiight
20:40
<Hixie>
"If the script's global object is a Window object, then in JavaScript, the ThisBinding of the global execution context for this script must be the Window object's WindowProxy object, rather than the global object."
20:40
<Hixie>
that's the problem
20:40
<Hixie>
ok
20:41
<Hixie>
jgraham: ok so i agree that you are calling setTimeout on the old Window object. The timeout still runs, because it's callback is associated with the Document, which is still active.
20:41
<Hixie>
jgraham: and it always alerts true, because "a" and "window" are both the WindowProxy
20:41
<jgraham>
And when it runs, what does it get as the this object, or the window object?
20:41
<Hixie>
s/it's/its/
20:42
<Hixie>
that's defined in the setTimeout() section, it gets the WindowProxy as its "this"
20:43
<Hixie>
and as its global scope it gets the original Window object
20:43
<jgraham>
That makes sense I guess
20:43
<jgraham>
Yes, that has to be true
20:43
<jgraham>
Changing the ES scope chain under the script would be unusually evil
20:44
<jgraham>
even for the web
20:44
<Hixie>
so http://software.hixie.ch/utilities/js/live-dom-viewer/?saved=1626 should print false, and true
20:44
<Hixie>
so webkit is buggy
20:44
<Hixie>
(as you said above)
20:45
<jgraham>
Great, that makes more sense now :)
20:45
<jgraham>
Thanks!
20:45
<smaug____>
(webkit doesn't really do anything with document.open. no new window, no session history etc)
20:48
<jgraham>
Time to listen to some Jeeves and Wooster on the radio, I think
20:48
<jgraham>
Oh except the next episode is not up yet
20:48
<jgraham>
tears before bedtime
21:02
<zewt>
down with hard to read fixed-width-font tracker
21:02
<Hixie>
tracker...?
21:03
<zewt>
bug tracker?
21:07
<Hixie>
bugzilla?
21:07
<Hixie>
what's hard to read about bugzilla?
21:08
Hixie
uses fixed width text for pretty much everything... irc, email, emacs, bugs...
21:37
<jamesr>
i wonder if there's research on the relative reading speed of fixed vs propotional fonts for programmers who stare at fixed-width fonts all day
21:37
<jamesr>
maybe it's different from genpop
21:38
<Hixie>
heh
21:38
<Hixie>
maybe
21:57
<yuhong>
Do you know win32k user-mode callbacks poses similar problems to DOM mutation events?
21:57
<yuhong>
http://www.mista.nu/research/mandt-win32k-paper.pdf
22:12
<zewt>
can we hang up apple in the Worst Web Page Hall of Fame
22:13
<zewt>
download links that only work with javascript, which 403 if you try to copy the underlying redirect without carefully copying over cookies
22:13
<zewt>
which means I can't download xcode, since I can only download large files with wget on a remote server
22:14
<zewt>
time to futz with setting cookie headers manually
23:11
<ojan>
ok...i give up...who do i contact at w3c about delayed mail delivery?
23:11
<ojan>
tried finding a contact on w3.org and giving up on that
23:12
<ojan>
a number of us have been getting delays of days on www-style and public-webapps mail for the past few weeks
23:12
<ojan>
i figure someone here can point me at the right people
23:12
<ojan>
shepazu: ^^^ maybe you know?
23:37
<heycam>
Hixie, if you have a nullable callback type? no, I don't have any special term that means "call this if it's not null".
23:38
<TabAtkins_>
heycam: That's called Maybe.
23:39
<heycam>
Hey I just met you, and this is crazy, but I'm a callback, so call me Maybe?
23:40
<TabAtkins_>
That's such a weird meme.
23:41
<heycam>
take lines from popular song => change them to something slightly funny that rhymes with the original
23:50
<zewt>
bleh if i can't find a way to disable address bar completion completely in chrome, it's time to stop using it ... way too disruptive