diff options
Diffstat (limited to 'application/palemoon/components/places/PlacesProtocolHandler.js')
-rw-r--r-- | application/palemoon/components/places/PlacesProtocolHandler.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/application/palemoon/components/places/PlacesProtocolHandler.js b/application/palemoon/components/places/PlacesProtocolHandler.js new file mode 100644 index 000000000..ebffd2e28 --- /dev/null +++ b/application/palemoon/components/places/PlacesProtocolHandler.js @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * vim: sw=2 ts=2 sts=2 et + * 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 = Components.classes; +const Ci = Components.interfaces; + +Components.utils.import("resource://gre/modules/NetUtil.jsm"); +Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); + +const SCHEME = "place"; +const URL = "chrome://browser/content/places/content-ui/controller.xhtml"; + +function PlacesProtocolHandler() {} + +PlacesProtocolHandler.prototype = { + scheme: SCHEME, + defaultPort: -1, + protocolFlags: Ci.nsIProtocolHandler.URI_DANGEROUS_TO_LOAD | + Ci.nsIProtocolHandler.URI_IS_LOCAL_RESOURCE | + Ci.nsIProtocolHandler.URI_NORELATIVE | + Ci.nsIProtocolHandler.URI_NOAUTH, + + newURI: function PPH_newURI(aSpec, aOriginCharset, aBaseUri) { + let uri = Cc["@mozilla.org/network/simple-uri;1"].createInstance(Ci.nsIURI); + uri.spec = aSpec; + return uri; + }, + + newChannel: function PPH_newChannel(aUri) { + let chan = NetUtil.newChannel(URL); + chan.originalURI = aUri; + return chan; + }, + + allowPort: function PPH_allowPort(aPort, aScheme) { + return false; + }, + + QueryInterface: XPCOMUtils.generateQI([ + Ci.nsIProtocolHandler + ]), + + classID: Components.ID("{6bcb9bde-9018-4443-a071-c32653469597}") +}; + +this.NSGetFactory = XPCOMUtils.generateNSGetFactory([PlacesProtocolHandler]); |