IRC Log Viewer » #firebreath » 2012-09-21

IRC Nick Time (GMT-7) Message
star__ 07:09 Hello
Q: I correctly understand that FF has one plugin instance for all tabs, but IE not?
JuanDaugherty 07:09 prolly not
star__ 07:09 I am create in main plugin object static boost::mutex mutex; field, and try to lock in plugin API, but in IE in some case (i don't undertand in which) mutex not locked if i open several tabs.
Can someone describe plugin lifecycle in IE?
JuanDaugherty 08:09 you mean in more detail than on firebreath,org?
.
btw, the class reference there, wonder how often it's synced with current sources?
anyway star__ , taxilian or someone will have to say, but my impression is that's an issue somewhat beyond the scope of fb
which is concern with things from the browser-plugin i/f in a browser independent way and looking from that interface into the plugin
*concerned
star__ 08:09 No, i want to say, that my quastion is: why in FF, Chrome a i can say that i have more than one tab that uses my plugin, but in ie no?
From http://firebreath.org/display/documentation/Plugin+Lifecycle : "Global and static variables may never be reset and are shared among all plugin instances"
Its correct for all IE tabs, tha all static variables from "Plugin Object" will be the same?
JuanDaugherty 08:09 *concerned
taxilian 08:09 star__: yes, all IE tabs your static variables will be the same
star__: but the mutex won't do you any good; they aren't running on different threads
it's all on the same thread
JuanDaugherty: assuming the script is still working, the class reference is synced nightly
JuanDaugherty 08:09 the thing with regsvr trapping went away when I made an architectural change in my plugin
star__ 08:09 IE9, W7, i create breakpoint in void vnPTZ::StaticInitialize(), and it called twice when i create 2 tabs and load page with plugin.
its correct?
JuanDaugherty 08:09 if I'm going to subclass the pluginwindow, is the WindowAttached event the right time to do so?
taxilian 08:09 when you say subclass the window; you're talking about the HWND?
or changing which PluginWindow object is used?
JuanDaugherty 08:09 yes
actually both I think
taxilian 08:09 dont' subclass the HWND
make your own
subclassing the HWND will cuase a lot of weird issues
if you want to provide your own PluginWindow class you don't need to subclass the HWND because the base PluginWindowWin class that you'll extend will do it for you
and you do that by overriding the factory method in your Factory.cpp
look at FactoryBase (in PluginCore) for details
JuanDaugherty 08:09 will do, and doing this now. BTW, based on my experience, I don't recommend people use VS2010 Express with starting out with FB
taxilian 08:09 honestly I don't recommend using vs2010 express at all
JuanDaugherty 08:09 I think it will probably build an already developed plugin though
taxilian 08:09 or vs express at all. but it's a lot free-er than the other alternatives, so I understand why they do =]
JuanDaugherty 08:09 well I never had problems with it before now
but I'm not limited to C++, do a lot of other stuff
taxilian 08:09 getting firebreath to work on vs express is a real hack
star__ 08:09 @taxilian: i understand, they aren't running on different threads. But i create thread, and i need that it will be only one for all tabs.
JuanDaugherty 08:09 so you don't get "frustrated" but if you're not reaonably sensible to irritation you can't deal with something like that
taxilian 08:09 star__: so you set it up in StaticInitialize, you take it down in StaticDeinitialize
and they will all be the same process
star__ 08:09 the same process for all tabs?
taxilian 08:09 one plugin, one process
doesn't matter what tabs or windows, as long as it is the same instance of IE
and I don't think IE supports multiple instances anymore
so all windows are the same instance
star__ 08:09 but ie9 call StaticInitialize almost for all tabs
taxilian 08:09 then that is a first; I've never seen that happen before
it's possible they changed the way they handle activex in a recent update, I suppose
star__ 09:09 IE9 creates 3 diffrents processes
4th reused already opened processes
taxilian 09:09 previously IE9 has always shared a process for a given activex control
JuanDaugherty 09:09 has anyone used a FB AX plugin in non-browser contexts?
guess conceptuall similar on mac as far as binding a handler for a mime type
y
in that case "anyone" didn't refer to this channel
(alone)
star__ 10:09 JuanDaugherty: we use our lib with many interfaces as browser plugin with FB, as descktop app wit qt, as java application
JuanDaugherty 10:09 star__, got it
jmort253 16:09 Anyone know if it's normal for Firebreath XCode projects to take forever to build?
I'm experimenting with the PIMPL method of wrapping C++ classes for use by Objective C code, and even the slightest change takes minutes to rebuild.
I realize there's a lot of complexity to wrap up the NPAPI plugins, so if that's just how it is then so be it :) :)
derick_skibotn 18:09 How do I build a plugin with WebViewMac?
taxilian 21:09 FireBreathBot: tell jmort253 xcode has weird issues sometimes with multiple processes; there is a way to set it to only use one or two processes and that usually speeds things up