diff -r 000000000000 -r 6474c204b198 browser/metro/components/ContentDispatchChooser.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browser/metro/components/ContentDispatchChooser.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,38 @@ +/* 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]); +