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

IRC Nick Time (GMT-7) Message
kai__ 03:08 Set TabProcGrowth to 0 cause IE 10 failed to load Plugin,is it a problem?
I use firebreath to make a plugin,It works well while I open it in IE 10
then I create a new website project in visual studio 2010,add the html which hosts the plugin into the project
when debugging the project,weird things happen
the plugin failed to load
then I try to new ActiveXObject but get "automation server can't create object" error
but if I open an new IE 10 window,it works well
even call new ActiveXObject in script works
diorcety1 07:08 re
McEasy 10:08 Hey, have a question regarding updating the plugin. I read through the wiki and this SO question (http://stackoverflow.com/questions/7031125/can-i-install-plugin-without-restarting-the-browser-and-machine) and came to the conclusion that there isn't a cross platform standard to check for updates to the plugin. Omaha and the update engine exist, but they're platform specific. Is there any other way to more standardize the updating or are these the best opt
taxilian 10:08 those are the best options I know
McEasy 10:08 Fair enough, another question then. How did you name the folder and file for the windows plugin? Or did you not use wix's auto created installer for that and did it yourself.
taxilian 10:08 I changed the wix installer
well, back in the day I used a different type of installer
but you can change the wix installer
it isn't hard
just remember to change the template and rerun the prep script so it regenerates it
(*not* fbgen, just the prep script)
McEasy 10:08 hah, yup, never fbgen ;)
The wix template you're referring to, is that the file in projectname/win/wix/?
taxilian 10:08 yes
McEasy 10:08 Awesome, I'll look into doing that! I noticed there's no mention of linux for an installer or updater.. is that because Linux has no way of doing these tasks (well)?
taxilian 10:08 it's because I don't develop plugins for linux and nobody else has bothered to write one
McEasy 11:08 Fair enough, thanks for the help (and prompt response)!
taxilian 11:08 good luck
kylehuff 11:08 the lack of a linux installer is probably because there really isn't much to it. all that is required is to copy the .so and create any desired links. wham, bam, done.
McEasy 11:08 Wham bam thank you ma'am. But yeah that's what I've gathered.. just a simple copy script and call it good.
McEasy 14:08 Back to the whole updating thing. First, how do you set the plugin version? I haven't noticed anywhere that lets you specify version #.
McEasy 15:08 grep saves the day! Found it in the pluginconfig.cmake file.
mattvv 15:08 anyone had any success compiling with multiple cores on windows
i've triped /mp and /j and both are giving warnings and being dsiabled
ie/ Command line warning D9030 : '/Gm' is incompatible with multiprocessing; ignoring /MP switch
McEasy 15:08 I'm running a vm of windows on xeons with no issue, so not sure what the multi core problem is. ><
mattvv 15:08 my build is just super slow, i'm trying to set the /mp flag in my cmakelists and getting that error
are you using that flag?
i can compile without it just only uses one core and is sooo slow
McEasy 15:08 I don't think so
oh, yeah my compiling was god awful slow
It still works though, right? Easy solution is deal with it.. but that's just me
mattvv 15:08 oh weird, looksl ike its to do with debug mode
if i use release for build it compiles fast
so i'm guessing VS is passing this /gm in debug mode
god damnnnit vs
McEasy 15:08 haha
wait the /mp flag works with release but not debug?
mattvv 15:08 yup
McEasy 15:08 iiinteresting
Well, glad it works then!
mattvv 15:08 hahaha yeah
super weird
but oh god its fast to compile for release
woooo
McEasy 15:08 now I need to add that flag so I never have to wait 10+ minutes for it.
mattvv 15:08 yup, i'm gonna hunt through vs and see if there's a way to turn of /gm for debug mode
i think its for incremental build stuff
McEasy 15:08 Smart man, let me know if you find it! I'd be more than happy to reduce my compile times
mattvv 15:08 will do will do!
McEasy 15:08 thanks!
mattvv 15:08 my collegue is going to kill me though
McEasy 15:08 ?
mattvv 15:08 he's been on this project for about 3 months
this is my first day on it
McEasy 15:08 haha, high 5 for you.
mattvv 15:08 the build is like 10minutes
hahaha
can't wait to see his face when i add this stuff
McEasy 15:08 "let me just compile this real quick..."
mattvv 15:08 hahahaha
McEasy 15:08 That's when you know you're a boss.. bragging about compile times.
mattvv 15:08 hahaha
visual studio is a maze of options
McEasy 15:08 It really is.. I normally develop on linux command line so visual studio is crazy to me. It is super powerful.. but still brand new to me.
mattvv 15:08 found the sucker hidden in there, it's under c/c++ and code generations
in the properties menu on your project
unfortunately i don't think theres a way to change that in cmake
so might have to change that each time
lameee
McEasy 15:08 ouch
mattvv 15:08 looks like its a visual studio default
i wonder if i can change that somehow
McEasy 15:08 looking at it now
ah, there it is
and how did you set the /mp flag?
mattvv 15:08 i did that in my cmake options
McEasy 15:08 hmm.. haven't compiled on windows in awhile but can't tell if it's going faster or not ><
mattvv 16:08 haha
what vm software you running
did you dedicate all our cores
McEasy 16:08 oh geez.. good point.
mattvv 16:08 :D
McEasy 16:08 1 of 16.. herp derp
mattvv 16:08 there ya go hehe
McEasy 16:08 well, knowledge for the future!
mattvv 16:08 could have been mining bitcoin on those cores the whole time
hehehe
McEasy 16:08 my company might frown on that.. but at the same time if I split the profit I don't think they'd care
but also have no idea what that really is.. all I know is that bitcoin is a virtual currency and there are a set amount in existence..
mattvv 16:08 haha yeah
basically you can 'earn' bitcoins by dedicating processing power
but you really only can get anything valuable with it with a rediculous amount of processing power
McEasy 16:08 I think dual xeons with hyperthreading fits the bill!
mattvv 16:08 haha it's better then whatever i have
i have whatever last years mac retina laptop is
McEasy 16:08 no idear
mattvv 16:08 yeah something laptoppy
haha
McEasy 16:08 intel mobile, done!
grok 16:08 Can I pass a Uint8ClampedArray to my plugin and read it as a byte array?
Oneboxjackal 16:08 Hi
mattvv 16:08 yo
McEasy 16:08 hello
mattvv 16:08 anyone you guys ever used the wix installer?
i'm fighting with it right now hehe
McEasy 16:08 yup, again haven't run into issues with it
But I had to get a specific version... 3.7 I believe
mattvv 16:08 yup i'm using 37, did it just work from your generated files?
Oneboxjackal 16:08 I am wondering if any of you could help me with my inherited class from PluginWindowWin. I am trying to create my own winproc, but the new class is not being called by onWindowAttached
McEasy 16:08 Yeah, after installing 3.7 I just rebuilt the project and the .msi created was perfect. Soooo.. that's the extent of my troubleshooting with it.
mattvv 16:08 hahaha nice!
i just regenerated mine so hopefully it will do that
that would be unreal
McEasy 16:08 rebuilding it will most likely fix it, but cross your fingers anyways
Oneboxjackal: sorry, I'm not nearly knowledgeable enough about this framework to help you out ><
Oneboxjackal 16:08 Me, neither, obviously... it's quite extensive. Not sure if I grasped all of it yet....
McEasy 16:08 No joke, it's crazy how big this project is. Tax (and others) put a loooot of time and effort into it.
grok 17:08 hello
has anyone tried sending and receiving small amounts of binary data with their plugin?
McEasy 17:08 I have, yes.
grok 17:08 cool
what kinds of Javascript side data types did you have to use?
I'm trying to send and receive data from an HID device
McEasy 17:08 lol, that's exactly what I did
javascript has no datatype, it's just var
I think I had php serve the binary data, then javascript just put the data in a variable and called my plugin with that variable
mattvv 17:08 damn McEasy this wix stuff ain't so easy
i'm getting installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file.i'm getting an error: installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file.
now to figure out how to fix this thing
McEasy 17:08 really? ouch ><
grok: that help at all?
can you do the regsvr32 way fine?
mattvv 17:08 yep
that works fine
just something up with my wix config i'm gonna mess around
McEasy 17:08 haha, good luck!
grok 17:08 hmm, I was hoping that I could use a Uint8ClampedArray or something.
McEasy, what is your device?
McEasy 17:08 I'm not claiming I know what's best, but why not just send the information to the plugin and let the plugin deal with it?
NDA :)
grok 17:08 yeah, I could do that. I was hoping I could make something capable of handling arrays of data.
are you using hidapi? libusb?
McEasy 17:08 it's been awhile.. I honestly don't remember, sorry ><
Oneboxjackal 17:08 Has anyone ever written his own WinProc to receive messages???
taxilian 17:08 Oneboxjackal not sure what you mean
Oneboxjackal 17:08 I was trying to make my MyPluginWindowWin class take over in onWindowAttached, but then onWindowAttached is apparently not being called.
taxilian 17:08 you're trying to subclass the window?
Oneboxjackal 17:08 Yes. To write my own WinProc
taxilian 17:08 bad idea
Oneboxjackal 17:08 Ok....
taxilian 17:08 what is your goal?
what are you trying to accomplish?
Oneboxjackal 17:08 I have a 3D mouse which I need to query via GetMessage to find out which way it's been moved...
taxilian 17:08 so you just need to get a specific custom window message?
Oneboxjackal 17:08 One specific one for the axes, yes. There is an API to talk to the mouse. Hand in your windows' HWND and get the messages....
You wouldn't have an example like that????
taxilian 17:08 if you just need a custom windows message just add a handler for WindowsEvent
http://colonelpanic.net/2010/11/firebreath-tips-drawing-on-windows/
Oneboxjackal 17:08 Ok.... I haven't done much WinAPI stuff lately... been a Mac guy for the last 8 years.
I'll have a look at the example, thanks!
taxilian 17:08 it's not an example, just more info about that
but look at WindowsEvent
it just wraps an event from the winproc
there are ways you can provide your own winprov, but subclassing can cause some issues
Oneboxjackal 17:08 Where do you add the handler, then?? In PluginWindowsWin?
taxilian 17:08 you bascially subclass PluginWindowWin
but it's a pain
and I don't recommend it
Oneboxjackal 17:08 Ok
taxilian 17:08 because using WindowsEvent is *really really easy*
Oneboxjackal 17:08 For you, perhaps... LOL!
taxilian 17:08 add a handler just like the examples for AttachedEvent and DetatchedEvent
Oneboxjackal 17:08 I am fighting with it for 3 days now...
taxilian 17:08 then go look at the code for WindowsEvent to see what methods to call to get the info you want
Oneboxjackal 17:08 I'll check... thanks!
mattvv 17:08 anyone know where the projectname_auto.wxs is generated, it looks like the generated file is giving me issues with building wix
taxilian 17:08 mattvv it's generated by heat
and most likely your issue is that regsvr32 called on your .dll doesn't work
mattvv 17:08 taxilian: so the regsvr32 version works
but if i run the wix builder i get an error with building it
taxilian 17:08 pastebin your _auto.wxs file
mattvv 17:08 taxilian: http://pastebin.com/mF93kGVe
taxilian 17:08 nope, DllRegisterServer isn't working
so, it could be a few things
1) did you build with a _x64 prep script?
mattvv 17:08 taxilian: just using the prep2012.cmd, so no just the basic 32
taxilian 17:08 okay
2) do you have any dependencies on external DLLs?
mattvv 17:08 Yes, a bunch of c++ dependencies but all of these are handled in the cmakelist
no external DLLs though
everything should be compiled into our own dll
taxilian 18:08 hmm. well, here is the tool that is failing: http://wix.sourceforge.net/manual-wix3/heat.htm
mattvv 18:08 kk
thanks for the docs :)
i'll poke around and see whats up
taxilian 18:08 figure out why that tool isn't able to harvest your COM info and you'll be most of the way there
mattvv 18:08 thanks taxilian
taxilian 18:08 good luck
Oneboxjackal 18:08 Hi, I am back
Do you have any pointers on how I would tie in GetMessage() for the message queue?
I don't think I should be using while(GetMessage(...)) as that would probably freeze up
taxilian 18:08 yeah, that would cause issues. are you sure you need a GetMessage?
Oneboxjackal 18:08 Unfortunately, yes....
taxilian 18:08 most likely you'll want to be using a different thread then
I haven't used GetMessage so I'm not 100% sure of details
but you don't control the main thread
so you can't rely on it
Oneboxjackal 18:08 Main thread as in the browsers'?
taxilian 18:08 the main thread as in the thread that all calls come to you on
the one that you didn't create
Oneboxjackal 18:08 Hm
taxilian 18:08 you must not ever block it
that means you can't add a loop where you're waiting for a message
you could peekmessage and only get if there is one there, but that doesn't help 'cause you have no way to keep it happening
Oneboxjackal 18:08 Could do it every 50th of a second...
taxilian 18:08 you could do that, using a timer
it might even work
and it might not cause too much slowdown for the browser
Oneboxjackal 18:08 Hm,
taxilian 18:08 but if you can do it on another thread you're better off
Oneboxjackal 18:08 The browser is going to be running Google Earth, though
taxilian 18:08 not sure how that changes anything
Oneboxjackal 18:08 Oh, just writing out loud. Wondering about the slowdown you mentioned before while GE is running.
taxilian 18:08 well, this is stuff I could probably figure out, but I've not done exactly what you're doing, so you'll have to figure it out the way I would: try it out, see what happens
use the debugger
Oneboxjackal 18:08 Having trouble hooking into the debugger. All I am getting in VS2012 is a red circle with a question mark in it.
I looked at your documentation, but can't do it. Hard to write code when you can't debug and see values...
taxilian 18:08 vs pro or express?
Oneboxjackal 18:08 Pro
Ultimate, actually
mattvv 18:08 taxilian: looks like my regsvr32 isn't working actually, what's the best way to see whats happening - when i run regsvr32 i get a "failed to load
message
taxilian 18:08 mattvv it's most likely a missing DLL dependency that you dont' realize you have
use dependency walker to try to debug it is what I'd do
mattvv 18:08 thanks taxilian
i'll try that out
mattvv 18:08 ok taxilian - looks like i found my missing dependencies
i'm using link_directories to load them, but i guess they are not being found
taxilian 19:08 DLLs don't link in that way
mattvv 19:08 sorry i mean a .lib
taxilian 19:08 if it were a .lib that wasn't being found, it wouldn't compile
you have a library that has both a .lib and a .dll, and you're linking the .lib?
mattvv 19:08 yeah it looks like i have a directory that has a bunch of .lib's and .dll's for ffmpeg
that need to be included
(i inherited this project today)
and in dependency walker i'm seeing that those .dll's in the snapshot have an error opening
taxilian 19:08 right. so you are linking the .lib, but the .lib is just a wrapper to the .dll
it helps make things easier to link against them, but you still need the .dll to be in the output directory when the wix installer builds
mattvv 19:08 so whats the easiest way to do that in the build process
taxilian 19:08 add_custom_command
add it as a post-build command for the plugin project to copy it into the output dir
mattvv 19:08 so just copy each dll directly from that source dir to output dir
taxilian 19:08 use cmake -E copy to do the copy to keep it cross-platform
mattvv 19:08 using custom command
taxilian 19:08 right