I want to develop a simple Chrome extension in C++, using NPAPI, which does the job of dumping the HTML content of the current page onto a file. I don't have much expertise in developing plugins/extensions. How do I get started on this?
Chrome extensions are built with HTML, JavaScript, and CSS scripts and are essentially small websites uploaded to the Chrome store.
Sometimes, you might not be able to find an app or extension in the Chrome Web Store that meets your users' needs. If that happens, you can create your own custom app or extension that users can add to their ChromeOS device or Chrome browser.
As a web developer, it's very easy to create a Chrome extension in a short amount of time. All you need is some HTML, CSS, JavaScript and a basic knowledge of how to add functionality through some of the JavaScript APIs that Chrome exposes.
There's a plugin here that will help you....
http://code.google.com/p/npapi-file-io/
...source is there aswell. This plugin will allow you to write a string (your html) to a file plus a few other nice things. Windows and Linux only unfortunately.
Then all you need to do is write a script to dump what you want.
As smorgan points out in the comments these sort of plugins have the potential to be rather dangerous.
So make sure when you add the plugin to your manifest that you set the public property to false...
http://code.google.com/chrome/extensions/npapi.html
"plugins": [
{ "path": "plugin.dll", "public": false }
]
And in the future (Chrome 18) you should use manifest version 2...
http://code.google.com/chrome/extensions/trunk/manifestVersion.html
Also, I take it that you want to save the file without any user input. If that isnt true and having a dialog to select where to save the file every time is acceptable then this can be done without using a plugin.
1 - Create a Extension... http://code.google.com/chrome/extensions/getstarted.html
2 - Create a NPAPI plugin... http://colonelpanic.net/2009/03/building-a-firefox-plugin-part-one/
3 - On the manifest of your extension add the plugin...
"plugins": [
{ "path": "your_npapi_plugin.dll" }
],
4 - On your extension background page create the plugin
<script>
var plugin = document.getElementById("MyNPAPIPluginId");
...
</script>
5 - Create a javascript that you will use as a content script injected on every page. On that script communicate with your npapi scriptable object and do the work you want to do.
How do I get the value of MyNPAPIPluginId? All I have is the name of the DLL?
On your background page when you add the tag of your plugin, you place the id
<embed type="application/my-plugin-mimetype" id="MyNPAPIPluginId">
On Windows you add the MIMEType on the resource file of the DLL, add a entry with:
VALUE "MIMEType", "application/my-plugin-mimetype"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With