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

IRC Nick Time (GMT-7) Message
dougma 00:09 !wiki security
FireBreathBot 00:09 7 results found. Note: Results limited to 8
"Documentation To-Do":
"Making HTTP Requests with SimpleStreamsHelper":
"Web Browser Plugins in the Age of Web Applications.pdf":
"Debugging Plugins":
"Version History":
"Boost survey results":
dougma 00:09 is the concept of "security zones" is a firebreath invention?
does the browser tell the plugin: you are in this or that zone?
or does the plugin make its own decision about what zone it is in?
baga 05:09 Hi! Whats the best way to compile firebreath plugin with full optimization (like O2) under unix?
linearray 07:09 dougma: there is something in the version history about that
donho 07:09 Hi there
I'm a newby of firebreath. after playing around, i have to say "Wow - one plugin rules all browers!"
Congrat for your awesome job!
I'm considering to add "server side ability" into my project Notepad++. And I'm looking the possibility with Firebreath.
is there anyone could tell me how to compile the samples which come with the source release?
linearray 07:09 the example plugins?
donho 07:09 hi linearray
yes the examples
linearray 07:09 here:
donho 07:09 linearray: I did build a plugin and deploy it
What I need is to check the examples to know how to implement my plugin
I would like to build this one :
linearray 07:09 yes
on windows?
donho 07:09 yes, on windows
with vs 2008
linearray 07:09 then go to the firebreath-152 directory and type: ./prep2008.cmd examples
The project files will all be generated into the buildex/ directory under the project root.
donho 08:09 terrific! Thank you linearray for your help :)
linearray 08:09 you're welcome
linearray 08:09 taxilian: think it's a problem to just use shared_ptr(new IDispatchAPI()) in IDispatch::create instead of make_shared()?
donho 08:09 linearray: for BasicMediaPlayer example, where can I find the exploy page (.html) ?
I find D:\sources\firebreath-152\buildex\projects\BasicMediaPlayer\gen\FBControl.htm , but this page does not display the player on the page. What I do to display mediaplyer?
donho 08:09 nevermind, found it
taxilian 10:09 donho: check the examples/BasicMediaPlayer/test_pages directory
dougma: security zones are a firebreath thing; you have to set the zone.
dougma: however, if you share a jsapi object between multiple plugin instances you can wrap it in a jsapiproxy object and you can set the zone on the proxy object differently from the zone on the jsapi object itself, thus allowing you to access the same object but at different levels from different places
donho 10:09 Thank you taxilian
taxilian 10:09 np
donho 10:09 taxilian: however, I have some questions
taxilian 10:09 honestly, though, BasicMediaPlayer is a rough example; FBTestPlugin has a lot more useful stuff in it, unless you need drawing specifically
and making your own skeleton plugin project to play with is probably the best place to start
FireBreathBot 10:09 If you need help, just ask your question and wait for people to come back.
taxilian 10:09 in other words, just ask your questions, don't ask to ask them =]
donho 10:09 if I aim window platform and don't care the other platforms, can I use Win32 API?
taxilian 10:09 certainly
if you structure it right you can use the win32 api for windows specific stuff anyway
what are you trying to do?
donho 10:09 and all the windows controls displayed in the browsers, have them the same look and feel as the native application?
taxilian 10:09 if you use a windowed plugin then you get an HWND and you can draw to it however you want
if you use a windowless plugin, you get an hDC and have to draw in response to WM_PAINT (which comes as a RefreshEvent in FireBreath), but otherwise you can draw to the hDC however you want
donho 10:09 I'd like to display Notepad++ in any windows browser by using Firebreath
taxilian 10:09 hmm. that could be potentially tricky; were you planning to actually embed Notepad++ in the plugin?
donho 10:09 That will be the easiest way
taxilian 10:09 heh. maybe
it depends on how Notepad++ is written
remember that all instances of the plugin run in the same memory space
so if Notepad++ uses any global variables or static variables they will be shared by all instances of the plugin
donho 10:09 ie. don't touch the npp's code but a plugin to adapt it to launch npp in the browser. Is it possible?
There are some static objects in npp code
taxilian 10:09 that could be a problem, potentially. depends on how they are used
donho 10:09 they are singleton
taxilian 10:09 for example, if you refresh the page it will destruct your plugin object and contruct a new one, but the module will not be unloaded
so your singletons won't be reset
donho 10:09 it may be a good thing
taxilian 10:09 it could be; like I said, it all depends on how notepad++ is written and uses those static objects
donho 10:09 But firstly, could u just guide me to do a plugin which displays a windows traditional dialog (some buttons and some text field on it) .
taxilian 10:09 I have a policy
I don't answer generic questions when the answers can be found on the wiki
donho 10:09 All I need to know is where to add my code
taxilian 10:09 but when you have a specific question, I will answer that
so I recommend you go read the getting started page
donho 10:09 fair enough
taxilian 10:09 and look at tips and tricks — there is a link to a blog post on drawing in windows
donho 10:09 OK, thank you for your help
taxilian 10:09 also, if there are things that aren't clear that you need to ask me about, please update the wiki so that the next poor sap can figure it out =]
no problem. Good luck
also when you generate a skeleton project with fbgen look through the code; there are a lot of docs in the comments
donho 10:09 yes i noticed that
taxilian 10:09 excelent! you're ahead of about half the people who come in here asking questions, then ;-)
donho 10:09 Not really, I have to read them all ;)
someone-noone 13:09 hello
what's up?
linearray 13:09 sup
taxilian: may I kindly direct your attention to my question from 08:29
taxilian 13:09 linearray: i tprobably isn't a big deal, no, though it's slightly less efficient
are you using a newer version of boost?
linearray 13:09 yes
taxilian 13:09 that's probably why
linearray 13:09 so this problem will eventually come up
taxilian 14:09 it'd probably be more ideal to find a way to make the correct make_shared a friend
but that solution would work
linearray 14:09 well
I guess I could make both a friend
both that's not real clean
taxilian 14:09 you could use an ifdef or make both a friend
I'm not sure that's any less clean than just not using make_shared
linearray 14:09 which way would you consider including upstream?
taxilian 14:09 I would prefer to use make_shared, if possible and doesn't require ridiculous hacks
linearray 14:09 heh, I think all solutions involve some sort of hack
taxilian 14:09 yes, but there are different levels of hackery =]
linearray 14:09 sure
taxilian 14:09 the reason for using make_shared is one of performance
make_shared allocates the full block of the object in question plus the refcount memory all at once
so it's contiguous and doesn't require using a second memory allocation call
probably not a huge deal, but preferable
linearray 14:09 incidentally georg posted something regarding this problem on SO
I'll see if I can make it work
taxilian 14:09 link?
linearray 14:09
taxilian 14:09 hmm. I guess that'd be another option
for now just make it not use make_shared, I guess
linearray 14:09 it's quite high on the ridiculousness scale
the pass-key-idiom that is
but it seems to work
taxilian 14:09 yeah; it's a reasonable method, and I've considered using it before
but it's fairly non-obvious if you aren't familiar with it
linearray 14:09 so, you want me to write up a patch?
or just do it locally
taxilian 14:09 well, if you do it locally but use git then it's easy to create a patch from what you've done
kylehuff 14:09 Hey taxilian, I am adding the license information for Firebreath to my plugin source, but I couldn't find the copyright information on the wiki or in the source, other than one file with "Copyright 2009 Richard Bateman" -- it doesn't actually matter, I just want it to match how you notate it.
taxilian 14:09 the header that is in every source file is the only thing we use
kylehuff 14:09 okay, cool
PluginNewbie 14:09 So, how do I find someone to create my idea for a browser plug-in?
Just don't have the skillset, or the time... but I do have a few bucks...
Is there a list of developers somewhere?
kylehuff 14:09 if you care to review it Richard, I have added the copyright to my COPYING file ( although, I can see now that I left out the web address...
taxilian 14:09 fair enough
linearray 17:09 does github make sense, when working on closed-source projects alone?
taxilian 17:09 totally depends
what are you looking for?
what is important to you?
and what are your primary concerns?
linearray 18:09 I guess I want my source code to be safe, if everything in my room catches fire.
which I can also do by pushing to my webserver
taxilian 18:09 lol. well, if that's your only concern I'd set up a gitolite repo and there you go
linearray 18:09 so that leaves the nice graphical tools they have.
taxilian 18:09 my personal repo is at
it runs on gitolite and redmine
source code browsing:
the GUI and git access control are not linked, so I can easily create new git repos just by pushing to a new name (using gitolite's wildcard repos) but to make a redmine project I have to create it manually and give it the path to the git url
linearray 18:09 I see
taxilian 18:09 cgit is also a very nice tool for browsing a git repo via the web
so it all depends; to me, the cost of hosting at github is too high for a personal project when I can set up my own stuff on my server
but I have used github for private projects as well, and it's pretty nice
the interface is exactly the same as for an open source project, though; it's just private, and forking a private project yields another private project
linearray 18:09 one thing that remains is the uncanny feeling of having your private source code on somebody else's servers
taxilian 18:09 heheh. true, but with the amount of source code they have you can bet that security is a big deal to them
that's actually the main reason that the company I work for opted not to host SCM on github
my boss just didn't feel comfortable putting our code on someone else's servers
so we use gitolite to manage the repo and jira/confluence/fisheye for the web interface is fisheye, if you want to look at it
it's free for open source projects, but only $10 for a 10 user license for commercial
after that it gets pricy =]
but $10 / year is not hard to justify for a piece of software
linearray 18:09 this looks interesting, I'll check it out
taxilian 18:09 redmine (which I use) really isn't bad, though
dougma 19:09 i like notepad++, but why would i want it in my browser?
linearray 19:09 he said something about "server side ability"
dougma 19:09 i guess he wants to save to the cloud.
and maybe integrate with some of these cloudy IDEs
taxilian 21:09 linearray: mine is not to ask why, mine is simply to instruct people about how they are out of their minds for some of the things they try to do
and then suggest things that might make them possible anyway
dougma 22:09 very objective. :)
taxilian 22:09 =]
dougma 22:09 it's good.
taxilian 22:09 you know what would be really neat in 2.0?
dougma 22:09 what's that?
taxilian 22:09 I'd absolutely love to be able to remove ATL from the equation entirely :-/
dougma 22:09 oh!
but it has so many nice things for com and activex
taxilian 22:09 heh. most of the things that it really simplifies we end up overriding anyway
IDispatch, connection points
so what is left ends up being this magic black box that keeps killing us because we don't know what it is doing
dougma 22:09 how's it killing us?
tis a blackbox to be sure
taxilian 22:09 I've just had cases more than once where bad guesses as to how something was working behind the scenes caused issues
it also adds a dependency on visual studio full or a requirement to download the DDK
dougma 22:09 my next effort for firebreath will be to add some sort of 'prototype' abstraction to jsapi :)
not sure if anyone elese needs it
taxilian 22:09 that would be very interesting
dougma 22:09 but when i create 1000 API objects, the registerMethod calls are significant
taxilian 22:09 I would like to talk to you about your ideas for that
but not toight =]
bleh. not tonight. I need to go put my son to bed