mirror of
https://github.com/puppeteer/puppeteer
synced 2024-06-14 14:02:48 +00:00
This adds a proof-of-concept of `puppeteer-firefox`. This consists of two parts: - `//experimental/juggler` - patches to apply to Firefox. - `//experimental/puppeteer-firefox` - front-end code to be merged with Puppeteer. As things become more stable, we'll gradually move it out of the experimental folder.
28 lines
1014 B
JavaScript
28 lines
1014 B
JavaScript
const {Helper} = ChromeUtils.import('chrome://juggler/content/Helper.js');
|
|
const {ContentSession} = ChromeUtils.import('chrome://juggler/content/content/ContentSession.js');
|
|
const {FrameTree} = ChromeUtils.import('chrome://juggler/content/content/FrameTree.js');
|
|
const {ScrollbarManager} = ChromeUtils.import('chrome://juggler/content/content/ScrollbarManager.js');
|
|
|
|
const sessions = new Map();
|
|
const frameTree = new FrameTree(docShell);
|
|
const scrollbarManager = new ScrollbarManager(this, docShell);
|
|
|
|
const helper = new Helper();
|
|
|
|
const gListeners = [
|
|
helper.addMessageListener(this, 'juggler:create-content-session', msg => {
|
|
const sessionId = msg.data;
|
|
sessions.set(sessionId, new ContentSession(sessionId, this, frameTree, scrollbarManager));
|
|
}),
|
|
|
|
helper.addEventListener(this, 'unload', msg => {
|
|
helper.removeListeners(gListeners);
|
|
for (const session of sessions.values())
|
|
session.dispose();
|
|
sessions.clear();
|
|
scrollbarManager.dispose();
|
|
frameTree.dispose();
|
|
}),
|
|
];
|
|
|