gecko/mobile/xul/components/ContentDispatchChooser.js
Kyle Huey 1482122303 Bug 798491: Add an option to stick all chrome JSMs/JS components in the same compartment. r=mrbkap,philikon
--HG--
extra : rebase_source : 98337b6a8c07d05e8c961a452dd05a7d75c3c60b
2012-10-31 09:13:28 -07:00

39 lines
1.3 KiB
JavaScript

/* 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 Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
Cu.import("resource://gre/modules/Services.jsm");
function ContentDispatchChooser() {}
ContentDispatchChooser.prototype =
{
classID: Components.ID("5a072a22-1e66-4100-afc1-07aed8b62fc5"),
QueryInterface: XPCOMUtils.generateQI([Ci.nsIContentDispatchChooser]),
ask: function ask(aHandler, aWindowContext, aURI, aReason) {
let window = null;
try {
if (aWindowContext)
window = aWindowContext.getInterface(Ci.nsIDOMWindow);
} catch (e) { /* it's OK to not have a window */ }
let bundle = Services.strings.createBundle("chrome://mozapps/locale/handling/handling.properties");
let title = bundle.GetStringFromName("protocol.title");
let message = bundle.GetStringFromName("protocol.description");
let open = Services.prompt.confirm(window, title, message);
if (open)
aHandler.launchWithURI(aURI, aWindowContext);
}
};
this.NSGetFactory = XPCOMUtils.generateNSGetFactory([ContentDispatchChooser]);