1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 01:17:35 +00:00

LibWeb: Fix null dereference when assigning an ImageStyleValue via JS

When parsing a CSS value in the context of a CSSStyleDeclaration
camelCase property setter, we don't necessarily have a Document to
provide the CSS parser for context.

So the parser can't go assuming that there's always a Document in the
ParsingContext. And ImageStyleValue can't go assuming that there's
always a Document either. This will require some more work to get things
right, I'm just patching up the null dereference for now.
This commit is contained in:
Andreas Kling 2021-09-30 02:18:30 +02:00
parent 3006e15c94
commit 198bb322ef
4 changed files with 8 additions and 7 deletions

View file

@ -897,7 +897,7 @@ class ImageStyleValue final
: public StyleValue
, public ImageResourceClient {
public:
static NonnullRefPtr<ImageStyleValue> create(const AK::URL& url, DOM::Document& document) { return adopt_ref(*new ImageStyleValue(url, document)); }
static NonnullRefPtr<ImageStyleValue> create(const AK::URL& url, DOM::Document* document) { return adopt_ref(*new ImageStyleValue(url, document)); }
virtual ~ImageStyleValue() override { }
String to_string() const override { return String::formatted("Image({})", m_url.to_string()); }
@ -905,7 +905,7 @@ public:
const Gfx::Bitmap* bitmap() const { return m_bitmap; }
private:
ImageStyleValue(const AK::URL&, DOM::Document&);
ImageStyleValue(const AK::URL&, DOM::Document*);
// ^ResourceClient
virtual void resource_did_load() override;