summaryrefslogtreecommitdiffstats
path: root/devtools/startup/AboutDebuggingRegistration.jsm
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/startup/AboutDebuggingRegistration.jsm')
-rw-r--r--devtools/startup/AboutDebuggingRegistration.jsm42
1 files changed, 42 insertions, 0 deletions
diff --git a/devtools/startup/AboutDebuggingRegistration.jsm b/devtools/startup/AboutDebuggingRegistration.jsm
new file mode 100644
index 0000000000..4228c265df
--- /dev/null
+++ b/devtools/startup/AboutDebuggingRegistration.jsm
@@ -0,0 +1,42 @@
+/* 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/. */
+
+"use strict";
+
+// Register the about:debugging URL, that allows to debug tabs, extensions, workers on
+// the current instance of Firefox or on a remote Firefox.
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+
+const { nsIAboutModule } = Ci;
+
+function AboutDebugging() {}
+
+AboutDebugging.prototype = {
+ classDescription: "about:debugging",
+ classID: Components.ID("1060afaf-dc9e-43da-8646-23a2faf48493"),
+ contractID: "@mozilla.org/network/protocol/about;1?what=debugging",
+
+ QueryInterface: ChromeUtils.generateQI([nsIAboutModule]),
+
+ newChannel: function(_, loadInfo) {
+ const chan = Services.io.newChannelFromURIWithLoadInfo(
+ Services.io.newURI("chrome://devtools/content/aboutdebugging/index.html"),
+ loadInfo
+ );
+ chan.owner = Services.scriptSecurityManager.getSystemPrincipal();
+ return chan;
+ },
+
+ getURIFlags: function(uri) {
+ return nsIAboutModule.ALLOW_SCRIPT;
+ },
+
+ getChromeURI: function(_uri) {
+ return Services.io.newURI(
+ "chrome://devtools/content/aboutdebugging/index.html"
+ );
+ },
+};
+
+var EXPORTED_SYMBOLS = ["AboutDebugging"];