Will FireBreath 2.0 use chrome extension as alternative of NPAPI?

315 views
Skip to first unread message

Hyun Chan Park

unread,
Oct 30, 2015, 11:22:38 AM10/30/15
to firebreath-dev
Hello!

I'm a security solution developer in South Korea.
I found the FireBreath Plugin Framework and this forum, since I started to develop NPAPI plugin by myself.

And, after announcement of NPAPI deprecation, I sometimes visited this forum to see what alternative way can be...
Actually, I'm not good at English..so I'm kind of overwhelmed by so many information on this forum :(

I'd like to ask that will FireBreath 2.0 use Chrome Extension as alternative of NPAPI.

Personally, I decided that the only solution for NPAPI is Chrome Extension and Native Messaging, 
so I made kind of pilot extensions and native message host.
I just want to sure that I'm not going to wrong way...

There are few problems I faced that I want to say to you
1. Extension Installation
  - For me, I developed enterprise security solution, so I cannot distribute extension from public domain site.
  - Therefore, I should use forced extension installation. PC has to be joined in Domains, but, our solution are using hooking method, so I just faked it.

2. Request, Response Synchronization
  - It seems that I cannot make that request and response to be synchronized.
    We can communicate like this : Web Page Script <-> Extension's content script <-> Native Message Host <-> Native Program
    And,, when responding to Web Page I used "window.postMessage".
  - Is there way to make the process to be synchronized? I've seen some tricky waiting method, but looks it can affect performance.

Richard Bateman

unread,
Oct 30, 2015, 12:06:44 PM10/30/15
to FireBreath Dev Group

Yes, FireBreath 2.0 *already* supports an interface via native messaging with a helper extension.

1) How you install the extension is up to you, however the extension doesn't need to know anything about the plugin itself so I don't think it matters if it is installed from a public site. That said, the method you use to install the extension is unimportant as long as the extension is installed, so do it however you want.

2) Your basic structure is correct except you are missing a step.  Web Page <-> Content Script <-> Background Script <-> Native Message Host <-> FireBreath 2.0 Plugin (via FireWyrm).

There is no way to make synchronous calls across Native Messaging; the protocol is inherently asynchronous, as are most web/javascript technologies.  For this reason, FireBreath 2.0 (in the 2.0 branch, see my recent post on the subject) makes all interaction between the browser page and the plugin asynchronous using the Promise pattern, including an implementation in C++.

This is all working in FireBreath 2.0 but not terribly well documented.

Richard

--

---
You received this message because you are subscribed to the Google Groups "firebreath-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firebreath-de...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages