IRC Log Viewer » #firebreath » 2011-01-18

IRC Nick Time (GMT-7) Message
FB_GitHubBot 00:01 FireBreath: master Richard Bateman * 2bdaa4f (3 files in 1 dirs): Added support for boost::tribool in JSAPIAuto and FB::variant
FireBreath: master Richard Bateman * 80bbb64 (17 files in 6 dirs): Partial support for windowless plugins on IE ...
FireBreath: master Richard Bateman * e5ab547 (9 files in 1 dirs): Normalized Mac PluginWindow classes with standard methods
FireBreath: master Richard Bateman * 7566bcb (2 files in 1 dirs): Normalized pluginwindow on linux to match new standard
FireBreath: master commits 74c190b...7566bcb -
Jamil 03:01 Hi, anybody can help me in my Assertion Failed problem when using firebreath plugin in IE?
iaincollins 03:01 Hi Jamil, hmm probably not many people around who can help right now
(people usually get in around 12:00-13:00 UTC, so in 2-3 hours)
could describe the problem now though
Jamil 03:01 when using my firebreath plugin inside a Java Server Faces Fragment page on IE I have an Assertion failed! dialog message
\firebreat...\shared_ptr.hpp Line:418 Expression: px != 0
What can cause this? Oracle said this is a firebreath c++ problem
I sent an email to taxilian about that but no answer
iaincollins 03:01 Sorry, I don't know enough about FB to answer that. Would /guess/ it has something to do without the ptr is being used?
*without - with how
... assuming you are assigning an object or value to one, would help to know more about how you are using them and under what circumstances the error occurs
Jamil 03:01 The problem is that the same FB plugin is working on any other format jsp/jspx
iaincollins 03:01 as in, to render the HTML page?
Jamil 03:01 and the same jsff page is working on other browsers!!! so strange
iaincollins 03:01 does the plug-in rely on any parameters being specified on the page?
if so, there /could/ be a bug in the specific implimentation of the plugin, that might cause a problem if the markup on the page was different (e.g. missing/invalid config options)
the only things I can think that might cause that to be browser specific might be related to handling numerical values as input to a method
but that's just a best guess (based on the most questions I've seen come up before)
Jamil 03:01 I used the BasicMediaPlayer plugin which comes as sample from FB and the call of valid() method which must return a true/false causes the Assertion failed.
iaincollins 03:01 oh
Was that FB 1.3.2 or a 1.4 release?
Jamil 03:01 1.3
iaincollins 03:01 oh, hmm odd.
Have you tried the other example? I suggest that it's simpler but has the same valid() method
(maybe there is some issue with config options on the BasicMediaPlayer example, I haven't played with that one much)
Jamil 03:01 yes the same...even my real plugin
iaincollins 03:01 1.3.2 should be rock solid though
Hmm that's really weird.
That's /very/ odd.
Jamil 03:01 yes
do you think it is oracle problem, IE problem or FB one? or the combination of all three
iaincollins 03:01 Hmm not Orale or IE, and not /specifically/ FB
For want of any better ideas, I would compare the markup that gets generated for the page
maybe (somehow) the HTML markup for the plugin object is not right
If it's just checking for the valid() function, especially in one of the examples of 1.3, it should be absolutely fine in all browsers.
You say it works on other test pages?
Would be good if you could paste the markup from the HTML that your using in both cases (i.e. from the browser View Source)
Jamil 03:01 yes on other pages type like html, jsp, jspx etc..
iaincollins 03:01 e.g. <object id="myPlugin" type="application/x-myplugin-type" ... />
that's the only thing that would have any impact that I can think makes any sense :/
Jamil 03:01 do you mean the generated one right?
iaincollins 03:01 yeah that especially
(though comparing them both would be good, just for reference)
Jamil 03:01
this is from jsff page
iaincollins 03:01 kk, ty
oh hmm
I am seeing stuff like /AssertionFailedIE/adf/images/t.gif
can you paste what the error you see looks like?
(e.g. screenshot)
I am wondering if the server side is trying to somehow parse the object or something strange...
Jamil 03:01
this from a jspx working page
iaincollins 03:01 is the server running on your local machine?
Jamil 03:01 yes, but I tested on remote machine
iaincollins 03:01 okay
Jamil 03:01 this is the error details
iaincollins 03:01 thanks, that helps
Jamil 04:01 ok
iaincollins 04:01 hmm interesting
so I don't have a straight answer for you yet, but...
the first page (working) has: <script type="text/javascript">var AdfAssert = new Object();AdfAssert.DEBUG = false;</script>
Jamil 04:01 ok
iaincollins 04:01 gah, no sorry ignore that, my editor just freaked out and did something bad
*goes back*
Jamil 04:01 note that I named the project AssertionFailedIE when I created a full testcase to send to oracle people
iaincollins 04:01 (sometimes I hate TextMate, it's freakout completely trying to parse the markup)
ooh something
Jamil 04:01 ?
iaincollins 04:01 okay, maybe what's happening is it's invoking the plugin before is ready (a guess), but there is a difference that's interesting in the markup...
Jamil 04:01 where?
iaincollins 04:01 From the working page:
new AdfRichCommandButton('drecb2',{'clientListeners':{action:pluginValid},'accessKey':'\uffff','text':'alert plugin valid'})
From the broken page, arond the same place (and nearest similar thing I can find):
Jamil 04:01 yes I see it
iaincollins 04:01 new AdfRichCommandButton('r1:0:drecb2',{'clientListeners':{click:pluginValid},'accessKey':'\uffff','text':'alert plugin valid'})
they see to be mutually exlcusive
I am guessing that triggers some JavaScript library included earlier in the page to try and invoke the plug-in before it's loaded
(e.g. on page load)
that might only be half the answer, but I would bet it's related to that
Jamil 04:01 something like onload="load()" you mean?
iaincollins 04:01 yeah
or, even just maybe on click I guess
although hmm the plug-in <object> tag is static in the page
so I might be slightly wrong there
but I would definately point the finger at how it's calling the method, I just don't know anything about faces :(
can you add an HTML snippet that calls pluginValid(); directly?
e.g. <button onclick="pluginValid();">Test</button>
Jamil 04:01 ok
is this what you want?
iaincollins 04:01 yeah something like that, are you able to insert some plain markup like:
a href="#" onclick="javascript:pluginValid()">alert plugin valid</a>
(or the button example) into your jsff page?
Jamil 04:01 <af:commandButton text="alert plugin valid" id="drecb2"> <af:clientListener method="pluginValid" type="click"/> </af:commandButton>
it uses adf faces components
iaincollins 04:01 To clarify, I think I was probably wrong about the onload stuff, but am right about how the JS gets invoked being the issue
yes,can you create an example not using that?
or, hmm change "click" to "action" even?
I have no idea what that actualy /does/ in ADF Faces, but just noting it seems to work in the first example, but not in the latter :)
Jamil 04:01 ok, testing action...but note that the same code is used in jspx
action gives the same assertion error
iaincollins 04:01 okay... I wonder why the output is different in the JSPX page then
can you not add plain markup to the page?
Jamil 04:01 ?
iaincollins 04:01 like: <a href="#" onclick="javascript:pluginValid()">alert plugin valid</a>
just straight HTML markup, calling the JavaScript method on the plug-in directly
Jamil 04:01 ok doing
iaincollins 04:01 kk .. hopefully that should work :)
the plugin embed markup looks the same, as does the JS so that doesn't look like it's a problem
Jamil 04:01 yes it works
iaincollins 04:01 yay (sort of)
Jamil 04:01 thx
iaincollins 04:01 no worries :)
Jamil 04:01 but I need to use the adf component to follow the workflow
iaincollins 04:01 I wish I knew more about faces and could suggest how to make it play nicely
Jamil 04:01 any idea ?
iaincollins 04:01 No sorry :/ I guess there are different way of attaching 'actions'
I have zero idea why it wouldn't work
I mean, the plug-in is already loaded and static on the page
Jamil 04:01 ok, I will play with since we know now the cause of the error
iaincollins 04:01 and I am guessing if you change the click event to something like a test method it works fine
kk, good luck :)
Jamil 04:01 thanks again for all this help...I need to go now...back in two hours
taxilian 09:01 Darn, he left
Lol. Both
amackera: Did you see my msg abt IE windowless?
neilg_ 09:01 The mailing list has been really active this week! That's great news for FB!
taxilian 09:01 that it has been
and that it is
neilg_: are you ever going to try the multiple mimetype stuff?
neilg_ 09:01 Yes, it's probably 2-3 weeks away though before I get onto that. Currently porting the game engine to OSX (which is when I'll move back to FB to get the plugin working on OSX and get multiple MIME tyepes)
Sad but true :(
taxilian 09:01 lol
amackera is ignoring me. *sob*
how dare he not monitor hte chatroom every second of every day?
that's it, I'm cutting his FB Dev Team salary by 75%
neilg_ 09:01 Divide by zero error
scJohn 09:01 taxilian: what is the correct way to upgrade? I pulled the latest from git, removed my build directory and ran the prep command.. but I am getting an error opening include file boost/lambda/construct.hpp in project ScriptingCore
do I need to re-run the fbgen?
taxilian 09:01 scJohn: try doing a git submodule update
scJohn 09:01 ah, i forgot about that.
taxilian 09:01 wish it would it automatically
scJohn 09:01 is the prep command required after that?
taxilian 09:01 hmm. probably not a bad idea
running the prep command again never hurts
unless you broke the rules :-P
scJohn 09:01 i try not to
what is the best way to have something happen once? it it even possible?
taxilian 09:01 once per module?
scJohn 09:01 by once i mean once per browser session
taxilian 09:01 look at your plugin file
it's documented there
scJohn 09:01 jut no absolute guarantee
taxilian 09:01 actually that's changed in 1.4
it's not guaranteed to be once
at least, I'm about 97.8% sure of it
there might be some really strange edge case, but it doesn't seem likely
scJohn 10:01 it should be able to run more than once (hardware initialization) however the plugin seems to crash on the second page load if I do it in the plugin api constructor.
taxilian 10:01 iaincollins: thanks for helping him out this morning. for future reference, the error he saw was the equivilent of a NULL pointer exception; it really shouldn't cause a crash, though, to try to access it early :-( I need to see if he can get me a stack so I can fix that
scJohn: yeah, staticinitialize is definitely the place to do that
particularly in 1.4
that's actually a really major improvement
scJohn 10:01 great
taxilian 10:01 trying to remember if I remembered to list it as such...
scJohn 10:01 any benefit to adding the git / prep commands to the version history page (so people remember to do the submodules)?
or is there a better place
taxilian 10:01 probably a good idea; I'll do that
iaincollins 10:01 taxilian: I was guessing it was something like that...still no idea how it could be happening with just using the valid() method in the example plugins though!
scJohn 10:01 ok, or let me know where/what you want and I will update
iaincollins 10:01 (guessing the JS API's in 'faces' is maybe trying to pass the function parameters)
taxilian 10:01 iaincollins: it wouldn't be specific to the valid property, but the JSAPI object itself is a shared_ptr, so if it hasn't been created and something isn't checking properly that will happen
that's actually mostly been reworked in 1.4, so it's probably fixed
iaincollins 10:01 I'll gloss over not understanding how it can be invoked enough to crash, but not enough for the function to work and focus on the '1.4' part
taxilian 10:01 lol
I can explain it, if you want
it's not really hard
iaincollins 10:01 I am actually interested, but wouldn't want to waste your time :)
taxilian 10:01 you just have to understand that you can't pass a JSAPI object directly to the browser; you have to wrap it in something
the plugin object itself always has an API
iaincollins 10:01 Oh right
that makese sense
taxilian 10:01 so if the API hasn't been set yet, it'll be an empty shared_ptr
the API can't be created until a certain point in the initialization or we won't have a browserhost for it
iaincollins 10:01 *nod*, and that wrapper is what's in the Firebreath.dll?
taxilian 10:01 more or less, yes
on firefox it's an NPObject
NPJavascriptObject, to be precise
on IE there are technically two, but implemented using a shared base class JSAPI_IDispatchEx
iaincollins 10:01 oh cool, that's interesting to know, and helps make the universe make sense again.
taxilian 10:01 both FBControl (the main plugin) and COMJavascriptObject (all other objects) inherit from that
iaincollins 10:01 is it split on IE because there are different ways of invoking a plug-in, or because of differences in different versions of IE?
taxilian 10:01 the object hiererchy in FireBreath is actually pretty easy to understand — in small pieces, anyway
it just gets hard when you try to hold it all in your head
iaincollins 10:01 :)
I see, thats interesting, thanks!
taxilian 10:01 I think Georg and I are the only ones to fully do that =]
iaincollins 10:01 okay, for now please travelling on seperate planes... ;-)
taxilian 10:01 lol
scJohn 13:01 taxilian, i am having trouble with the latest fro git under IE
the plugin crashes when I navigate away from the page.
I started from scratch and this is the FBControl.htm page with no modifications at all
seems to work under chrome
taxilian 13:01 scJohn: latest on master or firebreath-1.4?
scJohn 13:01 let me check
taxilian 13:01 if master, I recommend that you switch to 1.4 for the time being
scJohn 13:01 ok
master.. i'll switch, thanks
taxilian 13:01 let me know if the problem exists there
the stuff on master is the experimental IE windowless support
which I need to finish
and probably isn't completely stable, particularly if you're getting a crash
scJohn 13:01 sorry, i am just used to working in master/trunk
taxilian 13:01 no problem; I probably should have put this in a different branch
during a beta I'd actually rather everyone worked on the beta anyway, since those are the features that need to be locked down
scJohn 13:01 i was not paying attention and figured master was the latest beta.. my bad
FuzzYspo0N 13:01 anyone use eclipse in here :P
dangerous question i know
scJohn 13:01 yes, but java and python only
FuzzYspo0N 13:01 hmmk , well what i want to do, is run a program without it blocking the main app
does that make sense?
basically i have a 2 stage system i must first run the application, and then connect to it using a debug configuration
scJohn 13:01 yea, "run as" is not working
FuzzYspo0N 13:01 Which is a pain because i cant do both from external tools and debug, or build and debug
as in? not implemented?
scJohn 13:01 sorry, not working for you?
I only run java pgms via the debug and run as
FuzzYspo0N 13:01 Well, i cant add a run configurarion - only a debug config
scJohn 13:01 i normally run via the command line when doing that.
FuzzYspo0N 13:01 but can you command the ide from there, dont think so?
scJohn 13:01 probably not
FuzzYspo0N 13:01 yea, and debug as is the same proble
all debug does is connect to a host exe
if thats not running, it does nothing
taxilian 14:01 are you debugging a firebreath plugin? (just curious, just not sure how to do that with eclipse, would like to know =])
FuzzYspo0N 14:01 nah :)
tis my game engine
I embedded the v8 debugger protocol
so i can remote debug the game via eclipse
which is super useful
(the games are written in javascript_
so pretty much this - taxilian
taxilian 14:01 cool
how hard is it to embed v8?
FuzzYspo0N 14:01 hmm, lol
thats a double edged question
how hard? simple
conceptually : wtf
they have so much advanced c++ voodoo and almost no docs on the stuff
taxilian 14:01 heheh. I think it would be cool to make it easyish to embed a js library into firebreath
FuzzYspo0N 14:01 so, its a lot of the time trying all the stuff you can
taxilian 14:01 I believe it. I'm not real impressed with most of google's dev tools, TBH
FuzzYspo0N 14:01 im REALLY impressed with v8
just i started before the trend of node.js
Which has spawned a hellspawn of sudden interest
taxilian 14:01 they use scons, but not normal scons, then you have to install 100 different dependencies, etc
FuzzYspo0N 14:01 heh, weird, normal scons works for me :)
taxilian 14:01 well, maybe for v8
FuzzYspo0N 14:01 but i just use visual studio
taxilian 14:01 not for chromium or breakpad
FuzzYspo0N 14:01 true
taxilian 14:01 'course, many say the same about us using cmake =]
FuzzYspo0N 14:01 chromium isnt good imo on the devflow
a 900mb sdk gets me down
taxilian 14:01 but with cmake it's really easy to get up and going; every google tool I've used has been a nightmare
FuzzYspo0N 14:01 but yea, what did you mean in firebreath?
or rather, to what extent would you embed it?
taxilian 14:01 make it possible to have v8 running, then have a JSAPI adapter to it
so you could write internal plugin stuff using javascript
FuzzYspo0N 14:01 hmm interesting idea
taxilian 14:01 of course, with JSAPIAuto it's almost so easy to do things that you don't need to
FuzzYspo0N 14:01 yea, for c++ guys :)
but js is a huge developer crowd
would be golden
taxilian 14:01 true
FuzzYspo0N 14:01 thats why i chose v8 originally
having js means 8/10 friends have used js directly
due to web code
taxilian 14:01 so you could have JS plugins that require signed js to use or some such that can use local filesystem calls
FuzzYspo0N 14:01 heh its quite funny, have you seen CEF (chrome embedded framework)
It supports plugins
which is amusing since my game embeds chrome with plugins
so if you are playing inside chrome it can be an endless tunnel of the same plugin
taxilian 14:01 lol
FuzzYspo0N 14:01 you just do ui.loadURL('localhost/game');
and then load it in chrome
each child will load a child
it kinda killed my ram though
so i wont do that in a while, need to guard against it
taxilian 14:01 hehe
FuzzYspo0N 14:01 i havent gotten around to messing with the plugin yet, i was gonna ask amackera to show me something regarding the opengl, as i wasnt seeing output
not sure it would take him more than 30 seconds to make a blank window of gl :P
so that would be nice, id be able to make 10 examples from there i guess
but when im done fixing some bugs on the engine, im back to trying to get it in browser
taxilian 14:01 I keep trying to talk to amackera, but he hasn't answered me
FuzzYspo0N 14:01 heh :)
i need to get back on this code, later!
scJohn 14:01 taxilian, i am still getting the exception when i leave the page. this is on the 1.4 branch vanilla plugin and the FBControl.htm file
taxilian 16:01 scJohn: I'll look at that right now
taxilian 17:01 scJohn: are you around?
taxilian 17:01 scJohn: I can't crash it so far
scJohn 17:01 well i wonder what i am doing wrong.
I also can't seem to get 1.4 to work in express without making any changes to VS
taxilian 17:01 hmm. it's possible I broke something
what error do you get?
scJohn 17:01 when i removed my VS express configuration i get errors on tin altbase.h include file
taxilian 17:01 try deleting the build dir
scJohn 17:01 ie when i tried to follow the current 1.4 instructions of you don't have to make any changes.. I re-installed the WDK as well
i did.
taxilian 17:01 could you do it again and pastebin me the output of the prep script?
scJohn 17:01 could be i was just burnt out today.. looking at the same error all afternoon
yes, will be later
ok, so one thing on the prep script
i don't have python on my windows partition
so i run that on linux and copy the directory to the win machine
crud, that is the fabgen python script
yes, i can email the prep script.
taxilian 17:01 you shouldn't need python for prep
fbgen is just to start a new plugin
scJohn 17:01 i know... i was thinking about (or whatever it is named)
taxilian 17:01 ahh. yeah, I'm working on making an enhanced web version
but not sure when I'll get it up
it will probably have full features only available to those who donate
scJohn 17:01
i see that seems to have found my mfc/atl stuff, i am starting another build on that now.
taxilian 17:01 yeah; it found it, so there must be something wrong with the include dirs
scJohn 17:01 it could be i screwed up earlier. i'll let you know how this build comes out.
taxilian 17:01 cool
scJohn 17:01 after i get the kids to bed :)
taxilian 17:01 hehe. I understand that problem
taxilian 17:01 amackera: are you around yet?
scJohn 17:01 That build failed looking for atlbase.h
taxilian 17:01 which file?
and which project?
scJohn 18:01
------ Build started: Project: PluginCore, Configuration: Debug Win32 ------
\projects\firebreath\src\config\win_common.h(31): fatal error C1083: Cannot open include file: 'atlbase.h'
taxilian 18:01 hmm. okay
give me a few
scJohn 18:01 no hurry, i am going to watch a basketball game..
I can obviously get past this with the old express stuff for now.
but that does not explain the other problems.
taxilian 18:01 I just pulled up my express vm
so I should be able to track it down
scJohn 18:01 ok, thanks.
taxilian 18:01 scJohn: is this on your own plugin or on FireBreath?
sorry on FBTestPlugin?
scJohn 18:01 IU am just trying to run from the wiki, ie no modifications
taxilian 18:01 with a new project?
did you run fbgen before or after you updated?
well, no matter; I found the issue
taxilian 18:01 scJohn: I will have it fixed this evening; thanks for the heads up
michael 21:01 hi anyone here?