wexond / browser-base

Modern and feature-rich web browser base based on Electron

Home Page:https://wexond.net

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The `BrowserView`s are not getting destroyed after closing the `BrowserWindow`

msynk opened this issue · comments

Currently, the clear method of the ViewManager class is using the Object.values method on the views list which is a Map as follows:

image

since the Object.values does not work on a Map and returns an empty array, the views are not getting destroyed.
(just try Object.values(new Map([['a', {a:1}], ['b', {b:2}]])) in the console)

for example, if you have multiple windows open and in one of them a video is playing, after closing that window the video keeps playing until the app is closed.

I'm not sure why the Object.values method is used in this line, but the fix is simply to remove it and use the forEach method on the this.views itself, something like this:

this.views.forEach((x: View) => x.destroy())

if it's ok I can create a new PR for this change 😊

there are some other usages of the Object.values the same way, that I think have the same problem.