summaryrefslogtreecommitdiffstats
path: root/toolkit/components/osfile/osfile.jsm
blob: 0a401eaf19f1d1c19622f31f6ef90e9c3b7af771 (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
/* 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/. */

/**
 * Common front for various implementations of OS.File
 */

if (typeof Components != "undefined") {
  this.EXPORTED_SYMBOLS = ["OS"];
  ChromeUtils.import(
    "resource://gre/modules/osfile/osfile_async_front.jsm",
    this
  );
} else {
  /* eslint-env worker */
  importScripts("resource://gre/modules/workers/require.js");

  var SharedAll = require("resource://gre/modules/osfile/osfile_shared_allthreads.jsm");

  /* eslint-disable no-unused-vars */

  // At this stage, we need to import all sources at once to avoid
  // a unique failure on tbpl + talos that seems caused by a
  // what looks like a nested event loop bug (see bug 794091).
  if (SharedAll.Constants.Win) {
    importScripts(
      "resource://gre/modules/osfile/osfile_win_back.jsm",
      "resource://gre/modules/osfile/osfile_shared_front.jsm",
      "resource://gre/modules/osfile/osfile_win_front.jsm"
    );
  } else {
    importScripts(
      "resource://gre/modules/osfile/osfile_unix_back.jsm",
      "resource://gre/modules/osfile/osfile_shared_front.jsm",
      "resource://gre/modules/osfile/osfile_unix_front.jsm"
    );
  }

  /* eslint-enable no-unused-vars */

  OS.Path = require("resource://gre/modules/osfile/ospath.jsm");
}