IRC Log Viewer » #firebreath » 2011-12-30

IRC Nick Time (GMT-7) Message
aflorichescu 05:12 hello
I've just found firebreath and I think it is perfect for integrating some of my small programs in the browser
but I have one small problem how can I add my existing c++ code to the plugin visual studio solution file using the cmack
all my existing code is included on a visual studio project
linearray 06:12 you can for example compile your existing code to a library and include that
maybe you can even instruct cmake to include your existing project
a better place to ask is probably #cmake
aflorichescu 06:12 I think it is better to have my project included in the generated solution solution so I can edit my files from there instead of having another solution for the lib
I'll ask more at #cmake
jshanab_wcw 07:12 aflorichescu. I have a lot of that. I just add a CMakeLists.txt to the directory, even directories that I share with an existing solution. then add to the "include_direcories" and add some "add_subdirectory" to the plugins top level cmakelist.txt then re-prep
jake__ 07:12 hey guys.... i really need help
will someone be kind and help me please????
jshanab_wcw 07:12 jake__ we are waiting for the question
jake__ 07:12 oh..... I am currently creating a google chrome extension which stores data in local storage
and from what i've researched the only way how is the NPAPI plugin
and that the best way to do this is to create it with firebreath
anyway.... I'm struggling with starting firebreath right now.. i'm developing in windows.. i've followed the tutorial but still no result
what happened is that i followed the very first part which was retrieving the source code of firebreath in git
it returned an error "git is not recognized as batch command"
any idea what happened?
jshanab_wcw 07:12 yes. You need to run the gitbash shell It comes with the git for windows and has an icon with the word git written vertiacally in ggrey red and green
But when it comes to the prep stage you must go back to a standard command shell. It is possible when you installed GIT to allow it's use from the standard cmd line but not reccommended
jake__ 07:12 i'm sorry for being so dumb i'm still a newbie but i'm really eager to finish this... but where can i find the gitbash shell? :D peace
jshanab_wcw 07:12 Lets back up a step. Did you install git for windows?
msysgit is what you are looking for
jake__ 07:12 nope... i haven't installed it yet...
ok ... i will... thanks
jshanab_wcw 07:12 and don't worry. One thing i have learned in my undisclosed number of Software Engineering years, "you can be an expert and an noob/moron/idiot in the same line of code"
jake__ 08:12 thanks man... this is just really new to me... actually i'm still a student and this is my thesis... and i really am struggling with this... i don't know where to start... hehe
jshanab_wcw 08:12 Been there, Dont have the masters, (didn't finish project in time before all hell broke loose in life/job/economy/etc) I was writing a linux kernel module and changing a linux filesystem!
jake__ 08:12 hehe... wow... i'm so stupid i don't even understand what you wrote... haha.... i'm probably not cut out in this industry... i just want to learn and graduate this march... :( i'm really worried..
btw did i say thanks already???? thanks
linearray 08:12 chillax, everyone starts small
jake__ 08:12 yeah i will.... where are you guys from anyway?
jshanab_wcw 08:12 Just keep at it. and ask in these groups. I had what I would call an unforseen event, not much I culd do about it, but I moved across country and got a great job anyway. I learned how to get things done, but a little too late. "find the authors" In my case i wasted weeks on lists that didn't have the authors on it. This one Does!
I am in Chicago area, was Fresno Ca
jake__ 08:12 oh.. that's awesome... i'm from the Philippines...
jake__ 08:12 excuse me... i've already installed git... where can i find the gitbash shell?
jshanab_wcw 08:12 It should of placed an icon in the start bar and optionally one on the desktop
jake__ 08:12 it's not... is it possible i installed it wrong???
jake__ 08:12 sorry.. my connection crashed... so ... is it possible that i installed it wrong?? just like you said.. i installed msysGit
and it didn't generate any shortcut from my start menu and desktop menu
jshanab_wcw 08:12 There were a few dialog boxes in the process, did you maybe not read them?
Maybe I gave a poor link... MsysGIT Here is the link on our wiki
looks like that may be a more complete system
jake__ 08:12 yup.. i installed that
this is what i installed... from the link you gave ... installation went down without GUI... it was just black screen.. like what you see in cmd
jshanab_wcw 09:12 Then it did NOT work. What OS?
jake__ 09:12 win 7 ultimate
jshanab_wcw 09:12 I am sorry, you missed something. Installing git for windows is the first thing to get correct. uninstall, start ovcer and pay attention to the details and dialog. So often we click on default and miss something important. For example, the second link I gave was not the same as the first link.
jake__ one more thing. be on the lookout for UAC - user access control and the windows firewall. Perhaps they are getting in the way
jake__ 09:12 alright... thanks... i hope you'll be here tomorrow... i really need to go to sleep.. i haven't slept for days and my eyes are really heavy... thanks a million... :D
jshanab_wcw 09:12 That is your problem. it will look better in the morning
taxilian 10:12 kylehuff: ever make any progress on that issue?
linearray: don't suppose you'd like to write a test for the systemhelpers stuff, would you?
linearray 10:12 taxilian: if you tell me where to put it, I will take a look at it once I have time
taxilian 10:12 was just thinking of adding methods to FBTestPluginAPI for each of the three methods, then in the HTML we can display those paths somewhere; the #1 goal is to have the APIs called to make sure they don't crash, then a quick visual inspection can make sure they make sense
I'm just about out of time to work on FB this week
though I got a lot done yesterday
linearray 10:12 ok, so FBTestPlugin it is
yes indeed
good job :)
taxilian 10:12 timers in… finally… tha'ts been an outstanding request for like, 1.5 years or something
kylehuff 13:12 sorry taxilian, but no. I started out working on it but have spent much of the rest of the time either in the emergency room or in bed. I blew out my ear on the flight in, and it is severely infected. The swelling is unbearable - like a dental drill to side of my face.
taxilian 13:12 wow
I had no idea
kylehuff: don't worry about it, then; just get bettr
kylehuff 13:12 I hope to, I go back to Basic in 3 days -- I better damn well have this licked
taxilian 13:12 ouch
nimaj7 16:12 Hi there, Im currently implementing firebreath into a plugin that does no drawing... It works great however the final size is still very large ~2.8MB... Is there anyway to reduce the size of the plugin, out of the box?
taxilian 16:12 sure; compile it in release mode, compress it
it will be around 2MB or slightly more in size when uncompressed
but compressed it can be closer to 500K
nimaj7 16:12 what compression?
taxilian 16:12 since installers are generally compressed (NSIS, MSI, etc) that's usually good enough
you can also find DLL binary compressors, but generally an extra 2MB on a hard drive isn't worth worrying about
it's the download size you need to be concerned about
nimaj7 16:12 I see, havent actually put it into the msi yet... What about when distributing with an extension (XPI, CRX)...
taxilian 16:12 XPI is just a zip file with a particular structure
CRX I'm not certain, but probably the same
nimaj7 16:12 Download time is my concern...
thanks I will throw it into those structures and see what type of compression it produces
taxilian 16:12 LZMA is the best compression, and I think MSI uses that by default
I dont' recommend you use multiple installer types anyway, unless you're actually creating an extension
though many disagree with me on that
nimaj7 16:12 I currently have an extension that needs to have support for this without an installer... Trust me if I had my way an msi would be the only way to install
taxilian 16:12 you can install an extension with an MSI
it's just a tad bit trickier is all
the downside is that you lose the automatic "restart your browser" message from the browser
but if you're using an extension, that makes the most sense
note that you can use 7zip to zip it (to .zip, not to .7z) and get a reasonably higher compression ratio than the built-in windows one
not all zip compressors are equal
nimaj7 16:12 noted I just compressed the binary into an XPI, dropped the size to ~1.5MB... I will tinker around some more....
taxilian 16:12 did you compile in release mode?
instead of debug?
nimaj7 16:12 yes... release gives ~2.8 uncompressed while debug is upwards of ~7
taxilian 16:12 this is windows? or mac?
nimaj7 16:12 both
well actually the size was specifically for mac
taxilian 16:12 that makes sense, then
if you build in the default mode, it will build a universal 32/64 bit binary
which means you basically have 2 plugin binaries in one
if you rebuild it 32 bit only it will be half the size
that requires a cmake option and deleting/recreating your build directory
prep script option
nimaj7 16:12 any drawbacks with just using 32bit
on mac
taxilian 16:12 well, it depends on what you're doing… but usually not, no
64 bit binaries are often faster, they can access more memory, etc
nimaj7 16:12 yea but this plugin wont need much memory... Can 64 bit browsers run 32 bit Plugins?
taxilian 16:12 yes
on mac
nimaj7 16:12 great... I will look into what flag I need for cmake
taxilian 16:12 !wiki prep scripts
FireBreathBot 16:12 8 results found. Note: Results limited to 8
"Prep Scripts":
"Build Configurations":
"Using CMake With FireBreath":
"Creating a Plugin Project without fbgen":
"Building on Windows":
"Best Practices":
nimaj7 16:12 sweet
taxilian 16:12 first link there has the flag you want
nimaj7 16:12 -D CMAKE_OSX_ARCHITECTURES=i386
im assuming the default is both i386 and x86_64
taxilian 16:12 correct
seperated by ;
it's also possible to build for ppc, though it requires some additional tweaking
nimaj7 16:12 ppc not needed
taxilian 16:12 good; it's a royal pain
as far as I know I'm the only one crazy enough to do it =]
and my boss, I suppose
nimaj7 16:12 yea doesnt seem like to much fun... But Im finding that plugins,extensions,installers arent much fun in general
any drawbacks, when not using any drawing api's for the MinSizeRel build config?
taxilian 16:12 I actually recommend using the RelWithDebInfo config
there is an option that will let you use all the optimization flags for speed but still get the symbols
nimaj7 16:12 interesting even in production releases?
taxilian 16:12 most particularly in production releases
if you keep the symbols (you don't distribute them) then when you get a crash dump you can resolve the symbols
and find out what happened
nimaj7 16:12 hmm alright I will add that to our build
taxilian 16:12 now on Mac I dont' understand how symbols work real well, but I do know you can build with symbols and then strip them out for the actual release
which lets you resolve those symbols later
I just don't know how to do it =]
windows its easy, just keep the .pdb file
also not a bad idea to set up a symbol server on your build machine and have the symbols for releases automatically archived there
nimaj7 16:12 I see... I will definitely look into that... Our build system already checks the artifacts made right back into svn, so im good on that end
taxilian 16:12 svn isn't a real useful place to have the .pdb files
a symbol server is
because you can point visual studio at it and it can automatically pull down the symbols you need
nimaj7 16:12 for safe keeping I keep in there but your right if I actually needed them I would have to download
taxilian 16:12 personally I hate keeping binaries in source control; part of that, though, is that I hate older SCMs like svn that aren't distributed, and a git repo with binaries is *way* too big
nimaj7 16:12 honestly its a bad habit that I developed... When theres more time I will revisit were we keep our binaries
taxilian 16:12 know how that goes
nimaj7 16:12 another side topic, Im having some problems getting libcurl to link correctly on the windows side... I have used your add_firebreath_library(curl) flag and cmake doesnt throw any errors during the prep.. But when I build in VS2010 the linker just keeps throwing back unresolved external symbol errors... Any ideas?
taxilian 16:12 hmm. where did you put add_firebreath_library?
nimaj7 16:12 under Win/projectDef.cmake
taxilian 16:12 put it in your PluginConfig
projectDef.cmake is probably too late
it should correctly use the available libcurl on mac
incidently, linking in libcurl and openssl will increase your binary size as well
whether or not you draw actually has very little impact on the size
nimaj7 16:12 i know it will increase binary size but I need a way to contact certain API's
taxilian 16:12 right; I'm just making sure you know =]
nimaj7 16:12 I will try it in pluginconfig although I think that is where I had it first...
taxilian 16:12 also try deleting your build dir and recreating it
rerunning prep
nimaj7 16:12 will do
nimaj7 17:12 @taxilian the advice for building on mac with the i386 flag was great, plugin is now down to a much more manageable size of 500k compressed... Also I think the libcurl issue is resolved now although some new errors have found their way in :) Thanks for all the help
taxilian 17:12 you're welcome. please contribute back to the project however you are able =]
nimaj7 17:12 will do!
FireBreathBot 19:12 JIRA issue issue commented by halton "Richard, thanks for letting me know what to do. As request, a forked branch is available https://..."
FireBreathBot 22:12 JIRA issue issue commented by [email protected] "Well, The thing I want is that my native NPAPI method is able to accept the parameter of std::vec..."
JIRA issue issue comment edited by [email protected] "Well, The thing I want is that my native NPAPI method is allowed to accept the parameter of std::..."
FireBreathBot 23:12 JIRA issue issue commented by richard "I'm still waiting for a valid use case for this feature; what are you expecting to pass in from j..."