IRC Log Viewer » #firebreath » 2015-03-18

IRC Nick Time (GMT-7) Message
taxilian 08:03 Tim any luck?
Tim any luck?
kylehuff 12:03 taxilian: you around?
just got home, and I've pulled in your latest changes in the refactor branch
taxilian 13:03 kylehuff: I'm back from lunch now
let me commit my latest on the native messaging stuff
kylehuff: I have pushed what I have; would love to brainstorm with you a bit if you have time when you get back
heh. there are some errors in the code I pushed. oh, well
kylehuff 13:03 taxilian: I'm back
taxilian 13:03 hey, welcome back
are you up for some video chat collaboration?
kylehuff 13:03 that might work. my little one has discovered that she can scream/wail, and she is apparently addicted to it.
taxilian 13:03 hehe
hehe
sounds about normal
sounds about normal
I created a room in Zoom: https://zoom.us/j/378799233
if anyone else wants to join us, you are welcome to come see what we're doing
kylehuff: I'm just working on stuff, so I'll leave the room open in case your offspring decides to allow you some time =]
kylehuff 14:03 getting zoom installed on my win7 VM. zoom doesn't have linux support
getting zoom installed on my win7 VM. zoom doesn't have linux support
taxilian 14:03 hmm. that stinks
it's still probably wroth it
worth
zoom has excellent screen sharing support as well as being the most reliable video conferencing tool I've ever used
zoom has excellent screen sharing support as well as being the most reliable video conferencing tool I've ever used
in addition, I may record the conversation in case parts are useful for reference later
I can see and hear you
kylehuff 15:03 taxilian: for parsing the list of registered plugins within the windows registry, are we only concerned about `HKLM\SOFTWARE\MozillaPlugins` (32 and 64bit keys) , or other locations as well?
taxilian 16:03 I think let's start there
except also look at HKCU
HKCU first, then HKLM
HKCU first, then HKLM
kylehuff: so I totally let myself get sucked into a convo with a coworker; just barely getting back to work now. sorry =]
kylehuff 16:03 taxilian: it's all good, I've been doing more research than actual work myself. making sure I understand the WIN/LIN/OSX variances before I start hacking out any code
taxilian 16:03 makes sense to me
kylehuff 18:03 taxilian_away: is the 'Win' in the filename 'LoadPluginWin.cpp' as in Windows? i.e. platform specific? if so, I assume you intend to have a LoadPlugin{Lin,OSX}.cpp, is this correct?
taxilian 19:03 yes
kylehuff: that is correct
kylehuff 19:03 okay, got it. I'm about to close up shop, but I've nearly completed iterating through reg keys and checking reported mimeTypes against the requested mimeType. I should have a pull request ready tomorrow. the linux/OSX will be easier (no registry), but more difficult to determine mimeType.
taxilian 19:03 awesome!
kylehuff 19:03 taxilian: on linux, the mimeType handler for the system is managed by the window manager (GNOME, KDE, etc.), and while chrome has it's own handler (with registration we could probably query), that will only work with chrome. what do you think about having a built-in method in FireWrym compatible plugins that will return the mimeType(s) it supports?
that might be a slow process, as we would need to dlopen each plugin found, instead of only those with a matching mimeType
I presume we will be in the same boat with OSX, but I haven't ever dug into that much.
I presume we will be in the same boat with OSX, but I haven't ever dug into that much.
taxilian 19:03 kylehuff: that one is kinda a funny one... on linux, there is an entrypoint that you can call to get it directly
OS X it is stored in a plist
kylehuff 19:03 an entrypoint in the plugin?
taxilian 19:03 yeah
yeah
because it's NPAPI
because it's NPAPI
and that's how NPAPI works =]
extern "C" char * NP_GetPluginVersion()
{
return (char *)FBSTRING_PLUGIN_VERSION;
return (char *)FBSTRING_PLUGIN_VERSION;
}


extern "C" const char * NP_GetMIMEDescription()
extern "C" const char * NP_GetMIMEDescription()
return (char *)FBSTRING_X11MIMEType;
return (char *)FBSTRING_X11MIMEType;
from np_x11main.cpp
those two exist on any valid NPAPI plugin on linux
kylehuff 19:03 okay, great, then that is already solved.
taxilian 19:03 yep =]
yep =]
kylehuff 19:03 does that also exist on Windows? because not all plugin registrations seem to have a MimeType key
does that also exist on Windows? because not all plugin registrations seem to have a MimeType key
taxilian 19:03 mac is actually the harder one, since we have to figure out how to find/read the plist, but it's still probably not too hard
nope, it's only on linux
there are some weird differences between the platforms
kylehuff 19:03 okay. well, I've only found two out the 30 or so plugins I have installed on my windows dev box that do not have a MimeType key in the registry
okay. well, I've only found two out the 30 or so plugins I have installed on my windows dev box that do not have a MimeType key in the registry
taxilian 19:03 you know what? just use the registry
because we only care about FireBreath plugins and we've properly done that from the beginning
kylehuff 20:03 roger. that was my plan.
taxilian 20:03 hehe. what would be funny is if we could find a way to scrape the contents of an offscreen/hidden hwnd and proxy mouse and keyboard events... we could potentially create a wrapper that would allow us to load an NPAPI plugin through the Native Messaging interface
it'd be async, so we'd have to do some interesting stuff to make that work, but I bet we could do it
I just don't know how to make the drawing interface work
kylehuff 20:03 sounds like a fun challenge
taxilian 20:03 hmm. actually, you could probably do it using an hDC for a windowless plugin.... =]
and nirvdrum might know how to do the scraping thing, I suppose
on mac it would actually be pretty easy
linux I wouldn't know where to start
kylehuff 20:03 yeah
taxilian 20:03 it would be *really* funny, though
performance would probably not be amazing, but it would be funny
performance would probably not be amazing, but it would be funny
probably not worth the time and trouble =] but hilarious
probably not worth the time and trouble =] but hilarious
kylehuff 20:03 last question, the windows registry parsing is, as I'm sure you can imagine, .... verbose. would you prefer that crap in PluginLoaderWin.cpp, or is there another way you handle non-member utility code?
taxilian 20:03 I would prefer a nice readable abstraction, if it's not too much trouble
something that cleans it up a bit
kylehuff 20:03 yeah, no problem, I'll see what I can do. be warned though, I can write functional code, but elegant? not so much.
well, I'm off. I'll be in touch with you tomorrow.