webapprt/Startup.jsm
author David Zbarsky <dzbarsky@gmail.com>
Sun, 06 Jan 2013 04:32:01 -0500
changeset 126887 5ec2ebd28b1a6e7368f3f96ccf97aba6040d0ae2
parent 119882 5ce71981e005a52d4cb0b831ad3db9284f2fb356
child 151199 f91d3bfa77064cbb9ed9653e3de298a229123dfb
permissions -rw-r--r--
Bug 825147: Convert SVGPolygonElement and SVGPolylineElement to WebIDL r=bz

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

/* This is imported by each new webapp window but is only evaluated the first
 * time it is imported.  Put stuff here that you want to happen once on startup
 * before the webapp is loaded.  But note that the "stuff" happens immediately
 * the first time this module is imported.  So only put stuff here that must
 * happen before the webapp is loaded. */

this.EXPORTED_SYMBOLS = [];

const Ci = Components.interfaces;
const Cu = Components.utils;

Cu.import("resource://gre/modules/Services.jsm");

// Initialize DOMApplicationRegistry by importing Webapps.jsm.
Cu.import("resource://gre/modules/Webapps.jsm");

// Initialize window-independent handling of webapps- notifications.
Cu.import("resource://webapprt/modules/WebappsHandler.jsm");
WebappsHandler.init();

// On firstrun, set permissions to their default values.
if (!Services.prefs.getBoolPref("webapprt.firstrun")) {
  Cu.import("resource://webapprt/modules/WebappRT.jsm");
  let uri = Services.io.newURI(WebappRT.config.app.origin, null, null);

  // Set AppCache-related permissions.
  Services.perms.add(uri, "pin-app",
                     Ci.nsIPermissionManager.ALLOW_ACTION);
  Services.perms.add(uri, "offline-app",
                     Ci.nsIPermissionManager.ALLOW_ACTION);

  Services.perms.add(uri, "indexedDB",
                     Ci.nsIPermissionManager.ALLOW_ACTION);
  Services.perms.add(uri, "indexedDB-unlimited",
                     Ci.nsIPermissionManager.ALLOW_ACTION);

  // Now that we've set the appropriate permissions, twiddle the firstrun
  // flag so we don't try to do so again.
  Services.prefs.setBoolPref("webapprt.firstrun", true);
}