Kaynağa Gözat

LibWeb: Skip documents of decoded SVGs while processing HTML event loop

None of HTML event loop processing steps are relevant for decoded SVGs,
so we can simply skip them while collecting documents for processing.
Aliaksandr Kalenik 10 ay önce
ebeveyn
işleme
c87214d79c

+ 0 - 6
Tests/LibWeb/Layout/expected/svg/inline-svg-with-zero-intrinsic-size-and-no-viewbox.txt

@@ -6,12 +6,6 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
           " "
       frag 2 from SVGSVGBox start: 0, length: 0, rect: [16,21 0x0] baseline: 0
       ImageBox <img> at (8,21) content-size 0x0 children: not-inline
-        (SVG-as-image isolated context)
-        Viewport <#document> at (0,0) content-size 0x0 [BFC] children: inline
-          SVGSVGBox <svg> at (0,0) content-size 0x0 [SVG] children: inline
-            TextNode <#text>
-            SVGGeometryBox <rect> at (0,0) content-size 1x1 children: not-inline
-            TextNode <#text>
       TextNode <#text>
       SVGSVGBox <svg> at (16,21) content-size 0x0 [SVG] children: inline
         TextNode <#text>

+ 2 - 0
Userland/Libraries/LibWeb/HTML/EventLoop/EventLoop.cpp

@@ -495,6 +495,8 @@ Vector<JS::Handle<DOM::Document>> EventLoop::documents_in_this_event_loop() cons
     Vector<JS::Handle<DOM::Document>> documents;
     for (auto& document : m_documents) {
         VERIFY(document);
+        if (document->is_decoded_svg())
+            continue;
         documents.append(JS::make_handle(*document));
     }
     return documents;