I've created a Firefox extension but I can't use it (nothing happens). Does someone know why ?
The module hierarchy
my_firefox_extension
- chrome.manifest
- install.rdf
- chrome/
- content/
- locale.html
- overlay.js
- sample.xul
- content/
The code
chrome.manifest
content firefox_extension chrome/content/ overlay chrome://browser/content/browser.xul chrome://firefox_extension/content/sample.xul
install.rdf
<?xml version="1.0"?> <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <Description about="urn:mozilla:install-manifest"> <em:id>displaypages@bruno.com</em:id> <em:name>Display the page locale</em:name> <em:description>Welcome to this extension that displays the page locale when a user opens a new tab or windows</em:description> <em:version>0.1</em:version> <em:creator>Bruno Da Silva</em:creator> <em:homepageURL>https://www.example.com</em:homepageURL> <em:type>2</em:type> <!-- Mozilla Firefox --> <em:targetApplication> <Description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minVersion>3.0</em:minVersion> <em:maxVersion>4.0.*</em:maxVersion> </Description> </em:targetApplication> </Description> </RDF>
sample.xul
<?xml version="1.0"?> <overlay id="firefox_extension-browser-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/x-javascript" src="chrome://firefox_extension/content/overlay.js"/> </overlay>
overlay.js
function Read(file) { var ioService=Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService); var scriptableStream=Components .classes["@mozilla.org/scriptableinputstream;1"] .getService(Components.interfaces.nsIScriptableInputStream); var channel=ioService.newChannel(file,null,null); var input=channel.open(); scriptableStream.init(input); var str=scriptableStream.read(input.available()); scriptableStream.close(); input.close(); return str; } gBrowser.addEventListener("DOMContentLoaded", function(e) { var documentElement = e.originalTarget.defaultView.document; var div = documentElement.createElement("div"); div.innerHTML = Read("chrome://firefox_extension/content/locale.html"); documentElement.body.appendChild(div); });
locale.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Page displayed when a user opens a new tab or window</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <p>Some text<p> </body> </html>