mirror of
https://github.com/Feodor2/Mypal68.git
synced 2025-06-18 23:05:40 -04:00
76 lines
2.1 KiB
JavaScript
76 lines
2.1 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/. */
|
|
|
|
/* eslint-env browser */
|
|
|
|
"use strict";
|
|
|
|
/**
|
|
* The connect module creates a connection to a debugger server based on the current
|
|
* context (e.g. URL parameters).
|
|
*/
|
|
|
|
const { clientFromURL } = require("devtools/client/framework/target-from-url");
|
|
const { DebuggerServer } = require("devtools/server/main");
|
|
|
|
// Supported connection types
|
|
const TYPE = {
|
|
// Default, connected to the current instance of Firefox
|
|
LOCAL: "LOCAL",
|
|
// Connected to a remote instance of Firefox via host&port settings.
|
|
REMOTE: "REMOTE",
|
|
};
|
|
|
|
/**
|
|
* Create a plain object containing the connection information relevant to aboutdebugging
|
|
* components.
|
|
*
|
|
* @returns {Object}
|
|
* - type: {String} from TYPE ("LOCAL", "REMOTE")
|
|
* - params: {Object} additional metadata depending on the type.
|
|
* - if type === "LOCAL", empty object
|
|
* - if type === "REMOTE", {host: {String}, port: {String}}
|
|
*/
|
|
function createDescriptorFromURL(url) {
|
|
const params = url.searchParams;
|
|
|
|
const host = params.get("host");
|
|
const port = params.get("port");
|
|
|
|
let descriptor;
|
|
if (host && port) {
|
|
descriptor = {
|
|
type: TYPE.REMOTE,
|
|
params: { host, port },
|
|
};
|
|
} else {
|
|
descriptor = {
|
|
type: TYPE.LOCAL,
|
|
params: {},
|
|
};
|
|
}
|
|
|
|
return descriptor;
|
|
}
|
|
|
|
/**
|
|
* Returns a promise that resolves after creating a debugger client corresponding to the
|
|
* provided options.
|
|
*
|
|
* @returns Promise that resolves an object with the following properties:
|
|
* - client: a DebuggerClient instance
|
|
* - connect: a connection descriptor, see doc for createDescriptorFromURL(url).
|
|
*/
|
|
exports.createClient = async function() {
|
|
const href = window.location.href;
|
|
const url = new window.URL(href.replace("about:", "http://"));
|
|
|
|
const connect = createDescriptorFromURL(url);
|
|
const client = await clientFromURL(url);
|
|
|
|
DebuggerServer.allowChromeProcess = true;
|
|
|
|
return { client, connect };
|
|
};
|