Skip to content

Commit

Permalink
Bug 1601618 - [remote] Use lazy loading of modules and delayed settin…
Browse files Browse the repository at this point in the history
…g of global properties. r=remote-protocol-reviewers,jdescottes

Differential Revision: https://phabricator.services.mozilla.com/D106602
  • Loading branch information
whimboo committed Feb 26, 2021
1 parent c9df4a4 commit b7893c0
Show file tree
Hide file tree
Showing 40 changed files with 342 additions and 265 deletions.
15 changes: 7 additions & 8 deletions remote/cdp/Connection.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,14 @@ const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);

const { truncate } = ChromeUtils.import(
"chrome://remote/content/shared/Format.jsm"
);
const { Log } = ChromeUtils.import("chrome://remote/content/shared/Log.jsm");
const { UnknownMethodError } = ChromeUtils.import(
"chrome://remote/content/cdp/Error.jsm"
);
XPCOMUtils.defineLazyModuleGetters(this, {
Log: "chrome://remote/content/shared/Log.jsm",
truncate: "chrome://remote/content/shared/Format.jsm",
UnknownMethodError: "chrome://remote/content/cdp/Error.jsm",
});

XPCOMUtils.defineLazyGetter(this, "log", () => Log.get());

XPCOMUtils.defineLazyGetter(this, "log", Log.get);
XPCOMUtils.defineLazyServiceGetter(
this,
"UUIDGen",
Expand Down
10 changes: 7 additions & 3 deletions remote/cdp/Error.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,17 @@ var EXPORTED_SYMBOLS = [
"UnsupportedError",
];

const { Log } = ChromeUtils.import("chrome://remote/content/shared/Log.jsm");
const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);

XPCOMUtils.defineLazyGetter(this, "log", Log.get);
XPCOMUtils.defineLazyModuleGetters(this, {
Services: "resource://gre/modules/Services.jsm",

Log: "chrome://remote/content/shared/Log.jsm",
});

XPCOMUtils.defineLazyGetter(this, "log", () => Log.get());

class RemoteAgentError extends Error {
constructor(message = "", cause = undefined) {
Expand Down
23 changes: 12 additions & 11 deletions remote/cdp/JSONHandler.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,20 @@

var EXPORTED_SYMBOLS = ["JSONHandler"];

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

const { HTTP_404, HTTP_505 } = ChromeUtils.import(
"chrome://remote/content/server/HTTPD.jsm"
);
const { Log } = ChromeUtils.import("chrome://remote/content/shared/Log.jsm");
const { Protocol } = ChromeUtils.import(
"chrome://remote/content/cdp/Protocol.jsm"
);
const { RemoteAgentError } = ChromeUtils.import(
"chrome://remote/content/cdp/Error.jsm"
const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);

XPCOMUtils.defineLazyModuleGetters(this, {
Services: "resource://gre/modules/Services.jsm",

HTTP_404: "chrome://remote/content/server/HTTPD.jsm",
HTTP_505: "chrome://remote/content/server/HTTPD.jsm",
Log: "chrome://remote/content/shared/Log.jsm",
Protocol: "chrome://remote/content/cdp/Protocol.jsm",
RemoteAgentError: "chrome://remote/content/cdp/Error.jsm",
});

class JSONHandler {
constructor(agent) {
this.agent = agent;
Expand Down
6 changes: 2 additions & 4 deletions remote/cdp/StreamRegistry.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,14 @@ const { XPCOMUtils } = ChromeUtils.import(
XPCOMUtils.defineLazyModuleGetters(this, {
AsyncShutdown: "resource://gre/modules/AsyncShutdown.jsm",
OS: "resource://gre/modules/osfile.jsm",

UnsupportedError: "chrome://remote/content/cdp/Error.jsm",
});

XPCOMUtils.defineLazyServiceGetters(this, {
uuidGen: ["@mozilla.org/uuid-generator;1", "nsIUUIDGenerator"],
});

const { UnsupportedError } = ChromeUtils.import(
"chrome://remote/content/cdp/Error.jsm"
);

class StreamRegistry {
constructor() {
// handle => stream
Expand Down
12 changes: 7 additions & 5 deletions remote/cdp/domains/DomainCache.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,15 @@

var EXPORTED_SYMBOLS = ["DomainCache"];

const { Domain } = ChromeUtils.import(
"chrome://remote/content/cdp/domains/Domain.jsm"
);
const { UnknownMethodError } = ChromeUtils.import(
"chrome://remote/content/cdp/Error.jsm"
const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);

XPCOMUtils.defineLazyModuleGetters(this, {
Domain: "chrome://remote/content/cdp/domains/Domain.jsm",
UnknownMethodError: "chrome://remote/content/cdp/Error.jsm",
});

/**
* Lazy domain instance cache.
*
Expand Down
9 changes: 7 additions & 2 deletions remote/cdp/domains/content/DOM.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,15 @@

var EXPORTED_SYMBOLS = ["DOM"];

const { ContentProcessDomain } = ChromeUtils.import(
"chrome://remote/content/cdp/domains/ContentProcessDomain.jsm"
var { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);

XPCOMUtils.defineLazyModuleGetters(this, {
ContentProcessDomain:
"chrome://remote/content/cdp/domains/ContentProcessDomain.jsm",
});

class DOM extends ContentProcessDomain {
constructor(session) {
super(session);
Expand Down
9 changes: 7 additions & 2 deletions remote/cdp/domains/content/Emulation.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,15 @@

var EXPORTED_SYMBOLS = ["Emulation"];

const { ContentProcessDomain } = ChromeUtils.import(
"chrome://remote/content/cdp/domains/ContentProcessDomain.jsm"
var { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);

XPCOMUtils.defineLazyModuleGetters(this, {
ContentProcessDomain:
"chrome://remote/content/cdp/domains/ContentProcessDomain.jsm",
});

class Emulation extends ContentProcessDomain {
// commands

Expand Down
9 changes: 7 additions & 2 deletions remote/cdp/domains/content/Input.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,15 @@

var EXPORTED_SYMBOLS = ["Input"];

const { ContentProcessDomain } = ChromeUtils.import(
"chrome://remote/content/cdp/domains/ContentProcessDomain.jsm"
var { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);

XPCOMUtils.defineLazyModuleGetters(this, {
ContentProcessDomain:
"chrome://remote/content/cdp/domains/ContentProcessDomain.jsm",
});

class Input extends ContentProcessDomain {
constructor(session) {
super(session);
Expand Down
12 changes: 9 additions & 3 deletions remote/cdp/domains/content/Log.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,16 @@

var EXPORTED_SYMBOLS = ["Log"];

const { ContentProcessDomain } = ChromeUtils.import(
"chrome://remote/content/cdp/domains/ContentProcessDomain.jsm"
var { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);
const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");

XPCOMUtils.defineLazyModuleGetters(this, {
Services: "resource://gre/modules/Services.jsm",

ContentProcessDomain:
"chrome://remote/content/cdp/domains/ContentProcessDomain.jsm",
});

const CONSOLE_MESSAGE_LEVEL_MAP = {
[Ci.nsIConsoleMessage.debug]: "verbose",
Expand Down
9 changes: 7 additions & 2 deletions remote/cdp/domains/content/Network.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,15 @@

var EXPORTED_SYMBOLS = ["Network"];

const { ContentProcessDomain } = ChromeUtils.import(
"chrome://remote/content/cdp/domains/ContentProcessDomain.jsm"
var { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);

XPCOMUtils.defineLazyModuleGetters(this, {
ContentProcessDomain:
"chrome://remote/content/cdp/domains/ContentProcessDomain.jsm",
});

class Network extends ContentProcessDomain {
// commands

Expand Down
9 changes: 7 additions & 2 deletions remote/cdp/domains/content/Performance.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,15 @@

var EXPORTED_SYMBOLS = ["Performance"];

const { ContentProcessDomain } = ChromeUtils.import(
"chrome://remote/content/cdp/domains/ContentProcessDomain.jsm"
var { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);

XPCOMUtils.defineLazyModuleGetters(this, {
ContentProcessDomain:
"chrome://remote/content/cdp/domains/ContentProcessDomain.jsm",
});

class Performance extends ContentProcessDomain {
constructor(session) {
super(session);
Expand Down
25 changes: 14 additions & 11 deletions remote/cdp/domains/content/Runtime.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,24 @@

var EXPORTED_SYMBOLS = ["Runtime"];

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

XPCOMUtils.defineLazyModuleGetters(this, {
Services: "resource://gre/modules/Services.jsm",

ContentProcessDomain:
"chrome://remote/content/cdp/domains/ContentProcessDomain.jsm",
executeSoon: "chrome://remote/content/shared/Sync.jsm",
ExecutionContext:
"chrome://remote/content/cdp/domains/content/runtime/ExecutionContext.jsm",
});

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

const { ContentProcessDomain } = ChromeUtils.import(
"chrome://remote/content/cdp/domains/ContentProcessDomain.jsm"
);
const { ExecutionContext } = ChromeUtils.import(
"chrome://remote/content/cdp/domains/content/runtime/ExecutionContext.jsm"
);
const { executeSoon } = ChromeUtils.import(
"chrome://remote/content/shared/Sync.jsm"
);

// Import the `Debugger` constructor in the current scope
addDebuggerToGlobal(Cu.getGlobalForObject(this));
Expand Down
9 changes: 7 additions & 2 deletions remote/cdp/domains/content/Security.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,15 @@

var EXPORTED_SYMBOLS = ["Security"];

const { ContentProcessDomain } = ChromeUtils.import(
"chrome://remote/content/cdp/domains/ContentProcessDomain.jsm"
var { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);

XPCOMUtils.defineLazyModuleGetters(this, {
ContentProcessDomain:
"chrome://remote/content/cdp/domains/ContentProcessDomain.jsm",
});

class Security extends ContentProcessDomain {
constructor(session) {
super(session);
Expand Down
14 changes: 10 additions & 4 deletions remote/cdp/domains/content/runtime/ExecutionContext.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,15 @@

var EXPORTED_SYMBOLS = ["ExecutionContext"];

const uuidGen = Cc["@mozilla.org/uuid-generator;1"].getService(
Ci.nsIUUIDGenerator
var { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);

XPCOMUtils.defineLazyServiceGetter(
this,
"UUIDGen",
"@mozilla.org/uuid-generator;1",
"nsIUUIDGenerator"
);

const TYPED_ARRAY_CLASSES = [
Expand All @@ -23,8 +30,7 @@ const TYPED_ARRAY_CLASSES = [
];

function uuid() {
return uuidGen
.generateUUID()
return UUIDGen.generateUUID()
.toString()
.slice(1, -1);
}
Expand Down
11 changes: 8 additions & 3 deletions remote/cdp/domains/parent/Browser.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,16 @@

var EXPORTED_SYMBOLS = ["Browser"];

const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
const { Domain } = ChromeUtils.import(
"chrome://remote/content/cdp/domains/Domain.jsm"
const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);

XPCOMUtils.defineLazyModuleGetters(this, {
Services: "resource://gre/modules/Services.jsm",

Domain: "chrome://remote/content/cdp/domains/Domain.jsm",
});

class Browser extends Domain {
getVersion() {
const { isHeadless } = Cc["@mozilla.org/gfx/info;1"].getService(
Expand Down
12 changes: 8 additions & 4 deletions remote/cdp/domains/parent/Emulation.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,16 @@

var EXPORTED_SYMBOLS = ["Emulation"];

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

const { Domain } = ChromeUtils.import(
"chrome://remote/content/cdp/domains/Domain.jsm"
const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);

XPCOMUtils.defineLazyModuleGetters(this, {
NetUtil: "resource://gre/modules/NetUtil.jsm",

Domain: "chrome://remote/content/cdp/domains/Domain.jsm",
});

const MAX_WINDOW_SIZE = 10000000;

class Emulation extends Domain {
Expand Down
10 changes: 3 additions & 7 deletions remote/cdp/domains/parent/IO.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,10 @@ const { XPCOMUtils } = ChromeUtils.import(

XPCOMUtils.defineLazyModuleGetters(this, {
OS: "resource://gre/modules/osfile.jsm",
});

const { Domain } = ChromeUtils.import(
"chrome://remote/content/cdp/domains/Domain.jsm"
);
const { StreamRegistry } = ChromeUtils.import(
"chrome://remote/content/cdp/StreamRegistry.jsm"
);
Domain: "chrome://remote/content/cdp/domains/Domain.jsm",
StreamRegistry: "chrome://remote/content/cdp/StreamRegistry.jsm",
});

const DEFAULT_CHUNK_SIZE = 10 * 1024 * 1024;

Expand Down
12 changes: 8 additions & 4 deletions remote/cdp/domains/parent/Input.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,16 @@

var EXPORTED_SYMBOLS = ["Input"];

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

const { Domain } = ChromeUtils.import(
"chrome://remote/content/cdp/domains/Domain.jsm"
const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);

XPCOMUtils.defineLazyModuleGetters(this, {
Services: "resource://gre/modules/Services.jsm",

Domain: "chrome://remote/content/cdp/domains/Domain.jsm",
});

class Input extends Domain {
// commands

Expand Down
Loading

0 comments on commit b7893c0

Please sign in to comment.