| 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);
|
| }
|
| }
|
|
|
|
|