dom/ipc/preload.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
     3  * You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 // Preload some things, in an attempt to make app startup faster.
     6 //
     7 // This script is run when the preallocated process starts.  It is injected as
     8 // a frame script.
    10 const BrowserElementIsPreloaded = true;
    12 (function (global) {
    13   "use strict";
    15   let Cu = Components.utils;
    16   let Cc = Components.classes;
    17   let Ci = Components.interfaces;
    19   Cu.import("resource://gre/modules/AppsServiceChild.jsm");
    20   Cu.import("resource://gre/modules/AppsUtils.jsm");
    21   Cu.import("resource://gre/modules/BrowserElementPromptService.jsm");
    22   Cu.import("resource://gre/modules/CSPUtils.jsm");
    23   Cu.import("resource://gre/modules/DOMRequestHelper.jsm");
    24   Cu.import("resource://gre/modules/FileUtils.jsm");
    25   Cu.import("resource://gre/modules/Geometry.jsm");
    26   Cu.import("resource://gre/modules/IndexedDBHelper.jsm");
    27   Cu.import("resource://gre/modules/NetUtil.jsm");
    28   Cu.import("resource://gre/modules/Services.jsm");
    29   Cu.import("resource://gre/modules/SettingsDB.jsm");
    30   Cu.import("resource://gre/modules/SettingsQueue.jsm");
    31   Cu.import("resource://gre/modules/XPCOMUtils.jsm");
    33   Cc["@mozilla.org/appshell/appShellService;1"].getService(Ci["nsIAppShellService"]);
    34   Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci["nsIWindowMediator"]);
    35   Cc["@mozilla.org/AppsService;1"].getService(Ci["nsIAppsService"]);
    36   Cc["@mozilla.org/base/telemetry;1"].getService(Ci["nsITelemetry"]);
    37   Cc["@mozilla.org/categorymanager;1"].getService(Ci["nsICategoryManager"]);
    38   Cc["@mozilla.org/childprocessmessagemanager;1"].getService(Ci["nsIMessageSender"]);
    39   Cc["@mozilla.org/consoleservice;1"].getService(Ci["nsIConsoleService"]);
    40   Cc["@mozilla.org/cookieService;1"].getService(Ci["nsICookieService"]);
    41   Cc["@mozilla.org/docshell/urifixup;1"].getService(Ci["nsIURIFixup"]);
    42   Cc["@mozilla.org/dom/dom-request-service;1"].getService(Ci["nsIDOMRequestService"]);
    43   Cc["@mozilla.org/embedcomp/prompt-service;1"].getService(Ci["nsIPromptService"]);
    44   Cc["@mozilla.org/embedcomp/window-watcher;1"].getService(Ci["nsIWindowWatcher"]);
    45   Cc["@mozilla.org/eventlistenerservice;1"].getService(Ci["nsIEventListenerService"]);
    46   Cc["@mozilla.org/focus-manager;1"].getService(Ci["nsIFocusManager"]);
    47   Cc["@mozilla.org/intl/nslocaleservice;1"].getService(Ci["nsILocaleService"]);
    48   Cc["@mozilla.org/intl/stringbundle;1"].getService(Ci["nsIStringBundleService"]);
    49   Cc["@mozilla.org/layout/content-policy;1"].getService(Ci["nsIContentPolicy"]);
    50   Cc["@mozilla.org/message-loop;1"].getService(Ci["nsIMessageLoop"]);
    51   Cc["@mozilla.org/moz/jssubscript-loader;1"].getService(Ci["mozIJSSubScriptLoader"]);
    52   Cc["@mozilla.org/network/application-cache-service;1"].getService(Ci["nsIApplicationCacheService"]);
    53   Cc["@mozilla.org/network/dns-service;1"].getService(Ci["nsIDNSService"]);
    54   Cc["@mozilla.org/network/effective-tld-service;1"].getService(Ci["nsIEffectiveTLDService"]);
    55   Cc["@mozilla.org/network/idn-service;1"].getService(Ci["nsIIDNService"]);
    56   Cc["@mozilla.org/network/io-service;1"].getService(Ci["nsIIOService2"]);
    57   Cc["@mozilla.org/network/mime-hdrparam;1"].getService(Ci["nsIMIMEHeaderParam"]);
    58   Cc["@mozilla.org/network/protocol-proxy-service;1"].getService(Ci["nsIProtocolProxyService"]);
    59   Cc["@mozilla.org/network/socket-transport-service;1"].getService(Ci["nsISocketTransportService"]);
    60   Cc["@mozilla.org/network/stream-transport-service;1"].getService(Ci["nsIStreamTransportService"]);
    61   Cc["@mozilla.org/network/url-parser;1?auth=maybe"].getService(Ci["nsIURLParser"]);
    62   Cc["@mozilla.org/network/url-parser;1?auth=no"].getService(Ci["nsIURLParser"]);
    63   Cc["@mozilla.org/network/url-parser;1?auth=yes"].getService(Ci["nsIURLParser"]);
    64   Cc["@mozilla.org/observer-service;1"].getService(Ci["nsIObserverService"]);
    65   Cc["@mozilla.org/permissionmanager;1"].getService(Ci["nsIPermissionManager"]);
    66   Cc["@mozilla.org/preferences-service;1"].getService(Ci["nsIPrefBranch"]);
    67   Cc["@mozilla.org/scriptsecuritymanager;1"].getService(Ci["nsIScriptSecurityManager"]);
    68   Cc["@mozilla.org/storage/service;1"].getService(Ci["mozIStorageService"]);
    69   Cc["@mozilla.org/system-info;1"].getService(Ci["nsIPropertyBag2"]);
    70   Cc["@mozilla.org/thread-manager;1"].getService(Ci["nsIThreadManager"]);
    71   Cc["@mozilla.org/toolkit/app-startup;1"].getService(Ci["nsIAppStartup"]);
    72   Cc["@mozilla.org/uriloader;1"].getService(Ci["nsIURILoader"]);
    73   Cc["@mozilla.org/contentsecuritypolicy;1"].createInstance(Ci["nsIContentSecurityPolicy"]);
    75   /* Applications Specific Helper */
    76   try {
    77     // May throw if we don't have the settings permission
    78     navigator.mozSettings;
    79   } catch(e) {
    80   }
    82   try {
    83     if (Services.prefs.getBoolPref("dom.sysmsg.enabled")) {
    84       Cc["@mozilla.org/system-message-manager;1"].getService(Ci["nsIDOMNavigatorSystemMessages"]);
    85     }
    86   } catch(e) {
    87   }
    89   try {
    90     if (Services.prefs.getBoolPref("dom.mozInputMethod.enabled")) {
    91       Services.scriptloader.loadSubScript("chrome://global/content/forms.js", global);
    92     }
    93   } catch (e) {
    94   }
    96   Services.scriptloader.loadSubScript("chrome://global/content/BrowserElementPanning.js", global);
    97   Services.scriptloader.loadSubScript("chrome://global/content/BrowserElementChildPreload.js", global);
    99   Services.io.getProtocolHandler("app");
   100   Services.io.getProtocolHandler("default");
   102   docShell.isActive = false;
   103   docShell.createAboutBlankContentViewer(null);
   105 })(this);

mercurial