summaryrefslogtreecommitdiffstats
path: root/toolkit/components/processsingleton/MainProcessSingleton.jsm
blob: ecdbf2a01d99a4e5f3e481fd2c6b4fa378ffeebd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* 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/. */

"use strict";

const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");

function MainProcessSingleton() {}
MainProcessSingleton.prototype = {
  classID: Components.ID("{0636a680-45cb-11e4-916c-0800200c9a66}"),
  QueryInterface: ChromeUtils.generateQI([
    "nsIObserver",
    "nsISupportsWeakReference",
  ]),

  observe(subject, topic, data) {
    switch (topic) {
      case "app-startup": {
        Services.obs.addObserver(this, "ipc:first-content-process-created");

        ChromeUtils.import(
          "resource://gre/modules/CustomElementsListener.jsm",
          null
        );

        Services.ppmm.loadProcessScript(
          "chrome://global/content/process-content.js",
          true
        );
        break;
      }

      case "ipc:first-content-process-created": {
        // L10nRegistry needs to be initialized before any content
        // process is loaded to populate the registered FileSource
        // categories.
        ChromeUtils.import("resource://gre/modules/L10nRegistry.jsm");
        break;
      }
    }
  },
};

var EXPORTED_SYMBOLS = ["MainProcessSingleton"];