Images 💾

Last commit ⭐

commit 707ca984bdb1f7d098d9275e319c881d31e211df
Author:     Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
AuthorDate: Sun Sep 24 18:13:39 2023 +0200
Commit:     Alexander Kalenik <kalenik.aliaksandr@gmail.com>
CommitDate: Mon Sep 25 04:16:36 2023 +0200

    LibWeb: Fix memory leak in CSS::ImageStyleValue
    
    Before this change, whenever ImageStyleValue had a non-null
    `m_image_request`, it was always leaked along with everything related
    to the document to which this value belongs. The issue arises due to
    the use of `JS::Handle` for the image request, as it introduces a
    cyclic dependency where `ImageRequest` prevents the `CSSStyleSheet`,
    that owns `ImageStyleValue`, from being deallocated:
    - ImageRequest
    - FetchController
    - FetchParams
    - Window
    - HTMLDocument
    - HTMLHtmlElement
    - HTMLBodyElement
    - Text
    - HTMLHeadElement
    - Text
    - HTMLMetaElement
    - Text
    - HTMLTitleElement
    - Text
    - HTMLStyleElement
    - CSSStyleSheet
    
    This change solves this by visiting `m_image_request` from
    `visit_edges` instead of introducing new heap root by using
    `JS::Handle`.