IRC Log Viewer » #firebreath » 2011-07-05

IRC Nick Time (GMT-7) Message
linearray 03:07 taxilian_away: did you do ALL of that yesterday?
ArthurTent 03:07 hi
NoAntzWk 03:07 I'm sorry.... yesterday I left live's chat too suddenly. Taxilian, the fix that you commented to me yesterday about FF onload event, it's the issue FIREBREATH-62. Thanks for your answers linearray and taxilian.
FireBreathBot 03:07 FIREBREATH-62: Summary: FireBreath hangs, crashes, and otherwise doesn't work well sometimes in ff4
FIREBREATH-62: Assigned To: richard
FIREBREATH-62: Priority: Major, Status: Closed,
ArthurTent 03:07 FIREBREATH-62
how/why was the bot answering the issue summary?
NoAntzWk 03:07 So.... the javascript code that start a setTimeout() processing plugin's onload event in FBControlTest should be removed, isn't it?
I don't know ArthurTent... it seems that it detects the jira code tag.
ArthurTent 03:07 just a test...
linearray 03:07 there is a timer
ArthurTent 03:07 :)
linearray 03:07 min_age = 60 * 5
ArthurTent 03:07 /set min_age = 42*1
linearray 03:07 taxilian_away: why are you limited to 5 minutes per video? shareware screencaster? :)
someone-noone 04:07 hello!
linearray 04:07 hi
someone-noone 04:07 1) If i use "printf" function, where can i see the output?
linearray 04:07 stdout?
someone-noone 04:07 yes, i mean, should it displayed somewhere in browser?
linearray 04:07 nope
someone-noone 04:07 tnx
linearray 04:07
if you need to log a lot, use log4cplus:
someone-noone 04:07 another problem: my debugging (xcode4 + firefox) doesn't work. I add printf() function into createPlugin() and put breakpoint there. Then i'm making 1)"Attach to process"-> firefox-bin; 2) Debug->Continue; 3) refreshing the page with plugin but xcode doesn't stop on breakpoint...
tnx a lot about logging
linearray 04:07 what firefox version?
someone-noone 04:07 5
linearray 04:07 doesn't that run plugins out-of-process?
someone-noone 04:07 It creates "Firefox plugin process" for each plugin if you meant that
Also i disabled "Load symbols lazily"
linearray 04:07 yes, I think you would need to attach to the correct plugin process for your breakpoint to hit
someone-noone 04:07 tnx, i will try that
linearray 04:07 or you turn off out-of-process plugins:
someone-noone 04:07 i need to reconnect and try that :D brb
Everything works now! Tnx a lot!
gargle 04:07 Hi all :)
someone-noone 04:07 hello
gargle 04:07 perhaps you could answer to my question ...
Do you know the list of functions removed in firefox 5 compare to Firefox 4
someone-noone 04:07 unfortunately, no
linearray 04:07 why do you ask
missing something?
gargle 04:07 in fact, i write a plugin which run under firefox 4 but not under Firefox 5 ...
run on Firefox 3.6 too
linearray 04:07 any hints?
gargle 04:07 on Firefox 5, just some functions crash, not all
hints ?
linearray 04:07 like error messages this is the complete list of changes
gargle 04:07 Firefox tell the plugin have crashed, and in the console, it's written : "error calling method on NPObject!"
linearray 04:07 tried debugging?
gargle 04:07 not really easy ... i don't know how
(i'm under MAC isung xcode)
someone-noone 04:07
just did the same 1 hour ago, it works :D
gargle 04:07 nice :) thanks a lot, i will try
someone-noone 04:07 I've created a new project and trying to rewrite BasicMediaPlayer plugin step by step for understanding how it works. I've copied drawInCGLContext implementation and got linkage error. Seems to be it couldn't find OpenGL libs. I've added to Mac/projectDef.cmake find_library(OPENGL_FRAMEWORK OpenGL) line but it didn't help. What am i doing wrong?
linearray 05:07 do you also target_link_libraries against it?
someone-noone 05:07 no
linearray 05:07 take a closer look at firebreath-dev/examples/BasicMediaPlayer/Mac/projectDef.cmake
someone-noone 05:07 at first sight i found text near target_link_libraries identical to original project. Only after third look i found the difference. You were right, thx again! But now i got very strange which i can't understand: ld: "absolute addressing (perhaps -mdynamic-no-pic) used in std::bad_alloc::bad_alloc()from Factory.o not allowed in slidable image. Use '-read_only_relocs suppress' to enable text relocs "
should i use -read_only_relocs_suppress?
linearray 05:07 not the slightest idea
but if BasicMediaPlugin works, then you know that the answer will always be in there :)
someone-noone 05:07 yeap... but i can't understand where is the problem and what kind is it :D
gargle 05:07 sorry, back. can't help you because i don't use mediaPlugin
someone-noone 05:07 it seems that i'm wrong using xcode
when i make changes to *.cmake files and trying to build it asks me if it should reload project from disk and i answer "yes"
should i always run before this?
linearray 05:07 yes!
without prepmac your changes to cmake files will have no effect
someone-noone 05:07 it seems that i need to recreate project. Too many mistakes i've done :D
gargle 05:07 you have update the firebreath version ?
someone-noone 05:07 i have the latest
someone-noone 06:07 finally it works :D
gargle 06:07 prepmac solve your ptoblem ?
someone-noone 06:07 yes... actually, i used it before and it didn't help...but i made mistake: i didn't run prepmac when made changes at first time. And probably it broke my project. And there was some things that i didn't understand from first time also thay may cause to this problem too. So i've just recreated project with new "knowledge" and everything works fine :D
linearray 06:07 a!
oops, wrong window :)
someone-noone 06:07 don't fool us. We known that you wanted to do this here :D nice pic
Am i right in this suggestion: Core animation invalidating is better suiting(faster for CPU) for rendering video frames then simple Core animation ?
taxilian 08:07 someone-noone: except on Safari where ICA is not supported, you want to use ICA instead of CA
however if you build it with ICA in mind you shouldn't need to change anything for CA to work
arriu 08:07 does Firebreath have support for MouseEntered and MouseExited events? I cannot find them so I am assuming it does not.
taxilian 08:07 linearray: I am limited to 5 min per video because I'm using Jing Pro, which limits you to 5 min / video
arriu: depends on the platform
arriu 08:07 windows? =)
taxilian 08:07 mac / cocoa yes; not sure about others
don't think so
however if it's a standard windows event it is easy to add
arriu 08:07 alright, thanks!
taxilian 08:07 and send me a patch
linearray 08:07 wait, even the pro version limits you to 5 minutes?
that's what the website says
taxilian 08:07 yeah... I was kinda shocked at that too
and a little miffed
I don't know of any other inexpensive ones that work well, though
there are advantages to doing it 5 min at a time, though
but yeah, I did those all yesterday
more or less one after another
I should have used a better mic as well; they are too quiet
but ahh, well
linearray 08:07 according to this , this is the best
taxilian 08:07 worth looking at when I'm doing the cast from my mac, anyway
whcih for this series I can do
well,I'm going to go get dressed and showered and such. be back in an hour or so
someone-noone 08:07 VLC can do screencast
File->Open device->Header-> Choose display
linearray 08:07 yeah i just tried that
doesnt work so well, i'm afraid
someone-noone 09:07 Question is not related to this channel, but maybe some1 can help me. I'm trying to add 3d party libs to firebreath project on osx as described in manual (by adding target_link_libraries and include_directories) after that i'm running prepmac and trying to build project. And i'm getting "architecture mismatch warning(i386)". My libs are built on x86_64 architecture, they're 100% working - i'm using them in other project in
Even if i change arch to i386 in xcode warnings do not dissapear and i got linkage errors.
taxilian 09:07 are they only built on x86_64, though?
it could be that it's saying that there aren't any libs there for i386
someone-noone 09:07 y
you're right
ld: warning: in /libs/libavutil.50.25.0.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
so i need to build libs for i386 too?
taxilian 09:07 if you want the plugin to work on all browsers
alternately, if you only care about ff4+ and safari and only care about machines that can run 64 bit, you could just change it to 64 bit only
someone-noone 09:07 but why universal x86_64 arch is not supported?
afaik, it should be good both for all types of processors and os x versions
taxilian 09:07 that's not a universal arch
universal means that it compiles both x86_64 *and* i386 into the same "fat" binary
x86_64 is simply 64 bit
someone-noone 09:07 okay, i understand. Thank you. I thought that x86_64 is universal.... my fault. Going to make fat binaries
taxilian 09:07 good plan =]
someone-noone 09:07 What does extra enter key mean?
taxilian 09:07 he means that your message was very very long for a single line
and included about a paragraph instead of a sentence or two as is more common
he's giving you a hard time, is what it means =]
someone-noone 09:07 okay :) i will try to form my questions in short sentences in future
linearray 09:07 I'm just joking because it happened to you for the 100. time :)
someone-noone 09:07 i see :) I just want to ask questions that will annoy another users as less as possible.
So i thought if questions will be in message, it will annoy less then in several
now i see that it doesn't
taxilian 09:07 heh. no worries; middle ground is often the best
linearray 09:07 yeah, don't worry, there's no price tag on irc messages
taxilian 09:07 besides, we're usually fairly hard to annoy in here; primarily annoyed by incompetence and stupidity (not ignorance — there is a difference!) and people that expect us to do all the work for them
linearray 09:07 if there were, i'd be broke by now
someone-noone 09:07 i understand you. And thank you for understanding me
FireBreathBot 10:07 JIRA issue issue commented by richard "Interesting; that is going to require some looking into."
gargle 10:07 do you look the issue 94 in the bug tracker ?
taxilian 10:07 FIREBREATH-94
FireBreathBot 10:07 FIREBREATH-94: Summary: return variant based on wstring
FIREBREATH-94: Assigned To: richard
FIREBREATH-94: Priority: Major, Status: Open,
gargle 10:07 yep
do you have an idea where the problem come from ?
taxilian 10:07 gargle: I haven't had a chance yet; have you tried it on windows?
it's possible that somehow our UTF8 conversion stuff has gotten broken
gargle 10:07 no, on mac only
taxilian 10:07 hmm. I'll try to get to this soon; I've just been swamped
gargle 10:07 mmm, don"t uderstand, i write all the test code
ok, but don"t worry, I don't want to force you ;)
taxilian 10:07 sorry :-/ that one is likely not going to be simple to troubleshoot
it sounds like the conversion functions to convert from wchar_t to utf8 char may not be functioning correctly
you could step through the conversion by manually converting it with FB::wstring_to_utf8
and see what the result is
gargle 10:07 ok, i will try
another thing, do you have plugin problem with the Firefox 5 ? (Mac) the plugin is well detected, some function work but other not ... all worked fine on 3.6 firefox version ...
taxilian 10:07 I have not had any issues so far
but you are not the only one to report issues; I do not know what may be causing them
gargle 10:07 it occurs when functions return std::string, but i don"t know if it's the cause ...
functions which return int are ok
(and function which return FB::variant crash too)
taxilian 10:07 hmm
nothing actually returns FB::variant; FB::variant gets converted to an NPVariant before being returned to the browser
gargle 10:07 ok, but i try FB::variant, std::wstring and std::string --> fail
int --> ok
taxilian 10:07 FB::variant doesn't factor into that
because if you return an int it is converted ot a FB::variant
there is no difference between having a FB::variant return value and having a std::string return value if you return a string to the FB::variant
gargle 10:07 hmmm, strange
taxilian 10:07 so if you return an int from the function that has a FB::variant return type it should work fine
gargle 10:07 no, i return only int, no variant
taxilian 10:07 dude… there is no "no variant"
everything you return is a variant
that's what I'm trying to tell you
if you have the function so it can return FB::variant and then you return 5 it will work
there is absolutely no difference between returning 5 and returning FB::variant(5)
gargle 10:07 ok
someone-noone 10:07 just another stupid question: is there any tool on mac that shows file's arch ? "file" doesn't seem to work
taxilian 10:07 file should work
gargle 10:07 the error message using firebug is : "Error calling method on NPObject"
linearray 10:07 someone-noone: you can also look into 'otool'
someone-noone 10:07 it just tell me that file is library and nothing about arch.
okay, thx
taxilian 10:07 that's because ff4 and later have a bug that the exception message doesn't get passed
you have to attach a debugger to it to find out what actually happened
someone-noone: what is the exact line it output?
gargle 10:07 ok
someone-noone 10:07 file libvorbisfile.a
libvorbisfile.a: current ar archive random library
taxilian 10:07 interesting; I guess i've never tried it on a .a
someone-noone 10:07 otool -h libvorbisfile.a
cputype = 16777223
how can i decode this info ? :D
taxilian 10:07 try lipo -info
or the obnoxious version:
.lmgt mac os find architecture of file
FireBreathBot 10:07 Let me google that for you:
someone-noone 10:07 thx! lipo works!
And do not think that i'm not using search before asking questions
Just i used another query that didn't give me answer on it
taxilian 10:07 ;-)
someone-noone 10:07 i respect your time
but anyway thx
taxilian 10:07 no probelm
I do that partially just to be annoying, mostly just so you know how I found it
sometimes searching for specific types of things takes some practice, and seeing examples of what produced the useful result can be helpful
someone-noone 10:07 okay :) <3 you
yes...agreed with you... i just thought you(or another user of this channel) know answer, so it will not take your time
taxilian 10:07 oh, no problem at all
someone-noone 10:07 now i'm going to solve my real life problems. So i will not be here for several days.
I will miss on you and linearray <3
taxilian 10:07 lol. try not to have too much fun
someone-noone 10:07 hope i didn't annoy you. If not, i will come and ask more stupid questions :D
taxilian 10:07 lol. not at all
good luck
linearray 10:07 good luck
can't help it, but the way you put it sounds like your troubleshooting involves kidnapping and gunfights ;)
someone-noone 11:07 and sorry for my english. I'm re-reading my messages that make me blushing (not sure if it's right word. I used google translate :D). I will promice that i will improve my skills :D
taxilian 11:07 lol. no worries; it's at least as good as my Russian
someone-noone 11:07 no gunfights, just need to help my gf. But if to compare it to gunfights, i can say that this similar things :D
this is similar things &
taxilian 11:07 lol. well, good luck
someone-noone 11:07 good luck!
linearray 11:07 boost is totally crazy
I should make it a habit not doing anything before checking whether boost already has it implemented
taxilian 11:07 linearray: that's actually a very good diea
Sajty 11:07 hi
taxilian 11:07 hi
Sajty 11:07 I've got the keyboard working on linux, but I get graphical glitches in the game, what isn't there normally
is firefox using the videomemory?
taxilian 11:07 you got graphics working too? opengl?
Sajty 11:07 SDL input + Ogre
taxilian 11:07 awesome
it would not surprise me in the least if the browser is using video memory
I would love to see an example of how you did that
I couldn't get opengl working =]
Sajty 11:07 I will make pull request today
taxilian 11:07 cool
Sajty 11:07 basically I inject the mouse button event into SDL with a fake mask value
Damn, I have 1GB video memory, Isn't that enough for both? :S
taxilian 11:07 one would think. on windows the way you avoid that is by using a seperate thread
not sure on linux
Sajty 11:07 I use separate thread and a separated .so for the game
taxilian 11:07 if somehow your opengl contexts are clashing that would cause video glitches, though
Sajty 11:07
also it crashes with this all the time
Sajty 12:07 interesting...when I enable dom.ipc.plugins.enabled, its not even starting. Is the AttachWindow called from main thread?
ronuchit 14:07 hello
Sajty 14:07 hi
taxilian 14:07 linearray: at the bottom there are two files for ActiveX now
about 20 minutes worth
created with Camtasia
Sajty 14:07 nice videos :D
taxilian 15:07 fixing the first one
the opacity of the camera is wrong
ronuchit 15:07 is richard here
taxilian 15:07 yes, I am
ronuchit 15:07 hi, i'm having a lot of trouble understanding how to utilize a plugin to print a new image file type to the browser window
it's a file similar to jpeg
so in mypluginapi.cpp, i created a new method that loads the characters of the file into a memory buffer
and i'm not sure how to then print the contents of that buffer to the browser window
taxilian 15:07 first of all, there is no reason you'd need to ask me specifically that question
there are several people in this room who could help you with that
secondly, what platform/
ronuchit 15:07 windows
taxilian 15:07 have you read my blog post on drawing on windows?
ronuchit 15:07 yes
the thing is i'm not sure how to get the pointer to the pluginwindow
taxilian 15:07 go read it again, then
because it's there
I'll give you a hint, though: it's not in the API
ronuchit 15:07 this is something i tried to do:
shared_ptr<PelicanImagingPlugin> strongPlugin = m_plugin->lock();
PluginWindow* window;
window = strongPlugin->GetWindow();
return window->getWindowPosition();
yeah, so i tried those 4 lines of code
taxilian 15:07 that might work; depends on whether or not the window has been attached yet or not
ronuchit 15:07 but compiler doesn't recognize shared_ptr
taxilian 15:07 shared_ptr is a boost::shared_ptr
so you need the namespace unless you specified it already
ronuchit 15:07 am i supposed to include a file?
oh ok
let me try that
taxilian 15:07 however, how much have you changed since you ran fbgen?
answer my question
ronuchit 15:07 what do you mean?
i haven't changed any files except this mypluginapi.cpp
taxilian 15:07 okay
go read your files again
because you're obviously not really looking at the code that is there
there is already a getPlugin() method on that object
that returns the plugin
and if you had really read you wouldn't need to ask me where to get the PluginWindow, because it tells you in the first section
or if you had opened the myplugin.cpp and myplugin.h files you would see that the pluginwindow is passed to several functions - event handlers - in that file
and all of this would be relatively clear
so I'm not sure where you got confused; it seems clear to me, but if it isn't please help me fix it
ronuchit 15:07 ^ yes i opened those files, but i thought since those functions are only called once each, they wouldn't be particularly useful for what i'm doing
taxilian 15:07 they are critical to what you're doing
you can't do any drawing at all until after AttachedEvent is called
if you try to call anything before that, you will crash because the window isn't there
you can't do any drawing after DetachedEvent is called
and doing drawing inside your API class doesn't make any sense at all
though you technically can do it
but if you go look at your API class it already has a getPlugin call that shows you the datatype to use
sorry, I'm not trying to be rude; I'm probably sounding harsher than I intend to
ronuchit 15:07 no problem
taxilian 15:07 just remember; your API class is just a javascript interface. It's not integrally tied to the lifecycle of your plugin at all. you can proxy things into there, but it doesn't really make sense
ronuchit 15:07 so getPlugin returns a pointer to myplugin....and with that pointer I can call the functions of myplugin.cpp that are already going to be called when the plugin object is created?
i don't see the point of that
taxilian 15:07 use good object oriented design; put things in the place where they originate. Drawing code could go in it's own object if you wanted, or in the plugin object… but the JSAPI object? That's silly
what I'm saying is that while you can use getPlugin to call into myplugin, it doesn't make sense to do so to get the window. it makes a lot more sense to have myplugin know about drawing and the window and make mypluginapi know about javascript and interfaces that are exposed to the outside world
but as to "the point of that", it does exactly what you were trying to do in the code you pasted me; that's why I pointed you at it.
ronuchit 15:07 i see
the problem that arises for me, then, is how to access the functions of myplugin.cpp in my javascript code; it seems like i can only access the functions of mypluginapi.cpp (which makes sense because that's the interface)
taxilian 15:07 right
you access the functions of mypluginapi and then when needed it calls into myplugin
using getPlugin()
ronuchit 15:07 "when needed it calls into myplugin" is that automatically done?
taxilian 15:07 no; that's what you do
but if you're checking things related to the pluginwindow none of that should work or be hooked up until after AttachedEvent
because otherwise there *is* not pluginwindow
which is why it doesn't make sense for the api to call the winodw directly
rather, have the plugin know about the window and the api talks to the plugin as needed
ronuchit 15:07 would you mind explaining in more detail AttachedEvent and how to call it? i read your docs but i'm still pretty confused on that
taxilian 16:07 you don't ever call AttachedEvent
it is called by the browser
it is an event that your plugin handles that lets you know that there is now a window available
ronuchit 16:07 what would cause the browser to call it
taxilian 16:07 the window getting set
AttachedEvent is called when the window is given to the plugin
DetachedEvent is called when the window is about to go away
ronuchit 16:07 ah i see
so are these automatically called or would i have to set the window myself
taxilian 16:07 they are automatically called
ronuchit 16:07 ok, so you're saying that I should make sure attachedevent has been called before beginning my drawing
taxilian 16:07 yes
Sajty 16:07 Damn, SDL is getting wrong Display, when I call XFlush before initializing SDL. If I dont call Xflush, I get BadWindow error when IPC is enabled. if IPC is disabled, everything works.
I think there is some timing problem.
ronuchit 16:07 how to check status of attachedevent?
taxilian 16:07 ronuchit: attachedevent is designed to be where you set up your drawing
Sajty: hmm
ronuchit 16:07 well this is weird
my javascript code randomly stopped recognizing my pluginapi.cpp methods
var plugin = document.getElementById("ronPlugin"); plugin.load("test.ron");
taxilian 16:07 most likely your plugin isn't loading properly
ronuchit 16:07 it says "load" is not a method