mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 08:37:34 +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:
parent
3006e15c94
commit
198bb322ef
4 changed files with 8 additions and 7 deletions
|
@ -368,12 +368,13 @@ Color IdentifierStyleValue::to_color(Layout::NodeWithStyle const& node) const
|
|||
}
|
||||
}
|
||||
|
||||
ImageStyleValue::ImageStyleValue(const AK::URL& url, DOM::Document& document)
|
||||
ImageStyleValue::ImageStyleValue(const AK::URL& url, DOM::Document* document)
|
||||
: StyleValue(Type::Image)
|
||||
, m_url(url)
|
||||
, m_document(document)
|
||||
{
|
||||
auto request = LoadRequest::create_for_url_on_page(url, document.page());
|
||||
// FIXME: This doesn't work right without a document.
|
||||
auto request = LoadRequest::create_for_url_on_page(url, document ? document->page() : nullptr);
|
||||
set_resource(ResourceLoader::the().load_resource(Resource::Type::Image, request));
|
||||
}
|
||||
|
||||
|
@ -383,7 +384,7 @@ void ImageStyleValue::resource_did_load()
|
|||
return;
|
||||
m_bitmap = resource()->bitmap();
|
||||
// FIXME: Do less than a full repaint if possible?
|
||||
if (m_document->browsing_context())
|
||||
if (m_document && m_document->browsing_context())
|
||||
m_document->browsing_context()->set_needs_display({});
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue