16:40 tcaud2 The characters, I mean.
16:40 bz It's all really noisy, but also not obviously better.
16:40 bz I guess we can try making the change and pushing to tinderbox....
16:41 terrence bz: so if you look at the dromaeo-css mac 10.6 charts....
16:41 tcaud2 The problem is that getImageData is throwing a security error.
16:41 bz tcaud2: did you draw a cross-origin image into the canvas?
16:41 *** luke quit (Quit: luke)
16:41 terrence bz: there was a definate slowdown, but if you zoom out to 30 days... it's pretty clear that there was something that kicked it up 2 weeks ago and exact rooting just bumped it back down to where it was before
16:41 *** jeffdyer joined #jsapi
16:41 bz terrence: hmm
16:42 tcaud2 I'm not sure. See it's an addon, so maybe that's a different origin than "file//"?
16:42 tcaud2 Though I'm not sure why.
16:42 bz yes
16:42 terrence bz: so it's not really clear to me that this is even a real issue
16:42 bz it is
16:42 bz terrence: That's fair
16:42 tcaud2 why?
16:42 bz terrence: So one option is to declare ourselves done for now
16:42 bz tcaud2: um.... in what sense why? Addons aren't file/; they have a lot more privileges than that
16:43 terrence wonders why he closed that chart tab
16:43 bz On the other hand, I'd expect this to be a subsumes check....
16:43 terrence bz: let me go open that up again and I'll let you make the call
16:43 bz terrence: And then work on making it so we don't even call ::get here
16:43 bz terrence: trying to see whether I can share roots in the codegen in a safe way, though
16:44 tcaud2 Right, so why don't addons encompass file/ as well?
16:44 terrence bz: yeah, this may just be too ugly to live even if it did get us a perf win
16:44 terrence bz: but it seems like it may not even do that
16:45 tcaud2 All it really does is create a lot of unnecessary trips back and forth from main module to page mod, and that even requires a middle man script.
16:45 terrence bz: (url removed)
16:45 tcaud2 It's made a 1 minute job into a 2 hour job, iow.
16:45 *** sunfish joined #jsapi
16:45 bz tcaud2: We're doing a subsumes check
16:46 bz tcaud2: so drawing a file/ image into a system-principal canvas should work
16:46 bz tcaud2: and allow you to getImageData
16:46 bz tcaud2: So where is the addon in question getting its canvas?
16:46 *** turova quit (Ping timeout)
16:47 tcaud2 the canvas is made in the page level code, in a resources module.
16:47 bz "made" how?
16:47 bz What is the ownerDocument of the <canvas> element?
16:47 tcaud2 (url removed)
16:47 *** turova joined #jsapi
16:47 *** Ms2ger quit (Quit: nn)
16:47 bz So "document" there is some random web page?
16:47 tcaud2 ownerDocument?
16:48 bz If so, then the canvas has the security permissions of that web page
16:48 bz and then if you paint file/ stuff to it it gets tainted
16:48 bz and you can no longer extract pixel data from it
16:48 tcaud2 No, it's an html file inside the xpi.
16:48 bz (if you could, then the web page could do it too)
16:48 bz OK
16:48 bz How is this html file being loaded?
16:48 bz That is, what is the URI used to load teh HTML file?
16:49 bz Or most simply....
16:49 tcaud2 The main module calls it when the icon is clicked.
16:49 bz That tells me nothing about the security situation
16:49 bz What is document.URI at that createElement callsite?
16:49 bz terrence: hmm
16:49 bz terrence: non-10.6 doesn't show that earlier jump?
16:49 *** RyanVM|sheriffduty is now known as RyanVM
16:49 bz is more interested in Windows numbers than Mac 10.6, in all honesty
16:50 *** KWierso is now known as KWierso|sheriffduty
16:50 terrence fedora x64 is not stable enough to tell
16:50 terrence bz: that would have been the sensible one to check
16:50 terrence goes to check
16:50 tcaud2 (url removed)
16:50 *** RyanVM left #jsapi
16:50 bz tcaud2: I have no idea what the addon sdk is deciding to do to you, sorry
16:51 bz tcaud2: what I'm interested in is document.URI
16:51 tcaud2 resource/jid0-fdh1ciwasj26bbesaogwlcvhv0k-at-jetpack/gamestar-gcs/data/GamestarEditor.html
16:51 bz tcaud2: and better yet, document.nodePrincipal.URI
16:51 bz ah
16:51 bz "resource//" means it's not privileged
16:51 terrence bz: maybe? (url removed)
16:51 bz and not same-origin with "file/"
16:51 terrence bz: it's much less of a sharp drop
16:51 tcaud2 how do I privilege it?
16:51 bz terrence: yeah... but has the same rise back on the 9th
16:52 bz tcaud2: normally, by loading from a chrome/ URI
16:52 terrence bz: yup! need to find out what that was
16:52 bz tcaud2: when using the SDK, I have no clue. Worth asking somewhere where the SDK people hang out (which isn't this channel)
16:53 *** sunfish quit (Ping timeout)
16:54 terrence bz: ah, the first commit with the faster time on 10.6, where there is a super-sharp change is: (url removed)
16:54 terrence bz: which actually makes some sense
16:54 terrence so, till++
16:54 bz terrence: seems plausible, yeah..
16:54 tcaud2 That's the thing you see, nobody knows.
16:55 tcaud2 I just asked jetpack about it and they said they didn't know.
16:55 terrence wonders if exact rooting just happens to exactly counterbalance this change or if it accidentally disabled the effect somehow
16:56 *** smaug quit (Ping timeout)
16:56 *** luke joined #jsapi
16:56 *** brambles joined #jsapi
16:56 *** cpeterson quit (Input/output error)
16:56 *** ehsan quit (Input/output error)
16:57 *** luke quit (Quit: luke)
16:57 *** ehsan joined #jsapi
16:57 *** geo quit (Input/output error)
16:58 *** geo joined #jsapi
16:59 terrence okay, so exact rooting could /only/ possibly lead to scripts getting lazified earlier
17:00 *** luke joined #jsapi
17:00 terrence so could the conservative scanner have been keeping some scripts live and unlazified for longer and thus getting performance boost?
17:01 terrence but then why was the patch such a performance boost at all?
17:01 *** cpeterson joined #jsapi
17:01 terrence would this be reflected in areweslimyet numbers, maybe?
17:01 *** smaug joined #jsapi
17:02 *** mikeh quit (Ping timeout)
17:02 *** laurel is now known as livia
17:03 *** ehsan quit (Input/output error)
17:03 terrence so looks like exact rooting saves 10MiB on startup memory usage; nice!
17:04 *** jrmuizel quit (Connection reset by peer)
17:04 *** jrmuizel joined #jsapi
17:04 tcaud2 OK now I asked jetpack how to privilege the code so I don't have to go back to the main module for this thing.
17:04 terrence but the other graphs look flat... or at least the variance is too high to put a finger on lazifation
17:04 *** smaug quit (Ping timeout)
17:04 *** abstractj joined #jsapi
17:05 tcaud2 They said they didn't know.
17:05 *** jrmuizel quit (Client exited)
17:05 tcaud2 Page modding is actually very tricky when it comes to file access.
17:05 tcaud2 miss the days when you could just call the file api and be done with it.
17:05 tcaud2 I'd complain but nobody will listen.
17:05 tcaud2 I guess I just gotta tread water until people arrive at mozilla who listen. And at the rate Chrome is overtaking Firefox... that wont' be much longer, I'd think... or maybe Firefox will just keep sliding back to what it was in mozilla suite days...
17:06 tcaud2 and everyone will just use Chrome or IE.
17:06 *** mikeh joined #jsapi
17:06 tcaud2 Which'll be a tragedy because neither of them have user's interests at heart. It's clear Moz has user interests at heart, in that it lets you do stuff IE and chrome don't, but you make it so hard on devs that nobody knows how to take advantage of it.
17:08 bz terrence: so this is annoying
17:08 bz terrence: I can nix one root easily
17:08 bz terrence: nixing the second one is really hard as long as JSAutoCompartment can gc.
17:08 terrence bz: I thought we fixed that!
17:08 *** jrmuizel joined #jsapi
17:08 bz oh?
17:08 bz mrgiggles, can JSAutoCompartment gc?
17:08 mrgiggles bz: No, nothing matching |JSAutoCompartment| can GC. Matches are: void JSAutoCompartment::~JSAutoCompartment(int32)
17:08 mrgiggles void JSAutoCompartment::JSAutoCompartment(JSContext*, JSScript*)
17:08 mrgiggles void JSAutoCompartment::JSAutoCompartment(JSContext*, JSObject*)
17:08 terrence bz: yeah, I thought it was lazy now
17:08 bz aha
17:08 bz So then we can just back out bug (url removed)
17:08 firebot Bug 950991 nor, --, mozilla29, bzbarsky, RESO FIXED, Root on-stack Value and JSObject* return values in bindings
17:09 bz And assume that if it becomes an issue the analysis will tell us
17:09 terrence bz: ah, nice!
17:09 jwalden naveed: are you poking the big huge table on the work week thing manually/periodically or so? I am in a slight limbo state between no and yes, either that or I'm at yes but haven't gotten the final flight confirmation yet :-\
17:10 bz terrence: at this point I have a patch that is even safe
17:10 terrence bz: fast work!
17:10 bz terrence: in that it obviously guarantees non-overlapping lifetimes
17:11 till terrence: I don't see how the relazification stuff could speed anything up. Except for very specific cases of memory pressure maybe? If anything, I'd expect slight regressions, though I didn't see any
17:11 terrence till: there's a definite boost to dromaeo-css across the board
17:11 terrence till: of course I didn't expect exact rooting to speed up anything either
17:12 terrence till: it's basically impossible to predict with these sorts of changes
17:12 naveed jwalden : pseudo automagically of course
17:12 till terrence: interesting. I'm not complaining or anything, but I also won't pretend to understand it
17:12 terrence till: no one does
17:12 naveed jwalden : I am scraping the registration website and pushing from there via python :|
17:12 *** asuk joined #jsapi
17:12 naveed but it is when i feel like it
17:13 *** asuk quit (Quit: Textual IRC Client: (url removed))
17:14 fitzgen here
17:14 shu fitzgen: so you can ask like
17:14 shu mrgiggles: can Atomize gc?
17:14 mrgiggles shu: No, |JSAtom* js::Atomize(js::ExclusiveContext*, int8*, uint64, uint32)| cannot GC
17:15 fitzgen shu: very nice
17:15 fitzgen mrgiggles: much obliged, sir
17:15 *** philor|away is now known as philor
17:16 *** abstractj quit (Quit: Computer has gone to sleep.)
17:16 tcaud2 Am I right in thinking that Jetpack is being hamstrung by your end?
17:17 *** sunfish joined #jsapi
17:18 shu efaust: ping
17:18 shu efaust: ready to talk when you are
17:19 *** mccr8 quit (Quit: computer sleep)
17:19 *** mccr8 joined #jsapi
17:20 tcaud2 well I'm gone. You know you've only got a few more percentage points to shed before the bloggers begin calling for your heads.
17:20 tcaud2 This org has seriously bad leadership given the intelligence of the people backing it.
17:21 terrence tcaud2: I'm not really clear, what is your problem?
17:22 tcaud2 Firefox, now with addons, is the closest thing.
17:22 jwalden that's what OS.File was supposed to be, no? or is this just in SpiderMonkey itself?
17:22 terrence tcaud2: well, it probably exists... maybe the person who knows is in europe and thus asleep right now?
17:22 jwalden or do you mean as some sort of web API to access the file system
17:22 shu jwalden: are you downstairs? do you see efaust anywhere?
17:22 tcaud2 No, it was your project, called XUL runner, and then you killed it.
17:22 efaust shu: heyyy
17:22 terrence tcaud2: I think it's actually spelled firefox -app now, right?
17:22 efaust I'm in foxhole
17:22 jwalden shu: I am sitting in arm's reach of him in foxhole
17:23 shu efaust: oh hi, okay, i'll be down in a sec
17:23 shu jwalden: ty
17:23 *** mconley quit (Input/output error)
17:23 terrence tcaud2: I'm pretty sure it's the same code as xulrunner
17:23 terrence tcaud2: just moved inside firefox so that it gets the same testing as the rest of the platform
17:23 *** piscisaureus joined #jsapi
17:24 *** luke quit (Quit: luke)
17:24 efaust shu: awesome.
17:24 *** Yves left #jsapi
17:25 *** sunfish quit (Ping timeout)
17:25 till terrence: it is, pretty much
17:26 tcaud2 I just googled it and found "App Manager".
17:26 tcaud2 What is that?
17:26 till tcaud2: something entirely different: a devtool for managing apps for FFOS
17:26 tcaud2 Can those apps access the local file system?
17:27 till tcaud2: this is the blog entry for you: (url removed)
17:27 tcaud2 Also firefox -app won't load on android, will it?
17:27 till tcaud2: and for your addons+file loading thing - what's wrong with (url removed) ?
17:28 terrence tcaud2: I'm not sure... I'm not sure how well xul was ever supported there
17:28 terrence tcaud2: I'd expect firefox -app to work better than xulrunner, although you might have to use webcomponents instead of xul
17:29 *** abstractj joined #jsapi
17:29 tcaud2 If it can't access local files, it's useless.
17:29 mjrosenb terrence: so, unrelate to mozilla, I did a bunch of project euler problems this weekend. I think I'm going to switch from python to rust though.
17:29 terrence tcaud2: yeah, agreed... I'd think it'd have to
17:29 terrence mjrosenb: makes sense... how are you getting on with python after having used it a bit more?
17:30 tcaud2 My beef with addon-sdk is that it is extremely cumbersome to access local files with.
17:30 terrence tcaud2: are you sure OS.File doesn't work there?
17:30 tcaud2 the only way is by posting messages and that's haphazard.
17:30 tcaud2 development times become hideous.
17:31 terrence tcaud2: hurm, that does seem pretty bad
17:31 *** billm quit (Quit: Leaving)
17:31 terrence tcaud2: I know I saw a bug a couple years ago about implementing OS.File... I just assumed that would be available and make this all nice
17:31 mjrosenb terrence: I'm pretty good at using it for numerical calculations
17:31 tcaud2 OS.File? what's that for?
17:32 terrence tcaud2: of course, I haven't used the sdk in at least 4 years, so I'm probably the wrong person to ask
17:32 mjrosenb terrence: there was one that required a whole bunch of backtracking, and I ended up going back to haskell.
17:32 tcaud2 All I know is what's in the SDK docs.
17:32 terrence tcaud2: It's for fast and easy local file access
17:32 tcaud2 even that didn't have the solution #jetpack helped me cobble together.
17:32 tcaud2 That was like 40 hours of experimentation.
17:32 *** billm joined #jsapi
17:33 tcaud2 what does it work with?
17:33 terrence tcaud2: maybe try this? (url removed)
17:34 tcaud2 And I should make the point, if I have to go to module-level to work with it, it's no better than the rest. Because it's the interface between modules that gives me fits.
17:34 terrence tcaud2: I assumed it would be available to extensions and apps, but I'm not really familiar with this side of the platform, sorry
17:35 till tcaud2: this isn't the arbitrary decision made by stupid management you make it out to be. If you need file access in a page mod, message passing is the only way to go for technical reasons
17:35 tcaud2 that's for priveleged code. Resource files aren't privileged. Which is the root of the problem.
17:35 terrence tcaud2: #jsapi is mostly dealing with the C++ JSAPI platform bits
17:35 tcaud2 Web pages aren't privileged.
17:36 tcaud2 technical reasons that you designed.
17:36 till yes, with good reasons
17:36 terrence tcaud2: the asynchrony of modern processor architectures isn't really our fault
17:36 *** cpeterso_ joined #jsapi
17:36 till tcaud2: it's in preparation for moving web pages into a separate process, and that io will keep on happening in the main process, so you need async communication
17:37 *** victorporof quit (Quit: victorporof)
17:37 *** cpeterson quit (Ping timeout)
17:38 till tcaud2: I understand you don't like it, but waltzing in here and saying that mozilla as an organisation is stupid and doomed because of this being a stupid decision is not only wrong, it's also pretty rude
17:38 tcaud2 "it's in preparation"
17:38 *** abstractj quit (Quit: Computer has gone to sleep.)
17:38 tcaud2 That's fine.
17:38 till well, would you like your (and everyone else's) addons to break once that switch happens?
17:38 tcaud2 I don't care. And I don't buy your excuse, till. This is your agenda that you are pushing on me.
17:38 till this is not an agenda
17:39 terrence tcaud2: multicore is physics, not an agenda
17:39 till it's a technical requirement for something that everyone agrees is a good decision, and that we're really late to implementing precisely because of the many addons we have that do synchronous communication between chrome and content
17:40 terrence tcaud2: nobody /likes/ concurrency... it's just a property of the universe we live in that it is necessary
17:40 till tcaud2: in fact, the number of people predicting our impending doom because we haven't yet implemented that vastly outnumber you
17:41 terrence tcaud2: we can't really design our way out of reality
17:41 tcaud2 so basically, development with will continue to be a bitch with jetpack sdk.
17:41 terrence tcaud2: it's just a new way of thinking... it's not so bad once you get used to it
17:42 till tcaud2: also, check out task.js
17:42 till tcaud2: (url removed)
17:42 terrence tcaud2: look at the success of node.js to see how little it really matters
17:42 *** geo quit (Input/output error)
17:42 till that makes the asynchrony much more bearable
17:42 tcaud2 till I'm one of the few users you have left. 16% of the population... do you have any idea why they've stuck with you this far?
17:43 till tcaud2: ok. This is a bit too much entitlement for my taste, to be honest, so I'm out
17:43 *** brendan quit (Quit: brendan)
17:43 terrence tcaud2: accept our help or don't, but we don't really go for trolling here
17:43 tcaud2 I'll never be good at that way of thinking, nor will many others.
17:43 tcaud2 You're creating a new way to sort programmers.
17:43 tcaud2 that's all this async crap is.
17:44 terrence refuses to take the blame for reality's failings
17:44 *** roc quit (Ping timeout)
17:45 till tcaud2: should you even remotely be interested in an actual explanation for these changes, then this is a very good read: (url removed)
17:45 *** dougc joined #jsapi
17:46 tcaud2 You expect me to believe that an html file can't be given file access privileges because of multi-core CPUs.
17:46 tcaud2 I know all about that stuff. You aren't pulling the wool over my eyes.
17:47 *** bholley quit (Ping timeout)
17:47 *** philor is now known as philor|away
17:47 *** jrmuizel quit (Client exited)
17:47 *** bholley joined #jsapi
17:48 *** bholley quit (Quit: bholley)
17:48 till tcaud2: ok, I'll bite. What's your theory on why we're *really* doing this?
17:50 jdm gets the popcorn
17:50 *** brendan joined #jsapi
17:50 +++ ChanServ has given op to brendan
17:50 *** terrence quit (Ping timeout)
17:50 *** terrence joined #jsapi
17:51 *** gwty quit (Ping timeout)
17:51 *** piscisaureus quit (Ping timeout)
17:51 tcaud2 For one thing, it seems like you don't want browsers to be used for file access.
17:51 tcaud2 You think it's fundamentally insecure.
17:51 jwalden "pretty dangerous", yeah
17:52 tcaud2 No more dangerous than casual shopping at Target...
17:52 *** dherman quit (Quit: dherman)
17:52 tcaud2 but I digress.
17:52 *** bholley joined #jsapi
17:52 naveed sstangl : ping
17:52 tcaud2 Still, Mozilla is the organization of freedom.
17:53 tcaud2 You want people watching over your shoulder, you go to MS or Google (or Apple).
17:53 *** piscisaureus joined #jsapi
17:53 jwalden "freedom" is not a useful concept, you have to say what sorts of freedoms are desired
17:53 till ok, that would be a possible reason. In that case I don't understand why we're just making it a bit more cumbersome, instead of outright impossible
17:53 jwalden I don't think the concept inherently, intrinisically, must include file system access
17:53 *** jdm quit (Input/output error)
17:54 *** jdm joined #jsapi
17:54 *** turova quit (Ping timeout)
17:54 sstangl naveed: pong
17:55 tcaud2 Well for sake of platform independence, you need to have a means of accessing files. Although I'm not sure you even see platform independence as a good thing.
17:55 tcaud2 The whole purpose of me making that game maker in Firefox was so that I'd know it would run fine a decade, or two decades from now.
17:56 tcaud2 On the other hand, I can see the PoV that it's not bad, for economic reasons, to have software become incompatible every five years.
17:57 till I don't even know how to respond to that
17:57 tcaud2 creates a lot of work opportunities.
17:58 tcaud2 with little intellectual overhead. Kinda like remaking Final Fantasy for every new system that comes out: no intellectual overhead, just give someone the job and do it.
17:58 tcaud2 Shovel-ready, as they say.
17:58 *** ehsan joined #jsapi
17:58 evilpie dang what is going on
17:59 till and actually, I won't. As terrence said, take our help or don't, I won't feed your trolling any further
17:59 *** billm quit (Ping timeout)
17:59 *** saml quit (Quit: Leaving)
17:59 till evilpie: nothing to see, move right along
17:59 tcaud2 Microsoft/Google dominance certainly creates that environment. And Java well, who knows what will happen with it.
17:59 tcaud2 Well it's just so simply to just say in code that "if X file is in Y XPI, give it specialpowers".
18:00 tcaud2 simple
18:00 *** billm joined #jsapi
18:01 tcaud2 I mean I'd fork it myself, probably with the help of several others who have expressed interest in the concept (the maker of AsYouWish in particular, who you've batted off deftly enough)
18:01 *** tilgovi joined #jsapi
18:02 tcaud2 but is that the right path...? Maybe it is...
18:02 evilpie till: btw are you going to the german meetup next week?