IRC Log Viewer » #firebreath » 2010-09-13

IRC Nick Time (GMT-7) Message
amackera 01:09 taxilian_away: not a bad idea
taxilian 10:09 man, this IE8 regression is weird
taxilian 11:09 annnd…. fixed
issue 62
now to tackle 63
nitrogenycs 11:09 heyho :)
taxilian 12:09 hey, nitro
you saw I fixed your issue?
nitrogenycs 12:09 :) I already replied
Thanks very much
taxilian 12:09 ahh, yes. I see it
yeah, I wouldn't have thought it would be the utf8 conversion stuff either
except that that's all that has changed since it was last working
and now I'm trying to track down the issue with arrays and Safari
except that it's not just arrays; it's events as well
the really fun thing? it works when I attach a debugger
kalev 12:09 a heisenbug? :)
taxilian 12:09 hehe. never heard that term before
kalev 12:09 from wikipedia: "A heisenbug (named after the Heisenberg Uncertainty Principle) is a computer bug that disappears or alters its characteristics when an attempt is made to study it."
taxilian 12:09 lol
yeah, that's what it's looking like so far
except that it is still there as long as I haven't attached a debugger
oh, snap
I've heard of this
but I didn't believe it
it's crashing in asyncthreadcall
can anyone cofirm to me that events and arrays are working on Chrome?
hmm. they seem to be for me
so it's just Safari
kalev 12:09 Safari is also available for Windows, if it's easier to debug over there
taxilian 12:09 would definitely be interesting to see if the issue shows up there as well
Safari and IE are the worst to debug; the other two I can always build it from source and step through the browser code if I need to
hmm. but facebook reported seeing this problem, and I had never seen it, so I didn't think it would be an issue
nitrogenycs 12:09 I also tried to find the difference between the working and non-working versions, but there were 300 changesets between my points :)
Heisenbugs are fun, I had a few of those already
I am using Safari on windows
it works fine
taxilian 12:09 yeah; since I made those 300 changesets, I knew where to start looking =]
I have to admit, this IRC room is more useful than I initially anticipated
nitrogenycs 12:09 I am on freenode most of the time anyway, but I found the link to the channel here on your blog just a few moments ago
taxilian 12:09 yeah, it's on the main firebreath page, and I've mentioned it a few times on the mailing list
but most people skim so much they miss it anyway
I need Anson
why is he not here when I need him?
it's like he thinks there are other things in life other than sitting around in this channel to help me
nitrogenycs 12:09 :) yeah, like me. Sometimes I am blind.
:) bad anson
was there a point where it worked?
maybe you can trace the differences once again
taxilian 12:09 I don't have a confirmed point where this worked, unfortunately
I seem to remember someone reporting problems with it once before
so maybe it hasn't ever consistently worked
it acts like a threading issue, but we aren't creating a new thread
it may very possibly be a bug in Safari
which, in case you were wondering, would be a Very Bad Thing (tm)
kalev 12:09 a great tool for debugging memory problems is valgrind
I wonder if it works on mac
taxilian 12:09 it does
it seems to be significantly better on 32 bit
than on 64 bit
probably has to do with the out-of-process bit
need to figure this one out
taxilian 12:09 hmm. I'm about out of ideas for this one
may have to come back to it a bit later
well, class starts in a few minutes anyway, so I'm off
nitrogenycs 12:09 bb
amackera 13:09 hey all
taxilian 13:09 amackera!
just the person I need
fix my problem for me please
amackera 13:09 haha
taxilian 13:09 so
I'm getting crashes when I try to call NPN_PluginThreadAsyncCall
on Safari
and the problem where arrays don't work?
they work if I have the debugger attached
amackera 13:09 whoa
that seems strange
taxilian 13:09 oh, and things work better in 32 bit mode
by a lot
in fact, it seems to work perfectly now
I did have to do a quick fix for the onload function
amackera 13:09 So, wait, what's broken?
taxilian 13:09 check this out:
turns out that I was in 32 bit mode when starting from xcode
fixed that
now I get this
whenever it tries to call PluginThreadAsyncCal
amackera 13:09 hmm
taxilian 13:09 we may need to implement our own custom PluginThreadAsyncCall function
however, it might only need to work on 64 bit Safari
since it seems to work fine in 32 bit more
amackera 13:09 I wonder why it breaks in 64 bit mode..
taxilian 13:09 it seems to be a browser bug
can't figure out what else it could be
unless somehow our struct is messed up in 64 bit?
kalev 13:09 is the plugin 32 bit or 64 bit? Safari out-of-proccess wrapper lets you run 32 bit plugins and have safari run in 64 bit mode.
taxilian 13:09 pretty sure in this case it's running the plugin in 64 bit
but not 100% certain
hmm. the fun bit is that I can't attach to the safari process that I need, since it's an OOP plugin
any ideas?
amackera 13:09 put a sleep(10000) call somewhere in the initialization of your plugin then use xcode to attach to the WebKitPluginHost?
or is that just for 32bit
i'm not really going to have much of a chance to look at this until later today
i'll be on later
taxilian 15:09 kalev, jack_thompson: either of you guys know of a good (preferably part of boost) queue type that is threadsafe?
kalev 15:09 I've never used it, but boost appears to have a message queue class:
taxilian 15:09 yeah, I looked at that; it seems to be interprocess
probably not what we need =]
oh, well, I found a simple one
I had to (finally) add the boost thread classes in in order to use it
which means an extra project
and someone who knows boost better than I may have to tweak the cmake so that USE_SYSTEM_BOOST or whatever still works
but shouldn't be a big deal
taxilian 18:09 awesome. So, having written my own implementation of plugingthreadasynccall, I now know that the real problem (not that that wasn't a real problem) with the array access stuff is that Safari doesn't implement the NPAPI correctly
that was one heck of a commit
now I just need to test it on everything
kalev: are you avail for a quick linux test?