IRC Log Viewer » #firebreath » 2010-10-07

IRC Nick Time (GMT-7) Message
taxilian 09:10 we're actually up to 23 responses in the survey; that's not bad
and they keep trickling in
kalev 09:10 oh, that reminds me I should do that too
taxilian 09:10 hehe
thanks =]
we've come up with some ideas on how we could make at least more of FireBreath be a library
though I don't think it would be useful as a shared library except on linux… *maybe* mac os
hmm. although; well, I'll think on it
kalev 09:10 Yeah, I am pretty sure everybody on Mac and Windows will want to compile it as a static library
taxilian 09:10 there would be some real benefit to being able to have multiple plugins that shared the same core code
kalev 09:10 But on Linux if we can get Firebreath's shared library into some distros, then some people might want to use that instead
taxilian 09:10 and scriptingcore and plugin core are all generic;
true; of course, with it being a c++ library, you would have to develop against the exact same version of the library to make it useful
even changes in the order of something in the header files would break the shared lib
kalev 09:10 npapi entry points are already in plugin projects, but I have no idea what is missing for ActiveX
taxilian 09:10 there was a reason that NPAPI stuff is compiled on a per-project basis; I don't remember what that reason was off-hand =]
kalev 09:10 I don't care enough of that to step up and do the work myself, but having firebreath as a proper library is something I've always thought is missing
taxilian 09:10 I do know on ActiveX what it was, and I have some ideas how I can maybe improve it so that it doesn't have to be project specific
kalev 09:10 It had something to do with ActiveX GUIDs, right?
taxilian 09:10 it will never be completely a "proper library", because there is just too much that has to be configured; but we can improve it
that's the main part
amackera 10:10 hey everyone
kalev 10:10 hey amackera
amackera 10:10 I can't believe i forgot to load my windowless stuff into a clone
I'm doing it now
bonus feature: it actually works! :D
I had to change NpapiPluginWin.cpp a bit though, so code review should be done before merging the changes (that's a serious business file)
some caveats: windowless plugins seem to be seriously busted on Firefox 3.6, though they work on Firefox 4 beta no problem
Chrome seems to give us a weird HDC, not a standard one
I haven't tested on Safari on windows yet
amackera 10:10 Windowless:
taxilian 11:10 amackera: cool! =]
I'll probably have to look at it next week, though; I've used up all my FB time this week
amackera 11:10 ok cool
hopefully by then i'll have figured out some of the craziness from chrome and firefox 3.6
taxilian 11:10 that would be awesome =] actually, just the fact you've got it where it is is awesome =]
you saw my note about the cmake patch?
amackera 11:10 i did, nice work!
taxilian 11:10 this is weird… it's like my internet connection is half working
I can use IM of all kinds, pandora works
but no web
amackera 11:10 dns server down?
try doing to (google canada)
taxilian 11:10 no, dns is resolving
amackera 11:10 weird
taxilian 11:10 yeah
maybe they have a http transparent proxy that is down
they == university
amackera 11:10 wow, google code search consistently crashes firefox
but i can't use chrome since i need to *test* in chrome! cruel life!
taxilian 11:10 lol
amackera 11:10 have you ever tried rerunning the prep script while the solution is open in visual studio?
VS2010 goes berserk
taxilian 11:10 well
when it works right
a macro runs to let you tell VS2010 to reload all the projects
but it doesn't always work right
amackera 12:10 I'm looking through the chrome code, and damn, it's not bad
pretty clean, well commented
it would be nice if chome had more extensive architecture documentation, but the code is damn fine
taxilian 12:10 hehe
wish we could say that about mozilla code...
taxilian 13:10 so I write the patch, I write a test for the patch, I upload it all…
and the first person to argue with me about the patch doesn't even read the test (which he requested) before telling me I should do it a different way
which essentially comes out to be the way I did it
ahh, well
hopefully that's cleared up
it would be really cool if it could somehow make it into 2.8.3, but that's already in RC2 or RC3, so my bet is they won't let it in that fast
amackera 13:10 i think you handled it nicely
instead of slapping down some wtf-fu you just explained it calmly
= win
so what's the deal with pepper? is it sort of the next-gen npapi?
chrome has a lot of code for it, seems bizarre since pepper seems to be relatively unused
amackera 13:10 I totally just figured out why chrome blows up on windowless plugins!
they give you an HDC in the WM_PAINT npapi event, and the one provided in SetWindow is meaningless
this is totally a direct contradiction to the NPAPI documentation
I think it's a constraint of their drawing stack, but at least it should be documented somewhere
taxilian 14:10 I don't know; I haven't read up on pepper at all
amackera: great! then we should be able to account for it =]
amackera 14:10 We should have a wiki page called "All the effed up things browsers do, the definitive list"
taxilian 14:10 lol
that would be awesome :-P
amackera 14:10 it's kind of bad that chrome does this, since i need to set up an OGL context on the HDC
if it's changing every frame that's probably pretty bad for performance
it might not change though, got to test a bit further
nice it looks like it's constant after the first few frames
do you think it's smart to send a WindowAttached event every time a new HDC is delivered?
otherwise the plugin doesn't get notified that it's drawable has changed... although it's different than a new window being attached
hmm i'll leave it for now and check for different hdc plugin-side
taxilian 14:10 hmm
I would probably not do a new windowattached for windowless
and I would not return an HWND
I would put the DC in the draw event
so a windowless pluginwindow would work a little differently in that you would only be able to draw when it is called
so I have a minimal web server building as a "firebreath library"
haven't actually got it doing anything yet :-P but it probably works, since it's been working in another plugin
taxilian 15:10 amackera: a note for future work: always commit before you merge from another branch =] that way the changeset is seperate and I can review the changes specific to your change myself =]
amackera 15:10 Ahh ok sorry
I know for next time
taxilian, how does the firebreath as a library work?
taxilian 15:10 it dosen't currently
amackera 15:10 oh heh
taxilian 15:10 we've been talking about trying to make that posible
at least, more possible than currently
amackera 15:10 Ehh... seems a little bizarre to me...
taxilian 15:10 I'm not 100% convinced that it is possible to make it so that it really works well
wait a sec
I think you're confusing something I said
"firebreath library" is not the same as "firebreath as a library"
amackera 15:10 oh, hah yes i confused that
what did you mean?
taxilian 15:10 a "firebreath library" as I used it earlier is something like this:
generally placed in the libs dir, though I plan to have multiple search dirs possible
has a CMakeLists.txt
and is easy to load and use with FireBreath
to enable log4cplus, for example, you can just put add_firebreath_library(log4cplus) in your PluginConfig.cmake file
similar to how boost libraries are set up
amackera 15:10 ah i see
taxilian 15:10 a second one I'm working on is HttpService
hypothetically, drawing libraries could be added the same way
amackera 15:10 awesome :D
taxilian 15:10 they could also be things that are incomplete but assist in including external things
like openssl, for example
if you try to include it and don't have the library, it presents you with instructions on how to get the dependancy
we really need to find a good drawing library to use
and figure out how to make it work with windowless plugins
lol. maybe we should support JUCE as a drawing abstraction… :-P
kalev 15:10 maybe cairo?
taxilian 15:10 kalev: I've heard good things about that one; do you have any experience with it?
kalev 15:10 no experience with it, but I've also heard good things about cairo
plus there are also C++ bindings available:
amackera 15:10 well the good news is that OpenGL does work with windowlessp lugins
i've got it rendering in chrome & firefox 4
taxilian 15:10 amackera: awesome. I take it the bad news is that it doesn't work on FF < 4?
or IE?
amackera 15:10 firefox 3 seems to be a bit of an issue, it spams us with new HDCs
i haven't even tried to get it working in IE
taxilian 15:10 amackera: can you always use the HDC provided with the draw event?
and ignore the setwindow calls?
amackera 15:10 yes i'm looking into that right now in face
in fact*
taxilian 15:10 awesome. I'm actually really excited for you to figure that out
I've been wanting to figure out how to do that for about 2 years
amackera 15:10 haha awesome :)
taxilian 15:10 'course, I don't work for that company anymore
but still :-P{
amackera 15:10 i should open-source the plugin i'm working on
it would be a good sample plugin for firebreath
taxilian 15:10 that would be cool =]
is it something I can get access to just to try out? not the source, but the plugin itself
and/or can we put free advertising for you on the firebreath wiki (well, okay, and I really want it to show that FireBreath is being used in the wild)
kalev: I would really like to have a bunch of helper libs that each help connect to an external project, such as cairo, sdl, sfml, opengl, etc, that can each be a firebreath library
thus making it easy to use different drawing libraries with FireBreath
we could potentially even create our own for doing simple things, but I'm not sure I want to get into that; I don't know that much about graphcis
there are several ideas here:
kalev 16:10 I don't know that much about graphics either; just wanted to point cairo out as you were talking about JUCE
taxilian 16:10 hehe. Mostly I think it would be funny to support JUCE as an option; JUCE has its own browser plugin abstraction / integration layer
similar to FireBreath but not nearly so feature complete
kalev 16:10 hehe
taxilian 16:10 probably the closest thing we have to a competitor
it's actually not bad
amackera 16:10 taxilian, using the HDC in the draw event works like a charm :)
taxilian 16:10 *evil laugh*
let's always do it that way, then
amackera 16:10 yeah
taxilian 16:10 don't even pass on the other one
kalev 16:10 looks like Firefox uses cairo for drawing on all supported platforms
taxilian 16:10 cool
lol. why do you guys have to be active the second half of the week? I already spent all my allowed time on FireBreath for the week… :-P
kalev 16:10 hehe
taxilian 16:10 thanks, amackera; I was wanting to test that
amackera 16:10 i'm pretty jazzed :)
the only thing messed up is that chrome doesn't seem to care about NPPVpluginTransparentBool
taxilian 16:10 I was talking about the auto-op script, so that I'm not the only one opped all the time, but I'm excited about that too :-P
huh, that's too bad
amackera 16:10 lol oic
hey taxilian how is it that you can stay signed in to irc all the time?
do you use a proxy?
taxilian 16:10 yeah
called znc
I can create you an account on it, if you want
I can sign in from anywhere and it gives me the history of what happened while I'm not here
that's also what does the logging on
amackera 16:10 really? sweet that would be awesome
taxilian 16:10 amackera: sent you a PM on how to log in to set it up
amackera 16:10 is that new one me?
i guess i need to logout/login?
taxilian 16:10 there we go, that worked better
amackera: let me know when you manage to get connected =]
amackera_ 16:10 sorry for the login/logout spam guys
taxilian 16:10 that's okay; not everyone can operate complex applications like IRC clients correctly without practice :-P
amackera_ 16:10 anything special i need to do to set up pidgin?
taxilian 16:10 turn on SSL, set the hostname and port to the same as the https server I told you about, and set the ident name to the one I gave you as the znc username
and put in your password
amackera 16:10 fantastic, all set up now :)
taxilian 16:10 well did =]
wonder why it still has you marked as away?
at least, you show up as away on my client
amackera: now you show up as there.
anyway, I'm headed home. I find that znc is really useful for keeping track of what goes on here, as it allows me to monitor at all times
it also forces my co-contributors to make fun of me off-channel if they don't want me to hear, which is of course useful
amackera 16:10 ttyl :)
amackera 17:10 okay so pidgin isn't that bad of an IRC client
nothing beats irssi though
amackera 19:10 i'm getting a very strange crashing bug from safari on plugin close
in windows
i'll see if i can track it down