IRC Log Viewer » #firebreath » 2012-12-02

IRC Nick Time (GMT-7) Message
didu 05:12 hello :)
I am looking for making a plugin for chrome and firefox in windows. The plugin need to get information information from a mapped memory create by a C# application.
and he has to edit the content of some webpage selected (they are listed on the mapped memory)
Is it possible to make this with FireBreath ?
(when I talk about content, I mean autocomplete Login and Password)
didu 06:12 the plugin has to be always open without called by a webpage
jshanab_ 06:12 PLugins are loaded when a web page has an element specifing it's mime-type. While I think you can access the mapped memory I cannot see how it can be always open without a web page. For this you will need an extension not a plugin.
But extensions are different for each browser. I do not know if there is a comparable cross browser extension framework.
Extensions can have plugins in them. Maybe an extension can insert a plugin into the dom of a page?
didu 07:12 Thank you for your answers
The plugin while just open the mapped memory if it was create by the C# application before
Plugin can edit the content of webpage ?
and read it ?
(I think your idea of extensions with plugins in them is a good)
jshanab_ 07:12 IF the memory can be accessed from c++, i think a plugin can do it.
A plugin to my knowledge cannot manuipulate the DOM directly but an extension is different on every browser and can deal outside the page, with tabs and such so it's lifetime at least allows it to still be around.
Going only by what I have seen two extensions give hope. firebug which definatly reads the page and restlet which I think varis the page for the request type
Of course the plugins have a javascript api and javascript can play with the DOM and submit callbacks to a plugin. Extensions can have javascript also so It would seem a combination of technologies could do it. In a few hours, people with better answers will probably be on this channel
didu 07:12 Really thanks you for all you answers !
I was thinking access to mapped memory will be easy but It look like I have to code more than a simple extension :P
Extension are so limited for such things :(
jshanab_ 07:12 I have only looked at FireFox extensions and they are cool in that they can manipulate the browser interface, but they are a form of XML the heavy lifting I think is left to be done with the c/objectivec/c++ inside a plugin.
didu 07:12 yes it is true :P, but Firebreath use boost who can manage xml
I am very lost :( I will wait the other people like you say, they are from which country ?
jshanab_ 07:12 Well the defenitive answer will come from taxilian and he is on west coast of US I think. I forget where he lives bu I know he is 2 hours behind me and I am in Chicago.
RenJuan 07:12 pretty sure there's nothing above Firebreath in generality, or I guess beside it in the matter of a xbrwsr extension builder
didu 07:12 Ok I like Chicago :P, I was living in Detroit when I was young :) Now I am in Saint petersburg (Russia) for my study ^^. There is approximately 12 hour jet lag but I will wait
RenJuan 07:12 sfaik, extension, plugin, add-on are all as far as common sense if not details of implementation, the same thing, API for customization
nothing I know of, doubtless is something
jshanab_ 07:12 In this context extension is the browser specific non page element oriented usually XUL or something piece, every browser is different. Plugin is the NPAPI plugin. A piece using the NPAPI that is loaded once per instance of element on a page with the specified mimetype and communicated to with javascript by exposing a custom javascript api
Very different.
RenJuan. I am sorry if I missunderstood your statements, I have to read them 2 or 3 times and I am still not shure what is statement and what is question.
RenJuan 07:12 you ignore IE?
or do you say the IE plugins are NPAPI?
didu 08:12 I already have IE plugins, it is not NPAPI
hummm it is called BHO for internet explorer and you can manage the memory
and edit the content of webpage
I understand why chrome and firefox don't want that extensions can't acces memory for being more secure but I need it :(
jshanab_ 08:12 No, For plugins that is one of FB's best tricks It has the active-x equivelent to allow you to write the code once and it just works on active-x browsers too. I need to look that up
didu 08:12 Oh that wasn't for me sorry :P
jshanab_ 08:12 The claims about one tech being more or less secure are market-speak. NPAPI became a defacto standard, even IE supported it for a while. But Microsoft wants you to drink their koolaide, in for a penny, in for a pound. If they can get you to use their tech, then you end up with, after hours of development, something that "only works on ie" The apple crowd is no different.
The development environments out there that really work well are what determine who gets software first. Microsoft's Visual studio is great. Xcode is great. Each have their own language and libraries they push but it means desktop apps come first on MS for houses that write MS and first on apple for those that write apple software. Cross platform stuff goes to *nixes and bubbles up to the...
...other two.
didu 08:12 haha I agree xD
jshanab_ 08:12 Having writen this videoplayer as a browser plugin and as an iphone and android app and trying to port it to mac as well. I gained a new perspective. It is very obvious why iphones get apps before droid
didu 08:12 I think chrome and firefox make everything that it is not easy to use code of extension from one browser to an other.
When I was looking for communication of interprocess, firefox have some tech that chrome don't have and chrome have techno that firefox don't have.
jshanab_ 08:12 Chrome is going there own way. I have been using ZMQ in my aps and was thinking about putting it in my plugin. To make a browser plugin that can communicate with a service either dameon on linux or windows service. Abusing the browser as my cross=platform windowing toolkit
kylehuff 08:12 between Opera, Safari, Chrome and Firefox... I officially hate extension development
didu 09:12 Don't say me such things, I just began yesterday I don't want to give up so fast xD even if I am totaly lost
kylehuff 09:12 there does exist a few frameworks that abstract extension development between browsers. Kango (local framework you download) and Crossrider (web-based application). Neither support NPAPI bundled plugins (since some browsers do not support that), but you could maybe add your NPAPI to the versions that do.
didu 09:12 OK I check Kango
kylehuff 09:12 I've not used either, so I can't comment on their functionality or license. just passing on that they exist.
jshanab 10:12 OMG. I just discovered a nasty c++ (at least on MS) "bug" If you cast the this pointer of a class to an interface you forgot to inherit from. (oops Git Stash) It compiles, it links, it runs. but it crashes because it creates a pointer to the destructor ROTFL
"silent but deadly" ;-)
didu 10:12 diorcety you are french ?
diorcety 10:12 diorcety: yes
didu: yes
kylehuff 11:12 he also talks to himself... =c )
didu 11:12 xD
diorcety 11:12 ^^
It's better to ask question here
didu 11:12 I try to make a extension or a plugin for chrome and firefox that are able to read xml on a mapped memory create by an other application
diorcety 11:12 yes
where is the issue?
didu 11:12 the extensions of plugins has to modify some part of the web page with the content get from the mapped memory
I look at the beginning to create a extension for reading the mapped memory but the google or firefox API are not able to do that or not completely
There I find NPAPI that can be able to read mapped memory
but I see too that plugin has to be call by webpage
but my plugin has to be always activate to check every open page
and see if there is something to edit
But I completely don't know how to do it and if it is possible to edit content of web page from a plugin
Therefore if someone has understand what I said (sorry if I badly write it :P) and can told me if it is possible :)
diorcety 11:12
you can handle the document in the plugin
kylehuff 11:12 didu: the plugin can be always running in the extension background page (overly in Firefox) -- and the content scripts can interact with the plugin via message passing.
loading the plugin on each page could be problematic
diorcety 11:12 kylehuff: using firefox plugin functions it must be possible
kylehuff: in the same way that Adblock+
kylehuff 11:12 I am not saying it isn't possible, just problematic. It would be easier to house the plugin in the background (per instance of browser) and handle the interaction between the webpage content and the plugin through the extension.
didu 11:12 How can I make the plugin running in the background ? did I have to make a extension to do this ?
kylehuff 11:12 didu: yes.
didu 11:12 Oh ok therefore the extension will be like a proxy
he get the content and send it to the plugin
kylehuff 11:12 exactly. and your extension code-base could be pretty much the same for both firefox and chrome. the only difference would be the extension build/control files for each specific browser
didu 11:12 Ok therefore I have to make a extension loaded in the background, who load the plugin and who get the document that will be send to the plugin for editing ? or the plugin can do everything him self after loaded (his is called when a page is open) ?
kylehuff 11:12 you could probably do it either way, depends on the data I guess. The extension route also has the benefit of handling your plugin distribution.
didu 11:12 Ok I see how it have to work now :)
Next step I have to find how to do it :P
didu 11:12 Thanks you for all :)
jshanab 12:12 kylehuff. i tried and I love the way the extension handles the plugin install. I just don't know how to make that work in chrome and IE
kylehuff 12:12 In IE, I don't know. In chrome it is easy. you just need to include the plugin binaries in your extension directory, and reference them in your manifest.json file. I have a current chrome extension you can reference:
jshanab 12:12 thanx
kylehuff 12:12 the only catch regarding bundled plugins in chrome, is that you have to reference any OSX binaries before any linux binaries.