diff options
Diffstat (limited to 'devtools/client/webide/modules/utils.js')
-rw-r--r-- | devtools/client/webide/modules/utils.js | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/devtools/client/webide/modules/utils.js b/devtools/client/webide/modules/utils.js new file mode 100644 index 000000000..7a19c7044 --- /dev/null +++ b/devtools/client/webide/modules/utils.js @@ -0,0 +1,68 @@ +/* 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/. */ + +const { Cc, Cu, Ci } = require("chrome"); +const { FileUtils } = Cu.import("resource://gre/modules/FileUtils.jsm", {}); +const Services = require("Services"); +const Strings = Services.strings.createBundle("chrome://devtools/locale/webide.properties"); + +function doesFileExist(location) { + let file = new FileUtils.File(location); + return file.exists(); +} +exports.doesFileExist = doesFileExist; + +function _getFile(location, ...pickerParams) { + if (location) { + return new FileUtils.File(location); + } + let fp = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker); + fp.init(...pickerParams); + let res = fp.show(); + if (res == Ci.nsIFilePicker.returnCancel) { + return null; + } + return fp.file; +} + +function getCustomBinary(window, location) { + return _getFile(location, window, Strings.GetStringFromName("selectCustomBinary_title"), Ci.nsIFilePicker.modeOpen); +} +exports.getCustomBinary = getCustomBinary; + +function getCustomProfile(window, location) { + return _getFile(location, window, Strings.GetStringFromName("selectCustomProfile_title"), Ci.nsIFilePicker.modeGetFolder); +} +exports.getCustomProfile = getCustomProfile; + +function getPackagedDirectory(window, location) { + return _getFile(location, window, Strings.GetStringFromName("importPackagedApp_title"), Ci.nsIFilePicker.modeGetFolder); +} +exports.getPackagedDirectory = getPackagedDirectory; + +function getHostedURL(window, location) { + let ret = { value: null }; + + if (!location) { + Services.prompt.prompt(window, + Strings.GetStringFromName("importHostedApp_title"), + Strings.GetStringFromName("importHostedApp_header"), + ret, null, {}); + location = ret.value; + } + + if (!location) { + return null; + } + + // Clean location string and add "http://" if missing + location = location.trim(); + try { // Will fail if no scheme + Services.io.extractScheme(location); + } catch (e) { + location = "http://" + location; + } + return location; +} +exports.getHostedURL = getHostedURL; |