feat: new page intialization
This commit is contained in:
@@ -279,6 +279,29 @@ export class RemoteBrowser {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Internal method for a new page initialization. Subscribes this page to the screencast.
|
||||||
|
* @param options optional page options to be used when creating a new page
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
private initializeNewPage = async (options?: Object) : Promise<void> => {
|
||||||
|
await this.stopScreencast();
|
||||||
|
const newPage = options ? await this.browser?.newPage(options)
|
||||||
|
: await this.browser?.newPage();
|
||||||
|
|
||||||
|
await this.currentPage?.close();
|
||||||
|
this.currentPage = newPage;
|
||||||
|
if (this.currentPage) {
|
||||||
|
this.currentPage.on('load', (page) => {
|
||||||
|
this.socket.emit('urlChanged', page.url());
|
||||||
|
})
|
||||||
|
this.client = await this.currentPage.context().newCDPSession(this.currentPage);
|
||||||
|
await this.subscribeToScreencast();
|
||||||
|
} else {
|
||||||
|
logger.log('error', 'Could not get a new page, returned undefined');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initiates screencast of the remote browser through socket,
|
* Initiates screencast of the remote browser through socket,
|
||||||
* registers listener for rerender event and emits the loaded event.
|
* registers listener for rerender event and emits the loaded event.
|
||||||
|
|||||||
Reference in New Issue
Block a user