IRC Log Viewer » #firebreath » 2011-06-20

IRC Nick Time (GMT-7) Message
gargle 01:06 hi everybody
dougma 01:06 hi
gargle 01:06 someone have used the getFSPath() function previously ?
dougma 01:06 no.
does it not work?
gargle 01:06 in fact, the compiler can't find it. i try getFSPath or FB::getFSPath or FB::PluginCore::getFSPath.
the last call tell me that it need an object
dougma 01:06 don't namespace it
it's a member of plugin.
gargle 01:06 i jut use getFSPath ?
dougma 01:06 you haev an object which derives PluginCore
so you call getFSPath on that
gargle 01:06 when i create a plugin, the object is created automatically ?
or I have to create one by myself ?
dougma 01:06 automatic
gargle 01:06 which name please?
dougma 01:06 you named it
gargle 01:06 the name of the plugin?
dougma 01:06 when you ran fbgen
gargle 02:06 this ? class np_sl_loop : public FB::PluginCore
dougma 02:06 gargle: that'd be it
graykos 06:06 taxilian?
linearray 08:06 compiling FB with -pedantic is not a beautiful sight
neilg_ 08:06 Hey all
graykos 08:06 hi
taxilian 09:06 gargle: getFSPath is a method on PluginCore
your main plugin object extends PluginCore
it's not a static method
!find getFSPath
FireBreathBot 09:06 Found 1 possible matches. Displaying 1
/^ virtual std::string& getFSPath() { return m_filesystemPath; }$/ (f) found in src/PluginCore/PluginCore.h:
taxilian 09:06 graykos: howdy
linearray: what does -pedantic do? and are any of the warnings/errors ones that should be fixed or is it just being, well, pedantic? =]
linearray 09:06 pedantic warns about everything that is not ISO C++
taxilian 09:06 interesting. it is a gcc flag?
linearray 09:06 yes
taxilian 09:06 well, pastebin or gist me the output sometime; I'll take a look at it
honestly, I'm less concerned about ISO C++ than I am about working properly on all the compilers we support
linearray 09:06 sure
a lot of warnings are in boost
taxilian 09:06 but I would be interested in knowing what I don't know =]
linearray 09:06 one thing I noticed is double semicolon due to #define usage
taxilian 09:06 ?
linearray 09:06 so when you define a macro with ';' at the end, and end the macro 'call' with a semicolon of its own
taxilian 09:06 oh
I can see that happening
graykos 09:06 fuf
taxilian 09:06 morning
linearray 09:06 actually, that's pretty much the only thing...
graykos 09:06 what is FB::JSAPIPtr
taxilian 09:06 !find JSAPIPtr
FireBreathBot 09:06 Found 1 possible matches. Displaying 1
/^ typedef boost::shared_ptr<FB::JSAPI> JSAPIPtr; $/ (t) found in src/ScriptingCore/APITypes.h:
graykos 09:06 and what can I do with it
linearray 09:06 plus usage of 'long long', which is not in the standard
graykos 10:06 yep, and who programmed your damn captcha-generator?))
taxilian 10:06 graykos: do some reading up on Interactive with Javascript on the wiki
graykos: which captcha generator?
linearray 10:06 google, i guess
graykos 10:06 which is when trying to enter this channel)
linearray 10:06 ;)
graykos 10:06 i got one in greek language
taxilian 10:06 !wiki Interacting with Javascript
FireBreathBot 10:06 6 results found. Note: Results limited to 8
"Interacting with Javascript":
"Using FireBreath":
"Plugin Lifecycle":
"FireBreath Users":
"Version History":
"Web Browser Plugins in the Age of Web Applications.pdf":
graykos 10:06 and now i got "married nnewer"
taxilian 10:06 graykos: the web irc interface is an iframe to one provided by freenode
I have nothing to do with it
I just put it up as a convenience
linearray 10:06 graykos:
graykos 10:06 and that is... ok, just my own problems...
just joking
gargle 10:06 hi taxilian, thanks for your answer. I use (getPlugin())->getFSPath() and it seems it work great.
taxilian 10:06 glad you figured it out
linearray 10:06 wow, unless I'm mistaken you can only view your own submitted bugs in Apple's bug database
well, I suppose somebody already told them xcode4 is crap
taxilian 10:06 lol. most likely, but never hurts to be certain ;-)
where do you submit bugs?
linearray 10:06
taxilian 10:06 makes sense
linearray 10:06 supposedly this guy told them:
but I cannot view his bug submission
zmichl 11:06 Hi, can FB plugin act as a COM server? Like this:
taxilian 11:06 you do know that an ActiveX control is a COM server, right?
zmichl: so a FireBreath plugin is already a COM server, because otherwise it wouldn't work on IE
what exactly are you trying to accomplish?
zmichl 11:06 ok, I thought it, but wasn't sure ;)
so I should be able to call its methods like in the "To create a test client application" paragraph, right?
taxilian 11:06 not exactly; FireBreath only exposes an IDispatch interfacew
so you'll need to call the methods through that
!findfile IDispatchAPI.cpp
FireBreathBot 11:06 Found 1 matching file(s) in the master branch. First 1 are:
taxilian 11:06 that has some good examples of how to use IDispatch*
zmichl 11:06 so the only way how to call its methods is from javascript?
taxilian 11:06 you can call IDispatch methods via C++
you just have to know how
and the file I referenced above shows you how
you might notice that it's a C++ file
zmichl 11:06 I have a problem similar like this one:
I have multiple BHO instances and I'd like to acess the FB plugin.
and jeffdav says: "COM will serialize requests to your server from the client BHOs"
taxilian 11:06 you should be able to instantiate a FireBreath plugin as a COM object and make calls to it
zmichl 11:06 and then the serialization should work out of the box?
taxilian 11:06 what do you mean by serialization?
what are you trying to accomplish?
do you mean you're trying to avoid concurrency issues or just send data between processes?
to be honest, I'm not certain exactly how that will all behave
the main question is whether or not the BHOs will connect to the same COM server intance that IE itself does
if it does, then all calls will be serialized to the same thread
zmichl 11:06 yes, I mean concurrency - the code in the plugin should run just once at a time
taxilian 11:06 and you should be good either way
but you'll have to try it; I'm not 100% certain
I'm not really a COM expert
I totally need to cut apart my COM books and scan them in :-P
most are out of print
null__ 11:06 hi.. having a problem compiling.. when I include header:
#include <afxinet.h>
zmichl 11:06 ok, I'm going to try it...
taxilian 11:06 zmichl: let me know how it works
I would love to see a writeup on how you did it if you get it working
would be a great addition to the FireBreath wiki, or a great blog post
you could even publish it on if you wanted
null__ 11:06 Error 1 error LNK2005: "void * __cdecl operator new(unsigned int)" ([email protected]@Z) already defined in LIBCMT.lib(new.obj) Error 2 error LNK2005: "void __cdecl operator delete(void *)" ([email protected]@Z) already defined in LIBCMT.lib(delete.obj) Error 3 error LNK2005: "void * __cdecl operator new[](unsigned int)" ([email protected]@Z) already defined in libcpmt.lib(newaop.obj) Error 4 error LNK2005: "void __cdecl operator delete[](void *)" (
thats the error
how to include afx?
taxilian 11:06 null__: you are trying to use MFC?
null__ 11:06 yes
or, some methods within MFC
afxinet in particular
just looking for a method to make a simple HTTP call..
unless you have a better suggestion than afxinet
taxilian 11:06 null__: well, yeah; my suggestion would be to use SimpleStreamsHelper which is built into FireBreath
!findfile FBTestPluginAPI.cpp
FireBreathBot 11:06 Found 1 matching file(s) in the master branch. First 1 are:
taxilian 11:06 there is an example in that file
look for asyncGet and asyncPost
null__ 11:06 sweet dude! even better
taxilian 11:06 using MFC from a FireBreath plugin is tricky; it tends to conflict with the libraries we're using
null__ 11:06 hey is there a syncronous version?
ah ok
taxilian 11:06 there is, but you have to be on a secondary thread to use it
you don't *ever* block on javascript calls, btw
just say no
don't do it
zmichl 11:06 taxilian: but still I don't know how to instantiate a FireBreath plugin (in BHO) as a COM object and make calls to it...
null__ 11:06 awwww...
so ;)
taxilian 11:06 !wiki tips
FireBreathBot 11:06 8 results found. Note: Results limited to 8
"Tips and Tricks":
"Building FireBreath Plugins":
"Using FireBreath":
"Building on Linux":
"Building on Windows":
"Building on Mac OS X":
"FireBreath Home":
"Frequently Asked Questions":
taxilian 11:06 there is a link in tips and tricks to an article about sync javascript calls
read it
null__ 11:06 if i need to return a property value..... based on a call to the wen... how would i do that asynchronously?
taxilian 11:06 there is a link in tips and tricks to an article about sync javascript calls
read it
null__ 11:06 ok
taxilian 11:06 zmichl: the CLSID comes from your PluginConfig.cmake file
!findfile PluginConfig.cmake
FireBreathBot 11:06 Found 4 matching file(s) in the master branch. First 4 are:
taxilian 11:06 zmichl: it's FBControl_GUID
zmichl 11:06 taxilian: ok I have a CLSID, and what now? :)
taxilian 11:06 zmichl: there is no way I have time to teach you how to write a COM client right now =] you'll have to figure that out
there are examples out there, though
and honestly I'd probably have to do it myself to fully figure it out
I've never actually done it
I just know the theory
zmichl 11:06 I found only the example that I sent a link...
But you said that I can't use it that way...
taxilian 11:06 you can instantiate it that way
you just will have to use the IDispatch interface to make function calls
and there are lots of examples of using ATL to instantiate a COM object
google is your friend
zmichl 12:06 ok, I'll try it...
thanks ;)
taxilian 12:06 sorry; it's just not something I can explain everything you need to know about in a brief manner
maybe if I knew it better myself
zmichl 12:06 rather I shouldn't be so lazy to read some docs about it ;)
FireBreathBot 13:06 Commit 76c5ca4 on master by Richard Bateman: "Added missing include; minor fix"
linearray 13:06 is there a reason why FB uses macros for certain things, instead of inline funs?
taxilian 13:06 things like what?
there is most likely a reason
linearray 13:06 I noticed it in event firing and logging
taxilian 13:06 there is most certainly a reason for that
with a macro we can record the filename, function, line #, etc
using other macros
also inline functions wouldn't work there
because the FB logging abstraction allows you to provide your own logger; most of the projects are compiled before it knows what that logger is
linearray 13:06 I see
taxilian 13:06 so there are several reasons, I guess =]
event firing creates inline functions
so you could say it uses both a macro and an inline function =]
null__ 14:06 got streams working, thanks tax
one more question
does firebreath provide a way to save/load user settings?
something preferably cross-platform compatible
null__ 16:06 tax, does firebreath provide a way to save/load user settings?
taxilian 16:06 null__: not yet
null__ 16:06 k
what'd you recommend? registry?
taxilian 16:06 depends on the platform
registry isn't bad on windows
null__ 16:06 i never was able to get any registry code to work within firebreath
couldn't get past the unicode conversion stuff
you wouldn't have any sample code would you?
taxilian 16:06 not really. pastebin me what you tried, I'll look at it
null__ 16:06 ok i'll have to try again, then i'll send it your way..
last ques..
does AsyncGet support SSL requests?
taxilian 16:06 should
it just makes the request through the browser on npapi and using winhttp on activex
null__ 16:06 ah excellent, i'll give it a whirl
feeling 19:06 hi~
taxilian 19:06 howdy
I'm about to leave, but if you have a quick question I'll try to help before I go
feeling 19:06 fine, you?
i need to add dll version for rgs file
taxilian 19:06 dll version for rgs file?
feeling 19:06 yes
taxilian 19:06 you need to put the dll version somehow in the rgs file to store in the registry?
feeling 19:06 but, the BEGIN_REGMAP is in FBControl.h
taxilian 19:06 the .rgs file is a cmake template
simply copy it into your plugin directory (from gen_templates/) and customize it as you need
note that this is completely unsupported and if you break things because you don't know what you're doing I am quite likely to laugh at you rather than helping you fix it
feeling 19:06 thanks.
taxilian 19:06 any of the files in that directory you can customize in that way
note that you need to rerun the prep script after you change it
and you can use cmake variables such as the ones defined in PluginConfig.cmake
which is where I would recommend putting things like version
so that you configure everything in one place
gotta run! Good luck!