Verified Commit 57ed4f29 authored by Pier Angelo Vendrame's avatar Pier Angelo Vendrame 🎃
Browse files

fixup! Bug 40933: Add tor-launcher functionality

Switched to ES modules for this commit.
parent cc917488
Loading
Loading
Loading
Loading
+5 −16
Original line number Diff line number Diff line
"use strict";
import { setTimeout, clearTimeout } from "resource://gre/modules/Timer.sys.mjs";

var EXPORTED_SYMBOLS = ["TorBootstrapRequest", "TorTopics"];

const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
const { setTimeout, clearTimeout } = ChromeUtils.import(
  "resource://gre/modules/Timer.jsm"
);

const { TorProtocolService } = ChromeUtils.import(
  "resource://gre/modules/TorProtocolService.jsm"
);
const { TorLauncherUtil } = ChromeUtils.import(
  "resource://gre/modules/TorLauncherUtil.jsm"
);
import { TorProtocolService } from "resource://gre/modules/TorProtocolService.sys.mjs";
import { TorLauncherUtil } from "resource://gre/modules/TorLauncherUtil.sys.mjs";

/* tor-launcher observer topics */
const TorTopics = Object.freeze({
export const TorTopics = Object.freeze({
  BootstrapStatus: "TorBootstrapStatus",
  BootstrapError: "TorBootstrapError",
  LogHasWarnOrErr: "TorLogHasWarnOrErr",
@@ -23,7 +12,7 @@ const TorTopics = Object.freeze({

// modeled after XMLHttpRequest
// nicely encapsulates the observer register/unregister logic
class TorBootstrapRequest {
export class TorBootstrapRequest {
  constructor() {
    // number of ms to wait before we abandon the bootstrap attempt
    // a value of 0 implies we never wait
+1 −7
Original line number Diff line number Diff line
// Copyright (c) 2022, The Tor Project, Inc.
// See LICENSE for licensing information.

"use strict";

/*************************************************************************
 * Tor Launcher Util JS Module
 *************************************************************************/

var EXPORTED_SYMBOLS = ["TorLauncherUtil"];

const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");

const kPropBundleURI = "chrome://torbutton/locale/torlauncher.properties";
const kPropNamePrefix = "torlauncher.";
const kIPCDirPrefName = "extensions.torlauncher.tmp_ipc_dir";
@@ -323,7 +317,7 @@ class TorFile {
  }
}

const TorLauncherUtil = Object.freeze({
export const TorLauncherUtil = Object.freeze({
  get isMac() {
    return Services.appinfo.OS === "Darwin";
  },
+11 −21
Original line number Diff line number Diff line
// Copyright (c) 2022, The Tor Project, Inc.

"use strict";
import { clearTimeout, setTimeout } from "resource://gre/modules/Timer.sys.mjs";
import { ConsoleAPI } from "resource://gre/modules/Console.sys.mjs";

var EXPORTED_SYMBOLS = ["TorMonitorService"];
import {
  TorParsers,
  TorStatuses,
} from "resource://gre/modules/TorParsers.sys.mjs";
import { TorProcess } from "resource://gre/modules/TorProcess.sys.mjs";

const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
const { clearTimeout, setTimeout } = ChromeUtils.import(
  "resource://gre/modules/Timer.jsm"
);
const { ConsoleAPI } = ChromeUtils.import("resource://gre/modules/Console.jsm");

const { TorParsers, TorStatuses } = ChromeUtils.import(
  "resource://gre/modules/TorParsers.jsm"
);
const { TorProcess } = ChromeUtils.import(
  "resource://gre/modules/TorProcess.jsm"
);

const { TorLauncherUtil } = ChromeUtils.import(
  "resource://gre/modules/TorLauncherUtil.jsm"
);
import { TorLauncherUtil } from "resource://gre/modules/TorLauncherUtil.sys.mjs";

const lazy = {};

@@ -30,8 +20,8 @@ ChromeUtils.defineModuleGetter(
);

const logger = new ConsoleAPI({
  // maxLogLevel: "warn",
  maxLogLevel: "all",
  maxLogLevel: "warn",
  maxLogLevelPref: "browser.tor_monitor_service.log_level",
  prefix: "TorMonitorService",
});

@@ -60,7 +50,7 @@ const ControlConnTimings = Object.freeze({
 * This is the service which should be queried to know information about the
 * status of the bootstrap, the logs, etc...
 */
const TorMonitorService = {
export const TorMonitorService = {
  _connection: null,
  _eventsToMonitor: Object.freeze(["STATUS_CLIENT", "NOTICE", "WARN", "ERR"]),
  _torLog: [], // Array of objects with date, type, and msg properties.
+2 −6
Original line number Diff line number Diff line
// Copyright (c) 2022, The Tor Project, Inc.

"use strict";

var EXPORTED_SYMBOLS = ["TorParsers", "TorStatuses"];

const TorStatuses = Object.freeze({
export const TorStatuses = Object.freeze({
  OK: 250,
  EventNotification: 650,
});

const TorParsers = Object.freeze({
export const TorParsers = Object.freeze({
  commandSucceeded(aReply) {
    return aReply?.statusCode === TorStatuses.OK;
  },
+4 −11
Original line number Diff line number Diff line
"use strict";

var EXPORTED_SYMBOLS = ["TorProcess"];

const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
const { setTimeout } = ChromeUtils.import("resource://gre/modules/Timer.jsm");
const { ConsoleAPI } = ChromeUtils.import("resource://gre/modules/Console.jsm");
const { Subprocess } = ChromeUtils.import(
  "resource://gre/modules/Subprocess.jsm"
);
import { setTimeout } from "resource://gre/modules/Timer.sys.mjs";
import { ConsoleAPI } from "resource://gre/modules/Console.sys.mjs";
import { Subprocess } from "resource://gre/modules/Subprocess.sys.mjs";

const lazy = {};

@@ -36,7 +29,7 @@ const logger = new ConsoleAPI({
  prefix: "TorProcess",
});

class TorProcess {
export class TorProcess {
  _exeFile = null;
  _dataDir = null;
  _args = [];
Loading