|IRC Nick||Time (GMT-7)||Message|
|Anton__||00:07||Hey guys. Is it possible to expose to JS an existing static method? smth like this: registerMethod("getAppDataPath", make_method(this, &FB::System::getAppDataPath)); What should I pass to make_method instead of this?|
but it's just a guess
|dougma||01:07||i think make_method always wants a this ptr, so just call the static method from a non-static method.
you could write your own make_static, using the implementation of make_method in MethodConverter.h as a starting point. :)
|Anton__||02:07||too complicated for me :) I already came to wrapping method solution. Thx!|
|Anton__||02:07||Ok. Another problem:
std::string path = FB::System::getAppDataPath(appName);
filesystem::create_directory fails if windows user name contains non-ASCII chars
It's common problem, because for example Russian Windows XP default user named 'Администратор'. I think it's similar for any non English WinXP version.
|Anton__||02:07||Ok. Fixed by boost::filesystem::create_directory(FB::utf8_to_wstring(path));|
|taxilian||06:07||Anton__ yep, that's the correct fix. one thing to note, though... it's a *really* bad idea to expose actual filesystem paths to the web page
|Anton__||08:07||taxilian, thanks for the warning. The plugin will be part of Chrome extension whith public=false, which make plugin available only to the extension.|
|taxilian||08:07||still be careful =]|
|Anton__||08:07||i will :)
btw, I found that if I declare JSAPI function parameter as std::wstring, then conversion from UTF-8 to wide string is done automatically. Is it correct to do so?
|cologneGuy||11:07||@taxilian: no success when bulding with VS 2012 Express. ATL includes seem to collide with windows.h etc (re-definition of vars, names etc.) => a nightmare. Then switched to VS 2012 Ultimate - absolutely no problem to generate the build and build the plugin. worked perfectly. great software, thanks!|
|taxilian||11:07||hmm. well, hopefully someone will figure out how to make it work with vs2012 express :-/|
|cologneGuy||11:07||I'm sure there is a way - for experts in compiler directives (I'm not the man here...)
Now the real programming starts - I have to put some C code into the plugin - any hints, do's and don'ts on this way (no global variables ...)? Or first port it to C++ before wrapping it into a plugin?
|Shibs||15:07||Just out of curiosity, is there any plug-in or extension or some other thing that a web page can run that does not need the users permission? I'm trying to make this as easy and painless as possible for users|
|taxilian||15:07||I'm not sure I follow the question
plugins may or may not need the user's permission; it depends on the browser
but they have to be installed
same for extensions
if you want something that the user need not be aware of at all that runs native code, I believe they call that a "virus"
|Shibs||15:07||That's what I was thinking, I just wanted to make sure I covered all of the web technologies.
I was thinking more along the lines of "a web site does not need a users permission to display text, by navigating to the site, they are agreeing to w/e interaction".
But yeah.. in the end it's just a security issue that needs a minimum requirement of a user selecting "ok".
And that's due to the fact that the browser is sandboxed, therefore the web page can show whatever as long as it's within the browser. Once something accesses outside of the browser, user permission must be granted, correct?
|Shibs||15:07||So if I'm calling a function from an included library from firebreath, do I need to prepend it with anything? I know that firebreath prepends its functions with pluginname:: but I'm unsure of external functions.|
firebreath doesn't prepend anything
those are just c++ classes
|Shibs||15:07||Got it, was wondering why they were (I don't use C++, only familiar with C)|
|taxilian||15:07||in the register_method classes that's just how you reference the function inside a class so that you can get the function pointer
all you're doing is passing in a function pointer