feat: add new browser
This commit is contained in:
@@ -58,5 +58,46 @@ export class BrowserPool {
|
|||||||
* @param active states if the browser's instance is being actively used
|
* @param active states if the browser's instance is being actively used
|
||||||
* @returns true if a new browser was added, false if an existing browser was replaced
|
* @returns true if a new browser was added, false if an existing browser was replaced
|
||||||
*/
|
*/
|
||||||
|
public addRemoteBrowser = (
|
||||||
|
id: string,
|
||||||
|
browser: RemoteBrowser,
|
||||||
|
userId: string,
|
||||||
|
active: boolean = false
|
||||||
|
): boolean => {
|
||||||
|
// Check if user already has a browser
|
||||||
|
const existingBrowserId = this.userToBrowserMap.get(userId);
|
||||||
|
let replaced = false;
|
||||||
|
|
||||||
|
if (existingBrowserId) {
|
||||||
|
// Close and remove the existing browser
|
||||||
|
if (existingBrowserId !== id) {
|
||||||
|
this.closeAndDeleteBrowser(existingBrowserId);
|
||||||
|
replaced = true;
|
||||||
|
} else {
|
||||||
|
// If it's the same browser ID, just update the info
|
||||||
|
this.pool[id] = {
|
||||||
|
browser,
|
||||||
|
active,
|
||||||
|
userId,
|
||||||
|
};
|
||||||
|
logger.log('debug', `Updated existing browser with id: ${id} for user: ${userId}`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add the new browser to the pool
|
||||||
|
this.pool[id] = {
|
||||||
|
browser,
|
||||||
|
active,
|
||||||
|
userId,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Update the user-to-browser mapping
|
||||||
|
this.userToBrowserMap.set(userId, id);
|
||||||
|
|
||||||
|
logger.log('debug', `Remote browser with id: ${id} added to the pool for user: ${userId}`);
|
||||||
|
return !replaced;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user