text: const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
  
  var EXPORTED_SYMBOLS = [];
  
  Cu.import("resource://gre/modules/XPCOMUtils.jsm");
  
  let CCK2FileBlock = {
    chromeBlacklist: ["browser", "mozapps", "marionette", "specialpowers",
                      "branding", "alerts"],
    shouldLoad: function(aContentType, aContentLocation, aRequestOrigin, aContext, aMimeTypeGuess, aExtra) {
      // Prevent the loading of chrome URLs into the main browser window
      if (aContentLocation.scheme == "chrome") {
        if (aRequestOrigin &&
            (aRequestOrigin.spec == "chrome://browser/content/browser.xul" ||
            aRequestOrigin.scheme == "moz-nullprincipal")) {
          for (var i=0; i < this.chromeBlacklist.length; i++) {
            if (aContentLocation.host == this.chromeBlacklist[i]) {
              if (aContentLocation.spec.includes(".xul")) {
                return Ci.nsIContentPolicy.REJECT_REQUEST;
              }
            }
          }
        }
      }
      return Ci.nsIContentPolicy.ACCEPT;
    },
    shouldProcess: function(aContentType, aContentLocation, aRequestOrigin, aContext, aMimeTypeGuess, aExtra) {
      return Ci.nsIContentPolicy.ACCEPT;
    },
    classDescription: "CCK2 FileBlock Service",
    contractID: "@kaply.com/cck2-fileblock-service;1",
    classID: Components.ID('{26e7afc9-e22d-4d12-bb57-c184fe24b828}'),
    QueryInterface: XPCOMUtils.generateQI([Ci.nsIContentPolicy]),
    createInstance: function(outer, iid) {
       return this.QueryInterface(iid);
    },
  };
  
  var registrar = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
  registrar.registerFactory(CCK2FileBlock.classID,
                            CCK2FileBlock.classDescription,
                            CCK2FileBlock.contractID,
                            CCK2FileBlock);
  
  var cm = Cc["@mozilla.org/categorymanager;1"].getService(Ci.nsICategoryManager);
  cm.addCategoryEntry("content-policy", CCK2FileBlock.contractID,
                      CCK2FileBlock.contractID, false, true);
  