1
0
Fork 0
firefox/remote/shared/js-process-actors/WebDriverDocumentInsertedChild.sys.mjs
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

49 lines
1.5 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/. */
const lazy = {};
ChromeUtils.defineESModuleGetters(lazy, {
getBrowsingContextDetails:
"chrome://remote/content/shared/messagehandler/transports/BrowsingContextUtils.sys.mjs",
Log: "chrome://remote/content/shared/Log.sys.mjs",
truncate: "chrome://remote/content/shared/Log.sys.mjs",
});
ChromeUtils.defineLazyGetter(lazy, "logger", () => lazy.Log.get());
export class WebDriverDocumentInsertedChild extends JSProcessActorChild {
actorCreated() {
lazy.logger.trace(
`WebDriverDocumentInsertedChild actor created for PID ${Services.appinfo.processID}`
);
}
observe = async (subject, topic) => {
if (topic === "initial-document-element-inserted") {
const window = subject?.defaultView;
// Ignore events without a window (such as from SVG documents).
if (!window) {
return;
}
const context = window.browsingContext;
const url = window.location.href;
const payload = {
contextDetails: lazy.getBrowsingContextDetails(context),
url,
};
try {
this.sendAsyncMessage(
"WebDriverDocumentInsertedChild:documentInserted",
payload
);
} catch {
lazy.logger.trace(
lazy.truncate`Could not send WebDriverDocumentInsertedChild:documentInserted for URL: ${url}`
);
}
}
};
}