IRC Log Viewer » #firebreath » 2013-02-25

IRC Nick Time (GMT-7) Message
ratika 04:02 Hi
I am trying to install firebreath on my desktop
configuration is Win 7 64 bit
D:\2502213\firebreath>git submodule update --recursive --init Submodule 'src/3rdParty/boost' (https://github.com/firebreath/firebreath-boost.g it) registered for path 'src/3rdParty/boost' Cloning into 'src/3rdParty/boost'... error: Connection time-out while accessing https://github.com/firebreath/firebre ath-boost.git/info/refs?service=git-upload-pack fatal: HTTP request failed Clone of 'https://github.com/firebreath/firebreath-b
i am getting the above error
Kindly help
taxilian 08:02 ratika: I have no idea why that would happen; the space in the middle of "firebreath-boost" doesn't make any sense
jshanab 11:02 Good morning everyone. I am trying to solve an issue with chrome. Only on chrome when i resize,move,or scroll the browser it crashes with an infinite loop and a subsequent stack overflow. If I look at the events passed from chrome to PluginWindowWin they are different than those passed by Firefox
taxilian 11:02 you could build chromium from source
and then you could get the full stack of what is happening
jshanab 11:02 Firefox sends position changing,changed and ends with a single paint. It sends WM_NCPAINT only once. Somehow, chrome gets stuck in a loop
I was hoping someone could identify the problem. All this time I was thinking it was calling a different winproc. It has something to do with opengl. wglSwapBuffers calls CallWindowProcW -->GetClientRect-->GetThreadDesktop->gapfnScSendMessage and then back to wglSwapBuffers
Adding a case for WM_NCPAINT and returning false stops the loop, but actually stops EVERYTHING :-)
The other thing Chrome does that FF does not is send lots and lots of WM_NULL messages. I don't know what to do with those
taxilian 11:02 no idea here :-/
jshanab 12:02 Humm an app sends WM_NULL messages to a window with a SendMessageTimeout and if it fails it can conclude the window is dead.
haxmeadroom 12:02 Damn, it's hard to find a decent base64 implementation isn't it
jshanab 12:02 I use a little piece found on the net http://pastebin.com/v6sCC1Gh I have never really tested it for performance
haxmeadroom 12:02 I saw that one, but was worried about this lookup base64_chars.find(char_array_4[j]);
jshanab 12:02 Like i said, never tested for performance, but that is a pretty tight find inside a fairly small data set.
I do not do a lot of encodeing and decodeing but it has never shown up in any of the profiling. I also have ffmpeg in my code and that lib has a base64 encode/decode
haxmeadroom 12:02 jshanab: Yeah, thanks, it's worth a try. I won't know until I try it. :)
I've tried a few and get ~ 1M/s
Way too slow
jshanab 12:02 Let me know what you find is best. I know curl and ffmpeg provide their own.
I misseed the original post, what do you need it for?
taxilian 12:02 ...
there is a base64 implementation in the firebreath codebase...
haxmeadroom 12:02 The base64.cpp is slow (1M/s)
taxilian 12:02 ahh
there is one in boost as well
jshanab 12:02 It is something that lends itself to assembly techniques, we could either rewrite the C in that style or even embedd assembly :-)
http://www.craigwardman.com/blog/index.php/2006/09/x86-assembly-base64-encoder/
Boost would be nice
haxmeadroom 12:02 How would you get at boost's base64 with FireBreath?
taxilian 12:02 the same way you would with anything else?
I'm pretty sure it's header only
dunno about perfromance, though
it won't be assembly
jshanab 12:02 No, that would cause protability issues ;-)
taxillian. have you built Chrome browser on windows before? I was looking at the Chromium project and the build environmnt is a bit ridiculous http://www.chromium.org/developers/how-tos/build-instructions-windows
taxilian 13:02 I've done it, yes
it's a bit of a pain
jshanab 13:02 sounds like it would mess up my current env
taxilian 13:02 vm?
jshanab 15:02 taxilian. i have been doing some testing and it is very strange. it appears as if the problem is between chrome and FireBreath. Specifically the WindowProc handling. But that is odd since FB's handling seems quite normal and often just calls my code. But here is what I did
taxilian 15:02 are you re-subclassing hte window?
jshanab 15:02 I tried 3 back ends. One uses openGL I wrote, one uses the GLFW library and one uses SDL. The GLFW library survives but is very slow. The other 2 are directX and openGL and the infinite loop is always the same
subclassing? no. You know that kenect-at-home FB plugin? my opengl code is very very similar to that.
taxilian 15:02 haven't really looked at it
so after we subclass the window chrome takes it back
it could be related to that somehow
jshanab 15:02 It looks like a WinProc is trying to send itself a message during the handling of a message
taxilian 15:02 maybe I should step through with you sometime
I can't today, though
jshanab 15:02 https://groups.google.com/forum/?fromgroups=#!topic/firebreath-dev/RMUxso6G1eo is very similar but i don't have the issue on FF anymore
I would owe you BIG TIME
taxilian 15:02 you have contributed back to this project more than most have anyway
jshanab 15:02 Where do we subclass?
taxilian 15:02 I'm just not sure when we can do it
firebreath subclasses in PluginWindowWin
jshanab 15:02 Ok. I have now 5 render back ends. 1 works on all three browsers and 3 os's but is limited to 8 cameras, one is really really fast but crashes on chrome only, grrr
I wonder if I go windowless, can I do opengl on windowless if i am only drawing to it?
taxilian 15:02 not as far as I know
but you could try
jshanab 15:02 I can probably wait, even do it on the weekend. I just know a customer is going to call us on the carpet when we say it's their slow network. That excuse will only work for so long!
taxilian 15:02 hehe
I'll see what I can come up with
keep pestering me so I don't forget
jshanab 15:02 (a promise i can keep!)
What is the easiest way to cahnge a plugin from windowed to windowless? re-create or just change the factory
taxilian 16:02 just return true from isWindowless()
in your PluginCore object
jshanab 16:02 ok, cool
I saw somewhere on the net that by default the device contexts are pooled and you typically do not get teh same one, but I think it went on to say you can pin it so you do but to be carefull because there is a limit and you must be absolutly sure to release them. Now i just gotta find it
JuanDaugherty 17:02 config.h in the gen directory is supposed be completely generated by cmake files?
taxilian 17:02 more or less, yes
though you can overwrite it if you want
JuanDaugherty 17:02 i can't find where the various CUR-whatever in particular CUREXTENTS is ever set
taxilian 17:02 it comes from the foreach
it's the iteration variable for fileextents
JuanDaugherty 17:02 there's more than one (foreach)
taxilian 17:02 they don't nest
JuanDaugherty 17:02 ..\gen_templates\config.h is processed just once?
trynna track down how to set the extentsions, doesn't seem to be a way
it's only chrome, ie, ff, and opera are OK and chrome works with a tag
(i.e. and object tag)
*an
taxilian 17:02 processed if it changed whenever the prep script is run
you can set the extensions by adding a list to the correct variable in PluginConfig
it's something like FBSTRING_PLUGINEXTENTS or some such
if memory serves, seperate each extension with a semicolon
JuanDaugherty 17:02 FBSTRING_MIMEType looks like
taxilian 17:02 no
that's the mimetype
you need that too, but you said you wanted file extensions
JuanDaugherty 17:02 https://github.com/firebreath/FireBreath/blob/master/gen_templates/config.h line 26 right?
taxilian 17:02 that is populated based on your PluginConfig.cmake file
and yes, those are the relevant variables; FBSTRING_MIMEType, FBSTRING_FileExtents, and FBSTRING_PluginDescription
if you have support for multiple mimetypes then you set extensions and a description for each mimetype as well
but each set of extensions should be seperated by a semicolon
so if you just have one mimetype, you'll set(FBSTRING_FileExtents ".smf") or ".smf;.phj" etc
JuanDaugherty 17:02 got it see tit there now
s/tit/there/ i.e . PluginConfig.cmake
regenerating the blds anyway so wanted to address
I noticed in Chrome, Office plugins apparently accept "*" as an extension. Wonder how that works
taxilian 17:02 huh
I have never needed to use extensions, so I'm not really sure how they work
JuanDaugherty 17:02 that's what shows
in the plugins display
so do the semicolons separate different mimetypes or different extensions, your statement unclear above. Also confirm inclusion of "."?
taxilian 17:02 again, this is my memory and understanding; not 100% certain in some cases
but, I can tell you that as per cmake lists, you need one "entry" per mimetype
each entry I believe should be a semicolon-seperated list of extensions
with the period
JuanDaugherty 17:02 well I'm regenerating the VS solutions so will find out
taxilian 17:02 if you have set(FBSTRING_MIMEType "app/mime1" "app/mime2") then you need set(FBSTRING_FileExtents ".als" ".znm;.ief")
etc
well, it's not related to visual studio
it's related to what the browser expects
JuanDaugherty 17:02 ah OK
taxilian 17:02 I think I remember that it wants semicolons
but I could be remembering wrong
JuanDaugherty 17:02 so if I have two extents for app/mime1 how do I do that?
taxilian 17:02 instead of ".als" ".als;.als2"
you also need one description per mimetype
JuanDaugherty 17:02 i c
hows the weather in UT?
taxilian 17:02 today not too bad
it's been a bit chilly
snowed a lot over the weekend
I've spent all day today in my basement writing a db migration script, though =]
JuanDaugherty 17:02 normal snow here, not snowmaggedon or whatever
taxilian 17:02 remind me where you're at?
JuanDaugherty 17:02 western NY
taxilian 17:02 cool. yeah, not tons of snow here either, but enough to make me go shovel my driveway =]
JuanDaugherty 17:02 :)
on windows, the same cmake settings are used for all configs, (i.e. debug, release, etc.) or how is that mnged?
taxilian 17:02 basiclaly yes
there are some things (like libraries) that you can configure for each type
JuanDaugherty 17:02 kthx 4 confirming
Sujit_ 17:02 Hi - I have a question about licencing. If I develop a browser plugin using Firebreath, can I distribute it along with my software package without any licensing issues? I mean is FireBreath based on GPL or LGPL licencing?
taxilian 17:02 as listed on the website, you may use FireBreath either under New BSD or LGPL 2.1
Sujit_ 17:02 LGPL 2.1 - so I need permission from FireBreath to distribute, right?
@taxilian - thanks. I'm a bit unclear about it, but I will look it up
taxilian 18:02 you get to choose which of those licenses to use
you can use New BSD
Sujit_ 18:02 @taxilian - sounds good. thanks
ratika 21:02 boost libraries are giving error in windows 64 bit
could u please suggest an alternative
taxilian 22:02 ratika: what version of windows? and which version of firebreath? I assume you mean the packaged boost
ratika 22:02 Windows 7 64 bit
and cloning we are doing from git://github.com/firebreath/Firebreath
we didnt specify any version as such
we are following the old version video for Windows present on your website
cluecrowd 23:02 #join macdev
<burp>