mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-30 04:39:06 +00:00
HTMLImageElement: Improve decoding stub
Add an enum and warn when setting to sync/async.
This commit is contained in:
parent
03f9915054
commit
977e77bd4a
Notes:
github-actions[bot]
2024-09-04 07:56:27 +00:00
Author: https://github.com/jdahlin 🔰
Commit: 977e77bd4a
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/1250
3 changed files with 40 additions and 1 deletions
|
@ -1145,4 +1145,30 @@ void HTMLImageElement::animate()
|
||||||
paintable()->set_needs_display();
|
paintable()->set_needs_display();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
StringView HTMLImageElement::decoding() const
|
||||||
|
{
|
||||||
|
switch (m_decoding_hint) {
|
||||||
|
case ImageDecodingHint::Sync:
|
||||||
|
return "sync"sv;
|
||||||
|
case ImageDecodingHint::Async:
|
||||||
|
return "async"sv;
|
||||||
|
case ImageDecodingHint::Auto:
|
||||||
|
return "auto"sv;
|
||||||
|
default:
|
||||||
|
VERIFY_NOT_REACHED();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void HTMLImageElement::set_decoding(String decoding)
|
||||||
|
{
|
||||||
|
if (decoding == "sync"sv) {
|
||||||
|
dbgln("FIXME: HTMLImageElement.decoding = 'sync' is not implemented yet");
|
||||||
|
m_decoding_hint = ImageDecodingHint::Sync;
|
||||||
|
} else if (decoding == "async"sv) {
|
||||||
|
dbgln("FIXME: HTMLImageElement.decoding = 'async' is not implemented yet");
|
||||||
|
m_decoding_hint = ImageDecodingHint::Async;
|
||||||
|
} else
|
||||||
|
m_decoding_hint = ImageDecodingHint::Auto;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,6 +80,10 @@ public:
|
||||||
// https://html.spec.whatwg.org/multipage/images.html#select-an-image-source
|
// https://html.spec.whatwg.org/multipage/images.html#select-an-image-source
|
||||||
[[nodiscard]] Optional<ImageSourceAndPixelDensity> select_an_image_source();
|
[[nodiscard]] Optional<ImageSourceAndPixelDensity> select_an_image_source();
|
||||||
|
|
||||||
|
StringView decoding() const;
|
||||||
|
|
||||||
|
void set_decoding(String);
|
||||||
|
|
||||||
void set_source_set(SourceSet);
|
void set_source_set(SourceSet);
|
||||||
|
|
||||||
ImageRequest& current_request() { return *m_current_request; }
|
ImageRequest& current_request() { return *m_current_request; }
|
||||||
|
@ -147,6 +151,15 @@ private:
|
||||||
SourceSet m_source_set;
|
SourceSet m_source_set;
|
||||||
|
|
||||||
CSSPixelSize m_last_seen_viewport_size;
|
CSSPixelSize m_last_seen_viewport_size;
|
||||||
|
|
||||||
|
// https://html.spec.whatwg.org/multipage/images.html#image-decoding-hint
|
||||||
|
enum class ImageDecodingHint {
|
||||||
|
Auto,
|
||||||
|
Sync,
|
||||||
|
Async
|
||||||
|
};
|
||||||
|
|
||||||
|
ImageDecodingHint m_decoding_hint = ImageDecodingHint::Auto;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ interface HTMLImageElement : HTMLElement {
|
||||||
readonly attribute boolean complete;
|
readonly attribute boolean complete;
|
||||||
readonly attribute USVString currentSrc;
|
readonly attribute USVString currentSrc;
|
||||||
[CEReactions, Reflect=referrerpolicy, Enumerated=ReferrerPolicy] attribute DOMString referrerPolicy;
|
[CEReactions, Reflect=referrerpolicy, Enumerated=ReferrerPolicy] attribute DOMString referrerPolicy;
|
||||||
[FIXME, CEReactions] attribute DOMString decoding;
|
[CEReactions] attribute DOMString decoding;
|
||||||
[CEReactions, Enumerated=LazyLoadingAttribute, Reflect] attribute DOMString loading;
|
[CEReactions, Enumerated=LazyLoadingAttribute, Reflect] attribute DOMString loading;
|
||||||
[CEReactions, Enumerated=FetchPriorityAttribute, Reflect=fetchpriority] attribute DOMString fetchPriority;
|
[CEReactions, Enumerated=FetchPriorityAttribute, Reflect=fetchpriority] attribute DOMString fetchPriority;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue