Title: [149377] trunk/Source/WebCore
Revision
149377
Author
[email protected]
Date
2013-04-30 10:35:33 -0700 (Tue, 30 Apr 2013)

Log Message

REGRESSION(r149313) Crash at WebCore::FrameView::setFrameRect() when navigating back to previous page while find banner is displayed.
<http://webkit.org/b/115421>
<rdar://problem/13765739>

Reviewed by Antti Koivisto.

Add missing null-checks for Document and StyleResolver when re-evaluating media queries due to viewport changes.

No layout test, since we can't show the find banner from WebCore, and I can't think of another way to
trigger a back navigation to a Document-less Frame that would also change the FrameView's size.

* page/FrameView.cpp:
(WebCore::FrameView::setFrameRect):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (149376 => 149377)


--- trunk/Source/WebCore/ChangeLog	2013-04-30 17:18:59 UTC (rev 149376)
+++ trunk/Source/WebCore/ChangeLog	2013-04-30 17:35:33 UTC (rev 149377)
@@ -1,3 +1,19 @@
+2013-04-30  Andreas Kling  <[email protected]>
+
+        REGRESSION(r149313) Crash at WebCore::FrameView::setFrameRect() when navigating back to previous page while find banner is displayed.
+        <http://webkit.org/b/115421>
+        <rdar://problem/13765739>
+
+        Reviewed by Antti Koivisto.
+
+        Add missing null-checks for Document and StyleResolver when re-evaluating media queries due to viewport changes.
+
+        No layout test, since we can't show the find banner from WebCore, and I can't think of another way to
+        trigger a back navigation to a Document-less Frame that would also change the FrameView's size.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::setFrameRect):
+
 2013-04-30  Glenn Adams  <[email protected]>
 
         The bison grammar for @supports should return 0 in case of an error

Modified: trunk/Source/WebCore/page/FrameView.cpp (149376 => 149377)


--- trunk/Source/WebCore/page/FrameView.cpp	2013-04-30 17:18:59 UTC (rev 149376)
+++ trunk/Source/WebCore/page/FrameView.cpp	2013-04-30 17:35:33 UTC (rev 149377)
@@ -477,10 +477,12 @@
     }
 #endif
 
+    Document* document = m_frame ? m_frame->document() : 0;
+
     // Viewport-dependent media queries may cause us to need completely different style information.
-    if (m_frame->document()->styleResolver()->affectedByViewportChange()) {
-        m_frame->document()->styleResolverChanged(DeferRecalcStyle);
-        InspectorInstrumentation::mediaQueryResultChanged(m_frame->document());
+    if (document && document->styleResolver() && document->styleResolver()->affectedByViewportChange()) {
+        document->styleResolverChanged(DeferRecalcStyle);
+        InspectorInstrumentation::mediaQueryResultChanged(document);
     }
 
     if (renderView && !renderView->printing()) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to