瀏覽代碼

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 月之前
父節點
當前提交
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;