These URLs are never released, so in a long-running session even if you periodically download the ndjson and then "reset" to discard the downloaded data, the ndjson blobs are still referenced and cannot be freed from memory.
The code should track when the ndjson download is complete and then call revokeObjectURL appropriately.
Hi @ianroberts, sorry for the delayed response and thanks for this fix. It was implemented in the main branch directly for my convenience, but I'm grateful for you bringing this to our attention!
Currently whenever the user clicks a button to download ndjson Zeeschuimer creates a new object URL:
https://github.com/digitalmethodsinitiative/zeeschuimer/blob/6d305ffa19ec0281f02baca85908ea9091dfe763/popup/interface.js#L273-L277
These URLs are never released, so in a long-running session even if you periodically download the ndjson and then "reset" to discard the downloaded data, the ndjson blobs are still referenced and cannot be freed from memory.
The code should track when the ndjson download is complete and then call
revokeObjectURL
appropriately.