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

IRC Nick Time (GMT-7) Message
neilg_ 08:06 FireBreathBot: tell taxilian: Which NPAPI spec are you looking at? Because according to - "The plug-in should retain a reference to the layer"
FireBreathBot 08:06 neilg_: I'll pass that on when taxilian is around.
neilg_ 08:06 FireBreathBot: tell taxilian: And "The browser is not responsible for releasing retained CALayer objects it receives via the "NPPVpluginCoreAnimationLayer" variable"
FireBreathBot 08:06 neilg_: I'll pass that on when taxilian is around.
neilg_ 08:06 But it looks like Chromium is releasing the layer because after the 2nd window sized message the MyLayer's dealloc is called
_pq_ 08:06 chromium is google chrome?
neilg_ 08:06 Kind of. Chrome is the Chromium but wrapped up and packaged by Google
That's how I understand it anyway :)
taxilian 09:06 neilg_: "The browser is not responsible for releasing retained CALayer objects it receives via the "NPPVpluginCoreAnimationLayer" variable"
FireBreathBot 09:06 taxilian: 14:29Z <neilg_> tell taxilian Which NPAPI spec are you looking at? Because according to - "The plug-in should retain a reference to the layer"
taxilian: 14:30Z <neilg_> tell taxilian And "The browser is not responsible for releasing retained CALayer objects it receives via the "NPPVpluginCoreAnimationLayer" variable"
taxilian 09:06 in other words, the plugin retains the layer, but it releases it later as well
as opposed to returning an autoreleased layer, which you would normally do if the browser would be the owner
neilg_ 09:06 Right
taxilian 09:06 FireBreath *does* retain it... just doesn't retain it extra when it returns it to the browser, because the browser is not going to release it
neilg_ 09:06 Which FireBreath does correctly... if the browser is Safari
Wait, scratch that, I'm wrong
taxilian 09:06 so the exception to the rule you noticed when we're running in Safari -- and that's only on Safari 32 bit -- is because Safari releases it when it shouldn't
yes, but that's okay. we still like ya. ;-)
neilg_ 09:06 Nope, we retain an extra time if we're Safari
taxilian 09:06 exactly
neilg_ 09:06 I'm not sure that we need to do that - I don't know why we do
taxilian 09:06 because Safari releases an extra time
and so we crash if we don't
neilg_ 09:06 But Chromium also releases at least one extra time
taxilian 09:06 not in my experience...
if it does, that's a Chromium bug
Chrome definitely doesn't
neilg_ 09:06 Because our MyLayer object dealloc is called
_pq_ 09:06 MyLayer is retained once by Firebreath?
taxilian 09:06 it is retained
neilg_ 09:06 Oh, I'm sure it is a Chromium bug. Just like Safari releases and shouldn't. That's where I'd ended up yesterday, both Chromium and Safari doesn't obey the NPAPI spec
taxilian 09:06 I didn't think Chrome and Chromium were that far out of sync...
neilg_ 09:06 Right, MyLayer is retained once by FireBreath - or twice if it detects Safari
taxilian 09:06 Safari 32 bit only
Safari 64 bit seems to behave correctly
_pq_ 09:06 the retain twice tweak has been added in 1.5.2?
neilg_ 09:06 How does it detect that? Because it only checks for IIRC
Does it have a different identifier if Safari is 64-bit?
taxilian 09:06 that is correct (to both)
_pq_ 09:06 sizeof long
taxilian 09:06 hehe
neilg_: in Safari 64 bit we're not running in the Safari process
we're in WebKitHost
_pq_: that would only tell us that we are a 64 bit plugin
says nothing about Safari
neilg_ 09:06 Ha! That makes sense
taxilian 09:06 we coudl be running a 32 bit plugin in 64 bit safari
_pq_ 09:06 64 bit plugin can't run in 32 bit safari
neilg_ 09:06 Well, I'm definitely seeing massively different behaviour between Safari and Chrome with Core Animation. The plugin works fine with Safari but not with Chrome/Chromium!
Always on the 2nd instance though. First time around is always fine
taxilian 09:06 _pq_: that is true, but 32 bit plugins can run in 64 bit safari (out of process)
_pq_ 09:06 I still haven't tried chrome
taxilian 09:06 and the issue is with 32 vs 64 bit safari, not with the 32 vs 64 bit plugin
neilg_ 09:06 2nd time around I only see the very last thing that was rendered into the first layer - regardless of what's being rendered to the new layer
taxilian 09:06 neilg_: that CoreAnimation code has been used successfully in Chrome on mac
_pq_ 09:06 ah that's tricky then
taxilian 09:06 neilg_: are you calling Invalidate?
_pq_ 09:06 is invalidatingcoreanimation supported on safari?
FireBreathBot 09:06 JIRA issue issue created by dougma
taxilian 09:06 _pq_: no
_pq_ 09:06 Thought so
FireBreathBot 09:06 JIRA issue issue commented by richard "do you know how to get the browser's HWND?"
dougma 09:06 yes, have patch
taxilian 09:06 man, I'm out for a day and it's gunna take me an hour to catch up on everything :-P
dougma: cool
_pq_ 09:06 Does google chrome run in 32bit by default on Mac?
taxilian 09:06 _pq_: I believe so, yes
neilg_ 09:06 I'm not calling Invalidate, no, I'm not using ICA
taxilian 09:06 could be wrong, but think so
_pq_ 09:06 Oh it doesn't even have a 64 bit binary
neilg_ 09:06 Though I'm interested to see what would happen if I switch
taxilian 09:06 neilg_: shame on you, then
neilg_: stuartmorgan would give you a severe talking to
_pq_ 09:06 yeh my plugin works on chrome
neilg_ 09:06 Not really, I wrote the code before FB supported ICA ;)
taxilian 09:06 you shouldn't use raw CA on Chrome
that's not my problem
switching shouldn't be a big deal
neilg_ 09:06 And the multi-threaded game engine we use can't (currently) tell the plugin when it rendered
_pq_ 09:06 Even all three mouse buttons work
taxilian 09:06 you can even use the autoinvalidate thing
neilg_ 09:06 Right, I can... exactly
You said it first ;)
I definitely WANT to use ICA
Eager fingers
_pq_ 09:06 You can use setneedsdisplay on CA to emulate ICA
taxilian 09:06 !findfile PluginWindowMacCA
FireBreathBot 09:06 Found 2 matching file(s) in the master branch. First 2 are:
JIRA issue issue commented by dougma "here:
dougma 09:06 taxilian: also... feel free to close FIREBREATH-87. It's fixed in the master now.
FireBreathBot 09:06 FIREBREATH-87: Summary: ActiveX crash when creating out of DOM
FIREBREATH-87: Assigned To: richard
FIREBREATH-87: Priority: Major, Status: Open,
JIRA issue issue resolved by richard
taxilian 09:06 brb
sabotaged|wk 11:06 trying to setup browser stream handler
are there any examples?
just trying to get the event macro right
taxilian 11:06 the best example is likely the SimpleStreamsHelper class
event macro?
sabotaged|wk 11:06 oh
i didnt realize this helper existed
i was trying to hookup EVENTTYPE_CASE(FB::StreamCompletedEvent
taxilian 11:06 ahh
there is an example of using the helper in FBTestPlugin
sabotaged|wk 11:06 i see it thanks
taxilian 11:06 someone should really document that :-)
kylehuff 11:06 I would, if I had any idea what you guys are talking about.
taxilian 11:06 we're talking about SimpleStreamsHelper
now you know, so you have no excuse
you already said you would
kylehuff 11:06 haha! yeah, I gathered that much of it -- my problem is I don't know what that does
taxilian 11:06 hehe
it's just a simplified interface to the BrowserStreams stuff for making Async GET and POST requests
sabotaged|wk 11:06 also FYI i tested and it seems to work fine with pre existing cookies, which is nice
i think i had that question a while ago
taxilian 11:06 check it on IE as well
firefox it definitely would
IE I'm not certain
sabotaged|wk 11:06 yeah, i did
taxilian 11:06 cool
sabotaged|wk 11:06 well, at least on IE9. oh i sure hope it's like that on IE8 and 7. i guess i better check too
kylehuff 11:06 okay, I see the example code, lines 311-321 in file FBTestPluginAPI.cpp -- I could add to the wiki, but outside of copy+paste, I'm not sure I could contribute anything more useful
taxilian 11:06 honestly, copy+paste would be a huge improvement over what is there now :-P
kylehuff 11:06 roger -- I'm on it then.
taxilian 11:06 thanks, kyle =]
sabotaged|wk 12:06 so is there any way to guarantee onStreamDataArrived will only get called with the complete body?
taxilian 12:06 nope; DataArrived gets called, if memory serves, when data arrives
sabotaged|wk 12:06 ok
taxilian 12:06 however, if you want the complete body you can use SimpleStreamsHelper, which waits for the request to finish and then gives you the full response
FireBreathBot 12:06 JIRA issue issue updated by richard
Commit 42480e1 on master by Richard Bateman: "Merge branch 'master' of"
Commit 878f222 on master by dougma: "FIREBREATH-98: fix ActiveX windowless not setting browser hw..."
JIRA issue issue commented by richard "As a side point, could you set your editor to use 4 spaces instead of tabs? having it inconsisten..."
JIRA issue issue resolved by richard "Thanks for the patch!"
JIRA issue issue commented by richard "Finally getting to looking at this again; there was some confusion about whether or not this was ..."
FireBreathBot 12:06 Commit 0b74cad on master by NoAntzWk: "FIREBREATH-69: Fix incorrect windows focus management for Wi..."
JIRA issue issue resolved by richard "This represents a significant change in how foucs management works; I have put it into 1.6.0. tha..."
FireBreathBot 13:06 Commit eb01323 on master by Richard Bateman: "Merge pull request #19 from FuzzYspo0N/master
taxilian 13:06 git pull requests
FireBreathBot 13:06 2 open pull requests:
dougma: add 64bit build support for windows
dougma: FIREBREATH-77: ActiveX: focus+capture on mousedown
kylehuff 13:06 okay taxilian, not sure how useful it is or if it is in a good spot (I put it under "Advanced Topics") -
taxilian 13:06 Perfect… though I did tweak it a bit
kylehuff 13:06 good, now it is your baby... lol
taxilian 13:06 lol
I don't mind tweaking things a bit or cleaning something up
I just hate when I have to do everything
kylehuff 13:06 I don't mind helping -- I wish I could do more, I just don't know what the hell I am doing
taxilian 13:06 lol. you'd be surprised how often I don't either
kylehuff 13:06 and btw, someone needs to get with the department of defense and have them port over their crappy activex controls for their online training software over to firebreath.
I'm sick of booting up an XP virtual machine just to use the damn website
taxilian 13:06 the main difference between the people who seem smart and those who seem clueless is that the ones that seem smart decided to start doing something, and then they found that most of it wasn't as difficult as expected
kylehuff 13:06 lol
taxilian 13:06 and the difference between the people who are smart and those who seem abjectly incompetent is that the ones who seem smart actually were intelligent enough to succeed
but that's a different problem that none of those currently in the room seem to suffer from =]
dan2 14:06 taxilian: hey
FuzzYspo0N 14:06 oi
taxilian 14:06 morning
FuzzYspo0N 14:06 taxilian, so i got my installer working but i used a wix editor instead of the build chain, but im curious what part of the wix file registers the dll's?
taxilian 14:06 it's a file autogenerated with heat
it'll be called np<your plugin name>.wxs
FuzzYspo0N 14:06 yea
in the win folder, i edited that one in a wix editor
or, am i confused
taxilian 14:06 you are confused
that's a different one
there are two .wxs files
one is generated during build and is in the build dir
FuzzYspo0N 14:06 yea ok, i figured. heat said my dll cant be used to output something something
is the command line somewhere in the cmake files?
taxilian 14:06 yeah, somewhere =]
it'll be a combination of wix.cmake and win.cmake
basically you use heat
FuzzYspo0N 14:06 cool ill search
i saw some on google but it gave me errors
taxilian 14:06 and then firebreath uses an xslt to make a few minor changes
one thing to remember
you *don't* want to just register the dll
you want to get the registry changes using heat and then have wix make them for you
FuzzYspo0N 14:06 yep
thats what im after
ill run the cmake and see
taxilian 14:06 hoenstly the easiest way woudl be to just build the default and then grab the command line
FuzzYspo0N 14:06 i actually just added a custom build to regsvr32 but i read its bad practice etc etc
taxilian 14:06 yes
very bad
don't do that
FuzzYspo0N 14:06 I know that the wix generates this for me with firebreath, im just learning as i go :)
i have no reason to be building wix scripts from scratch lol
i was just interesting and i might use it for something else
taxilian 14:06 example from my .sln file:
"C:\Program Files (x86)\Windows Installer XML v3.5\bin\heat.exe" file C:/code/firebreath/buildex/bin/FBTestPlugin/$(Configuration)/npFBTestPlugin.dll -out C:/code/firebreath/buildex/projects/FBTestPlugin/npFBTestPlugin.wxs -gg -srd -cg PluginDLLGroup -dr INSTALLDIR -var var.BINSRC -t:C:/code/firebreath\cmake\FixFragment.xslt
if errorlevel 1 goto :VCEnd
FuzzYspo0N 14:06 ah cool, helpful
i was missing a parameter or too
taxilian 14:06 you may not need all of the parameters for what you're doing
sabotaged|wk 15:06 so i notice that onStreamDataArrived is called without even having to call stream->readRange like the example does in onStreamOpened
do i need to call readRange?
taxilian 15:06 readRange is only for range requests
sabotaged|wk 15:06 ok
FireBreathBot 15:06 JIRA issue issue created by richard
FireBreathBot 16:06 Commit efb1f39 on firebreath-1.5 by Richard Bateman: "FIREBREATH-99: added check for not stream"
Commit 85960c2 on master by Richard Bateman: "FIREBREATH-99: added check for not stream"
FireBreathBot 16:06 Commit 98d7239 on master by Richard Bateman: "FIREBREATH-99: Fixed underlying problem behind SimpleStreamH..."
Commit 7cf44b6 on firebreath-1.5 by Richard Bateman: "FIREBREATH-99: Fixed underlying problem behind SimpleStreamH..."
JIRA issue issue created by richard
taxilian 16:06 oooh… our 100th issue
since we switched to Jira