Suggested by Fabian on matrix, instead of going through libsoup's cache process, let's look it up ourselves.
Why? Because libsoup does complex cache checking that also needs to be decoded:
Libsoup will respect etag, max cache and other headers
Whether it hits cache or not, it still needs to go through all the process of getting decoded, orientation fixed etc
Compared to just, checking if the file exists already and loading it.
Libsoup's cache is important, especially on profile avatars and API responses. It's not that much on emojis and in situations where it has to load thousands at the same time (CEP), this seems faster
Quirk: libsoup maps images to cache entries using g_str_hash based on the url
Suggested by Fabian on matrix, instead of going through libsoup's cache process, let's look it up ourselves.
Why? Because libsoup does complex cache checking that also needs to be decoded:
Compared to just, checking if the file exists already and loading it.
Libsoup's cache is important, especially on profile avatars and API responses. It's not that much on emojis and in situations where it has to load thousands at the same time (CEP), this seems faster
Quirk: libsoup maps images to cache entries using g_str_hash based on the url