LibWeb: make it possible to directly load .svg files

Make LibWeb load svg files by guessing the svg mime type from the file
extension and parsing it with the HTML parser.
This commit is contained in:
Simon Danner 2020-09-07 19:45:14 +02:00 committed by Andreas Kling
parent 699e1fdc07
commit 05be6481b7
Notes: sideshowbarker 2024-07-19 02:50:31 +09:00
2 changed files with 8 additions and 5 deletions

View file

@ -87,6 +87,8 @@ String guess_mime_type_based_on_filename(const URL& url)
return "image/bmp";
if (lowercase_url.ends_with(".jpg") || lowercase_url.ends_with(".jpeg"))
return "image/jpeg";
if (lowercase_url.ends_with(".svg"))
return "image/svg+xml";
if (lowercase_url.ends_with(".md"))
return "text/markdown";
if (lowercase_url.ends_with(".html") || lowercase_url.ends_with(".htm"))

View file

@ -121,6 +121,11 @@ static RefPtr<DOM::Document> create_gemini_document(const ByteBuffer& data, cons
RefPtr<DOM::Document> FrameLoader::create_document_from_mime_type(const ByteBuffer& data, const URL& url, const String& mime_type, const String& encoding)
{
if (mime_type == "text/html" || mime_type == "image/svg+xml") {
HTML::HTMLDocumentParser parser(data, encoding);
parser.run(url);
return parser.document();
}
if (mime_type.starts_with("image/"))
return create_image_document(data, url);
if (mime_type == "text/plain")
@ -129,11 +134,7 @@ RefPtr<DOM::Document> FrameLoader::create_document_from_mime_type(const ByteBuff
return create_markdown_document(data, url);
if (mime_type == "text/gemini")
return create_gemini_document(data, url);
if (mime_type == "text/html") {
HTML::HTMLDocumentParser parser(data, encoding);
parser.run(url);
return parser.document();
}
return nullptr;
}