Index: Source/core/page/FrameView.cpp |
diff --git a/Source/core/page/FrameView.cpp b/Source/core/page/FrameView.cpp |
index db745bc881bc6d45e52d1ae5508869b1a7cc6932..a31e0b68e41e142a3dec5157929d7ffd95dc2336 100644 |
--- a/Source/core/page/FrameView.cpp |
+++ b/Source/core/page/FrameView.cpp |
@@ -2263,25 +2263,27 @@ void FrameView::performPostLayoutTasks() |
m_actionScheduler->resume(); |
- // Viewport-dependent media queries may cause us to need completely different style information. |
+ IntSize currentSize = layoutSize(IncludeScrollbars); |
+ float currentZoomFactor = renderView->style()->zoom(); |
+ bool resized = !m_firstLayout && (currentSize != m_lastViewportSize || currentZoomFactor != m_lastZoomFactor); |
+ m_lastViewportSize = currentSize; |
+ m_lastZoomFactor = currentZoomFactor; |
+ |
+ // Viewport-dependent media queries and @viewport rue may cause us to need completely |
+ // different style information. |
if (m_frame->document()->styleResolver()->affectedByViewportChange()) { |
+ if (resized) |
+ m_frame->document()->styleResolver()->viewportStyleResolver()->resolve(); |
m_frame->document()->styleResolverChanged(DeferRecalcStyle); |
InspectorInstrumentation::mediaQueryResultChanged(m_frame->document()); |
} |
// Refetch render view since it can be destroyed by updateWidget() call above. |
renderView = this->renderView(); |
- if (renderView && !renderView->printing()) { |
- IntSize currentSize = layoutSize(IncludeScrollbars); |
- float currentZoomFactor = renderView->style()->zoom(); |
- bool resized = !m_firstLayout && (currentSize != m_lastViewportSize || currentZoomFactor != m_lastZoomFactor); |
- m_lastViewportSize = currentSize; |
- m_lastZoomFactor = currentZoomFactor; |
- if (resized) { |
- m_frame->eventHandler()->sendResizeEvent(); |
- if (page && page->mainFrame() == m_frame) |
- InspectorInstrumentation::didResizeMainFrame(page); |
- } |
+ if (renderView && !renderView->printing() && resized) { |
+ m_frame->eventHandler()->sendResizeEvent(); |
+ if (page && page->mainFrame() == m_frame) |
+ InspectorInstrumentation::didResizeMainFrame(page); |
} |
} |