I have this simple JS function used to load (and show) images from byte arrays
function setElementSrc(element, mimeType, buffer) {
var blob = new Blob([buffer], { type: mimeType });
var objectUrl = URL.createObjectURL(blob);
element.src = objectUrl;
element.onload = function () {
URL.revokeObjectURL(objectUrl);
};
}
Since the object url gets revoked in onload I would expect there to be no more references to the blob. Yet, when I look into chrome debugger or chrome://blob-internals/ they remain there forever, having one reference. Even when the img itself is gone.
The URL.revokeObjectURL(objectUrl)
does work, since after its call the object url is not reachable anymore.
Do I understand something wrong? What am I missing? Is there a way to see what is still referencing the blob?