mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Don't send a load event when a loaded image is actually the placeholder
The image cache returns an `ImageCacheResult::ImageAvailable `the second time you try getting the placeholder. This means that in some cases, the loading of an image would fail, then the same image would get fetched from the cache, the placeholder would be loaded from that but would be seen as a normal image, firing a load event. This made the tests in `fetch/cross-origin-resource-policy/image-loads.html` fail depending on their order.
This commit is contained in:
parent
8249be38c9
commit
bdbfde9ec0
6 changed files with 40 additions and 15 deletions
|
@ -329,8 +329,16 @@ impl HTMLImageElement {
|
|||
);
|
||||
|
||||
match cache_result {
|
||||
ImageCacheResult::Available(ImageOrMetadataAvailable::ImageAvailable(image, url)) => {
|
||||
self.process_image_response(ImageResponse::Loaded(image, url))
|
||||
ImageCacheResult::Available(ImageOrMetadataAvailable::ImageAvailable {
|
||||
image,
|
||||
url,
|
||||
is_placeholder,
|
||||
}) => {
|
||||
if is_placeholder {
|
||||
self.process_image_response(ImageResponse::PlaceholderLoaded(image, url))
|
||||
} else {
|
||||
self.process_image_response(ImageResponse::Loaded(image, url))
|
||||
}
|
||||
},
|
||||
ImageCacheResult::Available(ImageOrMetadataAvailable::MetadataAvailable(m)) => {
|
||||
self.process_image_response(ImageResponse::MetadataLoaded(m))
|
||||
|
@ -1109,7 +1117,7 @@ impl HTMLImageElement {
|
|||
);
|
||||
|
||||
match cache_result {
|
||||
ImageCacheResult::Available(ImageOrMetadataAvailable::ImageAvailable(_image, _url)) => {
|
||||
ImageCacheResult::Available(ImageOrMetadataAvailable::ImageAvailable { .. }) => {
|
||||
// Step 15
|
||||
self.finish_reacting_to_environment_change(
|
||||
selected_source,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue