Make a NPAPI plugin(made for firefox) run into chrome browser - google-chrome

I have a NPAPI plugin , running fine in firefox. Now i want to port it to chrome browser, means i want it to work in chrome also.
But i have learnt after browsing on internet and many links that chrome no longer supports NPAPI rather now it supports pepper API and now there is concept of native client.
What i have developed an understanding so far is that if i replace the NPAPI code(made for plugin for firefox) with the Pepper API code and upon compilation, a pexe file(native client module) along with manifest file(which is referring to the location of the pexe file) would be generated which would be kept on the server.
when an html page having embed tag describing a particular MIME type, say "application/x-pnacl" is loaded, then via src attribute(referring to the manifest file) of embed tag, manifest file is fetched which then fetches the actual pexe file which is then run by/within the native client plugin(already present in chrome).
I am not sure whether this understanding is correct or not. I was assuming that just like firefox plugin, pexe file would be stored and installed on local user PC and then detected/loaded by chrome as a plugin. Please tell whether this is correct or not.
Also, I want to ask whether still there exist any way to run NPAPI plugin in chrome or not. If it is please tell otherwise i should not think about it.

First, Chrome no longer supports NPAPI plugins for security reasons:
https://support.google.com/chrome/answer/6213033?hl=en
Plugins must use the Pepper Plugin API (PPAPI) and be compiled as Native Client (NaCl) executables so the plugin binary can be validated as safe to run. Portable Native Client (PNaCl) plugins can be loaded by any web page without the user installing anything. However, if your plugin is large, you may want to distribute it as a Web Application through the Chrome Web Store. In that case, you can bundle your .nexe's or a .pexe with your application so it is effectively installed on the user's machine.
This link describes how you can distribute your plugin:
https://developer.chrome.com/native-client/devguide/distributing

Related

Browser plugin/extension to track search string

I need to develop some sort of browser plugin/extension to track search string on some search engine web site, ex: google.com, bing.com.
From the research, for chrome extension, I saw somebody suggest content js is the way to go. Is it true? Is there a cross-browser approach?
You can use Content.JS or any other JS library you like for developing an extension but with only JS library you cannot develop an extension.
There is a specific way for each browser. It contains at least 4 files.
(1) Manifest file (2) HTML file (3) JS file (4) CSS file
You also need to refer browsers object model.
You can refer links below may help you to get more information.
(1) Creating a Microsoft Edge extension
(2) Getting Started Tutorial to create an extension for Chrome
(3) Your first extension for FireFox
To support cross browser functionality, You can try to port your chrome extension to Firefox or MS Edge. To get more information on porting an extension, you can refer links below.
(1) Porting an extension from Chrome to Microsoft Edge
(2) Porting a Google Chrome extension
Note:- You also need to refer policy of each browser to access browsing data of users. It can be possible that all browser has some difference in their policies.

ithit ajaxbrowser prompting for NPAPI plugin on non-office documents when using chrome browser

We are using the latest ajaxbrowser that can now open office type documents without the soon to be unsupported npapi plug-in. We are however still seeing the issue with other file types. Is there a way to open other files without seeing the error message in chrome or is this being fixed soon?
I see that currently the best solution is to use other web browser to open non-MS Office documents via IT Hit NPAPI plugin.
I see that enabling NPAPI in Chrome is a temporary solution. According to Google after the release of Chrome version 45, we will have to use an alternatively web browser to load content that requires a NPAPI plugin ( https://support.google.com/chrome/answer/6213033?hl=en ).
Do you plan to create new IT Hit plugin (PPAPI) for Chrome?
To open non-MS Office documents you will need the Java applet. The Java applets use NPAPI that are disabled in Google Chrome by default. The only solution is to use other web browsers or enable NPAPI in Chrome.
This issue should be fixed since v1.9.1.1408
http://www.webdavsystem.com/ajax/download/release_history/

Is it possible to develop a Chrome Bookmarks manager app that is not a chrome extension, i.e. that runs independently of the chrome browser?

I understand that the chrome.bookmarks API (documented at http://goo.gl/tIb6V6) is meant to be used to develop Chrome Extensions (to be used, of course, within the Chrome browser) that access/manipulate my Chrome Bookmarks. I have even used that API to write my own such extension. However, I am looking for a way to develop an app that does the same thing, but is runnable independently from the Chrome Browser, e.g. as a native app, written in one's favorite language (Python, Java, etc.), that would run on one's favorite OS (Mac OS X, Linux, etc.). To that end, is there an API (e.g. a RESTful API, but I'm not picky) that enables me to access/manipulate my Chrome Bookmarks, which I would then access from outside of the Chrome Browser?
Another option is to load the Chrome Bookmarks file directly from:
~/Library/Application Support/Google/Chrome/Default/Bookmarks
It's a plain json file, so just load it, construct an Object and do whatever you can imagine.
We are pretty like it so far~

Is it possible to make an HTML page and local Javascript library into a Chrome extension with data storage?

I have been trying to author a Chrome extension recently and have been hitting major problems it seems every step of the way.
Currently I have a local HTML page that is using a local Javascript library. This works great, except Chrome limits the amount of data a page can store to 5MB. I would like to get around this limit, and read that Chrome extensions/applications could use unlimited storage resources via chrome.storage.
While coding, I quickly discovered that this only applies to browser actions, content scripts, and (?) web applications (loading an WWW page as an extension). I was coding this as a local packaged app, which does NOT have access to either the HTML5 localStorage API NOR the chrome.storage API. I really need the extension to use only local HTML/Javascript resources in order to maintain offline/no-internet functionality.
Can a Chrome web app be loaded from a local resource, i.e. a locally packaged HTML page? Is there any way around these problems that does not include enabling dangerous security vulnerabilities in Chrome? I saw that an NPAPI app could solve the problem however that also defeats the purpose of the application I am making.
TIA,
Trann
Apparently this is possible with a packaged app, when the correct combination of permissions are put into the manifest.json:
"permissions": [
"storage",
"unlimitedStorage",
"fileSystem"
]
The fileSystem permission, once added, enabled the FileSystem API to start working as expected (not chrome.storage).

Is it possible to interact with a local application in a Google Chrome extension?

I have begun using Google Chrome as a primary browser, but I miss my Evernote extension, which can clip a web page directly to the local Evernote application. Is it possible for me to write an extension in Chrome that can do this?
Yes it is possible, through NPAPI, but your local application should be prepared for external communication. Code running in an NPAPI plugin has the full permissions of the current user and is not sandboxed or shielded from malicious input by Google Chrome in any way.
All this is described here:
http://code.google.com/chrome/extensions/npapi.html
To avoid the NPAPI way, another idea would be to communicate with a custom local http server binded to localhost and send requests to it.
Disclaimer: Never tried it but theoretically it should work.
I don't think chrome allows this, simply because it would be dangerous to let plugins have extended priviledges, they even run in an extra, low-rights thread and only communicate with chrome itself through pipes.