Title: [225859] trunk/Source/WebCore
Revision
225859
Author
[email protected]
Date
2017-12-13 11:26:08 -0800 (Wed, 13 Dec 2017)

Log Message

Fix crash under Document::visualUpdatesSuppressionTimerFired()
https://bugs.webkit.org/show_bug.cgi?id=180758
Document::visualUpdatesSuppressionTimerFired

Reviewed by Zalan Bujtas.

Speculative fix for crash under visualUpdatesSuppressionTimerFired() where view()
can be null. Add null checks for the view() in all code called from this function.

* dom/Document.cpp:
(WebCore::Document::setVisualUpdatesAllowed):
(WebCore::Document::visualUpdatesSuppressionTimerFired):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (225858 => 225859)


--- trunk/Source/WebCore/ChangeLog	2017-12-13 19:24:47 UTC (rev 225858)
+++ trunk/Source/WebCore/ChangeLog	2017-12-13 19:26:08 UTC (rev 225859)
@@ -1,3 +1,18 @@
+2017-12-13  Simon Fraser  <[email protected]>
+
+        Fix crash under Document::visualUpdatesSuppressionTimerFired()
+        https://bugs.webkit.org/show_bug.cgi?id=180758
+        Document::visualUpdatesSuppressionTimerFired
+
+        Reviewed by Zalan Bujtas.
+
+        Speculative fix for crash under visualUpdatesSuppressionTimerFired() where view()
+        can be null. Add null checks for the view() in all code called from this function.
+
+        * dom/Document.cpp:
+        (WebCore::Document::setVisualUpdatesAllowed):
+        (WebCore::Document::visualUpdatesSuppressionTimerFired):
+
 2017-12-13  Zalan Bujtas  <[email protected]>
 
         ASSERT(LayoutDisallowedScope::isLayoutAllowed()) whenever hitting Enter in Web Inspector console

Modified: trunk/Source/WebCore/dom/Document.cpp (225858 => 225859)


--- trunk/Source/WebCore/dom/Document.cpp	2017-12-13 19:24:47 UTC (rev 225858)
+++ trunk/Source/WebCore/dom/Document.cpp	2017-12-13 19:26:08 UTC (rev 225859)
@@ -1234,7 +1234,7 @@
         if (m_visualUpdatesSuppressionTimer.isActive()) {
             ASSERT(!m_visualUpdatesAllowed);
 
-            if (!view()->visualUpdatesAllowedByClient())
+            if (view() && !view()->visualUpdatesAllowedByClient())
                 return;
 
             setVisualUpdatesAllowed(true);
@@ -1272,8 +1272,8 @@
         }
     }
 
-    if (view())
-        view()->updateCompositingLayersAfterLayout();
+    if (frameView)
+        frameView->updateCompositingLayersAfterLayout();
 
     if (RenderView* renderView = this->renderView())
         renderView->repaintViewAndCompositedLayers();
@@ -1288,7 +1288,7 @@
 
     // If the client is extending the visual update suppression period explicitly, the
     // watchdog should not re-enable visual updates itself, but should wait for the client.
-    if (!view()->visualUpdatesAllowedByClient())
+    if (view() && !view()->visualUpdatesAllowedByClient())
         return;
 
     setVisualUpdatesAllowed(true);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to