Chromium Code Reviews| Index: Source/core/page/FrameView.cpp |
| diff --git a/Source/core/page/FrameView.cpp b/Source/core/page/FrameView.cpp |
| index ba2e4e7c21899666a3bf348d98f73748a536113e..cbbbfa367e5919cb998ee982b3f504bbbeddd6c0 100644 |
| --- a/Source/core/page/FrameView.cpp |
| +++ b/Source/core/page/FrameView.cpp |
| @@ -131,6 +131,14 @@ static RenderLayer::UpdateLayerPositionsFlags updateLayerPositionFlags(RenderLay |
| return flags; |
| } |
| +// The spec DOM Level 2 Events states that the resize event occurs when document view size (a.k.a layout size) is changed. Refer to http://www.w3.org/TR/DOM-Level-2-Events/events.html |
| +// However, showing/hiding scrollbars shouldn't be considered a layout size change. Refer to webkit.org/b/80242 |
| +// viewportSize() is used to compare layout sizes between before and after to emit a resize event. |
| +static inline IntSize viewportSize(const FrameView* view) |
|
aelias_OOO_until_Jul13
2013/05/29 18:47:28
I suggest not having this static method and just c
|
| +{ |
| + return view->layoutSize(ScrollView::IncludeScrollbars); |
| +} |
| + |
| Pagination::Mode paginationModeForRenderStyle(RenderStyle* style) |
| { |
| EOverflow overflow = style->overflowY(); |
| @@ -986,7 +994,7 @@ void FrameView::layout(bool allowSubtree) |
| m_firstLayout = false; |
| m_firstLayoutCallbackPending = true; |
| - m_lastViewportSize = visibleContentRect(IncludeScrollbars).size(); |
| + m_lastViewportSize = viewportSize(this); |
| m_lastZoomFactor = root->style()->zoom(); |
| // Set the initial vMode to AlwaysOn if we're auto. |
| @@ -2286,8 +2294,7 @@ void FrameView::performPostLayoutTasks() |
| // Refetch render view since it can be destroyed by updateWidget() call above. |
| renderView = this->renderView(); |
| if (renderView && !renderView->printing()) { |
| - IntSize currentSize; |
| - currentSize = visibleContentRect(IncludeScrollbars).size(); |
| + IntSize currentSize = viewportSize(this); |
| float currentZoomFactor = renderView->style()->zoom(); |
| bool resized = !m_firstLayout && (currentSize != m_lastViewportSize || currentZoomFactor != m_lastZoomFactor); |
| m_lastViewportSize = currentSize; |