Title: [246995] releases/WebKitGTK/webkit-2.24/Source/WebCore
Revision
246995
Author
carlo...@webkit.org
Date
2019-07-01 04:03:50 -0700 (Mon, 01 Jul 2019)

Log Message

Merge r246182 - Avoid generating new XSLT-based document when already changing the document.
https://bugs.webkit.org/show_bug.cgi?id=198525
<rdar://problem/51393787>

Reviewed by Ryosuke Niwa.

We should not allow a pending XSLT transform to change the current document when
that current document is int he process of being replaced.

* dom/Document.cpp:
(WebCore::Document::applyPendingXSLTransformsTimerFired):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.24/Source/WebCore/ChangeLog (246994 => 246995)


--- releases/WebKitGTK/webkit-2.24/Source/WebCore/ChangeLog	2019-07-01 11:03:47 UTC (rev 246994)
+++ releases/WebKitGTK/webkit-2.24/Source/WebCore/ChangeLog	2019-07-01 11:03:50 UTC (rev 246995)
@@ -1,3 +1,17 @@
+2019-06-06  Brent Fulgham  <bfulg...@apple.com>
+
+        Avoid generating new XSLT-based document when already changing the document.
+        https://bugs.webkit.org/show_bug.cgi?id=198525
+        <rdar://problem/51393787>
+
+        Reviewed by Ryosuke Niwa.
+
+        We should not allow a pending XSLT transform to change the current document when
+        that current document is int he process of being replaced.
+
+        * dom/Document.cpp:
+        (WebCore::Document::applyPendingXSLTransformsTimerFired):
+
 2019-06-05  Daniel Bates  <daba...@apple.com>
 
         [CSP] Data URLs should inherit their CSP policy

Modified: releases/WebKitGTK/webkit-2.24/Source/WebCore/dom/Document.cpp (246994 => 246995)


--- releases/WebKitGTK/webkit-2.24/Source/WebCore/dom/Document.cpp	2019-07-01 11:03:47 UTC (rev 246994)
+++ releases/WebKitGTK/webkit-2.24/Source/WebCore/dom/Document.cpp	2019-07-01 11:03:50 UTC (rev 246995)
@@ -5588,6 +5588,11 @@
         if (transformSourceDocument() || !processingInstruction->sheet())
             return;
 
+        // If the Document has already been detached from the frame, or the frame is currently in the process of
+        // changing to a new document, don't attempt to create a new Document from the XSLT.
+        if (!frame() || frame()->documentIsBeingReplaced())
+            return;
+
         auto processor = XSLTProcessor::create();
         processor->setXSLStyleSheet(downcast<XSLStyleSheet>(processingInstruction->sheet()));
         String resultMIMEType;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to