Browse Source

Address mc extension code review.

Brendan Dahl 13 years ago
parent
commit
84568ee46d
  1. 22
      extensions/firefox/bootstrap.js
  2. 16
      extensions/firefox/components/PdfStreamConverter.js

22
extensions/firefox/bootstrap.js vendored

@ -10,10 +10,14 @@ let Cc = Components.classes;
let Ci = Components.interfaces; let Ci = Components.interfaces;
let Cm = Components.manager; let Cm = Components.manager;
let Cu = Components.utils; let Cu = Components.utils;
let application = Cc['@mozilla.org/fuel/application;1']
.getService(Ci.fuelIApplication);
Cu.import('resource://gre/modules/Services.jsm'); Cu.import('resource://gre/modules/Services.jsm');
function log(str) { function log(str) {
if (!application.prefs.getValue(EXT_PREFIX + '.pdfBugEnabled', false))
return;
dump(str + '\n'); dump(str + '\n');
} }
@ -60,12 +64,7 @@ function startup(aData, aReason) {
var ioService = Services.io; var ioService = Services.io;
var resProt = ioService.getProtocolHandler('resource') var resProt = ioService.getProtocolHandler('resource')
.QueryInterface(Ci.nsIResProtocolHandler); .QueryInterface(Ci.nsIResProtocolHandler);
var aliasFile = Cc['@mozilla.org/file/local;1'] var aliasURI = ioService.newURI('content/', 'UTF-8', aData.resourceURI);
.createInstance(Ci.nsILocalFile);
var componentPath = aData.installPath.clone();
componentPath.append('content');
aliasFile.initWithPath(componentPath.path);
var aliasURI = ioService.newFileURI(aliasFile);
resProt.setSubstitution(RESOURCE_NAME, aliasURI); resProt.setSubstitution(RESOURCE_NAME, aliasURI);
// Load the component and register it. // Load the component and register it.
@ -73,12 +72,9 @@ function startup(aData, aReason) {
'components/PdfStreamConverter.js'; 'components/PdfStreamConverter.js';
Cu.import(pdfStreamConverterUrl); Cu.import(pdfStreamConverterUrl);
Factory.register(PdfStreamConverter); Factory.register(PdfStreamConverter);
Services.prefs.setBoolPref('extensions.pdf.js.active', true);
} }
function shutdown(aData, aReason) { function shutdown(aData, aReason) {
if (Services.prefs.getBoolPref('extensions.pdf.js.active'))
Services.prefs.setBoolPref('extensions.pdf.js.active', false);
if (aReason == APP_SHUTDOWN) if (aReason == APP_SHUTDOWN)
return; return;
var ioService = Services.io; var ioService = Services.io;
@ -89,18 +85,14 @@ function shutdown(aData, aReason) {
// Remove the contract/component. // Remove the contract/component.
Factory.unregister(); Factory.unregister();
// Unload the converter // Unload the converter
if (pdfStreamConverterUrl) { Cu.unload(pdfStreamConverterUrl);
Cu.unload(pdfStreamConverterUrl); pdfStreamConverterUrl = null;
pdfStreamConverterUrl = null;
}
} }
function install(aData, aReason) { function install(aData, aReason) {
Services.prefs.setBoolPref('extensions.pdf.js.active', false);
} }
function uninstall(aData, aReason) { function uninstall(aData, aReason) {
Services.prefs.clearUserPref('extensions.pdf.js.active');
application.prefs.setValue(EXT_PREFIX + '.database', '{}'); application.prefs.setValue(EXT_PREFIX + '.database', '{}');
} }

16
extensions/firefox/components/PdfStreamConverter.js

@ -17,7 +17,15 @@ const MAX_DATABASE_LENGTH = 4096;
Cu.import('resource://gre/modules/XPCOMUtils.jsm'); Cu.import('resource://gre/modules/XPCOMUtils.jsm');
Cu.import('resource://gre/modules/Services.jsm'); Cu.import('resource://gre/modules/Services.jsm');
let application = Cc['@mozilla.org/fuel/application;1']
.getService(Ci.fuelIApplication);
let privateBrowsing = Cc['@mozilla.org/privatebrowsing;1']
.getService(Ci.nsIPrivateBrowsingService);
let inPrivateBrowswing = privateBrowsing.privateBrowsingEnabled;
function log(aMsg) { function log(aMsg) {
if (!application.prefs.getValue(EXT_PREFIX + '.pdfBugEnabled', false))
return;
let msg = 'PdfStreamConverter.js: ' + (aMsg.join ? aMsg.join('') : aMsg); let msg = 'PdfStreamConverter.js: ' + (aMsg.join ? aMsg.join('') : aMsg);
Services.console.logStringMessage(msg); Services.console.logStringMessage(msg);
dump(msg + '\n'); dump(msg + '\n');
@ -40,11 +48,6 @@ function topWindow(win) {
.QueryInterface(Ci.nsIInterfaceRequestor) .QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIDOMWindow); .getInterface(Ci.nsIDOMWindow);
} }
let application = Cc['@mozilla.org/fuel/application;1']
.getService(Ci.fuelIApplication);
let privateBrowsing = Cc['@mozilla.org/privatebrowsing;1']
.getService(Ci.nsIPrivateBrowsingService);
let inPrivateBrowswing = privateBrowsing.privateBrowsingEnabled;
// All the priviledged actions. // All the priviledged actions.
function ChromeActions() { function ChromeActions() {
@ -125,9 +128,6 @@ PdfStreamConverter.prototype = {
// nsIStreamConverter::asyncConvertData // nsIStreamConverter::asyncConvertData
asyncConvertData: function(aFromType, aToType, aListener, aCtxt) { asyncConvertData: function(aFromType, aToType, aListener, aCtxt) {
if (!Services.prefs.getBoolPref('extensions.pdf.js.active'))
throw Cr.NS_ERROR_NOT_IMPLEMENTED;
// Ignoring HTTP POST requests -- pdf.js has to repeat the request. // Ignoring HTTP POST requests -- pdf.js has to repeat the request.
var skipConversion = false; var skipConversion = false;
try { try {

Loading…
Cancel
Save